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

first set of changes for better multiplattform support

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.