Собственно с самого начала было понятно что использование бытовых чипов не по прямому назначению - не более чем желание сэкономить. Практически все производители тем или иным образом запретили в своих прошивках выдачу сырых данных. Исключение - то что давно снято с производства. Но рассчитывать на то что эти устройства будут легкодоступны любому желающему не приходится, не так просто найти такое старье.
Так что третий сёрф с одним герцем - это единственный масспродукт, из которого можно что-то вытащить. Плюс он доступен юзерам от Калининграда до Чукотки.
Второй сёрф - что-то слишком много с ним проблем… Недавно прислали файлы с данными (уже в ринексе) от двух BT-308. Rinex выглядит нормально, один файл обрабатывается без проблем, второй файл не обрабатывается ни одной программой (пробовал RTKLib, GNSS Solutions, Topcon Tools). Скорее всего это связано с несинхронностью измерений: у вторых сёрфов они привязаны к внутренним часам, у третьего - к GPS-времени.
PS: с Sirf3 проблем уже нет, жду по почте BT-308, шлифую работу с Sirf2 до практического применения и, пожалуй, завязываю с исследованиями. Для авто считаю более перспективным Dead Reckoning, мне он принесет больше пользы
SirfStar-II и SirfStar-III бинарные данные имеют различия в представлении (и декдировании соответственно) не только для float и double, но и для integer и short integer (даже 1-байтовые данные представлены по разному - например MID-28 SincFlag).
Не дает этот сайт поместить кусок кода на СИ, что за херня?!
Посмотрите вышеуказанную страницу на ГЕОДЕЗИСТ.РУ - я там приведу кусок кода.
chnav ! Поправьте меня, если что не так. И еще: как интерпретировать биты из MID-28 SincFlag, не могу понять.
Думаю такой команды в гарминах нет.
Программа, что я выложил работает с гарминами по протоколу Garmin и с Сирфстарами по протоколу SirfStar.
В гарминах я искал перебором возможные варианты, но не нашел ничего подходящего.
Что интересно, в мануале на SirfStarIV не указано, что фаза вырезана. Кроме того, там появился MID 64 - NL messages, со всеми данными. Может, там ее включили обратно?
В прошивках той же версии на других навигаторах эти 2 байта обычно находятся по другим смещениям.
Вобщем, надо как-то проверить, фаза ли это.
В памяти есть область, 2688 байт - массив из 12 каналов, каждый - структура в 224 байта. Ответ mid28 целиком формируется из полей этой структуры, кроме carrier phase, которая обнуляется. Я пока поставил по смещению +0x54. Возможно, фаза находится по другому смещению, возможно ее там вообще нет.
Сама область памяти в разных прошивках находится по разным адресам. У меня - 0x60009ee0. Отдампить что-либо через mid131 мне не удалось.
PS: 1 раз случайно убил BT-821 кривой прошивкой. Для восстановления его можно перевести в internal boot mode подав 1 на TP11 при включении.
PPS: подскажите более подходящий форум
Alexey Illarionov
Фаза не может быть двухбайтовой или целочисленной - недостаточное разрешение. Если пользователю отдается целочисленная фаза - это лучше чем ничего, но хуже полноценной фазы. Во многих тримблах есть такое.
Раз вы залезли так глубоко, попробуйте отследить участок кода где формируется псевдодальность. Т.к. она carrier smoothed, то при создании псевдодальности используется приращение фазы (т.е. настоящий доплер, а не тот что выдается в MID28). Возможно этот настоящий доплер используется еще в каком-то участке кода и там случайно обнаружится накопленая фаза
Суть в том что фаза тоже формируется, а не просто измеряется. А зачем её накапливать, если не собираешься отдать пользователю и даже не используешь во внутренних рассчетах ? Правильно, незачем
Понял, вы пропатчили прошивку чтобы она не обнуляла часть структуры ? Может там правда есть фаза… Попробуйте собрать немного данных этой программкой (более подробное описание настроек).
К сожалению она выводит нули в ринекс (что было логично для сёрф3, но неправильно для сёрф2 - буду править как приедут мои приемники), но бинарные данные собираются as-is. Сможете выложить raw-файл ? А мы проанализируем что там выдается в MID28 - нули, фаза или что-то еще. Спасибо !