自定义协议的附加特征描述符

3个帖子/ 0个新
最后发表
sancsoft
离线
最后看到:5年7个月前
加入:2015-04-05 02:18
自定义协议的附加特征描述符

sample128协议模板提供了一个很好的示例,它创建了一个包含一些具有不同属性的特征的服务,包括实现客户机特征配置描述符的Notify属性。添加其他描述符(如特征用户描述和特征表示格式)也很好。

为了将这些添加到我们的服务中,我们尝试为我们的服务的第一个特征创建一个演示格式。按照为特征和CCCD添加属性的相同思想,我们添加了attmdb_add_attribute调用:


//为数据库添加特征表示格式属性
Status = attmdb_add_attribute(datalogging_env.datalogging_shdl,
(struct prf_char_pres_fmt), //数据大小7字节
ATT_UUID_16_LEN, //表示格式类型ID的大小
(uint8_t*) &att_decl_chpf, // 0x2904特征表示格式的UUID
PERM(RD, ENABLE), //权限
&(val_hdl) //处理值属性
);

设置属性值:


//设置Interval的显示格式
struct prf_char_pres_fmt datalogging_interval_pf;
Memset (&datalogging_interval_pf, 0, sizeof(struct prf_char_pres_fmt));
datalogging_interval_pf。格式= 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)/总数据(prf_char_pres结构体的+7字节)大小的数量。

但是由于某些原因,这将导致其余的特征声明无法工作,因为在使用测试应用程序时,它们不会出现在服务中。有实现表示格式和/或用户描述描述符的例子吗?

谢谢!

设备:
sancsoft
离线
最后看到:5年7个月前
加入:2015-04-05 02:18
我忽略了一件事

我忽略的一件事是attmdb_att_set_value调用,而不是val_hdl的设置值应该指向附加描述符从开始句柄的偏移量。

其余的特征确实显示出来了,但我没有看到格式说明符有任何更新。还可以看到描述符和格式描述符的示例。

JE_Dialog
离线
最后看到:3周2天前
工作人员
加入:2013-12-05 14:02
嗨,Sanscroft,你读过了吗

嗨,Sanscroft,你读过AN-B-029教程:创建自定义档案吗?这涉及到很多关于样本的细节…本教程将介绍您所描述的问题。BR JE_Dialog