你好,
我尝试开发一个控制LED的应用程序,我改变了通用访问服务的特征“外观”,以允许写操作。这是工作,当我连接到蓝牙,我可以改变值,当我读取它是正确的。
现在我想实现一些小更新的代码,ON/OFF的LED取决于外观值,但我不明白在代码中我可以得到这个值,我如何可以测试它。我的应用程序是基于SmartTag的例子。
问候,
向上
嗨Sbourahla,
我会尽快查询并给你回复。
最好的问候,RvA
嗨RvA,
好的,谢谢你,我继续寻找这个,我在文件“prf_utils.h”中找到了这个:
Void prf_read_char_send(struct prf_con_info* con_info,Uint16_t shdl, Uint16_t ehdl, Uint16_t valhdl){struct gattc_read_cmd * req = KE_MSG_ALLOC(gattc_read_cmd, KE_BUILD_ID(TASK_GATTC, con_info->conidx),con_info - > prf_id gattc_read_cmd);/ /请求类型申请- > req_type = GATTC_READ;申请- > nb = 1;申请- > req.simple。抵消= 0;申请- > req.simple。长度= 0;申请- > req.simple。处理= valhdl;
//向GATT发送请求ke_msg_send(要求的);}
你认为我可以用这个来读属性/特征吗?
最好的问候,
有一个GAPM_APPEARANCE_INDble堆栈中的消息,当外观可写和被对等设备修改时触发。
事件解释对端设备外观修改时触发的事件。这只能发生在设备外观可写入属性数据库。
你需要做的是:1.转到app_task_handlers.h,填充line "{GAPM_APPEARANCE_IND (ke_msg_func_t) gapm_appearance_ind_handler}在数组app_default_state中2.定义自己的消息处理程序,格式如下:
Int gapm_apance_ind_handler (ke_msg_id_t const msgid,
Struct gapm_appance_ind const *param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
if (ke_state_get(dest_id) == APP_CONNECTED) / /获取当前已连接状态
//检查参数,查看修改后的外观值,并做相应的LED控制
}
谢谢,我用SmartTag应用实现了这一点,这是工作。现在我对BLE堆栈和SDk的工作原理有了更多的了解。由于某些原因,条件"ke_state_get(dest_id) == APP_CONNECTED)不能工作。我认为这是因为我没有使用好的Android应用程序(SmartTag应用程序只在iOS,所以我使用标准BLE扫描Android),所以状态APP_CONNECTED它从来没有定义。你觉得呢?
我们相信。当发送外观写cmd时,您可以在应用程序端检查设备是否仍处于连接状态。
向上
嗨Sbourahla,
我会尽快查询并给你回复。
最好的问候,RvA
嗨RvA,
好的,谢谢你,我继续寻找这个,我在文件“prf_utils.h”中找到了这个:
Void prf_read_char_send(struct prf_con_info* con_info,
Uint16_t shdl, Uint16_t ehdl, Uint16_t valhdl)
{
struct gattc_read_cmd * req = KE_MSG_ALLOC(gattc_read_cmd, KE_BUILD_ID(TASK_GATTC, con_info->conidx),
con_info - > prf_id gattc_read_cmd);
/ /请求类型
申请- > req_type = GATTC_READ;
申请- > nb = 1;
申请- > req.simple。抵消= 0;
申请- > req.simple。长度= 0;
申请- > req.simple。处理= valhdl;
//向GATT发送请求
ke_msg_send(要求的);
}
你认为我可以用这个来读属性/特征吗?
最好的问候,
嗨Sbourahla,
有一个GAPM_APPEARANCE_INDble堆栈中的消息,当外观可写和被对等设备修改时触发。
你需要做的是:
1.转到app_task_handlers.h,填充line "{GAPM_APPEARANCE_IND (ke_msg_func_t) gapm_appearance_ind_handler}在数组app_default_state中
2.定义自己的消息处理程序,格式如下:
Int gapm_apance_ind_handler (ke_msg_id_t const msgid,
Struct gapm_appance_ind const *param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
if (ke_state_get(dest_id) == APP_CONNECTED) / /获取当前已连接状态
{
//检查参数,查看修改后的外观值,并做相应的LED控制
}
}
最好的问候,RvA
嗨RvA,
谢谢,我用SmartTag应用实现了这一点,这是工作。现在我对BLE堆栈和SDk的工作原理有了更多的了解。由于某些原因,条件"ke_state_get(dest_id) == APP_CONNECTED)不能工作。我认为这是因为我没有使用好的Android应用程序(SmartTag应用程序只在iOS,所以我使用标准BLE扫描Android),所以状态APP_CONNECTED它从来没有定义。你觉得呢?
最好的问候,
嗨Sbourahla,
我们相信。当发送外观写cmd时,您可以在应用程序端检查设备是否仍处于连接状态。
最好的问候,RvA