Альтернативой использованию BLE Nordic UART является DebugService , который может предоставить вам оперативные сообщения отладки, а также сохранить их в EEPROM для последующего извлечения.
Документация по этому вопросу немного скудна (см. debug.yaml в MovesenseCoreLib), но вот краткая версия:
Чтобы написать (от уровня информации) сообщение об отладке в коде (см. DebugLogger.hpp для других уровней):
DebugLogger::info("stateChange DOUBLETAP: newState = %d", stateChange.newState);
Чтобы получить DebugMessages поверх BLE:
Чтобы сохранить сообщения отладки в EEPROM, вы должны определить область памяти для использования в
App.cpp и убедитесь, что он не перекрывается с памятью журнала. Пример определения (16 КБ для отладки, остальные для журнала):
// 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);
... и настройте минимальный уровень для сохранения в EEPROM с PUT на / System / Debug / Log / Config .
Чтобы извлечь записи из EEPROM, выполните GET для / System / Debug / Log с объектом запроса, который содержит максимальную метку времени (в Movesense> = 1.9 используйте «Id») для выборки (GET возвращает max 4-6 записей в то время, поэтому вы должны повторно вызывать его, чтобы получить все записи).
Полное раскрытие: я работаю в команде Movesense