Bluetooth LE връзката продължава само 10 секунди

Чудех се дали някой друг е имал проблеми с ble връзка, продължаваща само 10 секунди. Опитвам се да свържа mac (работещ с ubuntu) като централен и приложение за iPhone, работещо като периферно устройство. Проверих, че приложението може да се свърже със lightblue. Използвам hcitool lescan, за да получа MAC адреса и след това използвам gatttool-b -I -t random, което ми дава подканата [ ][MAC ADDRESS]> и след това пиша connect, което ми дава [CON][MAC ADDRESS ]> за точно 10 секунди, преди да се върнете към [ ][MAC АДРЕС]>. Пуснах hcidump и ето изхода:

HCI снифър - анализатор на Bluetooth пакети версия 2.2 устройство: hci0 snap_len: 1028 филтър: 0xffffffffffffffffff

HCI команда: LE Задаване на параметри на сканиране (0x08|0x000b) plen 7 тип 0x01 (активен) интервал 10.000ms прозорец 10.000ms собствен адрес: 0x00 (Публичен) политика: Всички

HCI събитие: Командата е завършена (0x0e) plen 4 LE Задайте параметри на сканиране (0x08|0x000b) ncmd 1 състояние 0x00

HCI команда: LE Set Scan Enable (0x08|0x000c) plen 2 стойност 0x01 (сканиране активирано) филтриране на дубликати 0x01 (активирано)

HCI събитие: Командата е завършена (0x0e) plen 4 LE Задаване на активиране на сканиране (0x08|0x000c) ncmd 1 състояние 0x00

HCI събитие: LE Meta Event (0x3e) plen 33 LE Доклад за рекламиране ADV_IND - Ненасочена реклама с възможност за свързване (0) bdaddr 78:96:3C:DB:D9:9D (Произволно) Флагове: 0x1a Неизвестен тип 0x07 с 16 байта данни RSSI: - 37

HCI събитие: LE мета събитие (0x3e) plen 12 LE рекламен отчет SCAN_RSP - Отговор на сканиране (4) bdaddr 78:96:3C:DB:D9:9D (Произволно) RSSI: -37

HCI команда: LE Set Scan Enable (0x08|0x000c) plen 2 стойност 0x00 (сканирането е деактивирано) филтър дубликати 0x01 (активирано)

HCI събитие: Командата е завършена (0x0e) plen 4 LE Задаване на активиране на сканиране (0x08|0x000c) ncmd 1 състояние 0x00

HCI команда: LE Създаване на връзка (0x08|0x000d) plen 25 bdaddr 78:96:3C:DB:D9:9D тип 1

HCI събитие: Състояние на командата (0x0f) plen 4 LE Създаване на връзка (0x08|0x000d) състояние 0x00 ncmd 1

HCI събитие: LE Meta Event (0x3e) plen 19 LE Connection Complete status 0x00 handle 64, master роля bdaddr 78:96:3C:DB:D9:9D (Произволно)

ACL данни: обработка на 64 флага 0x02 dlen 11 ATT: Read By Group req (0x10) начало 0x0001, край 0xffff type-uuid 0x2800

HCI команда: Прочетете информация за отдалечена версия (0x01|0x001d) plen 2 манипулатор 64

HCI събитие: Четене на информацията за отдалечена проверка е завършена (0x0c) състояние plen 8 0x00 манипулатор 64 LMP версия: 4.0 (0x6) LMP Subversion: 0x2203 Производител: Broadcom Corporation (15)

HCI събитие: Състояние на командата (0x0f) plen 4 Прочетете информация за отдалечена версия (0x01|0x001d) състояние 0x00 ncmd 1

HCI събитие: Завършено прекъсване (0x05) plen 4 състояние 0x00 манипулатор 64 причина 0x13 Причина: Връзка, прекратена от отдалечен потребител

Някакви предложения, които да ми помогнат да се измъкна от този коловоз?

Благодаря предварително.


person user3712524    schedule 19.07.2014    source източник


Отговори (3)


Преживял съм (на Android), че маяците на Estimote BLE ще прекъснат връзка точно след 10 секунди. Как превръщате своя iPhone в периферно устройство? Използвате ли приложението Estimte? Може би са внедрили приложението по същия начин, по който са внедрили маяците.

Ако използвате приложението Estiomte, можете да опитате да използвате друго приложение, за да превърнете вашия iPhone в периферно устройство и да проверите дали показва същото поведение.

person Mr. Jones    schedule 21.07.2014
comment
Не, пиша собствено приложение в Objective-c. - person user3712524; 21.07.2014
comment
Прави същото нещо с lightblue, когато се опитам да се свържа с някоя от техните псевдо услуги. - person user3712524; 21.07.2014

Вярвам, че това може да се дължи и на bluez версията. Какви версии на bluez използвахте по това време? И може също да видите следното от hcidump:

Причина: Връзка, прекратена от отдалечен потребител (0x13)

person user4826904    schedule 04.01.2017

Това е само моят гост: мисля, че това е част от iOS за запазване на нещата. Ако се свържете ръчно и не направите нищо в рамките на 10 секунди, той просто ще прекъсне връзката. Най-често програмата не спира (без да прави нищо) за 10 секунди. Защо не се абонирате за уведомяване/идентифициране на знаци или за свързване на двойки, отново предполагам, че това трябва да попречи на iOS да се прекъсне. Може да е трудно за това с gatttool в рамките на 10 секунди, но трябва да е лесно, ако използвате lightblue.

person user1012131    schedule 10.08.2014
comment
Благодаря. Мислех за това и затова се опитах непрекъснато да проверявам характеристиките и да получавам стойности и т.н. за след десет секунди. Все още е прекъснато. Може просто да опитам да напиша програма, която се свързва и абонира за услугата и да видя дали остава свързана. - person user3712524; 11.08.2014