2015-10-03 5 views
0

Я пишу приложение для Core Bluetooth для IOS. Он подключается к устройству TI. С помощью встроенного программного обеспечения. Разработчик прошивки разработал его для публикации данных 12 раз в секунду. Я использую свойство Notify для получения данных, но кажется, что мы собираем данные 30 раз в секунду. Это вызывает дополнительное энергопотребление, и по конкретным причинам я не могу потянуть себя за свой счет, мне нужно тянуть скорость, которую устройство публикует.Почему IOS Core Bluetooth Respect Communication Rate

Разработчик прошивки создал приложение Windows, у которого нет этой проблемы без жесткой кодированной скорости чтения. Поэтому мне нужно найти проблему.
Есть ли у кого-нибудь рекомендации?

+0

Как вы читаете данные? Просто, обратившись к 'didUpdateValueForCharacteristic'? Вы не вызываете вызовы 'readValueForCharacteristic'? – Paulw11

+0

Нет. Я не использую readValueForCharacteristic. Прошивка dev думает, что когда вы подключаете устройство, нам нужно установить минимальный интервал соединения, но я не вижу, где его установить в Core Bluetooth. – Rico

+0

. У вас нет никакого контроля над этими параметрами в ядро Bluetooth. Вы должны получить один вызов метода делегата каждый раз, когда периферийное устройство выдает уведомление об этом свойстве. Если вы получаете более одного звонка за уведомление, у вас есть некоторые проблемы в коде. У вас есть только один экземпляр CBCentralManager? – Paulw11

ответ

0

Для того, что вы описываете, в вашей системе сторона Swift только получает уведомления, поэтому нет контроля над скоростью, которую вашего устройства использует для обновления этой конкретной характеристики.

Но некоторые устройства могут иметь команду на своем собственном протоколе высокого уровня для установки рекламного интервала. Это полностью зависит от производителя. Если вы считаете, что система рекламирует по-разному с тем приложением Windows, которое вы упомянули, я бы предложил посмотреть, есть ли какой-либо код инициализации, который приложение может выполнять при его запуске (таким образом, устанавливая скорость). Но для этого вам понадобится исходный код приложения Windows или, по крайней мере, документация производителя о протоколе вашего устройства (если есть).

Кроме того, вы действительно уверены, что скорость обновления, когда устройство подключено к приложению Windows, действительно ниже, чем тот, который вы экспериментируете при подключении своего приложения iOS? Как вы это оцениваете?