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

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

sample128协议模板提供了一个创建包含几个具有不同属性的特征的服务的好例子,包括实现客户端特征配置描述符的Notify属性。如果能添加额外的描述符,比如特征用户描述和特征表示格式,那就更好了。

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


//添加特征表示格式属性到数据库
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, 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
离线
最后看到:2个月2周以前
加入:2015-04-05 02:18
我忽略了一件事

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

其余特征确实显示了,但我没有看到格式说明符中的任何更新。如果能看到描述符和格式描述符的例子,那就更好了。

JE_Dialog
离线
最后看到:3个月2个星期前
工作人员
加入:2013-12-05 14:02
你好,Sanscroft,你读过了吗

你好,Sanscroft,你读过AN-B-029教程:创建自定义配置文件吗?这将详细介绍样品128…本教程将讨论您所描述的问题。BR JE_Dialog