abc NFC ライブラリマニュアル このマニュアルは、NFC ライブラリの 仕様について記載します。 Ver. 1.
ご注意 ● このソフトウェアおよびマニュアルの、一部または全部を無断で使用、複製することはできません。 ● このソフトウェアおよびマニュアルは、本製品の使用許諾契約書のもとでのみ使用することができます。 ● このソフトウェアおよびマニュアルを運用した結果の影響については、一切の責任を負いかねますのでご了 承ください。 ● このソフトウェアの仕様、およびマニュアルに記載されている事柄は、将来予告なしに変更することがありま す。 ● このマニュアルの著作権はカシオ計算機株式会社に帰属します。 ● 本書中に含まれている画面表示は、実際の画面とは若干異なる場合があります。予めご了承ください。 © 2009-2011 カシオ計算機株式会社 Microsoft, MS, ActiveSync, Active Desktop, Outlook, Windows, Windows NT, および Windows ロゴは、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。Microsoft 社の製品は、OEM 各社に、Microsoft Corporation の 100
変更履歴 バージョン 1.00 1.01 変更日付 2009.07 2009.09 1.02 2010.05 1.03 1.04 2010.10 2011.08 1.05 2011.11 1.06 2011.11 2012.01 2012.
目次 1. 概要···················································································································································································1 2. 動作環境 ·········································································································································································2 3.
1. 概要 NFC(Near Field Communication)ライブラリは、IC カードとの通信を行う関数を提供します。 NFC クラスライブラリは、NFC ライブラリを .
2. 動作環境 NFC ライブラリの動作環境を以下に示します。 対象機種 • DT-5300 • DT-X8 • IT-9000 対象 OS • Microsoft WindowsCE 6.0 • Microsoft WindowsMobile 6.5 開発環境とプログラミング言語 Visual C++ 開発環境 Microsoft Visual Studio 2005 + SP1 Microsoft Visual Studio 2008 + SP1 ○ ○ Visual Basic, Visual C# ○ ○ 提供ファイル ファイル NFCLib.h NFCLib.lib NFCLib.dll NFCLibNet.dll (クラスライブラリ) Visual C++ ○ ○ ○ - Visual Basic, Visual C# ○ ○ (○:必要、-:不要) 使用方法 Visual C++の場合 • プログラムソース内に NFCLib.h をインクルードし、リンカの依存ファイルとして NFCLib.lib を指定してく ださい。 • NFCLib.
名前空間とクラス クラスライブラリ NFCLibNet.dll では、関数および定数の参照用として、下記のクラスが用意されています。 名前空間 CaLib クラス名 NFCLibNet.Api NFCLibNet.Def 内容 関数参照用クラス 定数参照用クラス クラス定義の詳細については、Microsoft Visual Studio で NFCLibNet.
3.
3.
注意 DT-X8 / IT-9000 において、NFC_ERROR_MODULE が返る場合は、本関数を 3 回リトライしてくださ い。 6
3.2 NFCClose NFC ドライバを通信禁止状態(Close 状態)にし、NFC デバイスの電源を OFF にします。 [C++] int NFCClose() [Visual Basic] Public Shared Function NFCClose() As Int32 [C#] public static Int32 NFCClose() 解説 本関数は、NFC ドライバを通信禁止状態(Close 状態)にし、NFC デバイスの電源を OFF にします。 パラメータ なし 戻り値 以下の値を返します。 NFC_OK NFC_NOT_DEVICE : 正常終了 : NFC ドライバエラー DeviceEmulator では発生しません 対応情報 機種 ヘッダ ライブラリ : DT-5300 / DT-X8 / IT-9000 : NFCLib.h : NFCLib.
3.
dwTimeout IC カードが起動するまでのタイムアウト時間を 100∼60,000(msec 単位)の範囲で指定します。 また、0 を指定した場合は、タイムアウトなしで IC カードを検索します。 fpCallBack IC カードの検索を続行するかどうかを判定するコールバック関数を指定します。 コールバック関数が TRUE を返す場合は処理を続行し、FALSE を返す場合は処理を停止します。 また、NULL を指定した場合は、常に続行します。 pdwActBaudRate IC カードの起動に成功した場合は、その IC カードのボーレートを取得します。取得する値については、 dwBaudRate を参照してください。 また、IC カードの起動に失敗した場合は、何も取得しません。 dwParam IC カード検索を行う際の動作モードを指定します。本機能を使用しない場合は 0 を指定してください。 DT-5300 では 0 を指定してください。 NFC_PL_SAVE : IC カード検索時の消費電力を抑えます 長時間連続して IC カードの検索を行う場合は本パラメータを使用 してください ※ IC
3.
3.
ATQB の形式は以下のようになります。 1バイト ’50’ 4バイト 4バイト 3バイト 応用データ PUPI プロトコル情報 ※ DT-X8 / IT-9000 においてプロトコル情報の 3 バイトはすべて 0 になります。 ■ Felica の場合 8バイト 8バイト IDm 2バイト システムコード PMm ■ ISO15693 の場合 1バイト 8バイト DSFID UID pdwActualSize IC カードから取得した応答情報のサイズを取得します。 dwReserved 現在のバージョンではこの引数を使用しません。0 を指定してください。 戻り値 以下の値を返します。 NFC_OK NFC_NOT_DEVICE : 正常終了 : NFC ドライバエラー DeviceEmulator では発生しません : 未オープンエラー : パラメータエラー : カード未起動エラー DeviceEmulator では発生しません NFC_POF NFC_PRM NFC_NOT_ACTIVATION 実行例 ■ ISO / IEC14443 Type A (Mifare
DT-X8 / IT-9000 の場合 ATTRIB応答サイズ ATTRIB応答 ATQB 50 01 02 03 04 00 00 00 00 00 00 00 00 - ■ Felica の場合 IDm PMm 01 01 06 01 67 02 A5 15 03 00 4B 02 4F 49 8A 8A ■ ISO15693 の場合 DSFID 00 UID 7E C6 DF 01 00 00 07 E0 対応情報 機種 ヘッダ ライブラリ : DT-5300 / DT-X8 / IT-9000 : NFCLib.h : NFCLib.
3.6 NFCRadioOff NFC モジュールの電波送信を停止します。 [C++] int NFCRadioOff() [Visual Basic] Public Shared Function NFCRadioOff() As Int32 [C#] public static Int32 NFCRadioOff() 解説 本関数は、NFC モジュールの電波送信を停止します。 パラメータ なし 戻り値 以下の値を返します。 NFC_OK NFC_NOT_DEVICE NFC_POF NFC_ERROR_MODULE : 正常終了 : NFC ドライバエラー DeviceEmulator では発生しません : 未オープンエラー : モジュール未応答エラー DeviceEmulator では発生しません 対応情報 機種 ヘッダ ライブラリ : DT-5300 / DT-X8 / IT-9000 : NFCLib.h : NFCLib.
3.
ISO14443-4(Type A、Type B) S プロローグ フィールド エピローグ フィールド pSendDataの一部※ E ※ pSendData を分割して送信する場合は、分割データごとに自動付加します Mifare SOF pSendData EOF ※ Mifare は ISO14443-3 までの準拠となり、ISO14443-4 で規定している通信プロトコルは使用し ていません。そのため、ISO14443-4 とは異なるデータ書式となります。 Felica プリアンブル 同期コード pSendData(コマンド、データサイズ含む) “B24D” CRC ISO15693 SOF pSendData(フラグ、コマンドデータ含む) 16 CRC EOF
例) Mifare Standard の場合 ■ Mifare Standard コマンド一覧 メモリ操作 内容 Read 16 バイト読み込み Write 16 バイト書き込み Increment 加算(計算のみ) Decrement 減算(計算のみ) Transfer 計算結果をメモリに反映 Restore 置換(計算のみ) ※ 各コマンドの詳細は非公開情報です ■ Mifare Standard メモリ構成 セ ク タ ブ ロ ッ ク 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 カード製造者用エリア(16バイト) 0 1 0 2 3 鍵A(6バイト) アクセスビット(4バイト) 鍵B(6バイト) 鍵A(6バイト) アクセスビット(4バイト) 鍵B(6バイト) 4 5 1 6 7 (省略) 56 57 14 58 59 鍵A(6バイト) アクセスビット(4バイト) 鍵B(6バイト) 鍵A(6バイト) アクセスビット(4バイト) 鍵B(6バイト) 60 61 15 62 63 ※ 空白の領域がユーザ使用可能領域です
例) Mifare Ultralight の場合 ■ Mifare Ultralight コマンド一覧 メモリ操作 コマンド (1 バイト) Read 0x30 Write ページ番号 (1 バイト) 0x00∼0x0F の いずれか 0x00∼0x0F の いずれか 0xA2 追加パラメータ (可変長) なし 書き込みデータ (4 バイト) ■ Mifare Ultralight メモリ構成 ページ番号 0x00 0x01 0x02 0x00 シリアルナンバー0 シリアルナンバー1 シリアルナンバー2 0x01 シリアルナンバー3 シリアルナンバー4 シリアルナンバー5 シリアルナンバー6 0x02 BCC1 Internal Lock0 Lock1 0x03 OPT0 OPT1 OPT2 OPT3 0x04 データ0 データ1 データ2 データ3 0x05 データ4 データ5 データ6 データ7 0x06 データ8 データ9 データ10 データ11 0x07 データ12 データ13 データ14 データ15 0x0
例) ISO15693 の場合 ■ ISO15693 コマンド一覧 メモリ操作 フラグ (1 バイト) 0x60 Read Single Block(Tag-it の 場合) Read Single 0x20 Block(Tag-it 以外の場合) Write Single 0x20 Block(Tag-it 以外の場合) コマンド (1 バイト) 0x20 0x20 0x21 UID (8 バイト) NFCGetCard Response 関数で 取得した値 NFCGetCard Response 関数で 取得した値 NFCGetCard Response 関数で 取得した値 追加パラメータ (可変長) ブロック番号(1 バイト) ブロック番号(1 バイト) ブロック番号(1 バイト) データ(1 ブロックサイズ、通 常 4 バイト) ※ 各コマンドの詳細については ISO15693 カードの規格を確認してください ※ フラグの設定により UID は不要になります(詳細は ISO15693 カードの規格を確認してください) ※ Tag-It シリーズにおいて、以下のコマンドはサポート対象外です
■ ICODE SLI-L メモリ構成 Page番号 Block番号 Byte 1 Byte 2 Byte 3 Byte 4 -8 UID0 UID1 UID2 UID3 -7 UID4 UID5 UID6 UID7 -6 内部使用 EAS AFI DSFID -5 UID4 UID5 UID6 UID7 -4 内部使用 EAS AFI DSFID -3 UID4 UID5 UID6 UID7 -2 内部使用 EAS AFI DSFID -1 UID4 UID5 UID6 UID7 -2 -1 0 1 0 2 3 4 5 1 6 7 ※ 色づけした領域(緑色)がユーザ使用可能領域です ■ Tag-It HF-I Plus メモリ構成 Block番号 Byte 1 Byte 2 Byte 3 Byte 4 0 1 … 62 63 - UID0 UID1 UID2 UID3 - UID4 UID5 UID6 UID7 - - - - DSFID - - - - AFI
ISO14443-4(Type A、Type B) S プロローグ フィールド エピローグ フィールド pReceiveDataの一部※ E ※ pSendData を分割して送信する場合は、分割データごとに自動付加します Mifare SOF pReceiveData EOF Felica プリアンブル 同期コード pReceiveData(コマンド、データサイズ含む) “B24D” CRC ISO15693 SOF pReceiveData(フラグ、コマンドデータ含む) CRC EOF 例) Mifare Ultralight の場合 ■ Mifare Ultralight 応答一覧 メモリ操作 応答データ(n バイト) Read 読み込みデータ(16 バイト) Write なし(0 バイト) 例) Felica の場合 ■ Felica 応答一覧 メモリ操作 全体のバイト数 (1 バイト) Read Without 13 + 16n Encryption Write Without Encryption 12 例) ISO15693 の場合 ■ ISO15693 応
pdwActualSize pReceiveData が取得したバイナリデータのサイズを取得します。 dwTargetNo 通信したい IC カードに対応するカード番号を指定します。通常は 0 を指定してください。 NFCPollingCard関数により複数の IC カードの起動に成功した状態で、2 枚目以降の IC カードと通信 する場合に、1 以上の値を指定してください。 詳細はNFCGetCardResponseEx関数を参照してください。 戻り値 以下の値を返します。 NFC_OK NFC_NOT_DEVICE NFC_POF NFC_PRM NFC_ERROR_TIMEOUT NFC_NOT_ACTIVATION NFC_ERROR_MODULE NFC_ERROR_SUSPEND NFC_ERROR_AUTOOFF NFC_ERROR_INVALID_ACCESS : 正常終了 : NFC ドライバエラー DeviceEmulator では発生しません : 未オープンエラー : パラメータエラー : タイムアウトエラー DeviceEmulator では発生しません : カード未起動エラー D
実行例 例) Mifare Ultralight の場合 ■ Read コマンド実行時(ページ番号 0x08) pbySendData コマンド ページ番号 追加パラメータ (1 バイト) (1 バイト) (0 バイト) 30 08 pbyReceiveData 応答データ(16 バイト) 04 03 02 01 00 00 00 00 00 00 00 00 00 00 00 00 ■ Write コマンド実行時(ページ番号 0x08) pbySendData コマンド ページ番号 追加パラメータ (1 バイト) (1 バイト) (4 バイト) A2 08 04 03 02 01 pbyReceiveData 応答データ(0 バイト) 例) Felica の場合 ■ Read Without Encryption コマンド実行時(サービスコード 0x1009、ブロック番号 0x00) pbySendData IDm 全体バイト数 コマンド 追加パラメータ (8 バイト) (1 バイト) (1 バイト) (6 バイト) 10 06 01 02 03 04 05 06 07 08 01 09 10 01 80
例) ISO15693 の場合 ■ Read Single Block コマンド実行時(Tag-It かつブロック番号 0x00 の場合) pbySendData 追加パラメータ UID フラグ コマンド (1 バイト) (8 バイト) (1 バイト) (1 バイト) 60 20 01 02 03 04 05 06 07 08 00 pbyReceiveData フラグ 追加パラメータ (1 バイト) (5 バイト) 00 00 01 02 03 04 ■ Read Single Block コマンド実行時(Tag-It 以外かつブロック番号 0x00 の場合) pbySendData 追加パラメータ UID コマンド フラグ (1 バイト) (8 バイト) (1 バイト) (1 バイト) 20 20 01 02 03 04 05 06 07 08 00 pbyReceiveData フラグ 追加パラメータ (1 バイト) (4 バイト) 00 01 02 03 04 ■ Write Single Block コマンド実行時(Tag-It 以外かつブロック番号 0x00 の場合) pbySendData UI
3.
ヘッダ ライブラリ : NFCLib.h : NFCLib.
3.
3.
3.
3.
戻り値 以下の値を返します。 NFC_OK NFC_NOT_DEVICE : 正常終了 : NFC ドライバエラー DeviceEmulator では発生しません : 未オープンエラー : パラメータエラー NFC_POF NFC_PRM 補足 IC カードの検索方式 通常起動 : 多段起動/ : 多段起動 2 一括起動 : 1 回の検索で 1 枚の IC カードを起動します 段数に指定した回数まで異なる IC カードを連続して起動します (1 回の検索で 1 枚しか起動することができません)※ 1 回の検索で同一タイプの複数枚の IC カードを起動します 段数に指定した回数まで検索を行います ※ 注意 IC カードを 1 つ起動するたびに、起動した IC カードの Uid をドライバに記録し、その記 録した IC カードと重複する IC カードの二重起動を防止します。この記録は、指定した 枚数の IC カードを起動したとき、タイムアウト時間を経過したとき、コールバック関数が FALSE を返したとき、およびNFCStopPolling関数を実行したときにクリアします。 対応情報 機種 ヘッダ ラ
3.
対応情報 機種 ヘッダ ライブラリ : DT-X8 / IT-9000 : NFCLib.h : NFCLib.
3.
カード 1 枚分のデータ書式 ■ ISO / IEC14443 Type A (Mifare Standard / Ultralight)の場合 2バイト ATQA 1バイト 1バイト UIDバイト 数(n) SAK nバイト mバイト (ISO14443-4 プロトコル対応時 ATS のみ取得、先頭1バイトはサイズ) UID ■ ISO / IEC14443 Type B の場合 12バイト 1バイト nバイト ATTRIB応 ATTRIB応答 バイト数(n) ATQB ※ DT-X8 / IT-9000 において ATTRIB 応答バイト数(n)は 0 です。 ATQB の形式は以下のようになります。 1バイト ’50’ 4バイト 4バイト 応用データ PUPI 3バイト プロトコル情報 ※ DT-X8 / IT-9000 においてプロトコル情報の 3 バイトはすべて 0 になります。 ■ Felica の場合 8バイト 8バイト IDm 2バイト システムコード PMm ■ ISO15693 の場合 1バイト 8バイト DSFID UID pdwActua
NFC_ERROR_INVALID_ACCESS : 電波自動停止タイマー動作中に実行エラー DeviceEmulator では発生しません 対応情報 機種 ヘッダ ライブラリ : DT-X8 / IT-9000 : NFCLib.h : NFCLib.
3.
3.
3.
3.
4. プログラミング上の注意点 4.1 電波停止の通知について ウィンドウメッセージ通知を使用する 電波を手動で停止する 1. WM_CREATE メッセージを受け取った場合は、NFCOpen関数を実行し、読み取り待機状態にしま す。 2. WM_COMMAND、WM_KEYDOWN 等のメッセージを受け取った場合は、IC カードとの通信を行いま す。 (各 IC カードとの通信については、「IC カードとの通信について」を参照してください) 3. IC カードとの通信が終了した場合は、電波を停止するための処理を行います。 (電波を停止する処理については、「IC カードとの通信について」を参照してください) 4.
電波を自動で停止し、停止タイミングを通知する 5. WM_CREATE メッセージを受け取った場合は、NFCOpen関数を実行し、読み取り待機状態にしま す。 6. NFCSetEventNotification関数により、ウィンドウメッセージ通知を有効に設定します。 7. NFCSetAutoRadioOff関数により、電波自動停止を有効に設定します。 8. WM_COMMAND、WM_KEYDOWN 等のメッセージを受け取った場合は、IC カードとの通信を行いま す。 (各 IC カードとの通信については、「IC カードとの通信について」を参照してください) 9. IC カードとの通信が終了後、通信を行わずに一定時間経過すると自動的に電波を停止します。 10. 電波出力の自動停止が発生したタイミングで WM_NFC_AUTORADIOOFF( WM_USER + 0x580 )メ ッセージを受け取ることができます。このとき、電波出力が自動停止したことをユーザに通知すること が可能です。 11.
イベント通知を使用する 電波を手動で停止する 12. アプリケーション開始時に、NFCOpen関数により、読み取り待機状態にします。 13. 各カードタイプに応じた通信手順により、IC カードとの通信を行います。 (各 IC カードとの通信については、「IC カードとの通信について」を参照してください) 14. IC カードとの通信が終了した場合は、電波を停止するための処理を行います。 (電波を停止する処理については、「IC カードとの通信について」を参照してください) 15. アプリケーション終了時に、NFCClose関数により、読み取り禁止状態にします。 電波を自動で停止し、停止タイミングを通知する ■ メインスレッド 1. アプリケーション開始時に、CreateEvent 関数により、電波自動停止タイミング通知イベントハンドルを 作成します。 2. CreateThread 関数により、電波自動停止を監視するスレッドを作成します。 3. NFCOpen関数により、読み取り待機状態にします。 4. NFCSetEventNotification関数により、イベント通知を有効に設定します。 5.
■ NFC スレッド 11. WaitForSingleObject 関数により、電波自動停止タイミング通知イベントハンドルに対して待機しま す。 12. アプリケーション終了時に通知イベントを受け取った場合、電波自動停止の監視を終了します。 13.
4.2 IC カードとの通信について Mifare(Standard)カードと通信する 1. NFCPollingCard関数により、通信範囲内の IC カードを検索します。 2. 起動に成功した IC カードのボーレートが Mifare カードのボーレートと一致しているかを確認します。 一致している場合は、NFCGetCardResponse関数により Mifare カードの UID を取得します。 3. NFCExchangeData関数により、Mifare コマンドを送信し、セクターへのアクセス許可を行います。 4. NFCExchangeData関数により、Mifare コマンドを送信し、Mifare カードとのデータアクセスを行います。 (必要な動作に応じて各種コマンドを送信) 5. 処理を続行、かつ、アクセスするセクターを変更する場合は、3.に戻って処理を繰り返します。 6. 処理を続行、かつ、アクセスするセクターを変更しない場合は、4.に戻って処理を繰り返します。 7.
Felica カードと通信する 1. NFCPollingCard関数により、通信範囲内の IC カードを検索します。 2. 起動に成功した IC カードのボーレートが Felica カードのボーレートと一致しているかを確認します。 一致している場合は、NFCGetCardResponse関数により Felica カードの UID を取得します。 3. NFCExchangeData関数により、Felica コマンド 0x06 または 0x08、および、パラメータを送信し、Felica カードとのデータアクセスを行います。(必要な動作に応じて各種コマンドを送信) 4.
ISO15693 カードと通信する 1. NFCPollingCard関数により、通信範囲内の IC カードを検索します。 2. 起動に成功した IC カードのボーレートが ISO15693 カードのボーレートと一致しているかを確認しま す。一致している場合は、NFCGetCardResponse関数により ISO15693 カードの UID を取得します。 3. NFCExchangeData関数により、ISO15693 コマンド 0x20 または 0x21、および、パラメータを送信し、 ISO15693 カードとのデータアクセスを行います。(必要な動作に応じて各種コマンドを送信) 4. ブロックを変更して処理を続行する場合は3.に戻って処理を繰り返します。 5.
他の IC カードと通信する 1. NFCPollingCard関数により、通信範囲内の IC カードを検索します。 2. 起動に成功した IC カードのボーレートが通信対象 IC カードのボーレートと一致しているかを確認しま す。一致している場合は、NFCGetCardResponse関数により IC カードの情報を取得します。 3. NFCExchangeData関数により、IC カードと通信を行います。 4.
4.3 検索方式について 多段起動を使用する NFCSetPollingMode Mifare(Standard)カードと通信する 1. NFCSetPollingMode関数により、検索方式に多段起動 (NFC_PLMODE_MULTISTEP)を、段数に連続起動するカード 枚数 CARD_NUM を指定します。 2. iCount=0 をセットします。 3. iCount
多段起動 2 を使用する Mifare(Standard)カードと通信する 1. NFCSetPollingMode関数により、検索方式に多 段起動(NFC_PLMODE_MULTISTEP2)を、段 数に連続起動するカード枚数 CARD_NUM を 指定します。 2. iCount=0 をセットします。 3. iCount
一括起動を使用する NFCPollingCard Mifare(Standard)カードと通信する 1. NFCSetPollingMode関数により、検索方式に一括起動 (NFC_PLMODE_PACKAGE)を、段数に一括起動する枚数 を指定します。 2. NFCPollingCard関数により通信範囲内のカードを検索しま す。 3. 起動に成功した IC カードのボーレートが Mifare カードのボ ーレートと一致しているかを確認します。一致している場合 は、NFCGetCardResponse関数により Mifare カードの UID を取得します。 4. k に起動した枚数を、dwTargetNo に 0 をセットします。 (NFCExchangeData関数の引数) 5. dwTargetNo が k よりも小さい場合、次の処理に進みます。 6. NFCExchangeData関数により、Mifare コマンドを送信し、セ クターへのアクセス許可を行います。 7.
4.4 コマンド送信について Tag-it にコマンドを送信する Tag-it に対して、NFCExchangeData関数を使って Write Single Block / Lock Block / Write AFI / Write DSFID コマンドを送信している最中に IC タグを通信可能範囲外に離した場合、戻り値が NFC_ERROR_TIMEOUT 等となりエラーを通知しても、Write や Lock が完了している場合があります。 そのため、Write や Lock を確実に行うために、NFCExchangeData関数の戻り値が NFC_ERROR_TIMEOUT 等のエラーとなった場合は、NFCExchangeData関数の戻り値が NFC_OK となる まで、リトライを行う必要があります。 以下のフローの手順に従い、リトライ処理を行ってください。 Tag-it に Write Single Block コマンドを送信する 1. TargetID 配列を 0 クリア等で初期化します。 2. iCount=0 をセットします。 3.
TargetID初期化 iCount=0 No iCount
Tag-it に Lock Block コマンドを送信する 1. TargetID 配列を 0 クリア等で初期化します。 2. iCount=0 をセットします。 3. iCount<定数 N の場合、次の処理に進みます。定数 N はループ回数の上限を表しており、回数制限 を設けることにより、無限ループを回避します。 4. NFCPollingCard関数により、通信範囲内の IC カードを検索します。 5. IC カードの起動に成功した場合は、NFCGetCardResponse関数により IC カードの UID を取得しま す。 6. TargetID が初期状態の場合は取得した UID をセットします。 7. TargetID[6]をチェックします。TargetID[6]が 0x07 の場合、Tag-it シリーズの IC カードであるため、 次の処理に進みます。 8. NFCExchangeData関数により Read コマンドを送信します。(このとき、ISO15693 コマンドの Flag に 0x60 を指定し、対象ブロックの Lock 状態を確認します) 9.
TargetID初期化 iCount=0 No iCount
Tag-it に Write AFI / Write DSFID コマンドを送信する 1. TargetID 配列を 0 クリア等で初期化します。 2. iCount=0 をセットします。 3. iCount<定数 N の場合、次の処理に進みます。定数 N はループ回数の上限を表しており、回数制限 を設けることにより、無限ループを回避します。 4. NFCPollingCard関数により、通信範囲内の IC カードを検索します。 5. IC カードの起動に成功した場合は、NFCGetCardResponse関数により IC カードの UID を取得しま す。 6. TargetID が初期状態の場合は取得した UID をセットします。 7. TargetID[6]をチェックします。TargetID[6]が 0x07 の場合、Tag-it シリーズの IC カードであるため、 次の処理に進みます。 8.
TargetID初期化 iCount=0 No iCount
カシオ計算機お問い合わせ窓口 製品に関する最新情報 ●製品サポートサイト(カシオペア・ハンディターミナル) http://casio.