Добрый день! Приобрел на eBay у того-самого-китайца за $15 Royaltek RGM-2000. К компьютеру подключил через UART<->USB шнурок от старой мобилки. Программка SirfDemo девайс видит, смог переключить на sirf-протокол.
А дальше вопросы:
как заинициализировать GPS на отдачу 0x28? Посылкой бинарной последовательности? Или надо сначала сменить прошивку(у меня Xtrac2.1.1 2.4.13.18-C3P1.0)?
судя по этой странице, к этому GPS-у теоретически можно присобачить внешнюю антенну. А практически?
Как я рад, что homebrew-высокоточка сдвинулась с мертвой точки! Бытове приемники - это, конечно, самая большая проблема.
Я по работе занимаюсь высокоточной навигацией (мы делаем СДКМ ГЛОНАСС). У нас есть полтора десятка (работающих) станций по России (30-сек RINEX + 1 сек RTCM 3.0 через NTRIP + сырые файлы GRIL). Попробую поговорить о том, чтобы данные отдавать желающим.
Особо заморачиваться вытаскиванием эфемерид из приемника в случае постобработки для ваших целей я не вижу - что бортовые, что уточненные доступны в интернете.
Кстати, мы что хотим - статику или динамику?
Ура! Успешно перепрошил на fw231! Проверил - MID_28 успешно пишется!
Кстати, на выходных обзавелся Garmin Foretrex 101 и Garmin Etrex Legend. Пришлось паять на МАХ232 преобразователь уровней к телефонному шнурку. Теперь данные льются по такой схеме:
RS232 <->TTL<->USB
Проверил программой Async - сырые гарминовские данные читаются!
Я подозревал что этим закончится… Поэтому и выложил прогу не здесь, а на geodesist.ru, так можно дойти что и компилятор нелицензионный, и винда у меня английская
Исходники kinematic доступны всем желающим после небольшого гугления (как бэ я этого не утаивал и прямо написал ЧТО надо искать). Серьезный баг с нарушением границ массива исправлен, код ниже. Скомпильнув можно получить консольную версию для любой платформы, а GUI каждый рисует свой, он к исходникам kinematic никак не относится.
util.cpp
bool Verror(const char* fmt, va_list arglist)
{
debug("ERROR: "); vdebug(1, fmt, arglist);
if (ErrCount == ErrMax)
ErrCount = ErrMax - 1;
else if (ErrCount > ErrMax)
return ! OK; // some protection of memory leaks
// Format into the slot
_vsnprintf(ErrSlot[ErrCount], ErrMaxStr-1, fmt, arglist);
ErrSlot[ErrCount][ErrMaxStr-1] = '\0';
ErrCount++;
return ! OK;
}
Основная моя работа и изменение кода сводилась к интегрированию доплера и отслеживанию срывов фазы. Эта часть проекта оказалась тупиковой веткой, через пару месяцев ежедневной работы всё-таки пришел к выводу что это невозможно. Так что и публиковать нечего.
А что о нем думать… Снят с производства. На price.ru имеются остатки, но к нему надо обвязку - корпус, кабель питания и пр. Для экспериментов пойдет, а для реального использования в поле - вряд ли.