50 #define GATT_CLIENT_CHAR_CFG_UPDATED_EVENT 0x00 59 #define GATT_PROP_BCAST 0x01 60 #define GATT_PROP_READ 0x02 61 #define GATT_PROP_WRITE_NO_RSP 0x04 62 #define GATT_PROP_WRITE 0x08 63 #define GATT_PROP_NOTIFY 0x10 64 #define GATT_PROP_INDICATE 0x20 65 #define GATT_PROP_AUTHEN 0x40 66 #define GATT_PROP_EXTENDED 0x80 74 #define GATT_EXT_PROP_RELIABLE_WRITE 0x0001 75 #define GATT_EXT_PROP_WRITABLE_AUX 0x0002 83 #define GATT_CLIENT_CFG_NOTIFY 0x0001 84 #define GATT_CLIENT_CFG_INDICATE 0x0002 92 #define GATT_SERV_CFG_BCAST 0x0001 96 #define GATT_CFG_NO_OPERATION 0x0000 102 #define GATT_FORMAT_BOOL 0x01 103 #define GATT_FORMAT_2BIT 0x02 104 #define GATT_FORMAT_NIBBLE 0x03 105 #define GATT_FORMAT_UINT8 0x04 106 #define GATT_FORMAT_UINT12 0x05 107 #define GATT_FORMAT_UINT16 0x06 108 #define GATT_FORMAT_UINT24 0x07 109 #define GATT_FORMAT_UINT32 0x08 110 #define GATT_FORMAT_UINT48 0x09 111 #define GATT_FORMAT_UINT64 0x0a 112 #define GATT_FORMAT_UINT128 0x0b 113 #define GATT_FORMAT_SINT8 0x0c 114 #define GATT_FORMAT_SINT12 0x0d 115 #define GATT_FORMAT_SINT16 0x0e 116 #define GATT_FORMAT_SINT24 0x0f 117 #define GATT_FORMAT_SINT32 0x10 118 #define GATT_FORMAT_SINT48 0x11 119 #define GATT_FORMAT_SINT64 0x12 120 #define GATT_FORMAT_SINT128 0x13 121 #define GATT_FORMAT_FLOAT32 0x14 122 #define GATT_FORMAT_FLOAT64 0x15 123 #define GATT_FORMAT_SFLOAT 0x16 124 #define GATT_FORMAT_FLOAT 0x17 125 #define GATT_FORMAT_DUINT16 0x18 126 #define GATT_FORMAT_UTF8S 0x19 127 #define GATT_FORMAT_UTF16S 0x1a 128 #define GATT_FORMAT_STRUCT 0x1b 135 #define GATT_NS_NONE 0x00 136 #define GATT_NS_BT_SIG 0x01 137 #define GATT_NS_BT_DESC_UNKNOWN 0x0000 140 #define GATT_ALL_SERVICES 0xFFFFFFFF 144 #define GATT_SERVICE 0x00000001 147 #if defined ( TESTMODES ) 149 #define GATT_TESTMODE_OFF 0 // Test mode off 150 #define GATT_TESTMODE_NO_RSP 1 // Ignore incoming request 151 #define GATT_TESTMODE_PREPARE_WRITE 2 // Forward Prepare Write Request right away 152 #define GATT_TESTMODE_MAX_MTU_SIZE 3 // Use Max ATT MTU size with Exchange MTU Rsp 153 #define GATT_TESTMODE_CORRUPT_PW_DATA 4 // Corrupt incoming Prepare Write Request data 160 #define GATT_PARAM_NUM_PREPARE_WRITES 0 163 #define PTR_TYPE unsigned int * 169 #define GATT_LOCAL_READ 0xFF 170 #define GATT_LOCAL_WRITE 0xFE 184 #define GATT_NUM_ATTRS( attrs ) ( sizeof( attrs ) / sizeof( gattAttribute_t ) ) 187 #define GATT_SERVICE_HANDLE( attrs ) ( (attrs)[0].handle ) 190 #define GATT_INCLUDED_HANDLE( attrs, i ) ( *((uint16 *)((attrs)[(i)].pValue)) ) 193 #define GATT_CCC_TBL( pValue ) ( (gattCharCfg_t *)(*((PTR_TYPE)(pValue))) ) 235 uint8 *pValue, uint16 *pLen, uint16 offset,
236 uint16 maxLen, uint8 method );
270 uint8 *pValue, uint16 len, uint16 offset,
408 uint16 numAttrs, uint8 encKeySize,
439 uint16 numAttrs, uint8 *pValue );
580 uint8 *pValue, uint16 len, uint16 offset,
603 uint16 numAttrs, uint8 taskId,
649 uint16 service, uint8 *pValue, uint16 *pLen,
650 uint16 offset, uint16 maxLen, uint8 method );
666 uint8 *pValue, uint16 len, uint16 offset,
683 uint16 pLen, uint16 offset );
716 extern void GATTServApp_Init( uint8 taskId );
729 extern uint16 GATTServApp_ProcessEvent( uint8 taskId, uint16 events );
793 extern bStatus_t gattServApp_buildReadByTypeRsp( uint16 connHandle, uint8 *pAttrValue, uint16 attrLen, uint16 attrHandle );
804 extern prepareWrites_t *gattServApp_FindPrepareWriteQ( uint16 connHandle );
uint16 GATTServApp_GetParamValue(void)
Get a GATT Server Application Parameter value.
This API allows the software components in the Z-Stack to be written independently of the specifics o...
uint16 connHandle
Connection message was received on.
Definition: gattservapp.h:326
gattServiceCBsInfo_t serviceInfo
service handle/callbacks
Definition: gattservapp.h:364
GATT Server App event header format.
Definition: gattservapp.h:323
void GATTServApp_SetParamValue(uint16 value)
Set a GATT Server Application Parameter value. Use this function to change the default GATT parameter...
gattAttribute_t * GATTServApp_FindAttr(gattAttribute_t *pAttrTbl, uint16 numAttrs, uint8 *pValue)
Find the attribute record within a service attribute table for a given attribute value pointer...
pfnGATTAuthorizeAttrCB_t pfnAuthorizeAttrCB
Authorization callback function pointer.
Definition: gattservapp.h:319
Service callbacks list item.
Definition: gattservapp.h:361
void GATTServApp_SendCCCUpdatedEvent(uint16 connHandle, uint16 attrHandle, uint16 value)
Build and send the GATT_CLIENT_CHAR_CFG_UPDATED_EVENT to the application.
uint16 handle
Service handle - assigned internally by GATT Server.
Definition: gattservapp.h:356
Structure to keep Prepare Write Requests for each Client.
Definition: gattservapp.h:347
bStatus_t GATTServApp_GetParameter(uint8 param, void *pValue)
Get a GATT Server parameter.
pfnGATTWriteAttrCB_t pfnWriteAttrCB
Write callback function pointer.
Definition: gattservapp.h:318
prepareWrites_t * prepareWritesTbl
Server Prepare Write table (one entry per each physical link)
GATT Structure to keep CBs information for each service being registered.
Definition: gattservapp.h:354
uint8 value
Characteristic configuration value for this client.
Definition: gattservapp.h:306
bStatus_t GATTServApp_AddService(uint32 services)
Add function for the GATT Service.
pfnGATTReadAttrCB_t pfnReadAttrCB
Read callback function pointer.
Definition: gattservapp.h:317
bStatus_t(* pfnGATTReadAttrCB_t)(uint16 connHandle, gattAttribute_t *pAttr, uint8 *pValue, uint16 *pLen, uint16 offset, uint16 maxLen, uint8 method)
Callback function prototype to read an attribute value.
Definition: gattservapp.h:234
bStatus_t GATTServApp_ReadRsp(uint16 connHandle, uint8 *pValue, uint16 pLen, uint16 offset)
If a service returns blePending to the read attribute call back invoked from GATTServApp, the service can later respond to with the value to be read using this API.
uint8 GATTServApp_WriteAttr(uint16 connHandle, uint16 handle, uint8 *pValue, uint16 len, uint16 offset, uint8 method)
Write attribute data.
struct _serviceCBsList * next
pointer to next service callbacks record
Definition: gattservapp.h:363
Structure for Client Characteristic Configuration.
Definition: gattservapp.h:303
osal_event_hdr_t hdr
GATT_SERV_MSG_EVENT and status.
Definition: gattservapp.h:325
uint16 connHandle
Client connection handle.
Definition: gattservapp.h:305
bStatus_t GATTServApp_ProcessCharCfg(gattCharCfg_t *charCfgTbl, uint8 *pValue, uint8 authenticated, gattAttribute_t *attrTbl, uint16 numAttrs, uint8 taskId, pfnGATTReadAttrCB_t pfnReadAttrCB)
Process Client Characteristic Configuration change.
uint16 GATTServApp_ReadCharCfg(uint16 connHandle, gattCharCfg_t *charCfgTbl)
Read the client characteristic configuration for a given client.
void GATTServApp_RegisterForMsg(uint8 taskID)
Register your task ID to receive event messages from the GATT Server Application. ...
attPrepareWriteReq_t * pPrepareWriteQ
Prepare Write Request queue.
Definition: gattservapp.h:350
void GATTServApp_InitCharCfg(uint16 connHandle, gattCharCfg_t *charCfgTbl)
Initialize the client characteristic configuration table.
uint16 value
attribute new value
Definition: gattservapp.h:342
uint16 connHandle
Connection message was received on.
Definition: gattservapp.h:339
Type definitions and macros for BLE stack.
bStatus_t GATTServApp_SetParameter(uint8 param, uint8 len, void *pValue)
Set a GATT Server parameter.
bStatus_t GATTServApp_SendServiceChangedInd(uint16 connHandle, uint8 taskId)
Send out a Service Changed Indication.
bStatus_t GATTServApp_DelService(uint32 services)
Delete function for the GATT Service.
uint16 connHandle
connection message was received on
Definition: gattservapp.h:349
uint16 attrHandle
attribute handle
Definition: gattservapp.h:341
serviceCBsList_t * serviceCBsList
Callbacks for services.
OSAL Event Header.
Definition: osal.h:92
GATT_CLIENT_CHAR_CFG_UPDATED_EVENT message format.
Definition: gattservapp.h:336
struct _serviceCBsList serviceCBsList_t
Service callbacks list item.
GATT GATT_MSG_EVENT message format.
Definition: gatt.h:211
uint8 method
GATT type of command. Ref: GATT Server Message IDs.
Definition: gattservapp.h:327
bStatus_t GATTServApp_RegisterService(gattAttribute_t *pAttrs, uint16 numAttrs, uint8 encKeySize, CONST gattServiceCBs_t *pServiceCBs)
Register a service's attribute list and callback functions with the GATT Server Application.
bStatus_t GATTServApp_ProcessCCCWriteReq(uint16 connHandle, gattAttribute_t *pAttr, uint8 *pValue, uint16 len, uint16 offset, uint16 validCfg)
Process the client characteristic configuration write request for a given client. ...
osal_event_hdr_t hdr
GATT_SERV_MSG_EVENT and status.
Definition: gattservapp.h:338
GATT Attribute format.
Definition: gatt.h:240
Status_t bStatus_t
BLE Generic Status return.
Definition: bcomdef.h:225
CONST gattServiceCBs_t * pCBs
Service callback function pointers.
Definition: gattservapp.h:357
Prepare Write Request format.
Definition: att.h:544
uint8 method
GATT_CLIENT_CHAR_CFG_UPDATED_EVENT.
Definition: gattservapp.h:340
bStatus_t GATTServApp_UpdateCharCfg(uint16 connHandle, uint16 attrHandle, uint16 value)
Update the Client Characteristic Configuration for a given Client.
uint8 GATTServApp_WriteCharCfg(uint16 connHandle, gattCharCfg_t *charCfgTbl, uint16 value)
Write the client characteristic configuration for a given client.
GATT Structure for service callback functions.
Definition: gattservapp.h:315
bStatus_t(* pfnGATTAuthorizeAttrCB_t)(uint16 connHandle, gattAttribute_t *pAttr, uint8 opcode)
Callback function prototype to authorize a Read or Write operation on a given attribute.
Definition: gattservapp.h:283
Execute Write Request format.
Definition: att.h:570
bStatus_t GATTServApp_DeregisterService(uint16 handle, gattAttribute_t **p2pAttrs)
Deregister a service's attribute list and callback functions from the GATT Server Application...
bStatus_t(* pfnGATTWriteAttrCB_t)(uint16 connHandle, gattAttribute_t *pAttr, uint8 *pValue, uint16 len, uint16 offset, uint8 method)
Callback function prototype to write an attribute value.
Definition: gattservapp.h:269
uint8 GATTServApp_ReadAttr(uint16 connHandle, gattAttribute_t *pAttr, uint16 service, uint8 *pValue, uint16 *pLen, uint16 offset, uint16 maxLen, uint8 method)
Read an attribute. If the format of the attribute value is unknown to GATT Server, use the callback function provided by the Service.