пытаемся отправить большой файл с андроид телефона на микропроцессор через nfc-p2p, android-beam и snep.
Это то, что мы имеем до сих пор. Я могу подключить pn532 (цель) к телефону (инициатору). Мое приложение для Android использует setNdefPushMessage для отправки NdefMessage через nfc. Как только я касаюсь телефона (Beam-UI), он начинает подключаться к SAP 4 на моем pn532, и после команды чтения (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
I-Package из SAP 32 в 4
Заголовок 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)
получить: Соединение
отправить: Соединение завершено[MUI=128]
получить: SYMM
отправить: SYMM
получить: I сначала фрагментированные данные (как показано выше)
отправить: RR
получить: SYMM
отправить: I SNEP:ответ CONTINUE
получить: RR
отправить: I SNEP:запрос CONTINUE
получить: I второй фрагмент данных
отправить: RR
получить: RR
отправить: I SNEP:запрос CONTINUE
получить: I третий фрагмент данных
Как я уже сказал, это работает только несколько раз. Большую часть времени мой PN532 просто отвечает кодом ошибки 0x29 -> Инициатор разорвал соединение. Итак, вопрос в том, может ли это быть проблема синхронизации или что еще приводит к разрыву соединения перед отправкой остальных данных.