【XCP】最小構成のMBD事例 第2章 その155【XCP Basic⑨】

【XCP】最小構成のMBD事例 第2章 その155【XCP Basic⑨】 事例
【XCP】最小構成のMBD事例 第2章 その155【XCP Basic⑨】

バックナンバーはこちら。
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コマンドを送信。
    • 無事送信&受信できた。
    • 他のコマンドも同様に試してみる。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました