バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回はxcp_canのCAN-FD対応のDAQ list関連の修正を実施。
namedtupleやint.from_bytesを使用していたこともあり、さほど難しい修正はなかった。
今回は残りのSTIM関連の修正を実施する。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
STIMの送信レイアウト調整
前回はDAQ関連だったから、今回はSTIM関連の修正だね。
ノリはDAQの時と一緒だね。
まぁメソッドとしてはインターフェース仕様の違いはあるんで、
修正内容の雰囲気は違うけど。
まずSTIMの送信レイアウトの修正。
16bit長から32bit長への変更だ。
def stim( self, target,input):
sndmsg = bytearray([0x01])
sndmsg += target.to_bytes(4,byteorder="little", signed=True)
sndmsg += input.to_bytes(4,byteorder="little", signed=True)
self.xm.transport.send(sndmsg)
これはint.to_bytesを使ってたから2byte指定を4byte指定に変えるだけでOKなんだね。
うん。
int.to_bytesのおかげでチョロい修正となる。
STIM送信時のrawデータ変換(浮動小数点→1/65536)
次は物理値からrawデータへの変換だね。
DAQでやってたものも逆方向のやつか。
修正箇所は以下となる。
ram_update = [
[100*0x10000, 0*0x10000],
[100*0x10000, 60*0x10000],
[100*0x10000, 80*0x10000],
[100*0x10000, 95*0x10000],
[100*0x10000, 110*0x10000],
[100*0x10000, 95*0x10000],
[100*0x10000, 110*0x10000],
[100*0x10000, 100*0x10000],
[ 0*0x10000, 100*0x10000],
[ 0*0x10000, 0*0x10000],
]
あれ?
どっかの処理を直すのかとおもったけど、
送信データのリストを修正するのか。
うん。
まぁテストコードということもあって、
物理値って概念では管理してないんだよね。
ここらへんは仮想HILSで利用する際は注意が必要だろうね。
これはちゃんと覚えておかないと変なしくじりをしそうだ。
まぁしくじってもまともに動かないだけだからそんなに心配しなくても良いと思うよ。
何かが壊れるわけでも無いし。
そこら辺のシミュレーションならでは。だね。
次回は一旦このxcp_canの修正済みコードを確認して、
その後、実動作を確認って流れになるな。
まとめ
まとめだよ。
- STIMの送信レイアウト調整した。
- int.to_bytesを使用指定していたので一撃で修正完了。
- STIM送信時のrawデータ変換(浮動小数点→1/65536)を実施。
- xcp_canのテストコードとしては送信データをリスト管理しているだけなので、そのリスト修正するのみ。
- 仮想HILS修正時に要注意。
- xcp_canのテストコードとしては送信データをリスト管理しているだけなので、そのリスト修正するのみ。
バックナンバーはこちら。
コメント