Я пытаюсь отправить команду readMultipleBlocks на мой тег ISO15693, который отлично работает на android. Тем не менее, в iOS я всегда получаю сообщение об ошибке «Потеря соединения с тегом», я также пробовал readSingleBlock, но появляется такая же ошибка.
Мой тег - это ICODE SLIX2, соответствующий спецификации ISO15693.
У меня была эта ошибка на android, а также если я не включил свой идентификатор тега в адресную команду чтения. Но, используя iOS, я не могу создавать свои собственные пользовательские команды, но должен использовать интерфейс Apple ISO15693Tag. У меня нет способа проверить, как выглядит команда raw, которую отправляет устройство iOS.
Вот пользовательская команда, которую я использовал при android отправке через transieve (команда byte []) Метод:
0x20, // Addressed Flag
0x23, // Command: Read multiple blocks
0x00, // TAG UID placeholder
0x00, // TAG UID placeholder
0x00, // TAG UID placeholder
0x00, // TAG UID placeholder
0x00, // TAG UID placeholder
0x00, // TAG UID placeholder
0x00, // TAG UID placeholder
0x00, // TAG UID placeholder
0x00, // First block (offset)
0x08 // Number of blocks to read
К сожалению, нет вообще никакой документации о команде readMultipleBlock тэга ISO15693Tag. Документация по команде readSingleBlock ISO15693Tag гласит, что флаг адреса используется по умолчанию, а идентификатор тега включен в команду. Но опять же нет способа проверить это.
Вот фрагмент кода swift:
guard let connectedTech = techs[handle] as? NFCISO15693Tag else {
result(FlutterError(code: "not_found", message: "Tag is not found.", details: nil))
return
}
connectedTech.readMultipleBlocks(requestFlags: [.address], blockRange: NSMakeRange(0, 8)) { data, error in
if let error = error {
result(error.toFlutterError())
return
}
result(data)
}
Метка преобразуется в тег ISO15693Tag без проблем, но как только я отправьте команду readMultipleBlocks, появится исключение «Потеря связи с тегом».
Кто-нибудь тоже сталкивался с этим и дал совет. Мне кажется очень глупым, что нельзя создать собственную команду, как в Android, используя байтовый массив.
Любая помощь будет признательна.