本文整理汇总了C++中GATT_NUM_ATTRS函数的典型用法代码示例。如果您正苦于以下问题:C++ GATT_NUM_ATTRS函数的具体用法?C++ GATT_NUM_ATTRS怎么用?C++ GATT_NUM_ATTRS使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GATT_NUM_ATTRS函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ProxPeriph_AddService
/*********************************************************************
* @fn ProxPeriph_AddService
*
* @brief Initializes the Proximity Peripheral service by
* registering GATT attributes with the GATT server.
* Only call this function once.
*
* @param services - services to add. This is a bit map and can
* contain more than one service.
*
* @return Success or Failure
*/
bStatus_t ProxPeriph_AddService( uint32 services )
{
uint8 status = SUCCESS;
if ( services & PP_LINK_LOSS_SERVICE )
{
// Register Link Loss attribute list and CBs with GATT Server App
status = GATTServApp_RegisterService( linkLossAttrTbl, GATT_NUM_ATTRS( linkLossAttrTbl ),
GATT_MAX_ENCRYPT_KEY_SIZE, &proxPeriphCBs );
}
if ( ( status == SUCCESS ) && ( services & PP_IM_ALETR_SERVICE ) )
{
// Register Link Loss attribute list and CBs with GATT Server App
status = GATTServApp_RegisterService( imAlertAttrTbl, GATT_NUM_ATTRS( imAlertAttrTbl ),
GATT_MAX_ENCRYPT_KEY_SIZE, &proxPeriphCBs );
}
if ( ( status == SUCCESS ) && ( services & PP_TX_PWR_LEVEL_SERVICE ) )
{
// Register Tx Power Level attribute list and CBs with GATT Server App
status = GATTServApp_RegisterService( txPwrLevelAttrTbl, GATT_NUM_ATTRS( txPwrLevelAttrTbl ),
GATT_MAX_ENCRYPT_KEY_SIZE, &proxPeriphCBs );
}
return ( status );
}
示例2: UartProfile_AddService
/**
* @fn UartProfile_AddService
*
* @brief Initializes the Simple Profile service by registering
* GATT attributes with the GATT server.
*
* @param services - services to add. This is a bit map and can
* contain more than one service.
*
* @return Success or Failure
*/
bStatus_t UartProfile_AddService(void)
{
uint8 status = SUCCESS;
// Initialize Client Characteristic Configuration attributes
GATTServApp_InitCharCfg(INVALID_CONNHANDLE, uartServ2CharCfg);
// Register with Link DB to receive link status change callback
linkDB_Register(UartProfile_HandleConnStatusCB);
// Register GATT attribute list and CBs with GATT Server App
GATTServApp_RegisterService(uartServ1AttrTbl, GATT_NUM_ATTRS(uartServ1AttrTbl), &uartServ1CBs);
GATTServApp_RegisterService(uartServ2AttrTbl, GATT_NUM_ATTRS(uartServ2AttrTbl), &uartServ2CBs);
return (status);
}
示例3: Audio_SetParameter
/*********************************************************************
* @fn Audio_SetParameter
*
* @brief Set an Audio Profile parameter.
*
* @param param - Profile parameter ID
* @param len - length of data to write
* @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).
*
* @return SUCCESS, bleInvalidRange, INVALIDPARAMETER, or return
* value of GATTServApp_ProcessCharCfg
*/
bStatus_t Audio_SetParameter(uint8 param, uint8 len, void *value)
{
bStatus_t ret = SUCCESS;
switch (param)
{
case AUDIOPROFILE_START:
if (len == sizeof (audioProfileStart))
{
audioProfileStart = *((uint8*)value);
// See if Notifications have been enabled and send
ret = GATTServApp_ProcessCharCfg(audioProfileStartConfig,
&audioProfileStart,
FALSE,
audioProfileAttrTbl,
GATT_NUM_ATTRS(audioProfileAttrTbl),
INVALID_TASK_ID,
audioProfile_ReadAttrCB);
}
else
{
ret = bleInvalidRange;
}
break;
case AUDIOPROFILE_AUDIO:
{
VOID memcpy(audioProfileAudio, value, BLEAUDIO_NOTSIZE);
// See if Notifications have been enabled and send
ret = GATTServApp_ProcessCharCfg(audioProfileAudioConfig,
(uint8_t *)audioProfileAudio,
FALSE,
audioProfileAttrTbl,
GATT_NUM_ATTRS(audioProfileAttrTbl),
INVALID_TASK_ID,
audioProfile_ReadAttrCB);
}
break;
default:
ret = INVALIDPARAMETER;
break;
}
return ret;
}
示例4: OADTarget_getNextBlockReq
/*********************************************************************
* @fn OADTarget_getNextBlockReq
*
* @brief Process the Request for next image block.
*
* @param connHandle - connection message was received on
* @param blkNum - block number to request from OAD Manager.
*
* @return None
*/
static void OADTarget_getNextBlockReq(uint16_t connHandle, uint16_t blkNum)
{
uint16_t value = GATTServApp_ReadCharCfg(connHandle, oadImgBlockConfig);
// If notifications enabled
if (value & GATT_CLIENT_CFG_NOTIFY)
{
attHandleValueNoti_t noti;
noti.pValue = GATT_bm_alloc(connHandle, ATT_HANDLE_VALUE_NOTI, 2, NULL);
if (noti.pValue != NULL)
{
gattAttribute_t *pAttr = GATTServApp_FindAttr(oadAttrTbl,
GATT_NUM_ATTRS(oadAttrTbl),
oadCharVals+OAD_CHAR_IMG_BLOCK);
noti.handle = pAttr->handle;
noti.len = 2;
noti.pValue[0] = LO_UINT16(blkNum);
noti.pValue[1] = HI_UINT16(blkNum);
if (GATT_Notification(connHandle, ¬i, FALSE) != SUCCESS)
{
GATT_bm_free((gattMsg_t *)¬i, ATT_HANDLE_VALUE_NOTI);
}
}
}
}
示例5: OADTarget_addService
/*********************************************************************
* @fn OADTarget_addService
*
* @brief Initializes the OAD Service by registering GATT attributes
* with the GATT server. Only call this function once.
*
* @return The return value of GATTServApp_RegisterForMsg().
*/
bStatus_t OADTarget_addService(void)
{
// Allocate Client Characteristic Configuration table
oadImgIdentifyConfig = (gattCharCfg_t *)ICall_malloc(sizeof(gattCharCfg_t) *
linkDBNumConns);
if (oadImgIdentifyConfig == NULL)
{
return (bleMemAllocError);
}
// Allocate Client Characteristic Configuration table
oadImgBlockConfig = (gattCharCfg_t *)ICall_malloc(sizeof(gattCharCfg_t) *
linkDBNumConns);
if (oadImgBlockConfig == NULL)
{
// Free already allocated data
ICall_free(oadImgIdentifyConfig);
return (bleMemAllocError);
}
// Initialize Client Characteristic Configuration attributes
GATTServApp_InitCharCfg(INVALID_CONNHANDLE, oadImgIdentifyConfig);
GATTServApp_InitCharCfg(INVALID_CONNHANDLE, oadImgBlockConfig);
return GATTServApp_RegisterService(oadAttrTbl, GATT_NUM_ATTRS(oadAttrTbl),
GATT_MAX_ENCRYPT_KEY_SIZE, &oadCBs);
}
示例6: HeartRate_AddService
/*********************************************************************
* @fn HeartRate_AddService
*
* @brief Initializes the Heart Rate service by registering
* GATT attributes with the GATT server.
*
* @param services - services to add. This is a bit map and can
* contain more than one service.
*
* @return Success or Failure
*/
bStatus_t HeartRate_AddService(uint32 services)
{
uint8 status;
// Allocate Client Characteristic Configuration table
heartRateMeasClientCharCfg = (gattCharCfg_t *)ICall_malloc( sizeof(gattCharCfg_t) *
linkDBNumConns );
if ( heartRateMeasClientCharCfg == NULL )
{
return ( bleMemAllocError );
}
// Initialize Client Characteristic Configuration attributes.
GATTServApp_InitCharCfg(INVALID_CONNHANDLE, heartRateMeasClientCharCfg);
if (services & HEARTRATE_SERVICE)
{
// Register GATT attribute list and CBs with GATT Server App.
status = GATTServApp_RegisterService(heartRateAttrTbl,
GATT_NUM_ATTRS(heartRateAttrTbl),
GATT_MAX_ENCRYPT_KEY_SIZE,
&heartRateCBs);
}
else
{
status = SUCCESS;
}
return (status);
}
示例7: ExampleService_AddService
/*********************************************************************
* @fn SimpleProfile_AddService
*
* @brief Initializes the Simple Profile service by registering
* GATT attributes with the GATT server.
*
* @param services - services to add. This is a bit map and can
* contain more than one service.
*
* @return Success or Failure
*/
bStatus_t ExampleService_AddService( void )
{
static uint8 excute_time =0;
uint8 status = SUCCESS;
if(excute_time > 0) //make sure it is only excuted once, because everytime it excuted, it add the attr to the list ,no matter wheather it exists in it.
return(status);
else
excute_time++;
HalLcdWriteStringValue("excute_time",excute_time,10,HAL_LCD_LINE_6);
// Initialize Client Characteristic Configuration attributes
GATTServApp_InitCharCfg( INVALID_CONNHANDLE, simpleProfileChar2Config );
// Register with Link DB to receive link status change callback
VOID linkDB_Register( simpleProfile_HandleConnStatusCB );
// Register GATT attribute list and CBs with GATT Server App
status = GATTServApp_RegisterService( simpleProfileAttrTbl,
GATT_NUM_ATTRS( simpleProfileAttrTbl ),
&simpleProfileCBs );
return ( status );
}
示例8: ClimbProfile_AddService
/*********************************************************************
* @fn ClimbProfile_AddService
*
* @brief Initializes the Simple Profile service by registering
* GATT attributes with the GATT server.
*
* @param services - services to add. This is a bit map and can
* contain more than one service.
*
* @return Success or Failure
*/
bStatus_t ClimbProfile_AddService( uint32 services )
{
uint8 status;
// Allocate Client Characteristic Configuration table
climbProfileChar1Config = (gattCharCfg_t *)ICall_malloc( sizeof(gattCharCfg_t) *
linkDBNumConns );
if ( climbProfileChar1Config == NULL )
{
return ( bleMemAllocError );
}
// Initialize Client Characteristic Configuration attributes
GATTServApp_InitCharCfg( INVALID_CONNHANDLE, climbProfileChar1Config );
if ( services & CLIMBPROFILE_SERVICE )
{
// Register GATT attribute list and CBs with GATT Server App
status = GATTServApp_RegisterService( climbProfileAttrTbl,
GATT_NUM_ATTRS( climbProfileAttrTbl ),
GATT_MAX_ENCRYPT_KEY_SIZE,
&climbProfileCBs );
}
else
{
status = SUCCESS;
}
return ( status );
}
示例9: Pir_SetParameter
/*********************************************************************
* @fn Pir_SetParameter
*
* @brief Set a parameter.
*
* @param param - Profile parameter ID
* @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).
*
* @return bStatus_t
*/
bStatus_t Pir_SetParameter( uint8 param, uint8 len, void *value )
{
bStatus_t ret = SUCCESS;
switch ( param )
{
case SENSOR_DATA:
if ( len == SENSOR_DATA_LEN )
{
VOID osal_memcpy( sensorData, value, SENSOR_DATA_LEN );
// See if Notification has been enabled
GATTServApp_ProcessCharCfg( sensorDataConfig, sensorData, FALSE,
sensorAttrTable, GATT_NUM_ATTRS( sensorAttrTable ),
INVALID_TASK_ID );
}
else
{
ret = bleInvalidRange;
}
break;
default:
ret = INVALIDPARAMETER;
break;
}
return ( ret );
}
示例10: SimpleProfile_AddService
/*********************************************************************
* @fn SimpleProfile_AddService
*
* @brief Initializes the Simple Profile service by registering
* GATT attributes with the GATT server.
*
* @param services - services to add. This is a bit map and can
* contain more than one service.
*
* @return Success or Failure
*/
bStatus_t SimpleProfile_AddService( uint32 services )
{
uint8 status = SUCCESS;
// Allocate Client Characteristic Configuration table
simpleProfileChar4Config = (gattCharCfg_t *)osal_mem_alloc( sizeof(gattCharCfg_t) *
linkDBNumConns );
if ( simpleProfileChar4Config == NULL )
{
return ( bleMemAllocError );
}
// Initialize Client Characteristic Configuration attributes
GATTServApp_InitCharCfg( INVALID_CONNHANDLE, simpleProfileChar4Config );
// Register with Link DB to receive link status change callback
VOID linkDB_Register( simpleProfile_HandleConnStatusCB );
if ( services & SIMPLEPROFILE_SERVICE )
{
// Register GATT attribute list and CBs with GATT Server App
status = GATTServApp_RegisterService( simpleProfileAttrTbl,
GATT_NUM_ATTRS( simpleProfileAttrTbl ),
GATT_MIN_ENCRYPT_KEY_SIZE,
&simpleProfileCBs );
}
return ( status );
}
示例11: SK_AddService
/*********************************************************************
* @fn SK_AddService
*
* @brief Initializes the Simple Key service by registering
* GATT attributes with the GATT server.
*
* @param services - services to add. This is a bit map and can
* contain more than one service.
*
* @return Success or Failure
*/
bStatus_t SK_AddService(uint32 services)
{
uint8 status = SUCCESS;
// Allocate Client Characteristic Configuration table
skConfig = (gattCharCfg_t *)ICall_malloc(sizeof(gattCharCfg_t) *
linkDBNumConns);
if (skConfig == NULL)
{
return (bleMemAllocError);
}
// Initialize Client Characteristic Configuration attributes
GATTServApp_InitCharCfg(INVALID_CONNHANDLE, skConfig);
if (services & SK_SERVICE)
{
// Register GATT attribute list and CBs with GATT Server App
status = GATTServApp_RegisterService(simplekeysAttrTbl,
GATT_NUM_ATTRS(simplekeysAttrTbl),
GATT_MAX_ENCRYPT_KEY_SIZE,
&skCBs);
}
return (status);
}
示例12: ClimbProfile_SetParameter
/*********************************************************************
* @fn ClimbProfile_SetParameter
*
* @brief Set a Simple Profile parameter.
*
* @param param - Profile parameter ID
* @param len - length of data to write
* @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).
*
* @return bStatus_t
*/
bStatus_t ClimbProfile_SetParameter( uint8 param, uint8 len, void *value )
{
bStatus_t ret = SUCCESS;
switch ( param )
{
case CLIMBPROFILE_CHAR1:
if( len <= CLIMBPROFILE_CHAR1_LEN) {
VOID memcpy( climbProfileChar1, value, CLIMBPROFILE_CHAR1_LEN );
// climbProfileChar1 = (uint8*)value;
/*
attHandleValueNoti_t noti;
noti.len = len;
noti.handle = climbProfileAttrTbl[2].handle;
ret = GATT_Notification(0,¬i, FALSE);
*/
GATTServApp_ProcessCharCfg( climbProfileChar1Config, climbProfileChar1, FALSE,
climbProfileAttrTbl, GATT_NUM_ATTRS( climbProfileAttrTbl ),
INVALID_TASK_ID, climbProfile_ReadAttrCB );
}
else
{
ret = bleInvalidRange;
}
break;
default:
ret = INVALIDPARAMETER;
break;
}
return ( ret );
}
示例13: Audio_AddService
/*********************************************************************
* @fn Audio_AddService
*
* @brief Initializes the Audio Profile service by registering
* GATT attributes with the GATT server.
*
* @return SUCCESS, bleMemAllocError, or return value of
* GATTServApp_RegisterService
*/
bStatus_t Audio_AddService(void)
{
uint8 status = SUCCESS;
// Allocate Audio Cmd Client Characteristic Configuration table
audioProfileStartConfig = (gattCharCfg_t *)ICall_malloc(sizeof(gattCharCfg_t)*
linkDBNumConns );
if (audioProfileStartConfig == NULL)
{
return bleMemAllocError;
}
// Initialize Audio Cmd Client Characteristic Configuration attributes
GATTServApp_InitCharCfg(INVALID_CONNHANDLE, audioProfileStartConfig);
// Allocate Audio Stream Client Characteristic Configuration table
audioProfileAudioConfig = (gattCharCfg_t *)ICall_malloc(sizeof(gattCharCfg_t)*
linkDBNumConns);
if (audioProfileAudioConfig == NULL)
{
return bleMemAllocError;
}
// Initialize Audio Stream Client Characteristic Configuration attributes
GATTServApp_InitCharCfg(INVALID_CONNHANDLE, audioProfileAudioConfig);
// Register GATT attribute list and CBs with GATT Server App
status = GATTServApp_RegisterService(audioProfileAttrTbl,
GATT_NUM_ATTRS(audioProfileAttrTbl),
GATT_MAX_ENCRYPT_KEY_SIZE,
&audioProfileCBs);
return status;
}
示例14: simpleProfile_ProcessCharCfg
/*********************************************************************
* @fn simpleProfile_ProcessCharCfg
*
* @brief Process Client Charateristic Configuration change.
*
* @param charCfgTbl - characteristic configuration table
* @param pValue - pointer to attribute value
* @param authenticated - whether an authenticated link is required
*
* @return none
*/
static void simpleProfile_ProcessCharCfg( gattCharCfg_t *charCfgTbl,
uint8 *pValue, uint8 authenticated )
{
for ( uint8 i = 0; i < GATT_MAX_NUM_CONN; i++ )
{
gattCharCfg_t *pItem = &(charCfgTbl[i]);
if ( ( pItem->connHandle != INVALID_CONNHANDLE ) &&
( pItem->value != GATT_CFG_NO_OPERATION ) )
{
gattAttribute_t *pAttr;
// Find the characteristic value attribute
pAttr = GATTServApp_FindAttr( simpleProfileAttrTbl, GATT_NUM_ATTRS( simpleProfileAttrTbl ), pValue );
if ( pAttr != NULL )
{
attHandleValueNoti_t noti;
// If the attribute value is longer than (ATT_MTU - 3) octets, then
// only the first (ATT_MTU - 3) octets of this attributes value can
// be sent in a notification.
if ( simpleProfile_ReadAttrCB( pItem->connHandle, pAttr, noti.value,
¬i.len, 0, (ATT_MTU_SIZE-3) ) == SUCCESS )
{
noti.handle = pAttr->handle;
if ( pItem->value & GATT_CLIENT_CFG_NOTIFY )
{
VOID GATT_Notification( pItem->connHandle, ¬i, authenticated );
}
}
}
}
} // for
}
示例15: DevInfo_AddService
/*********************************************************************
* @fn DevInfo_AddService
*
* @brief Initializes the Device Information service by registering
* GATT attributes with the GATT server.
*
* @return Success or Failure
*/
bStatus_t DevInfo_AddService( void )
{
// Register GATT attribute list and CBs with GATT Server App
return GATTServApp_RegisterService( devInfoAttrTbl,
GATT_NUM_ATTRS( devInfoAttrTbl ),
&devInfoCBs );
}