User manual - NFCライブラリマニュアルver.1.06(2012年3月29日)
56
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. NFCExchangeData関数により WriteAFI コマンド(または Write DSFID コマンド)を送信します。(この
とき、ISO15693 コマンドの Flag に 0x60 を指定し、対象ブロックの Lock 状態を確認します)
9. NFCExchangeData関数の戻り値が NFC_OK の場合は、アプリケーションにおいて「書き込みに成功
した」旨を表示し、処理を終了します。(正常終了)
10. NFCExchangeData関数の戻り値が NFC_ERROR_TIMEOUT、NFC_NOT_ACTIVATION、
NFC_ERROR_SUSPEND、NFC_ERROR_AUTOOFF の場合は、書き込みに失敗しているときと、書き
込みに成功しているが書き込み後のチェックに失敗しているときがあります。確実に書き込みを完了
するためには、アプリケーションにおいて「書き込みに失敗/再度同じカードをかざす」旨を表示し、3.
に戻って WriteAFI(または Write DSFID)処理のリトライを行います。
11. NFCExchangeData関数の戻り値が上記以外の場合は、Write データと TargetID を保存し、本体リセ
ット後に 1.に戻り、再度 WriteAFI(または Write DSFID)の処理フローを実行します。このとき、1.にお
いて、TargetID 配列は初期化せずに、保存した TargetID をセットします。