SDK: 3.0.6
作为外围设备:
我创建一个配置文件,如sample128服务器,
服务器UUID:0X20FF,
特征1uuid: 0XFFA1,(读,写)
Characteristic2UUID: 0 xffa2(读、通知)
(我用一个usb狗连接外设,工作正常,狗狗可以读/写特徵1和接收特徵2的通知
Q1:。外围设备没问题吧?)
我创建了另一个项目作为中心
中心设备可以连接外设,可以发现服务器等。
中心可以写charactertic1,(外设将打印所有从中心接收的数据,所以我知道它是OK的)。
但是,当一个外设发送一个通知到一个中心设备,(我不知道在哪里接收通知,哪个函数或request_cmd将触发)
外围发送:GATTC_SEND_EVT_CMD, type = GATTC_NOTIFY,
中心将收到GATTC_EVT_IND ?所以我添加了代码:
Const struct ke_msg_handler sample128m_connected[] =
{
(ke_msg_func_t) sample128m_rd_char_1_req_handler}, {SAMPLE128M_RD_CHAR_1_REQ
(ke_msg_func_t) sample128m_wr_char_1_req_handler}, {SAMPLE128M_WR_CHAR_1_REQ
(ke_msg_func_t) gattc_read_ind_handler}, {GATTC_READ_IND
(ke_msg_func_t) gattc_event_ind_handler}, {GATTC_EVENT_IND
};
但是RW-Knrnel从来没有调用gattc_event_ind_handler()函数。
在哪里接收外设的通知?
请帮我解决这个问题。非常感谢。
你必须做两件事才能检索通知:
1.写入远程设备中相应特征的特征配置描述符,以便它通过空中发送通知。
2.用GATTC_REG_TO_PEER_EVT_CMD(参见http://support.dialog-semiconductor.com/system/files/resources/RW-BLE-GA..。).此消息的源任务将是稍后检索通知的任务(GATTC_EVENT_IND)。
嗨Stone_wang,
正如Joacimwe正确地说的那样,您必须写入外围设备中相应值特征的配置特征,以便中心开始从外围设备获得通知/指示。
由于MT_dialog