CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
19.03.2019

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки :: Блогометки :: Приложения

Заметки :: Блогометки :: Устройства

Garmin GPSmap 60Cx: подключение и использование в Linux

http://sovety.blogspot.com/2008/06/garmin-gpsmap-60cx-linux.html

Материал распространяется на условиях Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

Вчера стали обладателями вот такого устройства, GPS-навигатора Garmin GPSmap 60Cx:

Устройство позволяет пользоваться загружаемыми векторными картами и имеет карточку памяти. Впрочем, все возможности ещё только предстоит научиться использовать. Карты надо научиться делать самим (те, что в продаже, стоят безумно дорого, но, главное, нормальных топографических карт нет, всё больше дороги…) — но это отдельная тема (кое-какие инструкции (1) уже (2) нашёл (3)). Вчера же вечером прокатились на велосипедах, чтобы записать тестовый трек, а после я пытался «подружить» это чудо со своим GNU/Linux. Ниже краткий конспект.

Подключается GPSmap 60Cx по USB (кабеля для подключения по последовательному порту в комплекте нет). Причём может подключаться в двух режимах: USB Mass Storage (ну с этим всё понятно, как флэшка, при отключении — устройство перезапускается) и по своему собственному протоколу (по умолчанию). Дальше я буду писать в основном про второй режим подключения.

Похоже, что в дистрибутивном ядре Debian (2.6.24-1-686) нужные драйвера garmin-gps уже включены, потому что сразу после подключения устройства dmesg выдаёт следующее:

usb 4-1: new full speed USB device using uhci_hcd and address 9
usb 4-1: configuration #1 chosen from 1 choice
garmin_gps 4-1:1.0: Garmin GPS usb/tty converter detected
usb 4-1: Garmin GPS usb/tty converter now attached to ttyUSB0

Из чего следует, что устройство подключается как /dev/ttyUSB0.

Передача точек маршрута (Waypoints) и треков (Tracks)

Вначале пробую программу gpsman. Интерфейс не сверхудобный, куча не связанных между собой окошек, между которыми приходится переключаться, кнопки, которые распахиваются в меню, но зато всё это дело работает! :)

Настройки потребовались минимальные: в главном окошке в диалоге Options указать GPS Model «Garmin» и Serial port «/dev/ttyUSB0». Всё, после этого в окошке GPS Reciever

— там, где написано offline, нажимаем, и выбираем check — надпись сменится на зелёную online, а кнопки внизу станут активные. Именно эти кнопки и надо использовать, чтобы скачивать с устройства (Get) или загружать на устройство (Put) разные типы объектов.

Я пробовал скачивать точки маршрута и записанный трек (кнопки WPoint и Track соответственно). После их нажатия программа получает с устройства список имеющихся в нём объектов, и уже в другом окошке можно выбрать нужный и сохранить/экспортировать. Треки можно сразу экспортировать в формате GPX. Ещё треки можно просматривать и редактировать на «карте» в gpsman. Слово «карта» написал в кавычках — потому что вначале это чистый лист, подложку с картой сделать вроде бы можно, но как — пока не разбирался.

Можно загрузить трек и точки маршрута с устройства при помощи программы gpsbabel, из командной строки. Если устройство подключено к /dev/ttyUSB0, а нужен трек с точками в формате GPX, то получить его можно так:

$ gpsbabel -t -w -i garmin -f /dev/ttyUSB0 -o gpx -F мойтрек.gpx
Другой способ получить эту информацию — скопировать с устройства GPX-файл в режиме USB Mass Storage, а потом уже его конверировать-преобразовывать… Этот файл с названием вида ГГГГММДД.gpx появляется на карточке памяти, только если включена соответствующая функция в приборе. В него пишутся копии всех треков за день, сам прибор никак этой информацией не пользуется. gpsman же позволяет скачивать треки, находящиеся в памяти прибора. На мой взгляд, использовать gpsman проще, потому что треки и точки пути будут уже разделены и называться так же, как и на устройстве. Лирическое отступление: Как вставить GPX-трек на Google Earth или Google Maps? Совет нашёл на Geofaq.ru (загрузка данных GPS на растровую карту). Если кратко, то трек нужно преобразовать в формат KML, затем выложить куда-нибудь в веб, а в Google Maps указать URL этого файла. В Google Earth KML-файл можно открыть непосредственно. В случае использования свободного софта, преобразовать файл из GPX в KML может GPSBabel:
$ gpsbabel -i gpx -f 20080611.gpx -o kml -F 20080611.kml

Эта команда говорит: исходный формат GPX (-i gpx), исходные данные брать из файла 20080611.gpx (-f имяфайла), конечный формат KML (-o kml), писать результат в файл 20060811.kml (-F имяфала). Всё, полученный файл можно просмотреть в Google Earth или Google Maps.

Загружать точки-треки-маршруты с компьютера на навигатор я ещё не пробовал, но в целом создалось впечатление, что работать с точками-треками-маршрутами можно без проблем.

Другие способы: у gpsman есть интерфейс командной строки (ещё не пробовал), есть программа gpstrans, умеющая делать примерно то же самое, тоже с интерфейсом командной строки (тоже ещё не пробовал).

Далее речь пойдёт о загрузке в прибор карт, прежде всего неофициальных (потому что покрытие официальных гарминовских топографических карт весьма неудовлетворительное).

Использование официальной MapSource4.0

С устройством поставляется программа MapSource4.0, необходимая для установки официальных карт, годная и для скачивания-закачивания треков, маршрутов и точек. Программа без проблем установилась под wine (версия 1.0-rc-1), даже на русском языке.

Народ на форумах подсказал, что нужно сделать вот так:

$ ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1

и после этого перезапустить MapSource. После этого программа стала находить подключенный по USB прибор и с ним работать. Проверил передачу треков и точек пути, загрузку карт на прибор. Вроде всё нормально.

Использование неофициальной QLandkarte

QLandkarte — свободная программка с неплохим интерфейсом, предназначенная заменить собой несвободную MapSource, в том числе, загружать на устройство карты. В данный момент мне удалось с её помощью просматривать карты в формате IMG, но вот соединяться с устройством QLandkarte никак не хочет. Выдаёт мистическую «Device link error», а в настройках прямо сказано, что имя порта для USB-устройств игнорируется… В общем, надо разбираться, копать список рассылки, потому что программа похоже стоит того.

Другие способы загружать на устройство карты

Копирование карт в режиме USB Mass Storage. Вот здесь предлагают такой способ:

Q: I copied the IMG files onto my GPS, but don't see anything.
A: Garmin GPS's have to use the gmapsupp.img file in the Garmin folder (USB Drive Letter:\Garmin\GMAPSUPP.IMG) and there can only be one of this file. Either rename the 1 file you want to gmapsupp.img or use sendmap20 to compile all the img's you want into one gmapsupp.img file.

Попробовал, создал на карточке устройства папку. Клал туда IMG-файлы. Устройство не видит. Переименовывал тот или иной файл в GMAPSUPP.IMG. Не находит. Пробовал называть строчными буквами (хотя там же всё равно FAT?). Не помогает. То ли карты не те, то ли надо что-то с устройством вначале сделать.

Есть программка sendmap20. Бесплатная её версия для Linux не работает: точнее, не находит /dev/ttyUSB0. И что с ней можно сделать — я не придумал. Зато вот на этом польском форуме написали, что если в wine связать порт com1 c /dev/ttyUSB0 (см. выше про MapSource), то под wine будет работать бесплатная Windows-версия sendmap20.

И действительно, sendmap20 без проблем работает в wine после привязки порта, карты на устройство загружаются. Также в wine хорошо работает GPSMapEdit, которым можно создавать и редактировать карты. Бинарная бесплатная версия cgpsmapper, который конвертирует файлы из «польской нотации» в формат IMG, используемый Garmin, — тоже работает. Так что уже даже удалось создать и загрузить на устройство самодельную карту. При использовании sendmap20 нужно каждый раз стирать с устройства все карты и заливать весь нужный набор заново, это особенность программы.

Резюме: подключение GPS-устройства Garmin GPSmap 60Cx в Linux проблем не вызвало, передача точек пути, треков и маршрутов, похоже, работает нормально (как минимум, в MapSource и в gpsman), конвертировать данные в другие форматы умеет gpsbabel, карты можно загружать на устройство с помощью sendmap20 или MapSource под wine; сами карты в формате IMG в Linux можно просмотреть в QLandkarte или официальном MapSource, полный цикл подготовки карт можно выполнить при помощи бесплатного (но несвободного) ПО, но замену некоторым программам можно найти. В этом плане я связываю надежды с QGIS и GRASS, но пока ничего с их помощью не произвёл.

Ссылки по теме:





Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds