你好。我在看看贝斯_Task.C源码时,发表他gattc_write_cmd_ind_handler遇到数码要去操作品通知的布置。(bas_idx_batt_lvl_ntf_cfg)
这个使能通知是由手机端传来的,我是我这边时,发表在上面已经使能nofity的时代,他不会回调gattc_write_cmd_ind_handler幂。
我一张开着的是什么是gattc_write_cmd_ind这个命令的,我换成了其他的写作cmd也是不行的。这个是怎么怎么回事?
gattc_write_cmd和gattc_write_cmd_ind有啥的呢?
户外,SDK好像也法获取读数。是SDK不读的读的吗?
设备:
1.这个bas_idx_batt_lvl_ntf_cfg是用于使能通知的配置属性。
2.Server端发给通知/指示的消息,通讯调用的是prf_server_send_event
3. gattc_write_cmd和gattc_write_cmd_ind这两个差别在消息消息的方面不一定,前者是发作谷章层;而后者是谷仓〖bapc层〗来属性的的动作,发给通讯app overmation
4.在萨姆加层被被定理了(有关的代码代码封装,SDK里看不到),不合会通过应用程序层。
这个bas_idx_batt_lvl_ntf_cfg是用于使能通知的配置属性---我单位请教你这个。
1.在SDK5.0的文章Bass_Task.c的343行的gattc_write_cmd_ind_handler,
从从可看出,他他要对bas_idx_batt_lvl_ntf_cfg进行写,才能使bass_env.features [i] | = bass_flag_ntf_cfg_bit;
然后在电视中间轮询中,也是在bass_task.cn的276行的bass_batt_level_upd_req_handler中,他会去“检查通知是否已启用”,代码代码下:
//检查通知是否已启用通知
if((bass_env.features [param-> bas_instance]&bass_flag_ntf_cfg_bit)
== bass_flag_ntf_cfg_bit)
{
//通过gatt发送通知
prf_server_send_event((prf_env_struct *)&bass_env,false,
bass_env.shdl [param-> bas_instance] + bas_idx_batt_lvl_val);
}
2.所以他必须要收到gattc_write_cmd_ind,并且是对bas_idx_batt_lvl_ntf_cfg的写。
我认为在测试的时代,发表他他法收到gattc_write_cmd_ind。
测试方便是:用TI Sensortag APK在Android机制上,和用光智能应用在整个测试,但的是他他没有收到gattc_write_cmd_ind。
以闪烁为例,界面上有通知。来源点击,就可以配置了相应通知使能属性。我在分数gattc_write_cmd_ind_handler里程加成的
msgid静态int gattc_write_cmd_ind_handler(ke_msg_id_t const,
struct gattc_write_cmd_ind const * param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
.......
//仅更新配置如果停止或通知启用的值
if((ntf_cfg == prf_cli_stop_ntfind)||(ntf_cfg == prf_cli_start_ntf))
{
ARCH_PRINTF(“NTF_CFG为0x%x \ n”,ntf_cfg);//添加的打印
//在DB中设置NTF CFG值
attmdb_att_set_value(bass_env.shdl [i] + bas_idx_batt_lvl_ntf_cfg,sizeof(uint16_t),
(uint8_t *)&ntf_cfg);
....
@gongyu_dialog,谢谢您帮我。
我觉得难以击球来源来,发表不行。然后我把arch_printf用来Uart来打印。按照您的方向测试,用光紫色测试是可以的。是用来的ti的ti sensortag测试是不行的。估计android的ble这一件儿没有做全面吧。
ps:奇怪的是arch_console只实现打印输出,没有实现输入。我要还新闻写了输入的分数。
是用来的ti的ti sensortag测试是不行的。估计android的ble这一件儿没有做全面吧。
//可用用嗅探器工具始终有没有对相应的属性做作用
恩。我抓包。谢谢