2021-12

事例

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

ODT_ENTRYをnamedtupleを使ってデータ管理してみた。 今回は一個しかないのでほぼ効能はないが、ODT_ENTRYが増えてきた際には大きな効能が見込めそう。 実際にSET_DAQ_PTR、WRITE_DAQ実施。 問題なく動作。 毎回SET_DAQ_PTRを投げるようなコードになってるが、とりあえずOK。
事例

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

WRITE_DAQの前にODT_ENTRYのデータ管理の便利な方法について説明。 namedtupleと使う。 tupleは異なるデータを一組に管理する手法や構造。 namedtupleはtupleの各要素に明示的に名前を付けられるようにしたもの。 管理のし易さを見やすさの両方が得られる。
事例

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

DAQ listの構築を一気に実施した。 FREE_DAQ、ALLOC_DAQ、ALLOC_ODT、ALLOC_ODT_ENTRYを一気に実施。 以前XCP BasicでやったDAQ list構築に合わせた構成にしてある。 PyXCPのメソッド単位で隠蔽されていることもあり、かなり楽ちん。
事例

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

メモリアクセス系コマンドということでSET_MTA、DOWNLOAD、UPLOADを実施。 DOWNLOADの結果がUPLOADするまで分からないということと、一個ずつ試すがめんどいので一気に流した。 UPLOAD→DOWNLOAD→UPLOADの流れでverifyすることで読み書きが正常に行われていることが確認できた。
事例

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

SYNCHコマンドを投げた。 想定通りERR_CMD_SYNCHを受け取れた。 GET_COMM_MODE_INFOコマンドを投げた。 今回使用しないがinterleavedMode、masterBlockModeの有無や関連パラメータが返ってくる。 上記以外に適用しているXCP仕様Versionも取得可能。
事例

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

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

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

コンフィグレーションパラメータ(JSON文字列)の作成と読み込みのコードを提示。 readConfigurationにStringIOを渡しているが、拡張子がjsonのファイル名を設定しておく必要あり。 コンフィグレーションを元にXCPマスターの生成。 コンフィグレーションを渡すことでXCPマスターが生成される。
事例

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

JSON文字列を再度確認。 それぞれのパラメータについて一気に説明。 使用できるCANインターフェースデバイスは多い。 有名どころは網羅されている。 トランポート層にSxIを指定できる。 SPI、SCI(UART)のことでPyXCPに於いてはCOMポートになる。 と言ってもそれほど利用シーンは無い。
事例

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

PyXCPを利用する上で必要なimportを列挙。 設定ファイルがJSONファイルを想定しており、Python内の文字列をファイル 認識されるためにio.StringIOもimport。 StringIOに引き渡すJSONを提示。 比較的自明なパラメータが多いが一部分かり難いものもあるので次回説明。
事例

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

Python-CANにXCPの上位プロトコルを載せたPythonLibraryが存在。 その名はそのまんまでPyXCP。 PyXCPのインストールはpip使えばOK。 pip install pyxcp。 PyXCPだけだと疎通確認も取れないからXCP BasicによるPCシミュレーション環境はかなり重要。