ISO15693 - Потерянное соединение при любой команде чтения - iOS 13 - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь отправить команду 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, используя байтовый массив.

Любая помощь будет признательна.

...