バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回はXCP BasicにDOWNLOAD、DOWNLOAD_MAXの書き込み系コマンドを発行して見た。
共に正常応答ではあったが、狙い通りに掛けているかはUPLOAD系コマンドを試す時に確認。
というわけで今回はUPLOAD系コマンドを試す回となる。
登場人物
博識フクロウのフクさん
イラスト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
次のコマンドは?
DONWLOAD系コマンドの確認が終わったから
次はUPLOAD系だねー。
まずはUPLOADコマンドを試す感じかな?
いんや。
SHORT_UPLOADを試す。
え?
そうなの?
SHORT_UPLOADがUPLOADコマンドの派生形みたいなイメージ有ったんだけど。
SHORT_UPLOADならではの挙動があるんで、
それを確認するには先にやった方が分かり易いんだよ。
まぁそこらへんはフクさんに任せた!
SOHRT_UPLOAD
SHORT_UPLOADはサイズとアドレスを指定して読み出すコマンドだ。
サイズはMAX_CTO-1が最大値で今回の場合だと7byteになる。
ということは、まずはアドレス0を指定してサイズは4byteかな。
前回のDOWNLOADで書き込んだサイズが4byteだったから
その時に書き込んだ
0x11, 0x22, 0x33, 0x44
が読み出せればOKってことだよね。
とうわけで電文はこれになる。
0xF4, 0x04, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00
じゃー、それを送ろう。
send_msg = can.Message(arbitration_id=1, extended_id=0, data=[0xF4, 0x04, 0x00, 0xFF, 0x00, 0x00, 0x00, 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: 8 f4 04 00 ff 00 00 00 00
Recv msg : Timestamp: 1635334304.099463 ID: 0002 S DLC: 5 ff 11 22 33 44 Channel: 1
XCP Basicのコンソール画面
-> SHORT_UPLOAD addr=00000000h, addrext=FFh, size=4
<- 0xFF data=11 22 33 44
お!
DOWNLOADコマンドの時に書き込んだ値が読み出せたぞ!
これはDOWNLOAD、SHORT_UPLOADコマンド動作は共にOKってことだね。
ふむ。
おおよそ順調ってところだな。
まとめ
まとめだよ。
- UPLOAD系コマンドの実験開始。
- UPLOADコマンドが基本形のコマンドでその派生形としてSHORT_UPLOADがあるが、SHORT_UPLOADのとある挙動を確認するためにSHORT_UPLOADから実施。
- SHORT_UPLOADでDOWNLOADで書き込んだ値が読めた。
- よって、両コマンド共に動作OKとなる。
バックナンバーはこちら。
コメント