Ну что ж,приступим Установим (если не установлен) пакет bluez-utils через synaptic или: Code sudo apt-get install bluez-utils Посмотрим файл /etc/default/bluetooth: Должна быть строка: BLUETOOTH_ENABLED=1 По умолчанию служба serial в bluetooth не работает при старте системы. исправим это: Code sudo gedit /etc/bluetooth/serial.service Заменяем содержимое на следующее: [Bluetooth Service] Identifier=serial Name=Serial service Description=Bluetooth Serial Port service Autostart=true Отредактируем файл hcid.conf : Code sudo gedit /etc/bluetooth/hcid.conf Заменяем содержимое файла на следующее: # # HCI daemon configuration file. # # HCId options options { # Automatically initialize new devices autoinit yes; # Security Manager mode # none - Security manager disabled # auto - Use local PIN for incoming connections # user - Always ask user for a PIN # security user; # Pairing mode # none - Pairing disabled # multi - Allow pairing with already paired devices # once - Pair once and deny successive attempts pairing multi; # PIN helper #pin_helper /usr/bin/bluepin; # D-Bus PIN helper #dbus_pin_helper; # Default PIN code for incoming connections passkey "1234"; } # Default settings for HCI devices device { # Local device name # %d - device id # %h - host name name "%h-%d"; # Local device class class 0x3e0100; # Default packet type #pkt_type DH1,DM1,HV1; # Inquiry and Page scan iscan enable; pscan enable; # Default link mode # none - no specific policy # accept - always accept incoming connections # master - become master on incoming connections, # deny role switch on outgoing connections lm accept; # Default link policy # none - no specific policy # rswitch - allow role switch # hold - allow hold mode # sniff - allow sniff mode # park - allow park mode lp rswitch,hold,sniff,park; # Authentication and Encryption (Security Mode 3) #auth enable; #encrypt enable; } А потом либо графической штатной утилитой, либо из консоли выполнить: * hcitool scan — чтобы вывести список доступных в эфире Bluetooth устройств * sdptool browse - узнаем точно канал приёмника(не всегда команда выводит данные(зависит от приемника)) * sudo rfcomm bind 0 MA:C:AD:DD:RE:SS 1 — создает системное устройство /dev/rfcomm0 (параметр 0 после команды bind) и подключает его к bluetooth железке с мак-адресом MA:C:AD:DD:RE:SS (берется из вывода команды hcitool scan) и каналом 1 (может зависеть от вашего BT устройства) далее используем полученные MAC и канал: Code sudo gedit /etc/bluetooth/rfcomm.conf добавляем: rfcomm0 { bind yes; device [color=red]MA:C:AD:DD:RE:SS; channel 1; comment "Serial Port"; } [/color] запускаем: Code sudo rfcomm bind rfcomm0 Code sudo rfcomm release 0 Продолжаем (коннектим приёмник): Code sudo rfcomm connect 0 устанавливаем всё, что нам минимально необходимо: Code sudo apt-get install gpsd sudo apt-get install gpsd-clients В линуксе в качестве связующего звена между железом и софтом используется демон gpsd, который берет на себя всю ответственность за получение координат и другого рода информации от ГПС устройств. Это сильно упрощает написание программ, потому как в этом случае программистам не надо забоититься о поддержке разного рода протоколов от ГПС устройств. Нужно только соединиться с gpsd сервисом и получить от негу необходимую информацию. Чтобы запустить gpsd нам потребуется название утройства и стартуем gpsd дополнительные параметры. Например я чаще всего запускаю его с параметрами Code sudo gpsd -N -D 3 -b /dev/rfcomm0 где, * опция “-N” не позволяет отпустить консоль после запуска * опция “-D 3″ повышает уровень выводимой на консоль информации * опция “-b” переводит gpsd в режим Read-Only (ничего не посылать в порт). Используется с некоторыми глупыми GPS (у меня похоже такой) которым сносит крышу от того что им что то пишут в порт. * /dev/rfcomm0 — системное устройство отвечающее за связь с bluetooth приемником (на его месте может быть /dec/ttyUSB0 для USB или любое другое) Gpsd сервис теперь запущен (отсутствие сообщений об ошибке в выводе команды) и надо проверить что сигнал идет. В пакете gpsd-clients идет утилита xgps для отображения информации получаемой от gpsd демона. Утилита наглядно показывает доступные в зоне видимости спутники, координаты, высоту, некоторую дополнительную информацию — что означает что ГПС модуль и gpsd демон работают нормально. В итоге мы получаем последовательность для запуска: Code sudo rfcomm bind rfcomm0 sudo rfcomm release 0 sudo rfcomm connect 0 sudo killall gpsd sudo gpsd -N -D 3 -b /dev/rfcomm0 sudo xgps Софта под линукс конечно очень мало. Более-менее приемлимый: TangoGPS. Работает он только на указание места на карте(карты подгружаются в кэш(лучше дома с широким каналом)) и запись маршрута.
помог-поставь плюсик:)
Сообщение отредактировал luk2011 - Вторник, 16.03.2010, 14:17 |