いわゆる「ポーリング」を行うコマンドである。
名称からすると、自分でRFを出さないターゲットのリストを取得するのだろう。
ここに書いたパラメータは一例にすぎない。
optionalなものは記載しなかったので、必要なら調べよう。
コマンド
main cmd | sub cmd | MaxTg | BrTy | data... |
d4 | 4a | 01 | ※1 | ※2 |
TypeA(106kbps)
main cmd | sub cmd | MaxTg | BrTy |
d4 | 4a | 01 | 00 |
TypeB(106kbps)
main cmd | sub cmd | MaxTg | BrTy | AFI |
d4 | 4a | 01 | 03 | ?? |
FeliCa(212kbps)
main cmd | sub cmd | MaxTg | BrTy | cmd | system code | request code | time slot |
d4 | 4a | 01 | 01 | 00 | ff ff | 00 | 00 |
FeliCa(424kbps)
main cmd | sub cmd | MaxTg | BrTy | cmd | system code | request code | time slot |
d4 | 4a | 01 | 02 | 00 | ff ff | 00 | 00 |
212kと424kの違いはBrTyだけなので、それ以外は共通でよい。
system codeのffffは、ワイルドカード。
メイン名システムが取ってこれる。
request codeの値によっては、レスポンスでシステムコードが取ってこれる。
といっても、全部が取ってこれるわけではない。
ほしければ、FeliCaコマンドを発行する必要がある。
タイムスロットは00固定でよかろう。
レスポンス
main cmd | sub cmd | NbTg | data... |
d5 | 4b | nn | ※2 |
nnは検出したターゲット数。
00のときは、data以降はない。
うまくいけば、01のはず。
TypeA(106kbps)
main res | sub res | NbTg | Tg | SENS_RES | SEL_RES | NFCID LEN | NFCID1 | ATS[] |
d5 | 4b | 01 | 01 | xx yy | zz | mm | pp qq rr ss | ... |
ここでNFCID1と書いたが、ここのサイズは何種類かある。
SENS_RESからわかるが、LENも取得できるからまあいいだろう。
4byte, 7byte, 10byte。4byteはUniqueではなくなったという。
TypeB(106kbps)
main res | sub res | NbTg | Tg | ATQB res | ATTRIB_RES LEN | ATTRIB_RES[] |
d5 | 4b | 01 | 01 | [12byte] | xx | ... |
よく知らん。持ってない。
FeliCa(212k/424kbps)
main res | sub res | NbTg | Tg | POL_RES LEN | res | NFCID2 | Pad |
d5 | 4b | 01 | 01 | xx | 01 | [8byte] | [8byte] |
NFCID2は、いわゆるIDm。PadはPMm。
コマンドを投げるときにシステムコードを要求すると、メインのシステムコードも返ってくる。
基本的にFeliCaにコマンドを投げる場合は、まず相手のシステムコードをInListPassiveTargetで投げておくのが無難である。
追記1
InListPassiveTargetというコマンドにまとめられているが、行っている内容は種別によって異なる。
種別というのは、TypeAとかBとかだ。
こういうR/Wに投げたコマンドは、R/Wがエアプロトコルに変換してターゲットに投げる。
ここも、例えばPOL_REQなどに変換されているのだ。
POL_REQのパラメータが、InListPassiveTargetのパラメータと一致している。
なので、詳しいことが知りたければJIS X5211を見るのがよかろう。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。