Acquiring Client Services UUIDs and Handles
tdbconsulting_1416776 Sep 25, 2015 8:28 AMHello Cypress BLE World:
I would like to know which Cypress BLE API function(s) is (are) required to acquire the UUIDs of the Services and the UUIDs and Handles of the Service Characteristics of a connected Client.
For example, the services of a Peripheral Server (implementing the Device Information Service and a Custom Service) are as listed below and includes the UUIDs of the Services (i.e. 180A and AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) and the UUIDs and Handles of the Service Characteristics (e.g. 2A25,000B and 11111111111111111111111111111111,0018):
180A
2A25,000B,V
2A27,000D,V
2A26,000F,V
2A28,0011,V
2A29,0013,V
2A24,0015,V
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
11111111111111111111111111111111,0018,02,14
11111111111111111111111111111111,0019,10,02
22222222222222222222222222222222,001B,08,14
33333333333333333333333333333333,001D,02,14
33333333333333333333333333333333,001E,10,02
44444444444444444444444444444444,0020,08,14
Note: The Service Characteristics with duplicated UUIDS (i.e. 1’s and 3’s above) are those of Read Characteristics employing a Read and Notification that require a separate Handle for each.
Initially, I thought the function CyBle_GattcDiscoverAllPrimaryServices() was to be called while collecting the results in the CYBLE_EVT_GATTC_READ_BY_GROUP_TYPE_RSP event till completed as indicated by the CYBLE_EVT_GATTC_ERROR_RSP event as described on Page 156 of 558 of 'PSoC Creator Component Datasheet, Bluetooth Low Energy (BLE) 2.0' (Document Number: 001-97122 Rev. **).
However, calling CyBle_GattcDiscoverAllPrimaryServices() and collecting data in the CYBLE_EVT_GATTC_READ_BY_GROUP_TYPE_RSP event results in the following:
010007000018080008000118090015000A18
1600FFFFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
And the CYBLE_EVT_GATTC_ERROR_RSP event is never activated.
Is it possible that the function CyBle_GattcFindIncludedServices(), as described on Page 158 of 558, is to be called instead?
Unfortunately, as described in the document, there is a lot more work to be done to get that information and I would like to know if that is the function that is to be implemented before I spend a great deal of time coding, confirming, and testing it.
Is it possible that there is a function other than GattcDiscoverAllPrimaryServices() and CyBle_GattcFindIncludedServices() that should be used to get the connected Client Services and Service Characteristics UUIDs and Handles?
Thank you,
Tim