一、GATT API
1)GATT服务程序
2)GATT子服务程序
1、GATT_ReadUsingCharUUID (uint16 connHandle, attReadByTypeReq_t *pReq, uint8 taskId)
通过uuid来读取特征值,可以外设返回数据会在主设产生一个ATT_READ_BY_TYPE_RSP回应,可以在里面获取相应数据。
2、GATT_ReadCharValue (uint16 connHandle, attReadReq_t *pReq, uint8 taskId)
通过handle获取characteristic的value值。attReadReq_t参数中需要填充handle值
resp:
作为外设的回应,主设这边会受到一个ATT_READ_RSP或者ATT_ERR_RSP,回应的结构包含句柄以及attribute的值。
对应回应的结构
typedef struct
{
uint8 numPairs; //!< Number of attribute handle-UUID pairs found
uint8 len; //!< Size of each attribute handle-value pair
uint8 dataList[ATT_MTU_SIZE-2]; //!< List of 1 or more attribute handle-value pairs
} attReadByTypeRsp_t;
3 bStatus_t GATT_ReadMultiCharValues(uint16 connHandle,attReadMultiReq_t *pReq,uint8 taskId)
读取多个特征值,需要在attReadMutiReq_t中填充多个需要读取的handle值
4 bStatus_t GATT_WriteCharValue (uint16 connHandle, attWriteReq_t *pReq, uint8 taskId)
根据对应handle值写入特征值,对应的特征值必须要有写权限,否则无法写入成功。
二、ATT API
三、GAP API
1、GAPRole_SetParameter(GAPROLE_RSSI_READ_RATE, ……)
获取RSSI值
2、GAPCentralRole_UpdateLink();
执行直接调用HCI_LE_ConnUpdateCmd,均为更新参数函数。
四、HCI
extern hciStatus_t HCI_LE_ConnUpdateCmd( uint16 connHandle,
uint16 connIntervalMin,
uint16 connIntervalMax,
uint16 connLatency,
uint16 connTimeout,
uint16 minLen,
uint16 maxLen );
设置更新连接参数。设置参数:lave latency是从设备在没有数据要求主动发送的时候,允许的跳过的connection event的个数,从而达到更低的功耗。supervision timeout就是超过多长时间主设备或者从设备没有回应对方的poll请求,就认为连接丢失的时间长。
HCI_EXT_SetTxPowerCmd
设置蓝牙发送功率,设置参数param,可以为0x00,0x01,0x02,0x03,分别代表HCI_EXT_TX_POWER_MINUS_23_DBM,HCI_EXT_TX_POWER_MINUS_6_DBM,HCI_EXT_TX_POWER_0_DBM,HCI_EXT_TX_POWER_4_DBM (CC2540 only)
返回值 0x00 success
五、SM(Security Manager API)
bStatus_t SM_Encrypt(uint8 *pKey,uint8 *pPlainText,uint8 *pResult);
通过key加密数据
/*extern llStatus_t LL_EXT_SetBDADDR( uint8 *bdAddr );
设置设备的BLE地址(BDADDR)*/
bStatus_t GATT_ReadCharValue | ( | uint16 | connHandle, | |
attReadReq_t * | pReq, | |||
uint8 | taskId | |||
) |