This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2745R10-Q1: Missing scan response data/event

Part Number: CC2745R10-Q1
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hi,

SDK: simplelink_lowpower_f3_sdk_8_40_00_61

I am currently using the CC2745R10 as a central device. I have modified the basic_ble example given in the SDK to act as client. 

I have a Gopro device which acts as a ble peripheral. The Gopro device sends some data(46 bytes)through advertisement and scan response. As shown below. 

The gopro device's advertisement type is "Legacy Advertisment".

I tried to extract the same data from the CC2745R10 but I am receiving only a portion of the data i.e 24 bytes. I receive a "BLEAPPUTIL_ADV_REPORT" and it only contains 24 bytes of data as shown below.

0x0B,0x09,0x47,0x6F,0x50,0x72,0x6F,0x20,0x30,0x31,0x34,0x30,
0x0B,0x16,0xA6,0xFE,0xF7,0x82,0x12,0xC3,0x30,0x31,0x34,0x30

I don't see the manufacturer data and flags field.

How do I get the scan response data? 

Additional info:

The events that I have registered for is shown below.


BLEAppUtil_EventHandler_t centralScanHandler =
{
.handlerType = BLEAPPUTIL_GAP_SCAN_TYPE,
.pEventHandler = Central_ScanEventHandler,
.eventMask = BLEAPPUTIL_SCAN_ENABLED |
BLEAPPUTIL_SCAN_DISABLED |
BLEAPPUTIL_ADV_REPORT
};

Default scan type is "Active Scan Mode".

  • Hello,

    Can I see your sysconfig settings for the Observer Configuration? Additionally, do you mind providing an air trace (Ellysis log)?

    Best,
    Nima Behmanesh

  • Hi,

    Please find the sysCfg settings below.

    Observer settings overview:

    Advertising report sub menu:

    PDU filter sub menu:

    By default, under PDU filter the "scan response only" was not enabled. I tested it by enabling it but still the same issue.

    Presently .at my desk I don't have a sniffer with me. I'll try to collect logs once I have received it. 

    When I scanned the Gopro device from my android phone, I have captured the logs. In those logs I can see that the GOpro is responding with a scan response message, screenshot of the same I attached below. Hope this helps.

  • Hi,

    While I'm waiting for the Ellysis logs, can I see the code used for parsing through the report?

    Looking at the advreport structure:

    bits 0 through 4 indicate whether it's a legacy adv or a scan response. It may be that a second report is coming in, but being ignored.

    Seeing the code would verify this.

    Best,

    Nima Behmanesh

  • Hi Nima, 

    Please find the code snippet of how the data is being parsed.

    Contents of the scanEventHandler:

    Please refer the "BLEAPPUTIL_ADV_REPORT" case.

    void Central_ScanEventHandler(uint32 event, BLEAppUtil_msgHdr_t *pMsgData)
    {
    BLEAppUtil_ScanEventData_t *scanMsg = (BLEAppUtil_ScanEventData_t *)pMsgData;

    switch (event)
    {
    case BLEAPPUTIL_SCAN_ENABLED:
    {
    centralScanIndex = 0;
    MenuModule_printf(APP_MENU_SCAN_EVENT, 0, "Scan status: Scan started...");

    break;
    }

    case BLEAPPUTIL_SCAN_DISABLED:
    {
    uint8 i;

    for(i = 0; i < APP_MAX_NUM_OF_ADV_REPORTS; i++)
    {
    memset(&centralScanRes[i], 0, sizeof(App_scanResults));
    }

    // Go over the advertise reports that was saved in the host level and save it
    for (i = 0; i < scanMsg->pBuf->pScanDis.numReport; i++)
    {
    GapScan_Evt_AdvRpt_t advReport;
    // Get the address from the report
    GapScan_getAdvReport(i, &advReport);
    // Add the report to the scan list
    Central_addScanRes(&advReport);
    }

    break;
    }
    case BLEAPPUTIL_ADV_REPORT:
    {
    if(handleAdvReport(&scanMsg->pBuf->pAdvReport))
    {
    Serial_Write("Device Found", sizeof("Device Found")-1);
    }
    }break;

    default:
    {
    break;
    }

    }
    }

    Note: In my initial Query, you can see that there is a screenshot of the contents of scanmsg. The evtType variable has a value of "0x1B".

  • Hi Nima, 

    I have found the Fix for the issue. 

    The SysCfg file has a field called PDU type filter. I set it to "complete only" and "connectable only". Now I get two events, 1 for advertisement and the other for a scan response.