你好,
我无法介绍如何使用128bit uuids,当我指定属性管理器的数据库描述时,我稍后传递给函数attm_svc_create_db()。
例如,加速度配置文件如下:
static const struct attm_desc accel_att_db [accel_idx_nb] =
{
[Accel_idx_prim_svc] = f / *加速度计服务* /
{att_decl_primary_service,perm(rd,启用),
sizeof(Accel_svc),sizeof(Accel_svc),
(UINT8_T *)&ACCEL_SVC},
[Accel_IDX_ENABLE_CHAR] = / *加速度计启用特性* /
{att_decl_characteration,perm(rd,启用),
sizeof(Accel_Enable_char),sizeof(Accel_Enable_char),
(UINT8_T *)&Accel_Enable_Char},
[Accel_IDX_ENABLE_VAL] = / *加速度计启用值* /
{Accel_Enable_UuID,(PERM(RD,启用)| PERM(WR,ENABLE)),
sizeof(uint8_t),0,(uint8_t *)null},
......
};
但是,在“attm_desc”类型中,只有16位字段为uuid:uint16_t uuid;
那么用这种方法做什么?
问候,vesa

嗨Vesa,
你是对的。这是用于创建16位UUID。
对于128bit UUID创建,您可以尝试以下代码:
//////字符1
//添加char1属性
status = attmdb_add_attribute(sample128_env.sample128_shdl,att_uuid_128_len + 3,// data size = 19(att_uuid_128_len + 3)
ATT_UUID_16_LEN,(UINT8_T *)&ATT_DECL_CHAR,PERM(RD,ENABLE),
&(char_hdl));
//添加char1 val属性
status = attmdb_add_attribute(sample128_env.sample128_shdl,128,// data size = 128
ATT_UUID_128_LEN,(UINT8_T *)和SAMPLE128_1_VAL.UUUID,PERM(RD,ENABLE)|perm(wr,启用)|perm(ntf,启用),
&(val_hdl));
memcpy(sample128_1_char.attr_hdl,&val_hdl,sizeof(uint16_t));
status = attmdb_att_set_value(char_hdl,sizeof(sample128_1_char),(uint8_t *)和sample128_1_char);
你好,
谢谢你的答案!
编辑:还有一件事,你能详细说明你如何计算属性的大小?
BR,VESA