Sample128协议模板提供了创建包含具有不同属性的少数特征的服务的良好示例,包括实现客户端特征配置描述符的通知属性。添加其他描述符,例如特征用户描述和特征呈现格式也很好。
为了尝试将这些添加到我们的服务中,我们试图为我们服务的第一个特征创建一个演示格式。在添加特征和CCCD的属性时相同的想法,我们添加了AttMDB_ADD_ATRRIBUTE调用:
//将特征呈现格式属性添加到数据库
status = attmdb_add_attribute(datalogging_env.datalogging_shdl,
sizeof(struct prf_char_pres_fmt),//数据大小7字节
ATT_UUID_16_LEN,//演示文稿格式类型ID的大小
(UINT8_T *)&ATT_DECL_CHPF,// 0x2904 UUID的特征呈现格式
perm(rd,启用),//权限
&(val_hdl)//句柄value属性
);
并设置属性值:
//设置间隔的呈现格式
struct prf_char_pres_fmt datalogging_interval_pf;
memset(&datalogging_interval_pf,0,sizeof(struct prf_char_pres_fmt));
datalogging_interval_pf.format = app_datalogging_interval_pf;
status = attmdb_att_set_value(val_hdl,sizeof(struct prf_char_pres_fmt),(uint8_t *)和datalogging_interval_pf);
调用ATTMDB_ADD_SERVICE时,更新UUID16属性声明大小(+1)/总数据(+7字节)大小的uuid16属性声明大小(+7字节)。
但由于某种原因,这导致剩余的特性声明不适用于在使用测试应用程序时不会出现在服务中。是否有实现演示格式和/或用户描述描述符的示例?
谢谢!
我忽略的一件事是在attmdb_att_set_value调用中,而不是val_hdl,设置值应该从start句柄中指向附加描述符的偏移量。
剩下的特征确实显示,但我没有看到格式说明符中的任何更新。看到描述和格式描述符的示例也仍然很好。
嗨Sanscroft,你读过AN-B-029教程:创建自定义个人资料吗?这在Sample128上进入了很多道歉的细节......本教程将通过您所描述的问题。BR JE_DIALOG.