nfcpyを見ると、rcs380.pyというファイルが増えていた。
まあ、ダウンロードした理由はそこにあるのだが。
pythonに詳しくないのだが、なんか実装で不明なところがあった。
Frameクラスのinitで、引数を見て判断しているところがある。
たぶん、受信したフレームデータの1次解析みたいなことをしてるんだろう。
data[0:3]が、00 00 ffかどうかを見ている。
pythonでは「名前[start:end]」だと、その範囲はstart~end-1らしい。
なので、フレームの先頭3byteが00 00 ffかどうかを判定しているのだろう。
それはいい。
「00 00 ff」で始まっていたら、そのデータによって、ACKかERRかDATAかを分けている。
分けているのだけど、こんな感じになってるようなのだ。
ACK : 00 00 ff 00 ff 00
ERR : 00 00 ff ff ff
DATA : ff ff
最後にelseがないから、これ以外だったらどうするんだよってのはあるとして、ERRとDATAの見方がおかしいと思うのだ。
実装としては、ERRは「00 00 ff ff ff」と一致する場合、DATAはdata[3:5]が「ff ff」と一致する場合・・・
と書いていて、ようやくわかった。
ERRになるのは受信データがちょうど「00 00 ff ff ff」だった場合で、DATAとするのは「00 00 ff ff ff ・・・」とさらに値が続いていた場合ということなんだな。
い、いや、RC-S380はコマンド調べるつもりはないからね。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。