Changeset 4367 in ntrip for trunk/rtcm3torinex


Ignore:
Timestamp:
Jun 28, 2012, 2:11:09 PM (7 years ago)
Author:
stoecker
Message:

first set of changes for better multiplattform support

Location:
trunk/rtcm3torinex/lib
Files:
2 edited

Legend:

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

    r4365 r4367  
    227227static const int months[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
    228228static const struct leapseconds leap[] = {
    229 /*{31, 12, 1971, 11},*/
     229/*{31, 12, 1971, 10},*/
     230/*{30, 06, 1972, 11},*/
    230231/*{31, 12, 1972, 12},*/
    231232/*{31, 12, 1973, 13},*/
     
    904905      }
    905906      break;
    906     case 1071: case 1081: case 1091:
    907     case 1072: case 1082: case 1092:
    908     case 1073: case 1083: case 1093:
    909     case 1074: case 1084: case 1094:
    910     case 1075: case 1085: case 1095:
    911     case 1076: case 1086: case 1096:
    912     case 1077: case 1087: case 1097:
     907    case 1071: case 1081: case 1091: case 1101: case 1111: case 1121:
     908    case 1072: case 1082: case 1092: case 1102: case 1112: case 1122:
     909    case 1073: case 1083: case 1093: case 1103: case 1113: case 1123:
     910    case 1074: case 1084: case 1094: case 1104: case 1114: case 1124:
     911    case 1075: case 1085: case 1095: case 1105: case 1115: case 1125:
     912    case 1076: case 1086: case 1096: case 1106: case 1116: case 1126:
     913    case 1077: case 1087: case 1097: case 1107: case 1117: case 1127:
    913914      if(handle->GPSWeek)
    914915      {
     
    967968          {0,0,0,0,0,0,0},
    968969          {0,0,0,0,0,0,0},
    969           {GNSSENTRY_C1DATA,GNSSENTRY_L1CDATA,GNSSENTRY_D1CDATA,
    970           GNSSENTRY_S1CDATA,GNSSDF2_LOCKLOSSL1,0.0,"1S"},
    971           {GNSSENTRY_C1DATA,GNSSENTRY_L1CDATA,GNSSENTRY_D1CDATA,
    972           GNSSENTRY_S1CDATA,GNSSDF2_LOCKLOSSL1,0.0,"1L"},
    973           {GNSSENTRY_C1DATA,GNSSENTRY_L1CDATA,GNSSENTRY_D1CDATA,
    974           GNSSENTRY_S1CDATA,GNSSDF2_LOCKLOSSL1,0.0,"1X"}
     970          {GNSSENTRY_C1NDATA,GNSSENTRY_L1NDATA,GNSSENTRY_D1NDATA,
     971          GNSSENTRY_S1NDATA,GNSSDF2_LOCKLOSSL1,GPS_WAVELENGTH_L1,"1S"},
     972          {GNSSENTRY_C1NDATA,GNSSENTRY_L1NDATA,GNSSENTRY_D1NDATA,
     973          GNSSENTRY_S1NDATA,GNSSDF2_LOCKLOSSL1,GPS_WAVELENGTH_L1,"1L"},
     974          {GNSSENTRY_C1NDATA,GNSSENTRY_L1NDATA,GNSSENTRY_D1NDATA,
     975          GNSSENTRY_S1NDATA,GNSSDF2_LOCKLOSSL1,GPS_WAVELENGTH_L1,"1X"}
    975976        };
    976977        /* NOTE: Uses 0.0, 1.0 for wavelength as sat index dependence is done later! */
     
    10591060          {GNSSENTRY_C5DATA,GNSSENTRY_L5DATA,GNSSENTRY_D5DATA,
    10601061          GNSSENTRY_S5DATA,GNSSDF2_LOCKLOSSL5,GAL_WAVELENGTH_E5A,"5X"}/**/,
     1062          {0,0,0,0,0,0,0},
     1063          {0,0,0,0,0,0,0},
     1064          {0,0,0,0,0,0,0},
     1065          {0,0,0,0,0,0,0},
     1066          {0,0,0,0,0,0,0},
     1067          {0,0,0,0,0,0,0},
     1068          {0,0,0,0,0,0,0},
     1069          {0,0,0,0,0,0,0},
     1070        };
     1071        struct CodeData qzss[RTCM3_MSM_NUMSIG] =
     1072        {
     1073          {0,0,0,0,0,0,0},
     1074          {GNSSENTRY_C1DATA,GNSSENTRY_L1CDATA,GNSSENTRY_D1CDATA,
     1075          GNSSENTRY_S1CDATA,GNSSDF2_LOCKLOSSL1,GPS_WAVELENGTH_L1,"1C"},
     1076          {0,0,0,0,0,0,0},
     1077          {0,0,0,0,0,0,0},
     1078          {0,0,0,0,0,0,0},
     1079          {GNSSENTRY_CSAIFDATA,GNSSENTRY_LSAIFDATA,GNSSENTRY_DSAIFDATA,
     1080          GNSSENTRY_SSAIFDATA,GNSSDF2_LOCKLOSSSAIF,GPS_WAVELENGTH_L1,"1Z"},
     1081          {0,0,0,0,0,0,0},
     1082          {0,0,0,0,0,0,0},
     1083          {GNSSENTRY_CLEXDATA,GNSSENTRY_LLEXDATA,GNSSENTRY_DLEXDATA,
     1084          GNSSENTRY_SLEXDATA,GNSSDF2_LOCKLOSSLEX,QZSS_WAVELENGTH_LEX,"6S"},
     1085          {GNSSENTRY_CLEXDATA,GNSSENTRY_LLEXDATA,GNSSENTRY_DLEXDATA,
     1086          GNSSENTRY_SLEXDATA,GNSSDF2_LOCKLOSSLEX,QZSS_WAVELENGTH_LEX,"6L"},
     1087          {GNSSENTRY_CLEXDATA,GNSSENTRY_LLEXDATA,GNSSENTRY_DLEXDATA,
     1088          GNSSENTRY_SLEXDATA,GNSSDF2_LOCKLOSSLEX,QZSS_WAVELENGTH_LEX,"6X"},
     1089          {GNSSENTRY_C1NDATA,GNSSENTRY_L1NDATA,GNSSENTRY_D1NDATA,
     1090          GNSSENTRY_S1NDATA,GNSSDF2_LOCKLOSSL1,GPS_WAVELENGTH_L1,"1D"},
     1091          {GNSSENTRY_C1NDATA,GNSSENTRY_L1NDATA,GNSSENTRY_D1NDATA,
     1092          GNSSENTRY_S1NDATA,GNSSDF2_LOCKLOSSL1,GPS_WAVELENGTH_L1,"1P"},
     1093          {GNSSENTRY_C1NDATA,GNSSENTRY_L1NDATA,GNSSENTRY_D1NDATA,
     1094          GNSSENTRY_S1NDATA,GNSSDF2_LOCKLOSSL1,GPS_WAVELENGTH_L1,"1X"},
     1095          {GNSSENTRY_C2DATA,GNSSENTRY_L2CDATA,GNSSENTRY_D2CDATA,
     1096          GNSSENTRY_S2CDATA,GNSSDF2_LOCKLOSSL2,GPS_WAVELENGTH_L2,"2S"},
     1097          {GNSSENTRY_C2DATA,GNSSENTRY_L2CDATA,GNSSENTRY_D2CDATA,
     1098          GNSSENTRY_S2CDATA,GNSSDF2_LOCKLOSSL2,GPS_WAVELENGTH_L2,"2L"},
     1099          {GNSSENTRY_C2DATA,GNSSENTRY_L2CDATA,GNSSENTRY_D2CDATA,
     1100          GNSSENTRY_S2CDATA,GNSSDF2_LOCKLOSSL2,GPS_WAVELENGTH_L2,"2X"},
     1101          {0,0,0,0,0,0,0},
     1102          {0,0,0,0,0,0,0},
     1103          {0,0,0,0,0,0,0},
     1104          {0,0,0,0,0,0,0},
     1105          {GNSSENTRY_C5DATA,GNSSENTRY_L5DATA,GNSSENTRY_D5DATA,
     1106          GNSSENTRY_S5DATA,GNSSDF2_LOCKLOSSL5,GPS_WAVELENGTH_L5,"5I"},
     1107          {GNSSENTRY_C5DATA,GNSSENTRY_L5DATA,GNSSENTRY_D5DATA,
     1108          GNSSENTRY_S5DATA,GNSSDF2_LOCKLOSSL5,GPS_WAVELENGTH_L5,"5Q"},
     1109          {GNSSENTRY_C5DATA,GNSSENTRY_L5DATA,GNSSENTRY_D5DATA,
     1110          GNSSENTRY_S5DATA,GNSSDF2_LOCKLOSSL5,GPS_WAVELENGTH_L5,"5X"},
     1111          {0,0,0,0,0,0,0},
     1112          {0,0,0,0,0,0,0},
     1113          {0,0,0,0,0,0,0},
     1114          {0,0,0,0,0,0,0},
     1115          {0,0,0,0,0,0,0},
     1116          {0,0,0,0,0,0,0},
     1117          {0,0,0,0,0,0,0}
     1118        };
     1119        struct CodeData compass[RTCM3_MSM_NUMSIG] =
     1120        {
     1121          {0,0,0,0,0,0,0},
     1122          {GNSSENTRY_CB1DATA,GNSSENTRY_LB1DATA,GNSSENTRY_DB1DATA,
     1123          GNSSENTRY_SB1DATA,GNSSDF2_LOCKLOSSB1,COMPASS_WAVELENGTH_B1,"2I"},
     1124          {0,0,0,0,0,0,0},
     1125          {0,0,0,0,0,0,0},
     1126          {0,0,0,0,0,0,0},
     1127          {0,0,0,0,0,0,0},
     1128          {0,0,0,0,0,0,0},
     1129          {GNSSENTRY_CB3DATA,GNSSENTRY_LB3DATA,GNSSENTRY_DB3DATA,
     1130          GNSSENTRY_SB3DATA,GNSSDF2_LOCKLOSSB3,COMPASS_WAVELENGTH_B3,"6I"},
     1131          {0,0,0,0,0,0,0},
     1132          {0,0,0,0,0,0,0},
     1133          {0,0,0,0,0,0,0},
     1134          {0,0,0,0,0,0,0},
     1135          {0,0,0,0,0,0,0},
     1136          {GNSSENTRY_CB2DATA,GNSSENTRY_LB2DATA,GNSSENTRY_DB2DATA,
     1137          GNSSENTRY_SB2DATA,GNSSDF2_LOCKLOSSB2,COMPASS_WAVELENGTH_B2,"7I"},
     1138          {0,0,0,0,0,0,0},
     1139          {0,0,0,0,0,0,0},
     1140          {0,0,0,0,0,0,0},
     1141          {0,0,0,0,0,0,0},
     1142          {0,0,0,0,0,0,0},
     1143          {0,0,0,0,0,0,0},
     1144          {0,0,0,0,0,0,0},
     1145          {0,0,0,0,0,0,0},
     1146          {0,0,0,0,0,0,0},
     1147          {0,0,0,0,0,0,0},
    10611148          {0,0,0,0,0,0,0},
    10621149          {0,0,0,0,0,0,0},
     
    10821169
    10831170        SKIPBITS(12)
    1084         if(type >= 1091)
     1171        if(type >= 1121)
     1172          sys = RTCM3_MSM_COMPASS;
     1173        else if(type >= 1111)
     1174          sys = RTCM3_MSM_QZSS;
     1175        else if(type >= 1101)
     1176          sys = RTCM3_MSM_SBAS;
     1177        else if(type >= 1091)
    10851178          sys = RTCM3_MSM_GALILEO;
    10861179        else if(type >= 1081)
     
    10891182        switch(sys)
    10901183        {
     1184        case RTCM3_MSM_COMPASS:
    10911185        case RTCM3_MSM_GALILEO: /* use DF004 instead of DF248 */
     1186        case RTCM3_MSM_QZSS:
     1187        case RTCM3_MSM_SBAS:
    10921188        case RTCM3_MSM_GPS:
    10931189          GETBITS(i,30)
     
    12841380              switch(sys)
    12851381              {
    1286               case RTCM3_MSM_GPS: cd = gps[RTCM3_MSM_NUMSIG-j-1];
     1382              case RTCM3_MSM_QZSS:
     1383                cd = qzss[RTCM3_MSM_NUMSIG-j-1];
     1384                wl = cd.wl;
     1385                break;
     1386              case RTCM3_MSM_COMPASS:
     1387                cd = compass[RTCM3_MSM_NUMSIG-j-1];
     1388                wl = cd.wl;
     1389                break;
     1390              case RTCM3_MSM_GPS:  case RTCM3_MSM_SBAS:
     1391                cd = gps[RTCM3_MSM_NUMSIG-j-1];
    12871392                wl = cd.wl;
    12881393                break;
     
    13231428                if(num == gnss->numsats)
    13241429                  gnss->satellites[gnss->numsats++] = fullsat;
     1430
     1431                gnss->codetype[num] = cd.code;
    13251432
    13261433                switch(type % 10)
     
    15181625  const char *typesofobsS; /* should not be modified outside */
    15191626  const char *typesofobsE; /* should not be modified outside */
     1627  const char *typesofobsC; /* should not be modified outside */
     1628  const char *typesofobsJ; /* should not be modified outside */
    15201629  const char *timeoffirstobs; /* should not be modified outside */
    15211630};
     
    16021711  return 1+snprintf(buffer, buffersize,
    16031712  rinex3 ?
    1604   "RTCM3TORINEX %-7.7s%-20.20s%04d%02d%02d %02d%02d%02d UTC "
     1713  "RTCM3TOR. %-10.10s%-20.20s%04d%02d%02d %02d%02d%02d UTC "
    16051714  "PGM / RUN BY / DATE" :
    1606   "RTCM3TORINEX %-7.7s%-20.20s%04d-%02d-%02d %02d:%02d    "
     1715  "RTCM3TOR. %-10.10s%-20.20s%04d-%02d-%02d %02d:%02d    "
    16071716  "PGM / RUN BY / DATE", revisionstr, user, 1900+t2->tm_year,
    16081717  t2->tm_mon+1, t2->tm_mday, t2->tm_hour, t2->tm_min, t2->tm_sec);
     
    17051814    CHECKFLAGS(D5,D5)
    17061815    CHECKFLAGS(S5,S5)
    1707     CHECKFLAGS(C5AB,C5AB)
    1708     CHECKFLAGS(L5AB,L5AB)
    1709     CHECKFLAGS(D5AB,D5AB)
    1710     CHECKFLAGS(S5AB,S5AB)
    1711     CHECKFLAGS(C5B,C5B)
    1712     CHECKFLAGS(L5B,L5B)
    1713     CHECKFLAGS(D5B,D5B)
    1714     CHECKFLAGS(S5B,S5B)
     1816    CHECKFLAGS(C5AB,C8)
     1817    CHECKFLAGS(L5AB,L8)
     1818    CHECKFLAGS(D5AB,D8)
     1819    CHECKFLAGS(S5AB,S8)
     1820    CHECKFLAGS(C5B,C7)
     1821    CHECKFLAGS(L5B,L7)
     1822    CHECKFLAGS(D5B,D7)
     1823    CHECKFLAGS(S5B,S7)
    17151824    CHECKFLAGS(C6,C6)
    17161825    CHECKFLAGS(L6,L6)
     
    17731882  "WAVELENGTH FACT L1/2";
    17741883
     1884  hdata.numheaders = 18;
     1885
    17751886  if(Parser->rinex3)
    17761887  {
     
    17991910    CHECKFLAGSNEW(GPS, D1P, D1W)
    18001911    CHECKFLAGSNEW(GPS, S1P, S1W)
     1912    CHECKFLAGSNEW(GPS, C5,  C5)
     1913    CHECKFLAGSNEW(GPS, L5,  L5)
     1914    CHECKFLAGSNEW(GPS, D5,  D5)
     1915    CHECKFLAGSNEW(GPS, S5,  S5)
    18011916
    18021917    hdata.data.named.typesofobsS = buffer;
     
    18131928    CHECKFLAGSNEW(GPS, D2C, D2X)
    18141929    CHECKFLAGSNEW(GPS, S2C, S2X)
    1815     CHECKFLAGSNEW(GPS, C5,  C5)
    1816     CHECKFLAGSNEW(GPS, L5,  L5)
    1817     CHECKFLAGSNEW(GPS, D5,  D5)
    1818     CHECKFLAGSNEW(GPS, S5,  S5)
     1930    CHECKFLAGSNEW(GPS, C1N, C1X)
     1931    CHECKFLAGSNEW(GPS, L1N, L1X)
     1932    CHECKFLAGSNEW(GPS, D1N, D1X)
     1933    CHECKFLAGSNEW(GPS, S1N, S1X)
    18191934
    18201935    hdata.data.named.typesofobsG = buffer;
     
    18841999    "E  %3d%-52.52s  SYS / # / OBS TYPES", Parser->numdatatypesGAL, tbuffer);
    18852000    if(Parser->numdatatypesGAL>13)
     2001    {
     2002      i += snprintf(buffer+i-1, buffersize,
     2003      "\n      %-52.52s  SYS / # / OBS TYPES", tbuffer+13*4);
     2004    }
     2005    buffer += i; buffersize -= i;
     2006
     2007    tbufferpos = 0;
     2008
     2009    CHECKFLAGSNEW(COM, CB1,  C2I)
     2010    CHECKFLAGSNEW(COM, LB1,  L2I)
     2011    CHECKFLAGSNEW(COM, DB1,  D2I)
     2012    CHECKFLAGSNEW(COM, SB1,  S2I)
     2013    CHECKFLAGSNEW(COM, CB2,  C7I)
     2014    CHECKFLAGSNEW(COM, LB2,  L7I)
     2015    CHECKFLAGSNEW(COM, DB2,  D7I)
     2016    CHECKFLAGSNEW(COM, SB2,  S7I)
     2017    CHECKFLAGSNEW(COM, CB3,  C6I)
     2018    CHECKFLAGSNEW(COM, LB3,  L6I)
     2019    CHECKFLAGSNEW(COM, DB3,  D6I)
     2020    CHECKFLAGSNEW(COM, SB3,  S6I)
     2021
     2022    hdata.data.named.typesofobsC = buffer;
     2023    i = 1+snprintf(buffer, buffersize,
     2024    "C  %3d%-52.52s  SYS / # / OBS TYPES", Parser->numdatatypesCOM, tbuffer);
     2025    if(Parser->numdatatypesCOM>13)
     2026    {
     2027      i += snprintf(buffer+i-1, buffersize,
     2028      "\n      %-52.52s  SYS / # / OBS TYPES", tbuffer+13*4);
     2029    }
     2030    buffer += i; buffersize -= i;
     2031
     2032    tbufferpos = 0;
     2033
     2034    CHECKFLAGSNEW(QZS, C1,  C1C)
     2035    CHECKFLAGSNEW(QZS, L1C, L1C)
     2036    CHECKFLAGSNEW(QZS, D1C, D1C)
     2037    CHECKFLAGSNEW(QZS, S1C, S1C)
     2038
     2039    CHECKFLAGSNEW(QZS, CSAIF, C1Z)
     2040    CHECKFLAGSNEW(QZS, LSAIF, L1Z)
     2041    CHECKFLAGSNEW(QZS, DSAIF, D1Z)
     2042    CHECKFLAGSNEW(QZS, SSAIF, S1Z)
     2043
     2044    CHECKFLAGSNEW(QZS, C1N, C1X)
     2045    CHECKFLAGSNEW(QZS, L1N, L1X)
     2046    CHECKFLAGSNEW(QZS, D1N, D1X)
     2047    CHECKFLAGSNEW(QZS, S1N, S1X)
     2048
     2049    CHECKFLAGSNEW(QZS, C6, C6)
     2050    CHECKFLAGSNEW(QZS, L6, L6)
     2051    CHECKFLAGSNEW(QZS, D6, D6)
     2052    CHECKFLAGSNEW(QZS, S6, S6)
     2053
     2054    CHECKFLAGSNEW(QZS, C2,  C2X)
     2055    CHECKFLAGSNEW(QZS, L2C, L2X)
     2056    CHECKFLAGSNEW(QZS, D2C, D2X)
     2057    CHECKFLAGSNEW(QZS, S2C, S2X)
     2058
     2059    CHECKFLAGSNEW(QZS, C5,  C5)
     2060    CHECKFLAGSNEW(QZS, L5,  L5)
     2061    CHECKFLAGSNEW(QZS, D5,  D5)
     2062    CHECKFLAGSNEW(QZS, S5,  S5)
     2063
     2064    hdata.data.named.typesofobsJ = buffer;
     2065    i = 1+snprintf(buffer, buffersize,
     2066    "J  %3d%-52.52s  SYS / # / OBS TYPES", Parser->numdatatypesQZS, tbuffer);
     2067    if(Parser->numdatatypesQZS>13)
    18862068    {
    18872069      i += snprintf(buffer+i-1, buffersize,
     
    19392121    CHECKFLAGS(D5,D5)
    19402122    CHECKFLAGS(S5,S5)
    1941     CHECKFLAGS(C5AB,C5AB)
    1942     CHECKFLAGS(L5AB,L5AB)
    1943     CHECKFLAGS(D5AB,D5AB)
    1944     CHECKFLAGS(S5AB,S5AB)
    1945     CHECKFLAGS(C5B,C5B)
    1946     CHECKFLAGS(L5B,L5B)
    1947     CHECKFLAGS(D5B,D5B)
    1948     CHECKFLAGS(S5B,S5B)
     2123    CHECKFLAGS(C5AB,C8)
     2124    CHECKFLAGS(L5AB,L8)
     2125    CHECKFLAGS(D5AB,D8)
     2126    CHECKFLAGS(S5AB,S8)
     2127    CHECKFLAGS(C5B,C7)
     2128    CHECKFLAGS(L5B,L7)
     2129    CHECKFLAGS(D5B,D7)
     2130    CHECKFLAGS(S5B,S7)
    19492131    CHECKFLAGS(C6,C6)
    19502132    CHECKFLAGS(L6,L6)
     
    19592141      i += snprintf(buffer+i-1, buffersize,
    19602142      "\n      %-54.54s# / TYPES OF OBSERV", tbuffer+9*6);
     2143    }
     2144    if(Parser->numdatatypesGPS>18)
     2145    {
     2146      i += snprintf(buffer+i-1, buffersize,
     2147      "\n      %-54.54s# / TYPES OF OBSERV", tbuffer+18*6);
    19612148    }
    19622149    buffer += i; buffersize -= i;
     
    19752162    buffer += i; buffersize -= i;
    19762163  }
    1977 
    1978   hdata.numheaders = 15;
    19792164
    19802165  if(Parser->headerfile)
     
    22732458          for(i = 0; i < Parser->Data.numsats; ++i)
    22742459          {
    2275             int glo = 0, gal = 0;
     2460            int glo = 0, gal = 0, qzs = 0, com = 0;
    22762461            if(Parser->Data.satellites[i] <= PRN_GPS_END)
    22772462              RTCM3Text("G%02d", Parser->Data.satellites[i]);
     
    22942479              gal = 1;
    22952480            }
    2296             else if(Parser->Data.satellites[i] >= PRN_WAAS_START
    2297             && Parser->Data.satellites[i] <= PRN_WAAS_END)
    2298               RTCM3Text("S%02d", Parser->Data.satellites[i] - PRN_WAAS_START+20);
     2481            else if(Parser->Data.satellites[i] >= PRN_QZSS_START
     2482            && Parser->Data.satellites[i] <= PRN_QZSS_END)
     2483            {
     2484              RTCM3Text("J%02d", Parser->Data.satellites[i] - (PRN_QZSS_START-1));
     2485              qzs = 1;
     2486            }
     2487            else if(Parser->Data.satellites[i] >= PRN_COMPASS_START
     2488            && Parser->Data.satellites[i] <= PRN_COMPASS_END)
     2489            {
     2490              RTCM3Text("C%02d", Parser->Data.satellites[i] - (PRN_COMPASS_START-1));
     2491              com = 1;
     2492            }
     2493            else if(Parser->Data.satellites[i] >= PRN_SBAS_START
     2494            && Parser->Data.satellites[i] <= PRN_SBAS_END)
     2495              RTCM3Text("S%02d", Parser->Data.satellites[i] - PRN_SBAS_START+20);
    22992496            else
    23002497              RTCM3Text("%3d", Parser->Data.satellites[i]);
     
    23842581              }
    23852582            }
     2583            else if(com)
     2584            {
     2585              for(j = 0; j < Parser->numdatatypesCOM; ++j)
     2586              {
     2587                int df = Parser->dataflagCOM[j];
     2588                int pos = Parser->dataposCOM[j];
     2589                if((Parser->Data.dataflags[i] & df)
     2590                && !isnan(Parser->Data.measdata[i][pos])
     2591                && !isinf(Parser->Data.measdata[i][pos]))
     2592                {
     2593                  char lli = ' ';
     2594                  char snr = ' ';
     2595                  if(df & GNSSDF_LB1DATA)
     2596                  {
     2597                    if(Parser->Data.dataflags2[i] & GNSSDF2_LOCKLOSSB1)
     2598                      lli = '1';
     2599                  }
     2600                  if(df & GNSSDF_LB2DATA)
     2601                  {
     2602                    if(Parser->Data.dataflags2[i] & GNSSDF2_LOCKLOSSB2)
     2603                      lli = '1';
     2604                  }
     2605                  if(df & GNSSDF_LB3DATA)
     2606                  {
     2607                    if(Parser->Data.dataflags2[i] & GNSSDF2_LOCKLOSSB3)
     2608                      lli = '1';
     2609                  }
     2610                  RTCM3Text("%14.3f%c%c",
     2611                  Parser->Data.measdata[i][pos],lli,snr);
     2612                }
     2613                else
     2614                { /* no or illegal data */
     2615                  RTCM3Text("                ");
     2616                }
     2617              }
     2618            }
     2619            else if(qzs)
     2620            {
     2621              for(j = 0; j < Parser->numdatatypesQZS; ++j)
     2622              {
     2623                int df = Parser->dataflagQZS[j];
     2624                int pos = Parser->dataposQZS[j];
     2625                if((Parser->Data.dataflags[i] & df)
     2626                && !isnan(Parser->Data.measdata[i][pos])
     2627                && !isinf(Parser->Data.measdata[i][pos]))
     2628                {
     2629                  char lli = ' ';
     2630                  char snr = ' ';
     2631                  if(df & GNSSDF_L1CDATA)
     2632                  {
     2633                    if(Parser->Data.dataflags2[i] & GNSSDF2_LOCKLOSSL1)
     2634                      lli = '1';
     2635                    snr = '0'+Parser->Data.snrL1[i];
     2636                  }
     2637                  if(df & (GNSSDF_L2CDATA|GNSSDF_L2PDATA))
     2638                  {
     2639                    if(Parser->Data.dataflags2[i] & GNSSDF2_LOCKLOSSL2)
     2640                      lli = '1';
     2641                    snr = '0'+Parser->Data.snrL2[i];
     2642                  }
     2643                  if(df & GNSSDF_L5DATA)
     2644                  {
     2645                    if(Parser->Data.dataflags2[i] & GNSSDF2_LOCKLOSSL5)
     2646                      lli = '1';
     2647                    snr = ' ';
     2648                  }
     2649                  RTCM3Text("%14.3f%c%c",
     2650                  Parser->Data.measdata[i][pos],lli,snr);
     2651                }
     2652                else
     2653                { /* no or illegal data */
     2654                  RTCM3Text("                ");
     2655                }
     2656              }
     2657            }
    23862658            else
    23872659            {
     
    24392711              RTCM3Text("R%02d", Parser->Data.satellites[i]
    24402712              - (PRN_GLONASS_START-1));
    2441             else if(Parser->Data.satellites[i] >= PRN_WAAS_START
    2442             && Parser->Data.satellites[i] <= PRN_WAAS_END)
     2713            else if(Parser->Data.satellites[i] >= PRN_SBAS_START
     2714            && Parser->Data.satellites[i] <= PRN_SBAS_END)
    24432715              RTCM3Text("S%02d", Parser->Data.satellites[i]
    2444               - PRN_WAAS_START+20);
     2716              - PRN_SBAS_START+20);
    24452717            else if(Parser->Data.satellites[i] >= PRN_GALILEO_START
    24462718            && Parser->Data.satellites[i] <= PRN_GALILEO_END)
     
    24512723              RTCM3Text("E%02d", Parser->Data.satellites[i]
    24522724              - (PRN_GIOVE_START-PRN_GIOVE_OFFSET));
     2725            else if(Parser->Data.satellites[i] >= PRN_QZSS_START
     2726            && Parser->Data.satellites[i] <= PRN_QZSS_END)
     2727              RTCM3Text("J%02d", Parser->Data.satellites[i]
     2728              - (PRN_QZSS_START-1));
     2729            else if(Parser->Data.satellites[i] >= PRN_COMPASS_START
     2730            && Parser->Data.satellites[i] <= PRN_COMPASS_END)
     2731              RTCM3Text("C%02d", Parser->Data.satellites[i]
     2732              - (PRN_COMPASS_START-1));
    24532733            else
    24542734              RTCM3Text("%3d", Parser->Data.satellites[i]);
     
    24682748                RTCM3Text("R%02d", Parser->Data.satellites[i]
    24692749                - (PRN_GLONASS_START-1));
    2470               else if(Parser->Data.satellites[i] >= PRN_WAAS_START
    2471               && Parser->Data.satellites[i] <= PRN_WAAS_END)
     2750              else if(Parser->Data.satellites[i] >= PRN_SBAS_START
     2751              && Parser->Data.satellites[i] <= PRN_SBAS_END)
    24722752                RTCM3Text("S%02d", Parser->Data.satellites[i]
    2473                 - PRN_WAAS_START+20);
     2753                - PRN_SBAS_START+20);
    24742754              else if(Parser->Data.satellites[i] >= PRN_GALILEO_START
    24752755              && Parser->Data.satellites[i] <= PRN_GALILEO_END)
     
    24802760                RTCM3Text("E%02d", Parser->Data.satellites[i]
    24812761                - (PRN_GIOVE_START-PRN_GIOVE_OFFSET));
     2762              else if(Parser->Data.satellites[i] >= PRN_QZSS_START
     2763              && Parser->Data.satellites[i] <= PRN_QZSS_END)
     2764                RTCM3Text("J%02d", Parser->Data.satellites[i]
     2765                - (PRN_QZSS_START-1));
     2766              else if(Parser->Data.satellites[i] >= PRN_COMPASS_START
     2767              && Parser->Data.satellites[i] <= PRN_COMPASS_END)
     2768                RTCM3Text("C%02d", Parser->Data.satellites[i]
     2769                - (PRN_COMPASS_START-1));
    24822770              else
    24832771                RTCM3Text("%3d", Parser->Data.satellites[i]);
  • trunk/rtcm3torinex/lib/rtcm3torinex.h

    r2849 r4367  
    3636#define PRN_GALILEO_START         71
    3737#define PRN_GALILEO_END           100
    38 #define PRN_WAAS_START            120
    39 #define PRN_WAAS_END              138
     38#define PRN_SBAS_START            120
     39#define PRN_SBAS_END              138
    4040#define PRN_GIOVE_START           139
    4141#define PRN_GIOVE_END             140
     42#define PRN_COMPASS_START         141
     43#define PRN_COMPASS_END           170
     44#define PRN_QZSS_START            193
     45#define PRN_QZSS_END              202
    4246
    4347#define PRN_GLONASS_NUM           (PRN_GLONASS_END-PRN_GLONASS_START+1)
     
    5155#define RTCM3_MSM_GLONASS PRN_GLONASS_START
    5256#define RTCM3_MSM_GALILEO PRN_GALILEO_START
    53 
    54 #define GNSSENTRY_C1DATA     0
    55 #define GNSSENTRY_C2DATA     1
    56 #define GNSSENTRY_P1DATA     2
    57 #define GNSSENTRY_P2DATA     3
    58 #define GNSSENTRY_L1CDATA    4
    59 #define GNSSENTRY_L1PDATA    5
    60 #define GNSSENTRY_L2CDATA    6
    61 #define GNSSENTRY_L2PDATA    7
    62 #define GNSSENTRY_D1CDATA    8
    63 #define GNSSENTRY_D1PDATA    9
    64 #define GNSSENTRY_D2CDATA    10
    65 #define GNSSENTRY_D2PDATA    11
    66 #define GNSSENTRY_S1CDATA    12
    67 #define GNSSENTRY_S1PDATA    13
    68 #define GNSSENTRY_S2CDATA    14
    69 #define GNSSENTRY_S2PDATA    15
    70 
    71 #define GNSSENTRY_C5DATA     16
    72 #define GNSSENTRY_L5DATA     17
    73 #define GNSSENTRY_D5DATA     18
    74 #define GNSSENTRY_S5DATA     19
    75 #define GNSSENTRY_C6DATA     20
    76 #define GNSSENTRY_L6DATA     21
    77 #define GNSSENTRY_D6DATA     22
    78 #define GNSSENTRY_S6DATA     23
    79 #define GNSSENTRY_C5BDATA    24
    80 #define GNSSENTRY_L5BDATA    25
    81 #define GNSSENTRY_D5BDATA    26
    82 #define GNSSENTRY_S5BDATA    27
    83 #define GNSSENTRY_C5ABDATA   28
    84 #define GNSSENTRY_L5ABDATA   29
    85 #define GNSSENTRY_D5ABDATA   30
    86 #define GNSSENTRY_S5ABDATA   31
    87 
    88 #define GNSSENTRY_NUMBER     32 /* number of types!!! */
     57#define RTCM3_MSM_SBAS    PRN_SBAS_START
     58#define RTCM3_MSM_QZSS    PRN_QZSS_START
     59#define RTCM3_MSM_COMPASS PRN_COMPASS_START
     60
     61#define GNSSENTRY_CODE    0
     62#define GNSSENTRY_PHASE   1
     63#define GNSSENTRY_DOPPLER 2
     64#define GNSSENTRY_SNR     3
     65
     66#define GNSSENTRY_C1DATA     ((0<<2)+GNSSENTRY_CODE)
     67#define GNSSENTRY_L1CDATA    ((0<<2)+GNSSENTRY_PHASE)
     68#define GNSSENTRY_D1CDATA    ((0<<2)+GNSSENTRY_DOPPLER)
     69#define GNSSENTRY_S1CDATA    ((0<<2)+GNSSENTRY_SNR)
     70
     71#define GNSSENTRY_C2DATA     ((1<<2)+GNSSENTRY_CODE)
     72#define GNSSENTRY_L2CDATA    ((1<<2)+GNSSENTRY_PHASE)
     73#define GNSSENTRY_D2CDATA    ((1<<2)+GNSSENTRY_DOPPLER)
     74#define GNSSENTRY_S2CDATA    ((1<<2)+GNSSENTRY_SNR)
     75
     76#define GNSSENTRY_CB1DATA    GNSSENTRY_C2DATA
     77#define GNSSENTRY_LB1DATA    GNSSENTRY_L2CDATA
     78#define GNSSENTRY_DB1DATA    GNSSENTRY_D2CDATA
     79#define GNSSENTRY_SB1DATA    GNSSENTRY_S2CDATA
     80
     81#define GNSSENTRY_P1DATA     ((2<<2)+GNSSENTRY_CODE)
     82#define GNSSENTRY_L1PDATA    ((2<<2)+GNSSENTRY_PHASE)
     83#define GNSSENTRY_D1PDATA    ((2<<2)+GNSSENTRY_DOPPLER)
     84#define GNSSENTRY_S1PDATA    ((2<<2)+GNSSENTRY_SNR)
     85
     86#define GNSSENTRY_P2DATA     ((3<<2)+GNSSENTRY_CODE)
     87#define GNSSENTRY_L2PDATA    ((3<<2)+GNSSENTRY_PHASE)
     88#define GNSSENTRY_D2PDATA    ((3<<2)+GNSSENTRY_DOPPLER)
     89#define GNSSENTRY_S2PDATA    ((3<<2)+GNSSENTRY_SNR)
     90
     91#define GNSSENTRY_C5DATA     ((4<<2)+GNSSENTRY_CODE)
     92#define GNSSENTRY_L5DATA     ((4<<2)+GNSSENTRY_PHASE)
     93#define GNSSENTRY_D5DATA     ((4<<2)+GNSSENTRY_DOPPLER)
     94#define GNSSENTRY_S5DATA     ((4<<2)+GNSSENTRY_SNR)
     95
     96#define GNSSENTRY_C6DATA     ((5<<2)+GNSSENTRY_CODE)
     97#define GNSSENTRY_L6DATA     ((5<<2)+GNSSENTRY_PHASE)
     98#define GNSSENTRY_D6DATA     ((5<<2)+GNSSENTRY_DOPPLER)
     99#define GNSSENTRY_S6DATA     ((5<<2)+GNSSENTRY_SNR)
     100
     101#define GNSSENTRY_CB3DATA    GNSSENTRY_C6DATA
     102#define GNSSENTRY_LB3DATA    GNSSENTRY_L6DATA
     103#define GNSSENTRY_DB3DATA    GNSSENTRY_D6DATA
     104#define GNSSENTRY_SB3DATA    GNSSENTRY_S6DATA
     105
     106#define GNSSENTRY_CLEXDATA   GNSSENTRY_C6DATA
     107#define GNSSENTRY_LLEXDATA   GNSSENTRY_L6DATA
     108#define GNSSENTRY_DLEXDATA   GNSSENTRY_D6DATA
     109#define GNSSENTRY_SLEXDATA   GNSSENTRY_S6DATA
     110
     111#define GNSSENTRY_C5BDATA    ((6<<2)+GNSSENTRY_CODE)
     112#define GNSSENTRY_L5BDATA    ((6<<2)+GNSSENTRY_PHASE)
     113#define GNSSENTRY_D5BDATA    ((6<<2)+GNSSENTRY_DOPPLER)
     114#define GNSSENTRY_S5BDATA    ((6<<2)+GNSSENTRY_SNR)
     115
     116#define GNSSENTRY_CB2DATA    GNSSENTRY_C5BDATA
     117#define GNSSENTRY_LB2DATA    GNSSENTRY_L5BDATA
     118#define GNSSENTRY_DB2DATA    GNSSENTRY_D5BDATA
     119#define GNSSENTRY_SB2DATA    GNSSENTRY_S5BDATA
     120
     121#define GNSSENTRY_C5ABDATA   ((7<<2)+GNSSENTRY_CODE)
     122#define GNSSENTRY_L5ABDATA   ((7<<2)+GNSSENTRY_PHASE)
     123#define GNSSENTRY_D5ABDATA   ((7<<2)+GNSSENTRY_DOPPLER)
     124#define GNSSENTRY_S5ABDATA   ((7<<2)+GNSSENTRY_SNR)
     125
     126#define GNSSENTRY_CSAIFDATA  ((8<<2)+GNSSENTRY_CODE)
     127#define GNSSENTRY_LSAIFDATA  ((8<<2)+GNSSENTRY_PHASE)
     128#define GNSSENTRY_DSAIFDATA  ((8<<2)+GNSSENTRY_DOPPLER)
     129#define GNSSENTRY_SSAIFDATA  ((8<<2)+GNSSENTRY_SNR)
     130
     131#define GNSSENTRY_C1NDATA    ((8<<2)+GNSSENTRY_CODE)
     132#define GNSSENTRY_L1NDATA    ((8<<2)+GNSSENTRY_PHASE)
     133#define GNSSENTRY_D1NDATA    ((8<<2)+GNSSENTRY_DOPPLER)
     134#define GNSSENTRY_S1NDATA    ((8<<2)+GNSSENTRY_SNR)
     135
     136#define GNSSENTRY_NUMBER     40 /* number of types!!! */
    89137
    90138/* Data flags. These flags are used in the dataflags field of gpsdata structure
    91139   and are required to determine, which data fields are filled with valid data. */
    92140#define GNSSDF_C1DATA         (1<<GNSSENTRY_C1DATA)
     141#define GNSSDF_L1CDATA        (1<<GNSSENTRY_L1CDATA)
     142#define GNSSDF_D1CDATA        (1<<GNSSENTRY_D1CDATA)
     143#define GNSSDF_S1CDATA        (1<<GNSSENTRY_S1CDATA)
    93144#define GNSSDF_C2DATA         (1<<GNSSENTRY_C2DATA)
     145#define GNSSDF_L2CDATA        (1<<GNSSENTRY_L2CDATA)
     146#define GNSSDF_D2CDATA        (1<<GNSSENTRY_D2CDATA)
     147#define GNSSDF_S2CDATA        (1<<GNSSENTRY_S2CDATA)
     148#define GNSSDF_CB1DATA        (1<<GNSSENTRY_CB1DATA)
     149#define GNSSDF_LB1DATA        (1<<GNSSENTRY_LB1DATA)
     150#define GNSSDF_DB1DATA        (1<<GNSSENTRY_DB1DATA)
     151#define GNSSDF_SB1DATA        (1<<GNSSENTRY_SB1DATA)
    94152#define GNSSDF_P1DATA         (1<<GNSSENTRY_P1DATA)
     153#define GNSSDF_L1PDATA        (1<<GNSSENTRY_L1PDATA)
     154#define GNSSDF_D1PDATA        (1<<GNSSENTRY_D1PDATA)
     155#define GNSSDF_S1PDATA        (1<<GNSSENTRY_S1PDATA)
    95156#define GNSSDF_P2DATA         (1<<GNSSENTRY_P2DATA)
    96 #define GNSSDF_L1CDATA        (1<<GNSSENTRY_L1CDATA)
    97 #define GNSSDF_L1PDATA        (1<<GNSSENTRY_L1PDATA)
    98 #define GNSSDF_L2CDATA        (1<<GNSSENTRY_L2CDATA)
    99157#define GNSSDF_L2PDATA        (1<<GNSSENTRY_L2PDATA)
    100 #define GNSSDF_D1CDATA        (1<<GNSSENTRY_D1CDATA)
    101 #define GNSSDF_D1PDATA        (1<<GNSSENTRY_D1PDATA)
    102 #define GNSSDF_D2CDATA        (1<<GNSSENTRY_D2CDATA)
    103158#define GNSSDF_D2PDATA        (1<<GNSSENTRY_D2PDATA)
    104 #define GNSSDF_S1CDATA        (1<<GNSSENTRY_S1CDATA)
    105 #define GNSSDF_S1PDATA        (1<<GNSSENTRY_S1PDATA)
    106 #define GNSSDF_S2CDATA        (1<<GNSSENTRY_S2CDATA)
    107159#define GNSSDF_S2PDATA        (1<<GNSSENTRY_S2PDATA)
    108160
     
    115167#define GNSSDF_D6DATA         (1<<GNSSENTRY_D6DATA)
    116168#define GNSSDF_S6DATA         (1<<GNSSENTRY_S6DATA)
     169#define GNSSDF_CB3DATA        (1<<GNSSENTRY_CB3DATA)
     170#define GNSSDF_LB3DATA        (1<<GNSSENTRY_LB3DATA)
     171#define GNSSDF_DB3DATA        (1<<GNSSENTRY_DB3DATA)
     172#define GNSSDF_SB3DATA        (1<<GNSSENTRY_SB3DATA)
    117173#define GNSSDF_C5BDATA        (1<<GNSSENTRY_C5BDATA)
    118174#define GNSSDF_L5BDATA        (1<<GNSSENTRY_L5BDATA)
    119175#define GNSSDF_D5BDATA        (1<<GNSSENTRY_D5BDATA)
    120176#define GNSSDF_S5BDATA        (1<<GNSSENTRY_S5BDATA)
     177#define GNSSDF_CB2DATA        (1<<GNSSENTRY_CB2DATA)
     178#define GNSSDF_LB2DATA        (1<<GNSSENTRY_LB2DATA)
     179#define GNSSDF_DB2DATA        (1<<GNSSENTRY_DB2DATA)
     180#define GNSSDF_SB2DATA        (1<<GNSSENTRY_SB2DATA)
    121181#define GNSSDF_C5ABDATA       (1<<GNSSENTRY_C5ABDATA)
    122182#define GNSSDF_L5ABDATA       (1<<GNSSENTRY_L5ABDATA)
    123183#define GNSSDF_D5ABDATA       (1<<GNSSENTRY_D5ABDATA)
    124184#define GNSSDF_S5ABDATA       (1<<GNSSENTRY_S5ABDATA)
     185
     186#define GNSSDF_CSAIFDATA      (1LL<<GNSSENTRY_CSAIFDATA)
     187#define GNSSDF_LSAIFDATA      (1LL<<GNSSENTRY_LSAIFDATA)
     188#define GNSSDF_DSAIFDATA      (1LL<<GNSSENTRY_DSAIFDATA)
     189#define GNSSDF_SSAIFDATA      (1LL<<GNSSENTRY_SSAIFDATA)
     190
     191#define GNSSDF_C1NDATA        (1LL<<GNSSENTRY_C1NDATA)
     192#define GNSSDF_L1NDATA        (1LL<<GNSSENTRY_L1NDATA)
     193#define GNSSDF_D1NDATA        (1LL<<GNSSENTRY_D1NDATA)
     194#define GNSSDF_S1NDATA        (1LL<<GNSSENTRY_S1NDATA)
    125195
    126196#define RINEXENTRY_C1DATA     0
     
    143213#define RINEXENTRY_D6DATA     16
    144214#define RINEXENTRY_S6DATA     17
    145 #define RINEXENTRY_C5BDATA    18
    146 #define RINEXENTRY_L5BDATA    19
    147 #define RINEXENTRY_D5BDATA    20
    148 #define RINEXENTRY_S5BDATA    21
    149 #define RINEXENTRY_C5ABDATA   22
    150 #define RINEXENTRY_L5ABDATA   23
    151 #define RINEXENTRY_D5ABDATA   24
    152 #define RINEXENTRY_S5ABDATA   25
     215#define RINEXENTRY_C7DATA    18 /* 5B */
     216#define RINEXENTRY_L7DATA    19
     217#define RINEXENTRY_D7DATA    20
     218#define RINEXENTRY_S7DATA    21
     219#define RINEXENTRY_C8DATA    22 /* 5AB */
     220#define RINEXENTRY_L8DATA    23
     221#define RINEXENTRY_D8DATA    24
     222#define RINEXENTRY_S8DATA    25
    153223
    154224#define RINEXENTRY_NUMBER     26
     
    182252#define GAL_WAVELENGTH_E6     (LIGHTSPEED / GAL_FREQU_E6) /* m */
    183253
     254#define QZSS_FREQU_L1       1575420000.0  /* Hz */
     255#define QZSS_FREQU_L2       1227600000.0  /* Hz */
     256#define QZSS_FREQU_L5       1176450000.0  /* Hz */
     257#define QZSS_FREQU_LEX      1278750000.0 /* Hz */
     258#define QZSS_WAVELENGTH_L1  (LIGHTSPEED / QZSS_FREQU_L1) /* m */
     259#define QZSS_WAVELENGTH_L2  (LIGHTSPEED / QZSS_FREQU_L2) /* m */
     260#define QZSS_WAVELENGTH_L5  (LIGHTSPEED / QZSS_FREQU_L5) /* m */
     261#define QZSS_WAVELENGTH_LEX (LIGHTSPEED / QZSS_FREQU_LEX) /* m */
     262
     263#define COMPASS_FREQU_B1       1561098000.0  /* Hz */
     264#define COMPASS_FREQU_B2       1207140000.0  /* Hz */
     265#define COMPASS_FREQU_B3       1268520000.0  /* Hz */
     266#define COMPASS_WAVELENGTH_B1  (LIGHTSPEED / COMPASS_FREQU_B1) /* m */
     267#define COMPASS_WAVELENGTH_B2  (LIGHTSPEED / COMPASS_FREQU_B2) /* m */
     268#define COMPASS_WAVELENGTH_B3  (LIGHTSPEED / COMPASS_FREQU_B3) /* m */
     269
    184270#define PRN_GIOVE_OFFSET 51
    185271
     
    192278#define GNSSDF2_LOCKLOSSE5B    (1<<5)  /* lost lock on E5B */
    193279#define GNSSDF2_LOCKLOSSE5AB   (1<<6)  /* lost lock on E5AB */
     280#define GNSSDF2_LOCKLOSSB1     GNSSDF2_LOCKLOSSL2
     281#define GNSSDF2_LOCKLOSSB2     GNSSDF2_LOCKLOSSE5B
     282#define GNSSDF2_LOCKLOSSB3     GNSSDF2_LOCKLOSSE6
     283#define GNSSDF2_LOCKLOSSLEX    GNSSDF2_LOCKLOSSE6
     284#define GNSSDF2_LOCKLOSSSAIF   (1<<9)  /* lost lock on SAIF signal */
    194285
    195286#define UINT64(c) c ## ULL
     
    210301  double timeofweek;         /* milliseconds in GPS week */
    211302  double measdata[GNSS_MAXSATS][GNSSENTRY_NUMBER];  /* data fields */
    212   unsigned int dataflags[GNSS_MAXSATS];      /* GNSSDF_xxx */
     303  unsigned long long dataflags[GNSS_MAXSATS];      /* GNSSDF_xxx */
    213304  unsigned int dataflags2[GNSS_MAXSATS];     /* GNSSDF2_xxx */
    214305  int    satellites[GNSS_MAXSATS];     /* SV - IDs */
    215   int    snrL1[GNSS_MAXSATS];          /* Important: all the 5 SV-specific fields must */
     306  int    snrL1[GNSS_MAXSATS];          /* Important: all the 6 SV-specific fields must */
    216307  int    snrL2[GNSS_MAXSATS];          /* have the same SV-order */
     308  const char * codetype[GNSS_MAXSATS];
    217309};
    218310
     
    352444#endif /* NO_RTCM3_MAIN */
    353445  int    datapos[RINEXENTRY_NUMBER];
    354   int    dataflag[RINEXENTRY_NUMBER];
     446  long long dataflag[RINEXENTRY_NUMBER];
    355447  /* for RINEX2 GPS and GLO are both handled in GPS */
    356448  int    dataposGPS[RINEXENTRY_NUMBER]; /* SBAS has same entries */
    357   int    dataflagGPS[RINEXENTRY_NUMBER];
     449  long long dataflagGPS[RINEXENTRY_NUMBER];
    358450  int    dataposGLO[RINEXENTRY_NUMBER]; /* only used for RINEX3 */
    359   int    dataflagGLO[RINEXENTRY_NUMBER];
     451  long long dataflagGLO[RINEXENTRY_NUMBER];
    360452  int    dataposGAL[RINEXENTRY_NUMBER]; /* only used for RINEX3 */
    361   int    dataflagGAL[RINEXENTRY_NUMBER];
     453  long long dataflagGAL[RINEXENTRY_NUMBER];
     454  int    dataposQZS[RINEXENTRY_NUMBER]; /* only used for RINEX3 */
     455  long long dataflagQZS[RINEXENTRY_NUMBER];
     456  int    dataposCOM[RINEXENTRY_NUMBER]; /* only used for RINEX3 */
     457  long long dataflagCOM[RINEXENTRY_NUMBER];
    362458  int    numdatatypesGPS;
    363459  int    numdatatypesGLO; /* only used for RINEX3 */
    364460  int    numdatatypesGAL; /* only used for RINEX3 */
     461  int    numdatatypesQZS; /* only used for RINEX3 */
     462  int    numdatatypesCOM; /* only used for RINEX3 */
    365463  int    validwarning;
    366464  int    init;
Note: See TracChangeset for help on using the changeset viewer.