RTKlib/постпроцессинг

Пока в отпуске, расковырял прошивку своего BT-821 на sirf-3 и вытащил что-то, отдаленно напоминающее фазу.

Прошивка там GSW3.2.4_3.1.00.12-SDK003P1.00a.bin

Меняются 2 байта:


--- BT821-GSW3.2.4_3.1.00.12-SDK003P1.00a.bin.txt    2011-07-07 07:35:42.946977900 +0400
+++ 16a8_BT821-GSW3.2.4_3.1.00.12-SDK003P1.00a.bin.txt    2011-07-07 07:35:21.352536900 +0400
@@ -5200,7 +5200,7 @@
 014500 2c fa c0 35 28 79 20 72 28 79 00 28 33 d0 26 70
 014510 01 98 01 ae 60 60 30 1c 80 30 41 69 80 69 20 61
 014520 e1 60 05 a9 03 c9 60 61 a1 61 07 a9 03 c9 50 f0
-014530 0f fb e0 61 a6 a0 01 68 40 68 2a 22 60 62 21 62
+014530 0f fb e0 61 16 a8 01 68 40 68 2a 22 60 62 21 62
 014540 31 1c a0 31 08 8b 20 85 68 79 10 55 00 20 32 18
 014550 c0 32 23 18 52 7a 20 33 01 30 0a 28 da 72 f6 db
 014560 48 8b e0 86 88 8b 20 87 28 88 60 87 e8 79 30 34

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

В памяти есть область, 2688 байт - массив из 12 каналов, каждый - структура в 224 байта. Ответ mid28 целиком формируется из полей этой структуры, кроме carrier phase, которая обнуляется. Я пока поставил по смещению +0x54. Возможно, фаза находится по другому смещению, возможно ее там вообще нет.
Сама область памяти в разных прошивках находится по разным адресам. У меня - 0x60009ee0. Отдампить что-либо через mid131 мне не удалось.

Вот оригинальная прошивка. И вот пропатченная

PS: 1 раз случайно убил BT-821 кривой прошивкой. Для восстановления его можно перевести в internal boot mode подав 1 на TP11 при включении.
PPS: подскажите более подходящий форум :slight_smile:

Alexey Illarionov
Фаза не может быть двухбайтовой или целочисленной - недостаточное разрешение. Если пользователю отдается целочисленная фаза - это лучше чем ничего, но хуже полноценной фазы. Во многих тримблах есть такое.
Раз вы залезли так глубоко, попробуйте отследить участок кода где формируется псевдодальность. Т.к. она carrier smoothed, то при создании псевдодальности используется приращение фазы (т.е. настоящий доплер, а не тот что выдается в MID28). Возможно этот настоящий доплер используется еще в каком-то участке кода и там случайно обнаружится накопленая фаза :slight_smile:
Суть в том что фаза тоже формируется, а не просто измеряется. А зачем её накапливать, если не собираешься отдать пользователю и даже не используешь во внутренних рассчетах ? Правильно, незачем :frowning:

chnav, оно там double, не двухбайтовое.
Код с формированием, думаю, примерно знаю где искать.

Понял, вы пропатчили прошивку чтобы она не обнуляла часть структуры ? Может там правда есть фаза… Попробуйте собрать немного данных этой программкой (более подробное описание настроек).
К сожалению она выводит нули в ринекс (что было логично для сёрф3, но неправильно для сёрф2 - буду править как приедут мои приемники), но бинарные данные собираются as-is. Сможете выложить raw-файл ? А мы проанализируем что там выдается в MID28 - нули, фаза или что-то еще. Спасибо !

-1

-1

-1

Нет, совсем не оно :frowning:

Судя по последней документации, да, mid 10 c error_id=255. Но вызова mid10 я в обработчике mid131 не нашел.

Отправил на почту

Вот raw: http://ls.orionet.ru/public/sirf/bt-821/demo0000.rar Сигналы, правда, очень слабые.

-1

-1

Хотелось бы услышать отклики, замечания на программу?
http://geodesist.ru/forum/topic.php?forum=27&topic=209&p=12

-1

Исправил ошибки форматирования выходного RINEX-OBS файла (до недавнего времени не на чем было его проверить).
Topcon-Tools этот файл принимает и обрабатывает.
GNSS-Solutins к сожалению нет.

http://geodesist.ru/forum/topic.php?forum=27&topic=242

Случайно набрел на вот такой программерский инструмент:

Object file converter

This utility can be used for converting object files between COFF/PE, OMF, ELF and Mach-O formats for all 32-bit and 64-bit x86 platforms. Can modify symbol names in object files. Can build, modify and convert function libraries across platforms. Can dump object files and executable files. Also includes a very good disassembler supporting the SSE4, AVX, AVX2, FMA and XOP instruction sets. Source code included (GPL). Manual http://www.agner.org/optimize/objconv-instructions.pdf

File name: objconv.zip, size: 720999, last modified: 2011-Aug-03.
Download http://www.agner.org/optimize/objconv.zip

Есть и другие инструменты на эту тему, но этот очень внятный и кое-что действительно МОГЕТ

У меня уже есть записанный файл типа Sirf Binary с MSG ID 28. Может кто подскажет как теперь это завернуть в RINEX, ну а потом в RTK post-processing.

Пособирал на и-нете утилитки и попробовал
sirfrin1.exe - на выходе получил пустой файл с RINEX заголовком
Process.exe - требует Basestation и Rover данные а у меня только один выходной файл.
Kinematic2_MobileApp.exe - служит для сбора данных а у меня они уже собраны.
GNSSMonitorCE - аналогично требует подключкy к GPS-су

В моем слyчае у меня GPS устройство с встроенным Navman Jupiter-F2 OEM module Sirf IV.
Вот пример того что получается на выходе. Могу переслать весь файл если кому интересно.
Если нужны другие MSGs кроме 28го, тоже скажите - попробую записать.

SiRFLive Version: SiRFLive 2.0 Marketing
Thursday, August 25, 2011
PC: W037D299
Physical Connection: UART
SW Version: GSD4e_4.1.0-P1 12/20/2010 354 GSD4e
DUT Name:
28,0,860041386,25,3.8972801716003340e+005,2.5330147020331487e+007,1.8319525e+004,2.5330178622016661e+007,30000,191,27,27,27,27,27,27,27,27,27,27,1000,500,-4,0,0
28,1,860041386,12,3.8972801716003340e+005,2.6510500006031543e+007,1.8745631e+004,2.6510516541034564e+007,30000,191,44,44,44,44,44,44,44,44,44,44,1000,500,-4,0,0
28,2,860041386,2,3.8972801716003340e+005,2.7095735858978566e+007,1.8233168e+004,2.7095742224695239e+007,30000,191,45,45,45,45,45,45,45,45,45,45,1000,500,-4,0,0

Спасибо

Hi Dima,

Would you be able to tell more about this SiRF module you are using?

Cheers,
Michele

О, Sirf IV :slight_smile: Здесь дамп MID 28 в формате 28,Chnl,timetag,svid,gps_sw_time,pseudorange,carrier_freq,carrier_phase,time_in_track,sync_flags,…
Отлично видно, что фаза здесь не выпилена.

Называется это чудо техники Navman Jupiter-F2 OEM модуль. Мы его вставили в наше собственное устройство.
Все команды которые оно должно понимать описаны в “sim18 module osp manual (cs-129291-dc-8).pdf” - простой поиск в гугле даст линки на скачку.
Я пока проверил что MSG28 этот модуль выдает. Собираюсь проверить на наличие MSG15 and MSG7.
Проблема в другом… куда эту информацию можно применить.
Вот и ищу как это перевернуть в RINEX и РТК.

Может у кого есть идеи?

Весь GPS-й лог находится здесь http://geodesist.ru/forum/topic.php?forum=27&topic=242#

-1