电池电平读数(BASS)和自定义服务(cust1)特性(UART上的GTL)

4个职位/ 0个新职位
最后发表
abremen
离线
最后看到:4年7个月前
加入:2015-02-10 17:44
电池电平读数(BASS)和自定义服务(cust1)特性(UART上的GTL)

亲爱的支持,

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

我非常想找到我需要在我们的主机代码中处理的消息,以响应电池水平的“读”和自定义特征的“读”。例如,我在iOS上使用App 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:

我实现的Custom Service也是如此。我能够响应CUSTS1_VAL_WRITE_IND消息(当值为write时),但还不清楚如何响应Read。

期待您的回复。

亲切的问候,
阿扬

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

嗨abremen,

当您执行读操作时,不会向应用程序表明已经执行了读操作。

由于MT_dialog

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

嗨MT_dialog,

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

在BASS的情况下,我因此需要发送一个BASS_BATT_LEVEL_UPD_REQ消息(GTL over UART)到DA14580每次电池水平变化?

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

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

谢谢,
阿扬

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

嗨abremen,

当主机执行读取时,对等设备无法知道da14580中的所有配置文件中都已读取了特定特征。由从设备来更新数据库中的值。是的,每次你想获取电池状态的更新,你必须通过发出BASS_BATT_LEVEL_UPD_REQ来更新这个值。您可以在app_bass_task.c文件中检入完全托管的接近报告程序示例,调用app_bat_timer_handler()以便通过app_batt_lvl()函数轮询电池,并且app_bat_set_level发送BASS_BATT_LEVEL_UPD_REQ消息。如果启用了通知,更新也会触发通知。

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

由于MT_dialog