Форум проекта PuppyRus Linux

Разработки проекта PuppyRus => Программирование и компиляция => Тема начата: DdShurick от 18 Май 2016, 14:46:23

Название: Bluez-tray
Отправлено: DdShurick от 18 Май 2016, 14:46:23
https://github.com/Pro-pra/PuppyBT (модули от Pro; добавил sfs)

 GUI bluez-tray (https://github.com/DdShurick/BlueC/tree/master/bluez-tray-0.1) - утилита для bluez.
Что умеет:
 - Показывает наличие локальных bluetooth и их состояние.
 - Включает/выключает bluetooth с помощью rfkill.
 - Запускает программу bt-connect, которую ещё надо написать.
Как работает:
 - Запускается udev-ом через промежуточный скрипт bluez.sh, поэтому требует export DISPLAY, иначе получаем "невидимку". Для этого сделан костыль: в ~/.icewm/startup добавлено "echo $DISPLAY > /tmp/dsp" из которого пусковой скрипт берёт значение $DISPLAY.
 - При запуске bluez-tray определяет состояние интерфейса bluetooth (UP, DOWN, rfkill state 0) и помещает в трей соответствующий значок. Проверка каждые 10 секунд.
 - Из меню по ПКМ можно отключить bluetooth с помощью rfkill.
 - Клик по значку включает и поднимает bluetooth и запускает скрипт bt-connect (ex: bt-connect hci0 rfkill0), который производит сканирование и, на основе полученных данных, построение окна с кнопками запуска служб bluetooth.
 (сейчас исполняемые команды в кнопки не вписаны)
Название: Re: Bluez-tray
Отправлено: DdShurick от 20 Июнь 2017, 17:23:07
 Pro, может от этого плясать начнём?
Название: Re: Bluez-tray
Отправлено: Pro от 21 Июнь 2017, 02:13:23
- Запускает программу bt-connect, которую ещё надо написать.
заменить на запуск puppybt для начала
Название: Re: Bluez-tray
Отправлено: sfs от 21 Июнь 2017, 08:32:50
В трее (http://forum.puppyrus.org/index.php?topic=14572.msg132559#msg132559) действительно будет удобнее, но зачем это писать на си... Искусственное увеличение порога вхождения в тему  доработок. Не puppy-way
Название: Re: Bluez-tray
Отправлено: DdShurick от 21 Июнь 2017, 08:42:55
заменить на запуск puppybt для начала
Абсолютно не проблема. Но мне puppybt не нравится.
Для чего мы используем bluetooth?
Файлообмен, звук, интернет (маловероятно из-за низкой скорости). Вот от этого и надо плясать.
Кстати, a2dp-alsa для puppybt у тебя есть?
но зачем это писать на си...
Ну напиши на ассемблере, если не нравится.
Название: Re: Bluez-tray
Отправлено: Pro от 21 Июнь 2017, 08:59:14
Кстати, a2dp-alsa для puppybt у тебя есть?
вроде бы есть в модуле.

Но мне puppybt не нравится.
тебе любой скрипт не нравится кроме тех что ты сам написал. Не замечал?
Название: Re: Bluez-tray
Отправлено: Pro от 21 Июнь 2017, 09:03:39
Файлообмен, звук, интернет (маловероятно из-за низкой скорости). Вот от этого и надо плясать.
puppybt от этого и пляшет. в bluez-tray все функции не запихнуть, и других графических вариантов сейчас нету.
Автор puppybt сделал главное, обозначил путь по которому цеплять мышки, клавиатуры, звук передавать, сопряжение устройств делать. У нас же есть наработки по передаче файлов и монтированию устройства в каталог.
Название: Re: Bluez-tray
Отправлено: DdShurick от 21 Июнь 2017, 09:30:23
тебе любой скрипт не нравится кроме тех что ты сам написал.
Свои тоже не нравятся.
У тебя bluez-4?
Название: Re: Bluez-tray
Отправлено: Pro от 21 Июнь 2017, 10:01:53
У тебя bluez-4?
не у меня, у автора :) да конечно это все для 4 версии, без всяких пульсов, системдэ и прочего
Название: Re: Bluez-tray
Отправлено: DdShurick от 21 Июнь 2017, 10:26:10
У меня и 4.101 и 5.44
без всяких пульсов, системдэ и прочего
именно так!

На скриншоте: так выглядит недописанный bt-connect
Название: Re: Bluez-tray
Отправлено: Pro от 21 Июнь 2017, 10:50:28
На скриншоте: так выглядит недописанный bt-connect
c вкладками реально удобнее было бы. Обрати внимание как в puppybt сделана передача звука, т.е. две кнопки - отправить звук на устройство и рядом отправить звук на звуковую карту локальную т.е. вопросов не возникает "А как потом обратно вернуть", тоже самое с раздачей интернета Tethering и c ком-портом
Название: Re: Bluez-tray
Отправлено: DdShurick от 21 Июнь 2017, 16:38:20
c вкладками
Здесь вкладки по количеству найденных устройств. Не было ничего под рукой чтобы показать. На каждой вкладке генерируются кнопки sdptool browse, только то, что устройство поддерживает. Мне кажется так понятнее.
Название: Re: Bluez-tray
Отправлено: Pro от 21 Июнь 2017, 16:50:10
Да так понятнее, однозначно.
Название: Re: Bluez-tray
Отправлено: Pro от 22 Июнь 2017, 03:53:49
На скриншоте: так выглядит недописанный bt-connect
я так понимаю это на С написано, чем в этом случае можно тебе помочь? давай тогда сделаем законченный модуль bluetooth.pfs и будем требовать включить в во все iso
Название: Re: Bluez-tray
Отправлено: DdShurick от 22 Июнь 2017, 09:31:52
это на С написано
На C только bluez-tray, bt-connect на gtkdialog.
Название: Re: Bluez-tray
Отправлено: Pro от 22 Июнь 2017, 09:40:12
ну тогда его на гитхаб и пилим-пилим
Название: Re: Bluez-tray
Отправлено: DdShurick от 22 Июнь 2017, 09:48:28
ну тогда его на гитхаб и пилим-пилим
Оно уже год как там лежит (https://github.com/DdShurick/BlueC/blob/master/bt-connect).
Название: Re: Bluez-tray
Отправлено: Pro от 22 Июнь 2017, 10:16:40
форкнул.
Название: Re: Bluez-tray
Отправлено: DdShurick от 22 Июнь 2017, 16:03:22
 Саша, что надо оставить в bluez-tray? Вкл/выкл, видимость/невидимость, что ещё?
Много времени уделять не смогу, отдали на воспитание внучку, но постараюсь хоть что-нибудь.
Название: Re: Bluez-tray
Отправлено: Pro от 22 Июнь 2017, 16:16:20
Теоретически отправку файлов бы, либо соспряжение устройств т.к. В  gui места вроде нету для сопряжения. Или есть?

Вобще кажется был метод в PR что отправка файлов даже без сопряжения работала.

Если времени мало,оставь  пока то что есть,но чтоб работало надежно
Название: Re: Bluez-tray
Отправлено: DdShurick от 22 Июнь 2017, 16:34:24
отправку файлов бы
А мне бы звук одной кнопкой :)
соспряжение устройств
Вот тут я не знаю даже как лучше? Логично было-бы после сканирования и выбора сопрягаемого устройства, но проще сразу забить PIN в bluetooth-agent. Кстати, в bluez-5 агента нет, всё через bluetoothctl, но он консольный, наподобие telnet, к нему GUI не прикрутишь.
оставь  пока то что есть
Слишком оно сырое :(
Название: Re: Bluez-tray
Отправлено: Pro от 23 Июнь 2017, 03:24:42
Кстати, в bluez-5 агента нет, всё через bluetoothctl, но он консольный, наподобие telnet, к нему GUI не прикрутишь.
я тебе писал какой пример есть по управлению им из скриптов.
Название: Re: Bluez-tray
Отправлено: DdShurick от 23 Июнь 2017, 06:03:34
я тебе писал какой пример есть по управлению им из скриптов.
Пробовал, не работает.
Название: Re: Bluez-tray
Отправлено: Pro от 23 Июнь 2017, 07:09:57
нужен ли на данном этапе bluez-5 ? или на него возложить функции по парингу устройств?

первый пуллреквест отправил.
Название: Re: Bluez-tray
Отправлено: DdShurick от 23 Июнь 2017, 09:18:48
нужен ли на данном этапе bluez-5 ?
Не знаю, но звук мне удалось отправить только с bluez-5 (без pulseaudio).
Название: Re: Bluez-tray
Отправлено: Pro от 23 Июнь 2017, 09:22:43
ну этот товарищ через bluez-4 как-то видимо тоже отправляет....
Название: Re: Bluez-tray
Отправлено: DdShurick от 23 Июнь 2017, 11:04:39
 Не будем спорить, у меня есть оба, можно пробовать и 4 и 5.
 Посмотрел на свой быдлокод годовалой давности. Очень долго и неприлично ругался. Bluez-tray буду переписывать. Какие иконки сделать на "заблокирован", "выключен", "включен видимый", "включен невидимый"? Не понял назаначение PSCAN, ISCAN, PISCAN. Мне кажется, не лучше ли убрать меню ПКМ и перенести команды в скрипт bt-connect?
Название: Re: Bluez-tray
Отправлено: Pro от 23 Июнь 2017, 12:54:12
Если меню не будет,  что тогда будет делать этот bluez-tray?
Название: Re: Bluez-tray
Отправлено: DdShurick от 23 Июнь 2017, 17:41:16
что тогда будет делать этот bluez-tray?
Индикатор состояния bluetooth и одновременно кнопка запуска bt-connect или puppybt.
Если меню не будет
Меню можно и оставить, но что в него включать?
Название: Re: Bluez-tray
Отправлено: Pro от 24 Июнь 2017, 16:51:18
Вкл, выкл, паринг и О программе
Название: Re: Bluez-tray
Отправлено: DdShurick от 24 Июнь 2017, 18:52:17
паринг
?? Это уже компетенция bt-connect. Сейчас есть вкл/выкл, видим/невидим и о программе.
Не пойму, как в git посмотреть твои изменения.
Название: Re: Bluez-tray
Отправлено: Pro от 25 Июнь 2017, 14:43:47
Ну пуллреквест смотришь, там пишет какие файлы изменились,  щелкаешь и покажет отличия в виде diff
Название: Re: Bluez-tray
Отправлено: DdShurick от 25 Июнь 2017, 16:43:45
покажет отличия в виде diff
Это я вижу. Как получить конечный результат?
Название: Re: Bluez-tray
Отправлено: DdShurick от 25 Июнь 2017, 19:59:14
 "Подкоротил" manage-bluetooth:
Код
#!/bin/bash

export DISPLAY=:0.0

if ! [ -d /sys/class/bluetooth/ ]; then
killall bluetoothd
killall bluetooth-applet
killall bluetooth_tray
killall obexd
killall hidd
killall rfcomm
killall pand
exit
fi

dbus-uuidgen --ensure
sleep 1

[ "$(pidof bluetoothd)" ] || (bluetoothd && echo "bluetoothd started"; sleep 1)

[ "$(pidof hidd)" ] || (hidd && echo "hidd started"; sleep 1)

if [ "$(pidof obexd)" == "" ]; then
[ -d ~/bluetooth-share ] || mkdir ~/bluetooth-share
/usr/libexec/obexd --ftp --opp -a -r ~/bluetooth-share #
sleep 1
[ "$(pidof obexd)" ] && [ "`which notify`" != "" ] && \
notify "Ready to receive files if the bluetooth is enabled and discoverable"
fi

if [ "$(which bluetooth-applet)" ]; then
[ "$(pidof bluetooth-applet)" ] || bluetooth-applet &
else
[ "$(which bluetooth_tray)" ] && [ ! "$(pidof bluetooth_tray)" ] && bluetooth_tray &
fi
- hidd - вроде бы запускается без ошибки, но pid отсутствует
 - obexd - не понимает --ftp и --opp, или у меня не тот obexd?
 - sleep 1 - нужно ли?
Название: Re: Bluez-tray
Отправлено: Pro от 26 Июнь 2017, 04:27:30
[ "$(pidof hidd)" ] || (hidd && echo "hidd started"; sleep 1)
это ты сразу готовишь чтоб мышки-клавиатуры подключались?

[ -d ~/bluetooth-share ] || mkdir ~/bluetooth-share
может на ~/downloads оставить?

/usr/libexec/obexd --ftp --opp -a -r ~/bluetooth-share #
я так понял этот скрипт выполняется при загрузке? думаю включать сразу возможность приема файлов ненадо лишний демон в системе ненужен, включать либо при включении видимости, либо отдельной кнопкой в меню трея "Включить прием файлов"
Название: Re: Bluez-tray
Отправлено: DdShurick от 26 Июнь 2017, 07:31:11
это ты сразу готовишь чтоб мышки-клавиатуры подключались?
Это вместо
Код
hid=`ps | grep "hidd" | grep -v "grep hidd"`

if [ "$hid" == "" ]; then
hidd --server -n&
sleep 1
fi
я так понял этот скрипт выполняется при загрузке?
Да, причём присутствует в трёх экземплярах: /root/Startup/bluetooth, /home/live/Startup/bluetooth и /usr/bin/manage-bluetooth.
думаю включать сразу возможность приема файлов ненадо лишний демон в системе ненужен
Тогда может быть лучше оставить мой вариант /lib/udev/bluez.sh?
Код
#!/bin/sh
[ $1 ] || exit
[ "$(/bin/pidof bluetoothd)" ] || /usr/sbin/bluetoothd -u
#ждём запуск иксов (костыль)
until [ -f /tmp/dsp ]; do /bin/sleep 1; done
export DISPLAY=$(/bin/cat /tmp/dsp)

/usr/bin/bluez-tray "$1" "$2"
Название: Re: Bluez-tray
Отправлено: Pro от 26 Июнь 2017, 07:48:14
Тогда может быть лучше оставить мой вариант /lib/udev/bluez.sh?
ну да твой ставим. c DISPLAY там все нормально?
По итогам, дней через 10 сделаем модуль полноценный для тестирования. Обзовем PuppyBT наверное (BlueC изначально ведь было рабочее название, я помню) и сделаем новый репозитарий.
Название: Re: Bluez-tray
Отправлено: DdShurick от 26 Июнь 2017, 08:08:32
c DISPLAY там все нормально?
У меня нормально, но это потребовало добавить в ~/.icewm/startup строку echo $DISPLAY > /tmp/dsp. Хотелось бы универсальности. Например
Код
export DISPLAY=$(ls /tmp/.X11-unix | sed 's/X/:/') 
дней через 10
Так быстро ???
Название: Re: Bluez-tray
Отправлено: Pro от 26 Июнь 2017, 08:16:11
Хотелось бы универсальности. Например
export DISPLAY=$(ls /tmp/.X11-unix | sed 's/X/:/')
Что мешает?
Название: Re: Bluez-tray
Отправлено: DdShurick от 26 Июнь 2017, 08:39:32
Что мешает?
Стартовать будет рано, до WM :(
Название: Re: Bluez-tray
Отправлено: Pro от 26 Июнь 2017, 08:57:03
ожидать появления /tmp/.X11-unix в цикле? вобще как-то же xorg должен в udev отметится, там же настройки мыши и клавиатуры
Название: Re: Bluez-tray
Отправлено: DdShurick от 26 Июнь 2017, 09:34:07
ожидать появления /tmp/.X11-unix в цикле?
Я пробовал, панель не успевает запуститься.
Смотри обновления (https://github.com/DdShurick/BlueC), Bluez-tray и к нему Makefile.
Название: Re: Bluez-tray
Отправлено: Pro от 27 Июнь 2017, 08:26:18
блин не могу отдельные коммиты в pullrequest передать :(
Название: Re: Bluez-tray
Отправлено: DdShurick от 30 Июнь 2017, 20:41:10
блин не могу
Вот и у меня от bluez-4 уже крыша едет. Который день бьюсь, а звук отправить не получается. Что только не пробовал, каких инструкций не перечитал, без толку. Bluez-5 - запросто с помощью "bluealsa &" и bluetoothctl.
Название: Re: Bluez-tray
Отправлено: Pro от 01 Июль 2017, 05:17:38
Пулреквесты смотри хотя бы, а то надо оформить модулем бы для тестирования
Название: Re: Bluez-tray
Отправлено: DdShurick от 01 Июль 2017, 08:18:26
Пулреквесты смотри хотя бы
Смотрел. Ты туда добавил команды из puppybt. Как это собрать в полноценный скрипт, кроме как руками?
оформить модулем бы
Оно покомандно, из консоли, отнюдь не всё работает, а ты модуль. Например:
Код
# hciconfig hci0 up
# sdptool browse
Inquiring ...
Failed to connect to SDP server on 00:11:67:6A:05:5D: Operation now in progress
# sdptool browse
Inquiring ...
Failed to connect to SDP server on 00:11:67:6A:05:5D: No route to host
00:11:67:6A:05:5D это наушники SPARKLE.
Название: Re: Bluez-tray
Отправлено: Pro от 01 Июль 2017, 08:56:57
Я добавил команды, но они в виде функций и их можно дорабатывать. У автора оно как-то работало в таком виде.

В виде модуля и нужно, чтоб нужное было в модуле сразу.
Название: Re: Bluez-tray
Отправлено: DdShurick от 01 Июль 2017, 09:08:22
У автора оно как-то работало в таком виде.
У автора возможно, у меня нет.
Название: Re: Bluez-tray
Отправлено: Pro от 01 Июль 2017, 11:31:35
От того что щс все на bluez4 ничего страшного, просто потом содержимое функций будем менять на bluez5. Работе над gui это не мешает
Название: Re: Bluez-tray
Отправлено: Pro от 03 Июль 2017, 05:36:07
bluez_tray не хочет работать :(
1. делаю echo $DISPLAY>/tmp/dsp
2. делаю bluez_tray hci0 rfkill1

Никаких ошибок не выводится, программа просто завершает работу. Пробовал и твой готовый скомпилированный файл, и сам компилировал
Название: Re: Bluez-tray
Отправлено: DdShurick от 03 Июль 2017, 08:28:00
bluez_tray не хочет работать :(
В PRA или PR? rfkull точно 1? Иконки /usr/share/pixmaps/bluetooth*.png на месте?
Смотрю, ты уже начал английский прилаживать.
Название: Re: Bluez-tray
Отправлено: Pro от 03 Июль 2017, 09:05:14
В PRA или PR?
PRA и PR тоже щас проверил - не срабатывает.


rfkull точно 1?
да


Иконки /usr/share/pixmaps/bluetooth*.png на месте?
да
Название: Re: Bluez-tray
Отправлено: DdShurick от 03 Июль 2017, 12:12:59
не срабатывает.
В смысле, иконка висит, но ничего не срабатывает? У меня с bluez-5.45 то же самое.
Название: Re: Bluez-tray
Отправлено: DdShurick от 03 Июль 2017, 12:35:01
 Проверил на PR, работает: включает, выключает, видимость, о программе, запуск bt-connect, который нашёл телефон Alkatel.
Название: Re: Bluez-tray
Отправлено: Pro от 03 Июль 2017, 12:38:40
Нет иконок нет в трее, бинарник завершет свою работу молча и без ошибок.
Какой командой запускаешь в консоли?

А может при отсутствии зависимых программ он отключается? Например если bt-connect нет в системе?
Название: Re: Bluez-tray
Отправлено: DdShurick от 03 Июль 2017, 13:10:20
Какой командой запускаешь в консоли?
Код
# bluez_tray hci0 rfkill1 
Но предварительно проверяю
Код
# ls -d /sys/class/bluetooth/hci0/rfkill?
/sys/class/bluetooth/hci0/rfkill1
Если rfkill не угадаешь, то программа завершается с ошибкой
Код
# bluez-tray hci0 rfkill2
# echo $?
1
Тут (http://wiki.openmoko.org/wiki/Manually_using_Bluetooth) нашёл инструкцию по bluez-4, но у меня нормально работает только bluez-5 с управлением через bluetoothctl.
Название: Re: Bluez-tray
Отправлено: Pro от 03 Июль 2017, 13:14:47
Нету у меня ошибок никаких совсем. Как отловить проблему?
Може попробовать твой модель целиком?
Название: Re: Bluez-tray
Отправлено: DdShurick от 03 Июль 2017, 13:18:33
Попробуй, я в чистом PR подключал каталог mount -o remount,append:bluez-tray4-0.1/ / из git.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Июль 2017, 02:28:25
Попробуй, я в чистом PR подключал каталог mount -o remount,append:bluez-tray4-0.1/ / из git.
ну и все, приплыли. тоже не работает. Чистый PR.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Июль 2017, 02:49:20
Вот сделал парочку скриншотов.
Окно err_msg в зависимости от текста становится то, широким, то узким. Надо бы его сделать фиксированным или в виде notify сделать

В связи с тем что добавилось кнопок для управления, может быть расширить окно программы и однотипные кнопки поместить рядом, а не друг под другом? например для Serial port
Название: Re: Bluez-tray
Отправлено: DdShurick от 04 Июль 2017, 17:24:53
Вот сделал парочку скриншотов.
Значит у тебя bt-connect запустился? Через bluez-tray или консоль?
Название: Re: Bluez-tray
Отправлено: Pro от 05 Июль 2017, 02:13:58
Через bluez-tray или консоль?
через консоль конечно.
Название: Re: Bluez-tray
Отправлено: Pro от 05 Июль 2017, 04:20:36
немного потестировал, есть мнение что не срабатывает главный цикл gtk_main(); вот код существующий:
Код
    gtk_timeout_add(interval, Update, NULL);
    Update(NULL);

    gtk_main();

return 0;

Я внес изменения:

Код
    gtk_timeout_add(interval, Update, NULL);
/*    Update(NULL);*/
    printf ("%s\n", "MAIN LOOP");
    gtk_main();

return 0;
Стало печатать MAIN LOOP но все равно программа завершается без ошибок. Если раскомментировать  Update(NULL); то до выполнения printf дело не доходит, программа завершается без ошибок.

Из всего вышеизложенного, я делаю вывод что функция Update выдает недостаточно информации для того чтобы gtk_main(); начала работать как положено. И что-то в Update слишком много exit(1) встречается, или это выход из функции а не из программы целиком?
Название: Re: Bluez-tray
Отправлено: DdShurick от 05 Июль 2017, 08:10:09
Стало печатать MAIN LOOP но все равно программа завершается без ошибок.
Правильно, ты же исключил функцию Update
Код
/*    Update(NULL);*/
Включай перед каждым exit сообщение, вот так:
Код
if ((fp = fopen(statefile,"r"))==NULL) { printf ("%s\n", "no statefile"); exit(1); } 
Название: Re: Bluez-tray
Отправлено: Pro от 05 Июль 2017, 08:42:20
да выдает что нету addressfile, я так понимаю что это /sys/class/bluetooth/hci0/ и что-то я там не нахожу address
и в подкаталогах тоже нету.
Название: Re: Bluez-tray
Отправлено: DdShurick от 05 Июль 2017, 08:51:41
да выдает что нету addressfile, я так понимаю что это /sys/class/bluetooth/hci0/ и что-то я там не нахожу address
и в подкаталогах тоже нету.
Раньше ты писал, что name тоже нету. Интересно. Откуда тогда hciconfig эти данные берёт.
У меня:
Код
# udevadm info -a -p /sys/class/bluetooth/hci0
...........
 looking at device '/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/bluetooth/hci0':
    KERNEL=="hci0"
    SUBSYSTEM=="bluetooth"
    DRIVER==""
    ATTR{name}=="-0"
    ATTR{type}=="BR/EDR"
    ATTR{address}=="00:11:67:bf:03:0c"
............
Название: Re: Bluez-tray
Отправлено: Pro от 05 Июль 2017, 08:56:29
Раньше ты писал, что name тоже нету. Интересно. Откуда тогда hciconfig эти данные берёт.
понятия не имею. в /sys/class/bluetooth я их не вижу либо они размазаны по отдельным файлам

отсутствие подобной информации не должно приводить к неработоспособности программы!!!! без всяких объяснений.
Название: Re: Bluez-tray
Отправлено: DdShurick от 05 Июль 2017, 09:31:02
!!!!
Саша, не кричи пожалуйста
понятия не имею
Вот и я понятия не имею. А в bluez5 отсутствует hciconfig :(
Название: Re: Bluez-tray
Отправлено: Pro от 05 Июль 2017, 09:34:36
!!!!
КРИК ЭТО ВОТ а восклицательные знаки это вот !!!! три дня так-то уже бьюсь, неужели нет повода для волнений?
я хотел модуль для тестов сделать, точнее сделал но без нормально запускающейся программы трея он не нужен, т.к.

надо отладить запуск
А в bluez5 отсутствует hciconfig
вобще его не обязательно брать из bluez5
Название: Re: Bluez-tray
Отправлено: DdShurick от 05 Июль 2017, 18:25:26
Саша, попробуй вот такое ругательство, сработает ли у тебя
Код
dbus-send --system --dest=org.bluez --print-reply $(dbus-send --system --dest=org.bluez --print-reply / org.bluez.Manager.ListAdapters|awk -F\" '/object path/ {print $2}') org.bluez.Adapter.GetProperties
method return time=1499274977.018769 sender=:1.0 -> destination=:1.8 serial=16 reply_serial=2
   array [
      dict entry(
         string "Address"
         variant             string "00:11:67:BF:03:0C"
      )
      dict entry(
         string "Name"
         variant             string "-0"
      )
      dict entry(
         string "Class"
         variant             uint32 0
      )
      dict entry(
         string "Powered"
         variant             boolean true
      )
      dict entry(
         string "Discoverable"
         variant             boolean false
      )
      dict entry(
         string "Pairable"
         variant             boolean true
      )
      dict entry(
         string "DiscoverableTimeout"
         variant             uint32 0
      )
      dict entry(
         string "PairableTimeout"
         variant             uint32 0
      )
      dict entry(
         string "Discovering"
         variant             boolean false
      )
      dict entry(
         string "Devices"
         variant             array [
            ]
      )
      dict entry(
         string "UUIDs"
         variant             array [
               string "00001000-0000-1000-8000-00805f9b34fb"
               string "00001001-0000-1000-8000-00805f9b34fb"
               string "00001112-0000-1000-8000-00805f9b34fb"
               string "0000111f-0000-1000-8000-00805f9b34fb"
               string "0000110c-0000-1000-8000-00805f9b34fb"
               string "0000110e-0000-1000-8000-00805f9b34fb"
            ]
      )
   ]
Название: Re: Bluez-tray
Отправлено: Pro от 06 Июль 2017, 02:12:33
Саша, попробуй вот такое ругательство, сработает ли у тебя
я не понимаю что с этим делать. hciconfig работает и показывает то что нужно, к чему эти извраты с dbus


--------------------------------------------------------------

У меня нормально работает управление из командной строки bluetoothctl
примеры кода:
echo -e "help \nquit" | bluetoothctl показывает помощь и выключается
echo -e "show \nquit" | bluetoothctl показывает полную информацию о адаптере и выключается
Название: Re: Bluez-tray
Отправлено: DdShurick от 06 Июль 2017, 08:48:56
к чему эти извраты с dbus
Саша, не я это придумал. На разрабов блюза в инете уже неприличными словами ругаются. Мне польза от dbus совершенно непонятна.

Bluetoothctl: pair и connect не работают без предварительного scan. :( Разрабы просто издеваются. Придётся брать hciconfig от 4 версии.
Название: Re: Bluez-tray
Отправлено: Pro от 06 Июль 2017, 08:53:27
pair и connect не работают без предварительного scan.
echo -e "scan \n pair 22342\n connect 12:12:12:12:12:12 \nquit" | bluetoothctl
должно работать, но нет...

может так:
Код
#!/bin/bash
bluetoothctl << EOF
power on
EOF
Название: Re: Bluez-tray
Отправлено: Pro от 06 Июль 2017, 09:17:53
Разрабы просто издеваются. Придётся брать hciconfig от 4 версии.
ничего они не издеваются, все логично пока что.
hciconfig есть и в 5 версии, убрано только начиная с 5.44, в более ранних все есть. hciconfig в любом случае нужен, т.к. без запущенного bluetoothd не работает bluetoothctl, а hciconfig нормально показывает информацию об адаптере независимо от bluetoothd.

Есть мнение что вместо hciconfig надо попробовать использовать везде hcitool

Я перенес скрипт bt-connect в репозитарий PuppyBT, теперь он называется puppybt и коммиты писать в него желательно.
Название: Re: Bluez-tray
Отправлено: DdShurick от 06 Июль 2017, 13:22:15
ничего они не издеваются, все логично пока что.
Саша, а ты поглубже вникни, когда вникнешь сразу сникнешь.
надо попробовать использовать везде hcitool
Ok
перенес bt-connect в репозитарий PuppyBT
Ok
Название: Re: Bluez-tray
Отправлено: Pro от 06 Июль 2017, 14:49:27
Фиг. Hcitool все не заменяет, локальное устройство поднимает hciconfig.
Название: Re: Bluez-tray
Отправлено: DdShurick от 06 Июль 2017, 16:07:03
 Вот, немножко поковырял, но мне не очень нравится
puppybt с 3 строки:
Код
#это будет работать некорректно при 2 и более Local bluetooth devices
if [ ! "`rfkill list | grep Bluetooth`" ]; then err_msg "Local bluetooth device not found"; exit 1; fi
if [ ! "`rfkill list | grep -A 2 Bluetooth | grep Hard | grep no`" ]; then
err_msg "Local bluetooth device hard blocked"; exit 1; fi
[ "`rfkill list | grep -A 1 Bluetooth | grep Soft | grep no`" ] || /usr/bin/rfkill unblock bluetooth

if ! [ $1 ]; then
HCI_DEV=`rfkill list | awk '/Bluetooth/ {print $2}' | tr -d \:`
if [ "`hcitool dev | grep -v Devices`" = "" ]; then
if ! hciconfig $HCI_DEV up; then
err_msg "Local bluetooth device not found"; exit 1
fi
fi
HCI_ADDR=`hcitool dev | awk '!/Devices:/ {print $2}'`
HCI_RFKILL=`ls -1 /sys/class/bluetooth/$HCI_DEV | grep rfkill`
else
HCI_DEV=$1
HCI_RFKILL=$2
fi
Название: Re: Bluez-tray
Отправлено: Pro от 06 Июль 2017, 16:33:18
Rfkill показывает только то что аппаратно переключателем отключается, если блютус типа внешнего донгла, то в Rfkill его может не быть?

Например в стационарный комп вставили usb-bluetooth адаптер.
Название: Re: Bluez-tray
Отправлено: DdShurick от 06 Июль 2017, 17:12:20
Например в стационарный комп вставили usb-bluetooth адаптер.
У меня только такой и есть.
Код
# rfkill list bluetooth
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
Убрал addressfile из bluez-tray, посмотри.
Название: Re: Bluez-tray
Отправлено: Pro от 07 Июль 2017, 02:42:42
Убрал addressfile из bluez-tray, посмотри.
Ты не доверяешь своему коду? зачем переименовал под другое имя? хотя бы вручную перенес из моего файла исправления ошибок

Тесты:
1. Не прорисовывает значек в трее при запуске, видимо bluetooth_off
2. Меню правой кнопки мыши показывает только пока кнопка прижата, стоит отпустить - меню исчезает.
3. опрос ожидания запуска xorg в файле bluez.sh можно увеличить до 2-5 сек т.к. некритично.


-------------------------------------------------------

Код
sdptool browse $BDA > /tmp/${BDA}-info.lst || continue
 echo "<vbox>" >> /tmp/panel
 awk -F[\(\)] '/0x11/ {print $2}' /tmp/${BDA}-info.lst | sort -u | while read S
do
CH=$(grep -A4 $S /tmp/${BDA}-info.lst | awk '/Channel/ {print $2}')
case $S in
0x1101) echo "<frame Serial Port>
для bluez5 эту информацию надо брать из bluetoothctl подставляя адрес устройства в команду echo -e "info $BDA \nquit" |bluetoothctl

на данном этапе основной вопрос в том что надо чтобы уже был запущен bluetoothd запускать его из скрипта или bluez_tray запустит а в скрипте только проверять запущен ли bluetoothd?
Название: Re: Bluez-tray
Отправлено: DdShurick от 07 Июль 2017, 08:39:47
чтобы уже был запущен bluetoothd
У меня udev запускает bluetoothd.
в скрипте только проверять
Название: Re: Bluez-tray
Отправлено: sfs от 07 Июль 2017, 16:10:46
Возможно чем-то поможет...
В http://www.opennet.ru/opennews/art.shtml?num=46796 есть bluetooth-sendto (бинарник, про исходники мне не известно)
Сам не проверял (не на чем) и глубоко не ковырял
Название: Re: Bluez-tray
Отправлено: Pro от 07 Июль 2017, 16:25:53
Возможно чем-то поможет...
В http://www.opennet.ru/opennews/art.shtml?num=46796 есть bluetooth-sendto (бинарник, про исходники мне не известно)
Сам не проверял (не на чем) и глубоко не ковырял
Т.к гномовская вещь, может тянут много по зависимостям. Ussp-push нормально отправлял.
Название: Re: Bluez-tray
Отправлено: DdShurick от 07 Июль 2017, 16:26:58
bluetooth-sendto
Это отсюда (https://github.com/GNOME/gnome-bluetooth).
Название: Re: Bluez-tray
Отправлено: Pro от 07 Июль 2017, 16:30:31
GConf, dbus-glib, libhal - досвиданья.
Ребята помогайте лучше с кодом
Название: Re: Bluez-tray
Отправлено: DdShurick от 07 Июль 2017, 16:40:10
GConf, dbus-glib, libhal
Саша, гораздо больше. Я пытался собрать.
Название: Re: Bluez-tray
Отправлено: Pro от 10 Июль 2017, 02:06:15
Цитата: Ddshurick
У меня udev запускает bluetoothd.
bluez.sh который на git bluez5 не запускает, строка закоментирована.
Название: Re: Bluez-tray
Отправлено: Pro от 10 Июль 2017, 04:37:40
НАШЕЛ /sys/kernel/debug/bluetooth/hci0
видимо отсюда hciconfig берет информацию об адаптере
Название: Re: Bluez-tray
Отправлено: Pro от 10 Июль 2017, 09:29:17
НАШЕЛ /sys/kernel/debug/bluetooth/hci0
видимо отсюда hciconfig берет информацию об адаптере

----------------------------

Для копания в D-bus обязательно надо что-то типа d-feet, собрать самый свежий у меня не получилось, но сделал модуль для gtk-2 и Python2. запускать из /opt/d-feet/d-feet --local-dirs
Требует модуль Python-2.7.x
модуль позже выложу, сюда по размеру не проходит
Название: Re: Bluez-tray
Отправлено: Pro от 10 Июль 2017, 10:00:11
Рабочий запрос в dbus:
Код
dbus-send --system --print-reply --dest=org.bluez /org/bluez/hci0 org.freedesktop.DBus.Properties.Get string:org.bluez.Adapter1 string:Address 
выдаст адрес адаптера

Что-то похожее на твой пример с dbus, у меня выдает команда
Код
dbus-send --system --print-reply --dest=org.bluez / org.freedesktop.DBus.ObjectManager.GetManagedObjects
Название: Re: Bluez-tray
Отправлено: DdShurick от 10 Июль 2017, 12:17:39
НАШЕЛ /sys/kernel/debug/bluetooth/hci0
У меня /sys/kernel/debug/ пустой :(
Обнаружил после компиляции в bluez-5.45/tools несколько неустановившихся бинарников, в том числе bdaddr
Код
# ./bdaddr 
Manufacturer:   Integrated System Solution Corp. (57)
Device address: 00:11:67:BF:03:0C
но работает только при поднятом интерфейсе, так же как и hcitool в bluez4.
Читаю исходники, может наведут на какую-нибудь мысль.
Название: Re: Bluez-tray
Отправлено: Pro от 10 Июль 2017, 13:44:54
Если ориентируешься на bluez5,  то придётся осваивать dbus. Примеры я привёл, через них можно уже считывать и устанавлвать параметры

На очереди отлавливание изменения состояния и  перехват сообщений об ошибках.
Название: Re: Bluez-tray
Отправлено: DdShurick от 10 Июль 2017, 16:11:39
Если ориентируешься на bluez5,  то придётся осваивать dbus.
Как будто в bluez4 его нет.
Вот простейший "открыватель hci сокета"
Код
#include <stdlib.h>
#include <sys/ioctl.h>
/*Эти добавить из bluez-5.45/lib/ */
#include "bluetooth.h"
#include "hci.h"

static struct hci_dev_info di;

int main(void) {
int ctl;

/* Open HCI socket  */
if ((ctl = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI)) < 0) {
perror("Can't open HCI socket.");
exit(1);
}

if (ioctl(ctl, HCIGETDEVINFO, (void *) &di)) {
perror("Can't get device info");
exit(1);
}

printf("%s\t%x\n", di.name, di.bdaddr);
close(ctl);
return 0;
}
Правда bdaddr выдаёт не полностью, почему-то без первых четырёх цифр. Зато работает независимо от bluetoothd, hciconfig hci0 up и dbus-daemon.
Название: Re: Bluez-tray
Отправлено: Pro от 10 Июль 2017, 16:37:48
Он есть давно, но ранее утилитами можно было контролировать,  сейчас видимо нет. У меня bluetoothctl глючит если hci0 дергать через hcitool hciconfig, закономерность не выявил пока. Лечу перезагрузками.

Я не могу тебя понять, Толи ты на bluez5 нацелился, толи хрен знает что.
Название: Re: Bluez-tray
Отправлено: DdShurick от 10 Июль 2017, 16:45:57
хрен знает что.
Это потому что каша в голове.
ты на bluez5 нацелился
Bluez5 у меня работает, Bluez4 - нет.
Название: Re: Bluez-tray
Отправлено: Pro от 10 Июль 2017, 16:49:10
Какая каша, утилиту трея на dbus переведи, пока действий мало. Примеры в инете есть, d-feet покажет параметры доступные.
Название: Re: Bluez-tray
Отправлено: Pro от 11 Июль 2017, 05:00:56
Зато работает независимо от bluetoothd, hciconfig hci0 up и dbus-daemon.
а шо толку, без bluetoothd ты все равно ничего нормального не сделаешь, так что чем раньше он будет запущен - тем лучше.

Включение адаптера через dbus
Код
dbus-send --system --print-reply --dest=org.bluez /org/bluez/hci0 org.freedesktop.DBus.Properties.Set string:org.bluez.Adapter1 string:Powered variant:boolean:true
--print-reply может ненужен если код завершения анализировать.
Название: Re: Bluez-tray
Отправлено: DdShurick от 11 Июль 2017, 09:14:15
Цитата из hciconfig.c bluez-5.45 строки 475 - 495
Код
static void cmd_up(int ctl, int hdev, char *opt)
{
/* Start HCI device */
if (ioctl(ctl, HCIDEVUP, hdev) < 0) {
if (errno == EALREADY)
return;
fprintf(stderr, "Can't init device hci%d: %s (%d)\n",
hdev, strerror(errno), errno);
exit(1);
}
}

static void cmd_down(int ctl, int hdev, char *opt)
{
/* Stop HCI device */
if (ioctl(ctl, HCIDEVDOWN, hdev) < 0) {
fprintf(stderr, "Can't down device hci%d: %s (%d)\n",
hdev, strerror(errno), errno);
exit(1);
}
}
Всё через ioctl, никакого dbus. И вообще непонятно, зачем он нужен? Очередное "пятое колесо"? Объясни пожалуйста.
чем раньше он будет запущен - тем лучше.
Раньше, чем через udev только через init.d при старте.
Название: Re: Bluez-tray
Отправлено: Pro от 11 Июль 2017, 09:29:04
Раньше, чем через udev только через init.d при старте.
udev вполне достаточно.

Всё через ioctl, никакого dbus. И вообще непонятно, зачем он нужен?
я не знаю. Народ все еще не разобрался как им жить без rfcomm.
еще есть утилита btmgmt - идет как замена hciconfig.

Предлагаю разделить функционал, bluez-tray пусть занимается работой с контроллером (в терминологии bluez это твой адаптер) а puppybt подключенные устройства пусть обрабатывает.
Название: Re: Bluez-tray
Отправлено: DdShurick от 11 Июль 2017, 18:19:14
утилита btmgmt
Надо посмотреть подробнее, но на первый взгляд вещь хорошая. У тебя она есть? А то могу поделиться.
Предлагаю разделить функционал
Я с самого начала так и задумывал.
Название: Re: Bluez-tray
Отправлено: Pro от 12 Июль 2017, 02:18:40
У тебя она есть? А то могу поделиться.
у меня есть.
Название: Re: Bluez-tray
Отправлено: DdShurick от 15 Июль 2017, 21:02:52
 Саша, посмотри этот бинарник. Это заготовка для infomsg в bluez-tray. У меня даёт такой выхлоп:
Код
# ./hci_info  
Device hci0:
00:11:67:BF:03:0C
UP RUNNING
не зависимо от версии bluez, 4 или 5.
Имеет зависимость libbluetooth.so.3
Название: Re: Bluez-tray
Отправлено: DdShurick от 16 Июль 2017, 09:17:47
 Встроил infomsg, up и down. Добавил в меню pscan, iscan, piscan, noscan.
Название: Re: Bluez-tray
Отправлено: Pro от 16 Июль 2017, 11:47:01
В понедельник проверю
Название: Re: Bluez-tray
Отправлено: DdShurick от 16 Июль 2017, 13:25:18
 По клику запускает bluetoothctl
Код
system("urxvt -e /usr/bin/bluetoothctl");

 Добавил выбор
Код
if ((system("urxvt -e /usr/bin/bluetoothctl &")) == 0) system("/usr/bin/puppybt &");
Название: Re: Bluez-tray
Отправлено: Pro от 17 Июль 2017, 02:31:34
Встроил infomsg, up и down. Добавил в меню pscan, iscan, piscan, noscan.
Почему у меня меню ПКМ не фиксируется на экране? пункт выбрать можно только пока кнопка мыши зажата.
Подсказку всплывающую по наведению мыши надо сделать более многословной, неплохо бы еще имя контроллера выводить:
Контроллер:
Имя контроллера:
Адрес:
Состояние:
---------------------------

И убери уже запятую в номере версии, бесит аж.

---------------------------
 ты либо бинарники удаляй из сообщений, либо пиши который брать :(
bluez-tray который тут выложен при щелчке ЛКМ выдал /usr/bin/rxvt: Нет такого файла или каталога
при попытке завершить программу в терминале по ctrl+c завершился bluetoothd (это ожидаемо) но еще произошел запуск puppybt (а вот это уже неожиданность)
Название: Re: Bluez-tray
Отправлено: DdShurick от 17 Июль 2017, 08:48:57
Почему у меня меню ПКМ не фиксируется на экране?
Вот этого я знать не могу, ибо твоё железо тайна великая есть.
И убери уже запятую в номере версии, бесит аж.
О! А я и не вижу. Убрал.
/usr/bin/rxvt: Нет такого файла или каталога
И куда ты его спрятал? Bluetoothctl можно запустить только в консоли. Может совсем убрать его вызов?
либо пиши который брать
Бери с гита.
Название: Re: Bluez-tray
Отправлено: Pro от 17 Июль 2017, 09:00:09
Вот этого я знать не могу, ибо твоё железо тайна великая есть.
ноутбук Asus k55vj,  панель lxpanel 0.6.2

И куда ты его спрятал?
честное слово, он в /usr/local/bin вызов его пока оставь, puppybt у меня еще только умеет анимацию крутить без декораций :))
Название: Re: Bluez-tray
Отправлено: DdShurick от 17 Июль 2017, 09:38:24
lxpanel 0.6.2
Скорее всего это. У меня традицонный IceWM.
вызов его пока оставь
Уже убрал :( . Bluetoothctl по моему для тех, кто дружит с консолью.
Название: Re: Bluez-tray
Отправлено: Pro от 17 Июль 2017, 10:36:20
Скорее всего это. У меня традицонный IceWM.
надо лечить.

Если строку gtk_status_icon_set_visible(tray_icon, TRUE); поднять на пару строк выше, может вылечит проблему с отображением значка при запуске? а то получается что у тебя ожидание нажатия кнопок мыши раньше чем разрешается показ значка....

Название: Re: Bluez-tray
Отправлено: DdShurick от 17 Июль 2017, 12:36:05
надо лечить.
Сделал.
Название: Re: Bluez-tray
Отправлено: DdShurick от 17 Июль 2017, 13:01:40
 Подключал lxpanel 7 и 8. Bluez-tray вообще не отображается.
Название: Re: Bluez-tray
Отправлено: Pro от 18 Июль 2017, 09:23:31
у меня после нескольких щелчков ПКМ по значку в трее программа вобще выгружается, там есть меню Выход? может просто по нему попадаю....

еще у меня видимо подвисает контроллер т.к. после одного удачного включения-выключения начинает выдавать Can't init device hci0: Время ожидания соединения истекло.

в dmesg пишет: hci0 command tx timeout

---------
в целом пока без улучшений, надо налаживать видимость значка и показ меню.
Название: Re: Bluez-tray
Отправлено: DdShurick от 18 Июль 2017, 12:46:35
там есть меню Выход?
Нет.
надо налаживать
Знать бы как?
Название: Re: Bluez-tray
Отправлено: Pro от 19 Июль 2017, 07:40:03
починил показ меню ПКМ, отправил реквест на гитхабе
Название: Re: Bluez-tray
Отправлено: DdShurick от 19 Июль 2017, 08:50:32
Во всех нормальных системах /usr/sbin/rfkill. Подделываться под PRA не имею ни малейшего желания.
За исправление опечаток спасибо, "activate_time" проверил, работает.
Название: Re: Bluez-tray
Отправлено: Pro от 19 Июль 2017, 08:57:44
Подделываться под PRA не имею ни малейшего желания.
ненадо подделываться, при компиляции бинарники можно размещать где угодно например в /usr/bin

в конечном итоге это будет модуль и этот самый rfkill будет в этом модуле.

Во всех нормальных системах /usr/sbin/rfkill
а в нормальных программах хорошим тоном считается автоопределение наличия  нужного бинарника и где он лежит, если местоположение важно.
Название: Re: Bluez-tray
Отправлено: DdShurick от 19 Июль 2017, 09:38:02
в нормальных программах
Для этого нужен нормальный программист, а я всего лишь быдлокодер.
этот самый rfkill будет в этом модуле.
Вообще-то rfkill должен быть в базе, ибо он блокирует не только bluetooth, а  wifi wlan bluetooth uwb ultrawideband wimax wwan gps fm nfc
Название: Re: Bluez-tray
Отправлено: Pro от 19 Июль 2017, 09:40:33
Для этого нужен нормальный программист, а я всего лишь быдлокодер.
пишешь, значит учишься. Пиши правильно, не ходи по скользкой дороге одного из здешних форумчан из трех букв.


Цитата
Вообще-то rfkill должен быть в базе
тем более надо делать автообнаружение для внешних программ, и применительно к rfkill - его отсутствие не особо должно влиять на работу программы ,  если блютус разблокирован!!!
Название: Re: Bluez-tray
Отправлено: Pro от 19 Июль 2017, 10:50:21
Теперь предлагаю выяснить что такое piscan, iscan и pscan

могу прикрутить локализацию и перевести на английский - надо?

-------------------
Нельзя ли после щелчка по меню (например включение адаптера) делать паузу и не реагировать на другие щелчки мышью. Возможно если несколько раз подряд отправить команды - адаптер зависает. Хотя может быть щас с нормальной работой меню это будет неактуально конечно...
Название: Re: Bluez-tray
Отправлено: DdShurick от 19 Июль 2017, 10:59:45
надо делать автообнаружение для внешних программ
Давно есть - $PATH, но при запуске от udev он другой, поэтому приходится писать полный путь. Кроме того, в PRA есть ссылка /usr/sbin -> /usr/bin, так что обязано работать. Можно конечно взять часть кода из pfkill.c, но зачем дублировать?
не ходи по скользкой дороге одного из здешних форумчан
В противоположную иду вроде-бы.
из трех букв
:D
Название: Re: Bluez-tray
Отправлено: Pro от 19 Июль 2017, 11:02:46
Давно есть - $PATH, но при запуске от udev он другой
буду помнить
Название: Re: Bluez-tray
Отправлено: Pro от 20 Июль 2017, 04:58:17
Код
unsigned int interval = 1000; /*update interval in milliseconds*/
может 3000-4000 выставить не так уж часто состояние меняется.
Название: Re: Bluez-tray
Отправлено: Pro от 21 Июль 2017, 03:51:21
чтобы работал sdptool надо запускать bluetoothd c параметром -С

-------------------
Выложил модуль для тестирования, только необходимые программы, puppybt пока умеет только показывать доступные сервисы на устройствах, кнопки желательно не нажимать :))
https://github.com/Pro-pra/PuppyBT/blob/master/puppybt-5.0-bluez5.45-pr01.pfs

------------------

Пора разбираться с парингом устройств, может сделать вкладку Pair и там для каждого устройства рисовать значек состояния и кнопку Pair\Unpair ? на вкладке устройства места под такую кнопку не особо много. Либо на вкладке устройства если нет паринга, то рисовать кнопку а если есть, то ничего не рисовать....

------------------

Название: Re: Bluez-tray
Отправлено: DdShurick от 21 Июль 2017, 08:33:51
Пора разбираться с парингом устройств
Пора, но у меня паринг получается только с bluetoothctl :(
Название: Re: Bluez-tray
Отправлено: Pro от 21 Июль 2017, 09:06:51
и это правильно.
пока мне нужно решение насчет кнопок или вкладки для паринга.

Вскрытие показало, что один фиг надо запускать сканирование чтобы устройство добавились в dbus, поэтому sdptool надо будет заменить на парсинг dbus.
Название: Re: Bluez-tray
Отправлено: DdShurick от 21 Июль 2017, 10:44:30
надо запускать сканирование чтобы устройство добавились в dbus
Это я уже заметил. Мне кажется, что dbus больше мешает, чем помогает. Зачем его придумали :( ?
Название: Re: Bluez-tray
Отправлено: Pro от 21 Июль 2017, 10:50:33
Зачем его придумали :( ?
мне кажется что они пришельцы с Марса.

надо запускать сканирование чтобы устройство добавились в dbus
что-то нестабильно срабатывает,запускаю сканирование, один раз сработало, потом остановил и больше не запускается уже. Телефон свой вижу в dbus, удалить не могу, точнее удаление вроде проходит, но в дереве устройств я его все равно вижу - может d-feet косячит конечно, повторное удаление пишет что нечего удалять.
Название: Re: Bluez-tray
Отправлено: DdShurick от 21 Июль 2017, 11:11:23
мне кажется что они пришельцы с Марса.
Похоже.
Попробовал запустить puppybt
Код
# puppybt
Unable to start discovery. status 0x0c (Not Supported)
виноват btmgmt
Код
# btmgmt find
Unable to start discovery. status 0x0c (Not Supported)
Название: Re: Bluez-tray
Отправлено: DdShurick от 22 Июль 2017, 11:45:50
 Саша, у меня предложение, сделать запуск программы по клику из /usr/local/bin/defaultbtmanager.
 Bluez-tray, похоже, получился как графическая замена hciconfig. Пожалуй стоит вернуть вырезанную интернационализацию?
 Не получается избавиться от зависимость libbluetooth.so.3. Нужную функцию ba2str я нашёл в lib
Код
int ba2str(const bdaddr_t *ba, char *str) {
return sprintf(str, "%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X",
ba->b[5], ba->b[4], ba->b[3], ba->b[2], ba->b[1], ba->b[0]);
}
а вот с hci_dflagstostr ничего не получается.
Между делом собрал bluez-5.46, с libbluetooth, но он принципиальным ничем не отличается.
Название: Re: Bluez-tray
Отправлено: Pro от 22 Июль 2017, 14:02:34
Да локализацию вернуть и перевод строк на английском по умолчанию.

Btmngr надо бы протестировать тебе, почему он не срабатывает, должен ведь.

В чем суть запускаться как defaultbtmanager?
Название: Re: Bluez-tray
Отправлено: DdShurick от 22 Июль 2017, 14:18:03
В чем суть запускаться как defaultbtmanager?
Можно вписать любой BT-manager без перекомпиляции. Так, например, запускается defaultbrowser и другие. Так, по моему, удобнее.
От зависимости libbluetooth.so.3 избавился.
локализацию вернуть
Попробую.
Название: Re: Bluez-tray
Отправлено: Pro от 22 Июль 2017, 14:25:36
Хорошо, но при отсутствии defaultbtmanager пытаться запустить puppybt. Ибо.
Название: Re: Bluez-tray
Отправлено: DdShurick от 22 Июль 2017, 15:41:45
 Собрал hcitool 5.46.
Код
hcitool - HCI Tool ver 5.46
Usage:
hcitool [options] <command> [command parameters]
Options:
--help Display help
-i dev HCI device
Commands:
dev Display local devices
inq Inquire remote devices
scan Scan for remote devices
name Get name from remote device
info Get information from remote device
spinq Start periodic inquiry
epinq Exit periodic inquiry
cmd Submit arbitrary HCI commands
con Display active connections
cc  Create connection to remote device
dc  Disconnect from remote device
sr  Switch master/slave role
cpt Change connection packet type
rssi Display connection RSSI
lq  Display link quality
tpl Display transmit power level
afh Display AFH channel map
lp  Set/display link policy settings
lst Set/display link supervision timeout
auth Request authentication
enc Set connection encryption
key Change connection link key
clkoff Read clock offset
clock Read local or remote clock
lescan Start LE scan
leinfo Get LE remote information
lewladd Add device to LE White List
lewlrm Remove device from LE White List
lewlsz Read size of LE White List
lewlclr Clear LE White List
lerladd Add device to LE Resolving List
lerlrm Remove device from LE Resolving List
lerlclr Clear LE Resolving List
lerlsz Read size of LE Resolving List
lerlon Enable LE Address Resolution
lerloff Disable LE Address Resolution
lecc Create a LE Connection
ledc Disconnect a LE Connection
lecup LE Connection Update

For more information on the usage of each command use:
hcitool <command> --help
Название: Re: Bluez-tray
Отправлено: Pro от 22 Июль 2017, 15:59:51
Не вижу в нем смысла,  т.к. Придётся все равно регистрировать устройства в dbus, а оттуда уже вытащить можно любые данные.
Название: Re: Bluez-tray
Отправлено: DdShurick от 22 Июль 2017, 16:42:38
Придётся
Посмотрим.
при отсутствии defaultbtmanager пытаться запустить puppybt
Сделал.
Название: Re: Bluez-tray
Отправлено: DdShurick от 22 Июль 2017, 17:33:20
Не вижу в нем смысла
Не нравится hcitool, смотри scan (https://github.com/DdShurick/BlueC/blob/master/scan).
Название: Re: Bluez-tray
Отправлено: Pro от 23 Июль 2017, 09:38:01
В понедельник гляну.

По btmgmt проверь код завершения при невозможности поиска, надо хоть сообщение сделать что ошибка есть и поиск не делался
Название: Re: Bluez-tray
Отправлено: DdShurick от 23 Июль 2017, 11:02:17
 Восстановил gettext.
Название: Re: Bluez-tray
Отправлено: Pro от 25 Июль 2017, 03:34:20
смотри scan.
работает. желательно переименовать в bt-scan чтоли или hci-scan, еще бы регистрировала найденное в dbus - вобще бы хорошо было.
Название: Re: Bluez-tray
Отправлено: DdShurick от 25 Июль 2017, 07:01:06
переименовать в bt-scan
Не проблема.
еще бы регистрировала найденное в dbus
Если не удастся его обойти, придётся :(
Название: Re: Bluez-tray
Отправлено: Pro от 25 Июль 2017, 07:10:23
Если не удастся его обойти, придётся :(
это зависит от реализации передачи звука по большей части. У меня команда включения сканирования StartDiscovery не срабатывает при вызове из dbus-send, хотя везде пишут что через нее запускается поиск устройств. А еще bluetoothctl вроде паринг устройств нормально делает, а если устройства нет в dbus, то паринг придется по другому делать

в bluez.sh если из него запускаешь bluetoothd , то подставь параметр -С для работы sdptool
Название: Re: Bluez-tray
Отправлено: Pro от 25 Июль 2017, 09:12:30
гребаный dbus.

Запускать сканирование научился, но блин остановить не могу !!! точнее оно вроде бы останавливается, но статус параметра который показывает ведется ли сканирование не меняется... хрень какая-то
Название: Re: Bluez-tray
Отправлено: Pro от 26 Июль 2017, 03:23:27
Ddshurick , у меня bluez-tray после включения компа через некоторое время выгружается (запускается из udev).
gtk_main();
close(ctl);
вот это вот close(ctl); что делает?
Название: Re: Bluez-tray
Отправлено: DdShurick от 26 Июль 2017, 07:26:40
вот это вот close(ctl); что делает?
Закрывает сокет.
Код
/* Open HCI socket  */
if ((ctl = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI)) < 0) {
perror("Can't open HCI socket.");
exit(1);
}
............
close(ctl);
    return 0;
}
Название: Re: Bluez-tray
Отправлено: Pro от 26 Июль 2017, 10:09:55
зачем ты сокет открываешь?

что может в main цикле вызывать завершение работы программы? ошибок при завершении не выпадает, значит штатно выключается.

------------------------------------
По поводу остановки сканирования отписал в рассылку разработчиков bluez.
Название: Re: Bluez-tray
Отправлено: DdShurick от 26 Июль 2017, 11:59:42
зачем ты сокет открываешь?
А как получить информацию? Через dbus? Ну его нафиг.
ошибок при завершении не выпадает
От udev может не писать в консоль. Сделаю bluez-tray.log.
Название: Re: Bluez-tray
Отправлено: Pro от 26 Июль 2017, 14:16:29
Не стоит, я из консоли потом перезапускаю и если выгружается, то не сыпет ошибок
Название: Re: Bluez-tray
Отправлено: DdShurick от 26 Июль 2017, 17:39:00
не сыпет ошибок
Саша, посмотри сейчас.
Название: Re: Bluez-tray
Отправлено: DdShurick от 28 Июль 2017, 08:22:41
 Удалось собрать sdptool v5.46. Но от этого моя ненависть к программистам из "башни из слоновой кости" только усилилась. Рифмоплёты хреновы.
Название: Re: Bluez-tray
Отправлено: Pro от 28 Июль 2017, 08:50:08
ответ от разработчиков bluez получен. говорят что все гуд и сканирование завершается
Название: Re: Bluez-tray
Отправлено: DdShurick от 28 Июль 2017, 09:20:43
говорят что все гуд и сканирование завершается
Это у них, а у тебя?
Название: Re: Bluez-tray
Отправлено: Pro от 28 Июль 2017, 09:21:30
и у меня видимо тоже
Название: Re: Bluez-tray
Отправлено: Pro от 01 Август 2017, 04:48:38
Удалось собрать sdptool v5.46.
ты его обрезал чтоли? бинарник мелкий стал :)

Что делать со сканированием? Если сканирование делать через dbus, то sdptool не нужен будет, интерфейсы можно из dbus получить

-------------------
Я разобрался кстати почему при загрузке bluez-tray выгружался. Все изначально нормально, просто у меня так...
Название: Re: Bluez-tray
Отправлено: DdShurick от 01 Август 2017, 07:47:04
ты его обрезал чтоли?
Чуть-чуть.
Код
3946://		case XML_VIEW:
3948:// convert_sdp_record_to_xml(rec, 0, doprintf);
3949:// break;
................
4186:// case XML_VIEW:
4188:// convert_sdp_record_to_xml(rec, 0, doprintf);
4189:// break;
интерфейсы можно из dbus получить
Можно, но мне не нравится. Через dbus командовать может любой пользователь, а это небезопасно. Без dbus не нужне и bluetoothd.
Название: Re: Bluez-tray
Отправлено: Pro от 01 Август 2017, 07:53:28
Без dbus не нужне и bluetoothd.
а как ты паринг сделаешь? давай обсудим метод решения иначе не годится.
Название: Re: Bluez-tray
Отправлено: Pro от 01 Август 2017, 08:40:11
Через dbus командовать может любой пользователь, а это небезопасно.
очень неожиданный аргумент, не приводи его больше.
Название: Re: Bluez-tray
Отправлено: DdShurick от 01 Август 2017, 11:01:36
не приводи его больше.
Саша, тебе нравятся "дырки" в системе? Кроме того, вместо прямой команды используется хитрая окружная схема: поданная на бинарник команда через gdbus передаётся даймону dbus-daemon, который по своей шине предаёт даймону bluetoothd, который транслирует команду на выполнение. Тебе нравится такая чехарда?
Pair есть в исходниках btmgmt и там ни разу не упоминается dbus.
Название: Re: Bluez-tray
Отправлено: Pro от 01 Август 2017, 12:14:16
У меня btmgmt не смог связать устройства.
Я ещё раз говорю - аргумент про безопасность неприменим. И никакая это не дыра в системе.

Я не против и не за dbus. Но надо код писать а на что ориентироваться непонятно.
Название: Re: Bluez-tray
Отправлено: DdShurick от 01 Август 2017, 17:11:57
Но надо код писать а на что ориентироваться непонятно.
Вот именно. Запутали всё, сволочи.
Название: Re: Bluez-tray
Отправлено: DdShurick от 02 Август 2017, 13:12:45
 Саша, надо пробовать с командами через dbus-send, так проще получится. Второй вариант - переделать bluetoothctl под нормальную работу убрав интерактивность, но это как получится, сильно "закодировали" сволочи. Третий - управление через сокет, но тут инфы не хватает.
Название: Re: Bluez-tray
Отправлено: Pro от 02 Август 2017, 15:14:38
А сделал начальную поддержку в puppybt, но мне требуется заполнить ещё вкладку Pair, кажется я её не в тот цикл засунул, надо отдельным.
Название: Re: Bluez-tray
Отправлено: DdShurick от 02 Август 2017, 20:47:26
 Это из закомментированного цикла (запускал в консоли)
Код
# N=0                                                                                                                    
# cat /tmp/btscan.lst | grep -o '..:..:..:..:..:..' | while read BDA
  do
   N=$[N+1]; dbus-send --system --print-reply --type=method_call --dest=org.bluez /org/bluez/hci0/dev_`echo $BDA|sed 's/:/_/g'` org.freedesktop.DBus.Properties.Get string:org.bluez.Device$N string:Paired
  done
method return time=1501702506.436909 sender=:1.1 -> destination=:1.20 serial=166 reply_serial=2
   variant       boolean false
bt-scan теперь самостоятельно пишет выхлоп в /tmp/btscan.lst
Название: Re: Bluez-tray
Отправлено: Pro от 03 Август 2017, 04:25:36
    bluez_tray.po надо поправить на bluez-tray.po, раз уж везде тире, то не стоит подчеркиваниями разбавлять.

в bluez-tray.c проверь вот это strcat(cmd,"/usr/bin/bt-connect ");
Название: Re: Bluez-tray
Отправлено: Pro от 03 Август 2017, 05:48:15
method return time=1501702506.436909 sender=:1.1 -> destination=:1.20 serial=166 reply_serial=2
   variant       boolean false
мне это надо бы в переменную загнать со значением false или true, я пока в скрипте вписал grep -o, но оно не работает что-то
Название: Re: Bluez-tray
Отправлено: DdShurick от 03 Август 2017, 08:50:15
в bluez-tray.c проверь вот это strcat(cmd,"/usr/bin/bt-connect ");
Вот тут надо решить, как запускать puppybt, с аргументом hci? или без? Сейчас эта строка не работает, потому-что в действии по клику указана прямая команда system("/usr/bin/puppybt &");
но оно не работает что-то
У меня тоже перестало почему-то :(
Название: Re: Bluez-tray
Отправлено: Pro от 03 Август 2017, 09:53:08
как запускать puppybt, с аргументом hci? или без?
я думаю из bluez-tray можно с параметрами запустить, чтоб надежнее, а в самом скрипте оставить определение HCI_DEV на случай если запускать просто из терминала.

У меня тоже перестало почему-то :(
там сложная строка с кодом sed внутри, наверное из-за этого, надо как-то разбивать на более  простые строки.
Название: Re: Bluez-tray
Отправлено: DdShurick от 03 Август 2017, 12:33:20
я думаю из bluez-tray можно с параметрами запустить
Я тоже так думаю.
У меня тоже перестало почему-то :(
там сложная строка с кодом sed внутри
Разобрался, sed ни при чём, надо было вначале включить inquiry. В конце строки " | egrep -o 'false|true' ", и можно писать в переменную.
Название: Re: Bluez-tray
Отправлено: Pro от 03 Август 2017, 13:20:48
Grep -e не поддерживается? Скобки квадратные я конечно от балды писал, каюсь.
Название: Re: Bluez-tray
Отправлено: DdShurick от 03 Август 2017, 15:44:25
Grep -e не поддерживается?
grep -e и egrep практически одно и то же.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Август 2017, 07:53:11
bluez-tray при переводе ПК в ждущий режим вешает систему при пробуждении, вроде бы в терминале видел что не может найти statefile
Название: Re: Bluez-tray
Отправлено: DdShurick от 04 Август 2017, 08:35:04
вешает систему при пробуждении
У меня нет.
Код
# systemd-sleep suspend
Suspending system...
System resumed.
#
Экспериментировал с StartDiscovery/StopDiscovery через dbus-send. Start срабатывает, Stop нет. Через bluetoothctl scan on/off работает, но если вначале запустить через dbus-send, то отключать не хочет.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Август 2017, 09:13:57
Stop нет. Через bluetoothctl scan on/off работает, но если вначале запустить через dbus-send, то отключать не хочет.
все верно . разработчики сказали что это нормально, фича, и на самом деле все завершается.

suspend дело такое, темное, продолжаю наблюдение.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Август 2017, 09:48:02
    вешает систему при пробуждении

У меня нет.
вешает. возможно зависит от способа подключения адаптера.
есть у тебя /usr/lib/pm-utils/sleep.d/bluetooth или что-то подобное?
Название: Re: Bluez-tray
Отправлено: DdShurick от 04 Август 2017, 12:22:57
есть у тебя /usr/lib/pm-utils/sleep.d/bluetooth или что-то подобное?
Такого нет.
разработчики сказали что это нормально, фича, и на самом деле все завершается.
Мне кажется врут, продолжает работать в режиме "то потухнет, то погаснет", я имею в виду inquiry.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Август 2017, 14:26:42
Может его переводить в режим невидимости и он  успокоится?
Название: Re: Bluez-tray
Отправлено: DdShurick от 04 Август 2017, 15:57:10
он  успокоится?
Не успокаивается. Только отключение.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Август 2017, 16:11:33
Пичаль, опять костылить что-то придется
Название: Re: Bluez-tray
Отправлено: DdShurick от 04 Август 2017, 16:51:24
Может здесь (https://people.csail.mit.edu/albert/bluez-intro/) что умное найду?
Название: Re: Bluez-tray
Отправлено: Pro от 04 Август 2017, 17:04:09
Возможно, но учти что устарело, я вот про rfcomm думаю, как без него теперь
Название: Re: Bluez-tray
Отправлено: DdShurick от 04 Август 2017, 17:56:47
но учти что устарело
Новое == давно забытое старое :)
я вот про rfcomm думаю, как без него теперь
Никуда не делся, просто спрятали
Код
# find . -name rfcomm*
./monitor/.deps/rfcomm.Po
./monitor/rfcomm.o
./monitor/rfcomm.h
./monitor/rfcomm.c
./tools/rfcomm.1
./tools/parser/.deps/rfcomm.Po
./tools/parser/rfcomm.h
./tools/parser/rfcomm.c
./tools/.deps/rfcomm-tester.Po
./tools/.deps/rfcomm.Po
./tools/rfcomm-tester.c
./tools/rfcomm.c
./lib/bluetooth/rfcomm.h
./lib/rfcomm.h
Название: Re: Bluez-tray
Отправлено: DdShurick от 04 Август 2017, 19:32:21
 По "старому завету" собрал simplescan (https://github.com/DdShurick/BlueC/blob/master/simplescan), Саша, сравни пожалуйста с bt-scan, что лучше работает?

 Выяснил, что inquiry само включается на время работы bt-scan и simplescan.
Название: Re: Bluez-tray
Отправлено: Pro от 07 Август 2017, 04:44:12
Саша, сравни пожалуйста с bt-scan, что лучше работает?
одинаково ищут.

Цитата
Никуда не делся, просто спрятали
однажды он исчезнет или уберут протокол, там внутри не видно, rfcomm через bluetoothd напрямую работает или дергает что то еще?
Название: Re: Bluez-tray
Отправлено: Pro от 07 Август 2017, 05:03:02
Разобрался, sed ни при чём, надо было вначале включить inquiry. В конце строки " | egrep -o 'false|true' ", и можно писать в переменную.
не могу DEV_PAIR в скрипте правильно получить :(
Название: Re: Bluez-tray
Отправлено: DdShurick от 07 Август 2017, 09:16:58
не могу DEV_PAIR в скрипте правильно получить :(
А что выдаёт? Я заменил Device$N на постоянный Device1, тогда стало выдавать все устройства.
Вызов rfcomm есть в bluetoothd
Код
# grep rfcomm src/bluetoothd
rfcomm_set_master: %s (%d)
rfcomm_bind: %s (%d)
rfcomm.h
rfcomm_set_master
rfcomm_connect
rfcomm_bind
rfcomm_get_info
rfcomm_get_lm
rfcomm_set_lm
rfcomm_conninfo
rfcomm_get
rfcomm_set
rfcomm
rfcomm_get_info
rfcomm_set
сам rfcomm в трёх частях
Код
# find . -name rfcomm.c
./monitor/rfcomm.c
./tools/parser/rfcomm.c
./tools/rfcomm.c
и ничего не понятно :(
Название: Re: Bluez-tray
Отправлено: Pro от 07 Август 2017, 10:24:34
А что выдаёт? Я заменил Device$N на постоянный Device1, тогда стало выдавать все устройства.
у меня второго устройства нету, оно что второму тоже присваивает имя Device1? посмотри код, кавычки "" я там не потерял?

и ничего не понятно :(
вот ./tools/rfcomm.c могут выкинуть в любой момент
Название: Re: Bluez-tray
Отправлено: DdShurick от 07 Август 2017, 12:41:50
кавычки "" я там не потерял?
Нет, там другое. Вот так работает (строки 230 - 236): 
Код
 grep -o '..:..:..:..:..:..' /tmp/btscan.lst | sed 's/:/_/g' | while read BDA
do
#check pair-nonpair device status
echo "<vbox>" >> /tmp/panel
#N=$[N+1]
DEV_PAIR=`dbus-send --system --print-reply --type=method_call --dest=org.bluez /org/bluez/$HCI_DEV/dev_$BDA org.freedesktop.DBus.Properties.Get string:org.bluez.Device1 string:Paired | egrep -o 'true|false'`
Можно ещё sed заменить на tr ':' '_'
egrep оказался обязательным.
Название: Re: Bluez-tray
Отправлено: Pro от 07 Август 2017, 16:22:15
Нет Bda далее надо будет подставить в sdptool, так что нельзя её изменять sed
Название: Re: Bluez-tray
Отправлено: DdShurick от 07 Август 2017, 17:30:36
Тогда так:
Код
 grep -o '..:..:..:..:..:..' /tmp/btscan.lst | while read BDA
do
#check pair-nonpair device status
echo "<vbox>" >> /tmp/panel

DEV_PAIR=$(dbus-send --system --print-reply --type=method_call --dest=org.bluez /org/bluez/$HCI_DEV/dev_$(echo $BDA | tr ':' '_') org.freedesktop.DBus.Properties.Get string:org.bluez.Device1 string:Paired | egrep -o 'true|false')
Название: Re: Bluez-tray
Отправлено: Pro от 08 Август 2017, 05:43:52
все починил, добавил цвета для текста и значки на кнопки, можно приступать к написанию функции паринга. Как оно делается?
Название: Re: Bluez-tray
Отправлено: Pro от 08 Август 2017, 08:20:15
все починил, добавил цвета для текста и значки на кнопки, можно приступать к написанию функции паринга. Как оно делается?
---------------------

есть ли возможность как-то передавать в функции которые вызываем по кнопке, адрес устройства?
Название: Re: Bluez-tray
Отправлено: DdShurick от 08 Август 2017, 17:23:41
можно приступать к написанию функции паринга. Как оно делается?
Вот это и надо узнать. В bluetoothctl это вкомпилено так (client/main.c 1392 - 1407):
Код
static void cmd_pair(const char *arg)
{
GDBusProxy *proxy;

proxy = find_device(arg);
if (!proxy)
return;

if (g_dbus_proxy_method_call(proxy, "Pair", NULL, pair_reply,
NULL, NULL) == FALSE) {
rl_printf("Failed to pair\n");
return;
}
        rl_printf("Attempting to pair with %s\n", arg);
}
в /lib/hci.c есть
Код
hci.c:2505:int hci_read_simple_pairing_mode(int dd, uint8_t *mode, int to)
и
Код
hci.c:2528:int hci_write_simple_pairing_mode(int dd, uint8_t mode, int to)
так же pair упоминается в src/adapter.c, src/device.c, src/gatt-client.c, src/gatt-database.c, src/main.c, src/storage.c, tools/btmgmt.c, tools/hciconfig.c, tools/hci-tester.c, tools/l2cap-tester.c, tools/mgmt-tester.c, tools/oobtest.c, tools/smp-tester.c, везде по разному и в каждом несколько тысяч строк.
адрес устройства?
Ты имеешь в виду $BDA? Вообще-то подставляется в <action>command $BDA &</action>, но если закладок несколько? Надо подумать
Название: Re: Bluez-tray
Отправлено: Pro от 09 Август 2017, 01:50:41
но если закладок несколько? Надо подумать
ага, должен быть выход
Название: Re: Bluez-tray
Отправлено: Pro от 09 Август 2017, 07:47:47
Вообще-то подставляется в <action>command $BDA &</action>, но если закладок несколько?
то в каждой закладке будет свой отличающийся BDA. нормально решение. Какой синтаксис вызова функции с параметром? например функцию PAIR
Название: Re: Bluez-tray
Отправлено: DdShurick от 09 Август 2017, 08:24:55
Код
if [ $DEV_PAIR = "true" ]; then
echo "<frame>
<hbox>
<text>
    <label>Unpaired</label>
</text>
<button>
  <action>\"UNPAIR $BDA &\"</action>
</button>
</hbox>
</frame>" >> /tmp/panel
elif [ $DEV_PAIR = "false" ]; then
echo "<frame>
<hbox>
<text>
    <label>Paired</label>
</text>
<button yes>
  <action>\"PAIR $BDA &\"</action>
</button>
</hbox>
</frame>" >> /tmp/panel
fi
Название: Re: Bluez-tray
Отправлено: Pro от 10 Август 2017, 05:33:17
<action>\"UNPAIR $BDA &\"</action>
нет, не годится.
в файл /tmp/panel будет же записано UNPAIR $BDA и когда придет время нажатия на кнопку, переменная $BDA будет иметь значение равное последнему добавленному устройству.

Надо чтобы в /tmp/panel записался код \"UNPAIR 12:12:34:45:56:67 &\" т.е. со значением переменной $BDA на тот момент.
Название: Re: Bluez-tray
Отправлено: DdShurick от 10 Август 2017, 07:06:06
будет же записано UNPAIR $BDA
Нет, "UNPAIR 12:12:34:45:56:67 &", я проверял.
/tmp/panel (part):
Код
...............
<frame>
<hbox>
<text>
    <label>Paired</label>
</text>
<button yes>
  <action>"PAIR BC:B1:F3:46:7C:44 &"</action>
</button>
</hbox>
</frame>
.............
Название: Re: Bluez-tray
Отправлено: Pro от 10 Август 2017, 10:58:33
исправил ошибки в коде. Накосячил жестоко. Добавил заготовки для rfcomm

так получилось что bluetoothd запускался из скрипта puppybt
и в такой ситуации он не дает скрипту работать пока его не прибьешь по ctrl+C, надо наверное как-то по другому запускать?
Название: Re: Bluez-tray
Отправлено: DdShurick от 10 Август 2017, 13:53:37
надо наверное как-то по другому запускать?
У меня этим заведует udev:
/lib/udev/rules.d/97-bluetooth.rules:
Код
# Run helper every time a Bluetooth device appears
# On remove actions, bluetoothd should go away by itself
ACTION=="add", KERNEL=="rfkill?", ATTR{type}=="bluetooth", RUN+="bluez.sh %s{name} %k"
/lib/udev/bluez.sh:
Код
#!/bin/sh
#без аргументов не запускаем
[ $1 ] || exit
#запускаем bluetoothd если не запущен
[ "$(/bin/pidof bluetoothd)" ] || /usr/sbin/bluetoothd &
#ждём иксы
until [ -f /tmp/dsp ]; do /bin/sleep 1; done
#добавляем переменные
export DISPLAY=$(/bin/cat /tmp/dsp)
export $(/bin/grep LANG= /etc/profile)
/usr/bin/bluez-tray "$@"
Название: Re: Bluez-tray
Отправлено: Pro от 10 Август 2017, 14:39:28
Да это я помню, но в скрипте тоже есть код проверки и запуска, и раз уж он есть - хотелось бы чтоб работал. Мож через exec или sh запуск вписать?
Название: Re: Bluez-tray
Отправлено: DdShurick от 10 Август 2017, 15:59:13
 Добавил в bluez-tray возможность поднимать интерфейс по команде "bluez-tray $HCI_DEV up". Сильно покоцал начало puppybt, посмотри, приемлемр ли это для тебя?
Название: Re: Bluez-tray
Отправлено: DdShurick от 10 Август 2017, 19:32:18
 Выжал из inqury_info кажется всё
Код
# ./scan
Scanning ...
BC:B1:F3:46:7C:44 C3520
01 00
[ Net Capture Obex Phone ] Cell Phone
20:A9:0E:72:AF:9C ALCATEL ONETOUCH 2012D
01 00
[ Net Capture Obex Audio Phone ] Cell Phone
00:11:67:6A:05:5D SPARKLE
01 00
[ Render Audio ] Loudspeaker Audio/Video
По порядку:
bdaddr name
pscan_rep_mode pscan_mode
dev_class
Что из этого полезного можно поиметь?
Название: Re: Bluez-tray
Отправлено: Pro от 11 Август 2017, 03:08:39
Что из этого полезного можно поиметь?
думаю пока ничего


Цитата
Сильно покоцал начало puppybt, посмотри, приемлемр ли это для тебя?
ты так и не осилил pull request? ну сложно же читать отличия :(

------------------------------
два кодовых вопроса:
1. из выхлопа rfcomm -a , надо определить какой номер можно занять под создание нового соединения, если пусто то брать 0
т.е. из списка:
rfcomm0
rfcomm13
rfcomm1
Определить что 13 самое большое и следующее число давать как 14 (хотя на практике больше 9 врядли будет) а общее ограничение по rfcomm вроде 31 порт.
Название: Re: Bluez-tray
Отправлено: Pro от 14 Август 2017, 07:32:21
Сильно покоцал начало puppybt, посмотри, приемлемр ли это для тебя?
забрал изменения, только rfkill unblock сделал более конкретным
Название: Re: Bluez-tray
Отправлено: Pro от 15 Август 2017, 09:13:47
Загрузил на гитхаб модуль puppybt-5.1
Научил подключаться-отключаться от serial порта.

---------------
ddshurick, выявлена проблема в коде, при подключении порта в каталоге /sys/class/bluetooth создается еще одно устройство вида hci0:21 и код который ты выкладывал думает что адаптеров стало два. Надо как-то более строго сделать определение?
Название: Re: Bluez-tray
Отправлено: DdShurick от 15 Август 2017, 19:07:25
ddshurick, выявлена проблема в коде
Ты про это?
Код
N=$[$(ls -1 /sys/class/bluetooth | wc -l) - 1] 
Вот на замену пара вариантов, выбирай что нравится
Код
N=$[$(ls -1 /sys/class/bluetooth | grep -v \: | wc -l) - 1]
N=$[$(find /sys/class/bluetooth -name hci? | wc -l) - 1]
Название: Re: Bluez-tray
Отправлено: Pro от 16 Август 2017, 08:01:42
гуд.

Сделал функцию приема файлов с устройств. Протестировал несколько программ для приема файлов, наиболее компактный obexpushd выбрал. Кнопка включает и отключает прием.

------------------------

Как лучше организовать диалог выбора файлов и каталогов для функции отправки файлов с компа?
Название: Re: Bluez-tray
Отправлено: Pro от 16 Август 2017, 09:50:15
Выяснено что OBEX push и OBEX file transfer это разные системы.
ранее работавшая программа ussp-push перестала отправлять файлы, из работающих решений найдено:


Собственно после тестирования осталось отказаться от obexpushd в пользу связки obexd + bt-obex :(
Название: Re: Bluez-tray
Отправлено: Pro от 17 Август 2017, 06:00:31
загрузил на github версию puppybt-5.2
Научил отправлять и принимать файлы через OBEX push. Не проверял отправку нескольких файлов и каталогов.
Название: Re: Bluez-tray
Отправлено: DdShurick от 17 Август 2017, 07:45:44
в пользу связки obexd + bt-obex
Да, obexd входит в основной пакет bluez-5, требует libical-2.0.0.
загрузил на github версию puppybt-5.2
Взял. Мне кажется, что ~/Startup/bluetooth это лишнее, udev вполне справляется. Достаточно костылика /tmp/dsp.
Название: Re: Bluez-tray
Отправлено: Pro от 17 Август 2017, 10:43:21
udev вполне справляется. Достаточно костылика /tmp/dsp
все таки запускать графическую программу надо средствами оболочки ибо в случае если вообще нет окружения xorg так оно и будет проверять  /tmp/dsp. Bluetoothd стартовать самое то что надо из udev.

--------------------
у меня проблема с кодом, надо из вывода типа "514 fsfsdf sdfsdf  -s -b /mnt/bluetooth TEMP=/tmp" получить /mnt/bluetooth
не могу составить условие чтобы от первого / и до первого пробела выдало символы.

Название: Re: Bluez-tray
Отправлено: DdShurick от 17 Август 2017, 14:18:18
если вообще нет окружения xorg
Тогда bluetoothctl.
так оно и будет проверять  /tmp/dsp
Ограничить число циклов.
у меня проблема с кодом, надо из вывода типа "514 fsfsdf sdfsdf  -s -b /mnt/bluetooth TEMP=/tmp" получить /mnt/bluetooth
Вариантов множество, например:
Код
# echo "514 fsfsdf sdfsdf  -s -b /mnt/bluetooth TEMP=/tmp"|tr ' ' '\n'|grep '/mnt'
/mnt/bluetooth
Название: Re: Bluez-tray
Отправлено: Pro от 17 Август 2017, 15:21:46
Grep /mnt не годится т.к. Надо исключить вариант что смонтировано вручную и не обязательно будет в каталог /mnt

Я думаю мож обрезать до первого / и потом через awk распечатать первое поле. Но если задано монтирование как $HOME/downloads или ~/downloads то будет хренова
Название: Re: Bluez-tray
Отправлено: DdShurick от 17 Август 2017, 17:38:32
 Вопрос конечно интересный
Код
# echo "514 fsfsdf sdfsdf  -s -b /mnt/bluetooth TEMP=/tmp"|sed 's/.* \//\//;s/.* ~\//~\//;s/.* $HOME\/$HOME/\//'|cut -f1 -d' '    
/mnt/bluetooth
# echo "514 fsfsdf sdfsdf  -s -b ~/bluetooth TEMP=/tmp"|sed 's/.* \//\//;s/.* ~\//~\//;s/.* $HOME\/$HOME/\//'|cut -f1 -d' '
~/bluetooth
# echo "514 fsfsdf sdfsdf  -s -b $HOME/bluetooth TEMP=/tmp"|sed 's/.* \//\//;s/.* ~\//~\//;s/.* $HOME\/$HOME/\//'|cut -f1 -d' '
/home/live/bluetooth
работает, но громоздко
Название: Re: Bluez-tray
Отправлено: DdShurick от 17 Август 2017, 20:57:01
 Доработал начало puppybt:
Код
[ -h /sys/class/bluetooth/hci? ] || err_msg "Local bluetooth device not found"

if [ $1 ]; then
HCI_DEV=$1
else
if [ $(ls -d1 /sys/class/bluetooth/hci? | wc -l) = 1 ];then
HCI_DEV=$(basename $(ls -d /sys/class/bluetooth/hci?))
else
export check_hci_dev="
<window><vbox>
<text><label>Выберите из:</label></text>
<list>
<variable>HCI_DEV</variable>
$(basename $(ls -d1 /sys/class/bluetooth/hci?) | sed 's/^/<item>/;s/$/<\/item>/')
</list>
<hbox>
<button yes></button>
<button no></button>
</hbox>
</vbox></window>
"
eval $(gtkdialog --program=check_hci_dev --center)
[ "$EXIT" = "Cancel" -o  "$EXIT" = "abort" -o "$HCI_DEV" = "" ] && err_msg "Error!"
fi
fi

[ "`cat /sys/class/bluetooth/$HCI_DEV/rfkill?/hard`" = 0 ] || err_msg "Local bluetooth device hard blocked"
[ "`cat /sys/class/bluetooth/$HCI_DEV/rfkill?/soft`" = 0 ] || /usr/bin/rfkill unblock bluetooth
Название: Re: Bluez-tray
Отправлено: Pro от 18 Август 2017, 02:36:14
      [ "$EXIT" = "Cancel" -o  "$EXIT" = "abort" -o "$HCI_DEV" = "" ] && err_msg "Error!"
Надо не сообщение об ошибке, а использовать первое найденное устройство типа hci0


-----------------
на udev вместо bluez-tray повесим еще запуск hidd

-----------------

Нельзя ли в коде bluez-tray сделать задержку перед определением наличия устройства? секунды 3-4 . При выходе из спящего режима, hci адаптер пробуждается последним bluez-tray его не находит и выгружается (в логе встречал что отсутствует statefile).
Думаю надо убрать "the" из фразы "Disable the visibility"
Название: Re: Bluez-tray
Отправлено: Pro от 18 Август 2017, 07:11:53
загрузил на github версию puppybt-5.3

Научил монтировать файловую систему, в случае неудачного монтирования первым способом, делается попытка монтировать вторым способом. Возможно будут проблемы при записи файлов от пользователя, параметры монтирования можно будет изменить.

Фиксы от ddshurick, аварийные сообщения не требующие подтверждения перевел на ntf -е вместо ntf -i
Выявлены небольшие вопросы по более удобному использованию для решения в будущем

----------------------
нихт не могу понять как у меня работало отключение rfcomm в 5.1, если я забыл задать BDA=$1 в функции SERIAL_DISCONNECT.
МИСТИКА.
-----------------------
Название: Re: Bluez-tray
Отправлено: sfs от 18 Август 2017, 10:16:32
http://murga-linux.com/puppy/viewtopic.php?t=111331
yad-0.26.1-1-i686.tar.gz - чего такой древний? Точно проверял, что с ним работает?

ntf -i - чтобы прога не тормозилась - лучше в конце  &
Причем для него нужен еще xpupsay или notifyd или т.п. (http://wiki.puppyrus.org/soft/notify#%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B5_%D0%B4%D0%B5%D0%BC%D0%BE%D0%BD%D1%8B)

В итоге - выложенный pfs можно пробовать в ПРА?
Название: Re: Bluez-tray
Отправлено: Pro от 18 Август 2017, 10:20:12
yad-0.26.1-1-i686.tar.gz - чего такой древний? Точно проверял, что с ним работает?
у меня только такой в списке пакетов, на яндексе вобще модуля не видно никакого

Причем для него нужен еще xpupsay или notifyd или т.п.
я думаю это у них есть в дистрибутивах.

В итоге - выложенный pfs можно пробовать в ПРА?
я его там и пробую. Но не подключать на горячую, только через перезагрузку.
Название: Re: Bluez-tray
Отправлено: sfs от 18 Август 2017, 10:35:48
http://mirror.yandex.ru/puppyrus/puppyrus-a64/pra64-07/pkg/pra6407extra/yad-gtk2-0.37.0-1-x86_64.pkg.tar.xz
https://slackware.pkgs.org/14.2/slackonly-i486/yad-0.38.1-i586-1_slonly.txz.html
Прошу всех обладателей блютуза подключиться к тестированию в ПРА
Название: Re: Bluez-tray
Отправлено: Pro от 18 Август 2017, 10:37:15
Прошу всех обладателей блютуза подключиться к тестированию в ПРА
x64 жеж ты чего.
Название: Re: Bluez-tray
Отправлено: sfs от 18 Август 2017, 10:41:15
https://slackware.pkgs.org/14.2/slackonly-i486/yad-0.38.1-i586-1_slonly.txz.html под 32 и 64 gtk2
Название: Re: Bluez-tray
Отправлено: sfs от 18 Август 2017, 10:43:25
gtkdialog - в скрипте : насколько я помню в пупи gtkdialog3 gtkdialog4 в зависимости от версии
Название: Re: Bluez-tray
Отправлено: Pro от 18 Август 2017, 10:48:30
gtkdialog - в скрипте : насколько я помню в пупи gtkdialog3 gtkdialog4 в зависимости от версии
это не наши проблемы.

https://slackware.pkgs.org/14.2/slackonly-i486/yad-0.38.1-i586-1_slonly.txz.html под 32 и 64 gtk2
ну вот и обновляй в дистрибутиве, мне щас зачем оно
Название: Re: Bluez-tray
Отправлено: Pro от 18 Август 2017, 16:30:03
Надо приступать к функции соединения gprs.
Технически вроде дело состоит в том чтобы опять создать соединение rfcomm на нужном канале,  далее работаем как с модемом.  Вопрос - что же вызывать дальше? Wvdial, или мастер сети или что-то из скриптов ddshurick есть?

Функцию serial connect думаю переписать и сделать универсальной чтобы и для serial и для gprs подходила
Название: Re: Bluez-tray
Отправлено: DdShurick от 18 Август 2017, 17:24:37
 Хреново :(
Код
# puppybt
Scanning ...
20:A9:0E:72:AF:9C ALCATEL ONETOUCH 2012D
BC:B1:F3:46:7C:44 C3520
Error org.freedesktop.DBus.Error.UnknownObject: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" doesn't exist

/usr/bin/puppybt: line 294: [: =: ожидается использование унарного оператора
/usr/bin/puppybt: line 307: [: =: ожидается использование унарного оператора
bluetoothd[4448]: No cache for BC:B1:F3:46:7C:44

** (gtkdialog:4651): ERROR **: gtkdialog: Error in line 82, near token '</notebook>': syntax error

/usr/bin/puppybt: line 410:  4570 Завершено      gtkdialog -c --program=process
/usr/bin/puppybt: line 410:  4651 Ловушка трассировки/останова                              gtkdialog --program=show_bt --center
Error! Error!
sfs сглазил :(
Название: Re: Bluez-tray
Отправлено: Pro от 19 Август 2017, 03:22:53
У тебя устройство имя с пробелами имеет. Это недопустимо.
Я не смогу код адаптировать под такое, либо делать чтобы bt-scan в кавычки имя брал и парсить.
Название: Re: Bluez-tray
Отправлено: Pro от 19 Август 2017, 08:22:18
Код
/usr/bin/puppybt: line 294: [: =: ожидается использование унарного оператора
/usr/bin/puppybt: line 307: [: =: ожидается использование унарного оператора
это из-за того что не отрабатывает DEV_PAIR возможно не успевает отработать поиск и добавление устройств в dbus, на второй запуск нормально отработало. Надо что-то добавить в код, чтобы если DEV_PAIR пустая, рисовать кнопку какую-то, незнаю какую или Сканировать или еще что
Название: Re: Bluez-tray
Отправлено: DdShurick от 19 Август 2017, 08:47:31
У тебя устройство имя с пробелами имеет. Это недопустимо.
Разве имя где-то используется?
не отрабатывает DEV_PAIR
Можно взять в кавычки "$DEV_PAIR", проблему не решит, но ошибка уйдёт.
на второй запуск нормально
У меня тоже нестабильно, похоже, что связано с импульсной работой inquiry. Вот сейчас вообще зависло, /tmp/BC:B1:F3:46:7C:44-info.lst:
Код
Failed to connect to SDP server on BC:B1:F3:46:7C:44: Operation now in progress
Название: Re: Bluez-tray
Отправлено: Pro от 19 Август 2017, 09:02:02
OBEX send files отправляет файлы даже на неспаренные устройства, но файлы с пробелами в имени не уходят
Название: Re: Bluez-tray
Отправлено: Pro от 19 Август 2017, 09:03:33
Разве имя где-то используется?
на вкладке используется (имя вкладки) и при монтировании точка монтирования по имени задается

Можно взять в кавычки "$DEV_PAIR", проблему не решит, но ошибка уйдёт.
ну это тоже вариант, просто информации не будет о том что спарено или нет


Название: Re: Bluez-tray
Отправлено: Pro от 21 Август 2017, 03:11:29
изменения на гитхабе
- кажется поправил определение имени устройства с пробелами, при монтировании пробелы заменяем на подчеркивания.
- функцию последовательного порта сделал универсальной для dialup подключения

---------------------
как вобще должны передаваться имена файлов с пробелами? экранировать пробел \ или кавычки?
bt-obex --opp $BDA "$FILE"
здесь вроде в кавычках переменная, надо еще кавычек добавить или в самой переменной экранировать пробелы \ достаточно?
Название: Re: Bluez-tray
Отправлено: Pro от 21 Август 2017, 07:37:58
Алгоритм по подключению "Audio source" т.е. например с телефона отправить звук на комп.

1. Нужно выполнить connect компа с телефоном (без постоянного connect пока не знаю как). С телефона на комп соединение не выполняется (возможно надо видимость выставить?)
в dbus появляются две ветки fd2 и player0 что из них отвечает за прием звука пока не ясно, но fd2 более похоже.
2. нужно запустить bluealsa
3. запускаем bluealsa-aplay xx:xx:xx:xx:xx:xx (или bluealsa-aplay 00:00:00:00:00:00 если не нужна привязка к адресу устройства)

Отправляем с устройства звук и слушаем. И что характерно - оно заработало О_О
Название: Re: Bluez-tray
Отправлено: Pro от 22 Август 2017, 02:58:38
- написал функцию Audio source
- написал функцию CONNECT для подключения устройства. Можно подключать по отдельным каналам через ConnectProfile , но пока думаю не актуально
- сделал кнопку connect/disconnect для устройства которое уже спареное
Название: Re: Bluez-tray
Отправлено: Pro от 24 Август 2017, 08:09:56
с bluealsa пока проблемы, выполняю aplay -D bluealsa:HCI=hci0,DEV=11:11:11:11:11:11,PROFILE=a2dp /usr/share/sounds/alsa/ok.wav и получаю "Нет такого устройства"

alsa не видит bluealsa и как зарегистрировать непонятно.

-------------------

для dialup сделал запуск gnome-ppp или defautconnect, для начала нормально думаю.
Название: Re: Bluez-tray
Отправлено: DdShurick от 24 Август 2017, 09:21:48
Код
aplay -D bluealsa:HCI=hci0,DEV=00:11:67:6A:05:5D,PROFILE=a2dp Downloads/sumerki.wav
Код
mpg123 -a bluealsa:HCI=hci0,DEV=00:11:67:6A:05:5D,PROFILE=a2dp http://radio.retro-retro.ru:80/
Работает, но действительно
alsa не видит bluealsa и как зарегистрировать непонятно.
Название: Re: Bluez-tray
Отправлено: Pro от 24 Август 2017, 09:58:37
aplay -D bluealsa:HCI=hci0,DEV=00:11:67:6A:05:5D,PROFILE=a2dp Downloads/sumerki.wav
выдает сообщение что устройство не найдено но играет? я просто поток на телефон отправляю, может он у меня в динамике и голосит, а я не слушаю.

-----------
без запущенного bluealsa соединение с телефоном вобще не делается, конечно телефон использовать как динамик это извращение, но тестировать пока не на чем.

--------------
Я подозреваю что на современных устройствах вместо dialup будет появляться network служба BNEP наверное?
список профилей нашел https://www.bluetooth.com/specifications/assigned-numbers/service-discovery
Название: Re: Bluez-tray
Отправлено: Pro от 25 Август 2017, 02:28:18
sfs, вопрос по твоему опыту.
Для пульта управления AV Remote нужно наверное по нажатию кнопки запускать отдельное окно с кнопками управления устройством. Доступны функции стоп, плей, пауза, вперед, назад, следующий, предыдущий, громкость верх, громкость вниз.

Как это организовать чтобы удобно для использования было? программку в трее или отдельное окно и т.п.? у тебя были готовые решения вроде в виде проигрывателя плейлиста кажется?

----------
PlayMusic посмотрел, визуально вроде неплохо, но может сделать через апплет в трее? незнаю есть ли возможность показывать меню не при щелчке а при наведении курсора на значек? думаю будет удобно

----------
Еще вариант сделать бинарником на С
Название: Re: Bluez-tray
Отправлено: sfs от 25 Август 2017, 09:18:42
Как это организовать чтобы удобно для использования было? программку в трее или отдельное окно и т.п.?
Панель или трей - зависит от программы , личных предпочтений, DE и т.п.
Посмотри mpvpan - начал с него - неудобно
Переделал на трей - mpvgui - поудобнее.
В любом случае трей удобнее на yad; панель на gtkdialog
Cи - для gui не актуально. Почти все что может gtk реализовано в yad; и gtkdialog. Потом править сможет только автор + в перспективе гемор перехода гтк2-3
есть ли возможность показывать меню не при щелчке а при наведении курсора на значек?
Нигде такого не встречал. Везде при наведении - popup. Плохая идея. На gtkdialog наверное можно сделать через обработку события
Название: Re: Bluez-tray
Отправлено: Pro от 25 Август 2017, 09:38:39
Переделал на трей - mpvgui - поудобнее.
вроде годится

Название: Re: Bluez-tray
Отправлено: Pro от 25 Август 2017, 10:46:44
загрузил на github скрипт bt-av_remote

-------
ddshurick нет ли значков размером 48х48, а то в программе значки on и off на 24х24 смотрятся плохо
Название: Re: Bluez-tray
Отправлено: DdShurick от 25 Август 2017, 19:21:47
нет ли значков размером 48х48
Возьми здесь (https://github.com/DdShurick/BlueC).
Название: Re: Bluez-tray
Отправлено: Pro от 28 Август 2017, 07:28:47
иконки забрал.

-------------------
Написал управление из трея плеером
-------------------

Принес из дома китайский адаптер, предназначен для приема потока по bluetooth и передаче его на акустику или наушники.
Передать звук с ноутбука удалось нормально НО выявлены важные критические проблемы:
---------------------
1. после соединения адаптер перестает быть виден и bt-scan его не видит, т.е. через puppybt не получится отключится и вобще управлять.
Возможным решением будет при запуске puppybt определять что из устройств есть подключенного (незнаю как) и делать для них вкладку без информации от sdptool (информацию брать из dbus или /var/lib/bluetooth)

----------------------

2. sdptool не видит на нем ничего из сервисов, хотя сервисы есть.
возможным решением будет смотреть сервисы в /var/lib/bluetooth или напрямую из dbus брать.
Название: Re: Bluez-tray
Отправлено: Pro от 30 Август 2017, 04:59:18
возможно более лучшим решением будет при сканировании не использовать sdptool browse но что выбрать взамен, незнаю пока.

- sdptool records 11:11:11:11:11:11 показал сервисы на устройстве, но довольно долго ищет. Не думаю что хороший вариант.

- echo devices | bluetoothctl покажет адреса найденных устройств не хуже bt-scan (но можно из DBUS через ManagedObjects попробовать), потом для этих адресов можно из dbus вытянуть строки с сервисами и обработать.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Сентябрь 2017, 05:14:17
- добавил функцию сетевого соединения.

-------

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

---------

ddshurick куда пропал? надо решение насчет поиска устройств, пуллреквест в гите висит, и вобще скучно одному код писать.
Название: Re: Bluez-tray
Отправлено: DdShurick от 04 Сентябрь 2017, 08:45:10
ddshurick куда пропал?
В школу пошёл.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Сентябрь 2017, 08:58:08
при современном развитии техники, даже из школы можно коммитить на гитхаб.
я ж молчу про чисто теоретические размышления над кодом.
Название: Re: Bluez-tray
Отправлено: DdShurick от 04 Сентябрь 2017, 14:36:53
не использовать sdptool browse
Да.
Код
# sdptool browse 00:11:67:6A:05:5D
Failed to connect to SDP server on 00:11:67:6A:05:5D: Invalid exchange
sdptool records 11:11:11:11:11:11 показал сервисы на устройстве
У меня нет
Код
# sdptool records 00:11:67:6A:05:5D
Failed to connect to SDP server on 00:11:67:6A:05:5D: Invalid exchange
echo devices | bluetoothctl покажет
Нет
Код
# echo devices | bluetoothctl
[NEW] Controller 00:11:67:BF:03:0C PuppyBT [default]
Agent registered
[bluetooth]# devices
Agent unregistered
[DEL] Controller 00:11:67:BF:03:0C PuppyBT [default]
#
из DBUS через ManagedObjects попробовать
Не хочется, но придётся.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Сентябрь 2017, 15:00:18
У меня при пробуждении ноутбука из ждущего режима, блютус адаптер определяется не сразу и видимо закрывается сокет или просто не дожидается ответа. Это приводит к тому что bluez-tray завершает работу. Надо чтобы временная потеря сокета не приводила к такому результату.

Считаю что критичная проблема.
Название: Re: Bluez-tray
Отправлено: DdShurick от 04 Сентябрь 2017, 15:05:41
при пробуждении ноутбука из ждущего режима
У меня выдаёт сначала INIT потом DOWN, хотя усыплял в UP.
Код
# while true; do ./hciconfig hci0; sleep 1; done
hci0: Type: BR/EDR  Bus: USB
BD Address: 00:11:67:BF:03:0C  ACL MTU: 1021:4  SCO MTU: 48:10
UP RUNNING
RX bytes:501 acl:0 sco:0 events:22 errors:0
TX bytes:95 acl:0 sco:0 commands:22 errors:0

hci0: Type: BR/EDR  Bus: USB
BD Address: 00:11:67:BF:03:0C  ACL MTU: 1021:4  SCO MTU: 48:10
UP RUNNING
RX bytes:501 acl:0 sco:0 events:22 errors:0
TX bytes:95 acl:0 sco:0 commands:22 errors:0

Can't get device info: No such device
hci0: Type: BR/EDR  Bus: USB
BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
DOWN INIT RUNNING
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:3 acl:0 sco:0 commands:1 errors:0

hci0: Type: BR/EDR  Bus: USB
BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
DOWN INIT RUNNING
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:3 acl:0 sco:0 commands:1 errors:0

hci0: Type: BR/EDR  Bus: USB
BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
DOWN INIT RUNNING
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:3 acl:0 sco:0 commands:1 errors:0

hci0: Type: BR/EDR  Bus: USB
BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
DOWN INIT RUNNING
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:3 acl:0 sco:0 commands:1 errors:0

hci0: Type: BR/EDR  Bus: USB
BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
DOWN INIT RUNNING
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:3 acl:0 sco:0 commands:1 errors:0

hci0: Type: BR/EDR  Bus: USB
BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
DOWN INIT RUNNING
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:3 acl:0 sco:0 commands:1 errors:0

hci0: Type: BR/EDR  Bus: USB
BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
DOWN INIT RUNNING
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:3 acl:0 sco:0 commands:1 errors:0

hci0: Type: BR/EDR  Bus: USB
BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
DOWN
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:3 acl:0 sco:0 commands:1 errors:0

hci0: Type: BR/EDR  Bus: USB
BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
DOWN
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:3 acl:0 sco:0 commands:1 errors:0
Обнуляется адрес и mtu, меняется rfkill.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Сентябрь 2017, 15:09:01
У меня в логе ошибка чтения дескриптора, а потом нормальное определение устройства.
Название: Re: Bluez-tray
Отправлено: Pro от 05 Сентябрь 2017, 04:38:43
    из DBUS через ManagedObjects попробовать

Не хочется, но придётся.
тут есть сложности. если у меня устройств в наличии нет, но ранее они были подключены, то GetManagedObjects покажет их т.к. они есть в дереве dbus. А нафиг они нам нужны если фактически их нет.

------------
Во вложении список вывода GetManagedObjects, из этой лапши надо формировать вкладки. В данном выводе ни одного устройства bt-scan не видит и физически они выключены, но bluetoothd их "видит".
Название: Re: Bluez-tray
Отправлено: DdShurick от 07 Сентябрь 2017, 09:40:53
из этой лапши надо формировать вкладки.
Насчёт лапши ты прав, лапша гигантская. Интересно, чего они там обкурились? Вот поэтому с Dbus и не хочется связываться.
Название: Re: Bluez-tray
Отправлено: Pro от 07 Сентябрь 2017, 10:43:49
- отладил работу дистанционного пульта
- отладил работу с передачей звука на устройство
----------------------
я занес в код примеры с парсингом результатов, но заново сформировать циклы я не смогу.

-----------------------

Я считаю, что надо делать гибридный вариант, формировать список через bt-scan и к нему добавлять то, чего нет в выводе bt-scan НО с проверкой что это устройство Connected = true
Но в этом случае надо все определение сервисов брать из Dbus, чтобы формат данных было легче обрабатывать.

В таком варианте особую сложность создает формирование названий вкладок, надо делать переменную типа LAYER="$LAYER|$NAME" и в цикле ее крутить а потом подставлять. Имена брать или из Dbus или из btscan.lst
если из Dbus, то надо переделать bt-scan чтобы не выводил имена, а только адреса.
Название: Re: Bluez-tray
Отправлено: DdShurick от 07 Сентябрь 2017, 11:31:05
надо делать гибридный вариант
Надо делать свой, но ума не хватает.
Название: Re: Bluez-tray
Отправлено: Pro от 07 Сентябрь 2017, 14:21:09
надо делать гибридный вариант
Надо делать свой, но ума не хватает.

ну из С обращения к dbus даже удобнее. Но пока хотябы сделать в скрипте. Вобщем щас нужен bt-scan без имён устройств в выводе, а там уже научим и из dbus анализировать.
Название: Re: Bluez-tray
Отправлено: DdShurick от 07 Сентябрь 2017, 15:00:33
Но пока хотябы сделать в скрипте.
А куда спешить? Похвастаться?
нужен bt-scan без имён устройств в выводе
Что мешает
Код
bt-scan | awk '{print $1}'
ну из С обращения к dbus даже удобнее.
Вот и надо с этим разобраться, размотать весь клубочек до конца.
Название: Re: Bluez-tray
Отправлено: Pro от 07 Сентябрь 2017, 15:42:15
Не люблю лишних движений в коде, bt-scan вобще-то сам создаёт btscan.lst, а ты предлагаешь мне его дополнительно парсить и изменять, хотя я бы хотел просто дописать туда недостающие строки с устройствами и все.

Торопится мне есть куда, пока время есть, потом может и не быть. Рекомендую тоже не тормозить.
Название: Re: Bluez-tray
Отправлено: DdShurick от 07 Сентябрь 2017, 17:08:18
Вобщем щас нужен bt-scan без имён устройств в выводе
хотя я бы хотел просто дописать туда недостающие строки с устройствами
Сам себе не противоречишь? Если убрать имена из btscan.lst, то запутаешься что есть что. Что сделать без имён, btscan.lst или выхлоп? А что ты хочешь дописать вообще непонятно.

Название: Re: Bluez-tray
Отправлено: Pro от 08 Сентябрь 2017, 01:43:22
Что сделать без имён, btscan.lst или выхлоп? А что ты хочешь дописать вообще непонятно.
а это от недостатка опыта естественно. Но раз уж у нас все движения в коде завязаны на btscan.lst, то в нем и надо делать без имен.

А дописывать придется то, чего нет в выводе bt-scan НО с проверкой что это устройство Connected = true

--------------
Если ты видишь другие варианты - давай озвучивай, я только такой вижу.
Название: Re: Bluez-tray
Отправлено: DdShurick от 08 Сентябрь 2017, 13:39:57
 Попробую обрезать sdptool.c до минимально необходимого (Service Name, Channel).
Название: Re: Bluez-tray
Отправлено: Pro от 08 Сентябрь 2017, 14:26:27
Попробую обрезать sdptool.c до минимально необходимого (Service Name, Channel).
Это ничем не поможет в плане построения списка устройств.
Название: Re: Bluez-tray
Отправлено: DdShurick от 08 Сентябрь 2017, 16:57:28
Это ничем не поможет в плане построения списка устройств.
?? В puppybt из вывода "sdptool browse $BDA" берётся только шестнадцатеричный номер устройства $S и Channel $CH. Это можно вывести сразу, без лишней лапши. Для соединения нам нужно всего лишь $BDA и $CH.
 Кстати, после твоей dbus-send у меня перестаёт работать sdptool, виснет намертво.
Название: Re: Bluez-tray
Отправлено: DdShurick от 08 Сентябрь 2017, 23:05:12
 Получил вот такой выхлоп
Код
# ./get_service BC:B1:F3:46:7C:44             
Browsing BC:B1:F3:46:7C:44 ...
Service Name: OBEX Object Push
  "OBEX Object Push" (0x1105)
    Channel: 1

  "Headset Audio Gateway" (0x1112)
  "Generic Audio" (0x1203)
    Channel: 2

Service Name: Voice Gateway
  "Handsfree Audio Gateway" (0x111f)
  "Generic Audio" (0x1203)
    Channel: 3

Service Name: Advanced Audio
Service Provider: Extended Systems
  "Audio Source" (0x110a)

Service Name: AVRCP Remote Control Target
Service Provider: iAnywhere Solutions, Inc.
  "AV Remote Target" (0x110c)

Service Name: OBEX File Transfer
  "OBEX File Transfer" (0x1106)
    Channel: 4

Service Name: Serial Port
  "Serial Port" (0x1101)
    Channel: 5

Service Name: Dial-up Networking
  "Dialup Networking" (0x1103)
  "Generic Networking" (0x1201)
    Channel: 6

#
Название: Re: Bluez-tray
Отправлено: Pro от 09 Сентябрь 2017, 16:52:50
Я ещё раз пишу буквами.
У меня пропадает из поиска устройство, bt-scan его не видит но устройство подключено на него звук идёт и как его отключать?
Такая же ситуация наверное будет если подключишь телефон, а он выключит видимость. Вкладка сама не нарисуется.
Название: Re: Bluez-tray
Отправлено: DdShurick от 09 Сентябрь 2017, 20:47:36
bt-scan его не видит
bluetoothctl видит?
Название: Re: Bluez-tray
Отправлено: Pro от 10 Сентябрь 2017, 06:12:06
bt-scan его не видит
bluetoothctl видит?
видит. Но он видит и без сканирования, берет инфу из dbus.
Название: Re: Bluez-tray
Отправлено: DdShurick от 10 Сентябрь 2017, 09:54:43
У меня с наушниками Sparkle так:
- bt-scan видит но sdptool browse не видит сервисы.
Код
Failed to connect to SDP server on 00:11:67:6A:05:5D: Invalid exchange
- запускаю bluetoothctl, scan, pair - sdptool browse "прозрел"
Код
# ./get_service 00:11:67:6A:05:5D
Browsing 00:11:67:6A:05:5D ...
  "PnP Information" (0x1200)

Failed to connect to SDP server on 00:11:67:6A:05:5D: Connection refused
  "Phonebook Access - PCE" (0x112e)

Service Name: Headset unit
  "Headset" (0x1108)
  "Generic Audio" (0x1203)
    Channel: 2

Service Name: Hands-free unit
  "Handsfree" (0x111e)
  "Generic Audio" (0x1203)
    Channel: 1

Service Name: Audio SNK
Service Provider: ISSC
  "Audio Sink" (0x110b)

Service Name: AVRCP CT
Service Provider: ISSC
  "AV Remote" (0x110e)

Service Name: AVRCP TG
Service Provider: ISSC
  "AV Remote Target" (0x110c)
при этом bt-scan тоже видит.
- делаю Bluetoothctl> connect
bt-scan перестаёт видеть наушники, sdptool browse сервисы видит.
- делаю Bluetoothctl> disconnect
bt-scan "прозревает", sdptool browse сервисы тоже видит.
Вот так как-то... И что делать, не знаю.
Название: Re: Bluez-tray
Отправлено: Pro от 10 Сентябрь 2017, 12:54:04
Цитата
- делаю Bluetoothctl> connect
bt-scan перестаёт видеть наушники
вот это и нужно в первую очередь обойти, ибо дальше просто не пойдёт работа скрипта, и уже не важно, видит sdptool что-то или не видит.
Название: Re: Bluez-tray
Отправлено: Pro от 11 Сентябрь 2017, 09:53:14
Как быть с ситуацией, когда нажимаем кнопку для спаривания, устройство успешно спаривается, но в окне естественно остается информация о том что устройство не спаренное.
Ясно что надо перерисовывать вкладку, но отдельно такое кажется не сделать? как бы перерисовать, но без повторного сканирования желательно?
Название: Re: Bluez-tray
Отправлено: Pro от 12 Сентябрь 2017, 09:11:30
Как быть с ситуацией, когда нажимаем кнопку для спаривания, устройство успешно спаривается, но в окне естественно остается информация о том что устройство не спаренное.
Ясно что надо перерисовывать вкладку, но отдельно такое кажется не сделать? как бы перерисовать, но без повторного сканирования желательно?
------------

Перевел определение сервисов на dbus. Костыльненько наверное через промежуточный файл в /tmp, но работает четко.
Название: Re: Bluez-tray
Отправлено: DdShurick от 13 Сентябрь 2017, 08:10:37
Перевел определение сервисов на dbus. Костыльненько наверное через промежуточный файл в /tmp, но работает четко.
То, что работает, хорошо, то, что dbus, плохо, здесь я не помощник, ибо считаю его излишеством.
Саша, сильно на меня не рассчитывай, мы с внучкой нахватали двоек по русскому, надо исправлять :(
Название: Re: Bluez-tray
Отправлено: Pro от 13 Сентябрь 2017, 11:11:28
С dbus поиск сервисов мгновенный, это несомненный плюс.
Sdptool все ещё нужен для определения номера канала т.к. В gbus этой информации вроде нету.
Название: Re: Bluez-tray
Отправлено: Pro от 14 Сентябрь 2017, 04:20:46
при поиске устройств рисуем gif индикатор показывающий что процесс поиска идет.
gtkdialog -c --program=process &
PID=$!
Если скрипт аварийно завершает работу, то индикатор продолжает крутиться и его надо убивать отдельно.

Какие еще есть методы организовать показ индикатора работы, но чтобы он убивался вместе со скриптом? yad --progress -pulsate в принципе можно? но как его останавливать когда поиск закончен?


---------------
или в существующий код gtkdialog добавить таймер чтобы через 30-40 секунд само убивалось

Нашел <timer></timer> для gtkdialog
Название: Re: Bluez-tray
Отправлено: Pro от 15 Сентябрь 2017, 03:21:12
- убрал из скрипта Handsfree сервис, ибо микрофон пробросить пока нет возможности.
- определение сервисов сделал двойное, если удается получить сервисы из dbus , то хорошо, если не удается, то пытаемся получить из sdptool.
Название: Re: Bluez-tray
Отправлено: Pro от 20 Сентябрь 2017, 07:24:58
Саша, сильно на меня не рассчитывай, мы с внучкой нахватали двоек по русскому, надо исправлять :(
ну вот как так можно что-то делать? пуллреквест висит уже 27 дней для тебя на гитхабе. Я представляю каково внучке приходится с таким необязательным дедом :((
Название: Re: Bluez-tray
Отправлено: Pro от 20 Сентябрь 2017, 11:01:42
Саша, сильно на меня не рассчитывай, мы с внучкой нахватали двоек по русскому, надо исправлять :(
ну вот как так можно что-то делать? пуллреквест висит уже 27 дней для тебя на гитхабе. Я представляю каково внучке приходится с таким необязательным дедом :((

------------------------------

Вобщем все проблемы успешно решаются, осталось реализовать:
- Поиск устройств с учетом информации из dbus
- остановку процесса поиска устройств (ведется переписка с разработчиками bluez) предложено автоматически останавливать процесс поиска по таймауту
- сетевое соединение через блютус (нет устройств для тестирования)
- подключение гарнитур (в bluealsa этот функционал пока в разработке)
Название: Re: Bluez-tray
Отправлено: DdShurick от 20 Сентябрь 2017, 12:15:34
- Поиск устройств с учетом информации из dbus
Не нравится мне этот dbus, не через него ли bluetooth взламывают?
- сетевое соединение через блютус (нет устройств для тестирования)
Можно попробовать на моём телефоне.
Название: Re: Bluez-tray
Отправлено: Pro от 20 Сентябрь 2017, 16:50:24
Нет.  Блютус взламывают не через dbus.
Название: Re: Bluez-tray
Отправлено: Pro от 21 Сентябрь 2017, 07:52:23
- Поиск устройств с учетом информации из dbus
сделано. И не так уж сложно в принципе.
Название: Re: Bluez-tray
Отправлено: Pro от 25 Сентябрь 2017, 10:08:25
Выложен модуль версии 5.4
- обновлен bluez до 5.47
- обновлен bluealsa
- скрипт puppybt тоже обновлен, настроено все что смог настроить.
Название: Re: Bluez-tray
Отправлено: sfs от 25 Сентябрь 2017, 10:22:37
Выложен модуль версии 5.4
В iso пра не пора ставить?
Название: Re: Bluez-tray
Отправлено: Pro от 25 Сентябрь 2017, 16:03:30
Выложен модуль версии 5.4
В iso пра не пора ставить?
Нет наверное.
У меня простой телефон-звонилка, спаривание проходит просто с ноутбука жмеш кнопку pair и на телефоне запрос кода,  вводим 0000 и все.
С планшетом не проходит такой метод, ему нужен явный запрос  пин-кода. Запрос от планшета тоже не пройдет наверное, не успел попробовать. Так что все современные телефоны спарить получится только через bluetoothctl.
Название: Re: Bluez-tray
Отправлено: loop223 от 03 Октябрь 2017, 10:51:41
Выложен модуль версии 5.4
Куда выложен? Пришел блютуз модуль Orico BTA-403, хочу спарить его с бт стерео-ресивером за 100р с али.В винде все гут, передает все аудио из системы на 2 метра до колонок.
Название: Re: Bluez-tray
Отправлено: Pro от 03 Октябрь 2017, 13:03:20
На гитхаб выложен.
Название: Re: Bluez-tray
Отправлено: loop223 от 03 Октябрь 2017, 17:07:47
На гитхаб выложен.
Как его найти?
Название: Re: Bluez-tray
Отправлено: RoDoN от 03 Октябрь 2017, 21:53:01
Наверно здесь: https://github.com/DdShurick/BlueC
Название: Re: Bluez-tray
Отправлено: loop223 от 04 Октябрь 2017, 00:23:45
Не смогу собрать, дайте инструкцию или готовый пфс.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Октябрь 2017, 01:38:50
Наверно здесь: https://github.com/DdShurick/BlueC
найн
Не смогу собрать, дайте инструкцию или готовый пфс.
ненадо ничего собирать

https://github.com/Pro-pra/PuppyBT
https://github.com/Pro-pra/PuppyBT/blob/master/puppybt-5.4-bluez5.47-pr01.pfs
Название: Re: Bluez-tray
Отправлено: loop223 от 04 Октябрь 2017, 02:43:38
PraLight 6407-1709.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Октябрь 2017, 06:57:52
PraLight 6407-1709.
6407
еще раз: 64
о чем
это
тебе
говорит?
Название: Re: Bluez-tray
Отправлено: loop223 от 04 Октябрь 2017, 08:06:50
 ::) Тоесть для 64 Pra нет возможности настроить BT-соединение?
Название: Re: Bluez-tray
Отправлено: Pro от 04 Октябрь 2017, 08:23:40
::) Тоесть для 64 Pra нет возможности настроить BT-соединение?
в связи с вновь открывшимися фактами, сообщаю, что модуля для х64 пока нет.
Название: Re: Bluez-tray
Отправлено: loop223 от 04 Октябрь 2017, 08:31:03
Надеюсь, что вы "смогёте" в х64. Поставил пра ретро 32... там тоже проблемы.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Октябрь 2017, 08:36:02
Надеюсь, что вы "смогёте" в х64. Поставил пра ретро 32... там тоже проблемы.
dbus нету? странно. ps -A| grep dbus чего говорит?
Не пытайтесь модуль пользовать при горячем подключении, обязательно надо ложить в modules и перезагрузку делать.
Название: Re: Bluez-tray
Отправлено: loop223 от 05 Октябрь 2017, 03:11:28
Модуль лежит в папке и грузится с системой.
Название: Re: Bluez-tray
Отправлено: Pro от 05 Октябрь 2017, 04:05:43
Модуль лежит в папке и грузится с системой.
судя по цвету твоего терминала, ты что от пользователя его пытался стартовать? bluetoothd от пользователя не будет стартовать.
когда модуль грузится с системой при запуске, можно смотреть ps -A|grep bluetoothd. Запуск демона производится из udev через правило. Бывает что systemd (если он есть) убивает bluetoothd, но у меня такое сейчас не наблюдается.
Название: Re: Bluez-tray
Отправлено: Pro от 05 Октябрь 2017, 05:59:06
ddshurick - выложи на гитхаб файл oui.h
bt-scan не компилируется

--------------------

Загрузил на гитхаб модуль для x64 дистрибутива PRA. Незнаю только будет ли там работать запуск из /home/live/startup если оболочка другая
Название: Re: Bluez-tray
Отправлено: sfs от 05 Октябрь 2017, 09:19:55
будет ли там работать запуск из /usr/live/startup
Наверное ~/startup ? Не будет. Лучше перенести в /etc/xdg/autostart/*.desktop. Тогда в любом линуксе  будет работать
Название: Re: Bluez-tray
Отправлено: Pro от 05 Октябрь 2017, 10:01:32
Лучше перенести в /etc/xdg/autostart/*.desktop
где тогда лучше разместить скрипт для запуска? /usr/bin наверное не самое лучшее место
Название: Re: Bluez-tray
Отправлено: sfs от 05 Октябрь 2017, 11:05:33
Сам скрипт в /usr/bin - норм
Его запуск (согласно стандартов freedesktop) - я выше написал куда и как
Название: Re: Bluez-tray
Отправлено: DdShurick от 05 Октябрь 2017, 19:37:10
ddshurick - выложи на гитхаб файл oui.h
В нём всего одна строка
Код
char *batocomp(const bdaddr_t *ba);
Я при компиляции подключаю Bluez_DEV и компилирую с опцией -lbluetooth
Название: Re: Bluez-tray
Отправлено: Pro от 06 Октябрь 2017, 01:48:52
Я при компиляции подключаю Bluez_DEV и компилирую с опцией -lbluetooth
этот файл oui.h не входит в DEV модуль bluez. Он лежит в исходниках bluez но не устанавливается по make install.
КРОМЕ того в scan.c он у тебя прописан в кавычках, т.е. ищется в каталоге scan.c

Цитата
ddshurick - выложи на гитхаб файл oui.h

В меню  пункт "About the program" не совсем правильно, обычно просто пишут "About"
Название: Re: Bluez-tray
Отправлено: DdShurick от 06 Октябрь 2017, 08:32:30
 Обновил scan.c и simplescan.c, сравни.
Название: Re: Bluez-tray
Отправлено: Pro от 06 Октябрь 2017, 08:45:43
Обновил scan.c и simplescan.c, сравни.
ты издеваешься? там 80% кода переписано!
Название: Re: Bluez-tray
Отправлено: DdShurick от 06 Октябрь 2017, 09:55:31
ты издеваешься?
Ни разу.
там 80% кода переписано!
Разве так много?
scan взят из hcitool, simplescan - другой автор, надо сравнить и выбрать.
Название: Re: Bluez-tray
Отправлено: DdShurick от 09 Октябрь 2017, 11:47:36
Саша, как тебе вот такой вывод:
Код
# ./scan
Scanning ...
BC:B1:F3:46:7C:44 C3520
1 0 2
[ Net Capture Obex Phone ] Cell Phone
00:11:67:6A:05:5D SPARKLE
1 0 2
[ Render Audio ] Loudspeaker Audio/Video
1 строка: bdaddr name
2 строка: pscan_rep_mode pscan_mode pscan_period_mode
3 строка: [ сервисы ] класс устройства
btscan.lst одинаковый.
Название: Re: Bluez-tray
Отправлено: DdShurick от 09 Октябрь 2017, 13:28:14
Можно получить сразу за один проход
00:11:67:6A:05:5D.lst
Код
SPARKLE
[ Render Audio ] Loudspeaker Audio/Video
20:A9:0E:72:AF:9C.lst
Код
ALCATEL ONETOUCH 2012D
[ Net Capture Obex Audio Phone ] Cell Phone
BC:B1:F3:46:7C:44.lst
Код
C3520
[ Net Capture Obex Phone ] Cell Phone
При этом sdptool не требуется и видны мои наушники.
Название: Re: Bluez-tray
Отправлено: Pro от 09 Октябрь 2017, 14:54:25
Это хорошо но я не смогу связать это с анализом dbus без конкретных цифр сервисов типа 110е.
Как твоя утилита просканирует невидимое, но подключенное устройство?
Название: Re: Bluez-tray
Отправлено: DdShurick от 09 Октябрь 2017, 15:41:39
но я не смогу связать это с анализом dbus
А он нужен?
Название: Re: Bluez-tray
Отправлено: Pro от 09 Октябрь 2017, 15:44:40
Если ты читаешь только первое предложение, я могу писать короткими.

Как твоя утилита просканирует невидимое, но подключенное устройство?
Название: Re: Bluez-tray
Отправлено: DdShurick от 09 Октябрь 2017, 16:01:16
Как твоя утилита просканирует невидимое, но подключенное устройство?
Пока никак. Я это уже заметил. Ответ надо искать в коде btmgmt. Только вот какая необходимость сканировать подключенное устройство?
Если ты читаешь только первое предложение, я могу писать короткими.
Я читаю всё, но отвечаю не сразу. Тугодум понимаешь ли.
без конкретных цифр сервисов типа 110е.
Чем имена хуже?
Название: Re: Bluez-tray
Отправлено: Pro от 09 Октябрь 2017, 16:11:01
Объясняю - чтобы отключить.

Цифры хранятся в dbus и чтобы анализировать они нужны.
Чем ты там занимаешься,  я не понимаю, я уже все это давно обработал и все работает. Других проблем прям нету чтоли?
Название: Re: Bluez-tray
Отправлено: DdShurick от 09 Октябрь 2017, 16:36:54
Объясняю - чтобы отключить.
Понял.
Цифры хранятся в dbus и чтобы анализировать они нужны.
Я хочу обойти dbus.
Чем ты там занимаешься,  я не понимаю
Много чем, длинный список получится, но к Puppy это не относится.
я уже все это давно обработал и все работает
Замечательно.
Других проблем прям нету чтоли?
Навалом, но ну их
Название: Re: Bluez-tray
Отправлено: Pro от 10 Октябрь 2017, 01:36:45
Ты не обойдешь dbus. Либо придется отказаться от bluetoothd.
Название: Re: Bluez-tray
Отправлено: DdShurick от 10 Октябрь 2017, 08:34:35
Ты не обойдешь dbus.
Вот и интересно попробовать.
Название: Re: Bluez-tray
Отправлено: Pro от 10 Октябрь 2017, 08:48:48
Вот и интересно попробовать.
чтобы пробовать, нужно иметь представление и логически осмыслить возможность. Я эту процедуру выполнил и пока возможности только при условии которое уже сообщил.

Разберись лучше в парингом или с поднятием сетевого интерфейса - реальная польза.
Название: Re: Bluez-tray
Отправлено: DdShurick от 10 Октябрь 2017, 09:55:24
чтобы пробовать, нужно иметь представление и логически осмыслить возможность.
Вот я и осмысливаю. Эмпирически. Академиев то не кончал.
возможности только при условии которое уже сообщил.
Без bluetoothd? А что он из себя представляет? Даймон-транслятор команд dbus -> bluez. ИМХО - лишнее звено.
Разберись лучше с парингом
Пытаюсь, но пока не
с поднятием сетевого интерфейса
Руки не доходят.
реальная польза.
Кому? Никто кроме нас двоих интереса не проявляет.
 Вообще-то мы далеко ушли от начальной темы. Я планировал bluez-tray всего лишь как графическую замену hciconfig, но тема интересная.
Название: Re: Bluez-tray
Отправлено: Pro от 10 Октябрь 2017, 10:00:55
Вообще-то мы далеко ушли от начальной темы. Я планировал bluez-tray всего лишь как графическую замену hciconfig, но тема интересная.
это предложение напоминает мне об одном гражданине с этого форума. вы случайно не одного поля ягода?

Вобще-то ты еще и на баше код писать умеешь, можно бы вылезти за пределы  bluez-tray и помочь мне с puppybt.
Название: Re: Bluez-tray
Отправлено: DdShurick от 10 Октябрь 2017, 10:33:11
можно бы вылезти за пределы  bluez-tray и помочь мне с puppybt.
Давно вылез и пытаюсь. Разве не лучше получить сразу ..:..:..:..:..:..-info.lst без промежуточного btscan.lst и sdptool?
Название: Re: Bluez-tray
Отправлено: loop223 от 10 Октябрь 2017, 13:48:59
Пытаюсь запустить модуль 64 с гитхаба, такая же проблема. Куда копать? Системдэ поставить? Модуль в папке.
Причем значек в трее реагирует, вкл\выкл есть..устройство определяет.
Название: Re: Bluez-tray
Отправлено: Pro от 10 Октябрь 2017, 13:53:49
можно бы вылезти за пределы  bluez-tray и помочь мне с puppybt.
Давно вылез и пытаюсь. Разве не лучше получить сразу ..:..:..:..:..:..-info.lst без промежуточного btscan.lst и sdptool?
Нет не лучше.
Название: Re: Bluez-tray
Отправлено: Pro от 10 Октябрь 2017, 13:57:33
Пытаюсь запустить модуль 64 с гитхаба, такая же проблема. Куда копать? Системдэ поставить? Модуль в папке.
Причем значек в трее реагирует, вкл\выкл есть..устройство определяет.
Systemd не надо. Почему то не видит dbus, или доступа нет к system сессии
Название: Re: Bluez-tray
Отправлено: loop223 от 10 Октябрь 2017, 15:31:33
Есть контакт! :)
Поставил systemd из реп пра. Пакманом поставил bluez и bluez-utils. Потом systemctl start bluetooth.service(без этих пакетов из AUR bluetooth.service не стартовал). Далее ЛКМ по значку в трее, появился вращающийся круг и  появился аплет с выбором устройства.
Все приконектилось, звук системы пошел на колонки через китайскую приблуду за сто рублей!
Теперь надо думать, как это все сохранить...и в идеале сделать модуль( Узнать какие именно файлы и  куда ставит пакман. И по аналогии с путями добавить в модуль Bluez)
Название: Re: Bluez-tray
Отправлено: sfs от 10 Октябрь 2017, 15:56:22
Поставил systemd из реп пра.
Чем не устроил модуль 075-Systemd ?
в идеале сделать модуль
И выложить
Узнать какие именно файлы и  куда ставит пакман
pacman2pfs (http://wiki.puppyrus.org/puppyrus/pra#pacman2pfs%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8Fpfs_%D0%B8%D0%B7_%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D1%8F_arch) bluez bluez-util
Название: Re: Bluez-tray
Отправлено: Pro от 10 Октябрь 2017, 16:05:30
Мой модуль уже содержит нужные бинарники из bluez и bluez-utils. Ничего ставить не нужно. Возможно что-то не так с bluetoothd в моем модуле ибо я под x64 особо не успел протестировать.

Systemd тоже не требуется. Да я тестирую с модулем Systemd, но ddshurick то точно без него запускает.
Название: Re: Bluez-tray
Отправлено: loop223 от 10 Октябрь 2017, 17:07:15
С последним systemd от SFS, модуль puppybt-5.4-bluez5.47_64-pr01 работает без проблем и прочими шаманствами, ничего  докачивать не надо(все в модуле) и никакие доп. сервисы запускать. Без системд, bluetoothd не может  стартануть из-за броблем с шиной dbus.Тестил на голом praligth-6407-1709.
Название: Re: Bluez-tray
Отправлено: DdShurick от 10 Октябрь 2017, 17:18:17
но ddshurick то точно без него запускает.
Я использую udev.
97-bluetooth.rules:
Код
# Run helper every time a Bluetooth device appears
# On remove actions, bluetoothd should go away by itself
ACTION=="add", ATTR{type}=="bluetooth", RUN+="bluez.sh %s{name} /%k"
bluez.sh:
Код
#!/bin/sh
[ $1 ] || exit
/usr/sbin/bluetoothd &
until [ -f /tmp/dsp ]; do /bin/sleep 1; done #ждём X
DISPLAY=$(/bin/cat /tmp/dsp
LANG=$(/bin/grep LANG= /etc/profile)
export DISPLAY LANG
/usr/bin/bluez-tray "$1" "$2"
В ~/.icewm/startup добавлена строка
Код
echo $DISPLAY > /tmp/dsp 
И никакого systemd :D
Название: Re: Bluez-tray
Отправлено: loop223 от 10 Октябрь 2017, 18:03:57
 А как это сделать для openbox?
Название: Re: Bluez-tray
Отправлено: Pro от 11 Октябрь 2017, 06:56:22
А как это сделать для openbox?
ну я также делаю, только в 97-bluetooth.rules прописано что сразу запускаем /usr/sbin/bluetoothd --compat --noload-plugin=hostname

a bluez-tray стартует после запуска графики из ~/startup


----------------------
По поводу Dbus сообщаю что у меня такая же проблема, причина в том что нет запущенной system сессии, есть только пользовательские.
Название: Re: Bluez-tray
Отправлено: sfs от 11 Октябрь 2017, 08:51:07
a bluez-tray стартует после запуска графики из ~/startup
http://forum.puppyrus.org/index.php?topic=18822.msg135264#msg135264

Название: Re: Bluez-tray
Отправлено: Pro от 11 Октябрь 2017, 10:47:37
a bluez-tray стартует после запуска графики из ~/startup
http://forum.puppyrus.org/index.php?topic=18822.msg135264#msg135264


я помню по существующий модуль не изменялся и в нем пока из startup
Название: Re: Bluez-tray
Отправлено: DdShurick от 11 Октябрь 2017, 12:06:43
bluez-tray стартует после запуска графики из ~/startup
Тогда запускаться будет от пользователя со всеми вытекающими проблемами :(
Название: Re: Bluez-tray
Отправлено: Pro от 11 Октябрь 2017, 12:17:07
bluez-tray стартует после запуска графики из ~/startup
Тогда запускаться будет от пользователя со всеми вытекающими проблемами :(
Никаких проблем, будет из /etc/xdg.... И там sudo прописано.

А твой вариант запуска systemd прибивает по таймауту,  типа нет активности - нефиг висеть в процессах. Неуниверсально.

Название: Re: Bluez-tray
Отправлено: DdShurick от 11 Октябрь 2017, 16:11:09
А твой вариант запуска systemd прибивает по таймауту
У меня этой гадости нет.
Название: Re: Bluez-tray
Отправлено: Pro от 12 Октябрь 2017, 08:23:54
А твой вариант запуска systemd прибивает по таймауту
У меня этой гадости нет.
это слишком банальный ответ. Мой вариант практически более универсален и менее костылен, без ожиданий xorg и передачи дополнительных переменных через /tmp
Название: Re: Bluez-tray
Отправлено: DdShurick от 12 Октябрь 2017, 08:40:55
вариант практически более универсален и менее костылен
При условии
Код
[alexander@comp-atom-cpu-257e24 ~]$ sudo -l
User alexander may run the following commands on this host:
    (ALL) ALL
Название: Re: Bluez-tray
Отправлено: sfs от 12 Октябрь 2017, 09:57:04
будем требовать включить в во все iso
В пра "требовать" не придется - я готов - давайте модуль
Название: Re: Bluez-tray
Отправлено: Pro от 12 Октябрь 2017, 10:22:14
давайте модуль
на гитхабе все есть
Название: Re: Bluez-tray
Отправлено: sfs от 12 Октябрь 2017, 10:27:42
Старт адаптирован под systemd и minirc? Использование интуитивно понятно или дадите текст для вики?
Арч пакет не хотите сделать? - чтобы совсем по взрослому...
Название: Re: Bluez-tray
Отправлено: Pro от 12 Октябрь 2017, 10:29:42
Старт адаптирован под systemd и minirc?
старт не зависит от этих систем инициализации.

Рекомендую ждать версию 5.5 - в ней будет запуск из /etc/xdg
Название: Re: Bluez-tray
Отправлено: sfs от 12 Октябрь 2017, 10:33:15
ок!
Название: Re: Bluez-tray
Отправлено: DdShurick от 12 Октябрь 2017, 12:15:31
чтобы совсем по взрослому...
Значит без Арча мы дети?
Название: Re: Bluez-tray
Отправлено: sfs от 12 Октябрь 2017, 13:01:15
Значит без Арча мы дети?
Обычно авторы, заинтересованные в распространении своих продуктов делают как минимум deb и rpm
Поскольку на нашем форуме это не пригодится - оптимально сделать pkg.tar.xz
Во всяком случае в предлагаемом виде даже на мурге интереса нет (http://murga-linux.com/puppy/viewtopic.php?p=968919&sid=a09ba993c05e3a172d9138a0f1029e86)
Юзер пошел балованый - не работает из коробки - в топку
Никто компилить и багрепорты писать не будет
Название: Re: Bluez-tray
Отправлено: Pro от 13 Октябрь 2017, 08:23:27
версия 5.5
- запуск утилиты трея из /etc/xdg
- два варианта паринга, автоматический простым запросом в dbus и через bluetoothctl
- добавлен звуковой файл для проверки работы bluealsa т.к. файл ok.wav из alsa не всегда можно расслышать.

--------------------------
не решен вопрос с поднятием сетевого интерфейса через bluetooth, ориентировался на windows смартфон, но в андроиде что-то по другому. Пока только заготовка для сети
Название: Re: Bluez-tray
Отправлено: DdShurick от 13 Октябрь 2017, 09:06:50
запуск утилиты трея из /etc/xdg
Саша, у тебя встроенный bluetooth, а у меня "свисток". Как в таком случае? А если подключить ещё один?
Название: Re: Bluez-tray
Отправлено: Pro от 13 Октябрь 2017, 09:13:41
запуск утилиты трея из /etc/xdg
Саша, у тебя встроенный bluetooth, а у меня "свисток". Как в таком случае? А если подключить ещё один?
а как в таком случае это влияет? должно два экземпляра bluez-tray запустится? ты сам-то какого поведения от системы ждешь для таких ситуаций?


Название: Re: Bluez-tray
Отправлено: DdShurick от 13 Октябрь 2017, 11:20:49
а как в таком случае это влияет?
Что, трудно представить? Вот у меня сейчас bluetooth-адаптер отключен, что даст запуск из /etc/xdg ? Ничего, кроме ошибки. Подключаю, что происходит? В твоём варианте - ничего, поезд уже ушёл. А если сразу два? Думаешь я просто так сделал команду запуска "bluez-tray hci? rfkill?" ? Думай
должно два экземпляра bluez-tray запустится?
Сколько адаптеров, столько и значков.
Название: Re: Bluez-tray
Отправлено: Pro от 13 Октябрь 2017, 13:51:23
Да трудно представить.

Ошибки при запуске из /etc/xdg не будет, просто не запустится утилита трея и скрипт штатно завершит работу.

Далее, при наличии двух адаптеров, вот лично puppybt предложит выбрать какой использовать,  и тут хватит вполне одного значка в трее.

------
Я пока не могу ничего придумать, но скрипт запущенный из udev убивает systemd по таймауту. Это факт.
Название: Re: Bluez-tray
Отправлено: DdShurick от 13 Октябрь 2017, 14:12:39
хватит вполне одного значка в трее.
Не наглядно (для начинающих это важно) и не очень удобно.
udev убивает systemd по таймауту. Это факт.
Этот факт мне очень нравится :D Такие поделки, как systemd не имеют права существовать. Ты что, выпилить из системы его не можешь?
Название: Re: Bluez-tray
Отправлено: Pro от 13 Октябрь 2017, 14:30:57
И тем не менее, наверняка можно обойти эти проблемы
Название: Re: Bluez-tray
Отправлено: DdShurick от 14 Октябрь 2017, 16:07:59
И тем не менее, наверняка можно обойти эти проблемы
Саша, не хватало ещё обходить искусственно созданные проблемы.

3G:
bluetoothctl scan, pair, quit. По другому pair не получается и непонятно как
rfcomm bind. Здесь через bluetoothctl не получается.
ln -s /dev/rfcomm0 /dev/modem.
wvdial MTS. Телефон требует подтвердить соединение.
Код
--> WvDial: Internet dialer version 1.61
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
--> Sending: ATQ0
--> Re-Sending: ATZ
ATZ
OK
ATQ0
OK
ATZ
OK
--> Sending: AT+CGDCONT=1,"IP","internet.mts.ru"
AT+CGDCONT=1,"IP","internet.mts.ru"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
NO CARRIER
NO CARRIER - интернет на телефоне у меня не настроен.
сейчас читаю (https://codeby.net/bezopasnost/kak-vzlomat-bluetooth-chast-1-terminy-tehnologii-i-bezopasnost/)
Название: Re: Bluez-tray
Отправлено: Pro от 14 Октябрь 2017, 16:13:49
В чем проблема или что важного в твоем описании действий с 3G?
Название: Re: Bluez-tray
Отправлено: DdShurick от 14 Октябрь 2017, 16:38:41
В чем проблема
Проблема в спаривании устройств. blurtoothctl делает это хорошо, но только через консоль.
что важного в твоем описании
А ничего не важно...
Название: Re: Bluez-tray
Отправлено: Pro от 14 Октябрь 2017, 16:44:40
В версии 5.5 добавлена кнопка pair manual, нажимаем - открывается defaultterminal с запущенным bluetoothctl и окно с сообщением - давай для спаривания сделай вот это.

Название: Re: Bluez-tray
Отправлено: DdShurick от 14 Октябрь 2017, 22:17:45
 Хотя я и считаю bluetooth.sh бесполезным, но
Код
#!/bin/sh

sleep 5

dbus-uuidgen --ensure
sleep 1

if [ "`ls /sys/class/bluetooth 2>/dev/null`" ]; then

    if [ "`pidof bluetoothd`" = '' ]; then
bluetoothd --compat --noplugin=hostname &
sleep 1
    fi

    if [ "`pidof bluetooth-applet`" = '' ] && [ "`which bluetooth-applet`" != '' ]; then
bluetooth-applet &
    else
HCI_DEV=$(ls -1 /sys/class/bluetooth | grep hci)
if [ `echo "$HCI_DEV"|wc -w` -gt 1 ]; then
export Check="<vbox>
<text><label>Выбор</label></text>
<list>
<variable>HCI_DEV</variable>
<input>echo $HCI_DEV</input>
</list>
<button ok></button>
</vbox>"
eval $(gtkdialog -c --program "Check")
[ "$EXIT" = "abort" ] && exit
fi
HCI_RFKILL=$(ls -1 /sys/class/bluetooth/$HCI_DEV | grep rfkill)

bluez-tray $HCI_DEV $HCI_RFKILL &

    fi
else
killall bluetoothd
killall bluetooth-applet
killall bluez-tray
killall bluetoothctl
killall obexd
killall obexpushd
killall hidd
killall rfcomm
killall pand
    exit
fi
Первый if изменён так как при отсоединении "свистка" остаётся пустой /sys/class/bluetooth.
при наличии двух адаптеров, вот лично puppybt предложит выбрать какой использовать,  и тут хватит вполне одного значка в трее.
Не знаю как он предложит, но два значка информативнее ИМХО.
В версии 5.5 добавлена кнопка pair manual
Да, это работает. Я бы ещё gnome-ppp поставил первым и добавлял линк /dev/rfcomm0 -> /dev/modem.
Название: Re: Bluez-tray
Отправлено: Pro от 15 Октябрь 2017, 03:46:14
Диалог и код выбора адаптера писал ddshurick, хрен знает как после этого доверять твоим словам,  склероз видать стучится.

Ссылку на /dev/modem лучше ненадо, затрет старую если была, и при отключении дополнительные проблемы.
Программа же пишет на каком rfcomm подключило устройство.

--------
Гораздо полезнее было бы чтоб в окне программы лог прикрутить, чтобы при отсутствии ntf сообщения видеть как то по другому.
Название: Re: Bluez-tray
Отправлено: DdShurick от 15 Октябрь 2017, 06:07:35
склероз видать стучится.
Если бы. :( Давно пришёл, уселся и ножки свесил.
при отсутствии ntf
Код
[ `which ntf` ] && ntf $msg || echo $msg
echo $msg >> /var/log/puppybt.log
Вот так как-то...
Название: Re: Bluez-tray
Отправлено: Pro от 15 Октябрь 2017, 07:10:22
Нее в файл лога не то,  я имею ввиду лог на экране или область к окну программы приделать, gtkdialog умеет.
Название: Re: Bluez-tray
Отправлено: DdShurick от 15 Октябрь 2017, 09:10:00
Нее в файл лога не то,  я имею ввиду лог на экране или область к окну программы приделать, gtkdialog умеет.
Посмотри здесь (https://github.com/DdShurick/Richy/tree/master/Msg).
Название: Re: Bluez-tray
Отправлено: Pro от 16 Октябрь 2017, 03:32:42
Первый if изменён так как при отсоединении "свистка" остаётся пустой /sys/class/bluetooth.
если этот скрипт выполняется при запуске системы (а мы его так и запускаем) то зачем диалог выбора адаптера? пустого /sys/class/bluetooth тут тоже вроде не должно быть.


-----------------------
Я думаю задачу надо разделить на две:
1. Два адаптера при загрузке системы - что мы хотим видеть?
Я лично не хотел бы видеть окон с выбором нужного адаптера, лучше уж два значка в трее.

2. адаптер один но добавляем адаптер когда система уже загружена - что ожидаем ?
Название: Re: Bluez-tray
Отправлено: DdShurick от 16 Октябрь 2017, 08:51:21
 И первое и второе создаёт два значка в трее при загрузке юдевом. Не нравится юдев, напиши юнит.
Все остальные варианты заметно проигрывают.
Название: Re: Bluez-tray
Отправлено: Pro от 16 Октябрь 2017, 08:57:51
И первое и второе создаёт два значка в трее при загрузке юдевом.
не udev а твой скрипт создает - если уж точно.

напиши юнит.
нет это не выход.

----------------
не могу получить информацию по поводу Что ожидаем? может мы ожидаем разные результаты...
Название: Re: Bluez-tray
Отправлено: DdShurick от 16 Октябрь 2017, 09:14:12
Что ожидаем?
Вот и я не понимаю, Что нужно?
Название: Re: Bluez-tray
Отправлено: Pro от 16 Октябрь 2017, 09:21:51
Что нужно?
нужно принять решение и воплотить в жизнь.

когда у тебя в трее два значка, запуск puppybt делается в каком формате?
puppybt hci1
или просто puppybt?
Название: Re: Bluez-tray
Отправлено: DdShurick от 16 Октябрь 2017, 10:34:46
когда у тебя в трее два значка, запуск puppybt делается в каком формате?
/lib/udev/rules.d/97-bluetooth.rules:
Код
ACTION=="add", KERNEL=="rfkill?", ATTR{type}=="bluetooth", RUN+="bluez.sh %s{name} %k"
Где %s{name} это hci? , а %k это rfkill? .
/lib/udev/bluez.sh строка 8:
Код
/usr/bin/bluez-tray "$@"
bluez-tray.c строки 334 - 339:
Код
	cmd[0]=0;
strcat(cmd,"/usr/bin/puppybt ");
strcat(cmd,argv[1]);
strcat(cmd," ");
strcat(cmd,argv[2]);
strcat(cmd," &");
Где argv[1] это hci? и argv[2] это rfkill? переданные от udev через bluez.sh на bluez-tray. В результате получаем команду типа:
Код
 /usr/bin/puppybt hci1 rfkill2 & 
для второго bt-адаптера.
 Ты же спешишь сразу запустить bluetoothd, который нужен только для трансляции команд через dbus.

Название: Re: Bluez-tray
Отправлено: Pro от 16 Октябрь 2017, 11:02:59
/usr/bin/puppybt hci1 rfkill2 &
rfkill2 в puppybt не используется в качестве параметра, думаю можно убрать.

Ты же спешишь сразу запустить bluetoothd, который нужен только для трансляции команд через dbus.
ты в свой bluez.sh давно заглядывал? там в первых же строках идет запуск bluetoothd. И куда в этом случае ты спешишь?
bluetoothd пока еще нужен для работы bluetooth, так что пока у меня все нормально делается.
Название: Re: Bluez-tray
Отправлено: DdShurick от 16 Октябрь 2017, 12:34:29
И куда в этом случае ты спешишь?
На тебя глядя. А вдруг... :D
bluetoothd пока еще нужен для работы bluetooth
Не уверен на все 100%
у меня все нормально делается.
Дык это ты нормальный, а я не-е-е...
Название: Re: Bluez-tray
Отправлено: Pro от 16 Октябрь 2017, 14:18:56
Самокритично.

Я бы хотел увидеть информацию из udev-monitor при вставлении блютус свистка, сделаешь?

Название: Re: Bluez-tray
Отправлено: DdShurick от 16 Октябрь 2017, 16:38:31
Код
# udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[175.861462] add      /devices/pci0000:00/0000:00:1d.1/usb3/3-1 (usb)
KERNEL[175.864228] add      /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0 (usb)
KERNEL[175.864429] add      /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.1 (usb)
KERNEL[175.864602] add      /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.2 (usb)
UDEV  [175.873724] add      /devices/pci0000:00/0000:00:1d.1/usb3/3-1 (usb)
KERNEL[175.894282] add      /module/ecdh_generic (module)
UDEV  [175.899328] add      /module/ecdh_generic (module)
KERNEL[175.971943] add      /module/bluetooth (module)
KERNEL[175.972058] add      /class/bluetooth (class)
UDEV  [175.977352] add      /class/bluetooth (class)
UDEV  [175.978278] add      /module/bluetooth (module)
KERNEL[175.984983] add      /module/btintel (module)
KERNEL[175.985766] add      /module/btbcm (module)
KERNEL[175.986523] add      /module/btrtl (module)
KERNEL[175.987700] add      /module/btusb (module)
KERNEL[175.992352] add      /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/bluetooth/hci0 (bluetooth)
KERNEL[175.992453] add      /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/bluetooth/hci0/rfkill1 (rfkill)
KERNEL[175.992819] add      /bus/usb/drivers/btusb (drivers)
UDEV  [175.995694] add      /module/btbcm (module)
UDEV  [175.996305] add      /module/btintel (module)
UDEV  [175.997130] add      /module/btrtl (module)
UDEV  [176.003086] add      /bus/usb/drivers/btusb (drivers)
UDEV  [176.003586] add      /module/btusb (module)
UDEV  [176.004177] add      /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.1 (usb)
UDEV  [176.005764] add      /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0 (usb)
UDEV  [176.007174] add      /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.2 (usb)
KERNEL[176.178970] add      /module/bnep (module)
UDEV  [176.184407] add      /module/bnep (module)
UDEV  [237.066928] add      /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/bluetooth/hci0 (bluetooth)
UDEV  [237.071571] add      /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/bluetooth/hci0/rfkill1 (rfkill)
Название: Re: Bluez-tray
Отправлено: loop223 от 17 Октябрь 2017, 03:59:20
Рекомендую ждать версию 5.5 - в ней будет запуск из /etc/xdg
Pralight64(Minirc)-та же проблема- Ошибка D-Bus.(D-Bus setup failed: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory)
Название: Re: Bluez-tray
Отправлено: Pro от 17 Октябрь 2017, 05:11:38
Pralight64(Minirc)-та же проблема- Ошибка D-Bus.(D-Bus setup failed: F
обратитесь к разработчику дистрибутива. Отсутствие system сессии dbus к работе bluetooth отношения не имеет.
Название: Re: Bluez-tray
Отправлено: Pro от 17 Октябрь 2017, 08:05:32
Решение для случая когда адаптер подключается в процессе работы найдено.

При запуске системы нужное количество bluez-tray будет запускаться скриптом bluetooth.sh (в скрипте пока нет реализации поиска нескольких адаптеров) надо как-то распарсить что адаптеров два через цикл

При уже загруженной системе, bluez-tray для вновь подключенного адаптера будет запущен средствами udev через правило.
Название: Re: Bluez-tray
Отправлено: DdShurick от 17 Октябрь 2017, 09:00:20
нужное количество bluez-tray будет запускаться скриптом bluetooth.sh
Выкинуть. Зачем дублировать.
средствами udev через правило.
Вот это и оставить. Оно и при старте системы срабатывает.
Название: Re: Bluez-tray
Отправлено: Pro от 17 Октябрь 2017, 09:04:32
Оно и при старте системы срабатывает.
надоело уже по кругу ходить, я знаю твой метод.
1. Ожидание запуска xorg один фиг через костыль
2. systemd прибивает процессы
3. Твои же собственные слова - bluetoothd так рано запускать не обязательно.
Название: Re: Bluez-tray
Отправлено: DdShurick от 17 Октябрь 2017, 09:16:02
systemd прибивает процессы
Меня systemd не интересует и ни разу.
bluetoothd так рано запускать не обязательно.
Правильно. Надо запускать из puppybt.
Название: Re: Bluez-tray
Отправлено: Pro от 17 Октябрь 2017, 09:19:33
Правильно. Надо запускать из puppybt.
почему эти новости мы узнаем только сейчас?
Название: Re: Bluez-tray
Отправлено: Pro от 17 Октябрь 2017, 09:20:06
Меня systemd не интересует и ни разу.
меня не интересует что это тебя не интересует. Факт имеет место быть.
Название: Re: Bluez-tray
Отправлено: sfs от 20 Октябрь 2017, 14:32:16
Кто-нибудь проверял в pra-roll (если да - включу в OLS) ? Прошу отписаться и дать ссылку на проверенный модуль.
Без systemd в ПРА пока запустить не удалось (http://forum.puppyrus.org/index.php?topic=20112.msg136202#msg136202)
Название: Re: Bluez-tray
Отправлено: DdShurick от 23 Октябрь 2017, 09:39:35
 Информация к размышлению
Код
bash-4.3# ./btmgmt pair BC:B1:F3:46:7C:44
Pairing with BC:B1:F3:46:7C:44 (BR/EDR)
hci0 BC:B1:F3:46:7C:44 type BR/EDR connected eir_len 7
hci0 BC:B1:F3:46:7C:44 request PIN
PIN Request (press enter to reject) >> 0000
PIN Reply successful
Paired with BC:B1:F3:46:7C:44 (BR/EDR)
bash-4.3# pidof bluetoothd
bash-4.3#
Как видите bluetoothd отключен, с включённым выдаёт ошибку. Ну и зачем он тогда?
Название: Re: Bluez-tray
Отправлено: Pro от 23 Октябрь 2017, 09:51:04
Как видите bluetoothd отключен, с включённым выдаёт ошибку. Ну и зачем он тогда?
ааа это btmgmt, так он тоже работает с dbus , так что не вариант.
Название: Re: Bluez-tray
Отправлено: Pro от 23 Октябрь 2017, 09:59:45
Информация к размышлению
О!! еще и bluez-tray можно заменить на yad+btmgmt управлять контроллером умеет
Название: Re: Bluez-tray
Отправлено: DdShurick от 23 Октябрь 2017, 12:27:35
так он тоже работает с dbus
Неправда твоя
Код
# pidof bluetoothd
3293
# kill 3293
# pidof dbus-daemon
3569 3033
# kill 3033
# kill 3569
# pidof dbus-daemon
# pidof bluetoothd                         
# ./btmgmt pair BC:B1:F3:46:7C:44           
Pairing with BC:B1:F3:46:7C:44 (BR/EDR)
hci0 BC:B1:F3:46:7C:44 type BR/EDR connected eir_len 7
hci0 BC:B1:F3:46:7C:44 request PIN
PIN Request (press enter to reject) >> 0000
PIN Reply successful
Paired with BC:B1:F3:46:7C:44 (BR/EDR)
#
Убедился?
Название: Re: Bluez-tray
Отправлено: Pro от 23 Октябрь 2017, 12:30:33
Это при паринге не работает, а в других случаях?

Например при удалении устройства,  в dbus я изменение наблюдаю.
Название: Re: Bluez-tray
Отправлено: DdShurick от 23 Октябрь 2017, 12:47:29
Код
# grep dbus btmgmt.c
#
Убедился?
Код
# pidof bluetoothd               
3333
# pidof dbus-daemon             
3120
# ./btmgmt pair BC:B1:F3:46:7C:44           
Pairing with BC:B1:F3:46:7C:44 (BR/EDR)
hci0 BC:B1:F3:46:7C:44 type BR/EDR connected eir_len 7
hci0 BC:B1:F3:46:7C:44 request PIN
PIN Request (press enter to reject) >> 0000
Pairing with BC:B1:F3:46:7C:44 (BR/EDR) failed. status 0x05 (Authentication Failed)
#
И в том, что bluetoothd вреден, убедился?
Название: Re: Bluez-tray
Отправлено: Pro от 23 Октябрь 2017, 14:00:24
Кому вреден?

Что ты пытаешься доказать я не понимаю, почему мне приходится тратить время на додумывание.
Ладно, завтра перепишу код чтобы без bluez-tray стало.
Как там в твоих примерах стало с обнаружением невидимого и подключенного устройства?
Название: Re: Bluez-tray
Отправлено: Pro от 01 Декабрь 2017, 05:11:42
Выложил версию 5.6 для х32 и х64
- изменены скрипты запуска при загрузке системы, должно запускать bluez-tray для каждого адаптера

- обновлен bluez-alsa (включена поддержка aptx)
Название: Re: Bluez-tray
Отправлено: DdShurick от 01 Декабрь 2017, 08:57:56
Выложил версию 5.6 для х32 и х64
PRA?
должно запускать bluez-tray для каждого адаптера
Оно изначально так и было.
Название: Re: Bluez-tray
Отправлено: Pro от 01 Декабрь 2017, 09:05:13
PRA?
теоретически везде должно работать, практически yad и ntf если нету то не сработает.

Оно изначально так и было.
в предыдущих версиях такого не было у меня. У тебя было, ты через udev запускал.
В этой версии сделано по другому, если адаптер добавляется при уже загруженной системе, то bluez-tray запустит udev.
Если система загружается уже с двумя адаптерами - то bluez-tray запустится скриптом bluetooth.sh (ну по крайней мере должен).
Название: Re: Bluez-tray
Отправлено: sfs от 01 Декабрь 2017, 10:13:25
Выложил версию 5.6 для х32 и х64
Прошу, у кого есть на чем, проверить в pra-retro и roll
По итогу будем решать о включении в исо
Название: Re: Bluez-tray
Отправлено: loop223 от 09 Февраль 2018, 04:29:53
Прошу, у кого есть на чем, проверить в pra-retro и roll
Roll gtk2. Версию 5.6 тестил на буке и стационаре( 2 разных передатчика) только на передачу звука.Все завелось без лишних усилий.Только вот гуй не руссифицирован(не все поймут). Минус только в том, что невозможно регулировать звук из системы.В ролл не нашел альса миксер.Изменяю звук непосредственно в плеере ютюб. Спасибо за отличную работу. З.Ы думаю с другими девайсами не должно возникнуть проблем(мыши,клавы).Теперь только вопрос автоматизациии остался.Хочется чтоб при загрузке системы на автомате спаривались устройства и включался профиль передачи звука системы по блютус.Пока что делаю это ручками из гуя. Не критично для меня, в принципе.
Название: Re: Bluez-tray
Отправлено: Pro от 09 Февраль 2018, 04:32:16
З.Ы думаю с другими девайсами не должно возникнуть проблем(мыши,клавы)
ну да проблем не будет, оно в гуи совсем никак не реализовано
Название: Re: Bluez-tray
Отправлено: sfs от 09 Февраль 2018, 09:17:44
В ролл не нашел альса миксер
В меню его нет. alsamixer в консоле
Добавить модуль в исо или рано?
Название: Re: Bluez-tray
Отправлено: loop223 от 09 Февраль 2018, 13:05:00
Добавить модуль в исо или рано?
Пусть проверит еще, кто-нибудь. Проблемы которые были в Пра64 в ролл отсутствуют.(проблемы с Dbus сессией) и это делает возможным запуск гуя. Но в ролл пока непонятки с громкостью, у меня пропадает регулеровка звука из трея, а из консоли выдает ошибку типа alsamixer и  bluealsa уже заняты.Вывод громкости регулируется только из программ.
Название: Re: Bluez-tray
Отправлено: sfs от 09 Февраль 2018, 13:06:23
Проблемы которые были в Пра64 в ролл отсутствуют.(проблемы с Dbus сессией)
Даже с minirc?
Название: Re: Bluez-tray
Отправлено: loop223 от 09 Февраль 2018, 13:15:03
ROLL-180101: GTK2-01 он же по умолчанию без системд.Если вы про Пра64 Minirc, то тоже не запускался bluetoothd.
Название: Re: Bluez-tray
Отправлено: sfs от 09 Февраль 2018, 13:46:27
ROLL-180101: GTK2-01 он же по умолчанию без системд
да
Название: Re: Bluez-tray
Отправлено: loop223 от 17 Февраль 2018, 05:12:00
Значит так. Я писал, что последняя сборка bluz-tray работает в   ROLL-180101: GTK2-01 по умолчанию без костылей.Это неправильно.Начну по порядку.
1. При старте системы ( голый ИСО без апдейтов)   в гуе определяется устройство корректно, но не работает @Pair Auto- pair manual тоже не работает.  pair manual не работает так как blutoothctl ругается на либы:
Название: Re: Bluez-tray
Отправлено: loop223 от 17 Февраль 2018, 05:20:58
2. В pacman ставлю пакет bluez-tools и после этого начинает работать  blutoothctl и кнопка pair manual соответственно.
Спариваюсь, но не  могу connect т.к не запущен отдельно в командной строке sudo bluealsa. К этому я пришел после нескольких десятков вариантов запуска/убивания процессов и ударов в бубен.
Название: Re: Bluez-tray
Отправлено: Pro от 17 Февраль 2018, 05:23:17
Это норма, как мы помним, без этой библиотеки и ядро не собирается.
Название: Re: Bluez-tray
Отправлено: Pro от 17 Февраль 2018, 05:24:54
А зачем вы делаете connect? Спарили устройство и все, закрываем.
Название: Re: Bluez-tray
Отправлено: loop223 от 17 Февраль 2018, 05:27:56
В итоге я смог таки подцепить BT  к муз центру и вещать на него все системные звуки, но не надолго, тк прилетело обновление 089-prar-upd-180101-sf16 и прибило dbus.
bluez- tray работает с 089-prar-upd-180101-sf07 и  с костылями описаными выше.
Название: Re: Bluez-tray
Отправлено: loop223 от 17 Февраль 2018, 05:28:40
Спарили устройство и все
этого не достаточно для моего устройства, т.к только после connect мой свисток провозглашает что к нему подцепились и можно на него подавать звуки
Название: Re: Bluez-tray
Отправлено: Pro от 17 Февраль 2018, 05:49:39
Спарили устройство и все
этого не достаточно для моего устройства, т.к только после connect мой свисток провозглашает что к нему подцепились и можно на него подавать звуки
connect делается из puppybt когда вы выбираете кнопку - отправки или принятия звука. Через dbus.
Название: Re: Bluez-tray
Отправлено: loop223 от 17 Февраль 2018, 06:29:08
connect делается из puppybt когда вы выбираете кнопку
ПРи pair manual не появляется кнопка connect, ПРи pair manual в гуе остается рабочем только send sound... play sound
Для себя я разобрался и описал подводные камни.Мой метод работает для меня.Гуй далек от совершенства.Готов тестировать дальше.
Название: Re: Bluez-tray
Отправлено: Pro от 17 Февраль 2018, 07:14:42
Ну тут проблема в том, что когда вы делаете pair manual, gui не получает информации о том что устройство уже стало доступно для подключения, я это вроде пытался реализовать.

Надо скриншоты бы, скрин для неспаренного состояния, скрин после выполнения pair manual
Название: Re: Bluez-tray
Отправлено: Pro от 17 Февраль 2018, 07:18:58
До совершенства гую этому не хватает еще поднятия сетевого соединения ethernet и паринга без консоли.
Название: Re: Bluez-tray
Отправлено: sfs от 17 Февраль 2018, 08:05:31
прилетело обновление 089-prar-upd-180101-sf16 и прибило dbus.
Да. Он поднимался из /etc/rc.d/nm (minirc). И это было не нужно при отсутствии nm.
Т.е. если он нужен - добавляйте в ENABLED= (http://wiki.puppyrus.org/setups/systemd#%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%B0%D0%BC%D0%B8) или руками :
Код
sudo rc start dbus
Название: Re: Bluez-tray
Отправлено: loop223 от 17 Февраль 2018, 14:12:11
Dbus стартует после этой команды, но не могу sudo bluealsa
Название: Re: Bluez-tray
Отправлено: Pro от 17 Февраль 2018, 16:13:46
Dbus стартует после этой команды, но не могу sudo bluealsa
Потому что bluetoothd не запущен наверняка
Название: Re: Bluez-tray
Отправлено: Pro от 27 Февраль 2018, 02:35:04
loop223, киньте скриншотов плеаз :))
Название: Re: Bluez-tray
Отправлено: loop223 от 27 Февраль 2018, 11:07:22
Хорошо, каких конкретно? Могу видео заисать, как шаг за шагом "завожу" на стоковом Roll.
Ps. не смог спарить и получить звук при апдейте на sf16, даже при "автозапуске" dbus.
Название: Re: Bluez-tray
Отправлено: sfs от 27 Февраль 2018, 11:12:18
не смог спарить и получить звук при апдейте на sf16, даже при "автозапуске" dbus.
Ничего в 089-*sf16 по этой теме не менял
Название: Re: Bluez-tray
Отправлено: Pro от 27 Февраль 2018, 11:42:21
Надо скриншоты бы, скрин для неспаренного состояния, скрин после выполнения pair manual

После выполнения pair manual надо закрыть окно puppybt и открыть его заново.

Интересно, можно ли сделать чтобы при закрытии окна терминала, выполнялось действие
Название: Re: Bluez-tray
Отправлено: sfs от 27 Февраль 2018, 11:47:38
можно ли сделать чтобы при закрытии окна терминала, выполнялось действие
Код
nohup действие &
Название: Re: Bluez-tray
Отправлено: Pro от 01 Март 2018, 03:15:36
nohup действие &
не то совсем.
Название: Re: Bluez-tray
Отправлено: Pro от 02 Апрель 2018, 08:56:13
в PRA-roll bluetoothctl перестал работать, надо будет перекомпилировать или заменить bluez5.

Подключил наушники Trekz titanium, алгоритм:
1. Наушники в режим паринга включаем
2. Запускаем PuppyBT
3. Нажимаем кнопку Pair Auto
4. Нажимаем кнопку Send audio to device (здесь у меня с первого раза не сработало т.к. гарнитура не успела осознать что паринг прошел, по второму нажатию написало что подключено).
5. проверяем звук кнопкой Test Sound.

зы. С кнопками громкости и паузы хотелось бы разобраться
Название: Re: Bluez-tray
Отправлено: sfs от 02 Апрель 2018, 08:58:55
в PRA-roll bluetoothctl
Не из-за этого? (http://forum.puppyrus.org/index.php?topic=18822.msg141236#msg141236)
Название: Re: Bluez-tray
Отправлено: Pro от 02 Апрель 2018, 09:10:41
нет там ошибка другая типа насчет линковки с dbus, сам dbus стартует нормально
Название: Re: Bluez-tray
Отправлено: Pro от 14 Июнь 2018, 03:42:10
Выложил на github версию 5.7
обновлен bluez-5.50 и bluez-alsa
скрипты проверены shellcheck и изменены
добавлена проверка наличия DBus system сессии

Странно что shellcheck советовал везде заменять код вида
Код
kill $PID
[ $? = 0 ] && echo "killed"

на код
Код
[ $(kill $PID) ] && echo "killed" 
у меня подобная конструкция не сработала, задача стояла в анализе кода завершения и получается что не анализируется.
Название: Re: Bluez-tray
Отправлено: Pro от 14 Июнь 2018, 05:37:05
довольно прекрасные новости, bluetoothctl теперь имеет нормальный неинтерактивный режим и лезти в dbus особой необходимости нет. Работают конструкции типа
bluetootctl connect 11:22:33:44:55
bluetoothctl scan on --timeout 10
Название: Re: Bluez-tray
Отправлено: sfs от 14 Июнь 2018, 08:45:36
Авторский модуль для пра будет?
Название: Re: Bluez-tray
Отправлено: Pro от 14 Июнь 2018, 08:59:11
я выкладываю на гитхаб в виде pfs модуля
Название: Re: Bluez-tray
Отправлено: sfs от 14 Июнь 2018, 09:00:26
В каком нибудь пра его проверял?
Название: Re: Bluez-tray
Отправлено: Pro от 14 Июнь 2018, 09:08:48
в PRA x32 работает
в PRA x64 нет system DBus сессии - не работает.
Название: Re: Bluez-tray
Отправлено: sfs от 14 Июнь 2018, 09:15:20
я выкладываю на гитхаб в виде pfs модуля
дай ссылку. Из шапки - похоже не то
Название: Re: Bluez-tray
Отправлено: Pro от 14 Июнь 2018, 09:17:53
https://github.com/Pro-pra/PuppyBT
Название: Re: Bluez-tray
Отправлено: sfs от 14 Июнь 2018, 09:24:05
Добавил в шапку, залил в репу puppybt-5.7-bluez5.50-pr01.pfs (ftp://ftp.yandex.ru/puppyrus/puppyrus-a/pra03/pfs/puppybt-5.7-bluez5.50-pr01.pfs)
 (ftp://ftp.yandex.ru/puppyrus/)
прошу проверить в pra-roll
спасибо+
Название: Re: Bluez-tray
Отправлено: Pro от 20 Июнь 2018, 08:00:34
У кого установлен обычный Arch linux, проверьте есть ли /run/dbus/system_bus_socket
Название: Re: Bluez-tray
Отправлено: Pro от 20 Июнь 2018, 08:50:22
manjaro xfce 17.1.10 (iso в виртуалке) - есть
ок спасибо.
Название: Re: Bluez-tray
Отправлено: Pro от 12 Июль 2018, 02:19:18
http://murga-linux.com/puppy/viewtopic.php?t=113799 не пригодится здесь?
здесь нет, но ему пригодится
Название: Re: Bluez-tray
Отправлено: Pro от 10 Сентябрь 2018, 09:13:34
у меня что-то bluetooth после пробуждения из ждущего режима стал нормально так работать, надо наладить рестарт bluez-tray и будет вобще хорошо.

Пока попробую закоментировать отключение bluez-tray при засыпании, посмотрим, может и не придется править ничего
Название: Re: Bluez-tray
Отправлено: Pro от 10 Сентябрь 2018, 10:55:27
аха, выяснено что при пробуждении меняется index у bluetooth адаптера, т.е. он вместо rfkill1 становится rfkill2 и так по нарастающей. Разработчики считают что это нормально и для включения-выключения адаптера рекомендуют не использовать /sys а использовать утилиту rfkill.
Название: Re: Некоторые размышления
Отправлено: Pro от 23 Октябрь 2018, 15:37:05
Индекс не я меняю, а rfkill. Вот его и пинай.
видите ли сэр, смена индекса не вредит rfkill и устройство продолжает работать, но вредит bluez-tray, который от этого падает. Предъявить авторам rfkill не-че-го от слова совсем.
Название: Re: Re: Некоторые размышления
Отправлено: DdShurick от 23 Октябрь 2018, 17:24:38
при изменении индекса сразу падает.
Смена индекса происходит после пробуждения, но (/tmp/bootinit.log):
Код
/init: line 84: can't create /sys/power/tuxonice/resume: nonexistent directory
/init: line 86: can't create /sys/power/tuxonice/do_resume: nonexistent directory
у меня она не работает. Как проверить bluez-tray? Ядро твоё последнее 4.14.77
Название: Re: Некоторые размышления
Отправлено: Pro от 24 Октябрь 2018, 02:34:36
Как проверить bluez-tray?
я его уже проверил. Я не программист конечно, но считаю что информации по проблеме достаточно. Железо для тестирования есть в наличии. Решение проблемы вполне возможно.

Не хотите перейти в его тему?  ;)
погоди.
Название: Re: Re: Некоторые размышления
Отправлено: DdShurick от 24 Октябрь 2018, 09:12:33
считаю что информации по проблеме достаточно.
Я тупой, мне недостаточно. Посмотрел на старой системе, hibernate не работает, syspend работает. После выхода из syspend rfkill меняется но bluez-tray никуда не падает. Давай разбираться, заодно и x64 сделаем.
Название: Re: Re: Некоторые размышления
Отправлено: Pro от 24 Октябрь 2018, 09:19:41
считаю что информации по проблеме достаточно.
Я тупой, мне недостаточно. Посмотрел на старой системе, hibernate не работает, syspend работает. После выхода из syspend rfkill меняется но bluez-tray никуда не падает. Давай разбираться, заодно и x64 сделаем.
возможно разной время инициализации устройства и получается что у меня некоторое время после пробуждения вобще нет bluetooth, а потом он появляется, за это время программа падает. больше объяснений нет и как тогда продолжает работать bluez-tray если его конкретно запускали работать с rfkill0 а у устройства уже rfkill1 стал. Он по идее уже не должен управлять устройством, попробуй.
Название: Re: Re: Некоторые размышления
Отправлено: DdShurick от 25 Октябрь 2018, 12:25:40
 Собрал bluez-5.57 + bluez-alsa-1.3.1 + bluez-tray (x86_64) и pm-utils-1.4.1. Буду пытать.
Результат: pm-suspend отрабатывает нормально, bluez-tray переходит в down и обнуляется bdaddr.
pm-hibernate: на несколько секунд гаснет дисплей и всё возвращается обратно
Код
# cat /var/log/pm-suspend.log 
Initial commandline parameters:
Thu Oct 25 11:04:35 UTC 2018: Running hooks for hibernate.
Thu Oct 25 11:04:35 UTC 2018: performing hibernate
sh: write error: No such device
Thu Oct 25 11:04:37 UTC 2018: Awake.
Thu Oct 25 11:04:37 UTC 2018: Running hooks for thaw
Thu Oct 25 11:04:37 UTC 2018: Finished.
Название: Re: Re: Некоторые размышления
Отправлено: Pro от 25 Октябрь 2018, 14:45:18
Вобще модуль для х64 уже давно сделан был
Название: Re: Re: Некоторые размышления
Отправлено: DdShurick от 25 Октябрь 2018, 15:10:32
Вобще модуль для х64 уже давно сделан был
"Стала пуганой птица удачи, и не верит чужим рукам" (Машина времени «синяя птица»)
Название: Re: Re: Некоторые размышления
Отправлено: Pro от 25 Октябрь 2018, 15:38:45
Да об чем базар, был бы толк.
Название: Re: Re: Некоторые размышления
Отправлено: DdShurick от 27 Октябрь 2018, 09:42:07
 Скомпилировал bluez-5.50
Код
./configure --prefix=/usr --sysconfdir=/etc localstatedir=/var --libdir=/usr/lib64 --disable-systemd --disable-monitor --disable-tools --enable-library 
Получил bluetoothctl без ничего и libbluetooth.so.3. Интерактивный режим работает, но придумал его явно какой-то извращенец. Соединение с bluetooth-наушниками устанавливается, звук не идёт, но это уже проблемы bluealsa. Не компилируется bt-scah (x86_64)


Название: Re: Bluez-tray
Отправлено: DdShurick от 28 Октябрь 2018, 21:14:36
 Получил такой вывод bt-scan
Код
Scanning ...
00:11:67:6A:05:5D SPARKLE
1 0 2 [ Render Audio ] Loudspeaker Audio/Video
BC:B1:F3:46:7C:44 C3520
1 0 2 [ Net Capture Obex Phone ] Cell Phone
цифры обозначают pscan_rep_mode, pscan_mode, pscan_period_mode, остальное понятно. Кажется, можно обойтись без sdptool.
Что тут убрать лишнее?
Да об чем базар, был бы толк.
Толк выйдет..., бестолочь останется.
Название: Re: Bluez-tray
Отправлено: Pro от 29 Октябрь 2018, 02:11:30
pscan_rep_mode, pscan_mode, pscan_period_mode
ненужно

Net Capture Obex Phone
сложно, лучше кодами типа 0x117
Название: Re: Bluez-tray
Отправлено: DdShurick от 29 Октябрь 2018, 09:00:08
Посмотри, что выдаёт hcitool-5.50.
сложно, лучше кодами типа 0x117
Для скрипта одно и то же, для нас понятнее.
Название: Re: Bluez-tray
Отправлено: Pro от 29 Октябрь 2018, 09:31:15
Для скрипта одно и то же,
в моем скрипте анализируются 0х1235 коды.

Посмотри, что выдаёт hcitool-5.50.
он выдает command not found. В моем модуле hcitool не используется.
Название: Re: Bluez-tray
Отправлено: DdShurick от 29 Октябрь 2018, 10:16:43
в моем скрипте анализируются 0х1235 коды.
А тут они уже проанализированы.
он выдает command not found.
Я имел в виду выхлоп hcitool в архиве. Жесть.
В моем модуле hcitool не используется.
Саша, ты неправ. Первая строка scan.c
Код
/*The part of hcitool-5.46*/
Так что используется, но без излишеств.
Мне кажется, что вывод bt-scan надо сделать так: "BD-address" "Имя устройства" "Тип устройства" "Сервисы" одной строкой с записью в /tmp/btscan.lst. Твоему скрпту это никак не повредит.
Название: Re: Bluez-tray
Отправлено: Pro от 29 Октябрь 2018, 10:21:32
Мне кажется, что вывод bt-scan надо сделать так: "BD-address" "Имя устройства" "Тип устройства" "Сервисы" одной строкой с записью в /tmp/btscan.lst. Твоему скрпту это никак не повредит.
сейчас мне бы не повредило чтобы у меня значек в панели не исчезал.


Саша, ты неправ. Первая строка scan.c
я прав.


Название: Re: Bluez-tray
Отправлено: DdShurick от 29 Октябрь 2018, 10:29:39
чтобы у меня значек в панели не исчезал.
Попробуй без systemd, у меня то не исчезает. Попробуй записать в bluez.sh так (последняя строка) :
Код
/usr/bin/bluez-tray "$@" &
я прав.
Не, не прав  :P
Название: Re: Bluez-tray
Отправлено: Pro от 29 Октябрь 2018, 10:37:19
Попробуй записать в bluez.sh так (последняя строка) :
нет у меня такого скрипта запускается как sudo bluez-tray $HCI_DEV $HCI_RFKILL &

Не, не прав  :P
надоел уже, капец как.
Название: Re: Bluez-tray
Отправлено: DdShurick от 29 Октябрь 2018, 11:29:48
запускается как sudo bluez-tray $HCI_DEV $HCI_RFKILL &
Оттого и твои проблемы
нет у меня такого скрипта
Надо чтоб был
надоел уже, капец как.
То ли ещё будет :)
Вот bt-scan.lst
Код
20:A9:0E:72:AF:9C "ALCATEL ONETOUCH 2012D" "Cell Phone" "Net Capture Obex Audio Phone "
BC:B1:F3:46:7C:44 "C3520" "Cell Phone" "Net Capture Obex Phone "
Разве плохо?
Название: Re: Bluez-tray
Отправлено: Pro от 29 Октябрь 2018, 12:44:05
bluez-tray $HCI_DEV $HCI_RFKILL & и как его еще запускать, вобще-то параметры запуска тобой определены.

Цитата
Разве плохо
скриптом обрабатывать плохо. У тебя просто нет повторяищихся сервисов, вот вылезет два раза Capture и начнется веселье.
Название: Re: Bluez-tray
Отправлено: DdShurick от 29 Октябрь 2018, 13:13:51
и как его еще запускать
Правилом udev или юнитом systemd. Провёл эксперимент:
Код
# bluez-tray hci0 rfkill0 &
[1] 1084
# pm-suspend
Can't open statefile: Нет такого файла или каталога
[1]+  Выход 1            bluez-tray hci0 rfkill0
Как видишь, запущенный командой убился, а запущенный udev живёт.
вот вылезет два раза Capture
А такое может быть? Пример пожалуйста.
Название: Re: Bluez-tray
Отправлено: Pro от 29 Октябрь 2018, 13:35:16
Правилом udev
ну есть правило.
Как видишь, запущенный командой убился, а запущенный udev живёт.
вот и надо чтоб не убивался, он убивается не потому что его снаружи убивают,  а сам.


А такое может быть? Пример пожалуйста.
https://en.wikipedia.org/wiki/List_of_Bluetooth_profiles у тебя по первому слову выборка? ну вот смотри есть и совпадения.
Название: Re: Bluez-tray
Отправлено: DdShurick от 29 Октябрь 2018, 14:52:48
ну есть правило.
А скрипт?
вот и надо чтоб не убивался, он убивается не потому что его снаружи убивают,  а сам.
Правильно делает, что убивается, вдруг какой дурак неправильно запустит. Ты то вот всегда прав, а другие не
ну вот смотри
Куда? Я инглиш в таком количестве не понимаю.
два раза Capture
В разных строках? Они будут обрабатываться отдельно.
Название: Re: Bluez-tray
Отправлено: Pro от 29 Октябрь 2018, 15:11:01
А скрипт?
скрипта нет, запускается напрямую.


Правильно делает, что убивается, вдруг какой дурак неправильно запустит. Ты то вот всегда прав, а другие не
если программа запустилась - значит запущена правильно. Нечего завершать работу.


В разных строках? Они будут обрабатываться отдельно.
обрабатываться они будут отдельно, а в выводе программы они будут РЯДОМ и парсить это дело будет невозможно. Или ты в свою программу занес только основное, и потом для добавления чего-то надо будет перекомпилировать? так не годится.
Название: Re: Bluez-tray
Отправлено: DdShurick от 29 Октябрь 2018, 15:44:43
скрипта нет, запускается напрямую.
Код
ACTION=="add", KERNEL=="rfkill?", ATTR{type}=="bluetooth", RUN+="bluez.sh %s{name} %k"
У тебя вместо bluez.sh bluez-tray?
если программа запустилась - значит запущена правильно. Нечего завершать работу.
После suspend rfkill перезапускается, и становится неправильно. Исправить можно, если динамически брать значение rfkill из /sys/class/bluetooth, но это будет дополнительная бесполезная нагрузка на компьютер. А оно надо, когда с этим udev справляется?
Или ты в свою программу занес только основное
Всё, что было в hcitool-5.46. Могу добавить из 5.50
Название: Re: Bluez-tray
Отправлено: Pro от 30 Октябрь 2018, 02:19:50
А оно надо, когда с этим udev справляется?
разобрался. udev не видит xorg сессии, нужно передавать export DISPLAY=:0 в скрипте. Но systemd все равно убивает по таймауту, видимо придется сервис писать :(

Всё, что было в hcitool-5.46. Могу добавить из 5.50
там нет совпадающих названий профилей? может хоть в скобках писать (0х1002) код?
Название: Re: Bluez-tray
Отправлено: DdShurick от 30 Октябрь 2018, 07:04:03
разобрался. udev не видит xorg сессии
Я думал, что это общеизвестная истина.
Но systemd все равно убивает по таймауту
От Леннартова поделия добра не жди.
там нет совпадающих названий профилей?
Список больше.
может хоть в скобках писать (0х1002) код?
Надо поэкспериментировать. Действительно каждый раз переписывать и перекомпилировать .. :(
Сейчас основная головная боль - pairing, не получается вычленить агента из bluetoothctl.
Название: Re: Bluez-tray
Отправлено: Pro от 30 Октябрь 2018, 07:27:16
боль - pairing, не получается вычленить агента из bluetoothctl.
я написал разработчикам насчет автоматического паринга, может сделают.


От Леннартова поделия добра не жди.
из чисто спортивного интереса добить.

Название: Re: Bluez-tray
Отправлено: DdShurick от 30 Октябрь 2018, 10:36:49
может сделают.
Скорее всего нет, слишком старательно они агента "закодировали"
из чисто спортивного интереса добить.
Добей, и вынеси за пределы ринга :)
Название: Re: Bluez-tray
Отправлено: DdShurick от 31 Октябрь 2018, 10:09:15
 Подумал, поразмышлял сам с собой и решил, что ты прав. Не нужна дополнительная информация в bt-scan. Она неполная и не совсем достоверная. Надо копать в сторону sdptool. Добавил в bt-scan HCIDEVUP, посмотри, что получилось.
Название: Re: Bluez-tray
Отправлено: Pro от 31 Октябрь 2018, 10:40:15
Добей, и вынеси за пределы ринга :)
добил вроде.


Добавил в bt-scan HCIDEVUP
включение адаптера? но ведь это делал bluez-tray. зачем трогать sdptool я не понимаю, оно и так нормальное
Название: Re: Bluez-tray
Отправлено: DdShurick от 31 Октябрь 2018, 12:23:44
включение адаптера? но ведь это делал bluez-tray.
Bluez-tray это и делает, но из командной строки запускать bt-scan иак удобнее, да и не мешает оно.
зачем трогать sdptool я не понимаю, оно и так нормальное
Надо ему "укоротить язык", слишком многословен. Ведь bt-scan это обрезанный hcitool scan и вроде нормально получилось. Почему бы из sdptool не сделать bt-browse?
Название: Re: Bluez-tray
Отправлено: DdShurick от 01 Ноябрь 2018, 22:23:03
Почему бы из sdptool не сделать bt-browse?
Сделал. Вот пример "обрезанного" вывода:
Код
bash-4.4# ./bt-browse BC:B1:F3:46:7C:44
Browsing BC:B1:F3:46:7C:44 ...
  "OBEX Object Push" (0x1105)
  "Headset Audio Gateway" (0x1112)
  "Generic Audio" (0x1203)
  "Handsfree Audio Gateway" (0x111f)
  "Generic Audio" (0x1203)
  "Audio Source" (0x110a)
  "AV Remote Target" (0x110c)
  "OBEX File Transfer" (0x1106)
  "Serial Port" (0x1101)
  "Dialup Networking" (0x1103)
  "Generic Networking" (0x1201)
Название: Re: Bluez-tray
Отправлено: DdShurick от 03 Ноябрь 2018, 09:27:27
 Посмотри
Название: Re: Bluez-tray
Отправлено: Pro от 03 Ноябрь 2018, 11:55:15
Во вторник только. На гитхаб залей актуальное, мне возможно компилировать придется.
Название: Re: Bluez-tray
Отправлено: DdShurick от 04 Ноябрь 2018, 20:45:40
 Вот первые наброски, в стиле autoNet. Иконки, конечно, надо подбирать получше, но пока что нашёл.
Название: Re: Bluez-tray
Отправлено: Pro от 05 Ноябрь 2018, 03:23:57
Мне кажется так сложнее, когда функции на виду, сразу жмешь что надо, а тут еще выбирать, потом уже функции
Название: Re: Bluez-tray
Отправлено: Ilbych от 05 Ноябрь 2018, 09:12:14
Иконки, конечно, надо подбирать получше
Есть же сайты с бесплатными иконками, в разных форматах. Типа этого - https://ru.freepik.com/free-icons
Название: Re: Bluez-tray
Отправлено: DdShurick от 05 Ноябрь 2018, 09:44:02
Мне кажется так сложнее, когда функции на виду, сразу жмешь что надо, а тут еще выбирать, потом уже функции
Мне тоже так казалось, но суровая действительность показывает, что не все устройства позволяют sdp browse до pair, в частности мои наушники Sparkle.
Код
bash-4.4# ./bt-scan
Scanning ...
20:A9:0E:72:AF:9C "n/a" Phone 0
00:11:67:6A:05:5D "SPARKLE" AV 0
BC:B1:F3:46:7C:44 "C3520" Phone 0
bash-4.4# ./bt-browse 00:11:67:6A:05:5D
Failed to connect to SDP server on 00:11:67:6A:05:5D: Invalid exchange
bash-4.4# bluetoothctl
Agent registered
[bluetooth]# scan on
Discovery started
[CHG] Controller 00:11:67:BF:03:0C Discovering: yes
[NEW] Device 00:11:67:6A:05:5D 00-11-67-6A-05-5D
[NEW] Device BC:B1:F3:46:7C:44 C3520
[NEW] Device 20:A9:0E:72:AF:9C 20-A9-0E-72-AF-9C
[CHG] Device 00:11:67:6A:05:5D LegacyPairing: no
[CHG] Device 00:11:67:6A:05:5D Name: SPARKLE
[CHG] Device 00:11:67:6A:05:5D Alias: SPARKLE
[CHG] Device 20:A9:0E:72:AF:9C LegacyPairing: no
[CHG] Device 20:A9:0E:72:AF:9C Name: ALCATEL ONETOUCH 2012D
[CHG] Device 20:A9:0E:72:AF:9C Alias: ALCATEL ONETOUCH 2012D
[CHG] Device 00:11:67:6A:05:5D LegacyPairing: yes
[CHG] Device 00:11:67:6A:05:5D RSSI: -41
[CHG] Device 20:A9:0E:72:AF:9C LegacyPairing: yes
[bluetooth]# pair 00:11:67:6A:05:5D
Attempting to pair with 00:11:67:6A:05:5D
Request PIN code
[agent] Enter PIN code: 0000
[CHG] Device 00:11:67:6A:05:5D Connected: yes
[CHG] Device 00:11:67:6A:05:5D Modalias: bluetooth:v0039p13A4d0104
[CHG] Device 00:11:67:6A:05:5D UUIDs: 00001108-0000-1000-8000-00805f9b34fb
[CHG] Device 00:11:67:6A:05:5D UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device 00:11:67:6A:05:5D UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Device 00:11:67:6A:05:5D UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device 00:11:67:6A:05:5D UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device 00:11:67:6A:05:5D UUIDs: 0000112e-0000-1000-8000-00805f9b34fb
[CHG] Device 00:11:67:6A:05:5D UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device 00:11:67:6A:05:5D ServicesResolved: yes
[CHG] Device 00:11:67:6A:05:5D Paired: yes
Pairing successful
[CHG] Device 00:11:67:6A:05:5D ServicesResolved: no
[CHG] Device 00:11:67:6A:05:5D Connected: no
[bluetooth]# quit
bash-4.4# ./bt-browse 00:11:67:6A:05:5D
Browsing 00:11:67:6A:05:5D ...
  "PnP Information" (0x1200)
Failed to connect to SDP server on 00:11:67:6A:05:5D: Connection refused
  "Phonebook Access - PCE" (0x112e)
  "Headset" (0x1108)
  "Generic Audio" (0x1203)
  "Handsfree" (0x111e)
  "Generic Audio" (0x1203)
  "Audio Sink" (0x110b)
  "AV Remote" (0x110e)
  "AV Remote Target" (0x110c)
bash-4.4#
Название: Re: Bluez-tray
Отправлено: Pro от 05 Ноябрь 2018, 09:48:04
Ну так и пусть, в существующем гуи будет вкладка с кнопкой pair и все, вполне прилично выглядит
Название: Re: Bluez-tray
Отправлено: DdShurick от 06 Ноябрь 2018, 09:24:39
Получил вот такой выхлоп bt-browse:
Код
bash-4.4# ./bt-browse BC:B1:F3:46:7C:44
Browsing BC:B1:F3:46:7C:44 ...
Channel: 1   "OBEX Object Push" (0x1105)
Channel: 2   "Headset Audio Gateway" (0x1112)
Channel: 3   "Handsfree Audio Gateway" (0x111f)
Channel: 4   "OBEX File Transfer" (0x1106)
Channel: 5   "Serial Port" (0x1101)
Channel: 6   "Dialup Networking" (0x1103)
bash-4.4#
Кажется лишнего нет?
Название: Re: Bluez-tray
Отправлено: Pro от 06 Ноябрь 2018, 09:29:27
Получил вот такой выхлоп bt-browse:
интересно что он и без параметров сканирует устройство, только не понятно как из двух выбирает какое сканировать.

Надо лучше с разделителями упорядочить, или нормально будет из скриптов отрабатываться?
Название: Re: Bluez-tray
Отправлено: DdShurick от 06 Ноябрь 2018, 09:46:36
как из двух выбирает какое сканировать.
Без параметров сканирует всё, что видит.
Код
Inquiring ...
Browsing 20:A9:0E:72:AF:9C ...
Channel: 2   "Handsfree Audio Gateway" (0x111f)
Channel: 1   "Headset Audio Gateway" (0x1112)
Channel: 3   "Handsfree" (0x111e)
Channel: 12   "Message Access - MNS" (0x1133)
Channel: 5   "OBEX Object Push" (0x1105)
Browsing BC:B1:F3:46:7C:44 ...
Channel: 1   "OBEX Object Push" (0x1105)
Channel: 2   "Headset Audio Gateway" (0x1112)
Channel: 3   "Handsfree Audio Gateway" (0x111f)
Channel: 4   "OBEX File Transfer" (0x1106)
Channel: 5   "Serial Port" (0x1101)
Channel: 6   "Dialup Networking" (0x1103)
Надо лучше с разделителями упорядочить, или нормально будет из скриптов отрабатываться?
Разделители - пробел. Обработка? Вот фрагмент из bt-scan-gui:
Код
parse () {
BDADDR="$1"
NAME="$2"
DEVICE="$(echo $3|tr -d \")"
HCI="hci$4"
}
bt-scan | while read L; do parse $L
.........
Точно так-же можно обработать и вывод bt-browse
Название: Re: Bluez-tray
Отправлено: DdShurick от 11 Ноябрь 2018, 19:41:59
 Нашёл bluez-tools-5.37 (https://github.com/khvzak/bluez-tools/issues/22).Архив (https://yadi.sk/d/adAggDrKrDMJBg) с утилитами.
Название: Re: Bluez-tray
Отправлено: Pro от 12 Ноябрь 2018, 02:37:29
Нашёл bluez-tools-5.37 (https://github.com/khvzak/bluez-tools/issues/22).Архив (https://yadi.sk/d/adAggDrKrDMJBg) с утилитами.

- `bt-agent' does not recieve a `unregistered' callback signal in BlueZ 5, even when the agent manager successfully unregisters the agent. You will need to use SIGINT (control-c) twice to exit `bt-agent'.
- Running `bt-agent' as a daemon process is currently broken.'
Название: Re: Bluez-tray
Отправлено: Pro от 13 Ноябрь 2018, 07:34:51
bt-scan щас создает в /tmp файл? а то я просканировал, а в /tmp нету btscan.lst

bt-browse ltkftn какой нибудь файл или пока на консоль только?
Название: Re: Bluez-tray
Отправлено: DdShurick от 13 Ноябрь 2018, 09:07:45
bt-scan щас создает в /tmp файл?
Нет.
пока на консоль только?
Да.
Название: Re: Bluez-tray
Отправлено: Pro от 13 Ноябрь 2018, 09:18:05
Нет.
вобще-то у меня скрипт был настроен на него, какого демона такие изменения в продакшене.
Название: Re: Bluez-tray
Отправлено: DdShurick от 13 Ноябрь 2018, 12:02:43
какого демона такие изменения в продакшене.
Лишнее звено. Проще так:
Код
parse () {
BDADDR="$1"
NAME="$2"
DEVICE="$(echo $3|tr -d \")"
HCI="hci$4"
}
bt-scan | while read L; do parse $L
...здесь код gtkdialog....
done
Название: Re: Bluez-tray
Отправлено: DdShurick от 15 Ноябрь 2018, 11:22:35
Проще так:
Оказалось не проще :(
Название: Re: Bluez-tray
Отправлено: Pro от 15 Ноябрь 2018, 13:58:23
Проще так:
Оказалось не проще :(
Что случилось?
Название: Re: Bluez-tray
Отправлено: DdShurick от 15 Ноябрь 2018, 14:55:07
Что случилось?
Плохо стыкуется со скриптом. Пожалуй лучше будет сделать запись в файл (для bt-browse коды и № канала? > ${bdaddr}.info.lst?)
Код
bash-4.4# bt-scan 
Scanning ...
20:A9:0E:72:AF:9C "ALCATEL ONETOUCH 2012D" Phone 0
BC:B1:F3:46:7C:44 "C3520" Phone 0
(последняя цифра это № hci)
Код
bash-4.4# ./bt-browse BC:B1:F3:46:7C:44
Browsing BC:B1:F3:46:7C:44 ...
1 "OBEX Object Push" 1105
2 "Headset Audio Gateway" 1112
3 "Handsfree Audio Gateway" 111f
4 "OBEX File Transfer" 1106
5 "Serial Port" 1101
6 "Dialup Networking" 1103
Первая колонка это channel №, вторую (ServiceClassUUID_str) выкинуть за ненадобностью, третья - код (UUID_str). Тогда можно будет выкинуть из скрипта некоторые вспомогательные действия. Твоё мнение?
Название: Re: Bluez-tray
Отправлено: DdShurick от 15 Ноябрь 2018, 15:38:20
Получается вот так, /tmp/BC:B1:F3:46:7C:44.info.lst :
Код
1 1105
2 1112
3 111f
4 1106
5 1101
6 1103
Название: Re: Bluez-tray
Отправлено: Pro от 15 Ноябрь 2018, 15:41:27
(ServiceClassUUID_str) не надо выбрасывать по возможности, отлаживать легче будет, не на память же эти uuid запоминать.

Имя файла у bt-scan делай старое как было, зачем изменять.

Ps. Потрясающе, первый раз наверное на форуме спросили мое мнение.
Название: Re: Bluez-tray
Отправлено: DdShurick от 15 Ноябрь 2018, 15:48:59
(ServiceClassUUID_str) не надо выбрасывать
В консоль оно пишется.
Имя файла у bt-scan делай старое
bt-scan это hcitool, bt-browse это sdptool.
Потрясающе, первый раз наверное на форуме спросили мое мнение.
Разве я раньше не спрашивал?
Название: Re: Bluez-tray
Отправлено: Pro от 15 Ноябрь 2018, 15:53:40
Bt-scan я использую давно, имя файла желательно как у предыдущей версии. Тип устройства и номер hci пока не могу применить, вобще номер hci как параметр бы брать и все, а в файл не писать его.
Название: Re: Bluez-tray
Отправлено: DdShurick от 15 Ноябрь 2018, 16:03:46
 Хорошо, сделаю
....Готово
Код
bash-4.4# bt-scan 
Scanning ...
BC:B1:F3:46:7C:44 "C3520" Phone 0
20:A9:0E:72:AF:9C "ALCATEL ONETOUCH 2012D" Phone 0
Файл btscan.lst:
Код
BC:B1:F3:46:7C:44 C3520
20:A9:0E:72:AF:9C ALCATEL ONETOUCH 2012D
Название: Re: Bluez-tray
Отправлено: DdShurick от 16 Ноябрь 2018, 13:33:45
 Теперь простеньким скриптом я получаю необходимые файлы в /tmp/
Код
#!/bin/sh
bt-scan $1 || exit 1
awk '{print $1}' /tmp/btscan.lst | while read BDADDR
do
bt-browse $BDADDR
done
Недостаток - bt-browse не всегда срабатывает с первого раза. Ошибка "Failed to connect to SDP server on BC:B1:F3:46:7C:44: No route to host" или "Failed to connect to SDP server on 20:A9:0E:72:AF:9C: Software caused connection abort"
Что посоветуешь?
Название: Re: Bluez-tray
Отправлено: Pro от 16 Ноябрь 2018, 16:06:43
А на второй раз срабатывает нормально? Возможно это для устройств которые не спареные еще.

В принципе если нет паринга, то можно бы и не определять службы, все равно ничего сделать не получится с устройством. (надо подумать, может сделать такое мне)
Название: Re: Bluez-tray
Отправлено: DdShurick от 17 Ноябрь 2018, 09:37:28
которые не спареные еще.
Да
Название: Re: Bluez-tray
Отправлено: Pro от 17 Ноябрь 2018, 11:31:16
bt-browse проверку на паринг может сделать? Спареное - определить сервисы, неспареное - не определять.
Название: Re: Bluez-tray
Отправлено: DdShurick от 17 Ноябрь 2018, 11:50:39
bt-browse проверку на паринг может сделать?
Не знаю
Спареное - определить сервисы, неспареное - не определять.
Неспаренные тоже определяются, только нестабильно. Пожалуй надёжнее всего будет при выборе устройства сначала его спарить, а потом выбирать и подключать сервисы.
Название: Re: Bluez-tray
Отправлено: Pro от 17 Ноябрь 2018, 12:37:40
Нет. Спаривать пытаться ненадо. Только проверить состояние. Пользователь должен решать, надо ли спаривать.

То что у неспареных сервисы определяются, это возможно даже баг в bluez, да и нет толку от этой информации пока устройство не спаренное.
Название: Re: Bluez-tray
Отправлено: Pro от 20 Ноябрь 2018, 06:01:07
код агента в исходниках https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/src/agent.c
https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/src/agent.h

Если научить чтобы брали код не с консоли а с main.conf, то паринг будет автоматический.
Название: Re: Bluez-tray
Отправлено: DdShurick от 20 Ноябрь 2018, 08:39:49
 Их три
Код
# find . -name agent.?
./mesh/agent.h
./mesh/agent.c
./src/agent.h
./src/agent.c
./client/agent.h
./client/agent.c
и выделить отдельно пока не получается. Работает только агент из bluez-tools-5.37, но тоже криво.
чтобы брали код не с консоли
сегфолтится.
паринг будет автоматический
Ещё вариант - выводить запрос PIN в графическое окно.
Название: Re: Bluez-tray
Отправлено: Pro от 20 Ноябрь 2018, 10:11:16
Ещё вариант - выводить запрос PIN в графическое окно.
я такое незнаю как сделать. оно же в терминале запрашивает.
Название: Re: Bluez-tray
Отправлено: Pro от 20 Ноябрь 2018, 10:57:40
./mesh/agent.h
./mesh/agent.c
это точно не то, это для mesh сетей.

./client/agent.h
./client/agent.c
это я не смотрел, но посмотрю
Название: Re: Bluez-tray
Отправлено: DdShurick от 20 Ноябрь 2018, 20:57:24
 Некоторые опыты. Используются bluetoothd, bluetoothctl (стандартные от bluez-5.50), bt-agent (от bluez-tools-5.37), bt-scan и bt-browse. Запускаю bt-agent в консоли:
Код
# bt-agent 
Agent registered
Default agent requested

Device: 00-11-67-6A-05-5D (00:11:67:6A:05:5D)
Enter passkey: 0000
unregistering agent...
(здесь полный вывод)
Одновременно во второй консоли:
Код
# bt-scan 
Scanning ...
00:11:67:6A:05:5D "SPARKLE" AV 0
# bt-browse 00:11:67:6A:05:5D
Browsing 00:11:67:6A:05:5D ...
Failed to connect to SDP server on 00:11:67:6A:05:5D: Connection refused
Channel 2 "Headset" 1108
Channel 1 "Handsfree" 111e
# bluetoothctl connect 00:11:67:6A:05:5D
Attempting to connect to 00:11:67:6A:05:5D
[CHG] Device 00:11:67:6A:05:5D Connected: yes
Connection successful
#
После ввода команды "bt-browse" в первой консоли появляется приглашение "Enter passkey:" и после ввода кода во второй консоли появляется список сервисов. контакт устанавливается легко и просто через bluetoothctl. Проверил, звук идёт.
Вот бы вместо первой консоли сделать всплывающее окно ввода.
Название: Re: Bluez-tray
Отправлено: Pro от 21 Ноябрь 2018, 01:54:09
./client/agent.h
./client/agent.c
ДА вот в них идет запрос пинкода с терминала, только вот непонятно что разработчики подразумевают под pincode а что под passkey.

Вот в /client/agent.c и надо сделать чтобы при параметре bluetoothctl --capabilites=NODISPLAY.... он брал код из main.conf (в main.conf параметр раньше был defaultpin или как его)
Название: Re: Bluez-tray
Отправлено: Pro от 21 Ноябрь 2018, 01:58:52
После ввода команды "bt-browse" в первой консоли появляется приглашение "Enter passkey:"
bt-agent вобще-то, нету там bt-browse он во второй. Запятые решают.


Вот бы вместо первой консоли сделать всплывающее окно ввода.
это тупик, агент все равно надо регистрировать, а этот запрос пинкода возможно инициирует само устройство и если попадется такое что оно не захочет при bt-browse делать паринг а просто ошибку выдаст, будет плохо.
Название: Re: Bluez-tray
Отправлено: DdShurick от 21 Ноябрь 2018, 08:15:14
/client/agent.c и надо сделать
Пробовал, сегфолтится :(
это тупик, агент все равно надо регистрировать
Агент привязан к bluetoothd как дополнительная прилада, вот и запускать их вместе.
а этот запрос пинкода возможно инициирует само устройство
Похоже что так
оно не захочет при bt-browse делать паринг а просто ошибку выдаст, будет плохо.
Если запрос поступает с той стороны, то ошибка будет только при неправильном ответе. Мой телефон, например, выдаёт запрос на pin при connect, и никакой ошибки.
только вот непонятно что разработчики подразумевают под pincode а что под passkey.
Это да :(
Название: Re: Bluez-tray
Отправлено: DdShurick от 25 Ноябрь 2018, 19:14:18
/client/agent.c
Этот с моей квалификацией не осилить, там связано с /client/main.c и ещё много чем. Пожалуй надо взять за основу bt-agent, который из консоли нормально работает и добавить ему чтение из файла (есть, но не работает, похоже фильтр кривой) и графическое окно ввода.
Название: Re: Bluez-tray
Отправлено: Pro от 26 Ноябрь 2018, 02:04:10
и графическое окно ввода.
и зачем оно тогда, если из файла брать данные?

Этот с моей квалификацией не осилить, там связано с /client/main.c и ещё много чем.
ну ясно дело, все пересекается. может у них в коде параметры из main.conf один раз забираются при старте и потом используются, посмотри в код.
Название: Re: Bluez-tray
Отправлено: DdShurick от 26 Ноябрь 2018, 07:40:22
и зачем оно тогда
В принципе да.
может у них в коде параметры из main.conf один раз забираются
Нет, там из клиента вызываются функции майн, и так далее по цепочке, и из всего этого собирается один бинарник - bluetoothctl.
посмотри в код.
Целую неделю смотрел, до сих пор мозги кипят.
Название: Re: Bluez-tray
Отправлено: Pro от 26 Ноябрь 2018, 08:23:52
Нет, там из клиента вызываются функции майн, и так далее по цепочке, и из всего этого собирается один бинарник - bluetoothctl.
ну это понятно, я имею ввиду парсинг main.conf найти, в него вписать чтобы pincode бралось, потом уже в /client/agent.c обрабатывать параметр. В качестве образца взять обработку параметра Name или DiscoverableTimeout из main.conf
Название: Re: Bluez-tray
Отправлено: Pro от 27 Ноябрь 2018, 04:37:34
я имею ввиду парсинг main.conf найти
почитал код, да main.conf обрабатывается в main.c, потом из него все растаскивается по остальным частям.

Название: Re: Bluez-tray
Отправлено: Pro от 27 Ноябрь 2018, 09:37:04
патч для main.c , добавляется парсинг параметра DefaultPin, параметр становится доступен в переменной main_opts.defaultpin

У меня сомнения что 0000 в переменную присвоятся именно в этом виде.

теперь этот main_opts.defaultpin надо обработать в /src/agent.c как-то для capabilites=NoinputNooutput
Название: Re: Bluez-tray
Отправлено: DdShurick от 27 Ноябрь 2018, 10:14:16
Код
src/main.c: В функции «parse_config»:
src/main.c:328:12: ошибка: «struct main_opts» не содержит элемента с именем «defaultpin»
   main_opts.defaultpin = val;
            ^
src/main.c: В функции «init_defaults»:
src/main.c:448:11: ошибка: «struct main_opts» не содержит элемента с именем «defaultpin»
  main_opts.defaultpin = 0000;
           ^
make[1]: *** [Makefile:7938: src/bluetoothd-main.o] Ошибка 1
make: *** [Makefile:3278: all] Ошибка 2
:(
Название: Re: Bluez-tray
Отправлено: Pro от 27 Ноябрь 2018, 10:38:00
это норма :) в hcid.h надо вписать еще , только я незнаю какой тип данных сделать
Название: Re: Bluez-tray
Отправлено: DdShurick от 27 Ноябрь 2018, 13:30:13
незнаю какой тип данных сделать
Сделал char, собралось, но PIN всё равно просит.
Название: Re: Bluez-tray
Отправлено: Pro от 27 Ноябрь 2018, 16:17:29
Эээ. Это был всего лишь первый этап, я же написал что надо дальше делать, но я еще не смотрел как. Я вобще в шоке что  у тебя что-то скомпилилось и без сегфолта :)))
Название: Re: Bluez-tray
Отправлено: Pro от 28 Ноябрь 2018, 08:56:00
Нужно смотреть bluetoothd debug на этапе запроса pincode, тогда точно будет видно какую функцию править.

есть debug?
Название: Re: Bluez-tray
Отправлено: DdShurick от 28 Ноябрь 2018, 09:05:18
есть debug?
Только это
Код
# /usr/libexec/bluetooth/bluetoothd --help
Usage:
  bluetoothd [OPTION?]

Help Options:
  -h, --help                  Show help options

Application Options:
  -d, --debug=DEBUG           Specify debug options to enable
  -p, --plugin=NAME,..,       Specify plugins to load
  -P, --noplugin=NAME,...     Specify plugins not to load
  -f, --configfile=FILE       Specify an explicit path to the config file
  -C, --compat                Provide deprecated command line interfaces
  -E, --experimental          Enable experimental interfaces
  -n, --nodetach              Run with logging in foreground
  -v, --version               Show version information and exit
Мне кажется, что всё-таки проще довести до ума bluez-tools-5.37. Там код понятнее.
Название: Re: Bluez-tray
Отправлено: Pro от 28 Ноябрь 2018, 09:11:07

  -d, --debug=DEBUG           Specify debug options to enable

включи вот это. У меня щас нет ноутбука с bluetooth, сижу чисто код читаю .

Мне кажется, что всё-таки проще довести до ума bluez-tools-5.37. Там код понятнее.
мне в принципе без разницы я же не программист и программировать не умею О_О. Но привязывать в bt-agent чтобы брал параметр из конфига от bluez это не совсем правильно.
Название: Re: Bluez-tray
Отправлено: DdShurick от 28 Ноябрь 2018, 12:14:58
привязывать в bt-agent чтобы брал параметр из конфига от bluez
Зачем? Есть ключ -p (читать из файла), только там что-то не так с фильтром, поэтому не читает.
bt-agent.c функция _read_pin_file, с 96 строки:
Код
	GRegex *regex = g_regex_new("^(\\S+)\\s+(\\S+)$", 0, 0, NULL);

while ((read = getline(&line, &len, fp)) != -1) {
n++;

if (g_regex_match_simple("^\\s*(#|$)", line, 0, 0))
continue;

GMatchInfo *match_info;
if (g_regex_match(regex, line, 0, &match_info)) { //(строка 105)
gchar **t = g_match_info_fetch_all(match_info);
/* Convert MAC to upper case */
if (g_regex_match_simple("^([0-9a-fA-F]{2}(:|$)){6}$", t[1], 0, 0))
g_hash_table_insert(pin_hash_table, g_ascii_strup(t[1], -1), g_strdup(t[2]));
else
g_hash_table_insert(pin_hash_table, g_strdup(t[1]), g_strdup(t[2]));
g_strfreev(t);
} else {
if (first_run)
g_print("%d: Invalid line (ignored)\n", n); //(строка 115)выводит в консоль
}
g_match_info_free(match_info);
}
Название: Re: Bluez-tray
Отправлено: Pro от 28 Ноябрь 2018, 12:47:13
Ты хочешь от меня слишком многого, я не могу прочитать этот код. Мутно что-то
Название: Re: Bluez-tray
Отправлено: Pro от 30 Ноябрь 2018, 08:37:10
посмотри plugins/autopair.c по моему то что нужно!

этот плагин определяет класс устройства и отправляет нужный пинкод, для всяких наушников 0000, для клавиатур еще что-то. Надо прописать ему include "src/hcid.h" и в конце функции autopair_pincb дописать чтобы пытался посылать содержимое main.opts.defaultpin если оно задано (а если не задано, тогда return 0).

Мне показалось или bt-scan стал в btscan.lst имя устройства в кавычках выводить? нельзя ли вернуть формат в нормальное состояние?

Код
<notebook labels=\"$(awk '{print substr($0,index($0,$2))}' /tmp/btscan.lst | tr '\n' '|')\">
$(cat /tmp/panel)
</notebook>
не работает код
Название: Re: Bluez-tray
Отправлено: DdShurick от 03 Декабрь 2018, 08:53:51
посмотри plugins/autopair.c
Посмотрел. Гибрид bt-scan и client. Заставить работать не удалось.
В bt-agent подставил в переменную ret "0000", автоматическое спаривание с наушниками получилось, правда со второй попытки.
Запутано всё, bt-agent слушает bluetoothd, bluetoothd обращается к сокету через dbus, прямо "коррупционная схема" какая-то. Вот бы это всё выпрямить, работают же bt-scan и dt-browse напрямую.
Название: Re: Bluez-tray
Отправлено: Pro от 03 Декабрь 2018, 08:58:48
прямо "коррупционная схема" какая-то.
угу.


Посмотрел. Гибрид bt-scan и client. Заставить работать не удалось.
а шо ты делал? дай примеры кода.
Название: Re: Bluez-tray
Отправлено: DdShurick от 03 Декабрь 2018, 09:10:52
а шо ты делал?
Да ничего, просто запустил bluetoothd --plugin=autopair, и тишина...
Название: Re: Bluez-tray
Отправлено: Pro от 03 Декабрь 2018, 09:17:26
Да ничего, просто запустил bluetoothd --plugin=autopair, и тишина...
неее это не поможет, плагин используется по умолчанию, его подгружать ненадо. А вот изменения в код внести - НАДО.

Что с btscan.lst, правим код или правим скрипт?
Название: Re: Bluez-tray
Отправлено: DdShurick от 03 Декабрь 2018, 10:20:33
Код
# bt-scan 
Scanning ...
20:A9:0E:72:AF:9C "ALCATEL ONETOUCH 2012D" Phone 0
BC:B1:F3:46:7C:44 "C3520" Phone 0
# cat /tmp/btscan.lst
20:A9:0E:72:AF:9C ALCATEL ONETOUCH 2012D
BC:B1:F3:46:7C:44 C3520
Что не так?
Название: Re: Bluez-tray
Отправлено: Pro от 03 Декабрь 2018, 10:51:59
20:A9:0E:72:AF:9C ALCATEL ONETOUCH 2012D
у меня в кавычках название, исходники брал с гитхаба, проверь плиз.
Название: Re: Bluez-tray
Отправлено: DdShurick от 03 Декабрь 2018, 12:54:29
у меня в кавычках название, исходники брал с гитхаба
Значит там уже исправленное.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Декабрь 2018, 02:35:07
у меня в кавычках название, исходники брал с гитхаба
Значит там уже исправленное.


точно проверил?
Код
 	fprintf(fd,"%s \"%s\"\n", addr, name); 
тут все нормально? без кавычек запишется?

Код
cat /mnt/sdb1/btscan.lst 
D0:57:7B:34:D0:A4 "RCS1-PUGACHEV"
а нифига!!!!

------------------------------------------------------------------------------

А вот дебаг от bluetoothctl где я увидел обработку autopair
Код
# cat /mnt/sdb1/bluez.log 
bluetoothd[1978]: src/adapter.c:connected_callback() hci0 device 01:D1:35:11:62:61 connected eir_len 14
bluetoothd[1978]: src/adapter.c:pin_code_request_callback() hci0 01:D1:35:11:62:61
bluetoothd[1978]: plugins/autopair.c:autopair_pincb() device 'satrend' (01:D1:35:11:62:61) class: 0x7a0204 vid/pid: 0x0/0x0
bluetoothd[1978]: src/device.c:new_auth() Requesting agent authentication for 01:D1:35:11:62:61
bluetoothd[1978]: src/agent.c:agent_ref() 0x85514e0: ref=3
Название: Re: Bluez-tray
Отправлено: DdShurick от 04 Декабрь 2018, 09:42:10
без кавычек запишется?
Как раз с кавычками.
а нифига!!!!
Кавычки?
Код
20:A9:0E:72:AF:9C "ALCATEL ONETOUCH 2012D"
Как видишь, имя телефончика из трёх слов.
накалякал патч
Стоит ли лезть в bluez? Там ещё непонятнее, чем в dt-agent.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Декабрь 2018, 10:00:26
Как раз с кавычками.
слушай, ну что за отношение такое некрасивое, я же ведь нормально спрашивал, а ты даже не посмотрел в код свой.


Как видишь, имя телефончика из трёх слов.
ну и что, раньше у меня код работал, а щас нет и надо принять решение.

Стоит ли лезть в bluez? Там ещё непонятнее, чем в dt-agent.
да потому что в bt-agent мне код не понятен, а ты ничего не делаешь. на словах то много сказать можно.
Название: Re: Bluez-tray
Отправлено: DdShurick от 04 Декабрь 2018, 12:34:24
а ты даже не посмотрел в код свой.
Я помню, где кавычки ставил.
раньше у меня код работал, а щас нет
Из-за кавычек? Давай уберём
в bt-agent мне код не понятен
А что, в bluez понятнее? Там побольше наворочено. Дай с этим разобраться.
Название: Re: Bluez-tray
Отправлено: Pro от 04 Декабрь 2018, 15:57:05
у меня в кавычках название, исходники брал с гитхаба
Значит там уже исправленное.
Вот это кто писал? Какой-то сломанный телефон.

Да. кавычки мне скрипт ломают, я привел код скрипта который не работает и задаю вопрос ПРАВИМ СКРИПТ ИЛИ КОД bt-scan и ничего внятного получить не могу от тебя.

Без bluetoothctl один фиг не обойтись, а патч я собираюсь в bluez передать чтоб в апстрим взяли.

Название: Re: Bluez-tray
Отправлено: DdShurick от 04 Декабрь 2018, 17:56:25
ПРАВИМ СКРИПТ ИЛИ КОД
Мне проще код. Нервный ты стал, неприятности что-ли?
Название: Re: Bluez-tray
Отправлено: Pro от 05 Декабрь 2018, 01:47:47
Мне проще код. Нервный ты стал, неприятности что-ли?
Я за понимание! проблема ниачом а мусолим уже несколько дней - это не годится!


Мне проще код.
спасибо, забрал.
Название: Re: Bluez-tray
Отправлено: DdShurick от 07 Декабрь 2018, 12:11:37
 Прикрутил к bt-agent через popen внешнюю программу pin для ввода пинкода. Работает. Подчищу хвосты, выложу. Выложил как есть.
Название: Re: Bluez-tray
Отправлено: DdShurick от 08 Декабрь 2018, 09:18:46
 Разобрался с чтением pin из файла. Пример (/home/live/pin):
Код
#Pin Code
00:11:67:6A:05:5D 0000
При такой записи работает. Агент:
Код
bash-4.4# bt-agent --pin=/home/live/pin
Agent registered
Default agent requested
Device: 00-11-67-6A-05-5D (00:11:67:6A:05:5D)
Passkey found
Коннект:
Код
bash-4.4# bt-browse 00:11:67:6A:05:5D
Browsing 00:11:67:6A:05:5D ...
Failed to connect to SDP server on 00:11:67:6A:05:5D: Connection refused
Channel 2 "Headset" 1108
Channel 1 "Handsfree" 111e
bash-4.4# bluetoothctl connect 00:11:67:6A:05:5D
Attempting to connect to 00:11:67:6A:05:5D
[CHG] Device 00:11:67:6A:05:5D Connected: yes
Connection successful
Название: Re: Bluez-tray
Отправлено: Pro от 26 Декабрь 2018, 09:57:43
bt-agent патчил или стандартный?
Название: Re: Bluez-tray
Отправлено: DdShurick от 26 Декабрь 2018, 11:51:14
bt-agent патчил или стандартный?
agent-helper.c строки 338 - 343 исходный:
Код
            g_print("Enter passkey: ");
            errno = 0;
            if (scanf("%ms", &ret) == EOF && errno)
                g_warning("%s\n", strerror(errno));
            invoke = TRUE;
собирал с:
Код
            if ((fp = popen("pin","r"))==NULL)
            printf("Cannot open pin.\n");
            ret = fgets(str, 5, fp);
            pclose(fp);
            invoke = TRUE;
Других изменений не вносил. /usr/bin/pin - любое окно для ввода pin: gtkdialog, yad ... . У меня было готовое на gtk2.
Название: Re: Bluez-tray
Отправлено: Pro от 26 Декабрь 2018, 15:26:11
Интересно кому может понадобится вводить для каждого устройства разный пинкод.

А без привязки к mac адресу получится задать пинкод? Чтобы для любого устройства один и тотже брался из файла?
Название: Re: Bluez-tray
Отправлено: DdShurick от 26 Декабрь 2018, 16:51:10
А без привязки к mac адресу
Попробовать имитировать? Там такие фильтры:
Код
GRegex *regex = g_regex_new("^(\\S+)\\s+(\\S+)$", 0, 0, NULL);
.................
if (g_regex_match_simple("^\\s*(#|$)", line, 0, 0))
................
if (g_regex_match_simple("^([0-9a-fA-F]{2}(:|$)){6}$", t[1], 0, 0))
Последний требует макадрес, похоже любой.
Название: Re: Bluez-tray
Отправлено: Pro от 27 Декабрь 2018, 02:00:41
Я просто не вижу ситуации когда надо кучу этих пинкодов обязательно разных для каждого устройства.
В нашем случае потенциальный враг не сможет получить паринг т.к. агент не запущен постоянно, а запускается вручную и инициатор подключения сам компьютер. т.е. с телефона таким методом не спарить устройства наверное, только с компьютера.
Название: Re: Bluez-tray
Отправлено: Pro от 14 Январь 2019, 08:08:37
agent-helper.c строки 338 - 343 исходный:
ты какими исходниками пользуешься? не отсюда разве https://github.com/khvzak/bluez-tools
Название: Re: Bluez-tray
Отправлено: DdShurick от 14 Январь 2019, 09:07:31
README строка 17:
Цитата
Project Git repository: https://github.com/khvzak/bluez-tools
Google выдал https://github.com/khvzak/bluez-tools/issues/22
Название: Re: Bluez-tray
Отправлено: Pro от 14 Январь 2019, 09:17:10
Google выдал https://github.com/khvzak/bluez-tools/issues/22
да читал я, но там агент запускается и принимает соединения.

В нашем случае Комп выступает инициатором паринга и передает пинкод.
Я спросил потому, что не вижу там у них agent-helper.c  файла в исходниках!
Название: Re: Bluez-tray
Отправлено: DdShurick от 14 Январь 2019, 10:21:10
Смотри в src/lib/
Название: Re: Bluez-tray
Отправлено: Pro от 13 Июнь 2019, 11:09:17
Тестирую работу с двумя адаптерами bluetooth, bluez-tray (версия 0.3) честно отрисовал значек второго адаптера, но во всплывающей подсказке пишет данные для hci0 и mac адрес тоже от hci0 (в меню ПКМ предлагает включить hci1).

Но не включает hci1, а если включить hci0, то разом меняет значек и на hci1 - т.е. Второй экземпляр программы все равно связан с hci0.

Надо поправить.
Название: Re: Bluez-tray
Отправлено: DdShurick от 13 Июнь 2019, 16:57:06
Надо поправить.
Для этого надо разобраться, где собака порылась. Чем и как запускается у тебя bluez-tray?
Название: Re: Bluez-tray
Отправлено: Pro от 14 Июнь 2019, 12:06:30
Ага понял, надо прежде всего проверить команду запуска... Но оно же в меню пишет "power on hci1" значит как минимум один из параметров правильный.

Я через 2 недели приеду, смогу протестировать
Название: Re: Bluez-tray
Отправлено: Pro от 07 Июль 2019, 13:31:14
Проверил. Строки запуска соответствуют тому что в /sys
Для первого адаптера hci0 rfkill6
Для второго адаптера hci1 rfkill1
Название: Re: Bluez-tray
Отправлено: Pro от 11 Июль 2019, 05:38:38
Надо поправить.
Ddshurick исправил на гитхаб. Я скоро выложу свежие pfs для использования.