电池电量(BASS)和定制服务(cust1)特性(GTL over UART)

4个职位/ 0个新
最后发表
abremen
离线
最后看到:4年6个月前
加入:2015-02-10 17:44
电池电量(BASS)和定制服务(cust1)特性(GTL over UART)

亲爱的支持,

我已经移植了prox_reporter_ext项目(SDK 5.0.3),我已经添加了电池服务(如项目prox_reporter)和自定义服务(如项目ble_app_profile)。我使用GTL在UART上进行下一个处理器和DA14580之间的通信。

我非常想找到什么消息,我需要在我们的主机代码中处理,以响应一个“读取”的电池水平和一个“读取”的自定义特性。例如,我在iOS上使用应用程序LightBlue读取电池水平的请求(通过按“再次阅读”,同时选择电池服务)。但是,下面的消息(来自示例项目)都不会被触发,所以我可以真正地更新电池级别。

//通知APP数据库创建状态
案例BASS_CREATE_DB_CFM:

//配置文件被禁用后,禁用配置确认以保存
案例BASS_DISABLE_IND:

//给主机的错误指示
案例BASS_ERROR_IND:

//是否通知了电池电量值,请通知APP
案例BASS_BATT_LEVEL_UPD_CFM:

//通知APP电池电量通知配置已更改
案例BASS_BATT_LEVEL_NTF_CFG_IND:

对于我已经实现的自定义服务也是如此。我能够响应CUSTS1_VAL_WRITE_IND消息(当值被写入时),但是还不清楚如何响应Read。

期待您的回复。

亲切的问候,
阿扬

关键词:
设备:
MT_dialog
离线
最后看到:4个月2天前
工作人员
加入:2015-06-08 34
嗨abremen,

嗨abremen,

当您执行读取操作时,不会向应用程序提示已执行读取操作。

由于MT_dialog

abremen
离线
最后看到:4年6个月前
加入:2015-02-10 17:44
嗨MT_dialog,

嗨MT_dialog,

因此,如果我理解正确的话,应该由应用程序(在我们的外部处理器中)在数据库中保持DA14580上的信息(属性值)为最新吗?这样,当对等设备执行读取时,它将检索最新的值?这是唯一的方法吗?这对于BASS和cust1 ?

在BASS的情况下,每当电池水平发生变化时,我就需要向DA14580发送BASS_BATT_LEVEL_UPD_REQ消息(GTL over UART) ?

对于定制服务,你能给我解释一下消息序列吗?当前,主机向DA14580发送CUSTS1_CREATE_DB_REQ消息,然后DA14580向主机发送CUSTS1_CREATE_DB_CFM消息作为响应(启动顺序)。在连接时,DA14580向主机发送一个GAPC_CONNECTION_REQ_IND消息,之后主机发送一个GAPC_CONNECTION_CFM和CUSTS1_ENABLE_REQ作为响应。

在这个序列中,自定义特征的值应该设置在哪里?我需要使用哪些信息,以及以什么顺序使用?

谢谢,
阿扬

MT_dialog
离线
最后看到:4个月2天前
工作人员
加入:2015-06-08 34
嗨abremen,

嗨abremen,

当主机执行读取操作时,对端设备无法知道da14580中的所有配置文件中已经读取了特定的特征。由从设备更新数据库中的值。是的,每次您想要获得电池状态的更新时,您必须通过发出BASS_BATT_LEVEL_UPD_REQ来更新值。您可以在app_bass_task.c文件中检查完全托管的邻近性报告程序示例,调用app_bat_timer_handler()以便通过app_batt_lvl()函数对电池进行poll,并且app_bat_set_level发送BASS_BATT_LEVEL_UPD_REQ消息。此外,如果启用了通知,更新将触发通知。

关于自定义服务,您可以对您想要设置的特征发出更新命令。为了做到这一点,您可以尝试在启用概要文件之后立即使用CUSTS1_VAL_SET_REQ消息。

由于MT_dialog