Проблема чтения внешнего аксессуара

Мне нужно периодически получать данные через внешний аксессуар BlueTooth.

Я реализовал модель потоков EA, управляемую событиями. Однако первоначальная передача по bluetooth всегда задерживается. Например, если бы каждый пакет имел длину 15 байт, делегат потока не срабатывал бы до 150 байт.

Поможет ли опрос?

ИЗМЕНИТЬ:

Также мне было трудно восстановить сеанс после переключения приложения с фона на передний план. Попытка снова открыть сеанс завершится ошибкой. Есть идеи?


person ZhangChn    schedule 22.06.2011    source источник


Ответы (1)


Читать каждый байт, когда приходит NSStreamEventHasBytesAvailable.

Вы разработали свой собственный аксессуар Bluetooth? Может быть, MCU сбрасывается только после отправки каждых 150 байт.

Также вы упомянули initial transmission. Знаете ли вы, как только устройство Bluetooth сопряжено и подключено к iPhone, оно должно пройти некоторый процесс идентификации, подтверждая некий секретный сертификат. Это может занять несколько и даже 10 секунд, в зависимости от качества сигнала. Это может быть причиной задержки.

person XMLSDK    schedule 01.09.2011
comment
Нет, у меня контракт на устройство MFi. Также мне было трудно восстановить сеанс после переключения приложения с фона на передний план. Есть идеи? - person ZhangChn; 03.09.2011
comment
Какой iPhone/iPod Touch/iPad вы тестируете? Некоторые модели ДЕЙСТВИТЕЛЬНО обеспечивают жесткое подключение к устройствам Bluetooth. Это не вызвано вашим приложением для iOS. Вы можете заметить, что в разделе «Настройки iOS» > «Основные» > «О программе» аксессуар не может быть удален из списка, даже если устройство Bluetooth находится вне зоны действия или выключено. iOS иногда не воспринимает это правильно. - person XMLSDK; 03.09.2011