Hi ,
Could you explain to me, what is the difference between Incomplete and complete List of 128-bit Service UUIDs. ?
If the advertisement uses ADV_TYPE_INCOMPLETE_LIST_128BIT_SERVICE_IDS, all 128bit Servic UUIDs should be included in the advertisement or not .
The below changes i have made for incresing the device name length.
original --> USER_ADVERTISE_DATA "\x11\x07\xb7\x5c\x49\xd2\x04\xa3\x40\x71\xa0\xb5\x35\x85\x3e\xb0\x83\x07"
modified --> USER_ADVERTISE_DATA "\x0c\x06\xb7\x5c\x49\xd2\x04\xa3\x40\x71\xa0\xb5\x35" // removed the last 5 bytes
It is working fine but i want to know is it following the standard or not ?
Please clarify me, is it correct or not ?
Device:
Hi RatheeshT,
The flags that are placed in the advertising string indicate which services the peripheral supports, so the "Complete List of 128-bit Service UUIDs" means that in that particular advertising string all the 128-bit services that the device supports are declared, on the other hand if the device supports more than a few services but there is not enough room in the advertising string the BLE specification gives the option to the peripheral to declare that it includes more services that are indicated by the advertising string. Usually centrals are based on the advertising string in order to connect to a peripheral device or not (they check the advertising string in order to be aware if they are interested by the services provided in the advertising string), so if they spot an advertising string with a complete list of services they can easily decide if they should connect or not, on the other hand if the incomplete flag is used that means that its up to central to decide if it will connect to peripheral in order to check for the available services.
So what you have placed above isn't proper, since the host (the da14580) is not going to be able to match the the UUID just because you 've declared that this is an incomplete UUID, the incomplete UUID refers to the services provided by the device and not if the 128-bit UUID is complete or not.
Thanks MT_dialog
Hi MT_dialog,
I understood your points but i want to increase my device advertising name like below
#define USER_DEVICE_NAME "DIALOG-1" to #define USER_DEVICE_NAME "DIALOG-1DCA02" .i.e name size is increased to 13 from 8.( this is why i reduced the UID length)
我已经让我们ER_ADVERTISE_DATA changes in both HOST & DEVICE ( USER_ADVERTISE_DATA "\x0c\x06\xb7\x5c\x49\xd2\x04\xa3\x40\x71\xa0\xb5\x35" )
My questions are :
1. I need to increase my device name length, how can i do this?
2. Each byte of USER_ADVERTISE_DATA have different meaning or is each byte indicating different services? If YES means please provide the links of that to understand more.
Hi RatheeshT,
1. If i get your question correctly, if you place the name of the device in the user_config.h file in USER_DEVICE_NAME definition then, if there is enough room in the advertising string then the name of the device will be placed in the advertising string, if it not fits it will be placed in the scan response data, if it not fits in the scan response data it will not be placed at all, so you will have to discart some bytes out the advertising string or the scan response data string.
2. Yes, on the advertising string the data in the string are tagged by their lengths and their flags, you will be able to find more information regarding the flags and the data in the Bluetooth Core Specification.
Thanks MT_dialog