7个员额/0个新员额
最后一篇文章
斯博拉
离线
最后一次见到:6年1个月前
专家
加入:2015-02-25 09:51
读/写

你好

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

现在,我想根据外观值在代码中对LED的开/关进行一些小的更新,但我不知道在代码中从哪里可以得到这个值,以及如何测试它。我的应用程序基于SmartTag示例。

当做

斯博拉
离线
最后一次见到:6年1个月前
专家
加入:2015-02-25 09:51
向上的

向上的

RvA
离线
最后一次见到:2个月3周前
工作人员
加入:2014-02-07 14:10
嗨,斯波拉,

嗨,斯波拉,

我会检查一下,尽快给你回复。

致以最良好的祝愿,RvA

斯博拉
离线
最后一次见到:6年1个月前
专家
加入:2015-02-25 09:51
你好,RvA,

你好,RvA,

好的,谢谢,我继续寻找这个,我在文件“prf_utils.h”中找到了这个:

无效prf读取字符发送(结构prf控制信息*控制信息,
uint16_t shdl、uint16_t ehdl、uint16_t valhdl)
{
结构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->req_类型=GATTC_读取;
需求->nb=1;
req->req.simple.offset=0;
req->req.simple.length=0;
req->req.simple.handle=valhdl;

//向关贸总协定发出请求
发送消息(请求);
}

你认为我能用这个和怎样读一个属性/特征?

顺致敬意,

RvA
离线
最后一次见到:2个月3周前
工作人员
加入:2014-02-07 14:10
嗨,斯波拉,

嗨,斯波拉,

有一个GAPM_外观_IND当外观可写并由对等设备修改时,会触发我们的可写堆栈中的消息。

当对等设备修改设备外观时触发的事件。仅当设备
外观可写入属性数据库。

您需要做的是:
1.转到app_task_handlers.h,填充行“{GAPM_外观_IND,(ke_msg_func_t)GAPM_外观_indu handler},“阵列内应用程序默认状态”
2.以以下格式定义您自己的消息处理程序:

int gapm_外观_ind_handler(ke_msg_id_t const msgid,
结构gapm_外观_ind const*param,
KEU task\u id\u t const dest\u id,
ke_任务id_t常量src_id)
{
如果(keu state\u get(dest\u id)==APP\u CONNECTED)
{
//检查参数以查看修改后的外观值,并执行相应的LED控制
}
}

致以最良好的祝愿,RvA

斯博拉
离线
最后一次见到:6年1个月前
专家
加入:2015-02-25 09:51
你好,RvA,

你好,RvA,

谢谢,我用SmartTag应用程序实现了这一点,这很好用。现在我更了解了BLE堆栈和SDk的工作原理。出于某些原因,条件“ke_state_get(dest_id)=APP_CONNECTED”不起作用。我想这是因为我没有使用好的Android应用程序(SmartTag应用程序只在iOS上运行,所以我在Android上使用标准的BLE扫描),所以状态APP_CONNECTED永远无法定义。你认为呢?

顺致敬意,

RvA
离线
最后一次见到:2个月3周前
工作人员
加入:2014-02-07 14:10
嗨,斯波拉,

嗨,斯波拉,

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

致以最良好的祝愿,RvA