В общем, пытаюсь "увидеть глазами" поток 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).
Стал что то получать 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, $errstr, 30);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($fp, 12)); print htmlspecialchars(fgets($fp, 2)); print htmlspecialchars(fgets($fp, 4096)); print htmlspecialchars(fgets($fp, 4096)); print htmlspecialchars(fgets($fp, 4096)); print htmlspecialchars(fgets($fp, 4096)); print htmlspecialchars(fgets($fp, 4096)); print htmlspecialchars(fgets($fp, 4096)); //} 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;д Ўb9pдятѓ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ыФБѕцЂ ;дђЪf9p&яюEѓ=Пя]Ђв.ЭИґ+ЂЈј@тQ 5И‡RyUА(о1ЂЬ ’ВCNхь€ ;дїяAj№\MЂ —ЋщЂ|@ШйPЙУ…>А]у"ЂІЁ ађу]їэPym·и"Џ„‚ смущают две вещи. 1) Данные передаются бесконечно, пока я не тормозну получение их либо скрипт таймаутом по превышению не заткнется.. Есть ли режим работы - передал координаты - получил пакетик с поправками - свободен? 2) Собсно мои координаты. Нигде не нашел как их передавать, оригинальную доку пока не осилил, пытаюсь.. Кто нить знает?
Table 1: Format and Contents of Source-Table Records Describing a Data Stream гласит, что в 12 позиции (разделители - точкисзапятой) mounpoints есть число, которое отсылаю GGA, внешне разницу не видно )) В общем, видимо, пора тестить на железке
В общем - авторизация проходит, данные поступают но проблема.. кастер не видит координаты приемника. Отсылаю так: Код: $GPGGA,120710.000,04503.6792,N,03856.8324,E,4,10,1.0,9.0,M,-26.574,M,7.0,0138*100
Сергей Флерко, целью темы было получить информацию. В первом топике есть четко заданные вопросы. Та как желающих помочь не нашлось, выложил свои результаты, может кому то пригодятся.
Палыч, это php, он компилится на стороне сервера в момент исполнения, точнее транслируется ) Это просто чтобы было проще понять алгоритм/последовательность, на c# для mcu просто не все понятно будет.