алгоритм клиента ntrip..

Тема в разделе "GNSS-измерения", создана пользователем whoim, 20 дек 2012.

  1. whoim

    whoim Форумчанин

    В общем, пытаюсь "увидеть глазами" поток RTCM от поставщика услуг, он доступ вроде как открыл. Реализация первая на php, разобраться что куда. Использовал все что смог найти в сети по ключу example..

    Код:
    <?php
    print 'Test RTMC client alhoritm<hr>';
     
    $server = 'xxx.xxx.xxx.xxx';
    $port = 2101;
    $username = 'username';
    $password = 'password';
    $realm = 'stkrtcm1'; //Это что за хрень? Перебираю все
    //$realm='';
     
    $header = "GET /".$realm." HTTP/1.1\r\n".
            "User-Agent: NTRIP_client\r\n".
            "Authorization: Basic ".base64_encode($username.':'.$password)."\r\n".
            "Accept: */*\r\n".
            "Connection: close\r\n\r\n";
     
    print 'Header send to server:<br><textarea rows="10" cols="45">';
    print $header;
    print '</textarea><hr>';
    print 'SERVER REPLY:<hr>';
     
    $fp = fsockopen($server, $port, $errno, $errstr, 30);
    if (!$fp) {
        print 'connect error: '.$errno.'#'.$errstr.'<hr>';
    } else {
        fputs ($fp, $header);
        while (!feof($fp))
        {
            print nl2br(htmlspecialchars(fgets($fp, 128)));
        }
        fclose ($fp);
    }
    print '<hr>end test';
    ?>
    В общем, если $realm пустой - выдается SOURCETABLE. Оттуда выбираю какой нить realm (второй параметр в строке), он ругается

    HTML:
    HTTP/1.1 401 Unauthorized
    WWW-Authenticate: Basic realm="stkrtcm1"
    Ошибится особо негде то, подозреваю проблема у прова - потому что на "сайте" с этим именем и паролем авторизоваться не могу (тот же ip но порт 80).
     
  2. whoim

    whoim Форумчанин

    Стал что то получать
    PHP:
    $header "GET /".$mountpoint." HTTP/1.1\r\n".
            
    "User-Agent: NTRIP_client\r\n".
            
    "Authorization: Basic ".base64_encode($username.':'.$password)."\r\n".
            
    "Accept: */*\r\n".
            
    "Connection: close\r\n\r\n";
     
    print 
    'Header send to server:<br><textarea rows="10" cols="45">';
    print 
    $header;
    print 
    '</textarea><hr>';
    print 
    'SERVER REPLY:<hr>';
     
    $fp fsockopen($server$port$errno$errstr30);
    if (!
    $fp) {
        print 
    'connect error: '.$errno.'#'.$errstr.'<hr>';
    } else {
        
    fputs ($fp$header);
        
    fputs ($fp,  "Nmea position 04503.6752N 03856.8352E 10.5\r\n");
        
    //while (!feof($fp)){
            
    print htmlspecialchars(fgets($fp12));
            print 
    htmlspecialchars(fgets($fp2));
            print 
    htmlspecialchars(fgets($fp4096));
            print 
    htmlspecialchars(fgets($fp4096));
            print 
    htmlspecialchars(fgets($fp4096));
            print 
    htmlspecialchars(fgets($fp4096));
            print 
    htmlspecialchars(fgets($fp4096));
            print 
    htmlspecialchars(fgets($fp4096));
        
    //}
        
    fclose ($fp);
    }
    print 
    '<hr>end test';
    данные
    Код:
    ICY 200 OK У>рADVNULLANTENNA NONEW„У*@ђADVNULLANTENNA NONE TRIMBLE NETR9‰™PУ>Р2Bd®†’CТJv№j¬!У…>А]тц′4b уђ[їюаqm¬…пяЏЏЉ‚ `%ЋHѓЂъd ЯяЇАЉ1}3яэА(O “яшр    E‹.џя.    ф*АO.“kуяьА    –H?ю*схHѕ?яКGА@Чяш@*¤?яюи&8 ©0Уj?@pыWБЅш‹D;д Ўb9˜pдятѓ9ЫяЙa’.ЯДkяЭ@#»@ЛяэpИ‡NЯяш0о(?ьx‚ВC3R;Фр"h№\O/яkЋщGяр@XЮЄWУ…>А]у‚ЂІZ'яЗаPуVяффymІ7юэЏ„‚    яыeNH=ЂђъdcДЉ0ъГАЁO ђЂА%Ѓча|xО®’эзqP)–h ѕщхG•їюЕЃGВ@РяЧР7P*¤ю8 &'япћЮъ+Уj?@pыФБѕцЂ  ;дђЪf9˜p&яюEѓ=Пя]Ђв.ЭИґ+ЂЈј@тQ 5И‡RyUА(о1ЂЬ ’ВCNхь€ ;дїяAj№\MЂ    —ЋщЂ|@ШйPЙУ…>А]у"ЂІЁ ађу]їэPym·и"Џ„‚
    смущают две вещи.

    1) Данные передаются бесконечно, пока я не тормозну получение их либо скрипт таймаутом по превышению не заткнется.. Есть ли режим работы - передал координаты - получил пакетик с поправками - свободен?
    2) Собсно мои координаты. Нигде не нашел как их передавать, оригинальную доку пока не осилил, пытаюсь.. Кто нить знает?
     
  3. whoim

    whoim Форумчанин

  4. whoim

    whoim Форумчанин

    Table 1: Format and Contents of Source-Table Records Describing a Data Stream гласит, что в 12 позиции (разделители - точкисзапятой) mounpoints есть число, которое
    отсылаю GGA, внешне разницу не видно ))
    В общем, видимо, пора тестить на железке
     
  5. whoim

    whoim Форумчанин

  6. whoim

    whoim Форумчанин

    В общем - авторизация проходит, данные поступают но проблема.. кастер не видит координаты приемника. Отсылаю так:
    Код:
    $GPGGA,120710.000,04503.6792,N,03856.8324,E,4,10,1.0,9.0,M,-26.574,M,7.0,0138*100
     
  7. whoim

    whoim Форумчанин

    Все видит:
    [​IMG]

    исходник приложил
     

    Вложения:

  8. Сергей Флерко

    Сергей Флерко Форумчанин

    Вот я никак не могу разобрать - Вы сами с собой беседуете?
    Цель то какая?
     
  9. whoim

    whoim Форумчанин

    Сергей Флерко, целью темы было получить информацию. В первом топике есть четко заданные вопросы. Та как желающих помочь не нашлось, выложил свои результаты, может кому то пригодятся.
     
  10. whoim

    whoim Форумчанин

    Пардон, во втором.
     
  11. Палыч

    Палыч Форумчанин

    А скомпилированную програмку?
     
  12. whoim

    whoim Форумчанин

    Палыч, это php, он компилится на стороне сервера в момент исполнения, точнее транслируется ) Это просто чтобы было проще понять алгоритм/последовательность, на c# для mcu просто не все понятно будет.
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление