SDK: 3.0.6
我使用sample128.c配置文件,
当中心写样本128字符..,我将收到消息:GATTC_WRITE_CMD_IND,并进入gattc_write_cmd_ind_handler,它是工作得很好。
我想知道,如果中心(智能手机,或其他)读取特征UUID,我应该收到消息:GATTC_READ_CMD对吗?
所以我添加了代码:
//连接状态处理器定义。
Const struct ke_msg_handler sample128_connected[] =
{
(ke_msg_func_t) gattc_write_cmd_ind_handler}, {GATTC_WRITE_CMD_IND
(ke_msg_func_t) sample128_upd_char2_req_handler}, {SAMPLE128_UPD_CHAR2_REQ
(ke_msg_func_t) sample128_read_ind_handler}, {GATTC_READ_CMD
};
但是,函数sample128_read_ind_handler(…)从来没有调用~?为什么?(我们只是可以接收GATTC_WRITE_CMD_IND消息吗?)
Q2:我想收到这样的消息:GATTC_EXC_MTU_CMD,GATTC_DISC_CMD。等等,怎么办?
谢谢你的帮助。
关键词:
设备:
你好,
当客户端试图读取数据时,不会从堆栈中收到GATTC_READ_CMD_IND。读命令的目的是直接从GATT数据库读取数据,以节省电力。所以你不能选择以那种方式检测读取。可以将GATT层看作一个数据库——客户端在请求时可以使用数据,但通常不会在请求时生成数据。
可用的GATT API在RW-BLE-GATT-IS文档中进行了描述。GATTC_EXC_MTU_CMD和GATTC_DISC_CMD是客户端可以发送给服务器的命令。服务器端对这些命令的响应由堆栈自动处理。
命名约定如下(原语名称或消息名称的结尾):
_CMD,这是你可以发送的命令(例如GATTC_READ_CMD)
_REQ,非常像命令
_IND,这是一个指示/事件,您可以使用处理程序(响应一个CMD)进行操作。
_EVT是非常类似的迹象
_RSP,响应_REQ
我希望这能让大家对这件事有所了解
嗨,MHv_Dialog
谢谢您的回复!
我还有另一个问题:我已经创建了sample128配置文件(它工作得很好)。我想DA14580是一个中心角色,它可以发现sample128配置文件,读写特性。
有什么例子吗?(我找到了proxm.c proxm_task.c,但对我来说不够。)谢谢。
嗨Stone_wang,
annihilate有例子或教程128样本在一个中心的角色,但是你可以检查dsp在主机端参考设计,由于需求方服务是一个概要文件基于128概要文件可以使用这个为了发展一系列基于定制的概要文件。
由于MT_dialog
嗨MT_dialog
谢谢你的回复,我还有一个关于extern_sleepp的问题,
Q1,当设备工作在外部睡眠模式,并连接到Android。(设备是否不会进入extern_sleep模式?)
嗨Stone_wang,
我不确定我理解的问题,我假设你的意思是当设备运行在扩展睡眠模式....当设备在睡眠模式下运行时,在连接间隔之间或在广告模式下的广告间隔之间进入睡眠(延长或深度)。
由于MT_dialog