バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
CANoeの内部プロセスとして描画プロセスと計測/演算プロセスが存在することと、
プロセス間通信がTCP/IPを使用していることのの裏付けの調査結果を確認。
引き続き調査結果の話とCANoeの設計思想の話。
登場人物
博識フクロウのフクさん
イラスト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
CANoe内のTCP/IPによるプロセス間通信の様子
CANoeの中の各プロセスがTCP/IPでプロセス間通信しているって前回言ってたけど、
具体的どうやってるのかって確認方法ってあるの?
TCP/IPであれば可能だね。
んー?
なんか方法があるってこと?
Wiresharkでキャプチャできるはずだよ。
プロセス間通信だから具体的なイーサネットインターフェースとか無いけど見れるものなの?
物理的なインターフェースは無いけど、
論理的なインターフェースとしてはBSD-loopbackとかUnixドメインってことにはなるね。
ほう。
論理的なインターフェースって考え方もあるのか。
まぁ実際にキャプチャしてみたから、それを見てみよう。
CANoe内のプロセス間通信をキャプチャ
WiresharkでイーサネットインターフェースをBSD-lookbackを指定してキャプチャした結果が以下。
TCPポートは前回のnetstatで確認した2809、2810、3001が対象だな。
まぁ3001は見当たらなかったけど。
あ、本当にキャプチャできるんだ!
キャプチャはできたけど、さすがに電文仕様まではわからないね。
少なくともかなり速いレート(msオーダー)で通信しているってことだけが分かる。
まぁCANoeのハックするのが目的じゃないし、
本当にTCP/IPでプロセス間通信をしている裏付け情報としては十分だね。
CANoeの設計思想
あと、TCP/IPを使ってプロセス間通信をしているのはCANoeの設計思想に依存しているようなこといってたけど、そこらへんの話はどうなるの?
おそらく以下の構成が取れることを想定していると思われる。
ほう。
ユーザインターフェースとランタイムカーネルが同一のCANoeじゃないパターンを想定しているってことか。
それも同一PCである必要も無いと。
特に右側なんかはPCですらないパターンだね。
こういう構成を想定するとTCP/IPでプロセス間通信させた方が汎用性が上がるんだよね。
そういう意味ではうまく設計されたツールと言えるだろう。
で、結局FMUはどうするの?
で、元々の問題のFMUはどうしようか?
CANoeのVersionを変えられないならWin32向けのFMUを作るしかないだろうね。
ただ、Win32向けのFMUを作るにはOpenModelicaの32bit版じゃないと作れないと思う。
さらにOpenModelicaの32bit版と64bit版を両方インストールするとライブラリの参照が後から入れた方に依存するみたいだから、結果として共存はできない。
じゃー、一旦OpenModelica64bit版をアンインストールして、32bit版をインストールしてFMUを作り直すってことで。
次回までにやっておくねー。
まとめ
まとめだよ。
- CANoe内のTCP/IPによるプロセス間通信の様子を確認。
- WiresharkでBSD-loopbackをキャプチャ。
- netstatで確認したポートをキャプチャ。
- CANoeの設計思想予想。
- ユーザインターフェースとランタイムカーネルは別PC、別プラットフォームでも動作する思想。
バックナンバーはこちら。
コメント