123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- /**
- * @file
- * @author chipsea
- * @brief
- * @version 0.1
- * @date 2020-11-30
- * @copyright Copyright (c) 2020, CHIPSEA Co., Ltd.
- * @note
- */
- /**************************************************************************************************
- Filename: gapgattserver.h
- Revised:
- Revision:
- Description: This file contains GAP GATT attribute definitions
- and prototypes.
- **************************************************************************************************/
- #ifndef GAPGATTSERVER_H
- #define GAPGATTSERVER_H
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- /*********************************************************************
- * INCLUDES
- */
- /*********************************************************************
- * CONSTANTS
- */
- #define GAP_DEVICE_NAME_LEN (30+1)
- // Privacy Flag States
- #define GAP_PRIVACY_DISABLED 0x00
- #define GAP_PRIVACY_ENABLED 0x01
- // GAP GATT Server Parameters
- #define GGS_DEVICE_NAME_ATT 0 // RW uint8[GAP_DEVICE_NAME_LEN]
- #define GGS_APPEARANCE_ATT 1 // RW uint16
- #define GGS_PERI_PRIVACY_FLAG_ATT 2 // RW uint8
- #define GGS_RECONNCT_ADDR_ATT 3 // RW uint8[B_ADDR_LEN]
- #define GGS_PERI_CONN_PARAM_ATT 4 // RW sizeof(gapPeriConnectParams_t)
- #define GGS_PERI_PRIVACY_FLAG_PROPS 5 // RW uint8
- #define GGS_W_PERMIT_DEVICE_NAME_ATT 6 // W uint8
- #define GGS_W_PERMIT_APPEARANCE_ATT 7 // W uint8
- #define GGS_W_PERMIT_PRIVACY_FLAG_ATT 8 // W uint8
- // GAP Services bit fields
- #define GAP_SERVICE 0x00000001
- // Attribute ID used with application's callback when attribute value is changed OTA
- #define GGS_DEVICE_NAME_ID 0
- #define GGS_APPEARANCE_ID 1
- #if defined ( TESTMODES )
- // GGS TestModes
- #define GGS_TESTMODE_OFF 0 // No Test mode
- #define GGS_TESTMODE_W_PERMIT_DEVICE_NAME 1 // Make Device Name attribute writable
- #define GGS_TESTMODE_W_PERMIT_APPEARANCE 2 // Make Appearance attribute writable
- #define GGS_TESTMODE_W_PERMIT_PRIVACY_FLAG 3 // Make Peripheral Privacy Flag attribute writable with authentication
- #endif // TESTMODES
- /*********************************************************************
- * TYPEDEFS
- */
- // Callback to notify when attribute value is changed over the air.
- typedef void (*ggsAttrValueChange_t)( uint8 attrId );
- // GAP GATT Server callback structure
- typedef struct
- {
- ggsAttrValueChange_t pfnAttrValueChange; // When attribute value is changed OTA
- } ggsAppCBs_t;
- /*********************************************************************
- * MACROS
- */
- /*********************************************************************
- * Profile Callbacks
- */
- /*********************************************************************
- * API FUNCTIONS
- */
- /**
- * @brief Set a GAP GATT Server parameter.
- *
- * @param param - Profile parameter ID<BR>
- * @param len - length of data to right
- * @param value - pointer to data to write. This is dependent on
- * the parameter ID and WILL be cast to the appropriate
- * data type (example: data type of uint16 will be cast to
- * uint16 pointer).<BR>
- *
- * @return bStatus_t
- */
- extern bStatus_t GGS_SetParameter( uint8 param, uint8 len, void *value );
- /**
- * @brief Get a GAP GATT Server parameter.
- *
- * @param param - Profile parameter ID<BR>
- * @param value - pointer to data to put. This is dependent on
- * the parameter ID and WILL be cast to the appropriate
- * data type (example: data type of uint16 will be cast to
- * uint16 pointer).<BR>
- *
- * @return bStatus_t
- */
- extern bStatus_t GGS_GetParameter( uint8 param, void *value );
- /**
- * @brief Add function for the GAP GATT Service.
- *
- * @param services - services to add. This is a bit map and can
- * contain more than one service.
- *
- * @return SUCCESS: Service added successfully.<BR>
- * INVALIDPARAMETER: Invalid service field.<BR>
- * FAILURE: Not enough attribute handles available.<BR>
- * bleMemAllocError: Memory allocation error occurred.<BR>
- */
- extern bStatus_t GGS_AddService( uint32 services );
- /**
- * @brief Delete function for the GAP GATT Service.
- *
- * @param services - services to delete. This is a bit map and can
- * contain more than one service.
- *
- * @return SUCCESS: Service deleted successfully.<BR>
- * FAILURE: Service not found.<BR>
- */
- extern bStatus_t GGS_DelService( uint32 services );
- /**
- * @brief Registers the application callback function.
- *
- * Note: Callback registration is needed only when the
- * Device Name is made writable. The application
- * will be notified when the Device Name is changed
- * over the air.
- *
- * @param appCallbacks - pointer to application callbacks.
- *
- * @return none
- */
- extern void GGS_RegisterAppCBs( ggsAppCBs_t *appCallbacks );
- /**
- * @brief Set a GGS Parameter value. Use this function to change
- * the default GGS parameter values.
- *
- * @param value - new GGS param value
- *
- * @return void
- */
- extern void GGS_SetParamValue( uint16 value );
- /**
- * @brief Get a GGS Parameter value.
- *
- * @param none
- *
- * @return GGS Parameter value
- */
- extern uint16 GGS_GetParamValue( void );
- /*********************************************************************
- * TASK FUNCTIONS - Don't call these. These are system functions.
- */
- /*********************************************************************
- *********************************************************************/
- #ifdef __cplusplus
- }
- #endif
- #endif /* GAPGATTSERVER_H */
|