HIDS数据库描述

2个帖子/ 0新
最后一篇
威斯利
离线
最后一次露面:3年1个月前
加入:2015-07-07 12:08
HIDS数据库描述

const struct attm_desc hids_att_db [hogpd_idx_nb] = {

// HID服务声明
[hogpd_idx_svc] = {att_decl_primary_service,
perm(rd,启用),
sizeof(hid_svc),sizeof(hid_svc),
(UINT8_T *)和HID_SVC},
// HID服务声明
[hogpd_idx_incl_svc] = {att_decl_include,
perm(rd,启用),
sizeof(struct att_incl_desc),0,
空值},

// HID信息特征声明
[hogpd_idx_hid_info_char] = {att_decl_characterativer,
perm(rd,启用),
sizeof(hids_hid_info_char),sizeof(hids_hid_info_char),
(uint8_t *)&hids_hid_info_char},

// HID信息特征值
[hogpd_idx_hid_info_val] = {att_char_hid_info,
perm(rd,启用),
sizeof(struct hids_hid_info),0,
空值},
// HID控制点特征声明
[hogpd_idx_hid_ctnl_pt_char] = {att_decl_characterativer,
perm(rd,启用),
sizeof(hids_hid_ctnl_pt_char),sizeof(hids_hid_ctnl_pt_char),
(uint8_t *)&hids_hid_ctnl_pt_char},
// HID控制点特征值
[hogpd_idx_hid_ctnl_pt_val] = {att_char_hid_ctnl_pt,
perm(wr,启用),
sizeof(uint8_t),0,
空值},
//报告地图特征声明
[hogpd_idx_report_map_char] = {att_decl_characterativer,
perm(rd,启用),
sizeof(hids_report_map_char),sizeof(hids_report_map_char),
(UINT8_T *)&HIDS_REPORT_MAP_CHAR},

//报告地图特征值
[hogpd_idx_report_map_val] = {att_char_report_map,
perm(rd,启用),
hogpd_report_map_max_len * sizeof(uint8_t),0,
空值},

//报告地图特征 - 外部报告参考描述符
[hogpd_idx_report_map_ext_rep_ref] = {att_desc_ext_report_ref,
perm(rd,启用),
sizeof(uint16_t),0,
空值},

......
}

有一些方法可以设置“HID信息特征值”的值和其他特征值??
我刚刚找到了“hogpd_set_report_map_req_handler”,它是设置“报告地图特征值”的函数

我尝试创建一个类似于“hogpd_set_report_map_req_handler”的函数。函数运行,但它没有工作。

静态int hogpd_set_hid_info_val_req_handler(ke_msg_id_t const msgid,
struct hogpd_set_report_map_req const * param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
// 地位
uint8_t status = prf_err_invalid_param;

//检查报告地图值长度
if(param-> report_map_len <= sizeof(struct hids_hid_info))
{
//检查HIDS实例 - 报表地图特征是强制性的,已添加。
if(param-> hids_nb {
//设置报告地图char。价值
#ifndef udder_one_hids_instance.
status = attmdb_att_set_value(hogpd_env.shdl [param-> hids_nb] + hogpd_env.att_tbl [param-> hids_nb] [hogpd_hid_info_char] + 1,
param-> eport_map_len,
(UINT8_T *)&PARAM-> REPORT_MAP [0]);
#别的
status = attmdb_att_set_value(hogpd_env.shdl [0] + hogpd_env.att_tbl [0] [hogpd_hid_info_char] + 1,
param-> eport_map_len,
(UINT8_T *)&PARAM-> REPORT_MAP [0]);
#万一
}
别的
{
//报告地图char。不在DB中 - 请求不允许
status = prf_err_req_disalded;
}
}

if(状态!= prf_err_ok)
{
//连接不存在,请求禁止
prf_server_error_ind_send((prf_env_struct *)&hogpd_env,status,
hogpd_error_ind,hogpd_set_char_val_req);
}

return(ke_msg_consumed);
}

设备:
mt_dialog.
离线
最后一次露面:3个月1周前
职员
加入:2015-06-08 11:34
威斯利,

威斯利,

我唯一可以看到的是从示例函数改变的是,你用32个字节的结构的大小替换了hogpd_report_map_max_len(512),这足以让您的报告地图的尺寸​​?我想如果函数返回任何错误,但设备不起作用也许您应该检查您的报表地图。

谢谢mt_dialog.