你好,对话框,
使用示例项目“ble_app_peripheral”,我们创建了带有3个新特征的自定义概要文件的项目:Param1 - 1字节、Param2 - 1字节和Param2 - 2字节。外部单片机与BLE芯片通信,读取和更新这些参数。移动应用程序也可以读取和更新参数。问题:
1.从自定义配置文件中读取这些特征的实际值的最好和最快的方法是什么(例如,有一个来自外部MCU的串行命令“Get Params”)?
2.哪一种是最好和最快的方式将这些特征的新值写入自定义配置文件(例如,有一个串行命令从外部MCU“设置参数”)?
3.如何更新特征的默认值与我们的值后POR和数据库的默认初始化?也许第二个问题的答案会帮助我们解决第三个问题。
提前感谢你的快速提问。
设备:
嗨AngelT,
你有一个完全嵌入的或完全托管的实现?更确切地说,在580上运行的应用程序是在580上运行还是通过GTL在外部MCU上运行?如果超过GTL,则:
1)没有实现这个概要文件但是我想你可以从数据库中检索数据通过使用自定义消息和一个自定义函数,读取数据库从580年(在概要文件580固件)并返回一个消息在GTL接口到您的应用程序。例如580 prox_reporter_ext在迪斯服务有一个功能diss_set_char_val_req_handler()为了设置使用数据库中的数据(它的windows应用程序一旦调用的应用程序有一个确认的设备创建了数据库)。您可以创建一个附加函数,以便使用attmdb_att_get_value()从数据库检索数据,并通过GTL返回值。
还有一些命令,您可以从外部应用程序发出,您可以检查RW-BLE-GATT-IS, GATTM_ATT_GET_VALUE_REQ是您正在寻找的。
2)您可以使用已经实现的消息CUSTS1_VAL_SET_REQ并更新数据库的值,或者再次实现命令GATTM_ATT_SET_VALUE_REQ。
和第二个问题一样。
由于MT_dialog
嗨MT_dialog,
谢谢你这么快的答复。我成功地实现了读/写操作的数据库使用您的建议和示例项目,但我有几个问题。
1.在TASK_APP中执行函数attmdb_att_get_value()和attmdb_att_set_value()以及从任务为task_cust1的自定义配置文件中读取/写入特征是否正确?
2.这是一个定义好的消息CUSTS1_VAL_SET_REQ,但是没有CUSTS1_VAL_GET_REQ。为什么?我检查了所有的示例项目和配置文件(例如DISS和DISC)。什么都没有。
3.为什么在示例项目“ble_app_peripheral”中,只有在设备处于连接模式时才启用custs1_val_set_req_handler()函数的执行?如果消息CUSTS1_VAL_SET_REQ被发送,并且当前状态不是“连接”,那么函数将不会被执行。这种行为是由BLE标准定义的,或者是其他原因。
嗨AngelT,
我不明白这个问题,为什么这是错的?如果你有一个完全托管的应用程序,这些函数是直接访问你的特征值的唯一方法,在一个完全嵌入的设计中,你可以通过自定义消息或使用我已经指出的GTL命令来使用它们。
2)你可以实现一个如果你想,我认为原因是,因为应用程序知道什么是值设置的特征,可以读取和如果
如果有来自主服务器的写入,则会有另一种指示(写入指示),告知应用程序数据库中已更改的值。
3)我不看到任何具体的原因及其绝对不是由团体由于这是一个定制的概要文件定义,我认为的规格定制概要文件构建决定,与概要文件应该只做设备的连接。
由于MT_dialog