catmanspb Опубликовано 27 марта, 2014 Поделиться Опубликовано 27 марта, 2014 Может у кого есть опыт работы с этим чёртовым протоколом? 1. Интересует преобразование их радиальный координат в градусы. 2. Описание пакета инфы о спутниках (не сходится с мануалом). В остальном вроде разобрался. Цитата Ссылка на сообщение Поделиться на другие сайты
KonTur Опубликовано 27 марта, 2014 Поделиться Опубликовано 27 марта, 2014 Неужели забрезжила возможность поставить Ситигид на корейские балалайки? Цитата Ссылка на сообщение Поделиться на другие сайты
catmanspb Опубликовано 27 марта, 2014 Автор Поделиться Опубликовано 27 марта, 2014 Ну а что делать.. рас всем всё до балды - приходится ковыряться. Шелл мой по выбору нави на AVN-100/200 головах людям пришелся по душе. Сейчас накарябал наброски по транслятору GPS из этого долбаного HIPPO в NMEA, рас уж разработчику навигационного софта совсем влом добавить парсинг 2-3 пакетов от HIPPO. Время кажет на ура, да и координаты тоже. Спутники несколько странно кажет, т.к. описалово протокола в этом месте не соответствует данным с чипа. Ну и вот как эти долбаные радианы перевести в градусы. Я не туп, я знаю как их перевести, но получается бред, а не значения. При всём при том сама Trimble студия эти же мои координаты с HIPPO жуёт на ура и выдаёт нужные координаты в градусах. В общем пока загвоздка в трансляции координат и разобрать пакет спутников. А дальше уже сам конвертер буду отлаживать. Судя по описалову протокола широта и долгота в радианах по форумуле x*2-31 радиальных сек.. И если взять из лога GPS например значение 629867265 * 2-31 = 0,2933048014529049396514892578125 сек, что в радианах будет ~0,00000142 и в градусах 0,0000814. Что как-то нифига не похоже на ~ 52° 47.69201 Вот и не понимаю, что за хрень.. Фик с ними со спутниками. Можно пока забить. Но без координат и прочих мелочей типа направления движения не получится затею реализовать. 1 Цитата Ссылка на сообщение Поделиться на другие сайты
svlad2012 Опубликовано 27 марта, 2014 Поделиться Опубликовано 27 марта, 2014 Ну а что делать.. рас всем всё до балды - приходится ковыряться. Шелл мой по выбору нави на AVN-100/200 головах людям пришелся по душе. Сейчас накарябал наброски по транслятору GPS из этого долбаного HIPPO в NMEA, рас уж разработчику навигационного софта совсем влом добавить парсинг 2-3 пакетов от HIPPO. Время кажет на ура, да и координаты тоже. Спутники несколько странно кажет, т.к. описалово протокола в этом месте не соответствует данным с чипа. Ну и вот как эти долбаные радианы перевести в градусы. Я не туп, я знаю как их перевести, но получается бред, а не значения. При всём при том сама Trimble студия эти же мои координаты с HIPPO жуёт на ура и выдаёт нужные координаты в градусах. В общем пока загвоздка в трансляции координат и разобрать пакет спутников. А дальше уже сам конвертер буду отлаживать. Судя по описалову протокола широта и долгота в радианах по форумуле x*2-31 радиальных сек.. И если взять из лога GPS например значение 629867265 * 2-31 = 0,2933048014529049396514892578125 сек, что в радианах будет ~0,00000142 и в градусах 0,0000814. Что как-то нифига не похоже на ~ 52° 47.69201 Вот и не понимаю, что за хрень.. Фик с ними со спутниками. Можно пока забить. Но без координат и прочих мелочей типа направления движения не получится затею реализовать. Показания*2^(-31)*180=величина в градусах. Из протокола диапазон изменения широты [-1/2 1/2] sc, долготы - [-1 1] sc. Что значит, что 1 sc - это не секунда, а 180 град. или пи радиан Цитата Ссылка на сообщение Поделиться на другие сайты
catmanspb Опубликовано 27 марта, 2014 Автор Поделиться Опубликовано 27 марта, 2014 Показания*2^(-31)*180=величина в градусах. Из протокола диапазон изменения широты [-1/2 1/2] sc, долготы - [-1 1] sc. Что значит, что 1 sc - это не секунда, а 180 град. или пи радиан оу! большое спасибо за формулу! меня вот и смущали эти "sc" Сейчас поглядим что выходит.. Цитата Ссылка на сообщение Поделиться на другие сайты
/DiOs Опубликовано 27 марта, 2014 Поделиться Опубликовано 27 марта, 2014 Показания*2^(-31)*180=величина в градусах. Ну да. И в вышеозначенном примере даёт 52.794864 Цитата Ссылка на сообщение Поделиться на другие сайты
catmanspb Опубликовано 27 марта, 2014 Автор Поделиться Опубликовано 27 марта, 2014 Вроде теперь всё получилось с определением координат, кроме спутников. Осталось пакет со спутниками разобрать: 81 33 01 02 1D F5 EA 33 29 0C 63 8281 33 01 03 0A 00 00 00 A6 00 16 82 Первый виден, второй нет. 81- начало 33-01 - признак 82 - конец 02 в первом пакете и 03 во втором - это номер канала 1D и 0A - номера спутников А вот дальше "труляля". С описаловом даже это не сходится. Цитата Ссылка на сообщение Поделиться на другие сайты
bushmen Опубликовано 27 марта, 2014 Поделиться Опубликовано 27 марта, 2014 Вроде теперь всё получилось с определением координат А чего скорость-то в см/с ? Цитата Ссылка на сообщение Поделиться на другие сайты
catmanspb Опубликовано 27 марта, 2014 Автор Поделиться Опубликовано 27 марта, 2014 А чего скорость-то в см/с ? Ну изначально по протоколу HIPPO она в см/с. Рядом в км/час пересчитываю. Цитата Ссылка на сообщение Поделиться на другие сайты
bushmen Опубликовано 27 марта, 2014 Поделиться Опубликовано 27 марта, 2014 Ну изначально по протоколу HIPPO она в см/с. Как-то глазу непривычно видеть. Может, лучше переводить в м/с или только км/ч показывать? Координаты же выводите только в градусах. Цитата Ссылка на сообщение Поделиться на другие сайты
Популярный пост catmanspb Опубликовано 27 марта, 2014 Автор Популярный пост Поделиться Опубликовано 27 марта, 2014 Как-то глазу непривычно видеть. Может, лучше переводить в м/с или только км/ч показывать? Координаты же выводите только в градусах. Это в целом вообще не важно. Это просто понимать, что я правильно разбираю данные от GPS. А графическое оформление - это мой Шелл по выбору нави. Мне проще на его базе добавить экран с данными, чтоб не лопатить ничего с нуля ради координат. В конечном варианте данных на экране не будет (ну или придумаю как оформить). Они будут невидимы и передаваться в навигацию по результату чтения порта. Т.е. сейчас практически вся навигация на рынке работает по протоколу NMEA, а долбаные корейские головы (обладателем которой я и являюсь) работают по протоолу HIPPO. Вот и надо сделать невидимку-транслятор. Чтоб нави получала нужный NMEA. А отображение инфы - эт на данный момент исключительно отладка. 4 Цитата Ссылка на сообщение Поделиться на другие сайты
/DiOs Опубликовано 27 марта, 2014 Поделиться Опубликовано 27 марта, 2014 81 33 01 02 1D F5 EA 33 29 0C 63 82 F5 - видимый, наблюдаемый (tracked в смысле), SNR в норме EA - SNR 46.8 dB-Hz 33 - азимут 102 градуса 29 - возвышение -41 градус 0C - статус альманаха -- нет, статус эфемерид -- проверен Не так? Цитата Ссылка на сообщение Поделиться на другие сайты
catmanspb Опубликовано 27 марта, 2014 Автор Поделиться Опубликовано 27 марта, 2014 Не так? Так то оно так.. Что есть 0x63 или 0x16 ? в описалове 7 байт расписано.. или просто игнорить? Цитата Ссылка на сообщение Поделиться на другие сайты
/DiOs Опубликовано 27 марта, 2014 Поделиться Опубликовано 27 марта, 2014 Что есть 0x63 или 0x16 ? Чего-нибудь для практического юзания не хватает? Тогда забиваем. Цитата Ссылка на сообщение Поделиться на другие сайты
catmanspb Опубликовано 27 марта, 2014 Автор Поделиться Опубликовано 27 марта, 2014 Чего-нибудь для практического юзания не хватает? Тогда забиваем. Спасибо Реально уже подтупливаю со всем этим делом. Сейчас поиграюсь дома, потом в бибике на подвижной голове, а затем уже буду транслятор колупать. впихну свежесозданный парсер и посмотрим как оно. Если прокатит - будет и ситигид у меня (нас) в голове. Надеюсь всё получится.. Ещё раз спасибо! 1 Цитата Ссылка на сообщение Поделиться на другие сайты
svlad2012 Опубликовано 27 марта, 2014 Поделиться Опубликовано 27 марта, 2014 Так то оно так.. Что есть 0x63 или 0x16 ? в описалове 7 байт расписано.. или просто игнорить? А это не контрольная сумма? Наверняка это где-то в общей части описано Цитата Ссылка на сообщение Поделиться на другие сайты
svlad2012 Опубликовано 27 марта, 2014 Поделиться Опубликовано 27 марта, 2014 Две кошачьих морды, полудохлая белка и "клетчатый" Цитата Ссылка на сообщение Поделиться на другие сайты
/DiOs Опубликовано 27 марта, 2014 Поделиться Опубликовано 27 марта, 2014 Кстати да, crc. Она же в общей части описана! Отправлено с моего ZTE-BLADE через Tapatalk Цитата Ссылка на сообщение Поделиться на другие сайты
catmanspb Опубликовано 27 марта, 2014 Автор Поделиться Опубликовано 27 марта, 2014 Две кошачьих морды, полудохлая белка и "клетчатый" Три. Одна укурена Про CRC тоже подумал, т.к. в NMEA он тоже повсюду, что правильно. Цитата Ссылка на сообщение Поделиться на другие сайты
catmanspb Опубликовано 27 марта, 2014 Автор Поделиться Опубликовано 27 марта, 2014 Вот как всё красиво стало.. Парсер работает. Терь можно браться за вставку его в транслятор. 1 Цитата Ссылка на сообщение Поделиться на другие сайты
KonTur Опубликовано 27 марта, 2014 Поделиться Опубликовано 27 марта, 2014 Холи шит! Я записываюсь на перепрошивку головы! Цитата Ссылка на сообщение Поделиться на другие сайты
catmanspb Опубликовано 27 марта, 2014 Автор Поделиться Опубликовано 27 марта, 2014 Холи шит! Я записываюсь на перепрошивку головы! Ну пока рано Этож пока всего лишь разбор HIPPO. Надо терь формировать NMEA хотя бы в лог. А потом уже пытаться обмануть нави. Но все равно.. результат, как говорится, на лицо. Цитата Ссылка на сообщение Поделиться на другие сайты
catmanspb Опубликовано 27 марта, 2014 Автор Поделиться Опубликовано 27 марта, 2014 Всё же хочу CRC8 проверять, т.к. иногда мусор проскакивает. Но по мануалу оно считается от старта 81 до конца 82. Не пойму как так, если чексум предпоследний байт. Пробовал считать по всякому - не получается нужная CRC8. Функция для подсчета позаимствована: // Compute a Dallas Semiconductor 8 bit CRC directly. uint8_t crc8(const uint8_t *addr, uint8_t len) { uint8_t crc = 0; while (len--) { uint8_t inbyte = *addr++; for (uint8_t i = 8; i; i--) { uint8_t mix = (crc ^ inbyte) & 0x01; crc >>= 1; if (mix) crc ^= 0x8C; inbyte >>= 1; } } return crc; } Цитата Ссылка на сообщение Поделиться на другие сайты
catmanspb Опубликовано 27 марта, 2014 Автор Поделиться Опубликовано 27 марта, 2014 Разобрался.. там CRC у них своя. Проще говоря сумма всех байт с 81 по 82 должна быть ровна 0. т.е. CRC = 0 - (сумма всего, кроме crc) Цитата Ссылка на сообщение Поделиться на другие сайты
/DiOs Опубликовано 28 марта, 2014 Поделиться Опубликовано 28 марта, 2014 Дополнение до 100. Так биосы защищали с самых первых писюков. Отправлено с моего ZTE-BLADE через Tapatalk Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.