OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#1251 2014-05-14 21:14:15

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

-1

Last edited by usm78-gis (2016-11-27 14:50:17)

Offline

#1252 2014-05-14 21:54:46

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

-1

Last edited by usm78-gis (2016-11-27 14:50:25)

Offline

#1253 2014-05-15 16:59:31

Alexey Illarionov
Member
Registered: 2011-06-26
Posts: 96

Re: RTKlib/постпроцессинг

Новый интересный тест: http://open-source-gps-related-discussi … l#a7572912
с фотографиями.
LEA-4T, NTRIP, RTKGPS. За 40 минут получили fixed решение.
В то же время меряли с Trimble 4800. Сравнили результаты и получили разницу в 3.8см.

Offline

#1254 2014-05-15 17:33:15

chnav
Member
From: Moscow, Russia
Registered: 2010-03-18
Posts: 2,935

Re: RTKlib/постпроцессинг

Alexey Illarionov wrote:

Новый интересный тест: http://open-source-gps-related-discussi … l#a7572912
с фотографиями.
LEA-4T, NTRIP, RTKGPS. За 40 минут получили fixed решение.
В то же время меряли с Trimble 4800. Сравнили результаты и получили разницу в 3.8см.

Спасибо, отличная новость.

С Тримблом всё понятно (режим Static Survey L1/L2), но непонятно что означает

RTKGPS by Illarionov, after 38min this fixed

Т.е. было решение float, через 38 - fixed ?

Last edited by chnav (2014-05-15 17:34:00)

Offline

#1255 2014-05-15 19:39:10

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

-1

Last edited by usm78-gis (2016-11-27 14:50:34)

Offline

#1256 2014-05-24 19:53:18

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

Wholesale Navilock retailers started to dump glonass receivers, NL-682MP costs 21,07€
http://www.amazon.de/Navilock-ANTENNE-G … /B008LFAOI
NL-682MP provides either raw gps or glonass data, and it is also possible to cross-compile
the command line rtklib utilities for windows using mingw32.
The weird borland GUI stuff is obviously not supported, and should be finally replaced by the
pyqt4 widgets.

Offline

#1257 2014-05-27 21:12:28

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

-1

Last edited by usm78-gis (2016-11-27 14:50:52)

Offline

#1258 2014-05-30 10:31:53

andru5555555
Member
Registered: 2014-05-10
Posts: 7

Re: RTKlib/постпроцессинг

Offline

#1259 2014-06-02 19:33:55

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

u-blox finally has provided the documentation (partially) explaining the bad performance of NEO-M8N:
there are two versions of this module. The old one is "PCB version B" and the new one is "PCB version C"
http://u-blox.com/en/evaluation-tools-a … -kits.html
The main difference is in the ROM firmware: version B has
barebone "ROM 0.22" and version C has full "ROM 2.01".
Clearing the flash on version B is not possible, so it _must_ work with the flashed firmware,
which makes things slow ;-)

Offline

#1260 2014-06-02 19:47:42

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

-1

Last edited by usm78-gis (2016-11-27 14:51:07)

Offline

#1261 2014-06-02 19:59:40

andru5555555
Member
Registered: 2014-05-10
Posts: 7

Re: RTKlib/постпроцессинг

С TRK-SFRBX для GPS разобрался, может подскажете как TRK-SFRBX глонасс в rtklib обработать?

Offline

#1262 2014-06-02 20:27:47

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

-1

Last edited by usm78-gis (2016-11-27 14:51:22)

Offline

#1263 2014-06-03 07:33:29

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

-1

Last edited by usm78-gis (2016-11-27 14:51:34)

Offline

#1264 2014-06-05 22:03:49

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

-1

Last edited by usm78-gis (2016-11-27 14:51:46)

Offline

#1265 2014-06-06 22:49:40

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

-1

Last edited by usm78-gis (2016-11-27 14:52:03)

Offline

#1266 2014-06-10 23:49:39

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

-1

Last edited by usm78-gis (2016-11-27 14:52:24)

Offline

#1267 2014-06-11 09:54:49

chnav
Member
From: Moscow, Russia
Registered: 2010-03-18
Posts: 2,935

Re: RTKlib/постпроцессинг

usm78-gis
Чип uBlox-6010 на что-то годен ? Написано что флеша у него нет.
Заказал USB-мышку на этом чипе, из wiki подумал что все ublox-6 так или иначе поддерживают сырые данные через ваши магические строки инициализаций. Чувствую раньше надо было спрашивать...
PS: приемник ещё в пути.

Offline

#1268 2014-06-11 19:56:38

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

-1

Last edited by usm78-gis (2016-11-27 14:52:40)

Offline

#1269 2014-06-20 20:39:29

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

-1

Last edited by usm78-gis (2016-11-27 14:52:57)

Offline

#1270 2014-06-20 21:08:01

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

TRK-MEAS preliminary patch (the half-cycle carrier phase ambiguity (p2p=0.5) may stay unresolved, because it is not known which status flags are responsible for p2p):

diff -u -r rtklib_2.4.2b11/src/rcv/ublox.c /tmp/rtklib_2.4.2b11/src/rcv/ublox.c
--- rtklib_2.4.2b11/src/rcv/ublox.c	2014-06-20 21:10:28.000000000 +0400
+++ /tmp/rtklib_2.4.2b11/src/rcv/ublox.c	2013-02-28 23:56:38.000000000 +0300
@@ -22,33 +22,12 @@
 *-----------------------------------------------------------------------------*/
 #include "rtklib.h"
 
-#include <stdint.h>
-
 #define UBXSYNC1    0xB5        /* ubx message sync code 1 */
 #define UBXSYNC2    0x62        /* ubx message sync code 2 */
 #define UBXCFG      0x06        /* ubx message cfg-??? */
 
 #define ID_RXMRAW   0x0210      /* ubx message id: raw measurement data */
 #define ID_RXMSFRB  0x0211      /* ubx message id: subframe buffer */
-#define ID_RXMRAWX  0x0215      /* ubx message id: raw measurement data */
-
-#define ID_NAVTIME  0x0120      /* ubx message id: nav gps time */
-#define ID_NAVCLOCK 0x0122      /* ubx message id: nav gps clock */
-
-#define ID_TRKSFRB  0x0302      /* ubx message id: subframe buffer */
-#define ID_TRKTRKD2 0x0306      /* ubx message id: raw tracker data */
-#define ID_TRKTRKD5 0x030a      /* ubx message id: raw tracker data */
-#define ID_TRKSFRBX 0x030f      /* ubx message id: subframe buffer */
-#define ID_TRKMEAS  0x0310      /* ubx message id: raw tracker data */
-
-#define getb(off)	(raw->buff[6+off])
-#define getw(off)	((short)((getb(off) << 8) | getb(off+1)))
-#define getw_le(off)	((short)((getb(off+1) << 8) | getb(off)))
-#define getl(off)	((int)((getw(off) << 16) | (getw(off+2) & 0xffff)))
-#define getl_le(off)	((int)((getw_le(off+2) << 16) | (getw_le(off) & 0xffff)))
-#define getq(off)	((u_int64_t)(((u_int64_t)getl(off) << 32) | (getl(off+4) & 0xffffffff)))
-#define getq_le(off)	((int64_t)(((int64_t)getl_le(off+4) << 32) | (getl_le(off) & 0xffffffff)))
-
 #define FU1         1           /* ubx message field types */
 #define FU2         2
 #define FU4         3
@@ -101,192 +80,6 @@
     buff[len-2]=cka;
     buff[len-1]=ckb;
 }
-/* decode ublox nav-timegps:  --------------------------------*/
-static int decode_navtime(raw_t *raw)
-{
-        if (getb(11) >= 3) /* valid =7 */
-        {
-         raw->nav_itow=getl_le(0);
-         raw->nav_ftow=getl_le(4);
-         raw->nav_week=getw_le(8);
-         raw->nav_valid=1;
-        }
-        else
-         raw->nav_valid=0;
-
- return 0;
-}
-
-#define P2_8        0.00390625            /* 2^-8 */
-#define P2_10       0.000976562500000     /* 2^-10 */
-
-/* decode ublox trk-meas: raw tracker data --------------------------------*/
-static int decode_trkmeas(raw_t *raw)
-{
- int i, off, pnum;
-
-        pnum=0;
-	for (i = 0; i < getb(2); i++) {
-	    int sv;
-	    int gnss, sys;
-	    int plock;
-	    int g2g=0;
-        int plocked;
-        double p2p;
-	    
-            p2p=0.0;
-/* ubloxM8 only */
-	       sys=SYS_GPS;
-
-            switch (getb(0))
-            {
-             case 2:
-
-	     off = 104 + 56 * i;
-	     plocked = 0x1;
-	     gnss = getb(off+4);
-
-	     switch(gnss)
-	     {
-	      case 0: /* gps */
-	       sys=SYS_GPS;
-	      break;
-	      case 1: /* sbas */
-	       sys=SYS_SBS;
-	      break;
-	      case 2: /* galileo */
-	       sys=SYS_GAL;
-	      break;
-	      case 3: /* bds */
-	       sys=SYS_CMP;
-	          g2g=-14;
-	      break;
-	      case 6: /* glo */
-	       sys=SYS_GLO;
-	          g2g=10800-16;
-	      break;
-	      default:
-	       sys=SYS_GPS;
-	      break;
-	     }
-	     sv = getb(off+5);
-	     
-             break;
-             default: /* UNKNOWN */
-              return 0;
-             break;
-            }
-
-	    plock = getb(off+50); /* =1 */
-	    if ( plock != plocked ) 
-	    {
-	     continue;
-	    }
-	    
-	    raw->trk_raw_obs[pnum].codep=((double)getq_le(off+24))*P2_32-g2g*1000; /* DEBUG */
-	    raw->trk_raw_obs[pnum].L1=((double)getq_le(off+32))*P2_32-p2p;
-	    raw->trk_raw_obs[pnum].D1=((float)getl_le(off+40))*P2_10*10.;
-	    raw->trk_raw_obs[pnum].plockt=getw_le(off+50);
-	    raw->trk_raw_obs[pnum].mesqi=getb(off+1);
-	    raw->trk_raw_obs[pnum].cno=getw_le(off+20);
-	    raw->trk_raw_obs[pnum].sat=satno(sys,sv);
-	    raw->trk_raw_obs[pnum].bits=((getb(off+52))<<24)+((getb(off+53))<<16)+((getb(off+54))<<8)+getb(off+55);
-
-	    pnum++;
-	}
-	raw->rnx_nchan=pnum;
-
- return 0;
-}
-
-/* decode ublox nav-clock:  makeraw --------------------------------*/
-static int decode_makeraw(raw_t *raw)
-{
- int i, j, n, sat;
- int nav_bias, nav_drift, nav_1ms;
- gtime_t time;
-
-        nav_bias=getl_le(4);
-        nav_drift=getl_le(8);
-        
-        if (nav_drift > 0)
-        {
-         int x;
-         x=raw->nav_ftow+nav_bias;
-         nav_1ms=(x >  500000)?1:0;
-        }
-        else
-        {
-         int x;
-         x=raw->nav_ftow+nav_bias;
-         nav_1ms=(x > -500000)?0:-1;
-        }
-
-        time=gpst2time(raw->nav_week,(raw->nav_itow+nav_1ms)*0.001);
-
-        if (raw->nav_valid == 1) /* valid */
-        {
-         n=0;
-         for ( i=0; i < raw->rnx_nchan ; i++)
-         {
-
-        sat                    =raw->trk_raw_obs[i].sat;
-        raw->obs.data[n].time  =time;
-        raw->obs.data[n].L[0]  =raw->trk_raw_obs[i].L1;
-        raw->obs.data[n].P[0]  =(raw->nav_itow+nav_1ms-raw->trk_raw_obs[i].codep)/1000.*CLIGHT;
-        raw->obs.data[n].D[0]  =raw->trk_raw_obs[i].D1;
-
-        raw->obs.data[n].SNR[0]=(int)floor(raw->trk_raw_obs[i].cno*P2_8*4);
-        raw->obs.data[n].LLI[0]=raw->trk_raw_obs[i].plockt>100?1:0;
-        raw->obs.data[n].code[0]=CODE_L1C;
-
-        raw->obs.data[n].sat=sat;
-        
-        raw->lockt[sat-1][0]=raw->trk_raw_obs[i].plockt;
-        
-        for (j=1;j<NFREQ;j++) {
-            raw->obs.data[n].L[j]=raw->obs.data[n].P[j]=0.0;
-            raw->obs.data[n].D[j]=0.0;
-            raw->obs.data[n].SNR[j]=raw->obs.data[n].LLI[j]=0;
-            raw->obs.data[n].code[j]=CODE_NONE;
-        }
-        n++;
-
-         }
-         raw->nav_valid=0;
-#if PRODUCTION
-         raw->rnx_nchan=0;
-#endif
-    raw->time=time;
-    raw->obs.n=n;
-
-        }
- 
- return 1;
-}
-
 /* decode ublox rxm-raw: raw measurement data --------------------------------*/
 static int decode_rxmraw(raw_t *raw)
 {
@@ -462,10 +255,6 @@
     switch (type) {
         case ID_RXMRAW : return decode_rxmraw(raw);
         case ID_RXMSFRB: return decode_rxmsfrb(raw);
-
-        case ID_NAVTIME: return decode_navtime(raw);
-        case ID_NAVCLOCK:return decode_makeraw(raw);
-        case ID_TRKMEAS: return decode_trkmeas(raw);
     }
     return 0;
 }
diff -u -r rtklib_2.4.2b11/src/rtklib.h /tmp/rtklib_2.4.2b11/src/rtklib.h
--- rtklib_2.4.2b11/src/rtklib.h	2014-06-20 20:40:24.000000000 +0400
+++ /tmp/rtklib_2.4.2b11/src/rtklib.h	2013-02-28 21:52:08.000000000 +0300
@@ -1084,63 +1084,6 @@
     prcopt_t opt;       /* processing options */
 } rtk_t;
 
-/* quick u-blox hack */
-typedef struct
-{
- unsigned char sat;
-          double L1;
-          double codep;
-          float D1;
-          char mesqi;
- unsigned short plockt;
-          short cno; 
- unsigned int bits;
-} trk_raw_obs_t;
-
-typedef struct
-{
-    char sv;
-    char fn;
-    unsigned int ttag;
-    unsigned int flags;
-    double x;
-    double y;
-    double z;
-    double xdot;
-    double ydot;
-    double zdot;
-    double xdotdot;
-    double ydotdot;
-    double zdotdot;
-    char tk_s;
-    char tk_m;
-    char tk_h;
-    char P1;
-    short tb;
-    char P2;
-    char Bn;
-    double gamn;
-    char M;
-    char sv2;
-    short Nt;
-    char Ft;
-    char En;
-    double taun;
-    double dtaun;
-    double tauGPS;
-    char N4;
-    double tauc;
-    short NA;
-    
-    unsigned short frame;
-    unsigned char subframe;
-    unsigned char m;
-    int status;
-    
-} geph_raw_t;
-
 typedef struct {        /* receiver raw data control type */
     gtime_t time;       /* message time */
     gtime_t tobs;       /* observation data time */
@@ -1167,11 +1110,6 @@
     int outtype;        /* output message type */
     unsigned char buff[MAXRAWLEN]; /* message buffer */
     char opt[256];      /* receiver dependent options */
-    /* u-blox hack */
-    geph_raw_t geph_raw[MAXPRNGLO];
-    trk_raw_obs_t trk_raw_obs[MAXOBS];
-    int rnx_nchan, nav_week, nav_itow, nav_ftow, nav_valid;
-
 } raw_t;
 
 typedef struct {        /* stream type */
@@ -1719,7 +1657,6 @@
 extern int lexioncorr(gtime_t time, const nav_t *nav, const double *pos,
                       const double *azel, double *delay, double *var);
 
-
 #ifdef __cplusplus
 }
 #endif
diff -u -r rtklib_2.4.2b11/src/solution.c /tmp/rtklib_2.4.2b11/src/solution.c
--- rtklib_2.4.2b11/src/solution.c	2014-01-19 13:20:08.000000000 +0400
+++ /tmp/rtklib_2.4.2b11/src/solution.c	2013-02-28 21:52:58.000000000 +0300
@@ -1291,7 +1291,7 @@
         p+=sprintf(p,"%s dynamics  : %s\n",COMMENTH,opt->dynamics?"on":"off");
         p+=sprintf(p,"%s tidecorr  : %s\n",COMMENTH,opt->tidecorr?"on":"off");
     }
-    if (opt->mode<=PMODE_PPP_FIXED) {
+    if (opt->mode<=PMODE_FIXED) {
         p+=sprintf(p,"%s ionos opt : %s\n",COMMENTH,s4[opt->ionoopt]);
     }
     p+=sprintf(p,"%s tropo opt : %s\n",COMMENTH,s5[opt->tropopt]);

Edit: fixed the SBAS code bug, now RINEX 3.02 output looks as follows

$ ./convbin -v 3.02 -f 1 -r ubx -od -os /dev/ttyACM1 -d /tmp

     3.02           OBSERVATION DATA    M: Mixed            RINEX VERSION / TYPE
CONVBIN 2.4.2 b11                       20140620 220058 UTC PGM / RUN BY / DATE
log: /dev/ttyACM1                                           COMMENT
format: u-blox                                              COMMENT
                                                            MARKER NAME
                                                            MARKER NUMBER
                                                            MARKER TYPE
                                                            OBSERVER / AGENCY
                                                            REC # / TYPE / VERS
                                                            ANT # / TYPE
        0.0000        0.0000        0.0000                  APPROX POSITION XYZ
        0.0000        0.0000        0.0000                  ANTENNA: DELTA H/E/N
G    4 C1C L1C D1C S1C                                      SYS / # / OBS TYPES
R    4 C1C L1C D1C S1C                                      SYS / # / OBS TYPES
S    4 C1C L1C D1C S1C                                      SYS / # / OBS TYPES
  1970     1     1     0     0    0.0000000     GPS         TIME OF FIRST OBS
  1970     1     1     0     0    0.0000000     GPS         TIME OF LAST OBS
G                                                           SYS / PHASE SHIFT
R                                                           SYS / PHASE SHIFT
S                                                           SYS / PHASE SHIFT
 C1C    0.000 C1P    0.000 C2C    0.000 C2P    0.000        GLONASS COD/PHS/BIS
                                                            END OF HEADER

TIME OF FIRST OBS is still wrong.

Last edited by usm78-gis (2014-06-20 23:15:31)

Offline

#1271 2014-06-21 07:12:54

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

+$50 for raw data output looks like a clear ripoff to me:
https://www.indiegogo.com/projects/navi … spberry-pi
Choosing NEO-7M instead of NEO-7N is also just reselling cheapest chinese stuff.
I'll try to integrate the TRKD5 parser into rtklib during this weekend,
which will support raw output on all ublox5/6/7 receivers without any weird hacks.

Offline

#1272 2014-06-22 19:56:33

chnav
Member
From: Moscow, Russia
Registered: 2010-03-18
Posts: 2,935

Re: RTKlib/постпроцессинг

usm78-gis wrote:

I'll try to integrate the TRKD5 parser into rtklib during this weekend,
which will support raw output on all ublox5/6/7 receivers without any weird hacks.

Оглядываясь назад, в начало ветки - впечатляющий прогресс. Кто бы тогда мог мечтать о таком...

Offline

#1273 2014-06-22 23:31:27

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

usm78-gis wrote:

I'll try to integrate the TRKD5 parser into rtklib during this weekend,
which will support raw output on all ublox5/6/7 receivers without any weird hacks.

This patch is much smaller than the previous one, and i could test it only on Navilock NL-682MP
in GPS/EGNOS and glonass modes (using standard firmware EXT CORE 1.00 (59843) Jun 27 2012 18:25:00*49)
What we are still missing now:
1. TRK-SFRB patch
2. RXM-SFRBX decoder (minor modification of TRK-SFRBX)
3. TLE patch
4. SIRF support for sirf2 (non-xtrack), sirf3 (patched) and sirf4.

+/* decode ublox trk-trkd5: raw tracker data --------------------------------*/
+static int decode_trkd5(raw_t *raw)
+{
+ int i, off, pnum;
+
+        pnum=0;
+	for (i = 0; i < 16; i++) { /* 16 channels for ublox5/6, should be 22 for ublox7 */
+	    int sv;
+	    int gnss, sys;
+	    int plock;
+	    int g2g=0;
+        int plocked;
+        double p2p;
+	    
+            p2p=0.0;
+	       sys=SYS_GPS;
+
+            switch (getb(0))
+            {
+             case 6:
+
+	       off = 80 + 64 * i;
+	       plocked = 0xd;
+	       if ((getb(off+54) & 0x0f) == 0xe) p2p=0.5;
+	       gnss = getb(off+56); if (gnss == 6) g2g=10800-16; /* leap seconds here */
+	       sv = getb(off+57);
+             break;
+
+             case 3:
+
+	       off = 80 + 56 * i;
+	       plocked = 0xd;
+	       if ((getb(off+54) & 0x0f) == 0xe) p2p=0.5;
+	       gnss = 0;
+	       sv = getb(off+34);
+             break;
+
+             default: /* =0 */
+
+              off = 72 + 56 * i;
+              plocked = 0x5;
+	       if ((getb(off+54) & 0x0f) == 0xe) p2p=0.5;
+	       gnss = 0;
+	       sv = getb(off+34);
+             break;
+            }
+
+	    plock = getb(off+52);
+
+	    if ( plock != plocked ) 
+	    {
+	     continue;
+	    }
+
+	    sys = gnss2sys(gnss);
+
+	    raw->trk_raw_obs[pnum].codep=((double)getq_le(off+0))*P2_32-g2g*1000; /* DEBUG */
+	    raw->trk_raw_obs[pnum].L1=((double)getq_le(off+8))*P2_32-p2p;
+	    raw->trk_raw_obs[pnum].D1=((float)getl_le(off+16))*P2_12;
+	    raw->trk_raw_obs[pnum].plockt=getw_le(off+30);
+	    raw->trk_raw_obs[pnum].mesqi=getb(off+41);
+	    raw->trk_raw_obs[pnum].cno=getw_le(off+32);
+	    raw->trk_raw_obs[pnum].sat=satno(sys,sv);
+	    raw->trk_raw_obs[pnum].bits=((getb(off+52))<<24)+((getb(off+53))<<16)+((getb(off+54))<<8)+getb(off+55);
+
+	    pnum++;
+	}
+	raw->rnx_nchan=pnum;
+
+ return 0;
+}
+

@@ -255,6 +567,11 @@
     switch (type) {
         case ID_RXMRAW : return decode_rxmraw(raw);
         case ID_RXMSFRB: return decode_rxmsfrb(raw);
+
+        case ID_NAVTIME: return decode_navtime(raw);
+        case ID_NAVCLOCK:return decode_makeraw(raw);
+        case ID_TRKMEAS: return decode_trkmeas(raw);
+        case ID_TRKTRKD5:return decode_trkd5(raw);
     }
     return 0;
 }

Last edited by usm78-gis (2014-06-22 23:33:28)

Offline

#1274 2014-06-22 23:47:46

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,464

Re: RTKlib/постпроцессинг

-1

Last edited by usm78-gis (2016-11-27 14:53:21)

Offline

#1275 2014-06-25 22:54:22

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,373

Re: RTKlib/постпроцессинг

usm78-gis wrote:

Wholesale Navilock retailers started to dump glonass receivers, NL-682MP costs 21,07€
http://www.amazon.de/Navilock-ANTENNE-G … /B008LFAOI

Самое печальное, что на amazon.de доставка только по Германии sad Не смог найти нигде с доставкой по европе по такой цене (есть на ебее за 55 евро только).

Last edited by SviMik (2014-06-25 22:55:22)

Offline

Board footer

Powered by FluxBB