您好,
我尝试开发一个用于控制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-> req_type = gattc_read;req-> nb = 1;req-> req.simple.offset = 0;req-> req.simple.length = 0;req-> req.simple.handle = Valhdl;
//向GATT发送请求KE_MSG_SEND(REQ);}
你认为我可以用这个读取属性/特征吗?
最好的祝福,
有一个gapm_appearance_ind.在我们的BLE堆栈中的消息,当外观是可写的并由对等设备修改时触发的。
当对等设备修改设备外观时,事件触发。只有设备才会发生外观是可写入属性数据库。
你需要做的是:1.转到app_task_handlers.h,填写线“{gapm_appearance_ind,(ke_msg_func_t)gapm_appearance_ind_handler},“在Array App_Default_State2.按照以下格式定义自己的消息处理程序:
int gapm_appearance_ind_handler(ke_msg_id_t const msgid,
struct gapm_appearance_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)
//检查Param以查看更改的外观值,并执行相应的LED控制
}
谢谢,我用SmartTag应用程序实现了这个,它的工作。现在我了解更多的BLE堆栈和SDK工作。由于条件“ke_state_get(dest_id)== app_connected的某些原因它不起作用。我认为这是因为我不使用良好的Android应用程序(SmartTag应用程序,所以我使用Standart BLE扫描Android)所以Status 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-> req_type = gattc_read;
req-> nb = 1;
req-> req.simple.offset = 0;
req-> req.simple.length = 0;
req-> req.simple.handle = Valhdl;
//向GATT发送请求
KE_MSG_SEND(REQ);
}
你认为我可以用这个读取属性/特征吗?
最好的祝福,
嗨Sbourahla,
有一个gapm_appearance_ind.在我们的BLE堆栈中的消息,当外观是可写的并由对等设备修改时触发的。
你需要做的是:
1.转到app_task_handlers.h,填写线“{gapm_appearance_ind,(ke_msg_func_t)gapm_appearance_ind_handler},“在Array App_Default_State
2.按照以下格式定义自己的消息处理程序:
int gapm_appearance_ind_handler(ke_msg_id_t const msgid,
struct gapm_appearance_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)
{
//检查Param以查看更改的外观值,并执行相应的LED控制
}
}
最好的问候,RVA
嗨RVA,
谢谢,我用SmartTag应用程序实现了这个,它的工作。现在我了解更多的BLE堆栈和SDK工作。由于条件“ke_state_get(dest_id)== app_connected的某些原因它不起作用。我认为这是因为我不使用良好的Android应用程序(SmartTag应用程序,所以我使用Standart BLE扫描Android)所以Status App_connected它永远不会定义。你觉得怎么样?
最好的祝福,
嗨Sbourahla,
我们相信。当发送外观写入CMD时,您可以检查设备是否仍处于应用程序侧的连接状态。
最好的问候,RVA