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. */
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:
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?