THB2/bthome_phy6222/SDK/components/ble/host/gatt_internal.h

85 lines
2.6 KiB
C

/*************
gatt_internal.h
SDK_LICENSE
***************/
#ifndef GATT_INTERNAL_H
#define GATT_INTERNAL_H
#ifdef __cplusplus
extern "C"
{
#endif
/*********************************************************************
INCLUDES
*/
#include "osal_cbtimer.h"
#include "att.h"
#include "gatt.h"
/*********************************************************************
MACROS
*/
#define TIMER_VALID( id ) ( ( (id) != INVALID_TIMER_ID ) && \
( (id) != TIMEOUT_TIMER_ID ) )
#define TIMER_STATUS( id ) ( (id) == TIMEOUT_TIMER_ID ? bleTimeout : \
(id) == INVALID_TIMER_ID ? SUCCESS : blePending )
/*********************************************************************
CONSTANTS
*/
/*********************************************************************
TYPEDEFS
*/
// Srtucture for Attribute Version Information attribute
typedef struct
{
uint8 attVersion; // Attribute Protocol Version
uint8 gattVersion; // Generic Attribute Profile Version
uint16 manufacturerName; // Manufacturer Name
} gattVersionInfo_t;
// Function prototype to parse an attribute protocol request message
typedef bStatus_t (*gattParseReq_t)( uint8 sig, uint8 cmd, uint8* pParams, uint16 len, attMsg_t* pMsg );
// Function prototype to parse an attribute protocol response message
typedef bStatus_t (*gattParseRsp_t)( uint8* pParams, uint16 len, attMsg_t* pMsg );
// Function prototype to process an attribute protocol message
typedef bStatus_t (*gattProcessMsg_t)( uint16 connHandle, attPacket_t* pPkt );
// Function prototype to process an attribute protocol request message
typedef bStatus_t (*gattProcessReq_t)( uint16 connHandle, attMsg_t* pMsg );
/*********************************************************************
VARIABLES
*/
extern uint8 gattTaskID;
/*********************************************************************
FUNCTIONS
*/
extern void gattRegisterServer( gattProcessMsg_t pfnProcessMsg );
extern void gattRegisterClient( gattProcessMsg_t pfnProcessMsg );
extern bStatus_t gattNotifyEvent( uint8 taskId, uint16 connHandle, uint8 status,
uint8 method, gattMsg_t* pMsg );
extern void gattStartTimer( pfnCbTimer_t pfnCbTimer, uint8* pData,
uint16 timeout, uint8* pTimerId );
extern void gattStopTimer( uint8* pTimerId );
/*********************************************************************
*********************************************************************/
#ifdef __cplusplus
}
#endif
#endif /* GATT_INTERNAL_H */