• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

TLSR825x и Offloaded scan batching

aloika

Active member
Тут интересное выяснилось. Устройство на TLSR8253 в моем исполнении не виделось некоторыми моделями телефонов OnePlus, Honor и Redmi. Т.е. просто в результатах сканирования устройство не появлялось и всё. Как будто бы его нет. Как будто рекламы нет.

Но оказалось, что если в NFR Connect в параметрах сканирования включить Offloaded scan batching (500 ms), то устройство начинает сканироваться на этих телефонах.

1666882985405.jpeg

Кто-нибудь знает, что это? Почему так?
 

pvvx

Активный участник сообщества
"в моем исполнении" байтики пакета рекламы и рекламный интервал в студию.
Причин может быть несколько.
Linux был испорчен кентами из Intel - если рекламный интервал более 2-х секунд, то фиг вам всё в Linux...
Windows не видит устройства, если в рекламе нет структуры "флага"...
 

pvvx

Активный участник сообщества
+ ещё про смарты, современные, модели этого года с 5G и т.д.:
Тестировал несколько смартфонов и разные USB-BT5. Все программы и спецификация говорит что тянут BT5+ (LongRange-CodedPHY и 2M модуляции).
1666916099140.png
Но ни один из протестированных не ловит расширенную рекламу в LongRange-CodedPHY, описанную в стандарте BT5. Ловят только на 1M PHY. И пофиг цена смарта или адаптера. (В инете рекомендуют какой-то специфический смарт и спец.адаптер - типа они могут :))
На 1M PHY дрова Андроида заточили, переключение при соединении на любую PHY - тоже, но остальное забросили, хотя там сложности для реализации = нулю. Кто-то мешает. Наверно ZigBee :), т.к. иначе дальность связи у BLE увеличиться в 3..4 раза (за 1 км по прямой).
В "nRF Connect" надо переключать галку в setup (что-то связанное с типовыми - забыл какую) чтобы смарт принимал типовую расширенную рекламу на 1M PHY.
1666916276810.png
Ещё не пробовал точно, что там с "Periodic Advertisement" - но в совсем древней статье (по приведенной ссылке) указано:
"Примечание . Периодическая реклама — это новая функция. это еще не реализовано в телефонах. Следовательно, периодические рекламные пакеты не будут видны на мобильных платформах и в приложениях для сканирования Bluetooth."

Интересно, сколько ещё десятков лет пройдет, пока впихнут полную реализацию в смарты BT5.0?

А вы страдаете с первыми недо-реализациями BT4.0 (даже не 4.2) в совсем дешевых смартах?
 

pvvx

Активный участник сообщества
включить Offloaded scan batching (500 ms)
Google "Offloaded scan batching"
Android 5.0 - Официальный выход состоялся 3 ноября 2014 года... смартам 8 лет?

Для проверки рекламы "в моем исполнении" всё есть в "nRF Connect". Копируете байтики своей рекламы в соответствующем меню, ставите интервал и включаете. На другом аппарате смотрите...
 

aloika

Active member
"в моем исполнении" байтики пакета рекламы и рекламный интервал в студию.
Причин может быть несколько.
Linux был испорчен кентами из Intel - если рекламный интервал более 2-х секунд, то фиг вам всё в Linux...
Windows не видит устройства, если в рекламе нет структуры "флага"...
blc_ll_setAdvParam(ADV_INTERVAL_50MS, ADV_INTERVAL_50MS, ADV_TYPE_CONNECTABLE_UNDIRECTED, OWN_ADDRESS_PUBLIC, 0, NULL, BLT_ENABLE_ADV_ALL, ADV_FP_NONE);

C:
const u8    tbl_advData[] = {
     12, DT_COMPLETE_LOCAL_NAME,                 'S','W','B','D','d','r','v','_','m','c','5',
     2,     DT_FLAGS,                                 0x05,                     // BLE limited discoverable mode and BR/EDR not supported
     3,  DT_APPEARANCE,                         0x80, 0x01,             // 384, Generic Remote Control, Generic category
     5,  DT_INCOMPLT_LIST_16BIT_SERVICE_UUID,    0x12, 0x18, 0x0F, 0x18,    // incomplete list of service class UUIDs (0x1812, 0x180F)
};
 

aloika

Active member
Для проверки рекламы "в моем исполнении" всё есть в "nRF Connect". Копируете байтики своей рекламы в соответствующем меню, ставите интервал и включаете. На другом аппарате смотрите...
Да, было бы проще, если бы у меня был в доступе такой телефон, на котором это проявляется. На всех моих телефонах корректно работает. Нет у меня ни OnePlus, ни Хоноров, ни Redmi...
 

aloika

Active member
В продолжение темы.

Есть такой вот телефон - он рекламу не видит ни в какую:
1667732179637.png
А есть вот такая древность - отлично работает:
1667732421349.jpeg

Как угадать заранее? От чего зависит?
 

pvvx

Активный участник сообщества
Зависимость возможна от флагов в рекламном пакете:
У вас "LE limited discoverable mode", а для обнаружения в Windows системном меню BT желательно "LE General Discoverable Mode".
С этими флагами по сей день большая путаница. Было нечеткое описание в стандарте и производители имеют разную реализацию что с этими флагами делать. Путаница и неоднозначности по сей день, теперь в Bluez...

Режимы обнаружения

  • Необнаруживаемый режим — другие сканирующие устройства не могут обнаружить присутствие периферийного устройства в необнаруживаемом режиме. Периферийное устройство использует этот режим, чтобы не быть обнаруженным и не подключенным к одноранговому устройству. Для того же эффекта периферийное устройство может объявить с флагами ADV_NONCONN_IND или ADV_SCAN_IND, установленными в поле Flag AD в рекламном пакете.
  • Режим ограниченного обнаружения — в поле флага AD рекламного пакета устанавливается флаг ограниченного обнаружения, и устройство может быть обнаружено в течение ограниченного времени с более низким приоритетом. Периферийное устройство в режиме ограниченного обнаружения может быть обнаружено только центральным устройством, которое следует процедуре ограниченного обнаружения.
  • Общий режим обнаружения — в этом режиме периферийное устройство может быть обнаружено центральным устройством, пока оно рекламирует. Как правило, цель состоит в том, чтобы быть обнаруженным и установить соединение, поэтому общий флаг обнаружения устанавливается в поле флага AD рекламного пакета.
 

pvvx

Активный участник сообщества
В Android так-же ранее были шатания. Но с "LE General Discoverable Mode" должно работать. Последнее, что можно найти не капая сам код Android-а - типа эти флаги передаются в приложение и ему решать что творить.
Но видно, что с этими флагами будет ещё много подводных камней - к примеру с активным сканированием. Пока все рассмотренные мной реализации игнорируют эти флаги и лепят запрос сканирования любому, что тоже есть неоднозначность в определении смысла данных флагов...
 

pvvx

Активный участник сообщества
Есть такой вот телефон - он рекламу не видит ни в какую:
...
Как угадать заранее? От чего зависит?
От производителя. На некоторых моделях, особенно на дорогих, есть ошибки именно с этим флагом. И их никто справлять не собирается. Есть много запросов на исправление, но писателям софта к этим моделям - пофиг. Так и дублируют с новой версией Android.
Возможно что им не понять что это за флаги из-за запутанного описания в стандарте BT или из-за сложностей перевода и тупости (какие-то индусы не владеющие переводчиком или просто тупые).
В iOS та-же каша...
 

aloika

Active member
Флаг в рекламном пакете поменял на LE General Discoverable Mode (0x06), всё то же самое. Гипотеза не сработала, к сожалению...

Тут еще мысль появилась. Другое устройство на телинке на этом телефоне видно, а это не видно. Рекламу уже одинаковую сделал - всё равно такая ситуация. А разница у них в маках: на одном A4:C1:38:xx:xx:xx (оно видно), на другом 94:C9:60:xx:xx:xx (оно не видно).

Сейчас человек попробует залить в устройство с "видимым" маком прошивку от "невидимого" устройства. Проверим. Может, вообще не в прошивке дело, а в маке.

Хотя тут оба мака проверяются корректно.
 

aloika

Active member
Флаг в рекламном пакете поменял на LE General Discoverable Mode (0x06), всё то же самое. Гипотеза не сработала, к сожалению...

Тут еще мысль появилась. Другое устройство на телинке на этом телефоне видно, а это не видно. Рекламу уже одинаковую сделал - всё равно такая ситуация. А разница у них в маках: на одном A4:C1:38:xx:xx:xx (оно видно), на другом 94:C9:60:xx:xx:xx (оно не видно).

Сейчас человек попробует залить в устройство с "видимым" маком прошивку от "невидимого" устройства. Проверим. Может, вообще не в прошивке дело, а в маке.

Хотя тут оба мака проверяются корректно.
Нет, от мака не зависит. От прошивки зависит.
 

aloika

Active member
В общем, пока не могу понять, в чем дело. Есть две прошивки, на разных SDK (single и multi). Параметры рекламы стоят одинаковые, в nrf connect выглядят одинаково, посмотрел сниффером (там, правда, не особо что видно) - но тоже одинаково.
И этим вот загадочным телефоном (не моим) реклама одной прошивки (single) видится, а реклама другой - нет. Моими телефонами обе видны.

Девайсы перешивали крест-накрест - дело в прошивке, не в девайсах.
 

aloika

Active member
Проблема вроде бы решилась. По крайней мере, на том телефоне, на котором реклама не виделась - теперь нормально видится. Просто пересобрал прошивку под самую новую (на данный момент) мульти-сдк. И всё заработало.

В чем именно дело - непонятно. В nrf-connect обе рекламы выглядят одинаково, в сниффере -тоже. Других инструментов исследования нет. Или я о них не знаю.

Я рад, конечно.
 

pvvx

Активный участник сообщества
В некоторых SDK для BLE есть устанавливаемая задержка паузы при передаче рекламы между каналами (там ещё должно быть и время приема запроса на сканирование/соединения после TX, но этих установок не видел). Для Telink я не смотрел где она (есть куча всяких структур описанных в хидерах), т.к. всё работает и так.
Это тоже может влиять. Адаптер может не успевать следовать за каналами, т.к. при сканировании они обычно смотрят-прыгают за рекламой по 3 каналам. А сниффер опрашивает один канал...
 

Riska

New member
+ ещё про смарты, современные, модели этого года с 5G и т.д.:
Тестировал несколько смартфонов и разные USB-BT5. Все программы и спецификация говорит что тянут BT5+ (LongRange-CodedPHY и 2M модуляции).
Посмотреть вложение 12458
Но ни один из протестированных не ловит расширенную рекламу в LongRange-CodedPHY, описанную в стандарте BT5. Ловят только на 1M PHY. И пофиг цена смарта или адаптера. (В инете рекомендуют какой-то специфический смарт и спец.адаптер - типа они могут :))
На 1M PHY дрова Андроида заточили, переключение при соединении на любую PHY - тоже, но остальное забросили, хотя там сложности для реализации = нулю. Кто-то мешает. Наверно ZigBee :), т.к. иначе дальность связи у BLE увеличиться в 3..4 раза (за 1 км по прямой).
В "nRF Connect" надо переключать галку в setup (что-то связанное с типовыми - забыл какую) чтобы смарт принимал типовую расширенную рекламу на 1M PHY.
Посмотреть вложение 12459
Ещё не пробовал точно, что там с "Periodic Advertisement" - но в совсем древней статье (по приведенной ссылке) указано:
"Примечание . Периодическая реклама — это новая функция. это еще не реализовано в телефонах. Следовательно, периодические рекламные пакеты не будут видны на мобильных платформах и в приложениях для сканирования Bluetooth."

Интересно, сколько ещё десятков лет пройдет, пока впихнут полную реализацию в смарты BT5.0?

А вы страдаете с первыми недо-реализациями BT4.0 (даже не 4.2) в совсем дешевых смартах?
Подскажите, пожалуйста, какой софт используется на данных скринах?
 
Сверху Снизу