hci.h

转自:http://blog.csdn.net/xiaoleiacmer/article/details/44036607#t1

  1. //分配内存,应用程序不应该调用这个函数.
  2. void *HCI_bm_alloc( uint16 size );
  3. //检查连接时间参数和连接时间参数的组合是否有效
  4. uint8 HCI_ValidConnTimeParams( uint16 connIntervalMin,
  5. uint16 connIntervalMax,
  6. uint16 connLatency,
  7. uint16 connTimeout );
  8. //HCI vendor specific registration for HCI Test Application
  9. void HCI_TestAppTaskRegister( uint8 taskID );
  10. // HCI vendor specific registration for Host GAP.
  11. void HCI_GAPTaskRegister( uint8 taskID );
  12. //HCI vendor specific registration for Host L2CAP.
  13. void HCI_L2CAPTaskRegister( uint8 taskID );
  14. //HCI vendor specific registration for Host SMP.
  15. void HCI_SMPTaskRegister( uint8 taskID );
  16. // HCI vendor specific registration for Host extended commands.
  17. void HCI_ExtTaskRegister( uint8 taskID );
  18. //发送一个ACL数据包
  19. hciStatus_t HCI_SendDataPkt( uint16 connHandle,
  20. uint8  pbFlag,
  21. uint16 pktLen,
  22. uint8  *pData );
  23. //中断连接
  24. hciStatus_t HCI_DisconnectCmd( uint16 connHandle,
  25. uint8  reason );
  26. //请求得到版本信息
  27. hciStatus_t HCI_ReadRemoteVersionInfoCmd( uint16 connHandle );
  28. //设置消息蒙版,确定支持哪些消息
  29. hciStatus_t HCI_SetEventMaskCmd( uint8 *pMask );
  30. //重置连接层
  31. hciStatus_t HCI_ResetCmd( void );
  32. //读取发射功率
  33. hciStatus_t HCI_ReadTransmitPowerLevelCmd( uint16 connHandle,
  34. uint8  txPwrType );
  35. //主机用来开关流量控制(控制器法向主机的)
  36. hciStatus_t HCI_SetControllerToHostFlowCtrlCmd( uint8 flowControlEnable );
  37. //This BT API is used by the Host to notify the Controller of the maximum size ACL buffer size the Controller can send to the Host.
  38. hciStatus_t HCI_HostBufferSizeCmd( uint16 hostAclPktLen,
  39. uint8  hostSyncPktLen,
  40. uint16 hostTotalNumAclPkts,
  41. uint16 hostTotalNumSyncPkts );
  42. //This BT API is used by the Host to notify the Controller of the number of HCI data packets that have been completed for each connection handle since this command was previously sent to the controller.
  43. hciStatus_t HCI_HostNumCompletedPktCmd( uint8  numHandles,
  44. uint16 *connHandles,
  45. uint16 *numCompletedPkts );
  46. //读取本地版本信息
  47. hciStatus_t HCI_ReadLocalVersionInfoCmd( void );
  48. //读取本地支持的命令
  49. hciStatus_t HCI_ReadLocalSupportedCommandsCmd( void );
  50. //读取本地支持的特性
  51. hciStatus_t HCI_ReadLocalSupportedFeaturesCmd( void );
  52. //读取设备的BLE地址
  53. hciStatus_t HCI_ReadBDADDRCmd( void );
  54. //读取最后一个包的RSSI
  55. hciStatus_t HCI_ReadRssiCmd( uint16 connHandle );
  56. //设置HCI LE时间蒙版,确定支持哪些事件
  57. hciStatus_t HCI_LE_SetEventMaskCmd( uint8 *pEventMask );
  58. //取得最大ACL数据包大小
  59. hciStatus_t HCI_LE_ReadBufSizeCmd( void );
  60. //取得本地支持的特性
  61. hciStatus_t HCI_LE_ReadLocalSupportedFeaturesCmd( void );
  62. //设置设别随机地址
  63. hciStatus_t HCI_LE_SetRandomAddressCmd( uint8 *pRandAddr );
  64. //设置广播参数
  65. hciStatus_t HCI_LE_SetAdvParamCmd( uint16 advIntervalMin,
  66. uint16 advIntervalMax,
  67. uint8  advType,
  68. uint8  ownAddrType,
  69. uint8  directAddrType,
  70. uint8  *directAddr,
  71. uint8  advChannelMap,
  72. uint8  advFilterPolicy );
  73. //设置广播数据
  74. hciStatus_t HCI_LE_SetAdvDataCmd( uint8 dataLen,
  75. uint8 *pData );
  76. //设置广播搜索响应数据
  77. hciStatus_t HCI_LE_SetScanRspDataCmd( uint8 dataLen,
  78. uint8 *pData );
  79. //开关广播
  80. hciStatus_t HCI_LE_SetAdvEnableCmd( uint8 advEnable );
  81. //读取广播时的发射功率
  82. hciStatus_t HCI_LE_ReadAdvChanTxPowerCmd( void );
  83. //设置搜索参数
  84. hciStatus_t HCI_LE_SetScanParamCmd( uint8  scanType,
  85. uint16 scanInterval,
  86. uint16 scanWindow,
  87. uint8  ownAddrType,
  88. uint8  filterPolicy );
  89. //开关搜索
  90. hciStatus_t HCI_LE_SetScanEnableCmd( uint8 scanEnable,
  91. uint8 filterDuplicates );
  92. //建立连接
  93. hciStatus_t HCI_LE_CreateConnCmd( uint16 scanInterval,
  94. uint16 scanWindow,
  95. uint8  initFilterPolicy,
  96. uint8  addrTypePeer,
  97. uint8  *peerAddr,
  98. uint8  ownAddrType,
  99. uint16 connIntervalMin,
  100. uint16 connIntervalMax,
  101. uint16 connLatency,
  102. uint16 connTimeout,
  103. uint16 minLen,
  104. uint16 maxLen );
  105. //取消创建连接
  106. hciStatus_t HCI_LE_CreateConnCancelCmd( void );
  107. //读取白名单
  108. hciStatus_t HCI_LE_ReadWhiteListSizeCmd( void );
  109. //清除白名单
  110. hciStatus_t HCI_LE_ClearWhiteListCmd( void );
  111. //添加一条白名单
  112. hciStatus_t HCI_LE_AddWhiteListCmd( uint8 addrType,
  113. uint8 *devAddr );
  114. //移除一条白名单
  115. hciStatus_t HCI_LE_RemoveWhiteListCmd( uint8 addrType,
  116. uint8 *devAddr );
  117. //更新连接参数
  118. hciStatus_t HCI_LE_ConnUpdateCmd( uint16 connHandle,
  119. uint16 connIntervalMin,
  120. uint16 connIntervalMax,
  121. uint16 connLatency,
  122. uint16 connTimeout,
  123. uint16 minLen,
  124. uint16 maxLen );
  125. //更新当前数据通道MAP
  126. hciStatus_t HCI_LE_SetHostChanClassificationCmd( uint8 *chanMap );
  127. //读取连接数据通道MAP
  128. hciStatus_t HCI_LE_ReadChannelMapCmd( uint16 connHandle );
  129. //读取远程设备用户特性
  130. hciStatus_t HCI_LE_ReadRemoteUsedFeaturesCmd( uint16 connHandle );
  131. //执行AES128加密
  132. hciStatus_t HCI_LE_EncryptCmd( uint8 *key,
  133. uint8 *plainText );
  134. //产生随机数
  135. hciStatus_t HCI_LE_RandCmd( void );
  136. //连接中开始加密
  137. hciStatus_t HCI_LE_StartEncyptCmd( uint16 connHandle,
  138. uint8  *random,
  139. uint8  *encDiv,
  140. uint8  *ltk );
  141. //主机向控制器发送一个LTK回应
  142. hciStatus_t HCI_LE_LtkReqReplyCmd( uint16 connHandle,
  143. uint8  *ltk );
  144. //This LE API is used by the Host to send to the Controller a negative LTK reply.
  145. hciStatus_t HCI_LE_LtkReqNegReplyCmd( uint16 connHandle );
  146. //读取控制器支持的状态
  147. hciStatus_t HCI_LE_ReadSupportedStatesCmd( void );
  148. // This LE API is used to start the receiver Direct Test Mode test.
  149. hciStatus_t HCI_LE_ReceiverTestCmd( uint8 rxFreq );
  150. //This LE API is used to start the transmit Direct Test Mode test.
  151. hciStatus_t HCI_LE_TransmitterTestCmd( uint8 txFreq,
  152. uint8 dataLen,
  153. uint8 pktPayload );
  154. //This LE API is used to end the Direct Test Mode test.
  155. hciStatus_t HCI_LE_TestEndCmd( void );
  156. //This HCI Extension API is used to set the receiver gain.
  157. hciStatus_t HCI_EXT_SetRxGainCmd( uint8 rxGain );
  158. //设置发射功率
  159. hciStatus_t HCI_EXT_SetTxPowerCmd( uint8 txPower );
  160. //设置是否连接中一个消息只能包含一个包
  161. hciStatus_t HCI_EXT_OnePktPerEvtCmd( uint8 control );
  162. //This HCI Extension API is used to set whether the system clock will be divided when the MCU is halted.
  163. hciStatus_t HCI_EXT_ClkDivOnHaltCmd( uint8 control );
  164. //This HCI Extension API is used to indicate to the Controller whether or not the Host will be using the NV memory during BLE operations.
  165. hciStatus_t HCI_EXT_DeclareNvUsageCmd( uint8 mode );
  166. //使用AES128解密
  167. hciStatus_t HCI_EXT_DecryptCmd( uint8 *key,
  168. uint8 *encText );
  169. //设置支持的特性
  170. hciStatus_t HCI_EXT_SetLocalSupportedFeaturesCmd( uint8 *localFeatures );
  171. //设置尽快发送数据
  172. hciStatus_t HCI_EXT_SetFastTxResponseTimeCmd( uint8 control );
  173. //This HCI Extension API is used to to enable or disable suspending slave latency.
  174. hciStatus_t HCI_EXT_SetSlaveLatencyOverrideCmd( uint8 control );
  175. //This API is used start a continuous transmitter modem test, using either a modulated or unmodulated carrier wave tone, at the frequency that corresponds to the specified RF channel. Use HCI_EXT_EndModemTest command to end the test.
  176. hciStatus_t HCI_EXT_ModemTestTxCmd( uint8 cwMode,
  177. uint8 txFreq );
  178. //This API is used to start a continuous transmitter direct test mode test using a modulated carrier wave and transmitting a 37 byte packet of Pseudo-Random 9-bit data. A packet is transmitted on a different frequency (linearly stepping through all RF channels 0..39) every 625us. Use HCI_EXT_EndModemTest command to end the test.
  179. hciStatus_t HCI_EXT_ModemHopTestTxCmd( void );
  180. //This API is used to start a continuous receiver modem test using a modulated carrier wave tone, at the frequency that corresponds to the specific RF channel. Any received data is discarded. Receiver gain may be adjusted using the HCI_EXT_SetRxGain command. RSSI may be read during this test by using the HCI_ReadRssi command. Use HCI_EXT_EndModemTest command to end the test.
  181. hciStatus_t HCI_EXT_ModemTestRxCmd( uint8 rxFreq );
  182. //This API is used to shutdown a modem test. A complete Controller reset will take place.
  183. hciStatus_t HCI_EXT_EndModemTestCmd( void );
  184. //设置设备的BLE地址
  185. hciStatus_t HCI_EXT_SetBDADDRCmd( uint8 *bdAddr );
  186. //设置设备的睡眠时钟精度
  187. hciStatus_t HCI_EXT_SetSCACmd( uint16 scaInPPM );
  188. //This HCI Extension API is used to enable Production Test Mode.
  189. hciStatus_t HCI_EXT_EnablePTMCmd( void );
  190. //This HCI Extension API is used to set the frequency tuning up or down. Setting the mode up/down decreases/increases the amount of capacitance on the external crystal oscillator.
  191. hciStatus_t HCI_EXT_SetFreqTuneCmd( uint8 step );
  192. //保存频率调谐值到Flash
  193. hciStatus_t HCI_EXT_SaveFreqTuneCmd( void );
  194. //This HCI Extension API is used to set the maximum transmit output power for Direct Test Mode.
  195. hciStatus_t HCI_EXT_SetMaxDtmTxPowerCmd( uint8 txPower );
  196. llStatus_t HCI_EXT_MapPmIoPortCmd( uint8 ioPort, uint8 ioPin );
  197. //立即断开连接
  198. hciStatus_t HCI_EXT_DisconnectImmedCmd( uint16 connHandle );
  199. //读取或复位包错误率计数器
  200. hciStatus_t HCI_EXT_PacketErrorRateCmd( uint16 connHandle, uint8 command );
  201. //开始或结束包错误率计数
  202. hciStatus_t HCI_EXT_PERbyChanCmd( uint16 connHandle, perByChan_t *perByChan );
  203. //This HCI Extension API is used to Extend Rf Range using the TI CC2590 2.4 GHz RF Front End device
  204. hciStatus_t HCI_EXT_ExtendRfRangeCmd( void );
  205. //This HCI Extension API is used to enable or disable halting the CPU during RF. The system defaults to enabled.
  206. hciStatus_t HCI_EXT_HaltDuringRfCmd( uint8 mode );
  207. //This HCI Extension API is used to enable or disable a notification to the specified task using the specified task event whenever a Adv event ends. A non-zero taskEvent value is taken to be "enable", while a zero valued taskEvent is taken to be "disable".
  208. hciStatus_t HCI_EXT_AdvEventNoticeCmd( uint8 taskID, uint16 taskEvent );
  209. //This HCI Extension API is used to enable or disable a notification to the specified task using the specified task event whenever a Connection event ends. A non-zero taskEvent value is taken to be "enable", while a zero valued taskEvent taken to be "disable".
  210. hciStatus_t HCI_EXT_ConnEventNoticeCmd( uint8 taskID, uint16 taskEvent );
  211. //设置用户版本号
  212. hciStatus_t HCI_EXT_BuildRevisionCmd( uint8 mode, uint16 userRevNum );

L2CAP.h

  1. //初始化L2CAP层
  2. void L2CAP_Init( uint8 taskId );
  3. //L2CAP任务时间处理函数
  4. uint16 L2CAP_ProcessEvent( uint8 taskId, uint16 events );
  5. //为协议或程序注册一个L2CAP通道
  6. bStatus_t L2CAP_RegisterApp( uint8 taskId, uint16 CID );
  7. //发送L2CAP数据包
  8. bStatus_t L2CAP_SendData( uint16 connHandle, l2capPacket_t *pPkt );
  9. //发送拒绝命令
  10. bStatus_t L2CAP_CmdReject( uint16 connHandle, uint8 id, l2capCmdReject_t *pCmdReject );
  11. //建立拒绝命令
  12. uint16 L2CAP_BuildCmdReject( uint8 *pBuf, uint8 *pCmd );
  13. //发送L2CAP Echo请求
  14. bStatus_t L2CAP_EchoReq( uint16 connHandle, l2capEchoReq_t *pEchoReq, uint8 taskId );
  15. //发送L2CAP信息请求
  16. bStatus_t L2CAP_InfoReq( uint16 connHandle, l2capInfoReq_t *pInfoReq, uint8 taskId );
  17. //建立信息响应
  18. uint16 L2CAP_BuildInfoRsp( uint8 *pBuf, uint8 *pCmd );
  19. //解析信息请求
  20. bStatus_t L2CAP_ParseInfoReq( l2capSignalCmd_t *pCmd, uint8 *pData, uint16 len );
  21. //发送L2CAP连接参数更新请求
  22. bStatus_t L2CAP_ConnParamUpdateReq( uint16 connHandle, l2capParamUpdateReq_t *pUpdateReq, uint8 taskId );
  23. //解析连接参数更新请求
  24. bStatus_t L2CAP_ParseParamUpdateReq( l2capSignalCmd_t *pCmd, uint8 *pData, uint16 len );
  25. //发送连接参数更新响应
  26. bStatus_t L2CAP_ConnParamUpdateRsp( uint16 connHandle, uint8 id, l2capParamUpdateRsp_t *pUpdateRsp );
  27. //建立连接参数更新响应
  28. uint16 L2CAP_BuildParamUpdateRsp( uint8 *pBuf, uint8 *pData );
  29. //在L2CAP层分配内存
  30. void *L2CAP_bm_alloc( uint16 size );

GATT.h

  1. //初始化GATT客户端
  2. bStatus_t GATT_InitClient(void);
  3. //注册接收ATT的Indications或Notifications属性值
  4. void GATT_RegisterForInd(uint8 taskId);
  5. //准备写请求用于请求服务器准备写一个属性的值
  6. bStatus_t GATT_PrepareWriteReq(uint16 connHandle, attPrepareWriteReq_t *pReq, uint8 taskId);
  7. //执行写请求
  8. bStatus_t GATT_ExecuteWriteReq(uint16 connHandle, attExecuteWriteReq_t *pReq, uint8 taskId);
  9. //初始化GATT服务器
  10. bStatus_t GATT_InitServer(void);
  11. //为GATT服务器注册服务属性列表
  12. bStatus_t GATT_RegisterService(gattService_t *pService);
  13. //为GATT服务器注销一个属性列表
  14. bStatus_t GATT_DeregisterService(uint16 handle, gattService_t *pService);
  15. //注册接收ATT请求
  16. void GATT_RegisterForReq(uint8 taskId);
  17. //验证属性的读取权限
  18. bStatus_t GATT_VerifyReadPermissions(uint16 connHandle, uint8 permissions);
  19. //验证属性的写权限
  20. bStatus_t GATT_VerifyWritePermissions(uint16 connHandle, uint8 permissions, attWriteReq_t *pReq);
  21. //发送服务改变Indication
  22. uint8 GATT_ServiceChangedInd(uint16 connHandle, uint8 taskId);
  23. //通过UUID找到属性记录
  24. gattAttribute_t *GATT_FindHandleUUID(uint16 startHandle, uint16 endHandle, const uint8 *pUUID, uint16 len, uint16 *pHandle);
  25. //通过句柄找属性记录
  26. gattAttribute_t *GATT_FindHandle(uint16 handle, uint16 *pHandle);
  27. //找给定的属性相同类型的下一个属性
  28. gattAttribute_t *GATT_FindNextAttr(gattAttribute_t *pAttr, uint16 endHandle, uint16 service, uint16 *pLastHandle);
  29. //取得服务的属性数
  30. uint16 GATT_ServiceNumAttrs(uint16 handle);
  31. //发送Indication
  32. bStatus_t GATT_Indication(uint16 connHandle, attHandleValueInd_t *pInd, uint8 authenticated, uint8 taskId);
  33. //发送Notification
  34. bStatus_t GATT_Notification(uint16 connHandle, attHandleValueNoti_t *pNoti, uint8 authenticated);
  35. //客户端设置ATT_MTU最大值
  36. bStatus_t GATT_ExchangeMTU(uint16 connHandle, attExchangeMTUReq_t *pReq, uint8 taskId);
  37. //客户端用来发现服务器的所有主要服务
  38. bStatus_t GATT_DiscAllPrimaryServices(uint16 connHandle, uint8 taskId);
  39. //客户端通过UUID发现服务器的特定服务
  40. bStatus_t GATT_DiscPrimaryServiceByUUID(uint16 connHandle, uint8 *pValue, uint8 len, uint8 taskId);
  41. //This sub-procedure is used by a client to find include service declarations within a service definition on a server. The service specified is identified by the service handle range.
  42. bStatus_t GATT_FindIncludedServices(uint16 connHandle, uint16 startHandle, uint16 endHandle, uint8 taskId);
  43. //找到所有特性
  44. bStatus_t GATT_DiscAllChars(uint16 connHandle, uint16 startHandle, uint16 endHandle, uint8 taskId);
  45. //通过UUID找到特性
  46. bStatus_t GATT_DiscCharsByUUID(uint16 connHandle, attReadByTypeReq_t *pReq, uint8 taskId);
  47. //找到所有特性描述
  48. bStatus_t GATT_DiscAllCharDescs(uint16 connHandle, uint16 startHandle, uint16 endHandle, uint8 taskId);
  49. //读取特性值
  50. bStatus_t GATT_ReadCharValue(uint16 connHandle, attReadReq_t *pReq, uint8 taskId);
  51. bleTimeout: Previous transaction timed out.<BR>
  52. //通过UUID读取特性值
  53. bStatus_t GATT_ReadUsingCharUUID(uint16 connHandle, attReadByTypeReq_t *pReq, uint8 taskId);
  54. //读取长特性值
  55. bStatus_t GATT_ReadLongCharValue(uint16 connHandle, attReadBlobReq_t *pReq, uint8 taskId);
  56. //读取多个特性值
  57. bStatus_t GATT_ReadMultiCharValues(uint16 connHandle, attReadMultiReq_t *pReq, uint8 taskId);
  58. //写特性值,不需要回应
  59. bStatus_t GATT_WriteNoRsp(uint16 connHandle, attWriteReq_t *pReq);
  60. bStatus_t GATT_SignedWriteNoRsp(uint16 connHandle, attWriteReq_t *pReq);
  61. //写特性值
  62. bStatus_t GATT_WriteCharValue(uint16 connHandle, attWriteReq_t *pReq, uint8 taskId);
  63. //写长特性值
  64. bStatus_t GATT_WriteLongCharValue(uint16 connHandle, gattPrepareWriteReq_t *pReq, uint8 taskId);
  65. bStatus_t GATT_ReliableWrites(uint16 connHandle, attPrepareWriteReq_t *pReqs, uint8 numReqs, uint8 flags, uint8 taskId);
  66. //读取特性描述
  67. bStatus_t GATT_ReadCharDesc(uint16 connHandle, attReadReq_t *pReq, uint8 taskId);
  68. //读取长特性描述
  69. bStatus_t GATT_ReadLongCharDesc(uint16 connHandle, attReadBlobReq_t *pReq, uint8 taskId);
  70. //写特性描述
  71. bStatus_t GATT_WriteCharDesc(uint16 connHandle, attWriteReq_t *pReq, uint8 taskId);
  72. //写长特性描述
  73. bStatus_t GATT_WriteLongCharDesc(uint16 connHandle, gattPrepareWriteReq_t *pReq, uint8 taskId);

GAP.h

  1. //设备初始化
  2. bStatus_t GAP_DeviceInit(  uint8 taskID,
  3. uint8 profileRole,
  4. uint8 maxScanResponses,
  5. uint8 *pIRK,
  6. uint8 *pSRK,
  7. uint32 *pSignCounter );
  8. //设置GAP广播搜索响应数据
  9. bStatus_t GAP_SetAdvToken( gapAdvDataToken_t *pToken );
  10. //读取GAP广播响应数据
  11. gapAdvDataToken_t *GAP_GetAdvToken( uint8 adType );
  12. //移除GAP广播响应数据
  13. gapAdvDataToken_t *GAP_RemoveAdvToken( uint8 adType );
  14. //重建加载广播响应数据
  15. bStatus_t GAP_UpdateAdvTokens( void );
  16. //设置GAP参数
  17. bStatus_t GAP_SetParamValue( gapParamIDs_t paramID, uint16 paramValue );
  18. //取得GAP参数
  19. uint16 GAP_GetParamValue( gapParamIDs_t paramID );
  20. //设置设备地址类型
  21. bStatus_t GAP_ConfigDeviceAddr( uint8 addrType, uint8 *pStaticAddr );
  22. //注册任务ID
  23. void GAP_RegisterForHCIMsgs( uint8 taskID );
  24. //开始搜索
  25. bStatus_t GAP_DeviceDiscoveryRequest( gapDevDiscReq_t *pParams );
  26. //取得发现任务
  27. bStatus_t GAP_DeviceDiscoveryCancel( uint8 taskID );
  28. //设置改变开始广播
  29. bStatus_t GAP_MakeDiscoverable( uint8 taskID, gapAdvertisingParams_t *pParams );
  30. //设置改变搜索响应数据
  31. bStatus_t GAP_UpdateAdvertisingData( uint8 taskID, uint8 adType,
  32. uint8 dataLen, uint8 *pAdvertData );
  33. //停止广播
  34. bStatus_t GAP_EndDiscoverable( uint8 taskID );
  35. //Resolves a private address against an IRK.
  36. bStatus_t GAP_ResolvePrivateAddr( uint8 *pIRK, uint8 *pAddr );
  37. //建立一个连接到从设备
  38. bStatus_t GAP_EstablishLinkReq( gapEstLinkReq_t *pParams );
  39. //中断连接
  40. bStatus_t GAP_TerminateLinkReq( uint8 taskID, uint16 connectionHandle );
  41. //更新连接参数到从设备
  42. bStatus_t GAP_UpdateLinkParamReq( gapUpdateLinkParamReq_t *pParams );
  43. //返回活跃连接数
  44. uint8 GAP_NumActiveConnections( void );
  45. //启动认证流程
  46. bStatus_t GAP_Authenticate( gapAuthParams_t *pParams, gapPairingReq_t *pPairReq );
  47. //发送配对失败消息
  48. bStatus_t GAP_TerminateAuth( uint16 connectionHandle, uint8 reason );
  49. //字符串格式的密钥更新
  50. bStatus_t GAP_PasskeyUpdate( uint8 *pPasskey, uint16 connectionHandle );
  51. //数字形式的密钥更新
  52. bStatus_t GAP_PasscodeUpdate( uint32 passcode, uint16 connectionHandle );
  53. //产生一个从机请求的安全消息到主机
  54. bStatus_t GAP_SendSlaveSecurityRequest( uint16 connectionHandle, uint8 authReq );
  55. //Set up the connection to accept signed data.
  56. bStatus_t GAP_Signable( uint16 connectionHandle, uint8 authenticated, smSigningInfo_t *pParams );
  57. //设置连接的绑定参数
  58. bStatus_t GAP_Bond( uint16 connectionHandle, uint8 authenticated,
  59. smSecurityInfo_t *pParams, uint8 startEncryption );

ATT.h

    1. //解析ATT包
    2. uint8 ATT_ParsePacket(l2capDataEvent_t *pL2capMsg, attPacket_t *pPkt);
    3. //比较UUID
    4. uint8 ATT_CompareUUID(const uint8 *pUUID1, uint16 len1, const uint8 *pUUID2, uint16 len2);
    5. //转换16bit的UUID到128bit
    6. uint8 ATT_ConvertUUIDto128(const uint8 *pUUID16, uint8 *pUUID128);
    7. //转换128bit的UUID到16bit
    8. uint8 ATT_ConvertUUIDto16(const uint8 *pUUID128, uint8 *pUUID16);
    9. //构建错误响应
    10. uint16 ATT_BuildErrorRsp(uint8 *pBuf, uint8 *pMsg);
    11. //解析错误响应
    12. bStatus_t ATT_ParseErrorRsp(uint8 *pParams, uint16 len, attMsg_t *pMsg);
    13. //构建交换MTU请求
    14. uint16 ATT_BuildExchangeMTUReq(uint8 *pBuf, uint8 *pMsg);
    15. //构建交换MTU响应
    16. uint16 ATT_BuildExchangeMTURsp(uint8 *pBuf, uint8 *pMsg);
    17. //解析MTU响应
    18. bStatus_t ATT_ParseExchangeMTURsp(uint8 *pParams, uint16 len, attMsg_t *pMsg);
    19. //构建找信息请求
    20. uint16 ATT_BuildFindInfoReq(uint8 *pBuf, uint8 *pMsg);
    21. //解析找信息响应
    22. bStatus_t ATT_ParseFindInfoRsp(uint8 *pParams, uint16 len, attMsg_t *pMsg);
    23. //构建找信息响应
    24. uint16 ATT_BuildFindInfoRsp(uint8 *pBuf, uint8 *pMsg);
    25. //构建通过类型值找请求
    26. uint16 ATT_BuildFindByTypeValueReq(uint8 *pBuf, uint8 *pMsg);
    27. //构建通过类型值找响应
    28. uint16 ATT_BuildFindByTypeValueRsp(uint8 *pBuf, uint8 *pMsg);
    29. //解析通过类型值找响应
    30. bStatus_t ATT_ParseFindByTypeValueRsp(uint8 *pParams, uint16 len, attMsg_t *pMsg);
    31. //构建通过类型值读请求
    32. uint16 ATT_BuildReadByTypeReq(uint8 *pBuf, uint8 *pMsg);
    33. //构建通过类型值读响应
    34. uint16 ATT_BuildReadByTypeRsp(uint8 *pBuf, uint8 *pMsg);
    35. //解析通过类型值读响应
    36. bStatus_t ATT_ParseReadByTypeRsp(uint8 *pParams, uint16 len, attMsg_t *pMsg);
    37. //构建读请求
    38. uint16 ATT_BuildReadReq(uint8 *pBuf, uint8 *pMsg);
    39. //构建读响应
    40. uint16 ATT_BuildReadRsp(uint8 *pBuf, uint8 *pMsg);
    41. //解析读响应
    42. bStatus_t ATT_ParseReadRsp(uint8 *pParams, uint16 len, attMsg_t *pMsg);
    43. //构建场数据读取请求
    44. uint16 ATT_BuildReadBlobReq(uint8 *pBuf, uint8 *pMsg);
    45. //构建长数据读取响应
    46. uint16 ATT_BuildReadBlobRsp(uint8 *pBuf, uint8 *pMsg);
    47. //解析大数据读取响应
    48. bStatus_t ATT_ParseReadBlobRsp(uint8 *pParams, uint16 len, attMsg_t *pMsg);
    49. //构建多数据读取请求
    50. uint16 ATT_BuildReadMultiReq(uint8 *pBuf, uint8 *pMsg);
    51. //构建多数据读取响应
    52. uint16 ATT_BuildReadMultiRsp(uint8 *pBuf, uint8 *pMsg);
    53. //解析多数据读取响应
    54. bStatus_t ATT_ParseReadMultiRsp(uint8 *pParams, uint16 len, attMsg_t *pMsg);
    55. //Build Read By Group Type Response.
    56. uint16 ATT_BuildReadByGrpTypeRsp(uint8 *pBuf, uint8 *pMsg);
    57. // Parse Read By Group Type Response.
    58. bStatus_t ATT_ParseReadByGrpTypeRsp(uint8 *pParams, uint16 len, attMsg_t *pMsg);
    59. // Build Write Request.
    60. uint16 ATT_BuildWriteReq(uint8 *pBuf, uint8 *pMsg);
    61. //Parse Write Response.
    62. bStatus_t ATT_ParseWriteRsp(uint8 *pParams, uint16 len, attMsg_t *pMsg);
    63. // Build Prepare Write Request.
    64. uint16 ATT_BuildPrepareWriteReq(uint8 *pBuf, uint8 *pMsg);
    65. //Build Prepare Write Response.
    66. uint16 ATT_BuildPrepareWriteRsp(uint8 *pBuf, uint8 *pMsg);
    67. //Parse Prepare Write Response.
    68. bStatus_t ATT_ParsePrepareWriteRsp(uint8 *pParams, uint16 len, attMsg_t *pMsg);
    69. // Build Execute Write Request.
    70. uint16 ATT_BuildExecuteWriteReq(uint8 *pBuf, uint8 *pMsg);
    71. // Parse Execute Write Response.
    72. bStatus_t ATT_ParseExecuteWriteRsp(uint8 *pParams, uint16 len, attMsg_t *pMsg);
    73. //Build Handle Value Indication.
    74. uint16 ATT_BuildHandleValueInd(uint8 *pBuf, uint8 *pMsg);
    75. //Parse Handle Value Indication.
    76. bStatus_t ATT_ParseHandleValueInd(uint8 sig, uint8 cmd, uint8 *pParams, uint16 len, attMsg_t *pMsg);
    77. // Parse Exchange MTU Request.
    78. bStatus_t ATT_ParseExchangeMTUReq(uint8 sig, uint8 cmd, uint8 *pParams, uint16 len, attMsg_t *pMsg);
    79. //Parse Find Information Request.
    80. bStatus_t ATT_ParseFindInfoReq(uint8 sig, uint8 cmd, uint8 *pParams, uint16 len, attMsg_t *pMsg);
    81. // Parse Find By Type Value Request.
    82. bStatus_t ATT_ParseFindByTypeValueReq(uint8 sig, uint8 cmd, uint8 *pParams, uint16 len, attMsg_t *pMsg);
    83. // Parse Read By Type Request.
    84. bStatus_t ATT_ParseReadByTypeReq(uint8 sig, uint8 cmd, uint8 *pParams, uint16 len, attMsg_t *pMsg);
    85. //Parse Read Request.
    86. bStatus_t ATT_ParseReadReq(uint8 sig, uint8 cmd, uint8 *pParams, uint16 len, attMsg_t *pMsg);
    87. //Parse Write Blob Request.
    88. bStatus_t ATT_ParseReadBlobReq(uint8 sig, uint8 cmd, uint8 *pParams, uint16 len, attMsg_t *pMsg);
    89. //Parse Read Multiple Request.
    90. bStatus_t ATT_ParseReadMultiReq(uint8 sig, uint8 cmd, uint8 *pParams, uint16 len, attMsg_t *pMsg);
    91. //Parse Write Request.
    92. bStatus_t ATT_ParseWriteReq(uint8 sig, uint8 cmd, uint8 *pParams, uint16 len, attMsg_t *pMsg);
    93. //Parse Execute Write Request.
    94. bStatus_t ATT_ParseExecuteWriteReq(uint8 sig, uint8 cmd, uint8 *pParams, uint16 len, attMsg_t *pMsg);
    95. //Parse Prepare Write Request.
    96. bStatus_t ATT_ParsePrepareWriteReq(uint8 sig, uint8 cmd, uint8 *pParams, uint16 len, attMsg_t *pMsg);
    97. // Parse Handle Value Confirmation.
    98. bStatus_t ATT_ParseHandleValueCfm(uint8 *pParams, uint16 len, attMsg_t *pMsg);
    99. //发送交换MTU请求
    100. bStatus_t ATT_ExchangeMTUReq(uint16 connHandle, attExchangeMTUReq_t *pReq);
    101. //Send Find Information Request.
    102. bStatus_t ATT_FindInfoReq(uint16 connHandle, attFindInfoReq_t *pReq);
    103. // Send Find By Type Value Request.
    104. bStatus_t ATT_FindByTypeValueReq(uint16 connHandle, attFindByTypeValueReq_t *pReq);
    105. //Send Read By Type Request.
    106. bStatus_t ATT_ReadByTypeReq(uint16 connHandle, attReadByTypeReq_t *pReq);
    107. // Send Read Request.
    108. bStatus_t ATT_ReadReq(uint16 connHandle, attReadReq_t *pReq);
    109. // Send Read Blob Request.
    110. bStatus_t ATT_ReadBlobReq(uint16 connHandle, attReadBlobReq_t *pReq);
    111. // Send Read Multiple Request.
    112. bStatus_t ATT_ReadMultiReq(uint16 connHandle, attReadMultiReq_t *pReq);
    113. // Send Read By Group Type Request.
    114. bStatus_t ATT_ReadByGrpTypeReq(uint16 connHandle, attReadByGrpTypeReq_t *pReq);
    115. // Send Write Request.
    116. bStatus_t ATT_WriteReq(uint16 connHandle, attWriteReq_t *pReq);
    117. // Send Prepare Write Request.
    118. bStatus_t ATT_PrepareWriteReq(uint16 connHandle, attPrepareWriteReq_t *pReq);
    119. // Send Execute Write Request.
    120. bStatus_t ATT_ExecuteWriteReq(uint16 connHandle, attExecuteWriteReq_t *pReq);
    121. // Send Handle Value Confirmation.
    122. bStatus_t ATT_HandleValueCfm(uint16 connHandle);
    123. // Send Error Response.
    124. bStatus_t ATT_ErrorRsp(uint16 connHandle, attErrorRsp_t *pRsp);
    125. //Send Exchange MTU Response.
    126. bStatus_t ATT_ExchangeMTURsp(uint16 connHandle, attExchangeMTURsp_t *pRsp);
    127. // Send Find Information Response.
    128. bStatus_t ATT_FindInfoRsp(uint16 connHandle, attFindInfoRsp_t *pRsp);
    129. //Send Find By Tyep Value Response.
    130. bStatus_t ATT_FindByTypeValueRsp(uint16 connHandle, attFindByTypeValueRsp_t *pRsp);
    131. //Send Read By Type Respond.
    132. bStatus_t ATT_ReadByTypeRsp(uint16 connHandle, attReadByTypeRsp_t *pRsp);
    133. //Send Read Response.
    134. bStatus_t ATT_ReadRsp(uint16 connHandle, attReadRsp_t *pRsp);
    135. // Send Read Blob Response.
    136. bStatus_t ATT_ReadBlobRsp(uint16 connHandle, attReadBlobRsp_t *pRsp);
    137. //Send Read Multiple Response.
    138. bStatus_t ATT_ReadMultiRsp(uint16 connHandle, attReadMultiRsp_t *pRsp);
    139. // Send Read By Group Type Respond.
    140. bStatus_t ATT_ReadByGrpTypeRsp(uint16 connHandle, attReadByGrpTypeRsp_t *pRsp);
    141. //Send Write Response.
    142. bStatus_t ATT_WriteRsp(uint16 connHandle);
    143. // Send Prepare Write Response.
    144. bStatus_t ATT_PrepareWriteRsp(uint16 connHandle, attPrepareWriteRsp_t *pRsp);
    145. // Send Execute Write Response.
    146. bStatus_t ATT_ExecuteWriteRsp(uint16 connHandle);
    147. // Send Handle Value Notification.
    148. bStatus_t ATT_HandleValueNoti(uint16 connHandle, attHandleValueNoti_t *pNoti);
    149. // Send Handle Value Indication.
    150. bStatus_t ATT_HandleValueInd(uint16 connHandle, attHandleValueInd_t *pInd);
    151. //设置ATT参数
    152. void ATT_SetParamValue(uint16 value);
    153. //取得ATT参数
    154. uint16 ATT_GetParamValue(void);

OSAL 学习笔记

1-OSAL.C

* @fn      osal_strlen          计算字符串的长度。字符串必须空结尾。

* @fn      osal_memcpy         一般内存复制

* @fn      osal_revmemcpy

//一般的颠倒内存复制。从资源缓存的最后开始,通过使用资源地址的指针移动len字节的,然后指针自减。

* @fn      osal_memdup

//分配一个缓存(和osal_mem_alloc()),并复制这个资源缓存到刚分配好的控件.

* @fn      osal_memcmp          一般内存比较

* @fn      osal_memset          设置内存缓存值

* @fn      osal_rand            产生随机数

* @fn      osal_msg_allocate    动态分配一个OSAL消息缓存

* @fn      osal_msg_deallocate  释放一个OSAL消息缓存(接收任务调用)

* @fn      osal_msg_send        为某个任务发送一个OSAL消息

* @fn      osal_msg_receive     检索接收命令消息。

* @fn      osal_msg_find        发现 在一个OSAL消息匹配任务ID和事件参数。

* @fn      osal_msg_extract

*  //从OSAL队列中间 提取和移除 一个OSAL消息

* @fn      osal_set_event        为一个任务设置一个 OSAL 事件

* @fn      osal_clear_event      清除一个任务的事件标志。

* @fn      osal_init_system      OSAL 初始化,必须在主函数中被调用

* @fn      osal_start_system     开始运行OSAL 主循环

* @fn      osal_run_system       现至少一个等待事件的第一个任务。

2-OSAL_bufmgr.c

* @fn      osal_bm_alloc         分配器函数的实现

* @fn      osal_bm_free          取消分配器函数 的实现

* @fn      osal_bm_adjust_header 调整header

* @fn      osal_bm_adjust_tail   调整tail

3-OSAL_cbtimer.c

* @fn          osal_CbTimerInit  初始化函数

* @fn          osal_CbTimerProcessEvent//回调 定时器 任务事件处理函数

* @fn      osal_CbTimerStart//当定时器到期,注册调用函数将被调用。

* @fn      osal_CbTimerUpdate更新一个已经启动的 消息定时器

* @fn      osal_CbTimerStop//停止一个已经启动的定时器。

4-OSAL_ClockBLE.c

* @fn      osalTimeUpdate    更新 OSAL时间和定时器,

* @fn      osalClockUpdate //用 运行ms  更新OSAL时间表,

* @fn      osal_setClock//设置新时间。

* @fn      osal_getClock //得到当前时间。

* @fn      osal_ConvertUTCTime 转换时间格式

* @fn      osal_ConvertUTCSecs转换时间格式

5-OSAL_Memory.c

* @fn          osal_mem_init内存管理初始化

* @fn          osal_mem_kick //任务初始化

* @fn          osal_mem_alloc执行 OSAL 动态内存分配函数

* @fn       osal_mem_free //执行OSAL动态内存 释放函数

6-OSAL_PwrMgr.c

* @fn      osal_pwrmgr_init //初始化 电源管理系统

* @fn      osal_pwrmgr_task_state//每一个任务调用函数,来陈述是否这个任务要保存电源

* @fn      osal_pwrmgr_powerconserve //当没有活动安排 这个函数从主循环被调用,不应该从别的地方被调用。

7-OSAL_snv.c

8-OSAL_timers.c

* @fn      osalTimerInit  初始化OSAL定时器系统

* @fn      osalAddTimer增加一个定时器到定时器列表

* @fn      osalFindTimer 在定时器列表中发现一个定时器

* @fn      osalDeleteTimer 从一个列表中删除一个定时器

* @fn      osal_start_timerEx //调用开始一个定时器在n ms内

* @fn      osal_stop_timerEx  //停止一个已经启动的定时器。

* @fn      osalTimerUpdate更新 定时器结构

* @fn      osal_adjust_timers 更新已经过去的定时器结构

* @fn      osal_GetSystemClock 读取本地系统时钟

==================================================================

以上是一个BLE应用里的OSAL所用到的函数名字,及其功能,方便以后查询。

==================================================================

CC254x/CC2540/CC2541库函数速查(转)的更多相关文章

  1. CC254x(cc2540/cc2541)的微信AirSync调试笔记

    一.前言 本尊自诩为IOT小能手,一直没涉足蓝牙实在说不过去.刚好上个月底的时候计划做个BLE设备,这阵子利用业余时间自学了BLE协议栈,了解了GATT,磕磕绊绊完成CC254x(cc2540/cc2 ...

  2. ARM1138@库函数速查

    1. GPIO库函数 可实现的功能: 获得/设置指定管脚的方向(输入.输出)和模式(硬件控制) 获取/设置指定管脚的配置(驱动强度2/4/8/8_SCmA.管脚模式:推挽(弱上拉/弱下拉)/开漏(弱上 ...

  3. HTML、CSS、JS、JQ速查笔记

      一.HTML  1.编写html文件 a.格式 <!DOCTYPE html> <html> <head> <title>标题</title& ...

  4. cc2540 cc2541 开发板资料更新日志

    经过多次PCB打样和全面调试.已经完毕了cc2540 cc2541的开发板的批量贴片.硬件告一段落, 接下来是全面完好软件方面的工作.眼下已经针对没有开发经验的用户编写完毕0基础基础实验代码和教程.接 ...

  5. Standard C 语言标准函数库速查(彩色的函数列表,十分清楚)

    Standard C 语言标准函数库速查 (Cheat Sheet) wcstombs 函数说明 #include <stdlib.h> size_t mbstowcs(wchar_t * ...

  6. 常用的14种HTTP状态码速查手册

    分类 1xx \> Information(信息) // 接收的请求正在处理 2xx \> Success(成功) // 请求正常处理完毕 3xx \> Redirection(重定 ...

  7. jQuery 常用速查

    jQuery 速查 基础 $("css 选择器") 选择元素,创建jquery对象 $("html字符串") 创建jquery对象 $(callback) $( ...

  8. 简明 Git 命令速查表(中文版)

    原文引用地址:https://github.com/flyhigher139/Git-Cheat-Sheet/blob/master/Git%20Cheat%20Sheet-Zh.md在Github上 ...

  9. 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册

    <zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...

随机推荐

  1. [luogu3919]可持久化数组【主席树】

    链接:https://www.luogu.org/problemnew/show/P3919 分析 很明显我们可以用主席树来维护,所谓主席树就是可持久化线段树,能够查询历史版本而且可以实现修改操作,反 ...

  2. bzoj3672/luogu2305 购票 (运用点分治思想的树上cdq分治+斜率优化dp)

    我们都做过一道题(?)货币兑换,是用cdq分治来解决不单调的斜率优化 现在它放到了树上.. 总之先写下来dp方程,$f[i]=min\{f[j]+(dis[i]-dis[j])*p[i]+q[i]\} ...

  3. CrossFire Round #481 div.3 978 打后感

    虚拟赛,头一次打div.3感觉好TM水啊...... 一共7道题,我A了6道,第7题有思路但是没时间了. 结果还是排在700多名,可能其他人也觉得太水了吧. 逐一解析题目: A好简单,因为不想离散化我 ...

  4. 【洛谷P4180】严格次小生成树

    题目大意:给定一个 N 个顶点,M 条边的带权无向图,求该无向图的一个严格次小生成树. 引理:有至少一个严格次小生成树,和最小生成树之间只有一条边的差异. 题解: 通过引理可以想到一个暴力,即:先求出 ...

  5. 目标检测网络之 Mask R-CNN

    Mask R-CNN 论文Mask R-CNN(ICCV 2017, Kaiming He,Georgia Gkioxari,Piotr Dollár,Ross Girshick, arXiv:170 ...

  6. git<git常用命令>

    1,初始化仓库: git init --此命令会在当前目录下新建一个Git仓库.新建了一个 .git的隐藏目录,仓库的所有数据都放在这个目录里.目前还是空的. 2,跟踪,暂存文件: git add - ...

  7. Missing artifact com.github.pagehelper:pagehelper:jar:3.4.2-fix的解决方法(最简单的方法)

    在网上看的淘淘商城的项目,自己在配置maven项目的时候遇见了这个异常,按照网上教程试了试,一重启各种异常. 后来直接,就更改了自己的maven仓库就ok了. 解决方法: 对比一下,你就能够发现问题, ...

  8. JAVA实现SFTP实例

    最近写的一个JAVA实现SFTP的实例: /* * Created on 2009-9-14 * Copyright 2009 by www.xfok.net. All Rights Reserved ...

  9. Linux下网卡绑定模式

    Linux bonding驱动一共提供了7种模式,它们分别是:balance-rr .active-backup.balance-xor.broadcast.802.3ad.balance-tlb.b ...

  10. Nginx 403 forbidden多种原因及故障模拟重现

    访问Nginx出现状态码为403 forbidden原因及故障模拟 1) nginx配置文件里不配置默认首页参数或者首页文件在站点目录下没有 1 index index.php index.html  ...