2012/06/16

[rcs620s]TgInitTargetの6パターンを試す

RC-S620/Sのコマンドリファレンスマニュアルによると、ターゲットになるコマンドTgInitTargetで動作が可能なのは、以下の6パターンと書かれている。

  • Passive communication mode ISO/IEC 18092 106kbps - DEP
  • Passive communication mode ISO/IEC 18092 212kbps - DEP
  • Passive communication mode ISO/IEC 18092 424kbps - DEP
  • Active communication mode ISO/IEC 18092 106kbps - DEP
  • Active communication mode ISO/IEC 18092 212kbps - DEP
  • Active communication mode ISO/IEC 18092 424kbps - DEP

まだDEPの実装は終わってないが、動作確認だけすることにした。

 

結果として、全部動作することが確認できた。
って、ハードの単体テストかよ。。。
いやいや、各動作でのログを残しておきたかったのだ。
NFCのデバッグをするとき、ログしか追えるものがないからだ。

 

つまずいたのが1箇所。
106kbpsのPassiveが、最初はうまくできなかったのだ。
コマンドリファレンスマニュアルをよく読むと、「9 留意事項」にいろいろと重要なことが書かれていた。
いや、書かれていたのは知っていたのだが、気にしてなかったのだ。

  1. まず、ターゲットになる前に、通信性能向上のための呪文を唱える。
  2. そのあとでTgInitTargetコマンドを発行して、イニシエータを待つ。
  3. イニシエータがATR_REQを投げると、TgInitTargetから戻ってくる。
  4. このとき、通信速度とActive/Passiveが渡されるので確認
    • 106kbpsなら、通信性能向上解除の呪文を唱える
    • 106kbps Passiveなら、さらに呪文を唱える

この4番をやってなかったのだ。
理由は、めんどくさいから。。
だって、これをやるためには、

  • fAutomaticATR_RES=0にする→SetParametersコマンドの処理がいる
  • 呪文の処理がいる→WriteParameterコマンドの処理がいる
  • ATR_RESを手動で返す→TgSetGeneralBytesコマンドの処理がいる

と、3つも増えるのだ。
ああ、しゃーらしい!

 

けど、全部やると、ちゃんと動いた。
やらんと動かんから書いてあるのだから、ドキュメントはちゃんと読め、と思った。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。