通信クラスの仕様を統一しており、通信方式によらず同じようなプログラムを書くことが可能です。
バスクラスと送信者クラスに分けたことで、通信クラスを柔軟に組み合わせられます。
通信によっては複数のバスや送受信者を立てることができない場合があります。
flowchart LR
subgraph ファームウエア
subgraph writer1
送信オブジェクト1[オブジェクト] --int--> setMessage1[setMessage]
end
subgraph writer2
送信オブジェクト2[オブジェクト] --int--> setMessage2[setMessage]
end
setMessage1[setMessage] --byte string--> bus
setMessage2[setMessage] --byte string--> bus
end
bus -.byte string.-> 通信バス
flowchart LR
subgraph ファームウエア
subgraph writer1
送信オブジェクト[オブジェクト] --int--> setMessage
end
subgraph writer2
getMessage --int--> 受信オブジェクト[オブジェクト]
end
setMessage --byte string--> bus
direction RL
bus --byte string--> getMessage
end
bus <-.byte string.-> 通信バス
flowchart LR
subgraph ファームウエア1
subgraph writer2
送信オブジェクト1[オブジェクト] --int--> setMessage1[setMessage]
end
subgraph writer3
送信オブジェクト2[オブジェクト] --int--> setMessage2[setMessage]
end
subgraph writer1
送信オブジェクト3[オブジェクト] --int--> setMessage3[setMessage]
end
setMessage3 --byte string--> ファームウエア1bus1
setMessage1 --byte string--> ファームウエア1bus2
setMessage2 --byte string--> ファームウエア1bus2
end
ファームウエア1bus1[bus1] -.byte string.-> 通信バス1[通信バス]
ファームウエア1bus2[bus2] -.byte string.-> 通信バス2[通信バス]
通信バス1[通信バス] -.byte string.-> ファームウエア2bus1[bus1]
通信バス2[通信バス] -.byte string.-> ファームウエア2bus2[bus2]
subgraph ファームウエア2
subgraph reader1
getMessage1 --int--> 受信オブジェクト1[オブジェクト]
end
subgraph reader2
getMessage2 --int--> 受信オブジェクト2[オブジェクト]
end
subgraph reader3
getMessage3 --int--> 受信オブジェクト3[オブジェクト]
end
ファームウエア2bus1 --byte string--> getMessage1
ファームウエア2bus2 --byte string--> getMessage2
ファームウエア2bus2 --byte string--> getMessage3
end