|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> Security
—> Bluetooth proximity monitor
FreeBSD bluetooth proximity - следим за удаленностью хозяина через bluetooth.
Автор: azu.
Заявление об обязательствах.
Применение представленного материала и скриптов добровольное, на свой страх и риск. Ответственность за последствия применения автор не несет.
Тема, как мне показалось, может быть успешно применена при организации десктопа, построения элементов похожих на "умный дом", связанных с присутствием хозяина поблизости от рабочего места.
Актуальность? Сегодня тяжело найти человека с телефоном без поддержки bluetooth. Многие используют телефон в сопряжении с PC (для синхронизации/доступа в Internet) именно через bluetooth. Среди них находятся те, кто ипользует FreeBSD =). Так к чему отказываться от возможной вкусности: пусть железки приносят удовольствие.
Недавно попалась howto для gentoo для блокировки/разблокировки экрана, установки статуса в kopete, управления amarok и пр., в зависимости от наличия поблизости bluetooth устройства хозяина. Проявил интерес и погуглил на ту же тему для FreeBSD. Нашел вариант скрипта обработки событий близости bluetooth:
http://orel.ru/~bel/btproximity
Первичный функционал он обеспечивает, но мне показался сыроватым и неудобным в применении: как вести себя при отключении одного из узлов bluetooth, как вести себя при подключении устройства, как стартовать, как поступить с оставшимся подключением после останова скрипта...
Привожу черновой доработанный вариант, показавшийся мне достаточно работоспособным для миниобзора.
Отправная точка:
1. USB bluetooth устройство + труба с bluetooth + FreeBSD 7. Полагаю будет работать и с более раними версиями, но стоит проверить как ведет себя /etc/rc.d/bluetooth при подключении устройства: как я понял, стек ubt устройства в моем случае создавался атоматически, что дает некоторые преимущества в ситуации с произвольно включаемым/выключаемым bt-свистком
Подразумевается, что bluetooth настроен (см. handbook) до уровня корректного выполнения команды
l2ping -a <node_name>
разумеется с получением успешного результата =).
2. Работа направлена на KDE, но принципиальных ограничений на переделку под другой набор DE/WM/no-X нет: переделать визуальное оповещение пользователя о состоянии скрипта, добавить по вкусу соответствующие действия на состояния In/Out обрабатываемой зоны bluetooth.
Решения, принятые по доработке первоначального варианта:
1. В качестве действия установлена блокировка ввода (далее действие).
2. Стартовать и останавливать процесс будем по требованию пользователя (например из меню или кликом с рабочего стола). Таким образом для старта и остановки используем один скрипт-стартер, основная работа будет во втором скрипте.
3. В случае невозможности установить связь делаем несколько попыток, потом вызываем действие.
4. В случае отсутствия устройства на борту предупреждаем, но процесс стартуем: действие произведется после нескольктх неудачных попыток установить соединение с телефоном соотв. п3. После подключения устройства при работающем скрипте, начинаются попытки установить связь и оценить уровень сигнала (момент включения устройства в моем случае поддержан автоматическим созданием стека устройства bluetooth. Проверьте для своей версии ОС).
5. В случае достижения критической минимальной отметки сигнала выполняем действие.
6. При останове подчищаем оставшеейся соединение в стартовом скрипте.
7. Размещение: стартер в ~/bin/. Лог, pid и основной рабочий скрипт в ~/.btproximity/.
И еще... после выключения телефона, пока он находился в рассматриваемой зоне связи, процесс "получения" сигнала происходит еще секунд 10... все это время значение RSSI находится в последнем принятом состоянии, как я понял...
Предупреждение: практика написания на шелл у меня мягко говоря не большая, в обморок не падать =)
tgz с файликами прилагается.
|
файл
|
скачан
|
размер
|
размещён
|
примечание
|
|
1229
|
2kb
|
2007-11-23
|
Скрипты монитора близости bluetooth устройства
|
|
Примечание: структура архива
./-
|-bin/bt_proximity_starter
|-.btproximity/bt_proximity.sh
Несколько пояснений:
1. Извлеч в архив ~/ , проверить/изменить владельца, проверить/установть исполняемость
2. В ~/bin/bt_proximity_starter переменная DEVNAME - название телефона.
#hccontrol -n ubt0hci Inquiry
| Полученный BD_ADDR прописываем в /etc/bluetooth/hosts, как в этом файле и указано, называем этот BD_ADDR звучным именем телефона (у меня xenium).
Проверить усвоилось ли имя =):
3. Последняя задача - старт скрипта ~/bin/bt_proximity_starter доступным способом.
Например можно создать ярлык на рабочем столе:
%cat ~/Desktop/BT-Proximity.desktop
[Desktop Entry]
Comment=
Comment[ru]=
Exec=ksystraycmd /home/azu/bin/bt_proximity_starter > /dev/null &
GenericName=
GenericName[ru]=
Icon=password
MimeType=
Name=BT-Proximity
Path=
StartupNotify=false
Terminal=false
TerminalOptions=
Type=Application
X-DCOP-ServiceType=none
X-KDE-SubstituteUID=false
X-KDE-Username=
%
| Повторный старт скрипта останавливает процесс. Сделал для удобства кликанья по ярлыку.
4. При желании добавить действия на уход/приод хозяина - дополнять ~/.btproximity/btproximity.sh: функции device_out и device_in
5. Минимально допустимый уровень сигнала, после которого сработает действие -
~/.btproximity/btproximity.sh переменная MIN_RSSI.
размещено: 2007-11-23,
последнее обновление: 2007-11-26,
автор: azu
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
|
Статистика сайта
|
Сейчас на сайте находится: 22 чел.
|
За последние 30 мин было: 93 человек
|
За сегодня было 15048 показов, 1018 уникальных IP
|
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
|
Комментарии пользователей [6 шт.]