Changeset 4367 in ntrip
- Timestamp:
- Jun 28, 2012, 2:11:09 PM (13 years ago)
- Location:
- trunk/rtcm3torinex/lib
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/rtcm3torinex/lib/rtcm3torinex.c
r4365 r4367 227 227 static const int months[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; 228 228 static const struct leapseconds leap[] = { 229 /*{31, 12, 1971, 11},*/ 229 /*{31, 12, 1971, 10},*/ 230 /*{30, 06, 1972, 11},*/ 230 231 /*{31, 12, 1972, 12},*/ 231 232 /*{31, 12, 1973, 13},*/ … … 904 905 } 905 906 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: 913 914 if(handle->GPSWeek) 914 915 { … … 967 968 {0,0,0,0,0,0,0}, 968 969 {0,0,0,0,0,0,0}, 969 {GNSSENTRY_C1 DATA,GNSSENTRY_L1CDATA,GNSSENTRY_D1CDATA,970 GNSSENTRY_S1 CDATA,GNSSDF2_LOCKLOSSL1,0.0,"1S"},971 {GNSSENTRY_C1 DATA,GNSSENTRY_L1CDATA,GNSSENTRY_D1CDATA,972 GNSSENTRY_S1 CDATA,GNSSDF2_LOCKLOSSL1,0.0,"1L"},973 {GNSSENTRY_C1 DATA,GNSSENTRY_L1CDATA,GNSSENTRY_D1CDATA,974 GNSSENTRY_S1 CDATA,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"} 975 976 }; 976 977 /* NOTE: Uses 0.0, 1.0 for wavelength as sat index dependence is done later! */ … … 1059 1060 {GNSSENTRY_C5DATA,GNSSENTRY_L5DATA,GNSSENTRY_D5DATA, 1060 1061 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}, 1061 1148 {0,0,0,0,0,0,0}, 1062 1149 {0,0,0,0,0,0,0}, … … 1082 1169 1083 1170 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) 1085 1178 sys = RTCM3_MSM_GALILEO; 1086 1179 else if(type >= 1081) … … 1089 1182 switch(sys) 1090 1183 { 1184 case RTCM3_MSM_COMPASS: 1091 1185 case RTCM3_MSM_GALILEO: /* use DF004 instead of DF248 */ 1186 case RTCM3_MSM_QZSS: 1187 case RTCM3_MSM_SBAS: 1092 1188 case RTCM3_MSM_GPS: 1093 1189 GETBITS(i,30) … … 1284 1380 switch(sys) 1285 1381 { 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]; 1287 1392 wl = cd.wl; 1288 1393 break; … … 1323 1428 if(num == gnss->numsats) 1324 1429 gnss->satellites[gnss->numsats++] = fullsat; 1430 1431 gnss->codetype[num] = cd.code; 1325 1432 1326 1433 switch(type % 10) … … 1518 1625 const char *typesofobsS; /* should not be modified outside */ 1519 1626 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 */ 1520 1629 const char *timeoffirstobs; /* should not be modified outside */ 1521 1630 }; … … 1602 1711 return 1+snprintf(buffer, buffersize, 1603 1712 rinex3 ? 1604 "RTCM3TOR INEX %-7.7s%-20.20s%04d%02d%02d %02d%02d%02d UTC "1713 "RTCM3TOR. %-10.10s%-20.20s%04d%02d%02d %02d%02d%02d UTC " 1605 1714 "PGM / RUN BY / DATE" : 1606 "RTCM3TOR INEX %-7.7s%-20.20s%04d-%02d-%02d %02d:%02d "1715 "RTCM3TOR. %-10.10s%-20.20s%04d-%02d-%02d %02d:%02d " 1607 1716 "PGM / RUN BY / DATE", revisionstr, user, 1900+t2->tm_year, 1608 1717 t2->tm_mon+1, t2->tm_mday, t2->tm_hour, t2->tm_min, t2->tm_sec); … … 1705 1814 CHECKFLAGS(D5,D5) 1706 1815 CHECKFLAGS(S5,S5) 1707 CHECKFLAGS(C5AB,C 5AB)1708 CHECKFLAGS(L5AB,L 5AB)1709 CHECKFLAGS(D5AB,D 5AB)1710 CHECKFLAGS(S5AB,S 5AB)1711 CHECKFLAGS(C5B,C 5B)1712 CHECKFLAGS(L5B,L 5B)1713 CHECKFLAGS(D5B,D 5B)1714 CHECKFLAGS(S5B,S 5B)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) 1715 1824 CHECKFLAGS(C6,C6) 1716 1825 CHECKFLAGS(L6,L6) … … 1773 1882 "WAVELENGTH FACT L1/2"; 1774 1883 1884 hdata.numheaders = 18; 1885 1775 1886 if(Parser->rinex3) 1776 1887 { … … 1799 1910 CHECKFLAGSNEW(GPS, D1P, D1W) 1800 1911 CHECKFLAGSNEW(GPS, S1P, S1W) 1912 CHECKFLAGSNEW(GPS, C5, C5) 1913 CHECKFLAGSNEW(GPS, L5, L5) 1914 CHECKFLAGSNEW(GPS, D5, D5) 1915 CHECKFLAGSNEW(GPS, S5, S5) 1801 1916 1802 1917 hdata.data.named.typesofobsS = buffer; … … 1813 1928 CHECKFLAGSNEW(GPS, D2C, D2X) 1814 1929 CHECKFLAGSNEW(GPS, S2C, S2X) 1815 CHECKFLAGSNEW(GPS, C 5, C5)1816 CHECKFLAGSNEW(GPS, L 5, L5)1817 CHECKFLAGSNEW(GPS, D 5, D5)1818 CHECKFLAGSNEW(GPS, S 5, S5)1930 CHECKFLAGSNEW(GPS, C1N, C1X) 1931 CHECKFLAGSNEW(GPS, L1N, L1X) 1932 CHECKFLAGSNEW(GPS, D1N, D1X) 1933 CHECKFLAGSNEW(GPS, S1N, S1X) 1819 1934 1820 1935 hdata.data.named.typesofobsG = buffer; … … 1884 1999 "E %3d%-52.52s SYS / # / OBS TYPES", Parser->numdatatypesGAL, tbuffer); 1885 2000 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) 1886 2068 { 1887 2069 i += snprintf(buffer+i-1, buffersize, … … 1939 2121 CHECKFLAGS(D5,D5) 1940 2122 CHECKFLAGS(S5,S5) 1941 CHECKFLAGS(C5AB,C 5AB)1942 CHECKFLAGS(L5AB,L 5AB)1943 CHECKFLAGS(D5AB,D 5AB)1944 CHECKFLAGS(S5AB,S 5AB)1945 CHECKFLAGS(C5B,C 5B)1946 CHECKFLAGS(L5B,L 5B)1947 CHECKFLAGS(D5B,D 5B)1948 CHECKFLAGS(S5B,S 5B)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) 1949 2131 CHECKFLAGS(C6,C6) 1950 2132 CHECKFLAGS(L6,L6) … … 1959 2141 i += snprintf(buffer+i-1, buffersize, 1960 2142 "\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); 1961 2148 } 1962 2149 buffer += i; buffersize -= i; … … 1975 2162 buffer += i; buffersize -= i; 1976 2163 } 1977 1978 hdata.numheaders = 15;1979 2164 1980 2165 if(Parser->headerfile) … … 2273 2458 for(i = 0; i < Parser->Data.numsats; ++i) 2274 2459 { 2275 int glo = 0, gal = 0 ;2460 int glo = 0, gal = 0, qzs = 0, com = 0; 2276 2461 if(Parser->Data.satellites[i] <= PRN_GPS_END) 2277 2462 RTCM3Text("G%02d", Parser->Data.satellites[i]); … … 2294 2479 gal = 1; 2295 2480 } 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); 2299 2496 else 2300 2497 RTCM3Text("%3d", Parser->Data.satellites[i]); … … 2384 2581 } 2385 2582 } 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 } 2386 2658 else 2387 2659 { … … 2439 2711 RTCM3Text("R%02d", Parser->Data.satellites[i] 2440 2712 - (PRN_GLONASS_START-1)); 2441 else if(Parser->Data.satellites[i] >= PRN_ WAAS_START2442 && 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) 2443 2715 RTCM3Text("S%02d", Parser->Data.satellites[i] 2444 - PRN_ WAAS_START+20);2716 - PRN_SBAS_START+20); 2445 2717 else if(Parser->Data.satellites[i] >= PRN_GALILEO_START 2446 2718 && Parser->Data.satellites[i] <= PRN_GALILEO_END) … … 2451 2723 RTCM3Text("E%02d", Parser->Data.satellites[i] 2452 2724 - (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)); 2453 2733 else 2454 2734 RTCM3Text("%3d", Parser->Data.satellites[i]); … … 2468 2748 RTCM3Text("R%02d", Parser->Data.satellites[i] 2469 2749 - (PRN_GLONASS_START-1)); 2470 else if(Parser->Data.satellites[i] >= PRN_ WAAS_START2471 && 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) 2472 2752 RTCM3Text("S%02d", Parser->Data.satellites[i] 2473 - PRN_ WAAS_START+20);2753 - PRN_SBAS_START+20); 2474 2754 else if(Parser->Data.satellites[i] >= PRN_GALILEO_START 2475 2755 && Parser->Data.satellites[i] <= PRN_GALILEO_END) … … 2480 2760 RTCM3Text("E%02d", Parser->Data.satellites[i] 2481 2761 - (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)); 2482 2770 else 2483 2771 RTCM3Text("%3d", Parser->Data.satellites[i]); -
trunk/rtcm3torinex/lib/rtcm3torinex.h
r2849 r4367 36 36 #define PRN_GALILEO_START 71 37 37 #define PRN_GALILEO_END 100 38 #define PRN_ WAAS_START 12039 #define PRN_ WAAS_END 13838 #define PRN_SBAS_START 120 39 #define PRN_SBAS_END 138 40 40 #define PRN_GIOVE_START 139 41 41 #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 42 46 43 47 #define PRN_GLONASS_NUM (PRN_GLONASS_END-PRN_GLONASS_START+1) … … 51 55 #define RTCM3_MSM_GLONASS PRN_GLONASS_START 52 56 #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!!! */ 89 137 90 138 /* Data flags. These flags are used in the dataflags field of gpsdata structure 91 139 and are required to determine, which data fields are filled with valid data. */ 92 140 #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) 93 144 #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) 94 152 #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) 95 156 #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)99 157 #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)103 158 #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)107 159 #define GNSSDF_S2PDATA (1<<GNSSENTRY_S2PDATA) 108 160 … … 115 167 #define GNSSDF_D6DATA (1<<GNSSENTRY_D6DATA) 116 168 #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) 117 173 #define GNSSDF_C5BDATA (1<<GNSSENTRY_C5BDATA) 118 174 #define GNSSDF_L5BDATA (1<<GNSSENTRY_L5BDATA) 119 175 #define GNSSDF_D5BDATA (1<<GNSSENTRY_D5BDATA) 120 176 #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) 121 181 #define GNSSDF_C5ABDATA (1<<GNSSENTRY_C5ABDATA) 122 182 #define GNSSDF_L5ABDATA (1<<GNSSENTRY_L5ABDATA) 123 183 #define GNSSDF_D5ABDATA (1<<GNSSENTRY_D5ABDATA) 124 184 #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) 125 195 126 196 #define RINEXENTRY_C1DATA 0 … … 143 213 #define RINEXENTRY_D6DATA 16 144 214 #define RINEXENTRY_S6DATA 17 145 #define RINEXENTRY_C 5BDATA 18146 #define RINEXENTRY_L 5BDATA 19147 #define RINEXENTRY_D 5BDATA 20148 #define RINEXENTRY_S 5BDATA 21149 #define RINEXENTRY_C 5ABDATA 22150 #define RINEXENTRY_L 5ABDATA23151 #define RINEXENTRY_D 5ABDATA24152 #define RINEXENTRY_S 5ABDATA25215 #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 153 223 154 224 #define RINEXENTRY_NUMBER 26 … … 182 252 #define GAL_WAVELENGTH_E6 (LIGHTSPEED / GAL_FREQU_E6) /* m */ 183 253 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 184 270 #define PRN_GIOVE_OFFSET 51 185 271 … … 192 278 #define GNSSDF2_LOCKLOSSE5B (1<<5) /* lost lock on E5B */ 193 279 #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 */ 194 285 195 286 #define UINT64(c) c ## ULL … … 210 301 double timeofweek; /* milliseconds in GPS week */ 211 302 double measdata[GNSS_MAXSATS][GNSSENTRY_NUMBER]; /* data fields */ 212 unsigned intdataflags[GNSS_MAXSATS]; /* GNSSDF_xxx */303 unsigned long long dataflags[GNSS_MAXSATS]; /* GNSSDF_xxx */ 213 304 unsigned int dataflags2[GNSS_MAXSATS]; /* GNSSDF2_xxx */ 214 305 int satellites[GNSS_MAXSATS]; /* SV - IDs */ 215 int snrL1[GNSS_MAXSATS]; /* Important: all the 5SV-specific fields must */306 int snrL1[GNSS_MAXSATS]; /* Important: all the 6 SV-specific fields must */ 216 307 int snrL2[GNSS_MAXSATS]; /* have the same SV-order */ 308 const char * codetype[GNSS_MAXSATS]; 217 309 }; 218 310 … … 352 444 #endif /* NO_RTCM3_MAIN */ 353 445 int datapos[RINEXENTRY_NUMBER]; 354 intdataflag[RINEXENTRY_NUMBER];446 long long dataflag[RINEXENTRY_NUMBER]; 355 447 /* for RINEX2 GPS and GLO are both handled in GPS */ 356 448 int dataposGPS[RINEXENTRY_NUMBER]; /* SBAS has same entries */ 357 intdataflagGPS[RINEXENTRY_NUMBER];449 long long dataflagGPS[RINEXENTRY_NUMBER]; 358 450 int dataposGLO[RINEXENTRY_NUMBER]; /* only used for RINEX3 */ 359 intdataflagGLO[RINEXENTRY_NUMBER];451 long long dataflagGLO[RINEXENTRY_NUMBER]; 360 452 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]; 362 458 int numdatatypesGPS; 363 459 int numdatatypesGLO; /* only used for RINEX3 */ 364 460 int numdatatypesGAL; /* only used for RINEX3 */ 461 int numdatatypesQZS; /* only used for RINEX3 */ 462 int numdatatypesCOM; /* only used for RINEX3 */ 365 463 int validwarning; 366 464 int init;
Note:
See TracChangeset
for help on using the changeset viewer.