Номер PRN связан с C/A кодом в таблице ICD-GPS-200, но в кто-то должен проинициализировать DSP/FPGA в чипсете, чтобы задать начальные значения для генератора C/A. Об этом шла речь, так-что мы с refot поняли друг-друга. В прошивке sirf куча проверок типа svid <= 138, я не расчитываю на лёгкое решение. За июль месяц я не смог найти обращение к недокументированным областям памяти (IO), хотя бы близко напоминающим эти значения.
таблицами никто не пользуется, обычно юзается такой код
/* !\brief generate the C/A code sequence for a given Satellite Vehicle PRN
* \param[in] prn PRN nuber of the Satellite Vehicle
* \param[out] ca Caller-allocated integer array of 1023 bytes
*/
void codegen(int *ca, int prn)
{
int delay[] = {
5, 6, 7, 8, 17, 18, 139, 140, 141, 251,
252, 254, 255, 256, 257, 258, 469, 470, 471, 472,
473, 474, 509, 512, 513, 514, 515, 516, 859, 860,
861, 862};
int g1[CA_SEQ_LEN], g2[CA_SEQ_LEN];
int r1[N_DWRD_SBF], r2[N_DWRD_SBF];
int c1, c2;
int i,j;
if (prn<1 || prn>138)
return;
for (i=0; i<N_DWRD_SBF; i++)
r1[i] = r2[i] = -1;
for (i=0; i<CA_SEQ_LEN; i++)
{
g1[i] = r1[9];
g2[i] = r2[9];
c1 = r1[2]*r1[9];
c2 = r2[1]*r2[2]*r2[5]*r2[7]*r2[8]*r2[9];
for (j=9; j>0; j--)
{
r1[j] = r1[j-1];
r2[j] = r2[j-1];
}
r1[0] = c1;
r2[0] = c2;
}
for (i=0,j=CA_SEQ_LEN-delay[prn-1]; i<CA_SEQ_LEN; i++,j++)
ca[i] = (1-g1[i]*g2[j%CA_SEQ_LEN])/2;
return;
}
да какие проблемы ? забивайте 125 и ловите моменты когда этот PRN SDCM работает
давеча (02.09.20) когда тестировал TRK-MEASX-SEC работали 125 и 140
поскольку шаг SNR был 0.25 то наблюдал **дивное явление в SDCM **
если сигнал 140 стоял как укопанный, хотя он ниже над горизонтом
сигнал от 125 за 40 минут наблюдений плавно возрос по дуге с 38 до 40 а потом опять начал плавно по дуге уменьшаться
чем это вызвано непонятно
Новател на самом деле тоже не без греха,
но это дела минувших дней.
автор rtklib начинал с функционала precision-gps.org (aka Kinematic) если вы помните,
но по каким-то причинам целенаправленно отрицательно относился к sirf2
и выкинул его вообще из кода.
Также это был “rtklib.com” то есть его целью было создание коммерческого продукта,
где он являлся бы единственным автором, а не community проект,
но потом что-то пошло не так и он забросил это дело.
rtklibexplorer тоже малый предприниматель, единственная цель которого
убедить потенциальных клиентов в своей полезности.
Все это не способствует тем результатам которые вы бы желали видеть.
Добрый день!
Нашёл вот такое исследование https://europepmc.org/article/PMC/6603672
Если я правильно понял вывод в п. 7,то итог такой:
1)смартфон при наличии спец. Программного обеспечения может добиться субметровой точности и в статике и в кинематике
2)при использовании ПО, встроенного в телефон можно добиться только мнтровой точности
У меня к вам просьба:прочтите вывод их(а может вам будет интересно все исследование, методика и т. Д.) и отпишите мне пожалуйста о ваших выводах!
Массив тоже таблица, но спасибо за нестандартное решение перебором G2, очень помогло. Нашёл в прошивке сёрфа инициализацию G2,там вписана таблица 1023 бита и инициализация выдёргивает нужное битовое окно.
Что я не понимаю до сих пор - почему в Москве спутники Луч висят ниже 11°, но радует, что российский Космос работает на регионы. В центральной России много сетей, а на ДВ не очень.
На бумаге - да. Mi8 - первая и последняя попытка использования потенциально нормального
GPS/GALILEO чипсета в телефоне (L1/L2/L5), но все остальное сделано через Ж:
антенна, LNA, недокументированный чипсет, жутко нестабильный трекинг и тд.
Встроенное ПО чудес из некачественных входных данных сделать не сможет,
никаких дифференциальных поправок (даже WAAS/EGNOS полностью игнорируется)
не использует, поэтому даже метровая точность это преувеличение.
Визуально качество треков с Mi8 лучше чем MAX-M8Q, но это скорее всего эффект
использования данных MEMS, а не GPS.
Вот если бы был телефон с чипом ZED-F9R (функциональный аналог BCM47755)
и разъемом для внешней антенны, то это было бы серьезно, а так Mi8 это баловство.
Потому что они геостационарные и находятся в Ж.
Их же не для людей делали.
В СПб спутники японские QZSS и то лучшую геометрию имеют,
но там и EGNOS нормально работает.
насколько я понимаю в этом нет резона
все покрыто сетями типа этой
приведенная сеть имеет две базовые, которые расположены в ~4 км от того места где я обычно тестирую девайсы,
SBAS с его точностью это прошлый век
Из за того что нет нигде базовой станции Полтавы в открытом доступе решил установить свою используя U-blox F9P + ESPRTK.
Результат таков:
Все заработало и поправки идут в RTCM 3.2.
Получилось инжектировать 1008.
Тримбл девайс начал работать с этой станцией.
Alpha RTK Также ловит фикс
Теперь о плохом:
Коррекция работает примерно 15-30 минут. После чего в Тримбл перестает работать коррекция (Alpha RTK не тестил).
Отсутствие коррекции продолжается также около 20-30 минут, потом все начинает работать, и так по кругу. Либо нужно перезагрузить модуль U-blox F9P (могу удаленно ресетнуть по питанию) и коррекция восстанавливается сразу.
Расчет координат базы делал через OPUS с данными более суток.
Также данные с UART2 пробовал паралельно пропускать через strsvr. Все также работает на Trimble и коррекция пропадает одновременно с линией UART1 на ESPRTK.
Общий список сообщений 1005(1), 1008(5), 1077(1), 1087(1), 1097(1), 1127(1), 1230(5)
Сохранить выдачу str2str в файл, конвертировать с помощью convbin в RINEX,
и посмотреть будут ли во временных отметках ненулевые миллисекунды.
u-blox использует (на мой взгляд сознательно) разные методы для саботирования совместимости с другими
производителями.
Да, кстати что с этим делать на устройстве? Мой китайский клон F9P мне частенько выдаёт XX.995. Хотя в версии от rtkexplorer есть ключ для устранения этой проблемы
-TADJ возник давным давно не на пустом месте так как у antaris4 были отклонения и на 8 миллисекунд,
для 5,6,7,8 железо допускало только отклонение на 1 миллисекунду,
а вот 9 опять плывет до 5 миллисекунд.
sirf естественно тоже подвержен этой проблеме.
Программная реализация -TADJ довольно глупая (sscanf для каждого UBX пакета, большая радость на 20Hz).
Если RTCM пакеты генерируются чипсетом, то их надо править перед отсылкой,
также как это реализовано для TRK-MEAS.