btpasskey-1.2
Jul. 28th, 2008 12:41 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Сегондя наконец собрался и выложил то, что за отпуск написал на тему btcli. В общем-то - крайне мало. Только новая версия btpasskey.
Но зато завел для btcli CVS-репозиторий для btcli.
Новая версия btpasskey умеет следующее:
1. Для компиляции не нужна libbluetooth - все делается черед D-Bus API hcid
2. Оно умеет на время своей работы включить адаптер в discoverable mode
3. Оно умеет инициировать процесс pairing с указанными устройством (правда, только по адресу. Библиотеку для резолвинга имен в адреса пока не написал)
4. Оно умеет удалять бондинг с указанным устройством. Что бывает полезно, потому что некоторые устройства не могут нормально провести процесс спаривания, если они когда-то были спарены с данным компьютером, а потом спарены с другим и в результате забыли ключ. А компьютер его помнит.
Upd: Народ, посоветуйте, а как себя должен вести btpasskey -d если в момент его запуска ни одного bluetooth адаптера не обнаружено
1. Внятно ругаться и завершаться.
2. Внятно ругаться и работать так же как без -d (то есть ждать запроса на ввод passkey не пытаясь переключать режимы адаптера
3. Ловить сигнал DefaultAdapterChanged, и по появлении адаптера переключать его в режим discoverable.
Но зато завел для btcli CVS-репозиторий для btcli.
Новая версия btpasskey умеет следующее:
1. Для компиляции не нужна libbluetooth - все делается черед D-Bus API hcid
2. Оно умеет на время своей работы включить адаптер в discoverable mode
3. Оно умеет инициировать процесс pairing с указанными устройством (правда, только по адресу. Библиотеку для резолвинга имен в адреса пока не написал)
4. Оно умеет удалять бондинг с указанным устройством. Что бывает полезно, потому что некоторые устройства не могут нормально провести процесс спаривания, если они когда-то были спарены с данным компьютером, а потом спарены с другим и в результате забыли ключ. А компьютер его помнит.
Upd: Народ, посоветуйте, а как себя должен вести btpasskey -d если в момент его запуска ни одного bluetooth адаптера не обнаружено
1. Внятно ругаться и завершаться.
2. Внятно ругаться и работать так же как без -d (то есть ждать запроса на ввод passkey не пытаясь переключать режимы адаптера
3. Ловить сигнал DefaultAdapterChanged, и по появлении адаптера переключать его в режим discoverable.
no subject
Date: 2008-07-28 09:26 am (UTC)no subject
Date: 2008-07-28 10:35 am (UTC)no subject
Date: 2008-07-28 11:20 am (UTC)no subject
Date: 2008-07-28 02:20 pm (UTC)Во-первых, замечание по названию программы. С "bt" начинаются названия клиентов bittorrent, bittornado и иже с ними. Кроме btscanner, все остальные утилиты bluetooth начинаются с "blue". Соответственно, через час после установки моя первая реакция была напечатать blue<Tab><Tab> и посмотреть, как же называется та программа, которую я недавно установил.
Во-вторых, программа должна по умолчанию рапортовать об отсутствии адаптера. Например, у меня в ноутбуке встроенный адаптер отключен по умолчанию для продления жизни батареи. Если программа мне не сообщит о том, что адаптер отсутствует, я и подавно не вспомню, что его отключил.
Вот сегодня утром я запустил btpasskey с ключом -d, но тем не менее не сразу вспомнил, что надо активировать адаптер. Если программа не завершится, то на сообщение об ошибке я обращу ещё меньше внимания, приняв его за информационное сообщение.
Так что по-моему программа должна завершаться с -d и без него. Для режима ожидания ей лучше придумать новый ключ, например, -w.
no subject
Date: 2008-07-28 02:26 pm (UTC)Далее, программа вообще говоря предназначена для запуска не только и не столько руками. Какой-нибудь GUI-апплет в составе десктопа или windowmanager-а вполне может запустить её двунаправленным пайпом. Ну и что, что в данный момент адаптера нет. Нет, и не надо. Когда появится, и кто-нибудь захочет с ним спарится, мы об этом узнаем.
А если программа завершится - не узнаем. Поэтому без ключа -d программа должна сидеть в режиме ожидания, независимо от наличия адаптера.
Это - поведение по умолчанию - слушать D-Bus и ждать пока попросят спросить у юзера passkey. Остальное - мелкие и необязательные фишки.
no subject
Date: 2008-07-28 03:16 pm (UTC)Насколько я понял, целевая аудитория программы -- айтишники, использующие её в целях скриптования. В первое знакомство с такой программой айтишник проверит её работу из командной строки. В зависимости от результата -- начнёт использовать, либо забудет. Так вот, это первое использование имхо и стоит сделать наиболее интуитивно-понятным.
Почему сидение в режиме ожидания без опции -w не понятно? Да потому, что пользователь не знает, что она не просто сидит, а ещё и ждёт событий от dbus. Вы усложнили процесс работы программы, не сделав его прозрачным для пользователя.
Взгляните на tail, он вызывается в режиме ожидание через опцию -f.
no subject
Date: 2008-07-28 04:33 pm (UTC)no subject
Date: 2008-07-28 09:51 am (UTC)no subject
Date: 2008-07-28 11:19 am (UTC)