Changeset 2699 in ntrip for trunk/rtcm3torinex


Ignore:
Timestamp:
Nov 15, 2010, 2:08:27 PM (10 years ago)
Author:
stoecker
Message:

fix bugs in Galileo code

Location:
trunk/rtcm3torinex/lib
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/rtcm3torinex/lib/rtcm3torinex.c

    r2668 r2699  
    955955        };
    956956
    957         int sys = RTCM3_MSM_GPS, i, count, j, old = 0, wasnoamb = 0;
     957        int sys = RTCM3_MSM_GPS, i=0, count, j, old = 0, wasnoamb = 0;
    958958        int syncf, sigmask, numsat = 0, numsig = 0, numcells;
    959959        uint64_t satmask, cellmask, ui;
     
    11711171              {
    11721172                int fullsat = sys+RTCM3_MSM_NUMSAT-i-1, num;
     1173                /* FIXME: workaround for GIOVE */
     1174                if(fullsat >= PRN_GALILEO_START && fullsat <= PRN_GALILEO_START+2)
     1175                  fullsat += PRN_GIOVE_START-PRN_GALILEO_START;
    11731176                for(num = 0; num < gnss->numsats
    11741177                && fullsat != gnss->satellites[num]; ++num)
     
    13691372  const char *typesofobsR; /* should not be modified outside */
    13701373  const char *typesofobsS; /* should not be modified outside */
     1374  const char *typesofobsE; /* should not be modified outside */
    13711375  const char *timeoffirstobs; /* should not be modified outside */
    13721376};
     
    16321636      Parser->datapos##a[Parser->numdatatypes##a] = GNSSENTRY_##b##DATA; \
    16331637      ++Parser->numdatatypes##a; \
    1634       snprintf(tbuffer+tbufferpos, sizeof(tbuffer)-tbufferpos, " "#c); \
     1638      snprintf(tbuffer+tbufferpos, sizeof(tbuffer)-tbufferpos, " %-3s", #c); \
    16351639      tbufferpos += 4; \
    16361640    }
     
    16461650    CHECKFLAGSNEW(GPS, D1C, D1C)
    16471651    CHECKFLAGSNEW(GPS, S1C, S1C)
    1648     CHECKFLAGSNEW(GPS, P1,  C1P)
    1649     CHECKFLAGSNEW(GPS, L1P, L1P)
    1650     CHECKFLAGSNEW(GPS, D1P, D1P)
    1651     CHECKFLAGSNEW(GPS, S1P, S1P)
     1652    CHECKFLAGSNEW(GPS, P1,  C1W)
     1653    CHECKFLAGSNEW(GPS, L1P, L1W)
     1654    CHECKFLAGSNEW(GPS, D1P, D1W)
     1655    CHECKFLAGSNEW(GPS, S1P, S1W)
    16521656
    16531657    hdata.data.named.typesofobsS = buffer;
     
    16641668    CHECKFLAGSNEW(GPS, D2C, D2X)
    16651669    CHECKFLAGSNEW(GPS, S2C, S2X)
     1670    CHECKFLAGSNEW(GPS, C5,  C5)
     1671    CHECKFLAGSNEW(GPS, L5,  L5)
     1672    CHECKFLAGSNEW(GPS, D5,  D5)
     1673    CHECKFLAGSNEW(GPS, S5,  S5)
    16661674
    16671675    hdata.data.named.typesofobsG = buffer;
     
    16981706    "R  %3d%-52.52s  SYS / # / OBS TYPES", Parser->numdatatypesGLO, tbuffer);
    16991707    if(Parser->numdatatypesGLO>13)
     1708    {
     1709      i += snprintf(buffer+i-1, buffersize,
     1710      "\n      %-52.52s  SYS / # / OBS TYPES", tbuffer+13*4);
     1711    }
     1712    buffer += i; buffersize -= i;
     1713
     1714    tbufferpos = 0;
     1715
     1716    CHECKFLAGSNEW(GAL, C1,   C1)
     1717    CHECKFLAGSNEW(GAL, L1C,  L1)
     1718    CHECKFLAGSNEW(GAL, D1C,  D1)
     1719    CHECKFLAGSNEW(GAL, S1C,  S1)
     1720    CHECKFLAGSNEW(GAL, C6,   C6)
     1721    CHECKFLAGSNEW(GAL, L6,   L6)
     1722    CHECKFLAGSNEW(GAL, D6,   D6)
     1723    CHECKFLAGSNEW(GAL, S6,   S6)
     1724    CHECKFLAGSNEW(GAL, C5,   C5)
     1725    CHECKFLAGSNEW(GAL, L5,   L5)
     1726    CHECKFLAGSNEW(GAL, D5,   D5)
     1727    CHECKFLAGSNEW(GAL, S5,   S5)
     1728    CHECKFLAGSNEW(GAL, C5B,  C7)
     1729    CHECKFLAGSNEW(GAL, L5B,  L7)
     1730    CHECKFLAGSNEW(GAL, D5B,  D7)
     1731    CHECKFLAGSNEW(GAL, S5B,  S7)
     1732    CHECKFLAGSNEW(GAL, C5AB, C8)
     1733    CHECKFLAGSNEW(GAL, L5AB, L8)
     1734    CHECKFLAGSNEW(GAL, D5AB, D8)
     1735    CHECKFLAGSNEW(GAL, S5AB, S8)
     1736
     1737    hdata.data.named.typesofobsE = buffer;
     1738    i = 1+snprintf(buffer, buffersize,
     1739    "E  %3d%-52.52s  SYS / # / OBS TYPES", Parser->numdatatypesGAL, tbuffer);
     1740    if(Parser->numdatatypesGAL>13)
    17001741    {
    17011742      i += snprintf(buffer+i-1, buffersize,
     
    20872128          for(i = 0; i < Parser->Data.numsats; ++i)
    20882129          {
    2089             int glo = 0;
     2130            int glo = 0, gal = 0;
    20902131            if(Parser->Data.satellites[i] <= PRN_GPS_END)
    20912132              RTCM3Text("G%02d", Parser->Data.satellites[i]);
     
    20952136              RTCM3Text("R%02d", Parser->Data.satellites[i] - (PRN_GLONASS_START-1));
    20962137              glo = 1;
     2138            }
     2139            else if(Parser->Data.satellites[i] >= PRN_GALILEO_START
     2140            && Parser->Data.satellites[i] <= PRN_GALILEO_END)
     2141            {
     2142              RTCM3Text("E%02d", Parser->Data.satellites[i] - (PRN_GALILEO_START-1));
     2143              gal = 1;
     2144            }
     2145            else if(Parser->Data.satellites[i] >= PRN_GIOVE_START
     2146            && Parser->Data.satellites[i] <= PRN_GIOVE_END)
     2147            {
     2148              RTCM3Text("E%02d", Parser->Data.satellites[i] - (PRN_GIOVE_START-PRN_GIOVE_OFFSET));
     2149              gal = 1;
    20972150            }
    20982151            else if(Parser->Data.satellites[i] >= PRN_WAAS_START
     
    21352188              }
    21362189            }
     2190            else if(gal)
     2191            {
     2192              for(j = 0; j < Parser->numdatatypesGAL; ++j)
     2193              {
     2194                int df = Parser->dataflagGAL[j];
     2195                int pos = Parser->dataposGAL[j];
     2196                if((Parser->Data.dataflags[i] & df)
     2197                && !isnan(Parser->Data.measdata[i][pos])
     2198                && !isinf(Parser->Data.measdata[i][pos]))
     2199                {
     2200                  char lli = ' ';
     2201                  char snr = ' ';
     2202                  if(df & (GNSSDF_L1CDATA|GNSSDF_L1PDATA))
     2203                  {
     2204                    if(Parser->Data.dataflags2[i] & GNSSDF2_LOCKLOSSL1)
     2205                      lli = '1';
     2206                    snr = '0'+Parser->Data.snrL1[i];
     2207                  }
     2208                  if(df & GNSSDF_L6DATA)
     2209                  {
     2210                    if(Parser->Data.dataflags2[i] & GNSSDF2_LOCKLOSSE6)
     2211                      lli = '1';
     2212                    snr = ' ';
     2213                  }
     2214                  if(df & GNSSDF_L5DATA)
     2215                  {
     2216                    if(Parser->Data.dataflags2[i] & GNSSDF2_LOCKLOSSL5)
     2217                      lli = '1';
     2218                    snr = ' ';
     2219                  }
     2220                  if(df & GNSSDF_L5BDATA)
     2221                  {
     2222                    if(Parser->Data.dataflags2[i] & GNSSDF2_LOCKLOSSE5B)
     2223                      lli = '1';
     2224                    snr = ' ';
     2225                  }
     2226                  if(df & GNSSDF_L5ABDATA)
     2227                  {
     2228                    if(Parser->Data.dataflags2[i] & GNSSDF2_LOCKLOSSE5AB)
     2229                      lli = '1';
     2230                    snr = ' ';
     2231                  }
     2232                  RTCM3Text("%14.3f%c%c",
     2233                  Parser->Data.measdata[i][pos],lli,snr);
     2234                }
     2235                else
     2236                { /* no or illegal data */
     2237                  RTCM3Text("                ");
     2238                }
     2239              }
     2240            }
    21372241            else
    21382242            {
     
    21582262                      lli = '1';
    21592263                    snr = '0'+Parser->Data.snrL2[i];
     2264                  }
     2265                  if(df & GNSSDF_L5DATA)
     2266                  {
     2267                    if(Parser->Data.dataflags2[i] & GNSSDF2_LOCKLOSSL5)
     2268                      lli = '1';
     2269                    snr = ' ';
    21602270                  }
    21612271                  RTCM3Text("%14.3f%c%c",
  • trunk/rtcm3torinex/lib/rtcm3torinex.h

    r2660 r2699  
    324324  int    dataposGLO[RINEXENTRY_NUMBER]; /* only used for RINEX3 */
    325325  int    dataflagGLO[RINEXENTRY_NUMBER];
     326  int    dataposGAL[RINEXENTRY_NUMBER]; /* only used for RINEX3 */
     327  int    dataflagGAL[RINEXENTRY_NUMBER];
    326328  int    numdatatypesGPS;
    327329  int    numdatatypesGLO; /* only used for RINEX3 */
     330  int    numdatatypesGAL; /* only used for RINEX3 */
    328331  int    validwarning;
    329332  int    init;
Note: See TracChangeset for help on using the changeset viewer.