Выложено обновление версии программы под все системы.
Актуальная версия 1.82.1308.

Версия под iOS - в связи с проверкой будут выложена в магазин чуть позже.

Увеличен интервал "отвала" GPS до 15 секунд
Значение вынесено в settings.xml (без доступа из настроек)
При отключенной галочке "сглаживать вращение" карта ориентируется без отклонения угла
Исправлено "мерцание" экрана на iOS
Множество мелких исправлений

Ссылки для скачивания:
Android APK:
https://navikey.ru/files/7w/7ways-1308/7ways.apk

Linux:
https://navikey.ru/files/7w/7ways-1308/7ways-linux-rpi-arm.zip
https://navikey.ru/files/7w/7ways-1308/7ways-linux-ubuntu-bionic-x86_64.zip
https://navikey.ru/files/7w/7ways-1308/7ways-linux-ubuntu-bionic-x86.zip
https://navikey.ru/files/7w/7ways-1308/7ways-linux-ubuntu-xenial-x86_64.zip
https://navikey.ru/files/7w/7ways-1308/7ways-linux-ubuntu-xenial-x86.zip

Windows CE:
https://navikey.ru/files/7w/7ways-1308/7ways-win-ce-arm.zip
https://navikey.ru/files/7w/7ways-1308/7ways-win-ce-mips.zip
https://navikey.ru/files/7w/7ways-1308/7ways-win-ce-sh4.zip

Windows NT:
https://navikey.ru/files/7w/7ways-1308/7ways-win-nt-x86_64.zip
https://navikey.ru/files/7w/7ways-1308/7ways-win-nt-x86.zip
Группа в Telegram (https://t.me/navikey)
Поддержка пользователей и общение.

Также запущена поддержка пользователей в Telegram (https://t.me/navikey_support_bot)
Запущен новостной блог http://blog.navikey.org/
В блоге публикуются сообщения о текущих работах и планах.
Доступна RSS подписка на новости.

7ways для Linux

отредактировано November 2013 Раздел: Общие
Доброго времени суток! Давно ждал версию программы для Linux и наконец дождался :) Однако, с ходу появилось несколько вопросов:
1) при запуске программы без каких-либо ключей она запускается на полный экран, но не растягивается под разрешение экрана (см. скриншот), можно ли это как-нибудь вылечить? <img src="/vanilla/uploads/FileUpload/5/605.jpeg">
2) есть ли какие-нибудь дополнительные ключи для запуска программы кроме размера окна в оконном режиме?
3) а свежие версии будут? :) текущая не поддерживает новые карты :(

P.S. инфо о системе:
System uname: Linux-3.11.4-pf-x86_64-AMD_A10-4600M_APU_with_Radeon-tm-_HD_Graphics-with-gentoo-2.2
Description: Gentoo Base System release 2.2
KiB Mem: 5498036 total, 168580 free
KiB Swap: 2046972 total, 1592400 free
OpenGL renderer string: Gallium 0.4 on AMD ARUBA
OpenGL version string: 3.0 Mesa 9.2.2
Тэги темы:
«134

Комментарии

  • Та-же проблема с экраном.
  • отредактировано November 2013
    Пожалуйста скачайте новую версию (590)
    http://navikey.ru/files/7w/7ways.tar.gz
  • naHard сказал: Пожалуйста скачайте новую версию (590)

    Спасибо огромное, проблема с отображением исчезла, но есть другая проблема: не работает звук :( в stdout пишет следующее:
    track@Scream-mini ~/7ways $ ./7ways
    ALSA lib conf.c:3314:(snd_config_hooks_call) Cannot open shared library /usr/lib64/alsa-lib/libasound_module_conf_pulse.so
    ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM default
    ALSA lib pcm.c:7913:(snd_pcm_set_params) Channels count (1) not available for PLAYBACK: Invalid argument

    Содержимое 7ways.log:
    22:00:16.1719: Start program (6.11.2013), build 591, 0811E140, Linux
    22:00:29.3962: ERROR: Can't open "default:" PCM device. No such file or directory

    22:00:29.3983: Playback open error: Invalid argument

    хотя библиотеки все в наличии. Ну и зависимая от предыдущей проблема: при изменении различных настроек (к примеру, несколько раз пытался выключить звук) программа падает.
    При этом в stdout выводится строка
    7ways: pcm.c:1099: snd_pcm_drop: Assertion `pcm' failed.

    А в логе, соответственно,
    22:10:37.2610: Signal 6, code -6, fault addr 00001CFD
    22:10:37.2610: eax=00000000 ebx=00001CFD ecx=00001CFD edx=00000006 esi=F7753000 edi=F736C000
    22:10:37.2610: ebp=00001CFD esp=FFB494AC eip=F7787425 eflags=00000202
  • Добрый день!

    Мы провели исследование и пришли к выводу что проблема со звуком может иметь корни описанные здесь: http://amanita-design.net/forum/index.php?topic=991.0 т.е. проблема заключается в отсутствии 32 бит библиотек для звука...
    Попробуйте установить 32 битные библиотеки asound2-plugins...
    Обновленная версия для linux - будет выложена в ближайшее время.
  • Доброго времени суток! В build 593 падения прекратились, но звук так и не появился :( В stdout пишет то же самое, что и в прошлый раз. Библиотеки в системе установлены:

    track@Scream-mini ~/7ways $ eix emul-linux-x86-soundlibs
    app-emulation/emul-linux-x86-soundlibs
    Available versions: 20130224^s 20131008-r1^s {alsa +development ABI_X86="32"}
    Installed versions: 20131008-r1^s(16:51:58 14.10.2013)(alsa development ABI_X86="-32")
    Homepage: http://dev.gentoo.org/~pacho/emul.html
    Description: Provides precompiled 32bit libraries

    В остальном в системе никаких проблем со звуком нет.
    Вывод strace говорит, что программа пытается открыть библиотеку /usr/lib64/alsa-lib/libasound_module_conf_pulse.so, хотя должна открывать по пути /usr/lib32... Пытаюсь разобраться, это ошибка ОС или программы. Принудительная подгрузка "правильной" библиотеки через env LD_PRELOAD результатов не дает.
  • Добрый день!

    Изучив вопрос рекомендуем посмотреть вот этот совет http://forums.gentoo.org/viewtopic-p-7060060.html?sid=1e9e825d0a4e9d1084fc6357879c2c44#7060060.
    Пожалуйста - попробуйте этот вариант и сообщите о результатах...
    Спасибо!
  • Благодарю, теперь все работает, огромное Вам спасибо! Все-таки проблема была на моей стороне :) Странно что с другим ПО, в т.ч. 32-битным подобных проблем не возникало... Есть только одно замечание: программа создает множество выходных каналов. Насколько я понял, под каждую фразу создает свой звуковой канал к pulseaudio, но предыдущий не закрывает. не знаю насколько это может сказаться на производительности при длительном использовании - тестировал на работе, здесь довольно мощная машина. Для ясности приложу скриншот :)
    <img src="/vanilla/uploads/FileUpload/17/637.png" />
    12.png 90.4K
  • отредактировано November 2013
    Рано радовался :( Звук работает до некоторого момента, попутно "отъедая" все больше виртуальной памяти. на пороге примерно в 2,5Гб выделенной памяти перестает работать звук с ошибками в консоли
    ALSA lib pcm_pulse.c:752:(pulse_prepare) PulseAudio: Unable to create stream: Too large
    ALSA lib pcm.c:7982:(snd_pcm_set_params) Unable to set hw params for PLAYBACK: Input/output error
    Затем выделение виртуальной памяти достигает 4Гб (!) и программа успешно зависает, поскольку это системное ограничение.
    track@Scream ~ $ ps u 31589
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    track 31589 1.4 0.3 4166072 26580 pts/1 Sl+ 14:51 0:07 ./7ways 1024 768
  • Огромное вам спасибо за тщательное тестирование!
    Благодаря вашим действиям мы нашли ошибку и обновили версию.
    Надеемся что теперь будет все в порядке и ждем ваших отзывов.
    Еще раз Спасибо!
  • Проверил, новая версия начала корректно работать с аудиопотоками :) Однако, утечка памяти продолжается, хоть и не столь критичная. Поставил программу крутить коротенький маршрут в демо и ушел на полчаса по рабочим делам. Прирост "занятой" памяти составил почти 2Гб. Статистика на момент запуска и, соответственно, через полчаса:
    track@Scream ~/7ways $ ps u 26897
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    track 26897 1.8 0.2 136396 17412 pts/1 Sl+ 13:45 0:00 ./7ways 1024 768

    track@Scream ~/7ways $ ps u 26897
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    track 26897 1.5 0.2 2017776 22816 pts/1 Sl+ 13:45 0:23 ./7ways 1024 768

    Насколько могу судить по выхлопу strace, программа по-прежнему просит выделить кусок памяти, но уже небольшого размера, под каждое воспроизведение звука, но после воспроизведения "забывает" освободить память. Это лишь моя догадка, основанная на анализе вывода strace и просмотре карты памяти процесса. Количество выделенных регионов памяти во время повторного теста:

    track@Scream ~/7ways $ cat /proc/28195/maps | wc -l
    229

    и, буквально через несколько минут:
    track@Scream ~/7ways $ cat /proc/28195/maps | wc -l
    317
  • Добрый день!
    Мы исправили указанную вами проблему!
    Огромное спасибо за ваши замечания.
    В течении дня новая версия будет доступна для загрузки.
  • Всем здравия! Простите меня за глупый вопрос, а как запустить 7дорог в убунту? При запуске "7ways" получаю ответ: Для файлов типа «исполняемый» не установлено ни одного приложения... Ubuntu 13.10 64bit, зарание Спасибо за помощь!
  • отредактировано December 2013
    PokoyNick сказал: Всем здравия! Простите меня за глупый вопрос, а как запустить 7дорог в убунту? При запуске "7ways" получаю ответ: Для файлов типа «исполняемый» не установлено ни одного приложения... Ubuntu 13.10 64bit, зарание Спасибо за помощь!
    Попробуйте запускать из консоли :) Выглядит примерно так:
    cd /путь/к/7ways
    ./7ways
    Еще как возможный вариант - отсутствуют права на выполнение файла. Для исправления откройте свойства файла и в правах поставьте галочку "позволить выполнение файла как программы"
  • Права выставлены на разрешение выполнения файлов как программы, при двойном щелчке на 7ways ничего не происходит... Из консоли находясь в папке с программой пишет: ~/7ways$ ./7ways
    ./7ways: error while loading shared libraries: libasound.so.2: cannot open shared object file: No such file or directory... Эх, счастье было так рядом... Спасибо за столь скорый ответ!
  • Установил libasound.so.2, теперь требует: error while loading shared libraries: libblkid.so.1: cannot open shared object file: No such file or directory... =) а в каком дистрибутиве linux будет работать без бубнов?
  • В linux Mint требует библиотеку: libcurl.so.4, вобщем убунту это бубунту! )=
  • PokoyNick сказал: а в каком дистрибутиве linux будет работать без бубнов?
    Смотря что считать плясками с бубном :) к сожалению, разработчики не указали зависимости приложения, поэтому недостающие библиотеки, как ни крути, придется доустанавливать методом тыка.
    Для Ubuntu x64 следующие пакеты должны быть установлены в системе:
    libstdc++6:i386
    libX11-6:i386
    libasound2:i386
    libblkid1:i386
    libcurl3:i386
    Для 32-битной убунты, соответственно, те же пакеты без :i386 :)
    Проверить недостающие компоненты можно командой "ldd /путь/к/исполняемому_файлу" :)
    подобных строк быть не должно:
    libcurl.so.4 => not found
  • Вот что мне выдало: ldd 7ways
    linux-gate.so.1 => (0xf7731000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf76f6000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf760d000)
    librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf7603000)
    libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf74ce000)
    libasound.so.2 => /usr/lib/i386-linux-gnu/libasound.so.2 (0xf73d8000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7395000)
    libblkid.so.1 => not found
    libcurl.so.4 => not found
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7377000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf71c3000)
    /lib/ld-linux.so.2 (0xf7732000)
    libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf71a2000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf719d000)
    libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf7198000)
    libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf7191000)
    Спасибо огромное! Теперь буду знать что ковырять! =)
  • Доброго здравия! Установил КУбунту добавил одну библиотеку и программа запустилась наконец-то! =) Теперь не могу прицепить USB-GPS GlobalSat, xgps показывает спутники, а вот 7дорог не в какую... Добавиль пользователя в группу dialout, поменял на всякий случай привилегии chmod 660 /dev/ttyUSB0, и тишина... Не подскажет кто, что ещё нужно сделать?
  • отредактировано December 2013
    PokoyNick сказал: Доброго здравия! Установил КУбунту
    А gpsd в системе установлен? Многие программы работают с устройствами GPS не напрямую.

    Хотя прошу прощения, невнимательно прочитал. Раз есть xgps, то и gpsd установлен.
    Могу предположить что нужно поиграться настройками спутников в программе.
  • Протестировал, у меня все заработало. Поскольку GPS у меня нету, то использовал фейковые данные. Для теста запустил
    1) gpsfake -c 0.5 -l -n test.log - это создает виртуальное GPS-устройство, выводит в него данные из файла test.log и запускает gpsd чтобы он думал что устройство вполне реально.
    2) gpspipe -Ro /tmp/test - берет у gpsd сырые данные и выводит их в файл /tmp/test
    3) Запустил 7ways и в настройках спутников снял галочку "использовать api", указал порт /tmp/test и скорость 1440. После этого все заработало.
    Как вариант могу предложить указать в поле порт Ваш адрес утройства - /dev/ttyUSB0, а с настройками скорости уже играть
    <img src="/vanilla/uploads/FileUpload/0/660.png" />
  • отредактировано December 2013
    Это можно задать в файле settings.xml
    <gps port="1" baudRate="57600" useGPS="1" useAPI="1" activeMode="0" hdopCoef="5" bgLocationMode="plugged" adjustSystemTime="0"/>
    
    Просто через меню нельзя выбрать активный-пассивный режим приёмника GPS.
  • Kostik сказал: Просто через меню нельзя выбрать активный-пассивный режим приёмника GPS.
    Каюсь, про режимы не знал. Пару лет назад занимался любительским проектом CarPC на базе Linux, был на руках некий нонейм приемник, тот при подключении без лишних слов вываливал данные в /dev/ttyUSB0. Хоть cat'ом забирай их оттуда.
  • отредактировано December 2013
    "Это можно задать в файле settings.xml" после входа в программе меню спутники, файл обнуляется по дефолту...
    <settings build="604">
      <gps port="/dev/ttyUSB0" baudRate="9600" useGPS="1" bgLocationMode="on" adjustSystemTime="0"/>
    
    остальное пропадает.
    "Как вариант могу предложить указать в поле порт Ваш адрес утройства - /dev/ttyUSB0, а с настройками скорости уже играть" При этой манипуляции появляется значок GPS подключен, но спутников не видит... В программе Navit в настройках прописано соединение: "gpsd://localhost" здесь такой вариант не прокатит? Navit показывает все спутники.
    "gpspipe -Ro /tmp/test - берет у gpsd сырые данные и выводит их в файл /tmp/test" пробовал, так же, показывает что подключен к GPS, но спутников нет.
    может дело в версии? (1.03.604)
  • отредактировано December 2013
    PokoyNick сказал: может дело в версии? (1.03.604)
    Дело точно не в версии.
    А видит ли 7ways спутники когда рядом запущен navit?
    У меня есть еще 2 возможных варианта:
    1) если 7ways видит спутники при каком-либо другом активном GPS-клиенте (Navit, xgps, gpsmon)
    запустить sudo dpkg-reconfigure gpsd
    на вопросы системы ответить так:
    разрешить автоматический запуск
    разрешить обрабатывать USB-устройства
    имя устройства для работы с приемником /dev/ttyUSB0
    дополнительные параметры для gpsd: -n
    это заставит gpsd постоянно держать устройство активным, и необходимость в activeMode="1" в файле settings.xml отпадет
    //хотя, полопатив мануалы, выяснилось что современные USB-GPS устройства не переходят в спящий режим, подобный режим использовался только в старых RS232, но с чем черт не шутит...
    и 2)
    Прописать еще раз в файл settings.xml:
    <gps port="/dev/ttyUSB0" baudRate="9600" useGPS="1" activeMode="1" bgLocationMode="plugged" adjustSystemTime="0"/>
    
    только уберите все \ перед кавычками!
    если программа продолжит сбрасывать файл, выставить права на файл "только для чтения".
    Оба способа довольно костыльные и не претендуют на работоспособность. Хотелось бы услышать комментарий разработчиков по этому вопросу :)

    P.S. лично для себя: при закрытых программах навигации команда tail -n 5 /dev/ttyUSB0 что-то выводит в консоль или молчит? Если пишет непонятные строки вроде
    $GPGGA,133530.00,5131.132976,N,00007.366092,W,1,06,0.5,064.0,M,0.209000,M,0.0010515,*5C
    
    то первый способ можно смело отбрасывать
  • отредактировано December 2013
    Track сказал: 1) если 7ways видит спутники при каком-либо другом активном GPS-клиенте (Navit, xgps, gpsmon)
    <img src="/vanilla/uploads/FileUpload/1/661.png" />
    Не видит, точнее даже не подключается...
    Track сказал: Прописать еще раз в файл settings.xml:
    Результат тот же, устройство подключено но спутников нет... Не мог прицепить к wine есть лицензия cityguide, так же, показывает устройство подключено, но спутников нет... Файл settings.xml обнуляется после входа в настройки спутника, и каждый раз стоит галочка "Использовать API" после перезахода в программу. Видно что специфика устройства виновата, GlobalSat N100.
    Track сказал: P.S. лично для себя: при закрытых программах навигации команда tail -n 5 /dev/ttyUSB0 что-то выводит в консоль или молчит?
    Молчит... Эх, как бы то нибыло, премного Благодарен за помощь! Всё понятно и своевременно!
  • отредактировано December 2013
    Сейчас через wine 7дорог попробовал запустить, ком порт сделал
    ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1
    
    и получил результат что и в linux версии: <img src="/vanilla/uploads/FileUpload/2/662.png" />подключение есть, спутников нет... хотя приём увереный, 10 спутников вполне достаточно? Похоже не правильно показывает NMEA оборудование... Кстати, USB моргает сразу после загрузки системы, не запуская служб GPS, а раз моргает значит приём увереный.

    <img src="/vanilla/uploads/FileUpload/3/663.png" />
    Три проги которые работают без колдовства. )=
  • отредактировано December 2013
    Да, странная ситуация получается. Даже не знаю как прокомментировать. Сам жду когда из китая доставят GlobalSat BU-353S4, интересно будут ли с ним какие-либо проблемы.
    Уважаемые разработчики, подскажите, пожалуйста с какими протоколами GPS умеет работать программа? И будет ли в будущем возможность подключения через gpsd?
  • Ещё странно то, этот приёмник работает на скорости 4800бит, но по умолчанию показывает 9600. В окнах я устанавливал параметр 4800, на linux'е после перезагрузки, скорость обратно скидывает на 9600. Правильно я задаю параметр? <img src="/vanilla/uploads/FileUpload/4/664.png" /> Открыл файл \tmp\test как Вы предлагали сделать для проверки, так вот, в нём пишется параметр со скоростью 4800, не смотря на то что в системе стоит 9600, отсюда кажется ноги растут? <img src="/vanilla/uploads/FileUpload/5/665.png" />
  • отредактировано December 2013
    Скорости bps и baud rate разные величины. Bps выражает количество бит в секунду, baud rate - количество символов в секунду. Зато, судя по выводу в файл, я вижу что Ваш приемник выводит информацию по протоколу SiRF binary. Попробуйте переключить его в режим NMEA командой gpsctl -f -n -s 9600 /dev/ttyUSB0, возможно это поможет решить проблему. Для начала можно попробовать без -s 9600, мануал предписывает использовать данный флаг с осторожностью.
  • отредактировано December 2013
    Track сказал: Попробуйте переключить его в режим NMEA командой gpsctl -f -n -s 9600 /dev/ttyUSB0

    Да Да Да!!! Всё заработало!!! =D> Огромнейше Благодарю!!! Я уж год ложил на linux из-за GPS, всё устраивает, но мне нужна была навигация, как я рад!!! ещё раз, Спасибо!
    <img src="/vanilla/uploads/FileUpload/6/666.png" />

    P.S. и через wine всё заработало.
  • отредактировано December 2013
    PokoyNick сказал: Да Да Да!!! Всё заработало!!!
    Очень за Вас рад! Обращайтесь, помогу чем смогу. :)
    Уважаемые разработчики, не знаю читаете ли Вы данный тред, но огромная просьба: сделайте в Linux-версии программы принудительное переключение приемника в режим NMEA. Насколько я знаю, приемники, не поддерживающие переключение, проигнорируют команду, остальные же начнут отдавать данные понятные Вашему ПО.
  • Есть один маленький нюансик,
    ~$ sudo gpsctl -f -n -s 4800 /dev/ttyUSB0
    gpsctl:SHOUT: vendor/product match with 091e:0003 not found
    gpsctl:SHOUT: /dev/ttyUSB0 identified as a SiRF binary at 4800.
    gpsctl:SHOUT: switching to mode NMEA.
    
    первое это не находит какое-то устройство? Второе, после перезагрузки системы нужно вновь вводить команду:
    sudo gpsctl -f -n -s 4800 /dev/ttyUSB0
    
  • отредактировано December 2013
    Первое - gpsctl не может найти устройство в собственной базе данных - это абсолютно не страшно. Со вторым посложнее. Есть 2 варианта:
    1) написать правило для udev, чтобы при подключении устройства или включении компа команда автоматически выполнялась. здесь я не смогу помочь пока мне не приедет приемник из Китая.
    2) написать скрипт, который будет переключать режим устройства и затем запускать программу.
    Например такой:
    #!/bin/bash
    sudo gpsctl -f -n -s 4800 /dev/ttyUSB0
    DIR="$(dirname "$(readlink -f "$0")")"
    "$DIR"/7ways
    
    положить этот скрипт (все символы \ удалить!) в директорию приложения и сделать chmod +x имя_скрипта
    запускать можно не переходя в директорию с приложением, скрипт сам определяет где он находится и запускает приложение из той же директории
    Если надоедает что при запуске через скрипт постоянно просит пароль - откройте в любом текстовом редакторе от имени суперпользователя файл /etc/sudoers, найдите там строку
    %sudo ALL=(ALL:ALL) ALL
    
    и приведите ее к такому виду
    %sudo ALL=(ALL:ALL) ALL, NOPASSWD: /usr/bin/gpsctl
    
  • отредактировано December 2013
    Не так то просто как казалось бы... После перезагрузки системы :
    gpsctl:ERROR: /dev/ttyUSB0 already opened by another process
    gpsctl:ERROR: activation of device /dev/ttyUSB0 failed, errno=22
    
    тоесть каким то процессом занят ttyUSB0, по новой лезу в gpsd и сбрасываю настройки, тогда и срабатывает команда :
    sudo gpsctl -f -n -s 4800 /dev/ttyUSB0
    
    .
  • скорее всего gpsd и висит на устройстве. посмотреть можно с помощью fuser -v /dev/ttyUSB0
  • Я совсем запутался, /dev/ttyUSB0 это есть USB-GPS устройство? Чтоб программа 7ways поняла его, мне нужно переконвертировать SiRF binary в NMEA программой gpsctl так? Программа gpsctl работает в связке с gpsd? Тогда почему gpsctl ругается на gpsd?! =) брррр...
  • Ок, рассказываю по порядку :) В Linux используется концепция "все есть файл", то есть все устройства, сокеты и прочее представлены в виде файлов. В директории /dev как раз отображаются все файлы устройств, имеющихся в системе. Приемник GlobalSat по умолчанию работает по протоколу SiRF Binary, поскольку в нем используется навигационный процессор SiRF Atlas. Программа 7ways, насколько стало понятно, умеет обрабатывать только данные по протоколу NMEA, поэтому необходимо принудительно переключать приемник в этот режим. gpsctl является одним из компонентов gpsd, однако, при указании флага -f работает в обход него, на низком уровне обращаясь напрямую к устройству. Собственно, постоянно забываю что в Ubuntu gpsctl запускается при старте системы, поэтому и порекомендовал попробовать с этим флагом. Когда запущен gpsd, можно использовать такую конструкцию: gpsctl -n -s 4800, тогда параметры будут переданы в gpsd, который уже отправит их на устройство. Путь к устройству указывать не нужно. Как написано в мануале, при работе через gpsd использовать sudo не требуется. Вроде так :)
  • Track сказал: Когда запущен gpsd, можно использовать такую конструкцию: gpsctl -n -s 4800

    Увы, не работает и этот вариант... Зато благодаря Вам нашёл наверное самый примитивный способ переключения из SiRF binary в NMEA, из под wine запустить программу SiRFDemo, нажатием кнопки switch to NMEA protocol получаю NMEA в настройках похоже самого приёмника.

    <img src="/vanilla/uploads/FileUpload/7/667.png" />

    Закрываю SiRFDemo, и до перезагрузки работаю с навигацией в linux'е. Почему конфликтует gpsd так и не разобрался, буду ждать Вашего решения, может и Вам достанется такой же экземпляр что и у меня.

    <img src="/vanilla/uploads/FileUpload/8/668.png" />
  • отредактировано December 2013
    PokoyNick сказал: Увы, не работает и этот вариант
    Жаль. Руки чешутся разобраться почему)
    PokoyNick сказал: буду ждать Вашего решения
    Боюсь, с почтой россии придется ждать до февраля) О проблеме сообщил на почту разработчикам, но если они не поправят к тому времени поведение программы, то обязательно распишу решение проблемы. Мне едет на SiRF Atlas IV, но суть там не изменится.
  • Переустановил систему, не стал ставить пакет gpsd, поставил wine с SiRFDemo, запустил SiRFDemo, и всё заработало. 7ways нашёл спутники через параметр /dev/ttyUSB0. Интересно, какую команду даёт SiRFDemo? А вот что показывает терминал при просмотре устройства:
    pokoynick@pokoynick-K40IN:~$ sudo stty -F /dev/ttyUSB0 -a
    [sudo] password for pokoynick: 
    speed 4800 baud; rows 0; columns 0; line = 0;
    intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
    eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
    werase = ^W; lnext = ^V; flush = ^O; min = 0; time = 0;
    -parenb -parodd cs8 -hupcl -cstopb cread clocal -crtscts
    ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff
    -iuclc -ixany -imaxbel -iutf8
    -opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
    -isig -icanon -iexten -echo echoe echok -echonl noflsh -xcase -tostop -echoprt
    echoctl echoke
    pokoynick@pokoynick-K40IN:~$ 
    
    обратите внимание на:
    swtch = <undef>
    
    это часом не оно? Если оно то как правильно послать команду в терминале?
  • Это - параметры порта, не параметры устройства. И SiRFDemo и gpsctl переключают устройство, отсылая на него определенную последовательность байт, поскольку по-умолчанию эти чипы не обрабатывают текстовые команды. В программном коде функция, отсылающая эту команду может выглядеть примерно так:
    public static void SwitchToNMEA(string portName)
    {
    SerialPort GPSPort = COM.COMPort.Open(portName);
     
    byte[] commandMessage = new byte[]
    { 0xA0, 0xA2, 0x00, 0x18, 0x81, 0x02, 0x01, 0x01,
    0x00, 0x01, 0x01, 0x01, 0x05, 0x01, 0x01, 0x01,
    0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
    0x00, 0x01, 0x25, 0x80, 0x01, 0x3A, 0xB0, 0xB3};
     
    GPSPort.Write(commandMessage, 0, commandMessage.Length);
    GPSPort.Close();
    }
    
    Могу предложить все-таки установить gpsd, но убрать его из автоматической загрузки:
    sudo /etc/init.d/gpsd stop
    sudo update-rc.d -f gpsd remove
    
    и затем запускать приложение через скрипт, который я предложил выше
  • Всё сделал как Вы писали, не работает... )= Пока буду пользовать через SiRFDemo.
  • отредактировано December 2013
    Одна из лучших программ для навигации на базе linux! Хочу сказать Большущее Спасибо, и пожелать успехов в продвижение этого проекта! (из Питера в РБ Барановичи прокладывает маршрут в объезд платного КПП, через Себеж, никогда так не ездил, надо попробовать...)
  • отредактировано December 2013
    Кажется нашелся обходной путь для работы с 7ways :)
    В системе должен быть gpsd, однако автозапуск должен быть отключен способом, описанным в моем предыдущем посте. Далее нужно исправить файл /lib/udev/gpsd.hotplug:
    в самом конце файла ищем строки
    #logger -t gpsd.hotplug -p daemon.info $DEVNAME "is active"
        gpsdctl $ACTION $DEVNAME
    } &
    
    и приводим к такому виду:
    #logger -t gpsd.hotplug -p daemon.info $DEVNAME "is active"
    if [ "$ACTION" = "add" ]; then
        gpsctl -f -n $DEVNAME
        exit 0
    fi
    #    gpsdctl $ACTION $DEVNAME
    } &
    
    и перезагружаемся. Это приведет к тому что при подключении устройства будет выполняться команда переключения в режим NMEA, и при этом не будет запускаться gpsd.
    Сам gpsd, если понадобится, можно будет запустить в любой момент при помощи /etc/init.d/gpsd start, однако при этом перестанет работать определение спутников в 7ways.
    Правда столкнулся с такой особенностью что после пары подключений-отключений устройства команда gpsctl -f -n /dev/ttyUSB0 перестает переключать приемник, лечится только перезагрузкой. Похоже на баг gpsd.
  • отредактировано December 2013
    Переустановил убунту, с чистого листа, установил GPSD с клиентом, всё сделал по инструкции выше. После перезагрузки программа подключена но спутников не видит, выдернул, вставил usb-gps приёмник, 7ways подключения нет... )=
    P.S. SiRFDemo выдаёт теперь ошибки, спутников не видит... )
    Удалил gpsd, всё встало на свои места, работает через SiRFDemo. =(
  • Очень странно, у меня все работает таким способом c приемником BU-353. И 7ways видит спутники, и SiRFDemo определяет устройство. Может в Ubuntu как-то по-своему сделано, хотя файлы сверял на системах. На праздниках погоняю на виртуалке если время будет.
  • Ubuntu 13.04 x64. При запуске выдает ошибку :
    ./7ways
    ./7ways: error while loading shared libraries: libblkid.so.1: cannot open shared object file: No such file or directory
  • DjSpike сказал: При запуске выдает ошибку
    Это уже обсуждалось в посте :)
    Для Ubuntu x64 следующие пакеты должны быть установлены в системе:
    libstdc++6:i386
    libX11-6:i386
    libasound2:i386
    libblkid1:i386
    libcurl3:i386
    Для 32-битной убунты, соответственно, те же пакеты без :i386
  • DjSpike сказал: Ubuntu 13.04 x64. При запуске выдает ошибку

    Для Ubuntu 13.10 x32 ни каких танцев, все компоненты включены...
Войдите или Зарегистрируйтесь чтобы комментировать.