uint32_t readPassiveTargetID(uint8_t cardbaudrate)
This method reads the Passive Target ID and returns it as a 32-bit number. At the moment only reading MIFARE ISO14443A cards/tags are supported. Hence use PN532_MIFARE_ISO14443A as parameter. Returns 32 bit card number
Usage:
uint32_t cid; // look for MiFare type cards/tags cid = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A);
pn532_packetbuffer[0] = PN532_INLISTPASSIVETARGET;pn532_packetbuffer[1] = 1; // max 1 cards at once (we can set this to 2 later)pn532_packetbuffer[2] = cardbaudrate;
これはPN532に対して「自分がInitiator(無線を出す人)になって、Passiveなターゲット(タグなど)のリストを作れ」
みたいなコマンドになっています。
Demo1では、cardbaudrateがPN532_MIFARE_ISO14443Aになっています。
PN532.hを見ると、定義はこうなってます。#define PN532_INLISTPASSIVETARGET 0x4A#define PN532_MIFARE_ISO14443A 0x0
MIFAREなどのNFC-Aタイプのカードを検出するときに使う典型的なコマンドです。
つまり、PN532に対して「4A 00 01」というデータを送っています。
説明が長くなってきたので端折ると、この「4A 00 01」というのは、
(どうでもいい話ですが、PN532にはInAutoPollという面白いコマンドもあります。)
この「4A 00 01」をPN532に送信して、PN532がそのコマンドを受け入れると、
PN532は搬送波という無線を出します。
おサイフケータイなどを持っているなら、かざすとLEDが光ったりするんじゃないでしょうか。
------------
readPassiveTarget()の戻り値cidは、うまくいった場合は0x00以外を返します。
0x00を返すのは、
・PN532がInListPassiveTargetコマンドを受け付けなかった
・タグが見つからなかった
くらいのようです。
なので、あまり助けにならないことを言うと、その組み合わせなら「動くはず」です。
もうちょっとログを埋め込むなどして、ここがエラーを返している、とか、
ここで処理が止まっている、とか、そういうのがわかるといいかもしれませんね。
--
このメールは Google グループのグループ「NFCラボ」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、nfc-lab+u...@googlegroups.com にメールを送信します。
このグループに投稿するには、nfc...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/nfc-lab?hl=ja からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
よろしくお願いします。
このグループから退会し、メールの受信を停止するには、nfc-lab+unsubscribe@googlegroups.com にメールを送信します。
よろしくお願いします。
このグループから退会し、メールの受信を停止するには、nfc-lab+unsubscribe@googlegroups.com にメールを送信します。