OKDCC
開発メモ
code:図
タイムスタンプ列
│
〈ストリーミングパース〉
↓
ビット列
│
〈ストリーミングパース〉
↓
バイト
│
〈パース〉
↓
パケット
done dcc_decodeSignals dcc_writesSignalBuffer dcc_readsSignalBuffer 要らない
done |= にできる
code:dcc.c
parser->inByte.byte = parser->inByte.byte | (bit << (7 - parser->inByte.bitCount));
DCC_BITS32_C DCC_BIT_C 使ってるところほとんど使わなくていいかも
演算子使うと int 昇格されるので
int が 16 ビットの環境かもしれんな(int は少なくとも 16 ビット)
done DCC_BIT_C は要らないでしょ
done dcc_validatePacket も dcc_Result を返そう
done ドキュメントコメントをヘッダーファイルに
マイコンに電気信号を取り込むために降圧回路を考える
ツェナーダイオードとトランジスターを使ったシリーズレギュレーター
done dcc_minOneHalfBitSentPeriod など dcc.c でしか使わないものは宣言に static を付ける
done ブロックで囲う
decode や feed_* のテストを書く
テストケース作るのがわりと大変
TEA 類似のフレームワークで UI 作る
X11 のときボタンのラベルをクリックするか、何かキーでそれ相当の入力にしたい
ディレクトリー分け変えたい
UI といっても、モニター、デコーダー、コマンドステーション、それぞれある
ロジックのほんまのコア
code:deps.mmd
graph TB
ui/monitor --> ui
ui/command-station --> ui
mock/x11/monitor --> ui/monitor
mock/m5stack/monitor --> ui/monitor
app/m5stack/monitor --> ui/monitor
app/m5stack/monitor --> logic
app/m5stack/monitor --> electric?
test/unit --> logic
test/m5stack/voltage --> electric?
ui 汎用 UI ライブラリー
logic DCC 処理
electric? 電気関係?
ui/monitor モニター画面
ui/command-station コマンドステーション画面
mock/x11/monitor X11 で動くモニターモック
mock/m5stack/monitor M5Stack で動くモニターモック
app/m5stack/monitor ホンチャンのモニター
test/unit logic の単体テスト
test/m5stack/voltage M5Stack で電圧変化を見たりするやつ