リングバッファとバイト配列でロギング
概略
構造体のデータをリングバッファに一時的に格納します
SDカードに書込みするときにリングバッファからデータを読み出して書込みを行います
SDカードに文字列を書き込むFilePuts命令は一度に1986byte書込みできるのに対してバイナリデータを書き込むFileWrite命令では一度に最大65534byteの書込みが可能です
しかし、FileWrite命令で文字を書き込むときは文字列をバイト配列に変換する必要があるためプログラムが複雑になります
使用例
プライマリタスク
定周期タスク
プライマリタスクではデータをリングバッファに格納ます
RingBufPutでリングファイルにデータを格納して、LogFlgの立下りで空白データを格納してファイルの区切り(ファイル変更)の印とします
定周期タスクではリングバッファから読み出してSDカードに書き込みをします
バイト配列に変換してSDカードに書き込むTraceSDWriteFBの処理に時間がかかるため10ms~のタスク周期で調整します
リングバッファにデータがあればTraceSDWriteを実行し空白データが見つかるまで実行中(Busy)になり、空白データが見つかればファイルを閉じ正常終了(Done)を出力して終了します