你好
我尝试开发一个控制LED的应用程序,我更改了通用访问服务的特征“外观”以允许写入操作。这是可行的,当我连接到蓝牙时,我可以更改值,当我读取到正确的值时。
现在,我想根据外观值在代码中对LED的开/关进行一些小的更新,但我不知道在代码中从哪里可以得到这个值,以及如何测试它。我的应用程序基于SmartTag示例。
当做
向上的
嗨,斯波拉,
我会检查一下,尽快给你回复。
致以最良好的祝愿,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;
//向关贸总协定发出请求发送消息(请求);}
你认为我能用这个和怎样读一个属性/特征?
顺致敬意,
有一个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控制
}
谢谢,我用SmartTag应用程序实现了这一点,这很好用。现在我更了解了BLE堆栈和SDk的工作原理。出于某些原因,条件“ke_state_get(dest_id)=APP_CONNECTED”不起作用。我想这是因为我没有使用好的Android应用程序(SmartTag应用程序只在iOS上运行,所以我在Android上使用标准的BLE扫描),所以状态APP_CONNECTED永远无法定义。你认为呢?
我们相信是这样。发送外观write cmd时,可以在应用程序端检查设备是否仍处于连接状态。
向上的
嗨,斯波拉,
我会检查一下,尽快给你回复。
致以最良好的祝愿,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;
//向关贸总协定发出请求
发送消息(请求);
}
你认为我能用这个和怎样读一个属性/特征?
顺致敬意,
嗨,斯波拉,
有一个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
你好,RvA,
谢谢,我用SmartTag应用程序实现了这一点,这很好用。现在我更了解了BLE堆栈和SDk的工作原理。出于某些原因,条件“ke_state_get(dest_id)=APP_CONNECTED”不起作用。我想这是因为我没有使用好的Android应用程序(SmartTag应用程序只在iOS上运行,所以我在Android上使用标准的BLE扫描),所以状态APP_CONNECTED永远无法定义。你认为呢?
顺致敬意,
嗨,斯波拉,
我们相信是这样。发送外观write cmd时,可以在应用程序端检查设备是否仍处于连接状态。
致以最良好的祝愿,RvA