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.

CCS/CC2650MODA: What is the difference between Advertixing and Scan Response Data and how to detect the last one in TI-RTOS CC2650MODA multirole project.

Part Number: CC2650MODA


Tool/software: Code Composer Studio

Hi everyone

I need to develope project with CC2650MODA working as multirole.

For this purpose I took the multi_role project and explored it.

The first step was to detect the advertising data from the slave devices.

That what I could understand the advertising data The advertising data can be detected in the "static void multi_role_processRoleEvent(gapMultiRoleEvent_t *pEvent)" function under the "GAP_DEVICE_INFO_EVENT" event. It exists in the variable "pEvent->deviceInfo". But how is it possible to detect the Scan Response Data? Some of devices stores their names under Scan REsponse Data and not in the Advertising Data.

That what I saw, some of the devices store their information or a part of it under Scan Response data instead of  (or in addition to)  storing it under Advertising data. What maybe the reason and what is the difference between these two datas?

  • Hi Boris,

    You're correct, you can find the Advertising data in the GAP_DEVICE_INFO_EVENT; that's where you'll be able to extract it.

    You can also find the Scan Response data here as well, as a second GAP_DEVICE_INFO_EVENT.

    Generally, you can have whatever you want in either sets of data. Some use cases I've seen is to use advertisements only (non scanable/connectable undirected advertisements) for sending out various pieces of data. (Beaconing)

    Other use cases are when Scanning, the device can be further identified/verified that it is indeed a known device (if it's using privacy)

    In our Example projects you can see other uses, such as suggesting what connection interval is preferred in the scan response data.

    Regards,
    Rebel
  • Hi, Rebel,
    Thank you for your answer.
    That what I understood from it that the both Advertising and Scan Response Data can be found in the same "GAP_DEVICE_INFO_EVENT" event. But if so, how can I know if the detected data is "Scan Response" or "Advertising"?

    Best Regards
    Boris Fridman
  • Hi Boris,

    You can find this by looking at the deviceInfo.eventType during the GAP_DEVICE_INFO_EVENT.

    GAP_ADRPT_SCAN_RSP means scan response, there's 4 possible types of advertisement data, checkout

    Regards,

    Rebel

  • Hi, Rebel,
    I have checked what you wrote on the practic.
    It works correctely.
    Thank you very much!
    The discovered devices had the data from 2 types: the type GAP_ADRPT_ADV_IND=0 and the type GAP_ADRPT_SCAN_RSP=4 simultaniousely.

    The terminal output: The devices are written in order in which they were discovered. Most of them exist twice with the two different datas GAP_ADRPT_ADV_IND=0 and GAP_ADRPT_SCAN_RSP=4:
    Address: 0xA0E6F8C41B86 AdvType: 0 Project Zero
    Address: 0xA0E6F8C41B86 AdvType: 4
    Address: 0xA0E6F8C42C02 AdvType: 0
    Address: 0xA0E6F8C42C02 AdvType: 4 SimpleBLEPeripheral
    Address: 0x7E1FBA5E9312 AdvType: 0
    Address: 0x45EA7336412D AdvType: 0
    Address: 0xCDA41114EDE9 AdvType: 0
    Address: 0xCDA41114EDE9 AdvType: 4 vívoactive HR


    If so, can the device have the two datas for example GAP_ADRPT_ADV_SCAN_IND=2 and GAP_ADRPT_ADV_NONCONN_IND=3 together ?
    Can thedevice have all 5 data types together or the first 4 advertising data types can be made one instead of other and only the fifth data type (GAP_ADRPT_SCAN_RSP=4) can appear in addition to any one of them?

    Best regards
    Boris Fridman