如何在Movesense中使用BleNordicUART

时间:2019-03-16 20:24:45

标签: bluetooth-lowenergy uart movesense

我想在我的自定义固件中使用BLE UART(BleNordicUART模块)来打印简单的调试输出(我没有编程夹具)。 在Wiki或源中找不到关于BLE UART的任何信息。 我可以从我的Android设备找到并连接到BLE UART服务,但是没有收到任何数据。

有人可以帮忙吗?

谢谢

2 个答案:

答案 0 :(得分:0)

在BleController.hpp中找到了send_ble_nus_data()函数。

答案 1 :(得分:0)

DebugService 是使用BLE Nordic UART的替代方法,它可以为您提供实时调试消息并将其存储到EEPROM以供以后检索。

有关该文档的文档仍然很少(请参阅:MovesenseCoreLib中的 debug.yaml ),但这是简短版本:

要在代码中写入(信息级别)调试消息(其他级别,请参见:DebugLogger.hpp):

DebugLogger::info("stateChange DOUBLETAP: newState = %d", stateChange.newState);

要通过BLE获取DebugMessages:

  • 订阅路径 / System / Debug / {Level} ,其中{Level}是以下项之一:

    • “致命”:0
    • “错误”:1
    • “警告”:2
    • “信息”:3
    • “详细”:4

要将调试消息存储到EEPROM,必须定义要在其中使用的存储区 App.cpp ,并确保它与Logbook内存没有重叠。定义示例(调试用16kB,日志用余量):

// Define 16kB DEBUG message area
// NOTE: If building a simulator build, these macros are obligatory!
DEBUGSERVICE_BUFFER_SIZE(6, 120); // 6 lines, 120 characters total
DEBUG_EEPROM_MEMORY_AREA(true, 0, 16384)
// Rest of the EEPROM is for Logbook 
LOGBOOK_MEMORY_AREA(16384, (384 * 1024)-16384);

...并在 / System / Debug / Log / Config 上配置通过PUT存储到EEPROM的最低级别。

要从EEPROM获取条目,请在 / System / Debug / Log 上使用包含最大时间戳记的查询对象执行GET(在Movesense> = 1.9中使用“ Id”)来获取(GET返回一次最多输入4-6个条目,因此您必须反复调用它才能获取所有条目。

全面披露:我为Movesense团队工作