バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回はXCP Basicのビルドを実施し、起動も問題無くできた。
起動オプションがいろいろあるが、
現状はデフォルトのCANで動作させるので気にしなくてOK。
今回は試しにXCPコマンドをXCP Basicへ送ってみる。
登場人物
博識フクロウのフクさん
イラスト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
XCP Basicに送るコマンド
今回は試しにXCPコマンドを送るって言ってたけど、
何を送ってみる?
とりあえず、以下かな。
- CONNECT
- GET_STATUS
- SYNC
あれ?
メモリ読み出しとかはやらないんだ?
まぁやっても良いんだけど、
PCアプリケーションの場合、変数のアドレスが物理アドレスじゃなくて論理アドレスで、
しかもどののアドレスにどの変数がアサインされることになるかが分からないんだよね。
あー。なるほどー。
しかも起動毎にアドレスが変わったりするらしいから、
そこら辺のシミュレーションがちょっと面倒そうだね。
というわけで、
今今はメモリアクセス以外のコマンドを試そうと思う。
ざっくりPythonからアクセス
Pythonを使うわけだが、
簡単な動作確認なんで、Pythonの対話モードかJupyter Notebookで済ませてしまおう。
まずは初期化関連
import can
bus = can.interface.Bus(bustype='vector', channel='1', bitrate=500000)
これで送受信可能になった。
よって、まずはCONNECTコマンドを送ってみる。
send_msg = can.Message(arbitration_id=reqid, extended_id=0, data=[0xFF, 0x00, ])
print('Send msg : %s' % send_msg)
bus.send( send_msg )
recv_msg = bus.recv(timeout=1)
print('Recv msg : %s' % recv_msg)
Send msg : Timestamp: 0.000000 ID: 0001 S DLC: 2 ff 00
Recv msg : Timestamp: 1634622160.061242 ID: 0002 S DLC: 1 ff Channel: 1
XCPsimコンソール側
-> CONNECT mode=0
お!
ちゃんと動いた!
ふむ。
とりあえず動作確認する程度だとPython-CANで十分そうだな。
残りのコマンドもPython-CANで確認してしまおう。
まとめ
まとめだよ。
- とりあえずXCP Basicのテスト用にメモリアクセスに絡まない以下のコマンドを送ってみる。
- CONNECT。
- GET_STATUS。
- SYNC。
- コマンドの送信はPythonの対話モードかJupyter Notebookで実施。
- まずはCONNECTコマンドを送信。
- 無事送信&受信できた。
- 他のコマンドも同様に試してみる。
バックナンバーはこちら。
コメント