Я вспомнил почему отказался от компиляции версии под Windows Mobile - в нем абсолютно неюзабельный диалог для выбора директорий. Как только смогу победить эту проблему, сделаю версию под WM6.
А может по умолчанию пусть фаил пишется в ту же папку где и программа.. или например в файле ini ручками прописать путь. Можно в таком варианте скинуть, уж больно попробовать хочется
В аттаче три версии: - Win32 (без изменений) - WinCE 5.0 (без изменений) - Windows Mobile 6 (протестирована на ETEN GloFiish x650) Для WM версии пришлось использовать триальную библиотеку tgetfile.dll, файл должен лежать вместе с программой.
Тест Win32 версии на двух приемниках: BT-308 (SirfStar-II) и BT-338 (SirfStar-III). Диалоги программы и премника в htm-файлах и как смог показал в скриншотах. 1. в самом начале приемник был в NMEA-моде, программа не переключила его в бинарную, пришлось воспользоваться помощью SirfTechXP; 2. для Sirf-2 не показывает количество захваченных спутников, их кончно (по определению) меньше чем у SirfStar-III, но думаю, что можно показывать от 3-х штук; 3. впечатление от программы ОЧЕНЬ хорошее, жаль что тестировать могу только с балкона своего дома; 4. зная как легко можно обидеть автора, никаких рекомендаций/пожеланий высказывать не буду. Попробую повторить тест на WinCE(Mobile) устройстве. Спасибо, chnav !
У меня не было возможности проверить Sirf2, но теперь с raw-файлами будет проще, спасибо за бинарные данные. Пока же следует переключить тип приемника на SIRF23 т.к. у вас особая прошивка и значения double кодируются иначе. Автоматическое распознавание версии прошивок вводить опасно т.к. обязательно найдется приемник с нестандартной строкой GSWxxxxxx.
Да, все именно так. Исправил установку на Sirf23 и программа стала показывать захваченные спутники. Тест прикладываю (может пригодится). По поводу Windows-Mobile такие мои соображения: MitacMIO_C-520 имеет ОС WindowsMobile5 и версия программы WinCE50 на этом навигаторе работает нормально. К навигатору была подключена внешняя антенна NoName (что-то итальянское). Попытки запустить обе версии (WinCE50 и WM6) на наладонниках HP iPaq4700 (WinMobileCE4.2) и MitacMIO P550 (WinMobile5.0 OS 5.1.195) оказались безуспешными. И проблема здесь как всегда ... в хитрожопых ребятах из Мелкософт. 1. Пьяный равин делал обрезание операционной системе Windows и получилась WindowsCE(Mobile) 2. Среда разработки Мелкософт Визуальная студия (версии 5, 7. 2005, ..., 20010) не поддерживает написание программ сразу для нескольких версий WindowsCE(Mobile) Поэтому не стоит терзать автора по поводу неработы мобильной версии на том, или ином устройстве. По вышеуказанным причинам, а также аллергии к классовым подходам в программировании (MFC и иже с ними), я выбрал бесплатный ПРОСТО СИ - PellesC, на котором можно писать как для Win-XP, так и для WinCE(Mobile). И программа скомпилированная для WinCE работает подо всеми мобильными версиями Мелкософта. Пока, не знаю, что будет с WinMobile7. В приложенном архиве тесты с приемником BT-308 и навигатором MitacMIO C-520 (WinMobile5), в текстовых файлах немного комментариев.
Нашел фатальную ошибку для всех версий (выход за границы массива). Отсюда вывод - никогда нельзя доверять чужому коду, обязательно трассировать и т.д., целый месяц не мог поймать этот баг :( Выложу как только добавлю что-то полезное в интерфейс. Насчет операционок - буду разбираться почему не идет на старых PPC, в эмуляторе PPC2003 не могу запустить ни одну программу.
Kinematic Mobile v0.11, Win32/CE5/WM6 ~ исправлен серьезный баг, который теоретически мог вести к зависанию программы и прочим неприятностям, отсюда такая торопливость; + до кучи сделал строку состояния (чтобы видеть что программа жива) и автопереключение в NMEA при выходе. Эта фича требует особой осторожности для владельцев Bluetooth GPS. В меню настроек порта кнопка Advanced Settings, есть дополнительная конфигурация двух опций 1. Baudrate when connected и 2. NMEA on exit Первая нужна т.к. двоичный поток идет большого объема и на скоростях менее 19200 порт перестает справляться, отсюда возможны разные глюки. Возможные опции - 38400, 57600, 115200 и "не изменять" (т.е. оставить ту что установлена в чипе сторонними программами); Вторая опция просто переключает в NMEA при нормальном выходе и устанавливает заданную скорость порта, выбор тот же что и выше плюс дополнительные скорости. Можно оставить в двоичном формате, сняв галочку. По поводу Bluetooth: если не уверены точно какая скорость установлена внутри приемника между GPS-чипом и Bluetooth-конвертером (обычно 38400, но кто знает...) - лучше установить как на скриншоте. В противном случае в некоторых приемниках скорости перестанут совпадать и потребуется вытаскивание батареи, а потом неделя ожидания пока сядет резервное питание.
на winmobile зависать перестала, порт открывает (моргает диод), время внизу тикает, но в окошке где даные по спутникам тишина, жму писать ринекс - ничего не пишется. Пробовал с разными портами и скоростями (вдруг повезет )-не повезло...
Оффтоп (Move your mouse to the spoiler area to reveal the content) Уважаемые Участники и Посетители форума, блок сообщений 09 -10 мая 2011г. перенесен в новую тему «Бюджетные GNSS-решения»
Если они свободно лежат в продаже в виде недорогих готовых устройств - наверное можно. А если OEM-платы, то лично я пас :) Оффтоп (Move your mouse to the spoiler area to reveal the content) У меня этих плат каких только нет, и все в топку. Пару раз пытался делать конвертеры, согласовывать уровни. А потом оказывается то одна фича в приемнике запрещена, то другая. Например: - Trimble Lassen iQ (OEM), Trimble Svee 6 (BOX) - вообще нет сообщения 0x6F, а восстановить псевдодальность из кодовой фазы C/A (сообщение 0x5A) оказалось невозможным (месяц экспериментов - бесполезно...); - Trimble GPS Pathfinder Pocket (BOX), Trimble Ace II (OEM) - фаза в сообщении 0x6F округлена до целого значения (специально!); - Thales/Ashtech B12 (OEM) - в отличие от AC12 не поддерживает сообщение с сырыми данными; - uBlox LEA-5H Data Logger WBT-202 (BOX) - сырые данные отключены по маркетинговым соображениям, в остальном чип абсолютно идентичен LEA-5T, в котором дальности есть (более того, последний прошивается только на заводе, чтобы исключить возможность тспользования в LEA-5H); и до полноты картины наши любимые Сёрфы :) - SiRF Star II - фаза есть, с небольшим недостатком: не знаю во всех ли прошивках, измерения являются Not Synchronized (в терминологии Trimble), т.е. не в целые GPS-секунды; - SiRF Star III - фазу убрали по маркетинговым причинам, зато сделали измерения Synchronized... Конечно когда эти устройства уже куплены, то через несколько дней копания и изучения документации обязательно найдется мааа-ленькое примечание наподобие "данная возможность отсутствует в такой-то модели". Как в телевизионной рекламе - крупным шрифтом написаны достоинства, а мелким - недостатки.
CHNAV! Не стоит огорчаться! Ваш опыт работы с SiRF Star наверняка пригодится! Если смущает модуль SkyTraq, то возьмитесь за другой модуль для бытовых навигаторов. С уважением, NAVIPARK
Здрасвтуйте Всем! Chnav Интересно запускается ли программка kinematic на вашем Magellan Triton 1500. В моей дилетанской голове имеется неразрешимый для меня вопрос: За счет чего из сырых данных можно получить большуу точность? Возможно ли расчитать поправку к данным собраным в NMEA формате? Какая получится точность. ::inclination::
eshilov На Triton 1500 работает. Принципы... Если _очень_ упрощенно, то псевдодальность от каждого спутника содержит различные ошибки (ионосферы, тропосферы, эфемерид и часов спутника и пр.). Имея недалеко базу на известной точке с такими же сырыми измерениями, программа обработки предполагает что ошибки на базе и ровере одинаковы, т.е. их можно компенсировать. Скорректированные дальности используются для расчета позиции. Так работает real-time DGPS. Если делается пост-обработка (наш случай), то алгоритм работает по-другому, сначала считает вектор между известной нам базой и приемником (при этом ошибки устраняются), а затем координату ровера. Повторюсь это очень упрощенно, но основной принцип неизменен - определение координат приемника относительно фиксированного приемника на базе (PPP не рассматриваем). В сообщениях NMEA идут готовые координаты, посчитанные самим приемником. Сырые дальности уже утеряны, уточнить координаты нельзя.
chnav «Если делается пост-обработка (наш случай), то алгоритм работает по-другому, сначала считает вектор между базой и приемником, а затем координату ровера.» Допустим имеется два приемника. Один зафиксирован. Но его координату не знаем. Она не нужна . Нужно только расстояния до второго приемника. Вторым делаем сьемку. Данные получены.Делаем постобработку получаем векторы от базы до точек сьемки, с субметровой погрешностью? Правильно ?А сколько нужно стоять на точках? Спасибо.
Координата базы нужна обязательно. Насчет времени сессии в режиме DGPS - минута и более. Где-то раньше в топике я давал ссылку на тесты Magellan Mobile Mapper 6 (это тоже сёрф), там ровер стоял в точке одну минуту, результаты ниже.
Ну не совсем так. Уточнить координаты можно двумя способами: 1) вводить поправки в "сырые" измерения 2) вводить поправки сразу в координаты В случае (2) база и ровер должны работать по одинаковому созвездию спутников, тогда ошибки определения координат на базе и ровере будут похожими, и можно ввести поправку в координаты ровера. Т.е. теоретически возможно, прочитав сообщение GSV ровера в формате NMEA, определить рабочее созвездие ровера, с этим же созвездием обработать данные базы, определить ошибки определения координат базы и ввести их в координаты ровера. Конечно, точности фазовых определений не получить, но режим DGPS можно реализовать