This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Usage of uuids_complete, uuids_more_available & uuids_solicited

Is there a comprehensive explanation of the usage of uuids_complete, uuids_more_available & uuids_solicited when to use them and how the stack behaves/uses them. I getting bits and pieces by searching through previous questions, but never the whole picture.

The advertising tutorial is out of date, but helpful. Using the HRM example I see that the HRM service is added, plus the Battery & Information service, three services in total.

static ble_uuid_t m_adv_uuids[] = {{BLE_UUID_HEART_RATE_SERVICE, BLE_UUID_TYPE_BLE}, {BLE_UUID_BATTERY_SERVICE, BLE_UUID_TYPE_BLE}, {BLE_UUID_DEVICE_INFORMATION_SERVICE, BLE_UUID_TYPE_BLE}}; /**< Universally unique service identifiers. */

image description

Within advertising_init() m_adv_uuids is assigned to advdata.uuids_complete.p_uuids

advdata.uuids_complete.p_uuids = m_adv_uuids;

And the Master Control Panel showing 3 in total, the same 3 assigned in advertising_init(). When would I want to use uuids_more_available & uuids_solicited and how would the stack make use of these values.

I am conscious that this example is just using 16 bit UUID's.

Once connected I see the following:image description

So once connected where are the other service being added? Generic services (0x1800, 0x1801) are added. I guess the client searches for all services, once connected. Are these two being added by the stack ? & from the application how can they be disabled/enabled if necessary?

Parents
  • So UUID complete vs incomplete - Two Service UUID data types are assigned to each size of Service UUID. One Service UUID data type indicates that the Service UUID list is incomplete and the other indicates the Service UUID list is complete.

    Service solicited - A Peripheral device may send the Service Solicitation data type to invite Central devices that expose one or more of the services specified in the Service Solicitation data to connect.

    Please note that adding services to the list in the Advertisment packet does not add the same services to the attribute table. The attribute table needs to be populated using the GATTS functions. I recommend looking throught the tutorials if you want more details.

  • Very sorry run, I don't understand any of your reply. I will have to go through it step by step in detail and try to relate it to the CoreBT Spec and the Nordic Documentation. The tutorial on the subject doesn't help.

Reply Children
No Data
Related