Comments 35
Помню прям пригорело, BT LE может не поддерживать BT старых поколений… они тупо выкинули весь стек до него и всё, досвидания эмулятор COM порта… если производитель девайса (например донгла-адаптера) не заморочился поддержкой старых стандартов, а реализовал вожделенные модные BT LE… всё ничего кроме него работать не будет (у вас старое устройство? ха… давайдосвидания)
А то что в природе не существует вменяемых библиотек для работы с ним… так вообще печальбеда, ни документации, ни примеров, нифига. только платные стеки.
p.s. может плохо искал?
Ну скйчас-то уже есть библиотеки для BLE примерно для всего, под какую платформу не можете найти? Но поначалу да, было все печально.
и «примерно для всего»… это далеко даже не для половины протоколов стека, например я вспотел в свое время искать как передавать аудио самостоятельно… в половине библиотек в лучшем случае реализован только эмулятор ком порта ну и BLE ф-ции (кстати тоже зачастую урезанные)
Или HID как сделать через него?
Вроде есть: https://github.com/intel-iot-devkit/tinyb/
Хотя конечно для джавы нужна бы поддержка Bluetooth в самой JVM — иначе как — а это мало кому нужно. Но для всех "нативных" платформ — мобильные, десктопные, встраиваемые — вроде как есть.
Я и не говорю, что весь функционал классического блютуса повторен в BLE — нет, не весь — но тот, что есть, обычно вполне доступен.
HID: вот, например: http://software-dl.ti.com/simplelink/esd/simplelink_cc2640r2_xpack/1.50.00.62/exports/examples/rtos/CC2640R2RC/bleapps/hid_adv_remote/README.html
Вроде есть: github.com/intel-iot-devkit/tinyb
1) там только BT LE
2) last commit 3 years ago
3) даже ссылки в описании на «guide for getting started with TinyB on Java is available here» протухли
есть еще либа bluecove где хотябы работают старые протоколы, но она протухла еще в конце 2000х и рабочий вариант надо собирать из dev ветки вручную
но тот, что есть, обычно вполне доступен.
эмулятора com там нет
HID: вот, например
а теперь тоже самое но для bluetooth версий 1,2,3, устройств ;) я помню много времени убил на курение мануалов… там всё начинается 'так, берете GATT профиль, он есть у всех bt4 устройств и юзаете'… а у меня железка была старенькая совсем и 'а я такого не умею'
Ну дык вы же спрашивали либу для BT LE — вот либа для BT LE.
HID: вы же спрашивали про HID на BT LE?.. Да, для старых устройств без BT LE надо будет по-другому делать. Вот официальная спека для HID для классических устройств: https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=309012.
Ну дык вы же спрашивали либу для BT LE — вот либа для BT LE.
которая уже 3 года не обновляется и врятли будет, ну такое себе
==
спека это хорошо, а вот библиотек для этого всего нет
Это, скорее, проблема экосистемы для Java, чем BLE. Ну не пишет никто на джаве что-либо для Блютуса.
То, что нет либ для Bluetooth Classic для устаревшего функционала, весьма логично..
То, что нет либ для Bluetooth Classic для устаревшего функционала, весьма логично..
вот о чем я и говорю, каким блин образом часть крайне необходимого и удобного функционала стала depricated?
Это, скорее, проблема экосистемы для Java, чем BLE. Ну не пишет никто на джаве что-либо для Блютуса.
Да такое впечатление что для него никто не пишет особо то в принципе
жизнь теплится только в андройде, в сдк которого его поддержка встроена
вот о чем я и говорю, каким блин образом часть крайне необходимого и удобного функционала стала depricated?
Ну комитет проголосовал — и стала. Bluetooth Classic умирает, да. Но для всех сервисов (насколько я знаю) есть альтернатива в BLE.
Да такое впечатление что для него никто не пишет особо то в принципе
жизнь теплится только в андройде, в сдк которого его поддержка встроена
Да вроде очень активно используется, IoT там всякое. Поддержка есть также в iOS, Linux, Windows, всякий embedded системах типа Zephyr и Mongoose, — да почти везде.
Но для всех сервисов (насколько я знаю) есть альтернатива в BLE.
RFCOMM вроде бы как оно не умеет
Легко эмулируется: https://docs.silabs.com/bluetooth/2.13/code-examples/applications/spp-serial-port-profile-over-ble — примеров в сети несть числа.
Легко эмулируется
да, проприетарным стеком, как кстати у него с лицензиями?
примеров в сети несть числа
вы привели пример коммерческого продукта, который совершенно не факт что будет работать с любым (не silicon labs) адаптером
так то я давно видел коммерческие стеки, с ними BT работает очень хорошо, но зачастую оно почемуто стоит денег даже для не-разработчика. помню купил (давно, еще в середине 2000х) адаптер и с ним в комплекте шел стек… море настроек, всё отлично работает (даже BT мышка не глючит), через пару лет адаптер сломался (физически), и купив другой… стек закричал «оололо чужое оборудование, введите серийник и обратитесь в отдел продаж»… и отключился… велкам ту стандартные сервисы ОС
да, проприетарным стеком, как кстати у него с лицензиями?
Это же на уровне приложение эмулируется, не стеком. Определяете две характеристики — прием и передача — в одну пишете, из другой читаете. Это пример, а не стек. Кода строк на 50, наверное, и пример показывает, как его написать.
вы привели пример коммерческого продукта, который совершенно не факт что будет работать с любым (не silicon labs) адаптером
ВСЕ современные ОС не нуждаются ни в каких доп стеках для поддержки BLE, у всех все работает из коробки. Эмуляция RFCOMM делается (как сказано выше) поверх этих самых доступных всем API.
Код от Silicon Labs, возможно, нужен, чтобы программировать сам чип и делать устройства на его основе.
Середина 2000-х годов была 15 лет назад :)
вы же понимаете что 'simple template for SPP-like communication. ' это не SPP профиль?
Я писал соединения не между компьютерами, у меня одним из устройств был GPS навигатор который отдает NMEA через SPP, для него всякие эти заклинания типа GATT и прочие BLE — это реально что заклинания
так то понятно что можно через аттрибуты наваять передачу какихто данных, когда обе стороны под моим контролем, но я то хочу (хотел) со сторонними железками работать
так то понятно что можно через аттрибуты наваять передачу какихто данных, когда обе стороны под моим контролем, но я то хочу (хотел) со сторонними железками работать
А, извините, не понял — да, с таким кейсом все плохо, Bluetooth Classic поддержан очень по-разному, но хорошего мало. Для старых приборов мало что изменилось. Но их с каждым годом все меньше...
Собственно, BLE и был (в целом успешной) попыткой упростить разработку приложений для Bluetooth — модель с характеристиками дает ясный API для широкого спектра применений, тогда как на классике надо было либо впихиваться в RFCOMM и изобретать свой бинарный протокол, либо делать свой профиль и свой стек, его поддерживающий.
Ну и сейчас никто не будет делать новые приборы с BT Classic, так что, повторюсь, для новых приборов проблем-то нет.
Да вроде очень активно используется, IoT там всякое.
корпорациями — да, везде всё работает, встроено, заявлено. Но ни на SO, ни на гитхабе ничего на нейти дальше простеньких примеров
Это только тот пример, который я знаю. Но наверняка ведь то же самое во всяких гарнитурах и часах, где также очень ограничены возможности питания.
Ради такого прорыва можно потерпеть отказ от старых версий.
Ради такого прорыва можно потерпеть отказ от старых версий.
но либы то где либы, живые, поддерживаемые и без depricated и описание вменяемое
а то 'ну интел для своих iot выпустила опенсорс либу… потом забила на это направление… и теперь это единственная либа в отрасли'
p.s. мне чёт кажется что bt вообще особо никому не нужен из DIY-щиков
Так то, беспроводным технологиям передачи данных не одно тысячелетие.
Прошло 25 лет — а по прежнему не придумали, как на блютус гарнитуре можно было с микрофоном играть в игрушки. Либо хороший звук в наушниках, но нет микрофона, либо невозможный хрипящий звук с отставанием в 1 секунду в наушниках и хреновый микрофон.
И никак это не победить, приходится к блютус наушникам с микрофоном дополнительно проводной микрофон покупать.
Тоже интересовался этим вопросом. Bluetooth гарнитуры работают в двух режимах — A2DP и HSP. Первый режим поддерживает более высокое качество звука, но только в одностороннем режиме (только наушники), второй — более низкое качество, но с микрофоном. Наверное это связано с тем, что Bluetooth гарнитуры рассчитывались под задачи прослушивания музыки (там микрофон не нужен) и под разговоры по телефону (там можно сэкономить на качестве, все равно максимальная частота в телефонной линии 3,4 кГц). А режим качественной записи звука сочли невостребованным и не стали реализовывать, так как он требовал бы от гарнитуры больших затрат энергии на кодирование звука в высоком качестве.
А есть ли в каких-то гарнитурах режим с микрофоном высокого качества?
А почему если был wi-fi решили создать BT?
upd: прикол, bluetooth появился раньше wi-fi
Опять же, размеры модулей BT меньше чем Wi-Fi.
Насчет потребления, сейчас с анонсом нового Wi-Fi протокола версии 6, потребление у Wi-Fi может стать гораздо меньше со всеми вытекающими последствиями. Опять же, Nordic прикупили команду разработки Wi-Fi…
Справедливости ради, адаптеры на дальность до 100м (класс 1) появились с версии BT 1.1
А как лучше поднять между устройствами беспроводную сеть, если хочется увеличить дальность, а скорость не так важна? Например для разговоров на расстоянии нескольких десятков метров без мобильной сети.
Что лучше для этого подойдёт, Bluetooth или Wi-Fi в каком-то режиме?
А тем временем по гарнитуре Bluetooth 5.0, купленной год назад, все так же нельзя слушать музыку и говорить по микрофону, находясь в полуметре от телефона / компьютера, чтобы качество аудио не снижалось до «телефонного».
Коротко об истории Bluetooth: четверть века для путешествия от 1.0 до 5.2