User's Guide
Table Of Contents
- 1. Introduction
- 2. Getting Started
- 3. Operational Examples
- 3.1 System Setup Examples
- 3.2 Cable Replacement Examples with CYSPP
- 3.3 Remote Control Examples with CYCommand
- 3.4 GAP Peripheral Examples
- 3.5 GAP Central Examples
- 3.6 GATT Server Examples
- 3.7 GATT Client Examples
- 3.8 Security and Encryption Examples
- 3.9 Beacon Examples
- 3.10 Performance Testing Examples
- 3.11 Device Firmware Update Examples
- 4. Application Design Examples
- 5. Host API Library
- 6. Troubleshooting
- 7. API Protocol Reference
- 8. GPIO Reference
- 9. Cypress GATT Profile Reference
- 10. Configuration Example Reference
- Revision History
API Protocol Reference
EZ-Serial BLE Firmware Platform User Guide, Doc. No. 002-11259 Rev. *E 199
7.3.6 GATT Client Group (ID=6)
GATT client methods relate to the client role of the Generic Attribute Protocol layer of the Bluetooth stack. These methods
are used for working with the GATT structures on remote devices, and can only be used while a device is connected.
Events within this group are listed below:
• gattc_discover_result (DR, ID=6/1)
• gattc_remote_procedure_complete (RPC, ID=6/2)
• gattc_data_received (D, ID=6/3)
• gattc_write_response (WRR, ID=6/4)
Commands within this group are documented in Section 7.2.6 GATT Client Group (ID=6).
7.3.6.1 gattc_discover_result (DR, ID=6/1)
Details about a single entry in the remote GATT database.
This event occurs while you are discovering remote services, characteristics, or descriptors.
Binary Header:
Type
Length
Group
ID
Notes
80
09-19
06
01
Variable-length event payload, minimum of 9 (0x09), maximum of 25 (0x19)
Text Info:
Text Name
Event Length
Notes
DR
0x0025-0x0044
Variable-length event payload, minimum of 37 (0x25), maximum of 69 (0x45)
Event Parameters:
Data Type
Name
Text
Description
uint8
conn_handle
C
Connection handle
uint16
attr_handle
H
Attribute handle
uint16 attr_handle_rel R
Related attribute handle:
• If discovering services, the end handle for the service group
• If discovering characteristics, the value handle that holds the application data
• If discovering descriptors, always 0 (not applicable)
uint16 type T
Attribute type:
• 0x2800 = Primary Service Declaration
• 0x2801 = Secondary Service Declaration
• 0x2802 = Include Declaration
• 0x2803 = Characteristic Declaration
• 0x2900 = Characteristic Extended Properties descriptor
• 0x2901 = Characteristic User Description descriptor
• 0x2902 = Client Characteristic Configuration descriptor
• 0x2903 = Server Characteristic Configuration descriptor
• 0x2904 = Characteristic Format descriptor
• 0x2905 = Characteristic Aggregate Format descriptor
• 0x0000 = Characteristic value attribute or user-defined structure (see UUID)
uint8 properties P
Characteristic properties bitmask, only non-zero during characteristic discovery:
• Bit 0 (0x01) = Broadcast
• Bit 1 (0x02) = Read
• Bit 2 (0x04) = Write without response
• Bit 3 (0x08) = Write
• Bit 4 (0x10) = Notify
• Bit 5 (0x20) = Indicate
• Bit 6 (0x40) = Signed write
• Bit 7 (0x80) = Extended properties (will have 0x2900 descriptor)
uint8a uuid U
UUID (16-bit, 32-bit, or 128-bit)
NOTE: uint8a data type requires one prefixed “length” byte before binary parameter
payload