【XCP】最小構成のMBD事例 第2章 その183【PyXCP⑤】

【XCP】最小構成のMBD事例 第2章 その183【PyXCP⑤】 事例
【XCP】最小構成のMBD事例 第2章 その183【PyXCP⑤】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

前回はコンフィグレーションパラメータ(JSON文字列)の作成と読み込み。
そして、そこからのコンフィグレーションオブジェクトの生成。
それを元にしたXCPマスターの生成まで実施した。

このXCPマスター使用してXCPコマンドの送受信ができるはずなので、一個ずつ試していく。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

CONNECT

太郎くん
太郎くん

XCPコマンドで最初にやるのは当然CONNECTコマンドだね。

フクさん
フクさん

そうだね。
XCPマスターにconnectってメソッドがあるから、
それをそのまま呼び出せばCONNECTコマンドが発行されるはずだ。
そして、戻り値がCONNECTコマンドのレスポンスに相当する情報が返ってくる。

太郎くん
太郎くん

じゃー、以下のコードを実行してみよう。

conn = xm.connect()
print(conn)

結果

Container: 
    resource = Container: 
        dbg = False
        pgm = False
        stim = False
        daq = True
        calpag = False
    commModeBasic = Container: 
        optional = True
        slaveBlockMode = False
        addressGranularity = (enum) BYTE 0
        byteOrder = (enum) INTEL 0
    maxCto = 8
    maxDto = 8
    protocolLayerVersion = 1
    transportLayerVersion = 1
太郎くん
太郎くん

お!
予想以上にちゃんとした情報がとれたぞ!

フクさん
フクさん

以前CONNECTコマンドをやった時は
CONNECTコマンドに対するレスポンスの明細は説明しなかったが、
サポートしてる機能や、通信方式MAX_CTOMAX_DTOを取得できる。

太郎くん
太郎くん

それらを一目で分かる形式で見れるのは良いねー。

GET_STATUS

太郎くん
太郎くん

続けてGET_STATUSコマンドを送ろう。

太郎くん
太郎くん

これもそのまんなメソッドがあるのかな?

フクさん
フクさん

そうだね。
getStatusってメソッドが有って、
これも戻り値でレスポンスの詳細が見れる。

太郎くん
太郎くん

じゃ、コードの感じは以下で。

status=xm.getStatus()
print(status)

結果

Container: 
    sessionStatus = Container: 
        resume = False
        daqRunning = False
        clearDaqRequest = False
        storeDaqRequest = False
        storeCalRequest = False
    resourceProtectionStatus = Container: 
        dbg = False
        pgm = False
        stim = False
        daq = False
        calpag = False
    sessionConfiguration = 0
太郎くん
太郎くん

これも結構詳細に出てくるねー。

太郎くん
太郎くん

sessionStatusってのは現状のXCPスレーブの状態を示してるのかな?

フクさん
フクさん

そうだね。
DAQが起動中なのかを確認するのに使用されることが多い。
あとはCAL_PAGEでROMに書き戻すって仕様があるんで、
その書き戻しが完了したかをstoreCalRequestで確認するってのもあるな。

太郎くん
太郎くん

うーん、意外とXCPの知らない仕様が出てくるなー。

フクさん
フクさん

まぁ今回は使う予定は無いんで、
そういうものがあるって程度の認識で良いと思うよ。

まとめ

フクさん
フクさん

まとめだよ。

  • 早速PyXCPでCONNECTとGET_STATUSのコマンドを投げて見た。
    • 共に問題無く動作
  • 該当メソッドの戻り値でレスポンスの詳細が取得できる。
    • かなり見やすい構造になっている。
  • GET_STATUSはレスポンス内容の性質上、DAQ起動中やCAL_PAGEのROM書き戻し完了待ちなどの確認使用されることが多い。

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

コメント

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