Сайт | Скачать | Видео | Wiki

Автор Тема: Bluez-tray  (Прочитано 111619 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Bluez-tray
« Ответ #180 : 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
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Bluez-tray
« Ответ #181 : 04 Август 2017, 19:32:21 »
 По "старому завету" собрал simplescan, Саша, сравни пожалуйста с bt-scan, что лучше работает?

 Выяснил, что inquiry само включается на время работы bt-scan и simplescan.
« Последнее редактирование: 04 Август 2017, 22:50:36 от DdShurick »
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Bluez-tray
« Ответ #182 : 07 Август 2017, 04:44:12 »
Саша, сравни пожалуйста с bt-scan, что лучше работает?
одинаково ищут.

Цитата
Никуда не делся, просто спрятали
однажды он исчезнет или уберут протокол, там внутри не видно, rfcomm через bluetoothd напрямую работает или дергает что то еще?
« Последнее редактирование: 07 Август 2017, 04:46:57 от Pro »
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Bluez-tray
« Ответ #183 : 07 Август 2017, 05:03:02 »
Разобрался, sed ни при чём, надо было вначале включить inquiry. В конце строки " | egrep -o 'false|true' ", и можно писать в переменную.
не могу DEV_PAIR в скрипте правильно получить :(
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Bluez-tray
« Ответ #184 : 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
и ничего не понятно :(
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Bluez-tray
« Ответ #185 : 07 Август 2017, 10:24:34 »
А что выдаёт? Я заменил Device$N на постоянный Device1, тогда стало выдавать все устройства.
у меня второго устройства нету, оно что второму тоже присваивает имя Device1? посмотри код, кавычки "" я там не потерял?

и ничего не понятно :(
вот ./tools/rfcomm.c могут выкинуть в любой момент
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Bluez-tray
« Ответ #186 : 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 оказался обязательным.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Bluez-tray
« Ответ #187 : 07 Август 2017, 16:22:15 »
Нет Bda далее надо будет подставить в sdptool, так что нельзя её изменять sed
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Bluez-tray
« Ответ #188 : 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')
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Bluez-tray
« Ответ #189 : 08 Август 2017, 05:43:52 »
все починил, добавил цвета для текста и значки на кнопки, можно приступать к написанию функции паринга. Как оно делается?
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Bluez-tray
« Ответ #190 : 08 Август 2017, 08:20:15 »
все починил, добавил цвета для текста и значки на кнопки, можно приступать к написанию функции паринга. Как оно делается?
---------------------

есть ли возможность как-то передавать в функции которые вызываем по кнопке, адрес устройства?
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Bluez-tray
« Ответ #191 : 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>, но если закладок несколько? Надо подумать
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Bluez-tray
« Ответ #192 : 09 Август 2017, 01:50:41 »
но если закладок несколько? Надо подумать
ага, должен быть выход
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Bluez-tray
« Ответ #193 : 09 Август 2017, 07:47:47 »
Вообще-то подставляется в <action>command $BDA &</action>, но если закладок несколько?
то в каждой закладке будет свой отличающийся BDA. нормально решение. Какой синтаксис вызова функции с параметром? например функцию PAIR
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Bluez-tray
« Ответ #194 : 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
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64