赛普拉斯蓝牙BLE---主机协议栈事件描述

来源:互联网 发布:java垃圾回收机制原理 编辑:程序博客网 时间:2024/04/28 06:50

以下内容纯属个人翻译,有误之处还望指出!

赛普拉斯蓝牙BLE协议栈会产生多种事件,在事件产生的时候会执行用户定义的回调函数,事件类型以参数形式传入。

主要有以下五种事件:

Generic events: 0x01 to 0x1F

GAP events: 0x20 to 0x3F

GATT events: 0x40 to 6F

L2AP events: 0x70 to 0x7F

Future use: 0x80 to 0xFF 

下面对各个事件进行描述:

CYBLE_EVT_STACK_ON

这个事件在调用CyBle_StackInit ()函数时产生,该函数初始化并启动BLE协议栈;

CYBLE_EVT_TIMEOUT 
这个事件在发生超时的时候产生,应用程序需要处理这个事件,超时的原因由CYBLE_TO_REASON_CODE_T定义

CYBLE_EVT_HARDWARE_ERROR 
这个事件表明内部发生了硬件错误,需要复位硬件。

CYBLE_EVT_HCI_STATUS 
这个事件由主机协议栈(Host Stack)产生。当控制器响应HCI命令返回错误码的时候,主机协议栈会产生此事件。

CYBLE_EVT_STACK_BUSY_STATUS 
BLE协议栈忙或不忙时主机协议栈会触发这个事件。参数为BLE协议栈当前状态

BLE stack busy = CYBLE_STACK_STATE_BUSY,

BLE stack not busy = CYBLE_STACK_STATE_FREE 


CYBLE_EVT_GAPC_SCAN_PROGRESS_RESULT

这个事件在每次发现设备的时候都会被触发;一个指向CYBLE_GAPC_ADV_REPORT_T类型结构体的指针会被当做事件参数返回。

CYBLE_EVT_GAP_AUTH_REQ 
这个事件由外设或中心设备接收。

当外设接收到这个事件的时候,它需要调用CyBle_GappAuthReqReply()  函数来响应来自中心设备的认证请求。

当中心设备接收到这个事件的时候,意味着从设备要求中心设备初始化认证流程。中心设备需要调用CyBle_GappAuthReq()这个函数来初始化认证流程。一个指向CYBLE_GAP_AUTH_INFO_T类型结构体的指针作为事件参数返回。

CYBLE_EVT_GAP_PASSKEY_ENTRY_REQUEST 
这个事件表明在配对过程中,设备需要发送配对密码。收到这个事件之后,要调用CyBle_GapAuthPassKeyReply()  函数,并给他传递有效的参数。这个事件并没有返回任何参数。

CYBLE_EVT_GAP_PASSKEY_DISPLAY_REQUEST 
这个事件表明在配对过程中,设备要显示配对密钥。一个指向uint32类型的数据作为事件参数返回。配对密钥可以是任何6位十进制值。

CYBLE_EVT_GAP_AUTH_COMPLETE 
这个事件表明认证程序已经完成。

事件参数包含了安全信息,该信息在CYBLE_GAP_AUTH_INFO_T结构体中定义。这个事件在以下三种操作结束时产生:

1、认证由一个最新连接的设备发起;

2、加密由一个已经绑定的设备发起;

3、重加密由一个连接已经加密的设备发起。

在加密或重加密期间,配对时交换的加密信息用于加密或重加密连接。因为这并不修改设备配对需要的认证参数,这个事件没有事件参数和加密操作结果。

CYBLE_EVT_GAP_AUTH_FAILED 
设备之间的认证失败。CYBLE_GAP_AUTH_FAILED_REASON_T类型的返回值表明失败原因。

外设已停止或启动广播。这个事件在调用CyBle_GappEnterDiscoveryMode 和CyBle_GappExitDiscoveryMode函数之后产生。事件参数是uint8类型的状态值。如果这个值为0x00,表明成功,否则失败。

CYBLE_EVT_GAP_DEVICE_CONNECTED 
连接到由蓝牙设备句柄标识的远端设备。事件参数包含一个指向设备句柄的uint8类型指针。

CYBLE_EVT_GAP_DEVICE_DISCONNECTED 
与远端设备断开连接。事件参数指向的数据表明连接断开的原因。

CYBLE_EVT_GAP_ENCRYPT_CHANGE 
有效连接的加密改变事件。evParam可以被解密为:

  • evParam[0] = 0x00 -> Encryption OFF
  • evParam[0] = 0x01 -> Encryption ON
  • Any other value of evParam[0] -> Error 
这个事件在加密改变时对应用程序非常有益。应用程序也可以选择忽略这个事件。

CYBLE_EVT_GAP_RESOLVE_PVT_ADDR_VERIFY_CNF 


CYBLE_EVT_GAPC_CONNECTION_UPDATE_COMPLETE 
这个事件在主机要求控制器更新连接参数时产生。事件参数为指向CYBLE_GAP_CONN_PARAM_UPDATED_IN_CONTROLLER_T结构体的指针。

CYBLE_EVT_GAPC_SCAN_START_STOP 
中心设备开始或停止扫描。这个事件在调用CyBle_GapcStartDiscovery和CyBle_GapcStopDiscovery函数的时候产生。事件参数包含扫描状态,是一个uint8类型的指针。0x00表明成功,否则失败。

CYBLE_EVT_GATTC_HANDLE_VALUE_NTF 
通知从sever设备收到数据。事件参数是一个指向CYBLE_GATTC_HANDLE_VALUE_NTF_PARAM_T结构体的指针。

CYBLE_EVT_GATTC_HANDLE_VALUE_IND 
表明从sever设备收到数据。事件参数是一个指向CYBLE_GATTC_HANDLE_VALUE_IND_PARAM_T的结构体指针

CYBLE_EVT_GATTS_DATA_SIGNED_CMD_REQ 。。。。








0 0
原创粉丝点击