nfc-p2p、android-beam、snepを介して、Androidフォンからマイクロプロセッサーに大きなファイルを送信しようとしています。
これは、これまでのところです。pn532 (ターゲット) を電話 (イニシエーター) に接続できます。私の Android アプリは setNdefPushMessage を使用して、nfc 経由で NdefMessage を送信します。電話 (Beam-UI) をタップするとすぐに、pn532 で SAP 4 との接続が開始され、readcommand(tgGetData) の後に次のメッセージが表示されます。
00 FF 86 7A D5 87 00 13 20 00 10 02 00 00 03 BD C1 01 00 00 03 B6 54 30 68 61 6C 6C 6F 20 64 61 73 20 69 73 74 20 65 69 6E 20 74 65 73 74 31 68 61 6C 6C 6F 20 64 61 73 20 69 73 74 20 65 69 6E 20 74 65 73 74 32 68 61 6C 6C 6F 20 64 61 73 20 69 73 74 20 65 69 6E 20 74 65 73 74 33 68 61 6C 6C 6F 20 64 61 73 20 69 73 74 20 65 69 6E 20 74 65 73 74 34 68 61 6C 6C 6F 20 64 61 73 20 69 73 74 20 65 69 6E 20 74 65 73 74
クリーンアップするには: PN532 ヘッダー: 00 FF 86 7A D5 87 00
MI ビットが設定されていません!
LLCP ヘッダー: 13 20 00
SAP 32 から 4 への I-Package
SNEP ヘッダー:10 02 00 00 03 BD
バージョン 10 要求 PUT len 0x3bd
NDEF ヘッダー: C1 01 00 00 03 B6 54
c1: start+EndMessage
メッセージ ... 残り
MUI 128 で接続を完了しました。
私の問題: SNEP パッケージの長さは 0x3BD バイトですが、この短い部分しか受信していません。このメッセージのどこにも、それが分割メッセージであるかどうかを示すものはありません。
残りのデータはどこにありますか? pn532 からさらにパッケージを読み込もうとしましたが、何もありませんでした。
**編集:一晩試した後、ようやくどこかにたどり着きました。少なくとも時々機能したもの:(すべて PN532 の観点から)
receive: Connect
send: Connect complete[MUI=128]
receive: SYMM
send: SYMM
receive: I first Fragmented Data(上記のように)
send: RR
receive: SYMM
送信: I SNEP: 応答 CONTINUE
受信: RR
送信: I SNEP: 要求 CONTINUE
受信: I 2 番目の断片化されたデータ
送信: RR
受信: RR
送信: I SNEP: 要求 CONTINUE
受信: I 3 番目のデータ フラグメント
私が言ったように、これは数回しか機能しません。ほとんどの場合、PN532 はエラー コード 0x29 で応答します -> イニシエータが接続を切断しました。したがって、質問は、タイミングの問題である可能性がありますか、それとも残りのデータを送信する前に接続が切断される他の原因である可能性があります。