我是DA14560的新来者
这是我想做的事情:
Android应用将值发送到DA14580,DA14580然后修改特征的值,然后将指示器发送回Android应用。Android应用使用指示来读取相应的特征。
根据Android SDK的说法,我在这里有一个问题,当Android应用收到通知或指示时,应召唤characteristicChanged(),但在我的情况下从未触发。
我以前使用setCharacteristicnotification(特征,true)启用了特征通知。
这是我的characteristicChanged()方法
@Override
公共空白onChacteristicChanged(蓝牙Gatt,蓝牙gattharacteristic){
broadcastupdate(action_data_changed,特征);
log.d(标签,“收到通知!”);
}
这些是我的DA14580特征设置代码:
在profile_task.c中
静态int lowspp_create_db_req_handler(ke_msg_id_t const msgid,
struct lowspp_create_db_req const *param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
...
//添加val属性
status = attmdb_add_attribute(lowspp_env.lowspp_shdl,sizeof(uint8_t)*30,// data Size = 20 // HCASEN添加14-10-10
att_uuid_128_len,(uint8_t*)&lowspp_2_val.uuid,perm(rd,enable)|pers(ind,启用)|pers(wr,启用),
&(val_hdl));
memcpy(lowspp_2_char.attr_hdl,&val_hdl,sizeof(uint16_t));
status = attmdb_att_set_value(char_hdl,sizeof(lowspp_2_char),(uint8_t *)和lowspp_2_char);
...
}
在个人资料中
struct att_char128_desc lowspp_2_char = {att_char_prop_rd |att_char_prop_ind | att_char_prop_wr,
{0,0},
// {0xfb,0x34,0x9b,0x5f,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x10,0x00,0x00,0x00,0xe2,0x34,0x00,0x00,0x00}}}}}}};/*uuid*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x10,0x00,0x60,0x60,0x02,0xd0,0x18,0x18,0xd6}}}}}}};
lowspp_upd_char2_req_handler()修改属性数据库,并将指示器发送到Android应用
静态int lowspp_upd_char2_req_handler(ke_msg_id_t_t const msgid,
struct lowspp_upd_char2_req const *param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
uint8_t状态= prf_err_ok;
//检查提供的值
if(param-> conhdl == gapc_get_conhdl(lowspp_env.con_info.conidx))
{
// DB中的更新值
attmdb_att_set_value(lowspp_env.lowspp_shdl + lowspp_2_idx_val,
param-> len,(uint8_t *)&param-> val);
//将指示发送到对等设备
if(((lowspp_env.feature&prf_cli_start_ind))
{
prf_server_send_event((prf_env_struct *)和lowspp_env,true,
lowspp_env.lowspp_shdl + lowspp_2_idx_val);
}
}
别的
{
状态= prf_err_invalid_param;
}
如果(状态!= prf_err_ok)
{
lowspp_upd_char2_cfm_send(status);
}
返回(ke_msg_consumed);
}
如果你能帮我,非常感谢
你好托马斯,其中一支团队正在看一看,并将保持联系。
br je_dialog