Программа chnav предоставляет пользователю выбрать каталог для ее выходных файлов. Я этого пока не осилил, поэтому моя программа пишет свои выходные файлы в место по умолчанию - Проводник -> Мое устройство. Ниже каталога Windows Вы увидите среди файлов, созданных программой SirfTech файлы вида: 12-08-11_15-25-35_Binary.txt 12-08-11_15-25-35_Observer.obs 12-08-11_15-25-35_Parsing.txt 12-08-11_15-25-35_Coords.txt 12-08-11_15-25-35_Points.txt Но! Это только в том случае, если в начале работы программы (сеанса) Вы нажали на большую кнопку "1_Files" и в открывшемся окне Files также нажали на еще более большую кнопку "Write_Files", после чего программа сама открывает для Вас окно Connect, в котором надо выбрать тип приемника/навигатора, имя порта и его скорость и нажать кнопку START. Затем надо набраться терпения на 15--30 секунд (идет опрос приемника) и при появлении окошечка MessageBox с текстом ".... Нажмите кнопку ACCEPT" нажать OK и нажать таки на кнопку меньшего размера ACCEPT. А Вы не пытались прорепетировать работу с программой дома, перед выездом в поле? А почитать простенький текстовый файл INFO.txt который лежит в архие с программой? Вы меня не то что удивили, ... я в глубокой печали. (Добавление) Любопытство вполне справедливое и законное. И мне за Державу часто бывает обидно. Господа из Майкрософта хотели угодить всем (языкам), а получилось по Черномырдину. Есть кодировка символов ASCII - 256 буковок, цифирок и прочих значков, где на каждый символ используется 1 байт, а есть кодировка UNICODE, где на каждый символ используется по 2 байта, но не всегда. Вот эта кодировка (даже система кодирования) вмещает (во всяком случае теоретически) все на земле сущие языки. И если в программе для ОС Win-Desktop можно обойтись только кодировкой ASCII, то в программе для ОС Win-CE/Mobile (в наладоннике например) приходится очень часто переходить от ASCII к UNICODE и наоборот. И вот в этих переходах скрыто много "подводных камней" для адекватного представления буковок языков отличающихся от латиницы (т.е для национальных символов, в том числе и для кириллицы). Но самая главная тайна не на дубе и не в яйце, а на кончике иглы. ОС Windows как правило "локализована", т.е. имеет русификацию, японизацию, финно-угро-изацию, и даже эстонизацию и латышизацию. А теперь прикиньте, что увидит несчастный бабуин на своей Windows c бабуинизацией, если неосмотрительный китаец написал программу в ОС Windows имеющей китаизацию. Нет бабуин увидит не китайские иероглифы, а свои бабуинские буковки а перемешку с английскими и скажет: "что это за кракозябры?". И мы в России так иногда говорим в подобных "некошерных" случаях. Это я еще не упомянул арабские и прочие семитские языки, где пишут справа-налево. Это только "... на четверть бывший наш народ" (В.Высоцкий) продолжает там писать слева направо и на великом и могучем. Остальных они пока еще не переучили. Кроме того так уж получилось, что америкосы и тут оказались у кормушки (компьютерных технологий) первыми. А кто раздает, тот и заказывает. Поэтому, чтобы моя программа сломала мозги англо-саксу (если попадет в его грязные руки) я пишу ее всю на родном языке, ну кроме имен переменных. Так я делал в некоторых своих программах на VBA для АвтоКАД'а - чтобы коллеги-халявщики за бугром не могли воспользоваться, а несли свои денежки бедным АвтоДескам и иже с ними. А если я предполагаю выложить программу не только для соотечественников но и для некоторых дружественных, но говорящих и пишущих на других языках коллеГОВ, то пишу не задумываясь УСЕ ПО-АГЛИЦКИ, попутно осваивая этот дебильный язык Шекспира-Шварценегера (имея еще и тайную цель заставить учить этот язык некоторых соотечественников - "...настанет время - сам поймешь наверное..."). Ну вот так, примерно. И вкратце. Может более продвинутые товарищи поправят, добавят, убавят, позабавят. У меня почти все! Простите за очень сжатое изложение вопроса.
Репетировать времени не было, получилось выехать в поле спонтанно. INFO я читал и делал все в точности, как там написано. Значит, программа записывала файлы в Мое устройство? А я то все время глядел в папку с программой, думал, что в ней будут храниться файлы, ведь в версии на ХР obs и бинарные файлы пишутся в ту же самую папку.
Windows-CE/Mobile в сравнении с Windows-Desktop имеет целый список отличий. Среди них, если не указывается полный путь к файлу, то: Windows-Desktop создает новый файл в текущем каталоге (папке), Windows-CE/Mobile создает новый файл в "корне" устройства (аналог C:\новый_файл). Хорошо это, или плохо - вопрос третьего порядка. Надо просто знать об этом. (Добавление) Оффтоп (Move your mouse to the spoiler area to reveal the content) Присоединяюсь к просьбе, если конечно для этой акции нет каких-либо скрытых препятствий
Кто-нибудь может подсказать как уже записанный файл типа Sirf Binary с MSG ID 28 завернуть в RINEX, ну а потом в RTK post-processing. В моем слyчае у меня GPS устройство с встроенным Navman Jupiter-F2 OEM module Sirf IV. Попробовал применить AcquireSiRF.exe но на выходе ничего не получилось. Файл с записями начинает так... 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 Полный файл в аттаче
Файл у Вас не бинарный, а текстовый. Предполагаю, что приемник работал в NMEA-протоколе (режиме). Строки в Вашем файле типичные NMEA-сентенции, ну немного отличаются от ранее виденных. Вероятно это новинка для чипсетов SirfStar-IV. И записали Вы его каким способом/программой ? Программы выложенные здесь в этом случае бесполезны, т.к. они работают с приемником, передающим данные по БИНАРНОМУ протоколу, или с файлами записанными с приемника, работавшего опять-таки по БИНАРНОМУ протоколу.
Слежу за темой с 10. 07.11. По поводу фазы можно посмотреть ссылку:http://www.chipinfo.ru/literature/radio/200211/p49-50.html. По доплеру в посте от 23.07.11 в mid 28 доплер вычислен правильно, т.е. если скорость спутника 16 000 м\сек умножить на Кдоплера 1\м=90 000 1\сек(Hz). Эффект доплера - измениние частоты L1 от вектора скорости спутника, может быть с + если спутник движется на наблюдателя и с - если спутник движется от наблюдателя и зависит от угла между вектором скорости спутника и прямой от спутника на наблюдателя. Эффект доплера можно найти в Википедии.
Уточнил скорость спутника на орбите. С учетом исправления, изменение частоты L1: 3870 м\сек * 5.255 1\м = 20336 1\сек (Hz). То есть изменение частоты L1 не может быть больше 20 000Hz в сторону увеличения или уменьшения L1. Если спутник находится в зените над наблюдателем, угол между вектором скорости спутника и прямой на наблюдателя равен 90 градусов. А cos90=0, поэтому эффект доплера не наблюдается.
Спасибо за пояснения. И ссылка на статью порадовала. Не ожидал в журнале прочитать такую внятную статью (да когда написанную!) - только человек по-настоящему владеющий знанием может так популярно изложить предмет. Я сейчас "бодаюсь" с программированием на СИ в Линуксе http://linuxforum.ru/viewtopic.php?id=16170 Если позволите, несколько позже задам вопросы по навигации, авось и на них найдутся ответы.
Решил подсказать: ответ на ваш вопрос в самом MID 28. Начинается с фразы "The reported Time of Measurement, Pseudorange and Carrier Phase are all uncorrected values." после Table 3-68 и Note, до следуещего Note. (Sirf_Binary_Protocol_Manual_rev_2.3.pdf page 88). В этом отрывке пропущен знак умножения 2 раза. Если будут вопросы задавайте.
Если посмотреть прилагаемый файл (а в нем есть кусок кода программы): Меня вот что смущает. В 1-м примере (chnav) во 2-й колонке цифры представляют "количество длин волны сигнала уложившееся в расстоянии от спутника до приемника". А в 3-м примере какой-то бред да еще и +/-, но это фазовые измерения, выраженные в метрах (так по крайней мере пишет SirfStar в своем талмуде по бинарному протоколу). Что-то меня останавливает от тупого деления этих Сирфстаровских метров на длину волны. В 3-й колонке всех 3-х примеров так называемый "Допплер". У chnav это +-3000.000, у меня это около 90000.000 - есть над чем задуматься. chnav измерения приводит к целой секунде, я не привожу, на это у каждого свои причины. Но программы пост-процессинга (в частности TopconTools) выполняют приведение "сырых" измерений к целой секунде сами. Так мне в разное время сообщили 2 независимых программиста в этой области. Как в моей программе получаются PR (C1), Phase (L1), Doppler (D1) см. в коде ниже. Те данные, которые я не понимаю, я и не трогаю/не использую (в файл парсинга идет все). Из бинарного потока Garmin программа нормально вычисляет фазу (как целые циклы так и дробную их часть). Примеры я уже не раз выкладывал. И еще. Измерения бытовыми приемниками по ряду причин обречены на "рваный вид". Т.е. потеря уверенного захвата несущей для продолжительного вычисления фазы (L1) случается чаще, чем в профессиональных приборах. Такие рваные измерения надо либо выбрасывать, либо грамотно интерполировать,прежде чем отправлять в программу постобработки. Нарисую пример: ххххххххххххх-ххххххххххххххххххххххххххххххххххххххххххххххх-хххххххххххххххххххххххх где "х" измерения в эпохе получены, а "-" измерение потеряно/сорвалось. По поводу интерполяции я читал и смотрел программный код некоторых исследователей. Там, как и во всей математике для этой области хватает неоднозначностей. Поэтому влезать в это не хочется, страшно потратить немалое время впустую. По этой причине в моей программе есть возможность накопить в течение некоторого времени (от 1 сек. до нескольких десятков минут) значения координат, вычисляемые приемником. Записать эти координаты для любой точки стояния/накопления как на ровере, так и на базе. На ровере они подписываются значениями TimeOfWeek Start и Stop. На базе координаты в каждой эпохе имеют подпись TimeOfWeek. Для ровера программа также вычисляет средние значения из накопленных координат на точке стояния. Конечно, одинаковые созвездия спутников на ровере и на базе будут при условии одинаковых приемников, чистого неба и короткой базовой линии. Эти обстоятельства не раз уже обсуждались, в том числе и на этом форуме. Но! Если в начале, в середине и в конце сеанса/работы есть возможность встать на точку с известными координатами, то это уже худо-бедно контроль доверительности измерений. За этим стоит возможность отказаться от "проприетарного" (небесплатного как правило) программного обеспечения постобработки и вести дальнейшую обработку в программах АНАЛОГИЧНЫХ MS-EXcel или AutoCAD. Тем более, что программа вычисляет из геодезич. wgs-84 B, L, H геоцентрические WGS-84 X, Y, Z. Для малых участков работ (где можно пренебречь "кривизной")) такие координаты можно рассматривать как плоские и "сажать" их по контрольным точкам в нужное положение на исходном плане/чертеже. Что Вы думаете об этом? Позвольте напомнить (прежде всего требовательным халявщикам): Я НИКОМУ (И СЕБЕ ТОЖЕ) НЕ ОБЕЩАЛ ЧУДА В ВИДЕ ИЗМЕРЕНИЙ С ГАРАНТИРОВАННОЙ ТОЧНОСТЬЮ ... САНТИМЕТРОВ. ЮЗАТЬ И АНАЛИЗИРОВАТЬ НАДО!!! То есть читать, думать, пробовать, ошибаться, еще думать и ... делать выводы. Существуют задачи ГИС-класса, где вычисленное плановое положение снятых точек может отличаться от истинного на 1-2-... метров. Площадная топо-съемка может оказаться такой задачей. В строительстве (где всегда "давай-давай и побыстрее")) прикидочные выносы проектных элементов в натуру (особливо "в чистом поле")) могут иметь место. А это для "блюстителей наннннннотехнологий": "...Мы с тобой в Париже Нужны как в бане пассатижи." "...И вот плюю я с Эйфелевой башни На головы беспечных парижан!" "... В общественом парижском туалете Есть надписи на руссом языке!!!" ("Ваня, мы в Париже" В.С. Высоцкий)
sklimkim Сразу извиняюсь что не могу уделять время форуму и особенно этой теме. По поводу фазы в сёрфах - всё верно подмечено, она имеет размерность m и надо переводить в циклы. То же самое с доплером - размерность m/s (около 18000m/s), надо переводить в герцы (около 96000Hz). Про странное значения доплера. Так же как дальность и фаза смещены на уход часов, доплер смещен на дрифт часов, т.е. надо учесть дрифт из MID7. Номинальное значение 96.25kHz, в MID7 значения примерно этого порядка. Итого: если требуются скорректированные значения, то необходимо поправить T - на dT из MID7 PR - на dT из MID7 Phase - на dT из MID7 Doppler - на dF из MID7 Делать всё это надо либо одновременно, либо не делать совсем т.к. Doppler используется программой обработки для интерполяции измерений базы и ровера к единому моменту.
Спасибо за внимание к теме! Ваша последняя фраза многое прояснила, ну "замыливается" внимание! Я в программе умышленно отключил все MID-ы, не имеющие отношения к псевдодальности и фазе, чтобы разгрузить процессор и иметь резерв для других еще не реализованных вычислений и рисования неба. Да в общем-то и сделал это. Только парсинг MID-30 (0x1E) оставил, и то временно (уж очень красивые в нем данные). Придется переходить на коррекцию ухода часов, бо синхронизация ровера с базой ВАЖНА. Сейчас переношу программу (и себя заодно) в Линукс. Там действительно простор, но мне непросто переключиться с навыков и представлений, полученных в Виндовс. К тому же пишу я на "голом" СИ, а в Линуксе, как и в Виндовс кругом СИ++. Поэтому доработка виндовой версии программы несколько замедлилась. chnav, не бросайте тему, а то она будет достоянием только таких как NAVIPARK, что не совсем правильно. Пусть пытливые студенты имеют шанс помыслить вперед. Ведь они, как и мы родились в Великой стране, вот только время им досталось не самое удачное. Печально видеть около компьютера обезьянок, которые могут только мышкой клацать.
Господа, извините что встреваю... Я очень внимательно перечитал обе ветки, так как сдуру заказал пару модулей M4125P от Wonde Proud на чипе MTK MT3329. Сегодня пришло уведомление о получении посылочки. Ну из вышепрочитанного я понял что кроме NMEA0183 мне от МТК ничего не светит. Но все же решил погуглить на предмет поиска Firmware для чипа MT3329 - а вдруг в коде удастся разглядеть спрятанную команду переключения на бинарный протокол? И вот что я нарыл в гугле: фирмваре для чипа http://code.google.com/p/ardupilot/wiki/MediaTek http://code.google.com/p/ardupilot/down ... p&can=2&q= и вот такой комментарий http://store.diydrones.com/MediaTek_MT3 ... 329-02.htm Я конечно начал все подряд скачивать и почти сразу наткнулся на вот это: Короче есть тема чтобы порыться основательно. Чипы я завтра забираю. К сожалению нет времени на колупания, все уходит на борьбу за существование, и это хуже всего... ЗЫ: походу сделал еще одно мелкое открытие - наткнувшись на забытый на полке старый КПК Acer n35 с убитым аккумулятором - пытался выяснить в интернете что у него за чип GPS. Оказалось SiRFstarII значит надо порешать, чем питать зверюшку, родной аккумулятор даже заказывать не хочется он слабенький.
Ладиков Павел hen user inputs command “$PGCMD,16,0,0,0,0,0*6A”, then switch to binary mode. Команду, которую вы привели- не относится к NMEA протоколу. Посмотрите в 1 теме файл SirfStar_Switch-Commands-log . Цитирурую " $PSRF100,0,38400,8,1,0*3C", поэтому программа GNSSmonitor работать с этим модулем не будет. В даный момент каждый производитель GPS чипсетов обычно используют 2 протокола: 1. стандартный NMEA, а второй создают свой. Но это может касаться наших РФ двух фирм. Видимо производители MTK чипсетов решили от всех отделится и разработали свой NMEA протокол. Не пробуйте переключать в binary mode не зная обратной команды переключения. Приобрел RoylTek RBT-2100LP на Sirf 111 , переключается в Sirf протокол, высокая чустви тельность-отслеживает до 12 спутников и тоже современное модульное исполнение.
Вообще говоря команда переключения в бинарный режим в принципе не может относиться к протоколу NMEA - уже хотя бы потому, что функция недекларирванная официально и является служебной командой самого чипа. Для МТК конечно нет смысла использовать программулину созданную под SiRF, даже если получилось бы переключитсья в бинарник - стопроцентно там потечет другой формат данных. Навряд МТК захочет заниматься судебными тяжбами за авторские права из-за такой ерунды... поэтому рыться в машкодах мне предстоит видимо самому, трясти стариной 20-летней давности. Но сейчас не так страшно - под рукой мощный програмистский инструментарий. Насчет обратного переключения... я исхожу из того что при полном обесточивании все настройки не сохраняются и все должно приходить в исходный вид (для настроек используется батарейная память статического ОЗУ, а не флеш). Это при экспериментировании. А в эксплуатации я так думаю что NMEA мне и не понадобится вовсе. Но я конечно тут могу запросто ошибаться со сбросом настроек, конечно нужно отнестись к этому вопросу посерьезнее - поискать заранее бинарный аналог этой команды видимо...
Ладиков Павел Боюсь вас разочаровать, но псевдодальностей с МТК вы всё равно не получите. О чем шла речь выше по вашим ссылкам: бинарный протокол понадобился для передачи готовых координат, т.к. NMEA-поток создает ощутимый трафик и нагрузку на программу-обработчик при чаcтоте обновлений 5Hz и выше. При низких Baudrate перестает хватать пропускной способности порта, поэтому сделали специфичную прошивку с бинарным протоколом, который к сырым измерениям не имеет никакого отношения. В исходниках на C++ прекрасно видно что декодируются: Lattitude Longitude Altitude Ground_Speed Ground_Course NumSats Time
Почитал всё очень интерестно. Занимался тем же самым вопросом года 2 назад, юзал чип SIRF STAR III (SSIII), всё брал с иностранных сайтов так как в россии ничего не нашел в публикациях чтобы ктото занимался получением данных для обработки статики из бытовых приборов, забросил не помню почему, как то надоело или просто не осилил такой вопрос в одиночку. Выяснил так же что нормальную статику (если так можно назвать) можно получить только с чипов Sirf Star II (SSII) и еще из каких-то приборов гармин, начиная с SSIII производитель начал ограничивать на аппаратном уровне приём фазы несущей (Phase Carrier) и можно принимать только Грубый (Навигационный) L1 C/A - Code, соответственно обработать их с нормально точностью получится едва ли. А переключить в бинарный режим и обратно просто, на КПК или на ПК есть программа от производителя чипов "SiRFDemo" там можно осуществлят переключение в NMEA и SirfBIN, просматривать какие сообщения щас передаются с какой частотой. Еще были разные программы в том числе известных производителей позволяющие работать с чипами сирф стар, и преобразовывать бин сирф в Ринекс. Находил еще статью где человек из 2х гарминовских приборов сделал комплект приборов для ГИС с точностью 30-50 см, только там он внешние антены приделал. В своём чипе выяснил что не передаются "сообщения" которые нужны для обработки. Писал по памяти что осталась в голове так что в полне могут быть не точности. Но в целом суть передал.
Посмотрим... я вчера копаясь в поисковиках наткнулся на описание МТК с упоминанием бинарного режима и того что он дает. В перечне было так достаточно "популярно" упомянуто что то типа "точного определения расстояния между двумя приемниками", если буквально читать машинного переводчика. Кроме того я несколько раз натыкался в американских форумах на фразы типа "наконец то МТК довела свой фирмваре до уровня SiRF". Ну если я и пролетел с МТК как фанера над парижем - невелика цена, тыща рублей за модуль. Закажу что-нить более продвинутое, а этим тоже найдется применение. Ну и наконец третье... эта самая возможность бинарника выдавать допплера и фазу - она ведь исключительно от прошивки зависит, верно? В вышеупомянутых ссылках предлагаются какие-то не стандартные МТК прошивки, а специальные. И даже если они это не делают - само их наличие в инете и внимание к ним из-за большой распространенности МТК позволяют надеяться на скорое появление "левых" прошивочек с открытыми возможностями.