5

カスタム movesense ファームウェアの EEPROM へのロギングを統合しようとしています。ログ サービスのドキュメントを読んで、次のコードを使用して、ログ システムがカスタム ホワイトボード オブジェクトで構成されていること、およびログが有効になっている (ログ状態が 3 に設定されている) ことを確認しました。

WB_RES::DataLoggerConfig dConfig;
WB_RES::DataEntry dEntry, dEntry1;
WB_RES::DataLoggerStateValues::Type dlstate = WB_RES::DataLoggerStateValues::Type::DATALOGGER_LOGGING;

dEntry.path = "/App/Object1";
dEntry1.path = "/App/Object2";
dConfig.dataEntries.dataEntry = {dEntry, dEntry1};

result = asyncPut(WB_RES::LOCAL::MEM_DATALOGGER_CONFIG(), AsyncRequestOptions::Empty, dConfig);
if(!wb::RETURN_OKC(result))
  DebugLogger::info("asyncPut::datalogger config threw error: %u", result);

result = asyncPut(WB_RES::LOCAL::MEM_DATALOGGER_STATE(), AsyncRequestOptions::Empty, dlstate);
if(!wb::RETURN_OKC(result))
  DebugLogger::info("asyncPut::datalogger start threw error: %u", result);

yaml ファイルで構成したホワイトボード オブジェクト パスは次のとおりです。

paths: /App/Object1/Subscription:
  <blah, post/delete actions defined>
paths: /App/Object2/Subscription:
  <blah, post/delete actions defined>

まず、movesense ファームウェアでこれらのホワイトボード オブジェクトをログに記録することについて、これは正しいですか? yaml ファイルで定義されたホワイトボード パスと、コードで設定したデータ エントリ パスとの関係は? それらは正確に一致する必要がありますか?

第二に、上記が正しい場合、サブスクライブしたコンシューマーに通知を投稿するときにエントリが自動的にログに記録されるか (現在は onNotify() メソッドで行われます)、または特定の wb::LogEntry オブジェクトを作成する必要がありますか?を入力し、次のように MEM_LOGBOOK_ENTRIES() ターゲットに asyncPost を実行します。

wb::LogEntry foo;
result = asyncPost(WB_RES::LOCAL::MEM_LOGBOOK_ENTRIES(), AsyncRequestOptions::Empty, foo);

その場合、id、タイムスタンプ、そしてホワイトボード データ オブジェクトが必要なように見えるため、wb::LogEntry オブジェクトへの入力を支援するヘルパー関数はありますか? それとも、自分でそれらを生成する必要がありますか?

4

1 に答える 1