Garmin 60CSx: технические особенности устройства и карты для Garmin



8 коммент.
В этом посте мне хотелось собрать раскиданные там и сям разные технические особенности GPS-навигатора Garmin 60CSx. Кроме того, несколько замечаний о картах для Garmin 60CSx. Собственно, о них далее.

Где скачать карты для Garmin? Собственно, на торрентах или пойти и честно воспользоваться картами OpenStreetMaps.
Уже готовые карты OSM по городам есть здесь. Или можно отправиться на сайт OpenStreetMaps, зарегистрироваться там и скачать карту нужной области честно и бесплатно.

Для этого заходим на http://www.openstreetmap.org/ и регистрируемся. Далее выделяем область карты, которую хотим экспортировать (для последующей закачки в навигатор), жмём на Экспорт и просим карту в OSM формате - через некоторое время получаем файлик map.osm. Теперь скачиваем mkmap отсюда, как завещал ув.тов. jetxee в своей бессмертной статье, оно на джаве и требует сановскую джаву версии старше 1.5. С её помощью компилируем в полученный OSM-файл в img формат. Получившийся файл заливаем в гармин с помощью sendmap.

Однако с картами OpenStreetMap есть одна проблема: не дают скачать сразу большую карту (я с жадности запросил у сервера векторную карту всей Москвы с областью). Если нужны большие карты, например, всей РФ, можно податься на Cloudmade.com и скачать оттуда. Этот сайт содержит уже скачанные карты местностей в формате OSM (которые мы потом перегоняем в img для Гармина) и собственно файл IMG, который можно закачать в навигатор.


Закачивание карт в Garmin 60CSx
По сообщениям разных осведомлённых орлов, во внутренней памяти (internal) может находиться до 3 карт, тогда как на флешке (microSD) - только одна. Хотя, как совершенно справедливо попенял многоуважаемый комментатор diaword, на самом деле, никто не мешает скачать несколько карт и потом собрать из них одну. Это можно сделать с помощью утилиты Mkgmap, а её ключик --gmapsupp позволяет собрать результирующую карту из нескольких отдельных и потом залить в навигатор. Файл gmapsupp.img является архивом из нескольких карт *.img, причем их можно как упаковывать, так и обратно распаковывать с помощью sendmap.

А такой финт, как закачка четырёх файлов карт сразу:
Gmapbmap.img -- базовая карта
Gmapsupp.img -- ваша карта
Gmapsup2.img -- другая карта
Gmapprom.img -- другая карта
на Garmin 60CSx не проходит, к сожалению.

Размер одной карты (img-файл) не может превышать 2Gb, хотя карта может состоять из кусков, число этих кусков не может быть больше 2025.

Комментарий насчёт экрана Garmin 60CSx
В Сети есть много критики по поводу низкого разрешения (160х240 пикселей) трансфлективного экрана у 60CSx. Критика понятна, так как есть другие навигаторы с более высоким разрешением. Но друзья, мы же помним, зачем гарминовцы эту модель выпускали? Правильно, для туристов, рыбоволовов, любителей активного отдыха и прочих экстремалов. Там важно не любоваться на карты, а быстро понять, где ты находишься.

Чтобы дать понять всю прелесть экрана 60CSx в походных условиях, вот фотография face-to-face: мой телефон Motorola 1200AE и 60CSx. На мобильнике подсветка включена на полную катушку, а на Гармине она не включена вообще.

И кто из них продержится дольше - думаю, понятно.


Память и подключение
Подключение происходит через miniUSB кабель как в режиме MassStorage, так и по специльному протоколу. И тот, и другой вариант поддерживаются в Linux.
В комплекте идёт карта microSD на 64Mb, максимальная поддерживаемая ёмкость карты 4GB micro SDHC.

Батареи

Удобнее использовать комплект аккумуляторов: от двух NiMH аккумуляторов ёмкости 2700mA*h устройство будет работать 16-20 часов.
Читать далее

QtOctave - графическая оболочка для Octave



13 коммент.
Хотя MATLAB и правит миром численных математических расчётов, в этом деле ему зреет очень хорошая альтернатива - GNU/Octave. И хотя у Октавы много проблем, таких как слабая документация и в основном консольный режим работы, есть и хорошие новости: проект QtOctave, ставящий своей целью сделать графическую среду разработки для Octave, весьма неплох. О нём и будет этот небольшой пост.

Установка
Для того, чтобы поставить QtOctave, вам потребуется скачать бинарник с сайта авторов и установить пакет octave в вашем дистрибутиве. Собранный и готовый бинарник прямо с сайта qtoctave_binaries_Linux_i386-0.8.1_svn166.binaries.tar.bz2 . Далее устанавливаем QtOctave по инструкции, то есть делаем sudo ./install.sh

В свежих версиях дистрибутивов QtOctave наличествует в репозиториях, и установить её можно просто и легко:
aptitude install qtoctave
По зависимостям потянется и новая версия GNU/Octave, если она ещё не установлена.


Работа
Собственно, открываем графическую консольку и пишем:
qtoctave
Перед вами развернётся графическая благодать, в которой замигает разноцветными огнями вся неимоверная мощь Octave. Разворачиваем одно из окон и открываем там свой скрипт на MATLAB\Octave. Выглядит это так:

По умолчанию можно просматривать переменные, список последних команд и файлов. В общем-то, для работы особенно больше ничего и не нужно. Развернув окно внутренней консоли в QtOctave, можно работать непосредственно с командной строкой Октавы и при этом видеть список активных переменных.


Сразу из замеченных недостатков: в графической консоли внутри QtOctave нельзя использовать подсказку по клавише TAB, при этом оно переходит в режим правки. Так же хотелось бы попенять на то, что QtOctave
не сохраняет расположение окон. Но это в общем не так бросается в глаза: при некотором навыке работы с Октавой или Матлабом работать вы будете не с консолью, а с редактором, как уже описывалось ранее.

Так же в комплекте идёт справка в формате HTML, причём весьма добротная. Конечно, до матлабовской ещё очень и очень далеко, но уже что-то. И главное, что это в комплекте, то есть batteries included.
То есть можно не только работать в Octave, но ещё и получать справку по командам, хотя и весьма базовую.


Заключение

В целом впечатление QtOctave производит очень благоприятное. Хотя Octave можно пользоваться таким же способом, как и MATLAB, о чём уже писалось, просмотр переменных и история команд в графическом виде это очень полезные возможности QtOctave. Хочется пожелать успехов проекту и дальнейшего развития.

Так же можно посмотреть в сторону
Python и SciPy. Как советуют товарищи питонисты, для этого есть следующие инструменты:
  • Python(x,y) готовый дистрибутив питона для научных нужд (batteries included).
  • SPYDER (графическая оболочка, входит также в Python(x,y) в дополнение к Eclipse)
Так же можно посмотреть в сторону IPython.

К сожалению, главный (и единственный!) разработчик QtOctave прекратил работу над проектом. Вот чем стоило бы заняться, КДЕшники, а не пилить свистульки типа фильтров Ланцоша и прочей мишуры...
Читать далее

Научная поисковая система на вашем Linux-десктопе



10 коммент.
Некоторое время назад я писал о SWISH++, и вот теперь мне хотелось бы обобщить написанное в более краткой форме. Проблема поиска нужной статьи, если не помнишь точно где она находится в каталогах, действительно серьёзная.


1. Поиск дубликатов
Итак, когда я накачал нужных мне статей из Интернета, я прежде всего смотрю, есть ли они у меня в коллекции с помощью fdupes. Эта программа ищет дубликаты файлов:
$ fdupes -rd .
Точка в конце говорит о том, что искать дубликаты fdupes будет, начиная с текущего каталога, поэтому можно в каталоге со статьями сделать подкаталог 1/ и набросать туда скачанные статьи.

Fdupes сравнивает файлы как побайтово, так и с помощью подсчёта md5-суммы, работает невероятно быстро, сортировка производится в полуавтоматическом режиме: программа выводит в консоли дублирующиеся файлы и спрашивает, какой из них оставить. Об этом уже говорилось в статье о подходах к сортировке PDF-файлов.


2. Индексация текста в PDF-файлах
Сначала из
документов pdf вытаскиваем текст, для чего просим утилиту find найти все файлы PDF и для каждого найденного выполнить pdftotext без выдачи предупреждений и без вставки символов разрыва страницы:
find -name '*.pdf' -exec pdftotext -nopgbrk -q {} \;
Надо отметить, что pdftotext хорошо работает только для английского языка, на котором, в общем, все статьи и написаны.

Теперь индексируем все текстовые файлы - в этом нам поможет собрат SWISH++ по имени index++ для индексации текстовых файлов:
index++ -e "text:*.txt" .
Точка в конце означает, что поиск ведётся с текущего каталога. Подробнее об индексации и автоматизации этого процесса сказано здесь.

В результате в текущем каталоге появится файл swish++.index где, собственно, лежит информация об индексировани файлов. Теперь всё готово для поиска.


3. Ищем в архиве статей нужное
Для поиска используем search++ которая найдёт по нашему запросу в индексированной базе swish++.index файлы. Вот пример поиска статьи по математической морфологии, в которых нет упоминания про медицину:
$ search++ morphology and erosion and dilation not medicine
Мгновение спустя вижу результат (вывод сокращён):
# results: 125
99 ./Krylov2.txt 3771 Krylov2.txt
49 ./13300407.txt 3103 13300407.txt
46 ./morph1.slides.printing.6.txt 4369 morph1.slides.printing.6.txt
37 ./lecture_morphology_sara.txt 6746 lecture_morphology_sara.txt
30 ./SIGGRAPH2002_Sketch-Mitchell.txt 5308 SIGGRAPH2002_Sketch-Mitchell.txt
26 ./MorphologicalImageProcessing.txt 7642 MorphologicalImageProcessing.txt
25 ./phdsymp2002_ledda.txt 8298 phdsymp2002_ledda.txt
23 ./lab2_manual.txt 9313 lab2_manual.txt
23 ./Project 1.txt 9946 Project 1.txt
22 ./morphology.txt 11212 morphology.txt
22 ./edg/morphology.txt 11212 morphology.txt
22 ./slides-6-geometry.txt 11717 slides-6-geometry.txt
22 ./V1BFOGG8.txt 10797 V1BFOGG8.txt
18 ./71650638.txt 13978 71650638.txt
Первая колонка - релевантность, вторая - расположение файла относительно текущей директории, третья - размер файла, четвёртая - имя. Просто и понятно.

Теперь в консольке набираю kdpf
./Krylov2.pdf и смотрю нужную мне статью. И всё.

Ссылки
Собственно, документации о SWISH++ очень мало, так что в основном я решил собрать свои предыдущие записи в один пост:
- поиск и удаление дубликатов файлов с помощью fdupes;
- выделение текста из PDF-файлов и их индексация;
- поиск в индексированных файлах с помощью SWISH++
Читать далее

Чтение MAT-файлов MATLAB в nip2



3 коммент.
То, о чём так долго говорили красные, белые, зелёные, и даже голубые - свершилось. Теперь замечательный графический анализатор nip2 полностью поддерживает чтение MAT-файлов, в которых MATLAB записывает данные рабочего окружения с двойной точностью (double precision). И хотя в основной ветке этой возможности ещё нет, в SVN-репозитории оно уже появилось благодаря скромным усилиям автора этих строк и John Cupitt - одного из авторов nip2 и библиотеки VIPS.

На всякий случай: nip2 это графический анализатор изображений (это не привычный gimp или photoshop), который создавался специально для работы с огромными файлами и научных применений. Но он может быть полезен и простым пользователям: с его помощью легко открывать, просматривать, кадрировать огромные файлы. Или, например, склеить две фотографии в одну - как склеивают панорамы.


Для чего нужно открывать MAT-файлы в nip2
Упреждая возможные вопросы "а зачем нам проприетарный mat когда есть csv" отвечу: запись в открытый формат CSV в матлабе происходит несколько нетривиальным образом и можно записать только одну переменную. Более того, если забыть указать несколько важных параметров, можно сильно потерять в точности сохраняемых данных. И главное, что уже много результатов научных экспериментов сохранено в MAT-формате.

Периодически возникает необходимость быстро просмотреть эти данные (это изображения) в каком-нибудь просмотрщике без необходимости загружать MATLAB. Таковых просмотрщиков я не знаю - открыть MAT-файл может только GNU/Octave с помощью библиотеки matio. Так что эта возможность очень нужна и востребована.

Установка nip2 и VIPS

Хотя об установке nip2 я уже писал, тем не менее, повторюсь. Сначала нужно скачать отсюда из support-зоны самый свежак. Сначала собираем VIPS и устанавливаем пакет, потом собираем nip2 и тоже устанавливаем. Последние версии (vips7.18.XX) со старыми версиями Питона могут не собраться, так что для этого при сборке пользуем ключ --without-python и собираем.

Для себя и своих студентов я собрал пакеты под Debian Etch и архитектуру i386 (да-да, я в конкретном бронепоезде):
После этого добавляем программу в меню вашего оконного менеджера или запускаем прямо из графической консоли командой nip2.


Просмотр MAT-файлов MATLAB в nip2

Здесь всё довольно просто: в диалоге открытия явно указываем, что хотим просмотреть MATLAB's mat-files и далее открываем такой файл. Пример на скриншоте - легендарная Лена
(а кто такая Лена?)


А теперь примерчик посложнее - загружаем изображение усреднённых темновых шумов цифровой камеры и берём от них Фурье-преобразование (на том же скриншоте открыта в левом нижнем углу неудачная фотография от скоростной съёмки):


Так что наши данные теперь можно просмотреть без томительного ожидания, пока MATLAB откроет эти файлы. Кстати о данных в форматах CSV и MAT...


Данные в CSV и MAT-форматах: особенности записи MATLAB и просмотр nip2
Эту заметку я хотел сделать отдельным постом, но решил выложить здесь же. Появился тут вопрос: как сохраняет MATLAB данные с плавающей точкой в разных форматах. Для этого мы провели маленькое расследование...


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

>> a = magic(5)

a =

17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9

>> b =a./3

b =

5.6667 8.0000 0.3333 2.6667 5.0000
7.6667 1.6667 2.3333 4.6667 5.3333
1.3333 2.0000 4.3333 6.6667 7.3333
3.3333 4.0000 6.3333 7.0000 1.0000
3.6667 6.0000 8.3333 0.6667 3.0000

>> b(2,2)=1.09878432753084573248523475
>> b(2,3)=2^20

Видим только первые четыре числа после запятой - это потому, что по умолчанию MATLAB отображает числа в коротком формате. Изменить этот формат можно командой format type.

Чтобы сделать задачу более наглядной, в матрицу записали два числа: одно с разными числами после запятой, а второе - очень большое (2^20). Теперь сохраняем в MAT-файл и CSV командами:
save('magic5x5doubleafterformatlong.mat', 'b'); %% это сохраняется MAT-файл
csvwrite('magic5x5double-afterformatlong.csv',b); %% это сохраняется CSV-файл

Теперь открываем их и сравниваем с исходниками...

Данные в MAT-файле.
В MAT-файлах всё чисто: он сохраняет так же, как и открывает.
>> load('magic5x5doubleafterformatlong.mat')
>> b
b =
1.0e+06 *
Columns 1 through 4
0.00000566666667 0.00000800000000 0.00000033333333 0.00000266666667
0.00000766666667 0.00000109878433 1.04857600000000 0.00000466666667
0.00000133333333 0.00000200000000 0.00000433333333 0.00000666666667
0.00000333333333 0.00000400000000 0.00000633333333 0.00000700000000
0.00000366666667 0.00000600000000 0.00000833333333 0.00000066666667
Column 5
0.00000500000000
0.00000533333333
0.00000733333333
0.00000100000000
0.00000300000000
>> b(2,2)
ans =
1.09878432753085
>> b(2,3)
ans =
1048576

Данные в CSV-файле.
А вот тут начинаются приключения. MATLAB записывает в CSV формат данные с точностью, такой же, как при отображении. То есть, например, при отображении используется вывод только первых 4 чисел после запятой - следовательно, сохранены они в CSV будут так же.

>> b(2,2)

ans =

1.0988

С большими числами тоже самое: они сохраняются в экспоненциальной форме с точностью, установленной для отображения (по умолчанию 4 знака). Это так же видно в CSV-файле (записывает с той точностью, с которой отображает). У одной и той же матрицы, сохранённой в CSV и MAT сходный размер.


>> b(2,3)=2^20

b =

1.0e+06 *

0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 1.0486 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000

>> b(2,3)

ans =

1048600

>> 2^20

ans =

1048576

Именно так оно и происходит по умолчанию: MATLAB просто округляет числа при записи в CSV до четырёх значащих чисел. Для того, чтобы запись происходила с нужной нам точностью в CSV, следует использовать команду dlmwrite и явно указывать точность. Например так:

>> dlmwrite('magic5x5double1-dlmwrite-precision12f.csv', b, 'precision', '%12.12f')

Это записывает матрицу в CSV формат с переменной b и обеспечивает точность 12 значащих чисел. Так что стоит аккуратнее обходиться с командами записи: csvwrite вам запишет, конечно, переменную, но с малой точностью. Это может стать источником трудноуловимых проблем.


Отображение данных в MAT и CSV форматах в nip2
Теперь, возвращаясь к теме поста, в последних версиях (nip2 и vips > 7.18.2) замечательного графического анализатора nip2 можно просматривать не только данные в CSV, но и в MAT-файлах. Это очень и очень удобная возможность: например, усреднённое изображение в MAT-файле можно проанализировать и посмотреть без необходимости загружать лишний раз MATLAB. Особенно это актуально, если изображение в MAT-файле больших размеров. Точность просмотра CSV и MAT-данных составляет 5 значащих цифр.
Читать далее

MOCP - Music On Console player, или Играй, гармонь!



20 коммент.
Время от времени нужно выходить в консоль и гасить иксы - для изменения иксовых же настроек или обновлений, связанных с иксовыми пакетами. И сидеть в это время в тишине совсем не хочется. Конечно, можно запустить XMMS на ноутбуке и проигрывать музыку оттуда, но есть решение лучше: MOCP. Запустил MOCP в консольке, скрыл - и музыка заиграла. Вышел из иксов что-то поправить в консоли - а гармонь-то поёт :-)

Если б гармошка умела
всё говорить, не тая...
(с) Песня, из которой слов не выкинуть

Об этом замечательном плеере уже писал Андрей aka vonderer здесь. Из той песни тоже слов не выкинуть, но я немного подробнее остановлюсь на управлении плеером. Как любое хорошее приложение, оно управляется горячими клавишами, и основные клавиатурные сокращения такие:
  • ENTER – переключиться в директорию и\или начать воспроизведение песни
  • o – проиграть URL (например, интернет-радиостанции)
  • p или пробел – пауза
  • s – стоп
  • l – переключиться между одно- и двухпанельным режимом
  • a – добавить текущий файл в список воспроизведения
  • A – добавить текущую директорию в список воспроизведения
  • C – очистить список воспроизведения
  • q – отключить консольный интерфейс (сервер MOC будет продолжать воспроизведение, к нему можно подключиться снова, набрав mocp)
  • Q – отключение MOC-сервера (прекращение воспроизведения)

Так же можно воспользоваться более широкими возможностями по управлению плеером с помощью следующих клавиатурных сокращений:
  • n -- проиграть следующую песню из списка
  • b -- проиграть предыдущую песню из списка
  • S -- воспроизведение в произвольном порядке
  • R -- повторяет выбранную песню циклически
  • u -- перемещает элемент списка воспроизведения вверх
  • j -- перемещает элемент списка воспроизведения вниз
  • g или / -- ищет заданную строку в именах фалов песен
  • r -- перечитать директорию заново
  • f -- переключить режим отображения с имён файлов на теги
  • TAB -- переключение между списком воспроизведения и файлами песен
  • H -- показывает скрытые файлы
  • Ctrl-t -- показать или убрать длительность песни в списке
  • Ctrl-f -- показать или убрать формат песни
  • U -- переместиться на уровень выше в директории
  • a -- добавить файл к списку воспроизведения
  • A -- добавить каталог к списку воспроизведения
  • C -- очистить список воспроизведения
  • V -- сохранить список воспроизведения
  • d -- удалить отмеченные песни из списка воспроизведения

Наконец, управление громкостью
  • < -- уменьшить громкость на 1%
  • , -- уменьшить громкость на 5%
  • >— увеличить громкость на 1%
  • . — увеличить громкость на 5%
Если вы запамятовали какую-нибудь команду, то получить справку по клавиатурным сокращениям можно клавишей "?"

Язык осин и берёз MOCP по умолчанию отображает славяно-греко-латинской мешаниной, что легко поправить. Для этого копируем пример конфига отсюда:
$ cp /usr/share/doc/moc/examples/config.example.gz ~/.moc/
$ cd ~/.moc
# chown $USER config.example.gz
Где $USER - имя пользователя в системе. После этого разархивируем конфиг:
$ gunzip config.example.gz
$ mv config.example config
И правим его своим любимым текстовым редактором. Чтобы заставить MOCP дружить с кириллицей в ID3v1-заголовках, необходимо найти строку:

#ID3v1TagsEncoding = WINDOWS-1250

и превратить ее в

ID3v1TagsEncoding = WINDOWS-1251
И всё, играй, гармонь!
Читать далее

Как обналичить чек Google Adsense в Москве



15 коммент.
Некоторое время назад на блоге появилась контекстная реклама Google AdSense, чтобы несколько поддержать моё материальное благосостояние. И вот я получил свой долгожданный чек на целых сто восемнадцать долларов. Казалось бы - что такого, всего лишь обналичить чек? Но вот тут-то история и начинается...

Пусть этот пост немного не в тему блога, просто мало ли кому пригодится (или я снова буду обналичивать чек от AdSense). Итак, мы имеем чек Google AdSense, который выпустил Citibank в США. Такие чеки выглядят так:



Всего делов - обналичить чек. Для этого мы обзваниваем окрестные банки и говорим, как совершенно правильно советуют старшие товарищи, что нужно СДАТЬ ИМЕННОЙ ЧЕК НА ИНКАССО.

Услуга это не массовая, и скорее всего придётся ехать в центральное (головное) отделение банка. Операция проводится довольно долго (у меня заняло около 40 минут вместе с открытием счёта), так что запасаемся терпением. Ниже - итоги моих странствий со счастливым концом :-)

Краткий обзор пунктов приёма именных чеков Google AdSense на инкассо в Москве

Сразу заявляю: я звонил в те банки, которые либо близко от меня территориально, либо где у меня уже открыты счета. Все данные актуальны на Июль 2009 года. Так как всё течёт и меняется, лучше перед походом не полениться и позвонить в банк.

Итак, чеки Google AdSense соглашается брать:

  • РБР, Русский банк развития (ФК Открытие): комиссия 1% от суммы (минимум 5$) + 900 руб (!) на почтовые расходы + комиссии сторонних банков. Время - не более 1 месяца. Только в головном отделении. Требуется открытие счёта.
  • Банк Москвы: комиссия 350 рублей, вроде (?) счёт открывать не обязательно, сроков назвать не могут.
  • Юниаструм банк: комиссия 500 рублей (= 21$), открытие счёта, головное отделение. Время 1-2 месяца.

В Райффайзен Банк, Альфа-банк и БинБанк можно не звонить и не тратить время - чеков не берут.


Теперь личные впечатления.

Несмотря на то, что в РБР у меня открыт счёт, комиссия у них просто грабительская: 1% от суммы и 900 рублей на почту + комиссия сторонних банков. Я, конечно, понимаю здоровое желание банков подзаработать, но всё имеет свои пределы.

Банк Москвы так же порадовал: по телефону бодро пообещали, что обналичить могут в любом офисе, но я, зная цену таким обещаниям, поехал в головное отделение. Дальше начинался цирк с конями: в головном офисе обналичка чеков только до 18:00 (хотя отделение работает до 20:00) и срока обналички назвать не могут (!). Такой восхитительный бардак, впрочем, неудивителен, судя по отзывам клиентов о самом банке.

Решив, что нервы дороже, поехал в Юниаструм банк. Путь неблизкий, но он того стоил. Персонал очень вежливый и приветливый, клиентов немного, на всю операцию (открытие счёта, приём чека на инкассо, оплата комиссии) ушло около 40 минут. В итоге: открыт валютный счёт, но без карты (комиссия не берётся, как и деньги за обслуживание), через 45 дней деньги можно забрать по паспорту в любом отделении Юниаструмбанка.

Не так давно (конец августа 2009) я зашёл в местный доп.офис Юниаструма и, после некоторых объяснений, забрал свои кровные 110$ американских рублей. Правда, с меня взяли комиссию в 1.5% "за безналичный перевод" - это составило около полутора долларов. На всё ушло около 40 дней, как и было обещано банкирами.
Читать далее

Закачка карт в GPS навигатор Garmin GPSMap 60CSx



15 коммент.
Не так давно решил разориться на GPS-навигатор, так как по многим местам приходится мотаться и ходить по отечественным картам уже нет никакой возможности. Вспомнив о том, как ув.тов. jetxee нахваливал Garmin GPSMap 60CSx, решил его прикупить. Естественно, сразу встал вопрос о том, как закачивать в него карты.


Выглядит он как достаточно крупных габаритов мобильник (середины 90-х, если кто помнит). Покупал на ebay, так как платить две цены здесь желания особого нет. Отсюда есть одна особенность: навигатор с английским меню, так что русские карты должны быть в транслитерации.

Итак, вариантов закачки карт в GPS-навигатор, собственно, два: через эмуляцию /dev/ttyUSB0 по закрытому протоколу Garmin и по Mass Storage.

Закачка карт в GPS-навигатор по протоколу Garmin
Этот вариант оказался самым жизнеспособным. Если ваше ядро собрано с поддержкой garmin_gps, то после подключения навигатора к USB штепселю ядро нам должно написать в логах dmesg так:
usb 4-1: new full speed USB device using uhci_hcd and address 3
usb 4-1: configuration #1 chosen from 1 choice
drivers/usb/serial/usb-serial.c: USB Serial support registered for Garmin GPS usb/tty
garmin_gps 4-1:1.0: Garmin GPS usb/tty converter detected
usb 4-1: Garmin GPS usb/tty converter now attached to ttyUSB0
usbcore: registered new interface driver garmin_gps
drivers/usb/serial/garmin_gps.c: garmin gps driver v0.28
Выделенная строчка нам говорит о том, что у нас появился новый порт имени /dev/ttyUSB0 куда мы будем закачивать наши карты.

Где взять карты для GPS-навигаторов Garmin?
Это философский вопрос, и в одном посте на него не ответить. Но для начала можно воспользоваться открытыми картами OpenStreetMaps (после регистрации имеем возможность экспортировать нужные вам куски карт в XML формат).

Уже собранные карты для Garmin, на всякий случай, есть здесь. После распаковки будет много файлов, нам нужен только 008XXX.img


Программы для закачки карт в GPS-навигаторы для Linux
Софта под Linux для закачки gps-карт в навигатор немного. Из опробованного мной могу сказать про sendmap. Скажу сразу: версия sendmap17Lstatic, которая Stable version of sendmap with RS support only, не работает у меня никак. При попытке отправить в навигатор карту ругается:

./sendmap17Lstatic /dev/ttyUSB0 -s57600 moscowregion.img
GPS SendMap & GetMap version 17, Kozicki@gps.chrisb.org

Checking input files
Preparing...
Failure to communicate with GPS or no maps can be upload into GPS
Зато работает новая версия, которая на сайте обозначена как Free sendMap20 rev 4.2 BETA for Linux with experimental USB support. С её-то помощью и удалось закачать карту, сделанную для московской области:
./sendmap20 -t/dev/ttyUSB0 -s9600 moscowregion.img
Detected : GPSMap60CSX Software Version 3.60
Available memory : 120 MB
Max number of maps: 2025
Final map size : 486 kB
Maps uploaded!
После этого карта появляется в списке карт навигатора (на всякий случай - у Garmin в устойстве карта может быть только одна, загрузка новой стирает предыдущую).

Параметры можно менять, например, изменить скорость закачки (-s115200) и присвоить карте другое отображаемое имя (-mMOSCOW )
./sendmap20 -t/dev/ttyUSB0 -mMOSCOW -s115200 63240001.img
После этого навигатор карту видит и может с ней работать. Правда, на той карте географическая привязка была какая-то странная...
Для Windows программы для закачки карт в GPS-навигатор называются MapSource и GPSMapEdit.

Закачка карт в GPS-навигатор через Mass Storage

Если выбрать в меню навигатора этот вариант, он станет большой флешкой и вы сможете на него закачивать карты:
usb 4-1: new full speed USB device using uhci_hcd and address 4
usb 4-1: configuration #1 chosen from 1 choice
scsi0 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 4
usb-storage: waiting for device to settle before scanning
scsi 0:0:0:0: Direct-Access Garmin 60x microSD 1.00 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 246016 512-byte hardware sectors (126 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 23 00 00 00
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] 246016 512-byte hardware sectors (126 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 23 00 00 00
sd 0:0:0:0: [sda] Assuming drive cache: write through
sda: sda1
sd 0:0:0:0: [sda] Attached SCSI removable disk
sd 0:0:0:0: Attached scsi generic sg0 type 0
usb-storage: device scan complete
По идее, монтируем /dev/sda1 и наступает нам счастье. После этого, по идее, нужно создать каталог garmin и закачать туда вашу карту с названием gmapsupp.img

Но здесь есть нюанс: если вы это делаете в первый раз, закачать карты можно, но навигатор карт не видит. Это связано, как я понял, с регистром символов: каталог должен называться Garmin - так, как его создаёт программа sendmap при первой заливке карт.

И ещё. Как выяснилось на форумах, закачать на флешку несколько карт и выбирать из них в Garmin 60 CSx не получится. С флешки видно только одну карту.
Читать далее