7个职位/ 0个新职位
最后发表
sbourahla
离线
最后看到:5年6个月前
专家
加入:2015-02-25 09:51
读/写

你好,

我尝试开发一个控制LED的应用程序,我改变了通用访问服务的特征“外观”,以允许写操作。这是工作,当我连接到蓝牙,我可以改变值,当我读取它是正确的。

现在我想实现一些小更新的代码,ON/OFF的LED取决于外观值,但我不明白在代码中我可以得到这个值,我如何可以测试它。我的应用程序是基于SmartTag的例子。

问候,

sbourahla
离线
最后看到:5年6个月前
专家
加入:2015-02-25 09:51
向上

向上

RvA
离线
最后看到:1天39分钟前
工作人员
加入:2014-02-07 14:10
嗨Sbourahla,

嗨Sbourahla,

我会尽快查询并给你回复。

最好的问候,RvA

sbourahla
离线
最后看到:5年6个月前
专家
加入:2015-02-25 09:51
嗨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(要求的);

你认为我可以用这个来读属性/特征吗?

最好的问候,

RvA
离线
最后看到:1天39分钟前
工作人员
加入:2014-02-07 14:10
嗨Sbourahla,

嗨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

sbourahla
离线
最后看到:5年6个月前
专家
加入:2015-02-25 09:51
嗨RvA,

嗨RvA,

谢谢,我用SmartTag应用实现了这一点,这是工作。现在我对BLE堆栈和SDk的工作原理有了更多的了解。由于某些原因,条件"ke_state_get(dest_id) == APP_CONNECTED)不能工作。我认为这是因为我没有使用好的Android应用程序(SmartTag应用程序只在iOS,所以我使用标准BLE扫描Android),所以状态APP_CONNECTED它从来没有定义。你觉得呢?

最好的问候,

RvA
离线
最后看到:1天39分钟前
工作人员
加入:2014-02-07 14:10
嗨Sbourahla,

嗨Sbourahla,

我们相信。当发送外观写cmd时,您可以在应用程序端检查设备是否仍处于连接状态。

最好的问候,RvA