バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
PyXCPでメモリアクセス系コマンドのSET_MTA、DOWNLOAD、UPLOADを一気に実施。
UPLOAD→DOWNLOAD→UPLOADの流れでverifyすることで読み書きが正常に行われていることが確認できた。
今回はからはXCPの魔境の一つであるDAQ関連に突入。
登場人物
博識フクロウのフクさん

イラスト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
DAQ listの構築

今回からDAQ関連コマンドに突入だねー。

もうDAQ list構築を一気にやってしまおう。
一個一個は目立ったレスポンスも無いし。

そうだね。
結局はDAQを起動するまでは正しいかどうかは確認できないもんね。
FREE_DAQ、ALLOC_DAQ、ALLOC_ODT、ALLOC_ODT_ENTRY

というわけでDAQ list構築に必要なコマンドと、それに該当するメソッドは以下。
FREE_DAQ → freeDaq
ALLOC_DAQ → allocDaq
ALLOC_ODT → allocOdt
ALLOC_ODT_ENTRY → allocOdtEntry

相変わらず、そのまんまなメソッド名でホント助かる。
コードはこれでいいよね。
xm.freeDaq()
xm.allocDaq(1)
xm.allocOdt(0, 1)
xm.allocOdtEntry(0, 0, 1)
結果
bytearray(b'') # FREE_DAQの結果
bytearray(b'') # ALLOC_DAQの結果
bytearray(b'') # ALLOC_ODTの結果
bytearray(b'') # ALLOC_ODT_ENTRYの結果
XCP Basicのコンソール画面
-> FREE_DAQ
<- 0xFF
-> ALLOC_DAQ count=1
[XcpAllocMemory] 6/256 Bytes used
[XcpAllocMemory] Queuesize=27
<- 0xFF
-> ALLOC_ODT daq=0, count=1
[XcpAllocMemory] 10/256 Bytes used
[XcpAllocMemory] Queuesize=27
<- 0xFF
-> ALLOC_ODT_ENTRY daq=0, odt=0, count=1
[XcpAllocMemory] 15/256 Bytes used
[XcpAllocMemory] Queuesize=26
<- 0xFF

それぞれのコマンド、メソッドでエラー応答は無かったようだね。

とりあえず、以前XCP BasicでやったDAQ list構築に合わせた感じにしたよ。

そうだね。
XCP Basicのコンソール画面を見ればわかるが、
DAQ listを一つ生成、
そこにODTを一つ生成
そのODTにODT_ENTRYを一つ追加。
になってる。

というわけでDAQ list構築も一撃で終わってしまった。
以前やったからというのもあるけど、結構ちょろそうだな。

それにメソッド単位の制御なので分かり易い。
ってのも大きい。
まとめ

まとめだよ。
- DAQ listの構築を一気に実施した。
- FREE_DAQ、ALLOC_DAQ、ALLOC_ODT、ALLOC_ODT_ENTRYを一気に実施。
- 以前XCP BasicでやったDAQ list構築に合わせた構成にしてある。
- PyXCPのメソッド単位で隠蔽されていることもあり、かなり楽ちん。
バックナンバーはこちら。
コメント