跳到主要内容

使用Attmdb_add_service()创建128位UUID配置文件

6年前

使用Attmdb_add_service()创建128位UUID配置文件

张贴了Matthieu Antoine.0分 4回复
0旋转

你好,

基于样本128您提供的示例,我正在构建自己的专有概况。在使用函数Attmdb_add_service()时,出现一些疑虑......

让我们坚持目前的例子。有2个128位UUID特性(一个RW,一个RW + NTF)。

在Sample128_task.c中,存在一个名为_create_db_req_handler()的函数,其中数据库被填满。以下是我有关使用AttMDB_ADD_SERVICE()的理解:
- nb_att_16 = 4(我在以下描述中正确?)
_ 1 *主要服务声明(UUID16 = 0x2800)
_ 2 *特征声明(UUID16 = 0x2803)
_ 1 *客户端特征配置(UUID16 = 0x2902)
- nb_att_32 = 0
- nb_att_128 = 2
_ 2 UUID128特征

为什么nb_att_128 = 2虽然有3个UUID128项(2个特征和服务本身)?

有关服务的实现方式,为什么为Sample128选择了AttMDB_ADD_SERVICE()函数?几乎所有可用的配置文件都基于ATTM_SVC_CREATE_DB()。有没有比另一个更容易的方式?

谢谢,

6年前

vesan. 0分

你好哑光,

有关服务的实现方式,为什么为Sample128选择了AttMDB_ADD_SERVICE()函数?几乎所有可用的配置文件都基于ATTM_SVC_CREATE_DB()。有没有比另一个更容易的方式?

是的,其他方法更容易,大多数已经实现的服务利用。但是,我不认为您不能使用更简单的方法使用128位服务,至少可以轻松修改(根据我的发现)。

尽管如此,我认为最好使用更简单的创建服务方法。

5年前

SUMMER20100514. 0分

嗨,Vesan,可以请解释此处的attm_svc_create_db()方法的更多详细信息吗?

5年前

vesan. 0分

嗨Summer20100514,

这是ATTM_DB.H中的描述:

/ **
****************************************************************************************
* @brief函数用于简化服务数据库创建。
*
*使用attmdb模块的@see attmdb_add_service函数来创建服务数据库,
*然后使用@SeeAttmdb_add_attribute函数attmdb模块来创建属性
*根据参数中给出的数据库描述数组。
*
* @note:数据库描述阵列应为CONTR,以减少内存解链器(仅ROM)
* @note:它只支持16位UUIDS
*
* @param [in | out] shdl服务开始句柄。
* @param [in | out] cfg_flag配置标志,每个位匹配属性
* att_db(max:32属性);如果该位设置为1,则
*将在服务中添加属性。
* @param [in] max_nb_att服务中的属性数
* @param [in | out] att_tbl数组将以差异满足
*每个特征手柄和服务开始句柄。
*如果有多个特征是可选的,则此阵列非常有用
*在服务中,如果不需要,可以设置为null。
* @param [in] dest_id任务ID链接到服务。此任务将收到通知
*每次通过对等设备修改服务内容。
* @param [in | out] att_db表包含所有属性信息
*
* @return命令状态代码:
* - @refat_err_no_error:如果数据库创建成功。
* - @refat_err_invalid_handle:如果在参数+ nb中给出的start_hdl属性覆盖
*一些现有的服务处理。
* - @refat_err_insuff_resource:没有足够的内存来分配服务缓冲区。
*无法添加新属性,因为所有预期
*已添加的属性或检测到的缓冲区溢出
*分配
****************************************************************************************
* /

谢谢!

5年前

SUMMER20100514. 0分

我以前读过这个,但谢谢你们一样。