1. ВНИМАНИЕ! В течении пары дней +- будет переезд форума на более защищённый сервер. Возможны перебои в работе.
    Скрыть объявление

Как работает NTRIP протокол

Тема в разделе "GNSS-измерения", создана пользователем Илья Вялков, 26 июл 2017.

  1. Илья Вялков

    Илья Вялков Форумчанин

    Занимаясь поддержкой онлайнового NTRIP кастера, я столкнулся с тем, что у пользователей возникают сложности с передачей поправок от базы к роверу. В основном они связаны с тем, что у них нет полной картины взаимодействия приемников на транспортном уровне .

    Screen Shot 2017-07-26 at 16.21.37.png
    Как же технически это происходит? Кастер это сервер, который подключен к интернету, он расположен по определенному IP адресу и слушает определенный порт, ожидая входящего соединения. Например это может быть 111.111.111.111 порт 2101. Сервер отправляет на кастер запрос на соединение:

    Код:
    POST /ExampleMountpoint HTTP/1.1
    Host: ntrip.example.com
    Ntrip-Version: Ntrip/2.0
    Authorization: Basic bnRyaXA6c2VjcmV0
    User-Agent: NTRIP ExampleServer/2.0
    Connection: close 
    Из данного запроса видно, что сервер хочет передавать данные для точки доступа под названием ExampleMountpoint. Версия NTRIP протокола 2. Сервер использует простую авторизацию и передает имя пользователя и пароль в кодировке BASE64

    Получив такой запрос, кастер проверяет, есть ли у него в базе данных точка доступа с именем ExampleMountpoint и подходят ли к ней имя пользователя и пароль.

    В случае успеха, кастер отвечает серверу:

    Код:
    HTTP/1.1 200 OK
    
Ntrip-Version: Ntrip/2.0
    
Server: NTRIP ExampleCaster/2.0
    Date: Tue, 01 Jan 2008 14:08:15 GMT
    Connection: close
    Сервер, получив ответ что все ОК, начинает передавать уже непосредственно спутниковые данные.

    Таким образом серверное соединение установлено. Теперь уже клиенту нужно подключиться к кастеру, чтобы получить данные передаваемые сервером. Клиент посылает на тот же адрес и тот же порт следующий запрос:

    Код:
    GET /ExampleMountpoint HTTP/1.1
    Host: ntrip.example.com
    Ntrip-Version: Ntrip/2.0
User-Agent: NTRIP ExampleClient/2.0
    Authorization: Basic bnRyaXA6c2VjcmV0
    Connection: close
    Кастер проверяет, что точка доступа ExampleMountpoint существует и активна. Проверяет логин и пароль пользователя. И отвечает что все нормально:

    Код:
    HTTP/1.1 200 OK
    
Ntrip-Version: Ntrip/2.0
    Server: NTRIP ExampleCaster/2.0
    
Date: Tue, 01 Jan 2008 14:08:15 GMT
    
Connection: close

    Content-Type: gnss/data
    Сразу за этим ответом, кастер начинает передачу спутниковых данных полученных от сервера. Таким нехитрым образом удается установить соединение базы с ровером.
     
    Иоан4, uriygr, Passenger и ещё 1-му нравится это.
  2. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    Добавлю, что NTRIP Сервер, это компьютер доступный в любом виде:телефон, стационарный ПК,Rasppbery Pi, контроллер GNSS, GPS, роутер, микроконтроллер, и.д.,при условии, что на нем есть возможность подключиться к базовой станции через последовательный COM порт(так называемый rs232 интерфейс или его версия с TTL уровнями сигнала), или через блютус или блютуз адаптер используя профиль SPP.Например в случае с приемником Trimble 5700 подключаем компьютер к 3-му порту.Следует иметь ввиду, что для Вашей версии операционной системы компьютера должна быть доступна программа NTRIP сервер, в случае с микроконтроллером соответствующая прошивка.Подключение к сети Интернет обязательно.
    NTRIP Клиент-это как правило контроллер ровера, с выходом интернет.Управление NTRIP клиентом, содержит в себе ПО контроллера, которое используется для приемника.
    NTRIP Кастер-это удаленный компьютер-сервер( скорее всего и не один, что дает преимущество при сбое одного из них) с соответствующим ПО,управляет которым организации занимающиеся управлением сети интернет, организатор данного сервиса, который арендовал виртуальный сервер и установил туда программное обеспечение NTRIP Кастер.
     
    Илья Вялков, Passenger и Alex_Red нравится это.
  3. Passenger

    Passenger Форумчанин

    Интересно а можно подключиться к ntrip с помощью GSM/GPRS модуля+arduino? Почитал несколько статей про GSM модемы, настраиваю модуль с помощью АТ команд, соединяюсь с сервером командой at+cipstart="TCP","95.85.53.176","2101". А дальше не понятно что делать, как отправить точку доступа и пароль? И как потом начать отправлять поправки на мою точку доступа? Поправки будут считываться с ком порта ардуино и передаваться в GSM модуль (по этой части вопроса нет).
     
  4. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    Думаю да,если есть такая прошивка на микроконтроллер AVR.Если же нет, то придется писать самому, нужно освоить программирование микроконтроллеров, управление модемом с помощью АТ-команд, изучить некоторые сетевые технологии для передачи текстового потока данных на сервер по IP_адресу: и номерeу порта.Самое интересное, что многие GSM модули уже обладают встроенной поддержкой протоколов и всякой нужной лабуды для решения подобной задачи, то есть ардуино можно исключить из этой связки. Единственный минус такого подхода, что среда разработки может быть платной и по ней нет такого количества книг как по ардуино, то есть осваивать намного сложней будет.
     
  5. Илья Вялков

    Илья Вялков Форумчанин

    Код:
    POST /ExampleMountpoint HTTP/1.1
    Host: ntrip.example.com
    Ntrip-Version: Ntrip/2.0
    Authorization: Basic bnRyaXA6c2VjcmV0
    User-Agent: NTRIP ExampleServer/2.0
    Connection: close
    ExampleMountpoint - ваша точка доступа
    bnRyaXA6c2VjcmV0 - логин и прароль зашифрованный по алгоритму base64 в формате login:password
    и не забудьте переносы строки "\r\n", в конце должна быть пустая строка
     
  6. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    Походу если нет поддержки base64, тогда ручками шифровать нужно.
    --- Сообщения объединены, 15 авг 2017, Оригинальное время сообщения: 15 авг 2017 ---
    Принимать строки из ком порта и отправлять их на ip_адрес:номер_порта кастера по TCP/IP или по UDP протоколу в зависимости от того, что использует сервер.
     
  7. Passenger

    Passenger Форумчанин

    В ардуино есть библиотеки для работы с base64, думаю вопрос решится.

    Спасибо, буду пробовать. А такой запрос подходит для всех NTRIP или только для вашего?
     
  8. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    Если я не ошибаюсь, он стандартный.
    http://smartnet-ru.com/opisanie-protokola-ntrip_949.htm
     
  9. Илья Вялков

    Илья Вялков Форумчанин

    Это запрос по стандарту NTRIP 2
    По стандарту NTRIP 1, запрос будет немного другим:
    Код:
    SOURCE letmein /Mountpoint 
    Source-Agent: NTRIP NtripServerCMD/1.0
    где letmein пароль, а Mountpoint название точки доступа.
     
  10. Сделал 2 модема на основе STM32f042 и модуля SIM800C. После отладки все заработало. Спасибо. Отправка и прием работают хорошо, по крайней мере за небольшой период наблюдений. Тяжело найти было информацию по организации подключения к NTRIP серверу. На официальном сайте rtcm документ по ntrip 2.0 стоит 200+ долларов. Уже отчаялся что придется покупать, но тут наткнулся на этот пост 3х летней давности)
     
    Land Surveyor 16 нравится это.
  11. Илья Вялков

    Илья Вялков Форумчанин

    Я тут недавно обновил YCServer, он по прежнему глючный и страшный но вроде иногда работает. Теперь он позволяет делать такой трюк:
    base -> bluetooth -> android -> internet -> android -> bluetooth - rover
    роверов может быть много

    https://play.google.com/store/apps/details?id=com.youcors.ycserver
     
    Палыч и igor kruchkovskiy нравится это.
  12. recrut top

    recrut top Форумчанин

    А нету ли у Вас такой программулины на WM ?
    А то контролеров полно с GSM а решения для передачи на NTRIP кастер со стареньких приемников нет.
    Конечно устройства на Андроиде доступны, но в морозы долго не работают , колхозить с проводами приходится.
    (достаточно функции NTRIP server )
     
  13. Илья Вялков

    Илья Вялков Форумчанин

    К сожалению нет. Не умею я в WM.
     
  14. Уровень знаний, который дал мне университет, не позволяет понять почти ничего из того о чем вы общаетесь... Закончил называется с красным дипломом...
     
  15. Илья Вялков

    Илья Вялков Форумчанин

    Тут про программирование больше, чем про геодезию :-)
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление