Changeset 10990 in ntrip


Ignore:
Timestamp:
Aug 19, 2026, 11:42:41 AM (4 weeks ago)
Author:
stuerze
Message:

minor changes

Location:
trunk/BNC/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit.h

    r10989 r10990  
    432432  };
    433433
    434 
    435434  /* return size of resulting data or 0 in case of an error */
    436   virtual size_t MakeClockOrbit(const struct ClockOrbit *co, CodeType type,
    437       int moremessagesfollow, char *buffer, size_t size) = 0;
    438   virtual size_t MakeCodeBias(const struct CodeBias *b, CodeBiasType type,
    439       int moremessagesfollow, char *buffer, size_t size) = 0;
    440   virtual size_t MakePhaseBias(const struct PhaseBias *b, CodeBiasType type,
    441       int moremessagesfollow, char *buffer, size_t size) = 0;
    442   virtual size_t MakeVTEC(const struct VTEC *v,
    443       int moremessagesfollow, char *buffer, size_t size) = 0;
     435  virtual size_t MakeClockOrbit(const struct ClockOrbit *co, CodeType type, int moremessagesfollow, char *buffer, size_t size) = 0;
     436  virtual size_t MakeCodeBias(const struct CodeBias *b, CodeBiasType type,  int moremessagesfollow, char *buffer, size_t size) = 0;
     437  virtual size_t MakePhaseBias(const struct PhaseBias *b, CodeBiasType type, int moremessagesfollow, char *buffer, size_t size) = 0;
     438  virtual size_t MakeVTEC(const struct VTEC *v, int moremessagesfollow, char *buffer, size_t size) = 0;
    444439
    445440  /* buffer should point to a RTCM3 block */
    446   virtual enum GCOB_RETURN GetSSR(struct ClockOrbit *co, struct CodeBias *b,
    447       struct VTEC *v, struct PhaseBias *pb, const char *buffer, size_t size,
    448       int *bytesused) = 0;
    449 
     441  virtual enum GCOB_RETURN GetSSR(struct ClockOrbit *co, struct CodeBias *b, struct VTEC *v, struct PhaseBias *pb,
     442                                  const char *buffer, size_t size, int *bytesused) = 0;
    450443  virtual std::string codeTypeToRnxType(char system, CodeType type) = 0;
    451444  virtual CodeType    rnxTypeToCodeType(char system, std::string type) = 0;
     
    454447
    455448/* GNSS macros - Header part */
    456 #define T_RTCM_MESSAGE_NUMBER(a)         ADDBITS(12, a)      /* DF002  */
    457 #define T_IGS_SSR_VERSION(a)             ADDBITS( 3, a)      /* IDF001 */
    458 #define T_IGS_MESSAGE_NUMBER(a)          ADDBITS( 8, a)      /* IDF002 */
    459 
    460 #define T_GPS_EPOCH_TIME(a)              ADDBITS(20, a)      /* IDF003 DF385 DF458 DF460 DF465*/
    461 #define T_GLONASS_EPOCH_TIME(a)          ADDBITS(17, a)      /* DF386  */
    462 
    463 #define T_SSR_UPDATE_INTERVAL(a)         ADDBITS( 4, a)      /* DF391, IDF004 */
    464 #define T_MULTIPLE_MESSAGE_INDICATOR(a)  ADDBITS( 1, a)      /* DF388, IDF005 */
    465 #define T_SSR_IOD(a)                     ADDBITS( 4, a)      /* DF413, IDF007 */
    466 #define T_SSR_PROVIDER_ID(a)             ADDBITS(16, a)      /* DF414, IDF008 */
    467 #define T_SSR_SOLUTION_ID(a)             ADDBITS( 4, a)      /* DF415, IDF009 */
    468 #define T_SATELLITE_REFERENCE_DATUM(a)   ADDBITS( 1, a)      /* DF375, IDF006 */
    469 #define T_NO_OF_SATELLITES(a)            ADDBITS( 6, a)      /* DF387, IDF010 */
     449#define E_RTCM_MESSAGE_NUMBER(a)                         ADDBITS(12, a)                     /* DF002  */
     450#define E_IGS_SSR_VERSION(a)                             ADDBITS( 3, a)                     /* IDF001 */
     451#define E_IGS_MESSAGE_NUMBER(a)                          ADDBITS( 8, a)                     /* IDF002 */
     452
     453#define E_GPS_EPOCH_TIME(a)                              ADDBITS(20, a)                     /* IDF003 DF385 DF458 DF460 DF465*/
     454#define E_GLONASS_EPOCH_TIME(a)                          ADDBITS(17, a)                     /* DF386  */
     455#define E_SSR_UPDATE_INTERVAL(a)                         ADDBITS( 4, a)                     /* DF391, IDF004 */
     456#define E_MULTIPLE_MESSAGE_INDICATOR(a)                  ADDBITS( 1, a)                     /* DF388, IDF005 */
     457#define E_SSR_IOD(a)                                     ADDBITS( 4, a)                     /* DF413, IDF007 */
     458#define E_SSR_PROVIDER_ID(a)                             ADDBITS(16, a)                     /* DF414, IDF008 */
     459#define E_SSR_SOLUTION_ID(a)                             ADDBITS( 4, a)                     /* DF415, IDF009 */
     460#define E_SATELLITE_REFERENCE_DATUM(a)                   ADDBITS( 1, a)                     /* DF375, IDF006 */
     461#define E_NO_OF_SATELLITES(a)                            ADDBITS( 6, a)                     /* DF387, IDF010 */
    470462
    471463/* GNSS macros - Satellite specific part */
    472 #define T_GPS_SATELLITE_ID(a)            ADDBITS( 6, a)      /* IDF011 DF068 DF488 */
    473 #define T_QZSS_SATELLITE_ID(a)           ADDBITS( 4, a)      /* DF249  */
    474 #define T_GLONASS_SATELLITE_ID(a)        ADDBITS( 5, a)      /* DF384 (old RTCM) */
    475 #define T_GLONASS_SATELLITE_ID_NEW(a)    ADDBITS( 6, a)      /* DF (new RTCM) */
    476 #define T_GPS_IODE(a)                    ADDBITS( 8, a)      /* IDF012 DF071  */
    477 #define T_GLONASS_IOD(a)                 ADDBITS( 8, a)      /* DF239  */
    478 #define T_GALILEO_IOD(a)                 ADDBITS(10, a)      /* DF459  */
    479 #define T_SBAS_T0MOD(a)                  ADDBITS( 9, (a/16)) /* DF468  */
    480 #define T_SBAS_IODCRC(a)                 ADDBITS(24, a)      /* DF469  */
    481 #define T_BDS_TOEMOD(a)                  ADDBITS(10, (a/8))  /* DF470  */
    482 #define T_BDS_IOD(a)                     ADDBITS( 8, a)      /* DF471  */
    483 
     464#define E_GPS_SATELLITE_ID(a)                            ADDBITS( 6, a)                     /* IDF011 DF068 DF488 */
     465#define E_QZSS_SATELLITE_ID_OLD(a)                       ADDBITS( 4, a)                     /* DF249 (old RTCM)*/
     466#define E_GLONASS_SATELLITE_ID_OLD(a)                    ADDBITS( 5, a)                     /* DF384 (old RTCM) */
     467#define E_GPS_IODE(a)                                    ADDBITS( 8, a)                     /* IDF012 DF071  */
     468#define E_GLONASS_IOD(a)                                 ADDBITS( 8, a)                     /* DF239  */
     469#define E_GALILEO_IOD(a)                                 ADDBITS(10, a)                     /* DF459  */
     470#define E_SBAS_T0MOD(a)                                  ADDBITS( 9, (a/16))                 /* DF468  */
     471#define E_SBAS_IODCRC(a)                                 ADDBITS(24, a)                     /* DF469  */
     472#define E_BDS_TOEMOD(a)                                  ADDBITS(10, (a/8))                 /* DF470  */
     473#define E_BDS_IOD(a)                                     ADDBITS( 8, a)                     /* DF471  */
     474 
    484475/* Orbit Corrections */
    485 #define T_DELTA_RADIAL(a)                SCALEADDBITS(22,    10000.0, a) /* DF365, IDF013 */
    486 #define T_DELTA_ALONG_TRACK(a)           SCALEADDBITS(20,     2500.0, a) /* DF366, IDF014 */
    487 #define T_DELTA_CROSS_TRACK(a)           SCALEADDBITS(20,     2500.0, a) /* DF367, IDF015 */
    488 #define T_DELTA_DOT_RADIAL(a)            SCALEADDBITS(21,  1000000.0, a) /* DF368, IDF016 */
    489 #define T_DELTA_DOT_ALONG_TRACK(a)       SCALEADDBITS(19,   250000.0, a) /* DF369, IDF017 */
    490 #define T_DELTA_DOT_CROSS_TRACK(a)       SCALEADDBITS(19,   250000.0, a) /* DF370, IDF018 */
     476#define E_DELTA_RADIAL(a)                                SCALEADDBITS(22,    10000.0, a)    /* DF365, IDF013 */
     477#define E_DELTA_ALONG_TRACK(a)                           SCALEADDBITS(20,     2500.0, a)    /* DF366, IDF014 */
     478#define E_DELTA_CROSS_TRACK(a)                           SCALEADDBITS(20,     2500.0, a)    /* DF367, IDF015 */
     479#define E_DOT_DELTA_RADIAL(a)                            SCALEADDBITS(21,  1000000.0, a)    /* DF368, IDF016 */
     480#define E_DOT_DELTA_ALONG_TRACK(a)                       SCALEADDBITS(19,   250000.0, a)    /* DF369, IDF017 */
     481#define E_DOT_DELTA_CROSS_TRACK(a)                       SCALEADDBITS(19,   250000.0, a)    /* DF370, IDF018 */
    491482
    492483/* Clock Corrections */
    493 #define T_DELTA_CLOCK_C0(a)              SCALEADDBITS(22,    10000.0, a) /* DF376, IDF019 */
    494 #define T_DELTA_CLOCK_C1(a)              SCALEADDBITS(21,  1000000.0, a) /* DF377, IDF020 */
    495 #define T_DELTA_CLOCK_C2(a)              SCALEADDBITS(27, 50000000.0, a) /* DF378, IDF021 */
    496 #define T_HR_CLOCK_CORRECTION(a)         SCALEADDBITS(22,    10000.0, a) /* DF390, IDF022 */
     484#define E_DELTA_CLOCK_C0(a)                              SCALEADDBITS(22,    10000.0, a)    /* DF376, IDF019 */
     485#define E_DELTA_CLOCK_C1(a)                              SCALEADDBITS(21,  1000000.0, a)    /* DF377, IDF020 */
     486#define E_DELTA_CLOCK_C2(a)                              SCALEADDBITS(27, 50000000.0, a)    /* DF378, IDF021 */
     487#define E_HR_CLOCK_CORRECTION(a)                         SCALEADDBITS(22,    10000.0, a)    /* DF390, IDF022 */
    497488
    498489/* Biases */
    499 #define T_NO_OF_BIASES(a)                ADDBITS(5, a)                   /* DF479 DF379 IDF023 */
    500 #define T_GNSS_SIGNAL_IDENTIFIER(a)      ADDBITS(5, a)                   /* DF380, IDF024 */
    501 #define T_CODE_BIAS(a)                   SCALEADDBITS(14,      100.0, a) /* DF383, IDF025 */
    502 #define T_YAW_ANGLE(a)                   SCALEADDBITS( 9,  256.0/MPI, a) /* DF480, IDF026 */
    503 #define T_YAW_RATE(a)                    SCALEADDBITS( 8, 8192.0/MPI, a) /* DF481, IDF027 */
    504 #define T_PHASE_BIAS(a)                  SCALEADDBITS(20,    10000.0, a) /* DF482, IDF028 */
     490#define E_NO_OF_BIASES(a)                                ADDBITS(5, a)                      /* DF479, DF379, IDF023 */
     491#define E_GNSS_SIGNAL_IDENTIFIER(a)                      ADDBITS(5, a)                      /* DF380, IDF024 */
     492#define E_CODE_BIAS(a)                                   SCALEADDBITS(14,      100.0, a)    /* DF383, IDF025 */
     493#define E_YAW_ANGLE(a)                                   SCALEADDBITS( 9,  256.0/MPI, a)    /* DF480, IDF026 */
     494#define E_YAW_RATE(a)                                    SCALEADDBITS( 8, 8192.0/MPI, a)    /* DF481, IDF027 */
     495#define E_PHASE_BIAS_CORRECTION(a)                       SCALEADDBITS(20,    10000.0, a)    /* DF482, IDF028 */
    505496
    506497/* Phase specific part of GNSS phase bias message */
    507 #define T_INTEGER_INDICATOR(a)           ADDBITS(1, a)                  /* DF483, IDF029 */
    508 #define T_WIDE_LANE_INDICATOR(a)         ADDBITS(2, a)                  /* DF484, IDF030 */
    509 #define T_DISCONTINUITY_COUNTER(a)       ADDBITS(4, a)                  /* DF485, IDF031 */
    510 #define T_DISPERSIVE_BIAS_INDICATOR(a)   ADDBITS(1, a)                  /* DF486 (old RTCM), IDF032 */
    511 #define T_YAW_INFO_INDICATOR(a)          ADDBITS(1, a)                  /* DF486 (new RTCM) */
    512 #define T_MW_CONSISTENCY_INDICATOR(a)    ADDBITS(1, a)                  /* DF487 (old RTCM), IDF033 */
    513 #define T_EXTENDED_PHASE_BIAS_ID(a)      ADDBITS(4, a)                  /* DF+002 (new RTCM) */
     498#define E_INTEGER_INDICATOR(a)                          ADDBITS(1, a)                       /* DF483, IDF029 */
     499#define E_WIDE_LANE_INDICATOR(a)                        ADDBITS(2, a)                       /* DF484, IDF030 */
     500#define E_DISCONTINUITY_COUNTER(a)                      ADDBITS(4, a)                       /* DF485, IDF031 */
     501#define E_DISPERSIVE_BIAS_INDICATOR(a)                  ADDBITS(1, a)                       /* DF486 (old RTCM), IDF032 */
     502#define E_YAW_INFO_INDICATOR(a)                         ADDBITS(1, a)                       /* DF486 (new RTCM) */
     503#define E_MW_CONSISTENCY_INDICATOR(a)                   ADDBITS(1, a)                       /* DF487 (old RTCM), IDF033 */
     504
     505#define E_EXTENDED_PHASE_BIAS_ID(a)                     ADDBITS(4, a)                       /* DF+002 (new RTCM) */
     506
     507#define E_GLONASS_SATELLITE_ID(a)                       ADDBITS(6, a)                     /* DF+003 (new RTCM) */
    514508
    515509/* URA */
    516 #define T_SSR_URA(a)                     ADDBITS( 6, a)                 /* DF389, IDF034 */
     510#define E_SSR_URA(a)                                    ADDBITS(6, a)                      /* DF389, IDF034 */
     511
     512/* Ionosphere */
     513#define E_NO_IONO_LAYERS(a)                             ADDBITS(2, a-1)                     /* DF472, IDF035 */
     514#define E_IONO_HEIGHT(a)                                SCALEADDBITS( 8,  1/10000.0, a)     /* DF473, IDF036 */
     515#define E_IONO_DEGREE(a)                                ADDBITS(4, a-1)                     /* DF474, IDF037 */
     516#define E_IONO_ORDER(a)                                 ADDBITS(4, a-1)                     /* DF475, IDF038 */
     517#define E_IONO_COEFF_C(a)                               SCALEADDBITS(16,      200.0, a)     /* DF476, IDF039 */
     518#define E_IONO_COEFF_S(a)                               SCALEADDBITS(16,      200.0, a)     /* DF477, IDF040 */
     519#define E_VTEC_QUALITY_INDICATOR(a)                     SCALEADDBITS( 9,       20.0, a)     /* DF478, IDF041 */
    517520
    518521/* Antenna Information*/
    519 #define T_SATELLITE_ANTENNA_IOD(a)                      ADDBITS(6,  a)  /* DF+010 (new RTCM) */
    520 #define T_PHASE_CENTER_INFO_INDICATOR(a)                ADDBITS(1,  a)  /* DF+011 (new RTCM) */   
    521 #define T_GROUP_DELAY_INFO_INDICATOR(a)                 ADDBITS(1,  a)  /* DF+012 (new RTCM) */   
    522 #define T_NADIR_ANGLE_DEPENDENT_CORR_INDICATOR(a)       ADDBITS(1,  a)  /* DF+013 (new RTCM) */
    523 #define T_MAXIMUM_OFF_NADIR_ANGLE(a)                    ADDBITS(5,  a)  /* DF+014 (new RTCM) */ 
    524 #define T_NADIR_ANGLE_DEPENDENT_CORR_RANGE_EXTENSION(a) ADDBITS(4,  a)  /* DF+015 (new RTCM) */
    525 #define T_SATELLITE_SET_INDICATOR(a)                    ADDBITS(1,  a)  /* DF+016 (new RTCM) */
    526 #define T_FREQUENCY_SET_INDICATOR(a)                    ADDBITS(1,  a)  /* DF+017 (new RTCM) */
    527 #define T_GNSS_FREQUENCY_MASK(a)                        ADDBITS(6,  a)  /* DF+018 (new RTCM) */
    528 #define T_NADIR_CORR_INDICATOR(a)                       ADDBITS(1,  a)  /* DF+019 (new RTCM) */
    529 #define T_NADIR_CORRECTION(a)                           ADDBITS(12, a)  /* DF+020 (new RTCM) */
    530 #define T_NADIR_ANGLE_DEPENDENT_CORRECTION(a, nbits)    SCALEADDBITS(3 + nbits, 1000.0, a)  /* DF+021 (new RTCM)  can be extended up to 15/18 Bits from DF+015*/
    531 
    532 /* Grid Messages */
    533 #define T_GRID_ID(a)                                    ADDBITS(10, a)                     /* DF+022 (new RTCM) */
    534 #define T_GRID_TYPE(a)                                  ADDBITS(3 , a)                     /* DF+023 (new RTCM) */
    535 #define T_LATITUDE_OF_REFERENCE_POINT(a)                SCALEADDBITS(18, 1000.0, a)        /* DF+024 (new RTCM) */
    536 #define T_LONGITUDE_OF_REFERENCE_POINT(a)               SCALEADDBITS(19, 1000.0, a)        /* DF+025 (new RTCM) */
    537 #define T_ELLIPSOIDAL_HEIGHT_OF_REFERENCE_POINT(a)      SCALEADDBITS(10, 1/12.5, a+1000.0) /* DF+026 (new RTCM) */
    538 #define T_NUMNBER_OF_RELATIVE_POINTS(a)                 ADDBITS(8, a)                      /* DF+027 (new RTCM) */
    539 #define T_RELATIVE_LATITUDE(a)                          SCALEADDBITS(13, 1000.0, a)        /* DF+028 (new RTCM) */
    540 #define T_RELATIVE_LONGITUDE(a)                         SCALEADDBITS(14, 1000.0, a)        /* DF+029 (new RTCM) */
    541 #define T_RELATIVE_HIGHT(a)                             SCALEADDBITS(9,  1/12.5, a)        /* DF+030 (new RTCM) */
    542 #define T_NUMBER_OF_POINTS_IN_LATITIDE_DIRECTION(a)     ADDBITS(6,  a)                     /* DF+031 (new RTCM) */
    543 #define T_NUMBER_OF_POINTS_IN_LONGITUDE_DIRECTION(a)    ADDBITS(6,  a)                     /* DF+032 (new RTCM) */
    544 #define T_GRID_STEP_SIZE_IN_LATITIDE_DIRECTION(a)       SCALEADDBITS(9,  100.0, a)         /* DF+033 (new RTCM) */
    545 #define T_GRID_STEP_SIZE_IN_LONGITUDE_DIRECTION(a)      SCALEADDBITS(10, 100.0, a)         /* DF+034 (new RTCM) */
    546 #define T_GRID_MASK_AVAILABILITY_FLAG(a)                ADDBITS(1,  a)                     /* DF+035 (new RTCM) */
    547 #define T_GRID_MASK(a, nbits)                           ADDBITS(nbits, a)                  /* DF+036 (new RTCM) nbits from DF+031 or DF+032 */
     522#define E_SATELLITE_ANTENNA_IOD(a)                      ADDBITS(6,  a)                      /* DF+010 (new RTCM) */
     523#define E_PHASE_CENTER_INFO_INDICATOR(a)                ADDBITS(1,  a)                      /* DF+011 (new RTCM) */   
     524#define E_GROUP_DELAY_INFO_INDICATOR(a)                 ADDBITS(1,  a)                      /* DF+012 (new RTCM) */   
     525#define E_NADIR_ANGLE_DEPENDENT_CORR_INDICATOR(a)       ADDBITS(1,  a)                      /* DF+013 (new RTCM) */
     526#define E_MAXIMUM_OFF_NADIR_ANGLE(a)                    ADDBITS(5,  a)                      /* DF+014 (new RTCM) */ 
     527#define E_NADIR_ANGLE_DEPENDENT_CORR_RANGE_EXTENSION(a) ADDBITS(4,  a)                      /* DF+015 (new RTCM) to extend DF+021*/
     528#define E_SATELLITE_SET_INDICATOR(a)                    ADDBITS(1,  a)                      /* DF+016 (new RTCM) */
     529#define E_FREQUENCY_SET_INDICATOR(a)                    ADDBITS(1,  a)                      /* DF+017 (new RTCM) */
     530#define E_GNSS_FREQUENCY_MASK(a)                        ADDBITS(6,  a)                      /* DF+018 (new RTCM) */
     531#define E_NADIR_CORR_INDICATOR(a)                       ADDBITS(1,  a)                      /* DF+019 (new RTCM) */
     532#define E_NADIR_CORRECTION(a)                           SCALEADDBITS(12, 1000.0,  a)        /* DF+020 (new RTCM) [m] => [mm] */
     533#define E_NADIR_ANGLE_DEPENDENT_CORRECTION(a, nbits)    SCALEADDBITS(3 + nbits, 1000.0, a)  /* DF+021 (new RTCM) [m] => [mm] can be extended up to 15/18 Bits from DF+015*/
    548534/*
    549535//Encoding
    550 #define T_NEW_PAR(a, nbits)        ADDBITS(nbits, a)               //called as T_NEW_PAR(co->NewPar, co->NewParNumBits)
    551 #define T_NEW_PAR_SCALE(a, nbits)  SCALEADDBITS(nbits, 10000.0, a) //called as T_NEW_PAR(co->NewPar, co->NewParNumBits)
     536#define E_NEW_PAR(a, nbits)        ADDBITS(nbits, a)               //called as E_NEW_PAR(co->NewPar, co->NewParNumBits)
     537#define E_NEW_PAR_SCALE(a, nbits)  SCALEADDBITS(nbits, 10000.0, a) //called as E_NEW_PAR(co->NewPar, co->NewParNumBits)
    552538*/
    553 /* Ionosphere */
    554 #define T_NO_IONO_LAYERS(a)              ADDBITS(2, a-1)                 /* DF472, IDF035 */
    555 #define T_IONO_HEIGHT(a)                 SCALEADDBITS( 8,  1/10000.0, a) /* DF473, IDF036 */
    556 #define T_IONO_DEGREE(a)                 ADDBITS(4, a-1)                 /* DF474, IDF037 */
    557 #define T_IONO_ORDER(a)                  ADDBITS(4, a-1)                 /* DF475, IDF038 */
    558 #define T_IONO_COEFF_C(a)                SCALEADDBITS(16,      200.0, a) /* DF476, IDF039 */
    559 #define T_IONO_COEFF_S(a)                SCALEADDBITS(16,      200.0, a) /* DF477, IDF040 */
    560 #define T_VTEC_QUALITY_INDICATOR(a)      SCALEADDBITS( 9,       20.0, a) /* DF478, IDF041 */
     539/* Grid Messages */
     540#define E_GRID_ID(a)                                    ADDBITS(10, a)                      /* DF+022 (new RTCM) */
     541#define E_GRID_TYPE(a)                                  ADDBITS(3 , a)                      /* DF+023 (new RTCM) */
     542#define E_LATITUDE_OF_REFERENCE_POINT(a)                SCALEADDBITS(18, 1000.0, a)         /* DF+024 (new RTCM) */
     543#define E_LONGITUDE_OF_REFERENCE_POINT(a)               SCALEADDBITS(19, 1000.0, a)         /* DF+025 (new RTCM) */
     544#define E_ELLIPSOIDAL_HEIGHT_OF_REFERENCE_POINT(a)      SCALEADDBITS(10, 1/12.5, a+1000.0)  /* DF+026 (new RTCM) */
     545#define E_NUMNBER_OF_RELATIVE_POINTS(a)                 ADDBITS(8, a)                       /* DF+027 (new RTCM) */
     546#define E_RELATIVE_LATITUDE(a)                          SCALEADDBITS(13, 1000.0, a)         /* DF+028 (new RTCM) */
     547#define E_RELATIVE_LONGITUDE(a)                         SCALEADDBITS(14, 1000.0, a)         /* DF+029 (new RTCM) */
     548#define E_RELATIVE_HIGHT(a)                             SCALEADDBITS(9,  1/12.5, a)         /* DF+030 (new RTCM) */
     549#define E_NUMBER_OF_POINTS_IN_LATITIDE_DIRECTION(a)     ADDBITS(6,  a)                      /* DF+031 (new RTCM) */
     550#define E_NUMBER_OF_POINTS_IN_LONGITUDE_DIRECTION(a)    ADDBITS(6,  a)                      /* DF+032 (new RTCM) */
     551#define E_GRID_STEP_SIZE_IN_LATITIDE_DIRECTION(a)       SCALEADDBITS(9,  100.0, a)          /* DF+033 (new RTCM) */
     552#define E_GRID_STEP_SIZE_IN_LONGITUDE_DIRECTION(a)      SCALEADDBITS(10, 100.0, a)          /* DF+034 (new RTCM) */
     553#define E_GRID_MASK_AVAILABILITY_FLAG(a)                ADDBITS(1,  a)                      /* DF+035 (new RTCM) */
     554#define E_GRID_MASK(a, nbits)                           ADDBITS(nbits, a)                   /* DF+036 (new RTCM) nbits from DF+031 or DF+032 */
     555
     556/* Troposphere Messages */
     557#define E_HYDROSTATIC_MAPPING_FUNCTION_PAR_AH(a)        SCALEADDBITS(11, 25000000.0, a - 0.00118, a)  /* DF+038 (new RTCM) */
     558#define E_HYDROSTATIC_MAPPING_FUNCTION_PAR_BH(a)        SCALEADDBITS( 9,  5000000.0, a - 0.00298, a)  /* DF+039 (new RTCM) */
     559#define E_HYDROSTATIC_MAPPING_FUNCTION_PAR_CH(a)        SCALEADDBITS( 9,    20000.0, a - 0.0682, a)   /* DF+040 (new RTCM) */
     560#define E_WET_MAPPING_FUNCTION_PAR_AW(a)                SCALEADDBITS(13,  1000000.0, a - 0.000104, a) /* DF+041 (new RTCM) */
     561#define E_WET_MAPPING_FUNCTION_PAR_BW(a)                SCALEADDBITS( 6,   250000.0, a - 0.0015, a)   /* DF+042 (new RTCM) */
     562#define E_WET_MAPPING_FUNCTION_PAR_CW(a)                SCALEADDBITS( 5,     2000.0, a - 0.0048, a)   /* DF+043 (new RTCM) */
     563#define E_HYDROSTATIC_OFFSET(a)                         SCALEADDBITS(13,    10000.0, a - 2.3, a)      /* DF+044 (new RTCM) [m] -2.3 m => [0.1 mm] */
     564#define E_HYDROSTATIC_GRADIENT_LATITUDE_DIRECTION(a)    SCALEADDBITS(15,   100000.0, a)               /* DF+045 (new RTCM) [m] => [0.01 mm] */
     565#define E_HYDROSTATIC_GRADIENT_LONGITUDE_DIRECTION(a)   SCALEADDBITS(15,   100000.0, a)               /* DF+046 (new RTCM) [m] => [0.01 mm] */
     566#define E_WET_OFFSET(a)                                 SCALEADDBITS(13,    10000.0, a - 0.252)       /* DF+047 (new RTCM) [m] - 0.252 m => [0.1 mm] */
     567#define E_WET_GRADIENT_LATITUDE_DIRECTION(a)            SCALEADDBITS(15,   100000.0, a)               /* DF+048 (new RTCM) */
     568#define E_WET_GRADIENT_LONGITUDE_DIRECTION(a)           SCALEADDBITS(15,   100000.0, a)               /* DF+049 (new RTCM) */
     569#define E_HYDTOSTATIC_GRID_POINT_RESIDUAL_LENGTH(a)     ADDBITS(4,  a)                                /* DF+050 (new RTCM) */
     570#define E_WET_GRID_POINT_RESIDUAL_LENGTH(a)             ADDBITS(4.  a)                                /* DF+051 (new RTCM) */
     571#define E_HYDTOSTATIC_GRID_POINT_RESIDUAL(a, nbits)     SCALEADDBITS(nbits, 10000.0, a)               /* DF+052 (new RTCM) size depends on DF+050 */
     572#define E_WET_GRID_POINT_RESIDUAL(a, nbits)             SCALEADDBITS(nbits, 10000.0, a)               /* DF+053 (new RTCM) size depends on DF+051 */
     573
     574#define E_SSR_EPOCH_TIME(a)                             ADDBITS(20,  a)                               /* DF*055 (new RTCM) same definition as in IGS-SSR */
     575
     576/* Ionosphere Messages */
     577#define E_ZENITH_MAPPED_STEC_POLYNOM_COEFF_C00(a)                     SCALEADDBITS(17,  1000.0, a)    /* DF+057 (new RTCM) */
     578#define E_ZENITH_MAPPED_STEC_POLYNOM_COEFF_C01(a)                     SCALEADDBITS(18, 10000.0, a)    /* DF+058 (new RTCM) */
     579#define E_ZENITH_MAPPED_STEC_POLYNOM_COEFF_C10(a)                     SCALEADDBITS(18, 10000.0, a)    /* DF+059 (new RTCM) */
     580#define E_ZENITH_MAPPED_STEC_POLYNOMIAL_GRADIENT_INDICATOR(a)         ADDBITS(1,  a)                  /* DF+060 (new RTCM) */
     581#define E_ZENITH_MAPPED_STEC_GRID_POINT_RESIDUAL(a)                   ADDBITS(5,  a)                  /* DF+061 (new RTCM) size required for DF+062 */     
     582#define E_ZENITH_MAPPED_STEC_GRID_POINT_RESIDUAL_CORRECTION(a, nbits) ADDBITS(nbits, a)               /* DF+062 (new RTCM) nbits depends on DF+061 */   
     583
     584/* Metadata */
     585#define E_NUMBER_OF_SSR_MODEL_CORRECTION_ENTRIES(a)     ADDBITS(5,  a)                     /* DF+063 (new RTCM) */   
     586#define E_MODEL_CORRECTION_TYPE_INDICATOR(a)            ADDBITS(5,  a)                     /* DF+064 (new RTCM) */
     587#define E_MODEL_CORRECTION_APPLICATION_INDICATOR(a)     ADDBITS(1,  a)                     /* DF+065 (new RTCM) */
     588#define E_NON_DEFAULT_MODEL_CORRECTION_INDICATOR(a)     ADDBITS(1,  a)                     /* DF+066 (new RTCM) */
     589#define E_NON_DEFAULT_MODEL_CORRECTION_IDENTIFIER(a)    ADDBITS(3,  a)                     /* DF+067 (new RTCM) */
     590#define E_MODEL_CORRECTION_DATA_IOD_INDICATOR(a)        ADDBITS(1,  a)                     /* DF+068 (new RTCM) */
     591#define E_MODEL_CORRECTION_DATA_IOD(a)                  ADDBITS(6,  a)                     /* DF+069 (new RTCM) */
     592#define E_ADDITIONAL_MODEL_PARAMETER_INDICATOR(a)       ADDBITS(1,  a)                     /* DF+070 (new RTCM) */
     593#define E_NUMBER_OF_ADDITIONAL_MODEL_PARAMETER_BITS(a)  ADDBITS(8,  a)                     /* DF+071 (new RTCM) */ 
     594#define E_ADDITIONAL_MODEL_PARAMETER_DATA(a, nbits)     ADDBITS(nbits,  a)                 /* DF+072 (new RTCM) nbits from DF+071*/
     595
     596#define E_ZENITH_MAPPED_STEC_GRID_POINT_RESIDUAL_RESOLUTION_SCALE_FACTOR_EXPONENT(a)   GETSSRBITS(3,  a) /* DF+073 (new RTCM) */ 
     597
     598#define E_QZSS_SATELLITE_ID(a)                          ADDBITS(6,  a)                    /* DF+080 (new RTCM) */
     599
     600#define E_GRID_POINT_LATITUDE_MASK(a, nbits)            ADDBITS(nbits, a)                 /* DF+090 (new RTCM) nbits corresponds to DF+031*/
     601#define E_GRID_POINT_LONGIITUDE_MASK(a, nbits)          ADDBITS(nbits, a)                 /* DF+091 (new RTCM) nbits corresponds to DF+032*/
     602#define E_EXCLUDED_GRID_POINT_MASK(a, nbits)            ADDBITS(nbits, a)                 /* DF+092 (new RTCM) nbits corresponds to DF+090 * DF091 */
     603
     604#define E_GRID_POINT_OFFSET(a)                          ADDBITS(12,  a)                   /* DF+094 (new RTCM) */
     605
     606#define E_PLYNOMIAL_MODEL_INDICATOR(a)                  ADDBITS(1,  a)                    /* DF+096 (new RTCM) */
     607#define E_GNSS_IDENTIFIER(a)                            ADDBITS(4,  a)                    /* DF+097 (new RTCM) */
     608#define E_GNSS_BE_IDENTYFIER(a)                         ADDBITS(4,  a)                    /* DF+098 (new RTCM) */
     609#define E_RESIDUAL_MODEL_IDENTUICATOR(a)                ADDBITS(1,  a)                    /* DF+099 (new RTCM) */
     610#define E_NUMBER_OF_GRID_POINTS(a)                      ADDBITS(1,  a)                    /* DF+100 (new RTCM) */
    561611
    562612
     
    604654
    605655/* extract bits from data stream
     656   b = variable to store result, a = number of bits */
     657#define GETSSRBITSSIGN(b, a) { \
     658  LOADBITS(a) \
     659  b = ((int64_t)(bitfield<<(64-numbits)))>>(64-(a)); \
     660  numbits -= (a); \
     661}
     662
     663/* extract bits from data stream
    606664 b = variable to store result, a = number of bits */
    607665#define GETSSRBITSFACTOR(b, a, c) { \
     
    630688
    631689/* GPS macros also used for other systems when matching! */
    632 #define G_HEADER(a)                      GETSSRBITS(a,  8)
    633 #define G_RESERVEDH(a)                   GETSSRBITS(a,  6)
    634 #define G_SIZE(a)                        GETSSRBITS(a, 10)
     690
     691#define D_HEADER(a)                                      GETSSRBITS(a,  8)
     692#define D_RESERVEDH(a)                                   GETSSRBITS(a,  6)
     693#define D_SIZE(a)                                        GETSSRBITS(a, 10)
    635694
    636695/* GNSS macros - Header part */
    637 #define G_RTCM_MESSAGE_NUMBER(a)         GETSSRBITS(a,12)      /* DF002  */
    638 #define G_IGS_MESSAGE_NUMBER(a)          GETSSRBITS(a, 8)      /* IDF002 */
    639 #define G_IGS_SSR_VERSION(a)             GETSSRBITS(a, 3)      /* IDF001 */
    640 
    641 #define G_GPS_EPOCH_TIME(a)              GETSSRBITS(a,20)      /* IDF003 DF385 DF458 DF460 DF465*/
    642 #define G_GLONASS_EPOCH_TIME(a)          GETSSRBITS(a,17)      /* DF386 */
    643 #define G_GPS_EPOCH_TIME_CHECK(a, b)     {unsigned int temp; GETSSRBITS(temp, 20) if(b && a != temp) return GCOBR_TIMEMISMATCH; a = temp;}
    644 #define G_GLONASS_EPOCH_TIME_CHECK(a, b) {unsigned int temp; GETSSRBITS(temp, 17) if(b && a != temp) return GCOBR_TIMEMISMATCH; a = temp;}
    645 
    646 #define G_SSR_UPDATE_INTERVAL(a)         GETSSRBITS(a,  4)      /* DF391, IDF004 */
    647 #define G_MULTIPLE_MESSAGE_INDICATOR(a)  GETSSRBITS(a,  1)      /* DF388, IDF005 */
    648 #define G_SSR_IOD(a)                     GETSSRBITS(a,  4)      /* DF413, IDF007 */
    649 #define G_SSR_PROVIDER_ID(a)             GETSSRBITS(a, 16)      /* DF414, IDF008 */
    650 #define G_SSR_SOLUTION_ID(a)             GETSSRBITS(a,  4)      /* DF415, IDF009 */
    651 #define G_SATELLITE_REFERENCE_DATUM(a)   GETSSRBITS(a,  1)      /* DF375, IDF006 */
    652 #define G_NO_OF_SATELLITES(a)            GETSSRBITS(a,  6)      /* DF387, IDF010 */
     696#define D_RTCM_MESSAGE_NUMBER(a)                         GETSSRBITS(a, 12)                    /* DF002  */
     697#define D_IGS_MESSAGE_NUMBER(a)                          GETSSRBITS(a,  8)                    /* IDF002 */
     698#define D_IGS_SSR_VERSION(a)                             GETSSRBITS(a,  3)                    /* IDF001 */
     699
     700#define D_GPS_EPOCH_TIME(a)                              GETSSRBITS(a, 20)                    /* IDF003 DF385 DF458 DF460 DF465*/
     701#define D_GLONASS_EPOCH_TIME(a)                          GETSSRBITS(a, 17)                    /* DF386 */
     702#define D_GPS_EPOCH_TIME_CHECK(a, b)     {unsigned int temp; GETSSRBITS(temp, 20) if(b && a != temp) return GCOBR_TIMEMISMATCH; a = temp;}
     703#define D_GLONASS_EPOCH_TIME_CHECK(a, b) {unsigned int temp; GETSSRBITS(temp, 17) if(b && a != temp) return GCOBR_TIMEMISMATCH; a = temp;}
     704
     705#define D_SSR_UPDATE_INTERVAL(a)                         GETSSRBITS(a,  4)                    /* DF391, IDF004 */
     706#define D_MULTIPLE_MESSAGE_INDICATOR(a)                  GETSSRBITS(a,  1)                    /* DF388, IDF005 */
     707#define D_SSR_IOD(a)                                     GETSSRBITS(a,  4)                    /* DF413, IDF007 */
     708#define D_SSR_PROVIDER_ID(a)                             GETSSRBITS(a, 16)                    /* DF414, IDF008 */
     709#define D_SSR_SOLUTION_ID(a)                             GETSSRBITS(a,  4)                    /* DF415, IDF009 */
     710#define D_SATELLITE_REFERENCE_DATUM(a)                   GETSSRBITS(a,  1)                    /* DF375, IDF006 */
     711#define D_NO_OF_SATELLITES(a)                            GETSSRBITS(a,  6)                    /* DF387, IDF010 */
    653712
    654713/* GNSS macros - Satellite specific part */
    655 #define G_GPS_SATELLITE_ID(a)            GETSSRBITS(a,  6)     /* IDF011 DF068 DF488 */
    656 #define G_GLONASS_SATELLITE_ID(a)        GETSSRBITS(a,  5)     /* DF384 */
    657 #define G_GLONASS_SATELLITE_ID_NEW(a)    GETSSRBITS(a,  6)     /* DF*/
    658 #define G_QZSS_SATELLITE_ID(a)           GETSSRBITS(a,  4)     /* DF249 */
    659 
    660 #define G_GPS_IODE(a)                    GETSSRBITS(a,  8)     /*  DF071, DF467, IDF012 */
    661 #define G_GALILEO_IOD(a)                 GETSSRBITS(a, 10)          /* DF459 */
    662 
    663 #define G_SBAS_T0MOD(a)                  GETSSRBITSFACTOR(a, 9, 16) /* DF468 */
    664 #define G_SBAS_IODCRC(a)                 GETSSRBITS(a, 24)          /* DF469 */
    665 #define G_BDS_TOEMOD(a)                  GETSSRBITSFACTOR(a, 10, 8) /* DF470 */
     714#define D_GPS_SATELLITE_ID(a)                            GETSSRBITS(a,  6)                    /* IDF011 DF068 DF488 */
     715#define D_GLONASS_SATELLITE_ID_OLD(a)                    GETSSRBITS(a,  5)                    /* DF384  (old RTCM)*/
     716#define D_QZSS_SATELLITE_ID_OLD(a)                       GETSSRBITS(a,  4)                    /* DF249 */
     717
     718#define D_GPS_IODE(a)                                    GETSSRBITS(a,  8)                    /* DF071, DF467, IDF012 */
     719#define D_GALILEO_IOD(a)                                 GETSSRBITS(a, 10)                    /* DF459 */
     720
     721#define D_SBAS_T0MOD(a)                                  GETSSRBITSFACTOR(a, 9, 16)           /* DF468 */
     722#define D_SBAS_IODCRC(a)                                 GETSSRBITS(a, 24)                    /* DF469 */
     723#define D_BDS_TOEMOD(a)                                  GETSSRBITSFACTOR(a, 10, 8)           /* DF470 */
    666724
    667725/* Orbit Corrections */
    668 #define G_DELTA_RADIAL(a)                GETSSRFLOATSIGN(a, 22,   1/10000.0)  /* DF365, IDF013 */
    669 #define G_DELTA_ALONG_TRACK(a)           GETSSRFLOATSIGN(a, 20,    1/2500.0)  /* DF366, IDF014 */
    670 #define G_DELTA_CROSS_TRACK(a)           GETSSRFLOATSIGN(a, 20,    1/2500.0)  /* DF367, IDF015 */
    671 #define G_DELTA_DOT_RADIAL(a)            GETSSRFLOATSIGN(a, 21, 1/1000000.0)  /* DF368, IDF016 */
    672 #define G_DELTA_DOT_ALONG_TRACK(a)       GETSSRFLOATSIGN(a, 19,  1/250000.0)  /* DF369, IDF017 */
    673 #define G_DELTA_DOT_CROSS_TRACK(a)       GETSSRFLOATSIGN(a, 19,  1/250000.0)  /* DF370, IDF018 */
     726#define D_DELTA_RADIAL(a)                                GETSSRFLOATSIGN(a, 22,   1/10000.0)  /* DF365, IDF013 */
     727#define D_DELTA_ALONG_TRACK(a)                           GETSSRFLOATSIGN(a, 20,    1/2500.0)  /* DF366, IDF014 */
     728#define D_DELTA_CROSS_TRACK(a)                           GETSSRFLOATSIGN(a, 20,    1/2500.0)  /* DF367, IDF015 */
     729#define D_DOT_DELTA_RADIAL(a)                            GETSSRFLOATSIGN(a, 21, 1/1000000.0)  /* DF368, IDF016 */
     730#define D_DOT_DELTA_ALONG_TRACK(a)                       GETSSRFLOATSIGN(a, 19,  1/250000.0)  /* DF369, IDF017 */
     731#define D_DOT_DELTA_CROSS_TRACK(a)                       GETSSRFLOATSIGN(a, 19,  1/250000.0)  /* DF370, IDF018 */
    674732
    675733/* Clock Corrections */
    676 #define G_DELTA_CLOCK_C0(a)              GETSSRFLOATSIGN(a, 22,    1/10000.0) /* DF376, IDF019 */
    677 #define G_DELTA_CLOCK_C1(a)              GETSSRFLOATSIGN(a, 21,  1/1000000.0) /* DF377, IDF020 */
    678 #define G_DELTA_CLOCK_C2(a)              GETSSRFLOATSIGN(a, 27, 1/50000000.0) /* DF378, IDF021 */
    679 #define G_HR_CLOCK_CORRECTION(a)         GETSSRFLOATSIGN(a, 22,    1/10000.0) /* DF390, IDF022 */
     734#define D_DELTA_CLOCK_C0(a)                              GETSSRFLOATSIGN(a, 22,    1/10000.0) /* DF376, IDF019 */
     735#define D_DELTA_CLOCK_C1(a)                              GETSSRFLOATSIGN(a, 21,  1/1000000.0) /* DF377, IDF020 */
     736#define D_DELTA_CLOCK_C2(a)                              GETSSRFLOATSIGN(a, 27, 1/50000000.0) /* DF378, IDF021 */
     737#define D_HR_CLOCK_CORRECTION(a)                         GETSSRFLOATSIGN(a, 22,    1/10000.0) /* DF390, IDF022 */
    680738
    681739/* Biases */
    682 #define G_NO_OF_BIASES(a)                GETSSRBITS(a,  5)                    /* DF479 DF379 IDF023 */
    683 #define G_GNSS_SIGNAL_IDENTIFIER(a)      GETSSRBITS(a,  5)                    /* DF     IDF024 */
    684 #define G_CODE_BIAS(a)                   GETSSRFLOATSIGN(a, 14, 1/100.0)      /* DF383, IDF025 */
    685 #define G_YAW_ANGLE(a)                   GETSSRFLOAT    (a,  9, MPI/256.0)    /* DF480, IDF026 */
    686 #define G_YAW_RATE(a)                    GETSSRFLOATSIGN(a,  8, MPI/8192.0)   /* DF481, IDF027 */
    687 #define G_PHASE_BIAS(a)                  GETSSRFLOATSIGN(a, 20, 1/10000.)     /* DF482, IDF028 */
     740#define D_NO_OF_BIASES(a)                                GETSSRBITS(a,  5)                    /* DF479 DF379 IDF023 */
     741#define D_GNSS_SIGNAL_IDENTIFIER(a)                      GETSSRBITS(a,  5)                    /* DF460  IDF024 */
     742#define D_CODE_BIAS(a)                                   GETSSRFLOATSIGN(a, 14, 1/100.0)      /* DF383, IDF025 */
     743#define D_YAW_ANGLE(a)                                   GETSSRFLOAT    (a,  9, MPI/256.0)    /* DF480, IDF026 */
     744#define D_YAW_RATE(a)                                    GETSSRFLOATSIGN(a,  8, MPI/8192.0)   /* DF481, IDF027 */
     745#define D_PHASE_BIAS_CORRECTION(a)                       GETSSRFLOATSIGN(a, 20, 1/10000.)     /* DF482, IDF028 */
    688746
    689747/* Phase specific part of GNSS phase bias message */
    690 #define G_INTEGER_INDICATOR(a)           GETSSRBITS(a, 1)                    /* DF483, IDF029 */
    691 #define G_WIDE_LANE_INDICATOR(a)         GETSSRBITS(a, 2)                    /* DF484, IDF030 */
    692 #define G_DISCONTINUITY_COUNTER(a)       GETSSRBITS(a, 4)                    /* DF485, IDF031 */
    693 #define G_DISPERSIVE_BIAS_INDICATOR(a)   GETSSRBITS(a, 1)                    /* DF486 (old RTCM), IDF032 */
    694 #define G_YAW_INFO_INDICATOR(a)          GETSSRBITS(a, 1)                    /* DF486 (new RTCM) */
    695 #define G_MW_CONSISTENCY_INDICATOR(a)    GETSSRBITS(a, 1)                    /* DF487, IDF033 */
    696 #define G_EXTENDED_PHASE_BIAS_ID(a)      GETSSRBITS(4, a)                    /* DF??  (new RTCM)*/
     748#define D_INTEGER_INDICATOR(a)                           GETSSRBITS(a, 1)                    /* DF483, IDF029 */
     749#define D_WIDE_LANE_INDICATOR(a)                         GETSSRBITS(a, 2)                    /* DF484, IDF030 */
     750#define D_DISCONTINUITY_COUNTER(a)                       GETSSRBITS(a, 4)                    /* DF485, IDF031 */
     751#define D_DISPERSIVE_BIAS_INDICATOR(a)                   GETSSRBITS(a, 1)                    /* DF486 (old RTCM), IDF032 */
     752#define D_YAW_INFO_INDICATOR(a)                          GETSSRBITS(a, 1)                    /* DF486 (new RTCM) */
     753#define D_MW_CONSISTENCY_INDICATOR(a)                    GETSSRBITS(a, 1)                    /* DF487, IDF033 */
     754
     755#define D_EXTENDED_PHASE_BIAS_ID(a)                      GETSSRBITS(4, a)                    /* DF+002 (new RTCM)*/
     756
     757#define D_GLONASS_SATELLITE_ID(a)                        GETSSRBITS(a,  6)                   /* DF+003 (new RTCM)*/
    697758
    698759/* URA */
    699 #define G_SSR_URA(a)  {int temp; GETSSRBITS(temp, 6) \
    700   (a) = URAToValue(temp);} /* DF389, IDF034 */
     760#define D_SSR_URA(a)  {int temp; GETSSRBITS(temp, 6) a = URAToValue(temp);}                  /* DF389, IDF034 */
     761
     762/* Ionosphere */
     763#define D_NO_IONO_LAYERS(a)         {unsigned int temp; GETSSRBITS(temp, 2) a = temp+1;}     /* DF472, IDF035 */
     764#define D_IONO_HEIGHT(a)                                GETSSRFLOAT(a, 8, 10000.0)           /* DF473, IDF036 */
     765#define D_IONO_DEGREE(a)            {unsigned int temp; GETSSRBITS(temp, 4) a = temp+1;}     /* DF474, IDF037 */
     766#define D_IONO_ORDER(a)             {unsigned int temp; GETSSRBITS(temp, 4) a = temp+1;}     /* DF475, IDF038 */
     767#define D_IONO_COEFF_C(a)                               GETSSRFLOATSIGN(a, 16, 1/200.0)      /* DF476, IDF039 */
     768#define D_IONO_COEFF_S(a)                               GETSSRFLOATSIGN(a, 16, 1/200.0)      /* DF477, IDF040 */
     769#define D_VTEC_QUALITY_INDICATOR(a)                     GETSSRFLOAT(a, 9, 1/20.0)            /* DF478, IDF041 */ 
    701770
    702771/* Antenna Information*/
    703 #define G_SATELLITE_ANTENNA_IOD(a)                      GETSSRBITS(a,  6)          /* DF+010 (new RTCM) */
    704 #define G_PHASE_CENTER_INFO_INDICATORD(a)               GETSSRBITS(a,  1)          /* DF+011 (new RTCM) */   
    705 #define G_GROUP_DELAY_INFO_INDICATOR(a)                 GETSSRBITS(a,  1)          /* DF+012 (new RTCM) */   
    706 #define G_NADIR_ANGLE_DEPENDENT_CORR_INDICATOR(a)       GETSSRBITS(a,  1)          /* DF+013 (new RTCM) */
    707 #define G_MAXIMUM_OFF_NADIR_ANGLE(a)                    GETSSRBITS(a,  5)          /* DF+014 (new RTCM) */ 
    708 #define G_NADIR_ANGLE_DEPENDENT_CORR_RANGE_EXTENSION(a) GETSSRBITS(a,  4)          /* DF+015 (new RTCM) */
    709 #define G_SATELLITE_SET_INDICATOR(a)                    GETSSRBITS(a,  1)          /* DF+016 (new RTCM) */
    710 #define G_FREQUENCY_SET_INDICATOR (a)                   GETSSRBITS(a,  1)          /* DF+017 (new RTCM) */
    711 #define G_GNSS_FREQUENCY_MASK (a)                       GETSSRBITS(a,  6)          /* DF+018 (new RTCM) */
    712 #define G_NADIR_CORR_INDICATOR(a)                       GETSSRBITS(a,  1)          /* DF+019 (new RTCM) */
    713 #define G_NADIR_CORRECTION(a)                           GETSSRBITS(a, 12)          /* DF+020 (new RTCM) */
    714 #define G_NADIR_ANGLE_DEPENDENT_CORRECTION(a)           GETSSRBITS(a,  3 + nbits)  /* DF+021 (new RTCM) can be extended up to 15/18 Bits from DF+015*/
    715 
     772#define D_SATELLITE_ANTENNA_IOD(a)                      GETSSRBITS(a,  6)                    /* DF+010 (new RTCM) */
     773#define D_PHASE_CENTER_INFO_INDICATORD(a)               GETSSRBITS(a,  1)                    /* DF+011 (new RTCM) */   
     774#define D_GROUP_DELAY_INFO_INDICATOR(a)                 GETSSRBITS(a,  1)                    /* DF+012 (new RTCM) */   
     775#define D_NADIR_ANGLE_DEPENDENT_CORR_INDICATOR(a)       GETSSRBITS(a,  1)                    /* DF+013 (new RTCM) */
     776#define D_NADIR_ANGLE_DEPENDENT_CORR_RANGE_EXTENSION(a) GETSSRBITS(a,  4)                    /* DF+015 (new RTCM) required to extend DF+021*/
     777#define D_SATELLITE_SET_INDICATOR(a)                    GETSSRBITS(a,  1)                    /* DF+016 (new RTCM) */
     778#define D_FREQUENCY_SET_INDICATOR (a)                   GETSSRBITS(a,  1)                    /* DF+017 (new RTCM) */
     779#define D_GNSS_FREQUENCY_MASK (a)                       GETSSRBITS(a,  6)                    /* DF+018 (new RTCM) */
     780#define D_NADIR_CORR_INDICATOR(a)                       GETSSRBITS(a,  1)                    /* DF+019 (new RTCM) */
     781#define D_NADIR_CORRECTION(a)                           GETSSRFLOATSIGN(a, 12, 1/1000.0)     /* DF+020 (new RTCM) in [m] */
     782#define D_NADIR_ANGLE_DEPENDENT_CORRECTION(a, nbits)    GETSSRFLOATSIGN(a,  3 + nbits, 1/1000.0) /* DF+021 (new RTCM) in [m]; can be extended up to 15/18 Bits from DF+015*/
    716783/*
    717 //Decoding
    718 #define G_NEW_PAR(a, nbits)        GETSSRBITS(a, nbits)            //called as G_NEW_PAR(co->NewPar, co->NewParNumBits)
    719 #define G_NEW_PAR_SCALE(a, nbits)  GETSSRFLOAT(a, nbits, 10000.0)  //called as G_NEW_PAR(co->NewPar, co->NewParNumBits)
     784//Decoding 
     785#define D_NEW_PAR(a, nbits)        GETSSRBITS(a, nbits)            //called as D_NEW_PAR(co->NewPar, co->NewParNumBits)
     786#define D_NEW_PAR_SCALE(a, nbits)  GETSSRFLOAT(a, nbits, 10000.0)  //called as D_NEW_PAR(co->NewPar, co->NewParNumBits)
    720787*/
    721 
    722 /* Ionosphere */
    723 #define G_NO_IONO_LAYERS(a) {unsigned int temp; GETSSRBITS(temp, 2) a = temp+1;} /* DF472, IDF035 */
    724 #define G_IONO_HEIGHT(a)                 GETSSRFLOAT(a, 8 ,    10000.0)          /* DF473, IDF036 */
    725 #define G_IONO_DEGREE(a)    {unsigned int temp; GETSSRBITS(temp, 4) a = temp+1;} /* DF474, IDF037 */
    726 #define G_IONO_ORDER(a)     {unsigned int temp; GETSSRBITS(temp, 4) a = temp+1;} /* DF475, IDF038 */
    727 #define G_IONO_COEFF_C(a)                GETSSRFLOATSIGN(a, 16,1/200.0)          /* DF476, IDF039 */
    728 #define G_IONO_COEFF_S(a)                GETSSRFLOATSIGN(a, 16,1/200.0)          /* DF477, IDF040 */
    729 #define G_VTEC_QUALITY_INDICATOR(a)      GETSSRFLOAT     (a, 9, 1/20.0)          /* DF478, IDF041 */
     788/* Grid Messages */
     789#define D_GRID_ID(a)                                    GETSSRBITS(a, 10)                     /* DF+022 (new RTCM) */
     790#define D_GRID_TYPE(a)                                  GETSSRBITS(a,  3)                     /* DF+023 (new RTCM) */
     791#define D_LATITUDE_OF_REFERENCE_POINT(a)                GETSSRFLOATSIGN(a, 18, 1/1000.0)      /* DF+024 (new RTCM) */
     792#define D_LONGITUDE_OF_REFERENCE_POINT(a)               GETSSRFLOATSIGN(a, 19, 1/1000.0)      /* DF+025 (new RTCM) */
     793#define D_ELLIPSOIDAL_HEIGHT_OF_REFERENCE_POINT(a) {unsigned int temp; GETSSRFLOAT(temp, 10, 12.5) a = temp - 1000.0;} /* DF+026 (new RTCM) */
     794#define D_NUMNBER_OF_RELATIVE_POINTS(a)                 GETSSRBITS(a,  8)                     /* DF+027 (new RTCM) */
     795#define D_RELATIVE_LATITUDE(a)                          GETSSRFLOATSIGN(a, 13, 1/1000.0)      /* DF+028 (new RTCM) */
     796#define D_RELATIVE_LONGITUDE(a)                         GETSSRFLOATSIGN(a, 14, 1/1000.0)      /* DF+029 (new RTCM) */
     797#define D_RELATIVE_HIGHT(a)                             GETSSRFLOATSIGN(a,  9, 12.5)          /* DF+030 (new RTCM) */
     798#define D_NUMBER_OF_POINTS_IN_LATITIDE_DIRECTION(a)     GETSSRBITS(a,  6)                     /* DF+031 (new RTCM) */
     799#define D_NUMBER_OF_POINTS_IN_LONGITUDE_DIRECTION(a)    GETSSRBITS(a,  6)                     /* DF+032 (new RTCM) */
     800#define D_GRID_STEP_SIZE_IN_LATITIDE_DIRECTION(a)       GETSSRFLOAT(a,  9, 1/100.0)           /* DF+033 (new RTCM) */
     801#define D_GRID_STEP_SIZE_IN_LONGITUDE_DIRECTION(a)      GETSSRFLOAT(a, 10, 1/100.0)           /* DF+034 (new RTCM) */
     802#define D_GRID_MASK_AVAILABILITY_FLAG(a)                GETSSRBITS(a,  1)                     /* DF+035 (new RTCM) */
     803#define D_GRID_MASK(a, nbits)                           GETSSRBITS(a, nbits)                  /* DF+036 (new RTCM) nbits from DF+031 or DF+032 */
     804
     805/* Troposphere Messages */
     806#define D_HYDROSTATIC_MAPPING_FUNCTION_PAR_AH(a)  {unsigned int dah; GETSSRFLOATSIGN(dah, 11, 2.5/10000000.0) a = dah + 0.00118;}  /* DF+038 (new RTCM) */
     807#define D_HYDROSTATIC_MAPPING_FUNCTION_PAR_BH(a)  {unsigned int dbh; GETSSRFLOATSIGN(dbh,  9, 5/1000000.0)    a = dbh + 0.00298;}  /* DF+039 (new RTCM) */
     808#define D_HYDROSTATIC_MAPPING_FUNCTION_PAR_CH(a)  {unsigned int dch; GETSSRFLOATSIGN(dch,  9, 2/10000.0)      a = dch + 0.0682;}   /* DF+040 (new RTCM) */
     809#define D_WET_MAPPING_FUNCTION_PAR_AW(a)          {unsigned int daw; GETSSRFLOATSIGN(daw, 13, 1/1000000.0)    a = daw + 0.000104;} /* DF+041 (new RTCM) */
     810#define D_WET_MAPPING_FUNCTION_PAR_BW(a)          {unsigned int dbw; GETSSRFLOATSIGN(dbw,  6, 2.5/100000.0)   a = dbw + 0.0015;}   /* DF+042 (new RTCM) */
     811#define D_WET_MAPPING_FUNCTION_PAR_CW(a)          {unsigned int dcw; GETSSRFLOATSIGN(dcw,  5, 2/1000.0 )      a = dcw + 0.0048;}   /* DF+043 (new RTCM) */
     812#define D_HYDROSTATIC_OFFSET(a)                   {unsigned int dho; GETSSRFLOATSIGN(dho, 13, 1/10000.0) a = dho + 2.3 }  /* DF+044 (new RTCM) [0.1 mm] => [m] +2.3 m */
     813#define D_HYDROSTATIC_GRADIENT_LATITUDE_DIRECTION(a)                 GETSSRFLOATSIGN(a, 15, 1/100000.0)                   /* DF+045 (new RTCM) [0.01 mm] => [m]*/
     814#define D_HYDROSTATIC_GRADIENT_LONGITUDE_DIRECTION(a)                GETSSRFLOATSIGN(a, 15, 1/100000.0)                   /* DF+046 (new RTCM) [0.01 mm] => [m]*/
     815#define D_WET_OFFSET(a)                           {unsigned int dwo; GETSSRFLOATSIGN(dwo, 13, 1/10000.0) a = dwo + 0.252 }/* DF+047 (new RTCM) [0.1 mm] => [m] +0.252 m */
     816#define D_WET_GRADIENT_LATITUDE_DIRECTION(a)                         GETSSRFLOATSIGN(a, 15, 1/100000.0)                   /* DF+048 (new RTCM) */
     817#define D_WET_GRADIENT_LONGITUDE_DIRECTION(a)                        GETSSRFLOATSIGN(a, 15, 1/100000.0)                   /* DF+049 (new RTCM) */
     818#define D_HYDTOSTATIC_GRID_POINT_RESIDUAL_LENGTH(a)                  GETSSRBITS(a,  4)                                    /* DF+050 (new RTCM) */
     819#define D_WET_GRID_POINT_RESIDUAL_LENGTH(a)                          GETSSRBITS(a,  4)                                    /* DF+051 (new RTCM) */
     820#define D_HYDTOSTATIC_GRID_POINT_RESIDUAL(a, nbits)                  GETSSRFLOATSIGN(a, nbits, 1/10000.0)                 /* DF+052 (new RTCM) size depends on DF+050 */
     821#define D_WET_GRID_POINT_RESIDUAL(a, nbits)                          GETSSRFLOATSIGN(a, nbits, 1/10000.0)                 /* DF+053 (new RTCM) size depends on DF+051 */
     822
     823#define D_SSR_EPOCH_TIME(a)                                          GETSSRBITS(a,  20)                                   /* DF*055 (new RTCM) same definition as in IGS-SSR */ 
     824
     825/* Ionosphere Messages */
     826#define D_ZENITH_MAPPED_STEC_POLYNOM_COEFF_C00(a)                     GETSSRFLOATSIGN(a, 17, 1/1000.0)   /* DF+057 (new RTCM)  */
     827#define D_ZENITH_MAPPED_STEC_POLYNOM_COEFF_C01(a)                     GETSSRFLOATSIGN(a, 18, 1/10000.0)  /* DF+058 (new RTCM)  */
     828#define D_ZENITH_MAPPED_STEC_POLYNOM_COEFF_C10(a)                     GETSSRFLOATSIGN(a, 18, 1/10000.0)  /* DF+059 (new RTCM)  */
     829#define D_ZENITH_MAPPED_STEC_POLYNOMIAL_GRADIENT_INDICATOR(a)         GETSSRBITS(a,  1)                  /* DF+060 (new RTCM)  */
     830#define D_ZENITH_MAPPED_STEC_GRID_POINT_RESIDUAL(a)                   GETSSRBITS(a,  5)                  /* DF+061 (new RTCM) size required for DF+062 */     
     831#define D_ZENITH_MAPPED_STEC_GRID_POINT_RESIDUAL_CORRECTION(a, nbits) GETSSRBITSSIGN(a,  nbits)          /* DF+062 (new RTCM) nbits depends on DF+061 */                       
     832
     833/* Metadata */
     834#define D_NUMBER_OF_SSR_MODEL_CORRECTION_ENTRIES(a)     GETSSRBITS(a,  5)                     /* DF+063 (new RTCM) */   
     835#define D_MODEL_CORRECTION_TYPE_INDICATOR(a)            GETSSRBITS(a,  5)                     /* DF+064 (new RTCM) */
     836#define D_MODEL_CORRECTION_APPLICATION_INDICATOR(a)     GETSSRBITS(a,  1)                     /* DF+065 (new RTCM) */
     837#define D_NON_DEFAULT_MODEL_CORRECTION_INDICATOR(a)     GETSSRBITS(a,  1)                     /* DF+066 (new RTCM) */
     838#define D_NON_DEFAULT_MODEL_CORRECTION_IDENTIFIER(a)    GETSSRBITS(a,  3)                     /* DF+067 (new RTCM) */
     839#define D_MODEL_CORRECTION_DATA_IOD_INDICATOR(a)        GETSSRBITS(a,  1)                     /* DF+068 (new RTCM) */
     840#define D_MODEL_CORRECTION_DATA_IOD(a)                  GETSSRBITS(a,  6)                     /* DF+069 (new RTCM) */
     841#define D_ADDITIONAL_MODEL_PARAMETER_INDICATOR(a)       GETSSRBITS(a,  1)                     /* DF+070 (new RTCM) */
     842#define D_NUMBER_OF_ADDITIONAL_MODEL_PARAMETER_BITS(a)  GETSSRBITS(a,  8)                     /* DF+071 (new RTCM) */ 
     843#define D_ADDITIONAL_MODEL_PARAMETER_DATA(a, nbits)     GETSSRBITS(a,  nbits)                 /* DF+072 (new RTCM) nbits from DF+071*/
     844
     845#define D_ZENITH_MAPPED_STEC_GRID_POINT_RESIDUAL_RESOLUTION_SCALE_FACTOR_EXPONENT(a)   GETSSRBITS(a,  3) /* DF+073 (new RTCM) */ 
     846
     847#define D_QZSS_SATELLITE_ID(a)                          GETSSRBITS(a,  6)                    /* DF+080 (new RTCM) */
     848
     849#define D_GRID_POINT_LATITUDE_MASK(a, nbits)            GETSSRBITS(a, nbits)                 /* DF+090 (new RTCM) nbits corresponds to DF+031*/
     850#define D_GRID_POINT_LONGIITUDE_MASK(a, nbits)          GETSSRBITS(a, nbits)                 /* DF+091 (new RTCM) nbits corresponds to DF+032*/
     851#define D_EXCLUDED_GRID_POINT_MASK(a, nbits)            GETSSRBITS(a, nbits)                 /* DF+092 (new RTCM) nbits corresponds to DF+090 * DF091 */
     852
     853#define D_GRID_POINT_OFFSET(a)                          GETSSRBITS(a, 12)                    /* DF+094 (new RTCM) */
     854
     855#define D_PLYNOMIAL_MODEL_INDICATOR(a)                  GETSSRBITS(a,  1)                    /* DF+096 (new RTCM) */
     856#define D_GNSS_IDENTIFIER(a)                            GETSSRBITS(a,  4)                    /* DF+097 (new RTCM) */
     857#define D_GNSS_BE_IDENTYFIER(a)                         GETSSRBITS(a,  4)                    /* DF+098 (new RTCM) */
     858#define D_RESIDUAL_MODEL_IDENTUICATOR(a)                GETSSRBITS(a,  1)                    /* DF+099 (new RTCM) */
     859#define D_NUMBER_OF_GRID_POINTS(a)                      GETSSRBITS(a,  1)                    /* DF+100 (new RTCM) */
    730860
    731861};
  • trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_igs.cpp

    r10987 r10990  
    6767    if (status[s][COBOFS_ORBIT]) {
    6868      INITBLOCK
    69             T_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)
    70       T_IGS_SSR_VERSION(IGS_SSR_VERSION)
    71             T_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_ORBIT)
    72             T_GPS_EPOCH_TIME(co->EpochTime[s])
    73       T_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    74             T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    75       T_SSR_IOD(co->SSRIOD)
    76       T_SSR_PROVIDER_ID(co->SSRProviderID)
    77       T_SSR_SOLUTION_ID(co->SSRSolutionID)
    78             T_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
    79       T_NO_OF_SATELLITES(co->NumberOfSat[s])
     69            E_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)
     70      E_IGS_SSR_VERSION(IGS_SSR_VERSION)
     71            E_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_ORBIT)
     72            E_GPS_EPOCH_TIME(co->EpochTime[s])
     73      E_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     74            E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     75      E_SSR_IOD(co->SSRIOD)
     76      E_SSR_PROVIDER_ID(co->SSRProviderID)
     77      E_SSR_SOLUTION_ID(co->SSRSolutionID)
     78            E_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
     79      E_NO_OF_SATELLITES(co->NumberOfSat[s])
    8080      for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) {
    81         T_GPS_SATELLITE_ID(co->Sat[i].ID)
    82         T_GPS_IODE(co->Sat[i].IOD)
    83         T_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)
    84         T_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)
    85         T_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)
    86         T_DELTA_DOT_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)
    87         T_DELTA_DOT_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)
    88         T_DELTA_DOT_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)
     81        E_GPS_SATELLITE_ID(co->Sat[i].ID)
     82        E_GPS_IODE(co->Sat[i].IOD)
     83        E_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)
     84        E_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)
     85        E_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)
     86        E_DOT_DELTA_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)
     87        E_DOT_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)
     88        E_DOT_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)
    8989      }
    9090      ENDBLOCK
     
    9292    if (status[s][COBOFS_CLOCK]) {
    9393      INITBLOCK
    94             T_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)
    95       T_IGS_SSR_VERSION(IGS_SSR_VERSION)
    96             T_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_CLOCK)
    97             T_GPS_EPOCH_TIME(co->EpochTime[s])
    98       T_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    99             T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    100       T_SSR_IOD(co->SSRIOD)
    101       T_SSR_PROVIDER_ID(co->SSRProviderID)
    102       T_SSR_SOLUTION_ID(co->SSRSolutionID)
    103       T_NO_OF_SATELLITES(co->NumberOfSat[s])
     94            E_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)
     95      E_IGS_SSR_VERSION(IGS_SSR_VERSION)
     96            E_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_CLOCK)
     97            E_GPS_EPOCH_TIME(co->EpochTime[s])
     98      E_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     99            E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     100      E_SSR_IOD(co->SSRIOD)
     101      E_SSR_PROVIDER_ID(co->SSRProviderID)
     102      E_SSR_SOLUTION_ID(co->SSRSolutionID)
     103      E_NO_OF_SATELLITES(co->NumberOfSat[s])
    104104      for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) {
    105         T_GPS_SATELLITE_ID(co->Sat[i].ID)
    106         T_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)
    107         T_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)
    108         T_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)
     105        E_GPS_SATELLITE_ID(co->Sat[i].ID)
     106        E_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)
     107        E_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)
     108        E_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)
    109109      }
    110110      ENDBLOCK
     
    124124#endif
    125125      INITBLOCK
    126             T_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)
    127       T_IGS_SSR_VERSION(IGS_SSR_VERSION)
    128             T_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_COMBINED)
    129             T_GPS_EPOCH_TIME(co->EpochTime[s])
    130       T_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     126            E_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)
     127      E_IGS_SSR_VERSION(IGS_SSR_VERSION)
     128            E_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_COMBINED)
     129            E_GPS_EPOCH_TIME(co->EpochTime[s])
     130      E_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    131131#ifdef SPLITBLOCK
    132       T_MULTIPLE_MESSAGE_INDICATOR((moremessagesfollow || left) ? 1 : 0)
     132      E_MULTIPLE_MESSAGE_INDICATOR((moremessagesfollow || left) ? 1 : 0)
    133133#else
    134       T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    135 #endif
    136       T_SSR_IOD(co->SSRIOD)
    137       T_SSR_PROVIDER_ID(co->SSRProviderID)
    138       T_SSR_SOLUTION_ID(co->SSRSolutionID)
    139           T_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
     134      E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     135#endif
     136      E_SSR_IOD(co->SSRIOD)
     137      E_SSR_PROVIDER_ID(co->SSRProviderID)
     138      E_SSR_SOLUTION_ID(co->SSRSolutionID)
     139          E_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
    140140#ifdef SPLITBLOCK
    141       T_NO_OF_SATELLITES(nums)
     141      E_NO_OF_SATELLITES(nums)
    142142      for(i = start; i < start+nums; ++i) {
    143143#else
    144       T_NO_OF_SATELLITES(co->NumberOfSat[s])
     144      E_NO_OF_SATELLITES(co->NumberOfSat[s])
    145145      for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) {
    146146#endif
    147         T_GPS_SATELLITE_ID(co->Sat[i].ID)
    148         T_GPS_IODE(co->Sat[i].IOD)
    149         T_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)
    150         T_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)
    151         T_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)
    152         T_DELTA_DOT_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)
    153         T_DELTA_DOT_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)
    154         T_DELTA_DOT_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)
    155         T_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)
    156         T_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)
    157         T_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)
     147        E_GPS_SATELLITE_ID(co->Sat[i].ID)
     148        E_GPS_IODE(co->Sat[i].IOD)
     149        E_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)
     150        E_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)
     151        E_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)
     152        E_DOT_DELTA_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)
     153        E_DOT_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)
     154        E_DOT_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)
     155        E_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)
     156        E_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)
     157        E_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)
    158158      }
    159159      ENDBLOCK
     
    167167    if (status[s][COBOFS_HR]) {
    168168      INITBLOCK
    169             T_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)
    170       T_IGS_SSR_VERSION(IGS_SSR_VERSION)
    171             T_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_HR)
    172             T_GPS_EPOCH_TIME(co->EpochTime[s])
    173       T_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    174             T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    175       T_SSR_IOD(co->SSRIOD)
    176       T_SSR_PROVIDER_ID(co->SSRProviderID)
    177       T_SSR_SOLUTION_ID(co->SSRSolutionID)
    178       T_NO_OF_SATELLITES(co->NumberOfSat[s])
     169            E_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)
     170      E_IGS_SSR_VERSION(IGS_SSR_VERSION)
     171            E_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_HR)
     172            E_GPS_EPOCH_TIME(co->EpochTime[s])
     173      E_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     174            E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     175      E_SSR_IOD(co->SSRIOD)
     176      E_SSR_PROVIDER_ID(co->SSRProviderID)
     177      E_SSR_SOLUTION_ID(co->SSRSolutionID)
     178      E_NO_OF_SATELLITES(co->NumberOfSat[s])
    179179      for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) {
    180         T_GPS_SATELLITE_ID(co->Sat[i].ID)
    181         T_HR_CLOCK_CORRECTION(co->Sat[i].hrclock)
     180        E_GPS_SATELLITE_ID(co->Sat[i].ID)
     181        E_HR_CLOCK_CORRECTION(co->Sat[i].hrclock)
    182182      }
    183183      ENDBLOCK
     
    185185    if (status[s][COBOFS_URA]) {
    186186      INITBLOCK
    187             T_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)
    188       T_IGS_SSR_VERSION(IGS_SSR_VERSION)
    189             T_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_URA)
    190             T_GPS_EPOCH_TIME(co->EpochTime[s])
    191       T_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    192             T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    193       T_SSR_IOD(co->SSRIOD)
    194       T_SSR_PROVIDER_ID(co->SSRProviderID)
    195       T_SSR_SOLUTION_ID(co->SSRSolutionID)
    196       T_NO_OF_SATELLITES(co->NumberOfSat[s])
     187            E_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)
     188      E_IGS_SSR_VERSION(IGS_SSR_VERSION)
     189            E_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_URA)
     190            E_GPS_EPOCH_TIME(co->EpochTime[s])
     191      E_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     192            E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     193      E_SSR_IOD(co->SSRIOD)
     194      E_SSR_PROVIDER_ID(co->SSRProviderID)
     195      E_SSR_SOLUTION_ID(co->SSRSolutionID)
     196      E_NO_OF_SATELLITES(co->NumberOfSat[s])
    197197      for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) {
    198         T_GPS_SATELLITE_ID(co->Sat[i].ID)
    199         T_SSR_URA(ValueToURA(co->Sat[i].UserRangeAccuracy))
     198        E_GPS_SATELLITE_ID(co->Sat[i].ID)
     199        E_SSR_URA(ValueToURA(co->Sat[i].UserRangeAccuracy))
    200200      }
    201201      ENDBLOCK
     
    214214    if (b->NumberOfSat[s] && (type == CBTYPE_AUTO || type == corbase[s] + COBOFS_CBIAS)) {
    215215      INITBLOCK
    216             T_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)
    217       T_IGS_SSR_VERSION(IGS_SSR_VERSION)
    218             T_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_CBIAS)
    219             T_GPS_EPOCH_TIME(b->EpochTime[s])
    220       T_SSR_UPDATE_INTERVAL(b->UpdateInterval)
    221             T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    222       T_SSR_IOD(b->SSRIOD)
    223       T_SSR_PROVIDER_ID(b->SSRProviderID)
    224       T_SSR_SOLUTION_ID(b->SSRSolutionID)
    225       T_NO_OF_SATELLITES(b->NumberOfSat[s])
     216            E_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)
     217      E_IGS_SSR_VERSION(IGS_SSR_VERSION)
     218            E_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_CBIAS)
     219            E_GPS_EPOCH_TIME(b->EpochTime[s])
     220      E_SSR_UPDATE_INTERVAL(b->UpdateInterval)
     221            E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     222      E_SSR_IOD(b->SSRIOD)
     223      E_SSR_PROVIDER_ID(b->SSRProviderID)
     224      E_SSR_SOLUTION_ID(b->SSRSolutionID)
     225      E_NO_OF_SATELLITES(b->NumberOfSat[s])
    226226      for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) {
    227         T_GPS_SATELLITE_ID(b->Sat[i].ID)
    228         T_NO_OF_BIASES(b->Sat[i].NumberOfCodeBiases)
     227        E_GPS_SATELLITE_ID(b->Sat[i].ID)
     228        E_NO_OF_BIASES(b->Sat[i].NumberOfCodeBiases)
    229229        for (j = 0; j < b->Sat[i].NumberOfCodeBiases; ++j) {
    230           T_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)
    231           T_CODE_BIAS(b->Sat[i].Biases[j].Bias)
     230          E_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)
     231          E_CODE_BIAS(b->Sat[i].Biases[j].Bias)
    232232        }
    233233      }
     
    247247    if (b->NumberOfSat[s] && (type == PBTYPE_AUTO || type == corbase[s] + COBOFS_PBIAS)) {
    248248      INITBLOCK
    249             T_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)
    250       T_IGS_SSR_VERSION(IGS_SSR_VERSION)
    251             T_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_PBIAS)
    252             T_GPS_EPOCH_TIME(b->EpochTime[s])
    253       T_SSR_UPDATE_INTERVAL(b->UpdateInterval)
    254             T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    255       T_SSR_IOD(b->SSRIOD)
    256       T_SSR_PROVIDER_ID(b->SSRProviderID)
    257       T_SSR_SOLUTION_ID(b->SSRSolutionID)
    258       T_DISPERSIVE_BIAS_INDICATOR(b->DispersiveBiasConsistencyIndicator ? 1 : 0)
    259       T_MW_CONSISTENCY_INDICATOR(b->MWConsistencyIndicator ? 1 : 0)
    260       T_NO_OF_SATELLITES(b->NumberOfSat[s])
     249            E_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)
     250      E_IGS_SSR_VERSION(IGS_SSR_VERSION)
     251            E_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_PBIAS)
     252            E_GPS_EPOCH_TIME(b->EpochTime[s])
     253      E_SSR_UPDATE_INTERVAL(b->UpdateInterval)
     254            E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     255      E_SSR_IOD(b->SSRIOD)
     256      E_SSR_PROVIDER_ID(b->SSRProviderID)
     257      E_SSR_SOLUTION_ID(b->SSRSolutionID)
     258      E_DISPERSIVE_BIAS_INDICATOR(b->DispersiveBiasConsistencyIndicator ? 1 : 0)
     259      E_MW_CONSISTENCY_INDICATOR(b->MWConsistencyIndicator ? 1 : 0)
     260      E_NO_OF_SATELLITES(b->NumberOfSat[s])
    261261      for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) {
    262         T_GPS_SATELLITE_ID(b->Sat[i].ID)
    263         T_NO_OF_BIASES(b->Sat[i].NumberOfPhaseBiases)
    264         T_YAW_ANGLE(b->Sat[i].YawAngle)
    265         T_YAW_RATE(b->Sat[i].YawRate)
     262        E_GPS_SATELLITE_ID(b->Sat[i].ID)
     263        E_NO_OF_BIASES(b->Sat[i].NumberOfPhaseBiases)
     264        E_YAW_ANGLE(b->Sat[i].YawAngle)
     265        E_YAW_RATE(b->Sat[i].YawRate)
    266266        for (j = 0; j < b->Sat[i].NumberOfPhaseBiases; ++j) {
    267           T_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)
    268           T_INTEGER_INDICATOR(b->Sat[i].Biases[j].SignalIntegerIndicator ? 1 : 0)
    269           T_WIDE_LANE_INDICATOR(b->Sat[i].Biases[j].SignalsWideLaneIntegerIndicator)
    270           T_DISCONTINUITY_COUNTER(b->Sat[i].Biases[j].SignalDiscontinuityCounter)
    271           T_PHASE_BIAS(b->Sat[i].Biases[j].Bias)
     267          E_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)
     268          E_INTEGER_INDICATOR(b->Sat[i].Biases[j].SignalIntegerIndicator ? 1 : 0)
     269          E_WIDE_LANE_INDICATOR(b->Sat[i].Biases[j].SignalsWideLaneIntegerIndicator)
     270          E_DISCONTINUITY_COUNTER(b->Sat[i].Biases[j].SignalDiscontinuityCounter)
     271          E_PHASE_BIAS_CORRECTION(b->Sat[i].Biases[j].Bias)
    272272        }
    273273      }
     
    284284    INITBLOCK
    285285
    286   T_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)
    287   T_IGS_SSR_VERSION(IGS_SSR_VERSION)
    288   T_IGS_MESSAGE_NUMBER(VTEC_BASE)
    289   T_GPS_EPOCH_TIME(v->EpochTime)
    290   T_SSR_UPDATE_INTERVAL(v->UpdateInterval)
    291   T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    292   T_SSR_IOD(v->SSRIOD)
    293   T_SSR_PROVIDER_ID(v->SSRProviderID)
    294   T_SSR_SOLUTION_ID(v->SSRSolutionID)
    295   T_VTEC_QUALITY_INDICATOR(v->Quality)
    296   T_NO_IONO_LAYERS(v->NumLayers)
     286  E_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)
     287  E_IGS_SSR_VERSION(IGS_SSR_VERSION)
     288  E_IGS_MESSAGE_NUMBER(VTEC_BASE)
     289  E_GPS_EPOCH_TIME(v->EpochTime)
     290  E_SSR_UPDATE_INTERVAL(v->UpdateInterval)
     291  E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     292  E_SSR_IOD(v->SSRIOD)
     293  E_SSR_PROVIDER_ID(v->SSRProviderID)
     294  E_SSR_SOLUTION_ID(v->SSRSolutionID)
     295  E_VTEC_QUALITY_INDICATOR(v->Quality)
     296  E_NO_IONO_LAYERS(v->NumLayers)
    297297  for (l = 0; l < v->NumLayers; ++l) {
    298     T_IONO_HEIGHT(v->Layers[l].Height)
    299     T_IONO_DEGREE(v->Layers[l].Degree)
    300     T_IONO_ORDER(v->Layers[l].Order)
     298    E_IONO_HEIGHT(v->Layers[l].Height)
     299    E_IONO_DEGREE(v->Layers[l].Degree)
     300    E_IONO_ORDER(v->Layers[l].Order)
    301301    for (o = 0; o <= v->Layers[l].Order; ++o) {
    302302      for (d = o; d <= v->Layers[l].Degree; ++d) {
    303         T_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])
     303        E_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])
    304304      }
    305305    }
    306306    for (o = 1; o <= v->Layers[l].Order; ++o) {
    307307      for (d = o; d <= v->Layers[l].Degree; ++d) {
    308         T_IONO_COEFF_S(v->Layers[l].Sinus[d][o])
     308        E_IONO_COEFF_S(v->Layers[l].Sinus[d][o])
    309309      }
    310310    }
     
    317317    struct PhaseBias *pb, const char *buffer, size_t size, int *bytesused) {
    318318  int mmi = 0, h, rs;
    319   unsigned int rtcmtype, igstype, pos, i, j, s, nums, id, version;
     319  unsigned int igstype, pos, i, j, s, nums, id;
     320  unsigned int rtcmtype, version;
    320321  size_t sizeofrtcmblock;
    321322  const char *blockstart = buffer;
     
    329330#endif
    330331
    331   G_HEADER(h)
    332   G_RESERVEDH(rs)
    333   G_SIZE(sizeofrtcmblock);
     332  D_HEADER(h)
     333  D_RESERVEDH(rs)
     334  D_SIZE(sizeofrtcmblock);
    334335
    335336  if ((unsigned char) h != 0xD3 || rs)
     
    344345  size = sizeofrtcmblock; /* reduce size, so overflows are detected */
    345346
    346   G_RTCM_MESSAGE_NUMBER(rtcmtype)
    347   G_IGS_SSR_VERSION(version)
     347  D_RTCM_MESSAGE_NUMBER(rtcmtype)
     348  D_IGS_SSR_VERSION(version)
    348349#ifdef BNC_DEBUG_SSR
    349350  fprintf(stderr, "rtcmType %d igsVersion %d ", rtcmtype, version);
    350351#endif
    351   G_IGS_MESSAGE_NUMBER(igstype)
     352  D_IGS_MESSAGE_NUMBER(igstype)
    352353#ifdef BNC_DEBUG_SSR
    353354  fprintf(stderr, "igsType IM%d size %d\n", igstype,(int)sizeofrtcmblock);
     
    361362      return GCOBR_NOVTECPARAMETER;
    362363    memset(v, 0, sizeof(*v));
    363     G_GPS_EPOCH_TIME(v->EpochTime)
    364     G_SSR_UPDATE_INTERVAL(v->UpdateInterval)
    365     G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    366     G_SSR_IOD(v->SSRIOD)
    367     G_SSR_PROVIDER_ID(v->SSRProviderID)
    368     G_SSR_SOLUTION_ID(v->SSRSolutionID)
    369     G_VTEC_QUALITY_INDICATOR(v->Quality)
    370     G_NO_IONO_LAYERS(v->NumLayers)
     364    D_GPS_EPOCH_TIME(v->EpochTime)
     365    D_SSR_UPDATE_INTERVAL(v->UpdateInterval)
     366    D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     367    D_SSR_IOD(v->SSRIOD)
     368    D_SSR_PROVIDER_ID(v->SSRProviderID)
     369    D_SSR_SOLUTION_ID(v->SSRSolutionID)
     370    D_VTEC_QUALITY_INDICATOR(v->Quality)
     371    D_NO_IONO_LAYERS(v->NumLayers)
    371372#ifdef BNC_DEBUG_SSR
    372373          fprintf(stderr, "epochTime %d ui %d mmi %d ssrIod %d providerId %d solId %d vtecQ %8.3f numLay %d \n",
     
    375376#endif
    376377    for (l = 0; l < v->NumLayers; ++l) {
    377       G_IONO_HEIGHT(v->Layers[l].Height)
    378       G_IONO_DEGREE(v->Layers[l].Degree)
    379       G_IONO_ORDER(v->Layers[l].Order)
     378      D_IONO_HEIGHT(v->Layers[l].Height)
     379      D_IONO_DEGREE(v->Layers[l].Degree)
     380      D_IONO_ORDER(v->Layers[l].Order)
    380381#ifdef BNC_DEBUG_SSR
    381382          fprintf(stderr, "h  %8.3f deg %d ord %d \n",
     
    384385      for (o = 0; o <= v->Layers[l].Order; ++o) {
    385386        for (d = o; d <= v->Layers[l].Degree; ++d) {
    386           G_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])
     387          D_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])
    387388#ifdef BNC_DEBUG_SSR
    388389          fprintf(stderr, "C[%02d][%02d]  %8.3f \n",
     
    393394      for (o = 1; o <= v->Layers[l].Order; ++o) {
    394395        for (d = o; d <= v->Layers[l].Degree; ++d) {
    395           G_IONO_COEFF_S(v->Layers[l].Sinus[d][o])
     396          D_IONO_COEFF_S(v->Layers[l].Sinus[d][o])
    396397#ifdef BNC_DEBUG_SSR
    397398          fprintf(stderr, "S[%02d][%02d]  %8.3f \n",
     
    415416            return GCOBR_NOCLOCKORBITPARAMETER;
    416417          co->messageType = igstype;
    417           G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    418           G_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    419           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    420           G_SSR_IOD(co->SSRIOD)
    421           G_SSR_PROVIDER_ID(co->SSRProviderID)
    422           G_SSR_SOLUTION_ID(co->SSRSolutionID)
    423           G_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
    424           G_NO_OF_SATELLITES(nums)
     418          D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     419          D_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     420          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     421          D_SSR_IOD(co->SSRIOD)
     422          D_SSR_PROVIDER_ID(co->SSRProviderID)
     423          D_SSR_SOLUTION_ID(co->SSRSolutionID)
     424          D_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
     425          D_NO_OF_SATELLITES(nums)
    425426          co->Supplied[COBOFS_ORBIT] |= 1;
    426427#ifdef BNC_DEBUG_SSR
     
    430431#endif
    431432          for (i = 0; i < nums; ++i) {
    432             G_GPS_SATELLITE_ID(id)
     433            D_GPS_SATELLITE_ID(id)
    433434            for (pos = satoffset[s];
    434435                pos < satoffset[s] + co->NumberOfSat[s] && co->Sat[pos].ID != id;
     
    440441              ++co->NumberOfSat[s];
    441442            co->Sat[pos].ID = id;
    442             G_GPS_IODE(co->Sat[pos].IOD)
    443             G_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)
    444             G_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)
    445             G_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)
    446             G_DELTA_DOT_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)
    447             G_DELTA_DOT_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)
    448             G_DELTA_DOT_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)
     443            D_GPS_IODE(co->Sat[pos].IOD)
     444            D_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)
     445            D_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)
     446            D_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)
     447            D_DOT_DELTA_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)
     448            D_DOT_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)
     449            D_DOT_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)
    449450#ifdef BNC_DEBUG_SSR
    450451            fprintf(stderr, "id %2d iod %3d dr %8.4f da %8.4f dc %8.4f dr %8.3f da %8.3f dc %8.3f\n",
     
    461462            return GCOBR_NOCLOCKORBITPARAMETER;
    462463          co->messageType = igstype;
    463           G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    464           G_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    465           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    466           G_SSR_IOD(co->SSRIOD)
    467           G_SSR_PROVIDER_ID(co->SSRProviderID)
    468           G_SSR_SOLUTION_ID(co->SSRSolutionID)
    469           G_NO_OF_SATELLITES(nums)
     464          D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     465          D_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     466          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     467          D_SSR_IOD(co->SSRIOD)
     468          D_SSR_PROVIDER_ID(co->SSRProviderID)
     469          D_SSR_SOLUTION_ID(co->SSRSolutionID)
     470          D_NO_OF_SATELLITES(nums)
    470471          co->Supplied[COBOFS_CLOCK] |= 1;
    471472#ifdef BNC_DEBUG_SSR
     
    475476#endif
    476477          for (i = 0; i < nums; ++i) {
    477             G_GPS_SATELLITE_ID(id)
     478            D_GPS_SATELLITE_ID(id)
    478479            for (pos = satoffset[s];
    479480                pos < satoffset[s] + co->NumberOfSat[s] && co->Sat[pos].ID != id;
     
    485486              ++co->NumberOfSat[s];
    486487            co->Sat[pos].ID = id;
    487             G_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)
    488             G_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)
    489             G_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)
     488            D_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)
     489            D_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)
     490            D_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)
    490491#ifdef BNC_DEBUG_SSR
    491492            fprintf(stderr, "id %2d c0 %8.3f c1 %8.3f c2 %8.3f\n",
     
    499500            return GCOBR_NOCLOCKORBITPARAMETER;
    500501          co->messageType = igstype;
    501           G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    502           G_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    503           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    504           G_SSR_IOD(co->SSRIOD)
    505           G_SSR_PROVIDER_ID(co->SSRProviderID)
    506           G_SSR_SOLUTION_ID(co->SSRSolutionID)
    507           G_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
    508           G_NO_OF_SATELLITES(nums)
     502          D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     503          D_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     504          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     505          D_SSR_IOD(co->SSRIOD)
     506          D_SSR_PROVIDER_ID(co->SSRProviderID)
     507          D_SSR_SOLUTION_ID(co->SSRSolutionID)
     508          D_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
     509          D_NO_OF_SATELLITES(nums)
    509510          co->Supplied[COBOFS_ORBIT] |= 1;
    510511          co->Supplied[COBOFS_CLOCK] |= 1;
     
    515516#endif
    516517          for (i = 0; i < nums; ++i) {
    517             G_GPS_SATELLITE_ID(id)
     518            D_GPS_SATELLITE_ID(id)
    518519            for (pos = satoffset[s];
    519520                pos < satoffset[s] + co->NumberOfSat[s] && co->Sat[pos].ID != id;
     
    525526              ++co->NumberOfSat[s];
    526527            co->Sat[pos].ID = id;
    527             G_GPS_IODE(co->Sat[pos].IOD)
    528             G_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)
    529             G_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)
    530             G_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)
    531             G_DELTA_DOT_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)
    532             G_DELTA_DOT_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)
    533             G_DELTA_DOT_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)
    534             G_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)
    535             G_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)
    536             G_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)
     528            D_GPS_IODE(co->Sat[pos].IOD)
     529            D_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)
     530            D_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)
     531            D_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)
     532            D_DOT_DELTA_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)
     533            D_DOT_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)
     534            D_DOT_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)
     535            D_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)
     536            D_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)
     537            D_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)
    537538#ifdef BNC_DEBUG_SSR
    538539            fprintf(stderr, "id %2d iod %3d dr %10.6f da %10.6f dc %10.6f dr %10.6f da %10.6f dc %10.6f  c0 %10.6f c1 %10.6f c2 %10.6f\n",
     
    549550            return GCOBR_NOCLOCKORBITPARAMETER;
    550551          co->messageType = igstype;
    551           G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    552           G_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    553           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    554           G_SSR_IOD(co->SSRIOD)
    555           G_SSR_PROVIDER_ID(co->SSRProviderID)
    556           G_SSR_SOLUTION_ID(co->SSRSolutionID)
    557           G_NO_OF_SATELLITES(nums)
     552          D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     553          D_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     554          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     555          D_SSR_IOD(co->SSRIOD)
     556          D_SSR_PROVIDER_ID(co->SSRProviderID)
     557          D_SSR_SOLUTION_ID(co->SSRSolutionID)
     558          D_NO_OF_SATELLITES(nums)
    558559          co->Supplied[COBOFS_URA] |= 1;
    559560#ifdef BNC_DEBUG_SSR
     
    563564#endif
    564565          for (i = 0; i < nums; ++i) {
    565             G_GPS_SATELLITE_ID(id)
     566            D_GPS_SATELLITE_ID(id)
    566567            for (pos = satoffset[s];
    567568                pos < satoffset[s] + co->NumberOfSat[s] && co->Sat[pos].ID != id;
     
    573574              ++co->NumberOfSat[s];
    574575            co->Sat[pos].ID = id;
    575             G_SSR_URA(co->Sat[pos].UserRangeAccuracy)
     576            D_SSR_URA(co->Sat[pos].UserRangeAccuracy)
    576577#ifdef BNC_DEBUG_SSR
    577578            fprintf(stderr, "id %2d ura %8.3f \n",
     
    584585            return GCOBR_NOCLOCKORBITPARAMETER;
    585586          co->messageType = igstype;
    586           G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    587           G_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    588           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    589           G_SSR_IOD(co->SSRIOD)
    590           G_SSR_PROVIDER_ID(co->SSRProviderID)
    591           G_SSR_SOLUTION_ID(co->SSRSolutionID)
    592           G_NO_OF_SATELLITES(nums)
     587          D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     588          D_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     589          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     590          D_SSR_IOD(co->SSRIOD)
     591          D_SSR_PROVIDER_ID(co->SSRProviderID)
     592          D_SSR_SOLUTION_ID(co->SSRSolutionID)
     593          D_NO_OF_SATELLITES(nums)
    593594          co->Supplied[COBOFS_HR] |= 1;
    594595#ifdef BNC_DEBUG_SSR
     
    598599#endif
    599600          for (i = 0; i < nums; ++i) {
    600             G_GPS_SATELLITE_ID(id)
     601            D_GPS_SATELLITE_ID(id)
    601602            for (pos = satoffset[s];
    602603                pos < satoffset[s] + co->NumberOfSat[s] && co->Sat[pos].ID != id;
     
    608609              ++co->NumberOfSat[s];
    609610            co->Sat[pos].ID = id;
    610             G_HR_CLOCK_CORRECTION(co->Sat[pos].hrclock)
     611            D_HR_CLOCK_CORRECTION(co->Sat[pos].hrclock)
    611612#ifdef BNC_DEBUG_SSR
    612613            fprintf(stderr, "id %2d hrClock %8.3f \n",
     
    619620            return GCOBR_NOCODEBIASPARAMETER;
    620621          b->messageType = igstype;
    621           G_GPS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s])
    622           G_SSR_UPDATE_INTERVAL(b->UpdateInterval)
    623           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    624           G_SSR_IOD(b->SSRIOD)
    625           G_SSR_PROVIDER_ID(b->SSRProviderID)
    626           G_SSR_SOLUTION_ID(b->SSRSolutionID)
    627           G_NO_OF_SATELLITES(nums)
     622          D_GPS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s])
     623          D_SSR_UPDATE_INTERVAL(b->UpdateInterval)
     624          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     625          D_SSR_IOD(b->SSRIOD)
     626          D_SSR_PROVIDER_ID(b->SSRProviderID)
     627          D_SSR_SOLUTION_ID(b->SSRSolutionID)
     628          D_NO_OF_SATELLITES(nums)
    628629#ifdef BNC_DEBUG_SSR
    629630          fprintf(stderr, "epochTime %d ui %d mmi %d sats %d/%d ssrIod %d providerId %d solId %d\n",
     
    632633#endif
    633634          for (i = 0; i < nums; ++i) {
    634             G_GPS_SATELLITE_ID(id)
     635            D_GPS_SATELLITE_ID(id)
    635636            for (pos = satoffset[s];
    636637                pos < satoffset[s] + b->NumberOfSat[s] && b->Sat[pos].ID != id;
     
    642643              ++b->NumberOfSat[s];
    643644            b->Sat[pos].ID = id;
    644             G_NO_OF_BIASES(b->Sat[pos].NumberOfCodeBiases)
     645            D_NO_OF_BIASES(b->Sat[pos].NumberOfCodeBiases)
    645646#ifdef BNC_DEBUG_SSR
    646647            fprintf(stderr, "id %2d #%d ",
     
    648649#endif
    649650            for (j = 0; j < b->Sat[pos].NumberOfCodeBiases; ++j) {
    650               G_GNSS_SIGNAL_IDENTIFIER(b->Sat[pos].Biases[j].Type)
    651               G_CODE_BIAS(b->Sat[pos].Biases[j].Bias)
     651              D_GNSS_SIGNAL_IDENTIFIER(b->Sat[pos].Biases[j].Type)
     652              D_CODE_BIAS(b->Sat[pos].Biases[j].Bias)
    652653#ifdef BNC_DEBUG_SSR
    653654            fprintf(stderr, "t%02d b %8.2f ",
     
    664665              return GCOBR_NOPHASEBIASPARAMETER;
    665666            pb->messageType = igstype;
    666             G_GPS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s])
    667             G_SSR_UPDATE_INTERVAL(pb->UpdateInterval)
    668             G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    669             G_SSR_IOD(pb->SSRIOD)
    670             G_SSR_PROVIDER_ID(pb->SSRProviderID)
    671             G_SSR_SOLUTION_ID(pb->SSRSolutionID)
    672             G_DISPERSIVE_BIAS_INDICATOR(pb->DispersiveBiasConsistencyIndicator)
    673             G_MW_CONSISTENCY_INDICATOR(pb->MWConsistencyIndicator)
    674             G_NO_OF_SATELLITES(nums)
     667            D_GPS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s])
     668            D_SSR_UPDATE_INTERVAL(pb->UpdateInterval)
     669            D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     670            D_SSR_IOD(pb->SSRIOD)
     671            D_SSR_PROVIDER_ID(pb->SSRProviderID)
     672            D_SSR_SOLUTION_ID(pb->SSRSolutionID)
     673            D_DISPERSIVE_BIAS_INDICATOR(pb->DispersiveBiasConsistencyIndicator)
     674            D_MW_CONSISTENCY_INDICATOR(pb->MWConsistencyIndicator)
     675            D_NO_OF_SATELLITES(nums)
    675676#ifdef BNC_DEBUG_SSR
    676677          fprintf(stderr, "epochTime %d ui %d mmi %d sats %d/%d ssrIod %d providerId %d solId %d dispInd %d mwInd %d\n",
     
    680681#endif
    681682            for (i = 0; i < nums; ++i) {
    682               G_GPS_SATELLITE_ID(id)
     683              D_GPS_SATELLITE_ID(id)
    683684              for (pos = satoffset[s];
    684685                  pos < satoffset[s] + pb->NumberOfSat[s] && pb->Sat[pos].ID != id;
     
    690691                ++pb->NumberOfSat[s];
    691692              pb->Sat[pos].ID = id;
    692               G_NO_OF_BIASES(pb->Sat[pos].NumberOfPhaseBiases)
    693               G_YAW_ANGLE(pb->Sat[pos].YawAngle)
    694               G_YAW_RATE(pb->Sat[pos].YawRate)
     693              D_NO_OF_BIASES(pb->Sat[pos].NumberOfPhaseBiases)
     694              D_YAW_ANGLE(pb->Sat[pos].YawAngle)
     695              D_YAW_RATE(pb->Sat[pos].YawRate)
    695696#ifdef BNC_DEBUG_SSR
    696697            fprintf(stderr, "id %2d #%d y %10.6f yr %10.6f ",
     
    699700#endif
    700701              for (j = 0; j < pb->Sat[pos].NumberOfPhaseBiases; ++j) {
    701                 G_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type)
    702                 G_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].SignalIntegerIndicator)
    703                 G_WIDE_LANE_INDICATOR(pb->Sat[pos].Biases[j].SignalsWideLaneIntegerIndicator)
    704                 G_DISCONTINUITY_COUNTER(pb->Sat[pos].Biases[j].SignalDiscontinuityCounter)
    705                 G_PHASE_BIAS(pb->Sat[pos].Biases[j].Bias)
     702                D_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type)
     703                D_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].SignalIntegerIndicator)
     704                D_WIDE_LANE_INDICATOR(pb->Sat[pos].Biases[j].SignalsWideLaneIntegerIndicator)
     705                D_DISCONTINUITY_COUNTER(pb->Sat[pos].Biases[j].SignalDiscontinuityCounter)
     706                D_PHASE_BIAS_CORRECTION(pb->Sat[pos].Biases[j].Bias)
    706707#ifdef BNC_DEBUG_SSR
    707708            fprintf(stderr, "t%02d int %d wl %d disc %02d b %8.4f ",
  • trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.cpp

    r10987 r10990  
    6969    if (status[s][COBOFS_ORBIT]) {
    7070      INITBLOCK
    71       T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_ORBIT)
     71      E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_ORBIT)
    7272      switch (s) {
    7373        case CLOCKORBIT_SATGPS:
     
    7676        case CLOCKORBIT_SATSBAS:
    7777        case CLOCKORBIT_SATBDS:
    78           T_GPS_EPOCH_TIME(co->EpochTime[s])
     78          E_GPS_EPOCH_TIME(co->EpochTime[s])
    7979          break;
    8080        case CLOCKORBIT_SATGLONASS:
    81           T_GLONASS_EPOCH_TIME(co->EpochTime[s])
    82           break;
    83       }
    84       T_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    85       T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    86       T_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
    87       T_SSR_IOD(co->SSRIOD)
    88       T_SSR_PROVIDER_ID(co->SSRProviderID)
    89       T_SSR_SOLUTION_ID(co->SSRSolutionID)
    90       T_NO_OF_SATELLITES(co->NumberOfSat[s])
     81          E_GLONASS_EPOCH_TIME(co->EpochTime[s])
     82          break;
     83      }
     84      E_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     85      E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     86      E_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
     87      E_SSR_IOD(co->SSRIOD)
     88      E_SSR_PROVIDER_ID(co->SSRProviderID)
     89      E_SSR_SOLUTION_ID(co->SSRSolutionID)
     90      E_NO_OF_SATELLITES(co->NumberOfSat[s])
    9191      for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) {
    9292        switch (s)         {
    9393          case CLOCKORBIT_SATGPS:
    94             T_GPS_SATELLITE_ID(co->Sat[i].ID)
    95             T_GPS_IODE(co->Sat[i].IOD)
     94            E_GPS_SATELLITE_ID(co->Sat[i].ID)
     95            E_GPS_IODE(co->Sat[i].IOD)
    9696            break;
    9797          case CLOCKORBIT_SATGLONASS:
    98             T_GLONASS_SATELLITE_ID(co->Sat[i].ID)
    99             T_GLONASS_IOD(co->Sat[i].IOD)
     98            E_GLONASS_SATELLITE_ID(co->Sat[i].ID)
     99            E_GLONASS_IOD(co->Sat[i].IOD)
    100100            break;
    101101          case CLOCKORBIT_SATGALILEO:
    102             T_GPS_SATELLITE_ID(co->Sat[i].ID)
    103             T_GALILEO_IOD(co->Sat[i].IOD)
     102            E_GPS_SATELLITE_ID(co->Sat[i].ID)
     103            E_GALILEO_IOD(co->Sat[i].IOD)
    104104            break;
    105105          case CLOCKORBIT_SATQZSS:
    106             T_QZSS_SATELLITE_ID(co->Sat[i].ID)
    107             T_GPS_IODE(co->Sat[i].IOD)
     106            E_QZSS_SATELLITE_ID_OLD(co->Sat[i].ID)
     107            E_GPS_IODE(co->Sat[i].IOD)
    108108            break;
    109109          case CLOCKORBIT_SATSBAS:
    110             T_GPS_SATELLITE_ID(co->Sat[i].ID)
    111             T_SBAS_T0MOD(co->Sat[i].toe)
    112             T_SBAS_IODCRC(co->Sat[i].IOD)
     110            E_GPS_SATELLITE_ID(co->Sat[i].ID)
     111            E_SBAS_T0MOD(co->Sat[i].toe)
     112            E_SBAS_IODCRC(co->Sat[i].IOD)
    113113            break;
    114114          case CLOCKORBIT_SATBDS:
    115             T_GPS_SATELLITE_ID(co->Sat[i].ID)
    116             T_BDS_TOEMOD(co->Sat[i].toe)
    117             T_BDS_IOD(co->Sat[i].IOD)
     115            E_GPS_SATELLITE_ID(co->Sat[i].ID)
     116            E_BDS_TOEMOD(co->Sat[i].toe)
     117            E_BDS_IOD(co->Sat[i].IOD)
    118118            break;
    119119        }
    120         T_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)
    121         T_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)
    122         T_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)
    123         T_DELTA_DOT_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)
    124         T_DELTA_DOT_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)
    125         T_DELTA_DOT_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)
     120        E_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)
     121        E_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)
     122        E_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)
     123        E_DOT_DELTA_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)
     124        E_DOT_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)
     125        E_DOT_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)
    126126      }
    127127      ENDBLOCK
     
    129129    if (status[s][COBOFS_CLOCK]) {
    130130      INITBLOCK
    131       T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_CLOCK)
     131      E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_CLOCK)
    132132      switch (s) {
    133133        case CLOCKORBIT_SATGPS:
     
    136136        case CLOCKORBIT_SATSBAS:
    137137        case CLOCKORBIT_SATBDS:
    138           T_GPS_EPOCH_TIME(co->EpochTime[s])
     138          E_GPS_EPOCH_TIME(co->EpochTime[s])
    139139          break;
    140140        case CLOCKORBIT_SATGLONASS:
    141           T_GLONASS_EPOCH_TIME(co->EpochTime[s])
    142           break;
    143       }
    144       T_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    145       T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    146       T_SSR_IOD(co->SSRIOD)
    147       T_SSR_PROVIDER_ID(co->SSRProviderID)
    148       T_SSR_SOLUTION_ID(co->SSRSolutionID)
    149       T_NO_OF_SATELLITES(co->NumberOfSat[s])
     141          E_GLONASS_EPOCH_TIME(co->EpochTime[s])
     142          break;
     143      }
     144      E_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     145      E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     146      E_SSR_IOD(co->SSRIOD)
     147      E_SSR_PROVIDER_ID(co->SSRProviderID)
     148      E_SSR_SOLUTION_ID(co->SSRSolutionID)
     149      E_NO_OF_SATELLITES(co->NumberOfSat[s])
    150150      for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) {
    151151        switch (s) {
     
    154154          case CLOCKORBIT_SATSBAS:
    155155          case CLOCKORBIT_SATBDS:
    156             T_GPS_SATELLITE_ID(co->Sat[i].ID)
     156            E_GPS_SATELLITE_ID(co->Sat[i].ID)
    157157            break;
    158158          case CLOCKORBIT_SATQZSS:
    159             T_QZSS_SATELLITE_ID(co->Sat[i].ID)
     159            E_QZSS_SATELLITE_ID_OLD(co->Sat[i].ID)
    160160            break;
    161161          case CLOCKORBIT_SATGLONASS:
    162             T_GLONASS_SATELLITE_ID(co->Sat[i].ID)
     162            E_GLONASS_SATELLITE_ID(co->Sat[i].ID)
    163163            break;
    164164        }
    165         T_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)
    166         T_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)
    167         T_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)
     165        E_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)
     166        E_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)
     167        E_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)
    168168      }
    169169      ENDBLOCK
     
    171171    if (status[s][COBOFS_COMBINED]) {
    172172#ifdef SPLITBLOCK
    173       int nums = co->NumberOfSat[s];
    174       int left, start = satoffset[s];
     173      unsigned int nums = co->NumberOfSat[s];
     174      unsigned int left, start = satoffset[s];
    175175      if(nums > 28) {/* split block when more than 28 sats */
    176176        left = nums - 28;
     
    183183#endif
    184184      INITBLOCK
    185       T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_COMBINED)
     185      E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_COMBINED)
    186186      switch (s) {
    187187        case CLOCKORBIT_SATGPS:
     
    190190        case CLOCKORBIT_SATSBAS:
    191191        case CLOCKORBIT_SATBDS:
    192           T_GPS_EPOCH_TIME(co->EpochTime[s])
     192          E_GPS_EPOCH_TIME(co->EpochTime[s])
    193193          break;
    194194        case CLOCKORBIT_SATGLONASS:
    195           T_GLONASS_EPOCH_TIME(co->EpochTime[s])
    196           break;
    197       }
    198       T_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     195          E_GLONASS_EPOCH_TIME(co->EpochTime[s])
     196          break;
     197      }
     198      E_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    199199#ifdef SPLITBLOCK
    200       T_MULTIPLE_MESSAGE_INDICATOR((moremessagesfollow || left) ? 1 : 0)
     200      E_MULTIPLE_MESSAGE_INDICATOR((moremessagesfollow || left) ? 1 : 0)
    201201#else
    202       T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    203 #endif
    204       T_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
    205       T_SSR_IOD(co->SSRIOD)
    206       T_SSR_PROVIDER_ID(co->SSRProviderID)
    207       T_SSR_SOLUTION_ID(co->SSRSolutionID)
     202      E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     203#endif
     204      E_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
     205      E_SSR_IOD(co->SSRIOD)
     206      E_SSR_PROVIDER_ID(co->SSRProviderID)
     207      E_SSR_SOLUTION_ID(co->SSRSolutionID)
    208208#ifdef SPLITBLOCK
    209       T_NO_OF_SATELLITES(nums)
     209      E_NO_OF_SATELLITES(nums)
    210210      for(i = start; i < start+nums; ++i)
    211211#else
    212       T_NO_OF_SATELLITES(co->NumberOfSat[s])
     212      E_NO_OF_SATELLITES(co->NumberOfSat[s])
    213213      for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i)
    214214#endif
     
    216216        switch (s) {
    217217          case CLOCKORBIT_SATGPS:
    218             T_GPS_SATELLITE_ID(co->Sat[i].ID)
    219             T_GPS_IODE(co->Sat[i].IOD)
     218            E_GPS_SATELLITE_ID(co->Sat[i].ID)
     219            E_GPS_IODE(co->Sat[i].IOD)
    220220            break;
    221221          case CLOCKORBIT_SATGLONASS:
    222             T_GLONASS_SATELLITE_ID(co->Sat[i].ID)
    223             T_GLONASS_IOD(co->Sat[i].IOD)
     222            E_GLONASS_SATELLITE_ID(co->Sat[i].ID)
     223            E_GLONASS_IOD(co->Sat[i].IOD)
    224224            break;
    225225          case CLOCKORBIT_SATGALILEO:
    226             T_GPS_SATELLITE_ID(co->Sat[i].ID)
    227             T_GALILEO_IOD(co->Sat[i].IOD)
     226            E_GPS_SATELLITE_ID(co->Sat[i].ID)
     227            E_GALILEO_IOD(co->Sat[i].IOD)
    228228            break;
    229229          case CLOCKORBIT_SATQZSS:
    230             T_QZSS_SATELLITE_ID(co->Sat[i].ID)
    231             T_GPS_IODE(co->Sat[i].IOD)
     230            E_QZSS_SATELLITE_ID_OLD(co->Sat[i].ID)
     231            E_GPS_IODE(co->Sat[i].IOD)
    232232            break;
    233233          case CLOCKORBIT_SATSBAS:
    234             T_GPS_SATELLITE_ID(co->Sat[i].ID)
    235             T_SBAS_T0MOD(co->Sat[i].toe)
    236             T_SBAS_IODCRC(co->Sat[i].IOD)
     234            E_GPS_SATELLITE_ID(co->Sat[i].ID)
     235            E_SBAS_T0MOD(co->Sat[i].toe)
     236            E_SBAS_IODCRC(co->Sat[i].IOD)
    237237            break;
    238238          case CLOCKORBIT_SATBDS:
    239             T_GPS_SATELLITE_ID(co->Sat[i].ID)
    240             T_BDS_TOEMOD(co->Sat[i].toe)
    241             T_BDS_IOD(co->Sat[i].IOD)
     239            E_GPS_SATELLITE_ID(co->Sat[i].ID)
     240            E_BDS_TOEMOD(co->Sat[i].toe)
     241            E_BDS_IOD(co->Sat[i].IOD)
    242242            break;
    243243        }
    244         T_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)
    245         T_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)
    246         T_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)
    247         T_DELTA_DOT_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)
    248         T_DELTA_DOT_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)
    249         T_DELTA_DOT_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)
    250         T_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)
    251         T_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)
    252         T_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)
     244        E_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)
     245        E_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)
     246        E_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)
     247        E_DOT_DELTA_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)
     248        E_DOT_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)
     249        E_DOT_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)
     250        E_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)
     251        E_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)
     252        E_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)
    253253      }
    254254      ENDBLOCK
     
    262262    if (status[s][COBOFS_HR]) {
    263263      INITBLOCK
    264       T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_HR)
     264      E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_HR)
    265265      switch (s) {
    266266        case CLOCKORBIT_SATGPS:
     
    269269        case CLOCKORBIT_SATSBAS:
    270270        case CLOCKORBIT_SATBDS:
    271           T_GPS_EPOCH_TIME(co->EpochTime[s])
     271          E_GPS_EPOCH_TIME(co->EpochTime[s])
    272272          break;
    273273        case CLOCKORBIT_SATGLONASS:
    274           T_GLONASS_EPOCH_TIME(co->EpochTime[s])
    275           break;
    276       }
    277       T_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    278       T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    279       T_SSR_IOD(co->SSRIOD)
    280       T_SSR_PROVIDER_ID(co->SSRProviderID)
    281       T_SSR_SOLUTION_ID(co->SSRSolutionID)
    282       T_NO_OF_SATELLITES(co->NumberOfSat[s])
     274          E_GLONASS_EPOCH_TIME(co->EpochTime[s])
     275          break;
     276      }
     277      E_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     278      E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     279      E_SSR_IOD(co->SSRIOD)
     280      E_SSR_PROVIDER_ID(co->SSRProviderID)
     281      E_SSR_SOLUTION_ID(co->SSRSolutionID)
     282      E_NO_OF_SATELLITES(co->NumberOfSat[s])
    283283      for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) {
    284284        switch (s) {
     
    287287            case CLOCKORBIT_SATSBAS:
    288288            case CLOCKORBIT_SATBDS:
    289             T_GPS_SATELLITE_ID(co->Sat[i].ID)
     289            E_GPS_SATELLITE_ID(co->Sat[i].ID)
    290290            break;
    291291          case CLOCKORBIT_SATQZSS:
    292             T_QZSS_SATELLITE_ID(co->Sat[i].ID)
     292            E_QZSS_SATELLITE_ID_OLD(co->Sat[i].ID)
    293293            break;
    294294          case CLOCKORBIT_SATGLONASS:
    295             T_GLONASS_SATELLITE_ID(co->Sat[i].ID)
     295            E_GLONASS_SATELLITE_ID(co->Sat[i].ID)
    296296            break;
    297297        }
    298         T_HR_CLOCK_CORRECTION(co->Sat[i].hrclock)
     298        E_HR_CLOCK_CORRECTION(co->Sat[i].hrclock)
    299299      }
    300300      ENDBLOCK
     
    302302    if (status[s][COBOFS_URA]) {
    303303      INITBLOCK
    304       T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_URA)
     304      E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_URA)
    305305      switch (s) {
    306306        case CLOCKORBIT_SATGPS:
     
    309309        case CLOCKORBIT_SATSBAS:
    310310        case CLOCKORBIT_SATBDS:
    311           T_GPS_EPOCH_TIME(co->EpochTime[s])
     311          E_GPS_EPOCH_TIME(co->EpochTime[s])
    312312          break;
    313313        case CLOCKORBIT_SATGLONASS:
    314           T_GLONASS_EPOCH_TIME(co->EpochTime[s])
    315           break;
    316       }
    317       T_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    318       T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    319       T_SSR_IOD(co->SSRIOD)
    320       T_SSR_PROVIDER_ID(co->SSRProviderID)
    321       T_SSR_SOLUTION_ID(co->SSRSolutionID)
    322       T_NO_OF_SATELLITES(co->NumberOfSat[s])
     314          E_GLONASS_EPOCH_TIME(co->EpochTime[s])
     315          break;
     316      }
     317      E_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     318      E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     319      E_SSR_IOD(co->SSRIOD)
     320      E_SSR_PROVIDER_ID(co->SSRProviderID)
     321      E_SSR_SOLUTION_ID(co->SSRSolutionID)
     322      E_NO_OF_SATELLITES(co->NumberOfSat[s])
    323323      for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) {
    324324        switch (s) {
     
    327327          case CLOCKORBIT_SATSBAS:
    328328          case CLOCKORBIT_SATBDS:
    329             T_GPS_SATELLITE_ID(co->Sat[i].ID)
     329            E_GPS_SATELLITE_ID(co->Sat[i].ID)
    330330            break;
    331331          case CLOCKORBIT_SATQZSS:
    332             T_QZSS_SATELLITE_ID(co->Sat[i].ID)
     332            E_QZSS_SATELLITE_ID_OLD(co->Sat[i].ID)
    333333            break;
    334334          case CLOCKORBIT_SATGLONASS:
    335             T_GLONASS_SATELLITE_ID(co->Sat[i].ID)
     335            E_GLONASS_SATELLITE_ID(co->Sat[i].ID)
    336336            break;
    337337        }
    338         T_SSR_URA(ValueToURA(co->Sat[i].UserRangeAccuracy))
     338        E_SSR_URA(ValueToURA(co->Sat[i].UserRangeAccuracy))
    339339      }
    340340      ENDBLOCK
     
    353353    if (b->NumberOfSat[s] && (type == CBTYPE_AUTO || type == corbase[s] + COBOFS_CBIAS)) {
    354354      INITBLOCK
    355       T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_CBIAS)
     355      E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_CBIAS)
    356356      switch (s) {
    357357        case CLOCKORBIT_SATGPS:
     
    360360        case CLOCKORBIT_SATSBAS:
    361361        case CLOCKORBIT_SATBDS:
    362           T_GPS_EPOCH_TIME(b->EpochTime[s])
     362          E_GPS_EPOCH_TIME(b->EpochTime[s])
    363363          break;
    364364        case CLOCKORBIT_SATGLONASS:
    365           T_GLONASS_EPOCH_TIME(b->EpochTime[s])
    366           break;
    367       }
    368       T_SSR_UPDATE_INTERVAL(b->UpdateInterval)
    369       T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    370       T_SSR_IOD(b->SSRIOD)
    371       T_SSR_PROVIDER_ID(b->SSRProviderID)
    372       T_SSR_SOLUTION_ID(b->SSRSolutionID)
    373       T_NO_OF_SATELLITES(b->NumberOfSat[s])
     365          E_GLONASS_EPOCH_TIME(b->EpochTime[s])
     366          break;
     367      }
     368      E_SSR_UPDATE_INTERVAL(b->UpdateInterval)
     369      E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     370      E_SSR_IOD(b->SSRIOD)
     371      E_SSR_PROVIDER_ID(b->SSRProviderID)
     372      E_SSR_SOLUTION_ID(b->SSRSolutionID)
     373      E_NO_OF_SATELLITES(b->NumberOfSat[s])
    374374      for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) {
    375375        switch (s) {
     
    378378          case CLOCKORBIT_SATSBAS:
    379379          case CLOCKORBIT_SATBDS:
    380             T_GPS_SATELLITE_ID(b->Sat[i].ID)
     380            E_GPS_SATELLITE_ID(b->Sat[i].ID)
    381381            break;
    382382          case CLOCKORBIT_SATQZSS:
    383             T_QZSS_SATELLITE_ID(b->Sat[i].ID)
     383            E_QZSS_SATELLITE_ID_OLD(b->Sat[i].ID)
    384384            break;
    385385          case CLOCKORBIT_SATGLONASS:
    386             T_GLONASS_SATELLITE_ID(b->Sat[i].ID)
     386            E_GLONASS_SATELLITE_ID(b->Sat[i].ID)
    387387            break;
    388388        }
    389         T_NO_OF_BIASES(b->Sat[i].NumberOfCodeBiases)
     389        E_NO_OF_BIASES(b->Sat[i].NumberOfCodeBiases)
    390390        for (j = 0; j < b->Sat[i].NumberOfCodeBiases; ++j) {
    391           T_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)
    392           T_CODE_BIAS(b->Sat[i].Biases[j].Bias)
     391          E_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)
     392          E_CODE_BIAS(b->Sat[i].Biases[j].Bias)
    393393        }
    394394      }
     
    408408    if (b->NumberOfSat[s] && (type == PBTYPE_AUTO || type == s + PBTYPE_BASE)) {
    409409      INITBLOCK
    410       T_RTCM_MESSAGE_NUMBER(s + PBTYPE_BASE)
     410      E_RTCM_MESSAGE_NUMBER(s + PBTYPE_BASE)
    411411      switch (s) {
    412412        case CLOCKORBIT_SATGPS:
     
    415415        case CLOCKORBIT_SATSBAS:
    416416        case CLOCKORBIT_SATBDS:
    417           T_GPS_EPOCH_TIME(b->EpochTime[s])
     417          E_GPS_EPOCH_TIME(b->EpochTime[s])
    418418          break;
    419419        case CLOCKORBIT_SATGLONASS:
    420           T_GLONASS_EPOCH_TIME(b->EpochTime[s])
    421           break;
    422       }
    423       T_SSR_UPDATE_INTERVAL(b->UpdateInterval)
    424       T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    425       T_SSR_IOD(b->SSRIOD)
    426       T_SSR_PROVIDER_ID(b->SSRProviderID)
    427       T_SSR_SOLUTION_ID(b->SSRSolutionID)
    428       T_DISPERSIVE_BIAS_INDICATOR(b->DispersiveBiasConsistencyIndicator ? 1 : 0)
    429       T_MW_CONSISTENCY_INDICATOR(b->MWConsistencyIndicator ? 1 : 0)
    430       T_NO_OF_SATELLITES(b->NumberOfSat[s])
     420          E_GLONASS_EPOCH_TIME(b->EpochTime[s])
     421          break;
     422      }
     423      E_SSR_UPDATE_INTERVAL(b->UpdateInterval)
     424      E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     425      E_SSR_IOD(b->SSRIOD)
     426      E_SSR_PROVIDER_ID(b->SSRProviderID)
     427      E_SSR_SOLUTION_ID(b->SSRSolutionID)
     428      E_DISPERSIVE_BIAS_INDICATOR(b->DispersiveBiasConsistencyIndicator ? 1 : 0)
     429      E_MW_CONSISTENCY_INDICATOR(b->MWConsistencyIndicator ? 1 : 0)
     430      E_NO_OF_SATELLITES(b->NumberOfSat[s])
    431431      for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) {
    432432        switch (s) {
     
    435435            case CLOCKORBIT_SATSBAS:
    436436            case CLOCKORBIT_SATBDS:
    437             T_GPS_SATELLITE_ID(b->Sat[i].ID)
     437            E_GPS_SATELLITE_ID(b->Sat[i].ID)
    438438            break;
    439439          case CLOCKORBIT_SATQZSS:
    440             T_QZSS_SATELLITE_ID(b->Sat[i].ID)
     440            E_QZSS_SATELLITE_ID_OLD(b->Sat[i].ID)
    441441            break;
    442442          case CLOCKORBIT_SATGLONASS:
    443             T_GLONASS_SATELLITE_ID(b->Sat[i].ID)
     443            E_GLONASS_SATELLITE_ID(b->Sat[i].ID)
    444444            break;
    445445        }
    446         T_NO_OF_BIASES(b->Sat[i].NumberOfPhaseBiases)
    447         T_YAW_ANGLE(b->Sat[i].YawAngle)
    448         T_YAW_RATE(b->Sat[i].YawRate)
     446        E_NO_OF_BIASES(b->Sat[i].NumberOfPhaseBiases)
     447        E_YAW_ANGLE(b->Sat[i].YawAngle)
     448        E_YAW_RATE(b->Sat[i].YawRate)
    449449        for (j = 0; j < b->Sat[i].NumberOfPhaseBiases; ++j) {
    450           T_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)
    451           T_INTEGER_INDICATOR(
     450          E_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)
     451          E_INTEGER_INDICATOR(
    452452              b->Sat[i].Biases[j].SignalIntegerIndicator ? 1 : 0)
    453           T_WIDE_LANE_INDICATOR(
     453          E_WIDE_LANE_INDICATOR(
    454454              b->Sat[i].Biases[j].SignalsWideLaneIntegerIndicator)
    455           T_DISCONTINUITY_COUNTER(
     455          E_DISCONTINUITY_COUNTER(
    456456              b->Sat[i].Biases[j].SignalDiscontinuityCounter)
    457           T_PHASE_BIAS(b->Sat[i].Biases[j].Bias)
     457          E_PHASE_BIAS_CORRECTION(b->Sat[i].Biases[j].Bias)
    458458        }
    459459      }
     
    469469  STARTDATA
    470470    INITBLOCK
    471   T_RTCM_MESSAGE_NUMBER(VTEC_BASE)
    472   T_GPS_EPOCH_TIME(v->EpochTime)
    473   T_SSR_UPDATE_INTERVAL(v->UpdateInterval)
    474   T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    475   T_SSR_IOD(v->SSRIOD)
    476   T_SSR_PROVIDER_ID(v->SSRProviderID)
    477   T_SSR_SOLUTION_ID(v->SSRSolutionID)
    478   T_VTEC_QUALITY_INDICATOR(v->Quality)
    479   T_NO_IONO_LAYERS(v->NumLayers)
     471  E_RTCM_MESSAGE_NUMBER(VTEC_BASE)
     472  E_GPS_EPOCH_TIME(v->EpochTime)
     473  E_SSR_UPDATE_INTERVAL(v->UpdateInterval)
     474  E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     475  E_SSR_IOD(v->SSRIOD)
     476  E_SSR_PROVIDER_ID(v->SSRProviderID)
     477  E_SSR_SOLUTION_ID(v->SSRSolutionID)
     478  E_VTEC_QUALITY_INDICATOR(v->Quality)
     479  E_NO_IONO_LAYERS(v->NumLayers)
    480480  for (l = 0; l < v->NumLayers; ++l) {
    481     T_IONO_HEIGHT(v->Layers[l].Height)
    482     T_IONO_DEGREE(v->Layers[l].Degree)
    483     T_IONO_ORDER(v->Layers[l].Order)
     481    E_IONO_HEIGHT(v->Layers[l].Height)
     482    E_IONO_DEGREE(v->Layers[l].Degree)
     483    E_IONO_ORDER(v->Layers[l].Order)
    484484    for (o = 0; o <= v->Layers[l].Order; ++o) {
    485485      for (d = o; d <= v->Layers[l].Degree; ++d) {
    486         T_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])
     486        E_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])
    487487      }
    488488    }
    489489    for (o = 1; o <= v->Layers[l].Order; ++o) {
    490490      for (d = o; d <= v->Layers[l].Degree; ++d) {
    491         T_IONO_COEFF_S(v->Layers[l].Sinus[d][o])
     491        E_IONO_COEFF_S(v->Layers[l].Sinus[d][o])
    492492      }
    493493    }
     
    512512#endif
    513513
    514   G_HEADER(h)
    515   G_RESERVEDH(rs)
    516   G_SIZE(sizeofrtcmblock);
     514  D_HEADER(h)
     515  D_RESERVEDH(rs)
     516  D_SIZE(sizeofrtcmblock);
    517517
    518518  if ((unsigned char) h != 0xD3 || rs)
     
    527527  size = sizeofrtcmblock; /* reduce size, so overflows are detected */
    528528
    529   G_RTCM_MESSAGE_NUMBER(type)
     529  D_RTCM_MESSAGE_NUMBER(type)
    530530#ifdef BNC_DEBUG_SSR
    531531  fprintf(stderr, "type %d size %d\n",type,(int)sizeofrtcmblock);
     
    538538      return GCOBR_NOVTECPARAMETER;
    539539    memset(v, 0, sizeof(*v));
    540     G_GPS_EPOCH_TIME(v->EpochTime)
    541     G_SSR_UPDATE_INTERVAL(v->UpdateInterval)
    542     G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    543     G_SSR_IOD(v->SSRIOD)
    544     G_SSR_PROVIDER_ID(v->SSRProviderID)
    545     G_SSR_SOLUTION_ID(v->SSRSolutionID)
    546     G_VTEC_QUALITY_INDICATOR(v->Quality)
    547     G_NO_IONO_LAYERS(v->NumLayers)
     540    D_GPS_EPOCH_TIME(v->EpochTime)
     541    D_SSR_UPDATE_INTERVAL(v->UpdateInterval)
     542    D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     543    D_SSR_IOD(v->SSRIOD)
     544    D_SSR_PROVIDER_ID(v->SSRProviderID)
     545    D_SSR_SOLUTION_ID(v->SSRSolutionID)
     546    D_VTEC_QUALITY_INDICATOR(v->Quality)
     547    D_NO_IONO_LAYERS(v->NumLayers)
    548548#ifdef BNC_DEBUG_SSR
    549549          fprintf(stderr, "epochTime %d ui %d mmi %d ssrIod %d providerId %d solId %d vtecQ %8.3f numLay %d \n",
     
    552552#endif
    553553    for (l = 0; l < v->NumLayers; ++l) {
    554       G_IONO_HEIGHT(v->Layers[l].Height)
    555       G_IONO_DEGREE(v->Layers[l].Degree)
    556       G_IONO_ORDER(v->Layers[l].Order)
     554      D_IONO_HEIGHT(v->Layers[l].Height)
     555      D_IONO_DEGREE(v->Layers[l].Degree)
     556      D_IONO_ORDER(v->Layers[l].Order)
    557557#ifdef BNC_DEBUG_SSR
    558558          fprintf(stderr, "h  %8.3f deg %d ord %d \n",
     
    561561      for (o = 0; o <= v->Layers[l].Order; ++o) {
    562562        for (d = o; d <= v->Layers[l].Degree; ++d) {
    563           G_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])
     563          D_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])
    564564#ifdef BNC_DEBUG_SSR
    565565          fprintf(stderr, "C[%02d][%02d]  %8.3f \n",
     
    570570      for (o = 1; o <= v->Layers[l].Order; ++o) {
    571571        for (d = o; d <= v->Layers[l].Degree; ++d) {
    572           G_IONO_COEFF_S(v->Layers[l].Sinus[d][o])
     572          D_IONO_COEFF_S(v->Layers[l].Sinus[d][o])
    573573#ifdef BNC_DEBUG_SSR
    574574          fprintf(stderr, "S[%02d][%02d]  %8.3f \n",
     
    596596        case CLOCKORBIT_SATSBAS:
    597597        case CLOCKORBIT_SATBDS:
    598           G_GPS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s])
     598          D_GPS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s])
    599599          break;
    600600        case CLOCKORBIT_SATGLONASS:
    601           G_GLONASS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s])
    602           break;
    603       }
    604       G_SSR_UPDATE_INTERVAL(pb->UpdateInterval)
    605       G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    606       G_SSR_IOD(pb->SSRIOD)
    607       G_SSR_PROVIDER_ID(pb->SSRProviderID)
    608       G_SSR_SOLUTION_ID(pb->SSRSolutionID)
    609       G_DISPERSIVE_BIAS_INDICATOR(pb->DispersiveBiasConsistencyIndicator)
    610       G_MW_CONSISTENCY_INDICATOR(pb->MWConsistencyIndicator)
    611       G_NO_OF_SATELLITES(nums)
     601          D_GLONASS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s])
     602          break;
     603      }
     604      D_SSR_UPDATE_INTERVAL(pb->UpdateInterval)
     605      D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     606      D_SSR_IOD(pb->SSRIOD)
     607      D_SSR_PROVIDER_ID(pb->SSRProviderID)
     608      D_SSR_SOLUTION_ID(pb->SSRSolutionID)
     609      D_DISPERSIVE_BIAS_INDICATOR(pb->DispersiveBiasConsistencyIndicator)
     610      D_MW_CONSISTENCY_INDICATOR(pb->MWConsistencyIndicator)
     611      D_NO_OF_SATELLITES(nums)
    612612#ifdef BNC_DEBUG_SSR
    613613          fprintf(stderr, "epochTime %d ui %d mmi %d sats %d/%d ssrIod %d providerId %d solId %d dispInd %d mwInd %d\n",
     
    622622          case CLOCKORBIT_SATSBAS:
    623623          case CLOCKORBIT_SATBDS:
    624             G_GPS_SATELLITE_ID(id)
     624            D_GPS_SATELLITE_ID(id)
    625625            break;
    626626          case CLOCKORBIT_SATQZSS:
    627             G_QZSS_SATELLITE_ID(id)
     627            D_QZSS_SATELLITE_ID_OLD(id)
    628628            break;
    629629          case CLOCKORBIT_SATGLONASS:
    630             G_GLONASS_SATELLITE_ID(id)
     630            D_GLONASS_SATELLITE_ID_OLD(id)
    631631            break;
    632632        }
     
    640640          ++pb->NumberOfSat[s];
    641641        pb->Sat[pos].ID = id;
    642         G_NO_OF_BIASES(pb->Sat[pos].NumberOfPhaseBiases)
    643         G_YAW_ANGLE(pb->Sat[pos].YawAngle)
    644         G_YAW_RATE(pb->Sat[pos].YawRate)
     642        D_NO_OF_BIASES(pb->Sat[pos].NumberOfPhaseBiases)
     643        D_YAW_ANGLE(pb->Sat[pos].YawAngle)
     644        D_YAW_RATE(pb->Sat[pos].YawRate)
    645645#ifdef BNC_DEBUG_SSR
    646646            fprintf(stderr, "id %2d #%d y %10.6f yr %10.6f ",
     
    649649#endif
    650650        for (j = 0; j < pb->Sat[pos].NumberOfPhaseBiases; ++j) {
    651           G_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type)
    652           G_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].SignalIntegerIndicator)
    653           G_WIDE_LANE_INDICATOR(
     651          D_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type)
     652          D_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].SignalIntegerIndicator)
     653          D_WIDE_LANE_INDICATOR(
    654654              pb->Sat[pos].Biases[j].SignalsWideLaneIntegerIndicator)
    655           G_DISCONTINUITY_COUNTER(
     655          D_DISCONTINUITY_COUNTER(
    656656              pb->Sat[pos].Biases[j].SignalDiscontinuityCounter)
    657           G_PHASE_BIAS(pb->Sat[pos].Biases[j].Bias)
     657          D_PHASE_BIAS_CORRECTION(pb->Sat[pos].Biases[j].Bias)
    658658#ifdef BNC_DEBUG_SSR
    659659            fprintf(stderr, "t%02d int %d wl %d disc %d b %8.4f ",
     
    688688            case CLOCKORBIT_SATSBAS:
    689689            case CLOCKORBIT_SATBDS:
    690               G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     690              D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    691691              break;
    692692            case CLOCKORBIT_SATGLONASS:
    693               G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     693              D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    694694              break;
    695695          }
    696           G_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    697           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    698           G_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
    699           G_SSR_IOD(co->SSRIOD)
    700           G_SSR_PROVIDER_ID(co->SSRProviderID)
    701           G_SSR_SOLUTION_ID(co->SSRSolutionID)
    702           G_NO_OF_SATELLITES(nums)
     696          D_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     697          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     698          D_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
     699          D_SSR_IOD(co->SSRIOD)
     700          D_SSR_PROVIDER_ID(co->SSRProviderID)
     701          D_SSR_SOLUTION_ID(co->SSRSolutionID)
     702          D_NO_OF_SATELLITES(nums)
    703703          co->Supplied[COBOFS_ORBIT] |= 1;
    704704#ifdef BNC_DEBUG_SSR
     
    713713              case CLOCKORBIT_SATSBAS:
    714714              case CLOCKORBIT_SATBDS:
    715                 G_GPS_SATELLITE_ID(id)
     715                D_GPS_SATELLITE_ID(id)
    716716                break;
    717717              case CLOCKORBIT_SATQZSS:
    718                 G_QZSS_SATELLITE_ID(id)
     718                D_QZSS_SATELLITE_ID_OLD(id)
    719719                break;
    720720              case CLOCKORBIT_SATGLONASS:
    721                 G_GLONASS_SATELLITE_ID(id)
     721                D_GLONASS_SATELLITE_ID_OLD(id)
    722722                break;
    723723            }
     
    735735              case CLOCKORBIT_SATGPS:
    736736                case CLOCKORBIT_SATQZSS:
    737                   G_GPS_IODE(co->Sat[pos].IOD)
     737                  D_GPS_IODE(co->Sat[pos].IOD)
    738738                break;
    739739              case CLOCKORBIT_SATGLONASS:
    740                 G_GPS_IODE(co->Sat[pos].IOD)
     740                D_GPS_IODE(co->Sat[pos].IOD)
    741741                break;
    742742              case CLOCKORBIT_SATGALILEO:
    743                 G_GALILEO_IOD(co->Sat[pos].IOD)
     743                D_GALILEO_IOD(co->Sat[pos].IOD)
    744744                break;
    745745              case CLOCKORBIT_SATSBAS:
    746                 G_SBAS_T0MOD(co->Sat[pos].toe)
    747                 G_SBAS_IODCRC(co->Sat[pos].IOD)
     746                D_SBAS_T0MOD(co->Sat[pos].toe)
     747                D_SBAS_IODCRC(co->Sat[pos].IOD)
    748748                break;
    749749              case CLOCKORBIT_SATBDS:
    750                 G_BDS_TOEMOD(co->Sat[pos].toe)
    751                 G_GPS_IODE(co->Sat[pos].IOD)
     750                D_BDS_TOEMOD(co->Sat[pos].toe)
     751                D_GPS_IODE(co->Sat[pos].IOD)
    752752                break;
    753753            }
    754             G_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)
    755             G_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)
    756             G_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)
    757             G_DELTA_DOT_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)
    758             G_DELTA_DOT_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)
    759             G_DELTA_DOT_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)
     754            D_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)
     755            D_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)
     756            D_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)
     757            D_DOT_DELTA_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)
     758            D_DOT_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)
     759            D_DOT_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)
    760760#ifdef BNC_DEBUG_SSR
    761761            fprintf(stderr, "id %2d iod %3d dr %8.4f da %8.4f dc %8.4f dr %8.3f da %8.3f dc %8.3f\n",
     
    778778            case CLOCKORBIT_SATSBAS:
    779779            case CLOCKORBIT_SATBDS:
    780               G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     780              D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    781781              break;
    782782            case CLOCKORBIT_SATGLONASS:
    783               G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     783              D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    784784              break;
    785785          }
    786           G_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    787           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    788           G_SSR_IOD(co->SSRIOD)
    789           G_SSR_PROVIDER_ID(co->SSRProviderID)
    790           G_SSR_SOLUTION_ID(co->SSRSolutionID)
    791           G_NO_OF_SATELLITES(nums)
     786          D_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     787          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     788          D_SSR_IOD(co->SSRIOD)
     789          D_SSR_PROVIDER_ID(co->SSRProviderID)
     790          D_SSR_SOLUTION_ID(co->SSRSolutionID)
     791          D_NO_OF_SATELLITES(nums)
    792792          co->Supplied[COBOFS_CLOCK] |= 1;
    793793#ifdef BNC_DEBUG_SSR
     
    802802                case CLOCKORBIT_SATSBAS:
    803803                case CLOCKORBIT_SATBDS:
    804                 G_GPS_SATELLITE_ID(id)
     804                D_GPS_SATELLITE_ID(id)
    805805                break;
    806806              case CLOCKORBIT_SATQZSS:
    807                 G_QZSS_SATELLITE_ID(id)
     807                D_QZSS_SATELLITE_ID_OLD(id)
    808808                break;
    809809              case CLOCKORBIT_SATGLONASS:
    810                 G_GLONASS_SATELLITE_ID(id)
     810                D_GLONASS_SATELLITE_ID_OLD(id)
    811811                break;
    812812            }
     
    821821            co->Sat[pos].ID = id;
    822822
    823             G_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)
    824             G_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)
    825             G_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)
     823            D_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)
     824            D_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)
     825            D_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)
    826826#ifdef BNC_DEBUG_SSR
    827827            fprintf(stderr, "id %2d c0 %8.3f c1 %8.3f c2 %8.3f\n",
     
    841841            case CLOCKORBIT_SATSBAS:
    842842            case CLOCKORBIT_SATBDS:
    843               G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     843              D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    844844              break;
    845845            case CLOCKORBIT_SATGLONASS:
    846               G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     846              D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    847847              break;
    848848          }
    849           G_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    850           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    851           G_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
    852           G_SSR_IOD(co->SSRIOD)
    853           G_SSR_PROVIDER_ID(co->SSRProviderID)
    854           G_SSR_SOLUTION_ID(co->SSRSolutionID)
    855           G_NO_OF_SATELLITES(nums)
     849          D_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     850          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     851          D_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
     852          D_SSR_IOD(co->SSRIOD)
     853          D_SSR_PROVIDER_ID(co->SSRProviderID)
     854          D_SSR_SOLUTION_ID(co->SSRSolutionID)
     855          D_NO_OF_SATELLITES(nums)
    856856          co->Supplied[COBOFS_ORBIT] |= 1;
    857857          co->Supplied[COBOFS_CLOCK] |= 1;
     
    867867              case CLOCKORBIT_SATSBAS:
    868868              case CLOCKORBIT_SATBDS:
    869                 G_GPS_SATELLITE_ID(id)
     869                D_GPS_SATELLITE_ID(id)
    870870                break;
    871871              case CLOCKORBIT_SATQZSS:
    872                 G_QZSS_SATELLITE_ID(id)
     872                D_QZSS_SATELLITE_ID_OLD(id)
    873873                break;
    874874              case CLOCKORBIT_SATGLONASS:
    875                 G_GLONASS_SATELLITE_ID(id)
     875                D_GLONASS_SATELLITE_ID_OLD(id)
    876876                break;
    877877            }
     
    889889              case CLOCKORBIT_SATGPS:
    890890                case CLOCKORBIT_SATQZSS:
    891                 G_GPS_IODE(co->Sat[pos].IOD)
     891                D_GPS_IODE(co->Sat[pos].IOD)
    892892                break;
    893893              case CLOCKORBIT_SATGLONASS:
    894                 G_GPS_IODE(co->Sat[pos].IOD)
     894                D_GPS_IODE(co->Sat[pos].IOD)
    895895                break;
    896896              case CLOCKORBIT_SATGALILEO:
    897                 G_GALILEO_IOD(co->Sat[pos].IOD)
     897                D_GALILEO_IOD(co->Sat[pos].IOD)
    898898                break;
    899899              case CLOCKORBIT_SATSBAS:
    900                 G_SBAS_T0MOD(co->Sat[pos].toe)
    901                 G_SBAS_IODCRC(co->Sat[pos].IOD)
     900                D_SBAS_T0MOD(co->Sat[pos].toe)
     901                D_SBAS_IODCRC(co->Sat[pos].IOD)
    902902                break;
    903903              case CLOCKORBIT_SATBDS:
    904                 G_BDS_TOEMOD(co->Sat[pos].toe)
    905                 G_GPS_IODE(co->Sat[pos].IOD)
     904                D_BDS_TOEMOD(co->Sat[pos].toe)
     905                D_GPS_IODE(co->Sat[pos].IOD)
    906906                break;
    907907            }
    908             G_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)
    909             G_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)
    910             G_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)
    911             G_DELTA_DOT_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)
    912             G_DELTA_DOT_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)
    913             G_DELTA_DOT_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)
    914             G_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)
    915             G_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)
    916             G_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)
     908            D_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)
     909            D_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)
     910            D_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)
     911            D_DOT_DELTA_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)
     912            D_DOT_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)
     913            D_DOT_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)
     914            D_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)
     915            D_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)
     916            D_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)
    917917#ifdef BNC_DEBUG_SSR
    918918            fprintf(stderr, "id %2d iod %3d dr %10.6f da %10.6f dc %10.6f dr %10.6f da %10.6f dc %10.6f  c0 %10.6f c1 %10.6f c2 %10.6f\n",
     
    935935            case CLOCKORBIT_SATSBAS:
    936936            case CLOCKORBIT_SATBDS:
    937               G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     937              D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    938938              break;
    939939            case CLOCKORBIT_SATGLONASS:
    940               G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     940              D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    941941              break;
    942942          }
    943           G_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    944           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    945           G_SSR_IOD(co->SSRIOD)
    946           G_SSR_PROVIDER_ID(co->SSRProviderID)
    947           G_SSR_SOLUTION_ID(co->SSRSolutionID)
    948           G_NO_OF_SATELLITES(nums)
     943          D_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     944          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     945          D_SSR_IOD(co->SSRIOD)
     946          D_SSR_PROVIDER_ID(co->SSRProviderID)
     947          D_SSR_SOLUTION_ID(co->SSRSolutionID)
     948          D_NO_OF_SATELLITES(nums)
    949949          co->Supplied[COBOFS_URA] |= 1;
    950950#ifdef BNC_DEBUG_SSR
     
    959959              case CLOCKORBIT_SATSBAS:
    960960              case CLOCKORBIT_SATBDS:
    961                 G_GPS_SATELLITE_ID(id)
     961                D_GPS_SATELLITE_ID(id)
    962962                break;
    963963              case CLOCKORBIT_SATQZSS:
    964                 G_QZSS_SATELLITE_ID(id)
     964                D_QZSS_SATELLITE_ID_OLD(id)
    965965                break;
    966966              case CLOCKORBIT_SATGLONASS:
    967                 G_GLONASS_SATELLITE_ID(id)
     967                D_GLONASS_SATELLITE_ID_OLD(id)
    968968                break;
    969969            }
     
    977977              ++co->NumberOfSat[s];
    978978            co->Sat[pos].ID = id;
    979             G_SSR_URA(co->Sat[pos].UserRangeAccuracy)
     979            D_SSR_URA(co->Sat[pos].UserRangeAccuracy)
    980980#ifdef BNC_DEBUG_SSR
    981981            fprintf(stderr, "id %2d ura %8.3f \n",
     
    994994            case CLOCKORBIT_SATSBAS:
    995995            case CLOCKORBIT_SATBDS:
    996               G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     996              D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    997997              break;
    998998            case CLOCKORBIT_SATGLONASS:
    999               G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     999              D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    10001000              break;
    10011001          }
    1002           G_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    1003           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    1004           G_SSR_IOD(co->SSRIOD)
    1005           G_SSR_PROVIDER_ID(co->SSRProviderID)
    1006           G_SSR_SOLUTION_ID(co->SSRSolutionID)
    1007           G_NO_OF_SATELLITES(nums)
     1002          D_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     1003          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     1004          D_SSR_IOD(co->SSRIOD)
     1005          D_SSR_PROVIDER_ID(co->SSRProviderID)
     1006          D_SSR_SOLUTION_ID(co->SSRSolutionID)
     1007          D_NO_OF_SATELLITES(nums)
    10081008          co->Supplied[COBOFS_HR] |= 1;
    10091009#ifdef BNC_DEBUG_SSR
     
    10181018              case CLOCKORBIT_SATSBAS:
    10191019              case CLOCKORBIT_SATBDS:
    1020                 G_GPS_SATELLITE_ID(id)
     1020                D_GPS_SATELLITE_ID(id)
    10211021                break;
    10221022              case CLOCKORBIT_SATQZSS:
    1023                 G_QZSS_SATELLITE_ID(id)
     1023                D_QZSS_SATELLITE_ID_OLD(id)
    10241024                break;
    10251025              case CLOCKORBIT_SATGLONASS:
    1026                 G_GLONASS_SATELLITE_ID(id)
     1026                D_GLONASS_SATELLITE_ID_OLD(id)
    10271027                break;
    10281028            }
     
    10361036              ++co->NumberOfSat[s];
    10371037            co->Sat[pos].ID = id;
    1038             G_HR_CLOCK_CORRECTION(co->Sat[pos].hrclock)
     1038            D_HR_CLOCK_CORRECTION(co->Sat[pos].hrclock)
    10391039#ifdef BNC_DEBUG_SSR
    10401040            fprintf(stderr, "id %2d hrClock %8.3f \n",
     
    10531053            case CLOCKORBIT_SATSBAS:
    10541054            case CLOCKORBIT_SATBDS:
    1055               G_GPS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s])
     1055              D_GPS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s])
    10561056              break;
    10571057            case CLOCKORBIT_SATGLONASS:
    1058               G_GLONASS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s])
     1058              D_GLONASS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s])
    10591059              break;
    10601060          }
    1061           G_SSR_UPDATE_INTERVAL(b->UpdateInterval)
    1062           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    1063           G_SSR_IOD(b->SSRIOD)
    1064           G_SSR_PROVIDER_ID(b->SSRProviderID)
    1065           G_SSR_SOLUTION_ID(b->SSRSolutionID)
    1066           G_NO_OF_SATELLITES(nums)
     1061          D_SSR_UPDATE_INTERVAL(b->UpdateInterval)
     1062          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     1063          D_SSR_IOD(b->SSRIOD)
     1064          D_SSR_PROVIDER_ID(b->SSRProviderID)
     1065          D_SSR_SOLUTION_ID(b->SSRSolutionID)
     1066          D_NO_OF_SATELLITES(nums)
    10671067#ifdef BNC_DEBUG_SSR
    10681068          fprintf(stderr, "epochTime %d ui %d mmi %d sats %d/%d ssrIod %d providerId %d solId %d\n",
     
    10761076              case CLOCKORBIT_SATSBAS:
    10771077              case CLOCKORBIT_SATBDS:
    1078                 G_GPS_SATELLITE_ID(id)
     1078                D_GPS_SATELLITE_ID(id)
    10791079                break;
    10801080              case CLOCKORBIT_SATQZSS:
    1081                 G_QZSS_SATELLITE_ID(id)
     1081                D_QZSS_SATELLITE_ID_OLD(id)
    10821082                break;
    10831083              case CLOCKORBIT_SATGLONASS:
    1084                 G_GLONASS_SATELLITE_ID(id)
     1084                D_GLONASS_SATELLITE_ID_OLD(id)
    10851085                break;
    10861086            }
     
    10941094              ++b->NumberOfSat[s];
    10951095            b->Sat[pos].ID = id;
    1096             G_NO_OF_BIASES(b->Sat[pos].NumberOfCodeBiases)
     1096            D_NO_OF_BIASES(b->Sat[pos].NumberOfCodeBiases)
    10971097#ifdef BNC_DEBUG_SSR
    10981098            fprintf(stderr, "id %2d #%d ",
     
    11001100#endif
    11011101            for (j = 0; j < b->Sat[pos].NumberOfCodeBiases; ++j) {
    1102               G_GNSS_SIGNAL_IDENTIFIER(b->Sat[pos].Biases[j].Type)
    1103               G_CODE_BIAS(b->Sat[pos].Biases[j].Bias)
     1102              D_GNSS_SIGNAL_IDENTIFIER(b->Sat[pos].Biases[j].Type)
     1103              D_CODE_BIAS(b->Sat[pos].Biases[j].Bias)
    11041104#ifdef BNC_DEBUG_SSR
    11051105            fprintf(stderr, "t%02d b %8.2f ",
  • trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm_new.cpp

    r10987 r10990  
    6868    if (status[s][COBOFS_ORBIT]) {
    6969      INITBLOCK
    70       T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_ORBIT)
     70      E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_ORBIT)
    7171      switch (s) {
    7272        case CLOCKORBIT_SATGPS:
     
    7575        case CLOCKORBIT_SATSBAS:
    7676        case CLOCKORBIT_SATBDS:
    77           T_GPS_EPOCH_TIME(co->EpochTime[s])
     77          E_GPS_EPOCH_TIME(co->EpochTime[s])
    7878          break;
    7979        case CLOCKORBIT_SATGLONASS:
    80           T_GLONASS_EPOCH_TIME(co->EpochTime[s])
    81           break;
    82       }
    83       T_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    84       T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    85       T_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
    86       T_SSR_IOD(co->SSRIOD)
    87       T_SSR_PROVIDER_ID(co->SSRProviderID)
    88       T_SSR_SOLUTION_ID(co->SSRSolutionID)
    89       T_NO_OF_SATELLITES(co->NumberOfSat[s])
     80          E_GLONASS_EPOCH_TIME(co->EpochTime[s])
     81          break;
     82      }
     83      E_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     84      E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     85      E_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
     86      E_SSR_IOD(co->SSRIOD)
     87      E_SSR_PROVIDER_ID(co->SSRProviderID)
     88      E_SSR_SOLUTION_ID(co->SSRSolutionID)
     89      E_NO_OF_SATELLITES(co->NumberOfSat[s])
    9090      for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) {
    9191        switch (s)         {
    9292          case CLOCKORBIT_SATGPS:
    93             T_GPS_SATELLITE_ID(co->Sat[i].ID)
    94             T_GPS_IODE(co->Sat[i].IOD)
     93            E_GPS_SATELLITE_ID(co->Sat[i].ID)
     94            E_GPS_IODE(co->Sat[i].IOD)
    9595            break;
    9696          case CLOCKORBIT_SATGLONASS:
    97             T_GLONASS_SATELLITE_ID(co->Sat[i].ID)
    98             T_GLONASS_IOD(co->Sat[i].IOD)
     97            E_GLONASS_SATELLITE_ID(co->Sat[i].ID)
     98            E_GLONASS_IOD(co->Sat[i].IOD)
    9999            break;
    100100          case CLOCKORBIT_SATGALILEO:
    101             T_GPS_SATELLITE_ID(co->Sat[i].ID)
    102             T_GALILEO_IOD(co->Sat[i].IOD)
     101            E_GPS_SATELLITE_ID(co->Sat[i].ID)
     102            E_GALILEO_IOD(co->Sat[i].IOD)
    103103            break;
    104104          case CLOCKORBIT_SATQZSS:
    105             T_QZSS_SATELLITE_ID(co->Sat[i].ID)
    106             T_GPS_IODE(co->Sat[i].IOD)
     105            E_QZSS_SATELLITE_ID(co->Sat[i].ID)
     106            E_GPS_IODE(co->Sat[i].IOD)
    107107            break;
    108108          case CLOCKORBIT_SATSBAS:
    109             T_GPS_SATELLITE_ID(co->Sat[i].ID)
    110             T_SBAS_T0MOD(co->Sat[i].toe)
    111             T_SBAS_IODCRC(co->Sat[i].IOD)
     109            E_GPS_SATELLITE_ID(co->Sat[i].ID)
     110            E_SBAS_T0MOD(co->Sat[i].toe)
     111            E_SBAS_IODCRC(co->Sat[i].IOD)
    112112            break;
    113113          case CLOCKORBIT_SATBDS:
    114             T_GPS_SATELLITE_ID(co->Sat[i].ID)
    115             T_BDS_TOEMOD(co->Sat[i].toe)
    116             T_BDS_IOD(co->Sat[i].IOD)
     114            E_GPS_SATELLITE_ID(co->Sat[i].ID)
     115            E_BDS_TOEMOD(co->Sat[i].toe)
     116            E_BDS_IOD(co->Sat[i].IOD)
    117117            break;
    118118        }
    119         T_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)
    120         T_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)
    121         T_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)
    122         T_DELTA_DOT_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)
    123         T_DELTA_DOT_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)
    124         T_DELTA_DOT_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)
     119        E_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)
     120        E_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)
     121        E_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)
     122        E_DOT_DELTA_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)
     123        E_DOT_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)
     124        E_DOT_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)
    125125      }
    126126      ENDBLOCK
     
    128128    if (status[s][COBOFS_CLOCK]) {
    129129      INITBLOCK
    130       T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_CLOCK)
     130      E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_CLOCK)
    131131      switch (s) {
    132132        case CLOCKORBIT_SATGPS:
     
    135135        case CLOCKORBIT_SATSBAS:
    136136        case CLOCKORBIT_SATBDS:
    137           T_GPS_EPOCH_TIME(co->EpochTime[s])
     137          E_GPS_EPOCH_TIME(co->EpochTime[s])
    138138          break;
    139139        case CLOCKORBIT_SATGLONASS:
    140           T_GLONASS_EPOCH_TIME(co->EpochTime[s])
    141           break;
    142       }
    143       T_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    144       T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    145       T_SSR_IOD(co->SSRIOD)
    146       T_SSR_PROVIDER_ID(co->SSRProviderID)
    147       T_SSR_SOLUTION_ID(co->SSRSolutionID)
    148       T_NO_OF_SATELLITES(co->NumberOfSat[s])
     140          E_GLONASS_EPOCH_TIME(co->EpochTime[s])
     141          break;
     142      }
     143      E_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     144      E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     145      E_SSR_IOD(co->SSRIOD)
     146      E_SSR_PROVIDER_ID(co->SSRProviderID)
     147      E_SSR_SOLUTION_ID(co->SSRSolutionID)
     148      E_NO_OF_SATELLITES(co->NumberOfSat[s])
    149149      for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) {
    150150        switch (s) {
     
    153153          case CLOCKORBIT_SATSBAS:
    154154          case CLOCKORBIT_SATBDS:
    155             T_GPS_SATELLITE_ID(co->Sat[i].ID)
     155            E_GPS_SATELLITE_ID(co->Sat[i].ID)
    156156            break;
    157157          case CLOCKORBIT_SATQZSS:
    158             T_QZSS_SATELLITE_ID(co->Sat[i].ID)
     158            E_QZSS_SATELLITE_ID(co->Sat[i].ID)
    159159            break;
    160160          case CLOCKORBIT_SATGLONASS:
    161             T_GLONASS_SATELLITE_ID(co->Sat[i].ID)
     161            E_GLONASS_SATELLITE_ID(co->Sat[i].ID)
    162162            break;
    163163        }
    164         T_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)
    165         T_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)
    166         T_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)
     164        E_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)
     165        E_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)
     166        E_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)
    167167      }
    168168      ENDBLOCK
     
    170170    if (status[s][COBOFS_COMBINED]) {
    171171#ifdef SPLITBLOCK
    172       int nums = co->NumberOfSat[s];
    173       int left, start = satoffset[s];
     172      unsigned int nums = co->NumberOfSat[s];
     173      unsigned int left, start = satoffset[s];
    174174      if(nums > 28) {/* split block when more than 28 sats */
    175175        left = nums - 28;
     
    182182#endif
    183183      INITBLOCK
    184       T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_COMBINED)
     184      E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_COMBINED)
    185185      switch (s) {
    186186        case CLOCKORBIT_SATGPS:
     
    189189        case CLOCKORBIT_SATSBAS:
    190190        case CLOCKORBIT_SATBDS:
    191           T_GPS_EPOCH_TIME(co->EpochTime[s])
     191          E_GPS_EPOCH_TIME(co->EpochTime[s])
    192192          break;
    193193        case CLOCKORBIT_SATGLONASS:
    194           T_GLONASS_EPOCH_TIME(co->EpochTime[s])
    195           break;
    196       }
    197       T_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     194          E_GLONASS_EPOCH_TIME(co->EpochTime[s])
     195          break;
     196      }
     197      E_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    198198#ifdef SPLITBLOCK
    199       T_MULTIPLE_MESSAGE_INDICATOR((moremessagesfollow || left) ? 1 : 0)
     199      E_MULTIPLE_MESSAGE_INDICATOR((moremessagesfollow || left) ? 1 : 0)
    200200#else
    201       T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    202 #endif
    203       T_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
    204       T_SSR_IOD(co->SSRIOD)
    205       T_SSR_PROVIDER_ID(co->SSRProviderID)
    206       T_SSR_SOLUTION_ID(co->SSRSolutionID)
     201      E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     202#endif
     203      E_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
     204      E_SSR_IOD(co->SSRIOD)
     205      E_SSR_PROVIDER_ID(co->SSRProviderID)
     206      E_SSR_SOLUTION_ID(co->SSRSolutionID)
    207207#ifdef SPLITBLOCK
    208       T_NO_OF_SATELLITES(nums)
     208      E_NO_OF_SATELLITES(nums)
    209209      for(i = start; i < start+nums; ++i)
    210210#else
    211       T_NO_OF_SATELLITES(co->NumberOfSat[s])
     211      E_NO_OF_SATELLITES(co->NumberOfSat[s])
    212212      for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i)
    213213#endif
     
    215215        switch (s) {
    216216          case CLOCKORBIT_SATGPS:
    217             T_GPS_SATELLITE_ID(co->Sat[i].ID)
    218             T_GPS_IODE(co->Sat[i].IOD)
     217            E_GPS_SATELLITE_ID(co->Sat[i].ID)
     218            E_GPS_IODE(co->Sat[i].IOD)
    219219            break;
    220220          case CLOCKORBIT_SATGLONASS:
    221             T_GLONASS_SATELLITE_ID(co->Sat[i].ID)
    222             T_GLONASS_IOD(co->Sat[i].IOD)
     221            E_GLONASS_SATELLITE_ID(co->Sat[i].ID)
     222            E_GLONASS_IOD(co->Sat[i].IOD)
    223223            break;
    224224          case CLOCKORBIT_SATGALILEO:
    225             T_GPS_SATELLITE_ID(co->Sat[i].ID)
    226             T_GALILEO_IOD(co->Sat[i].IOD)
     225            E_GPS_SATELLITE_ID(co->Sat[i].ID)
     226            E_GALILEO_IOD(co->Sat[i].IOD)
    227227            break;
    228228          case CLOCKORBIT_SATQZSS:
    229             T_QZSS_SATELLITE_ID(co->Sat[i].ID)
    230             T_GPS_IODE(co->Sat[i].IOD)
     229            E_QZSS_SATELLITE_ID(co->Sat[i].ID)
     230            E_GPS_IODE(co->Sat[i].IOD)
    231231            break;
    232232          case CLOCKORBIT_SATSBAS:
    233             T_GPS_SATELLITE_ID(co->Sat[i].ID)
    234             T_SBAS_T0MOD(co->Sat[i].toe)
    235             T_SBAS_IODCRC(co->Sat[i].IOD)
     233            E_GPS_SATELLITE_ID(co->Sat[i].ID)
     234            E_SBAS_T0MOD(co->Sat[i].toe)
     235            E_SBAS_IODCRC(co->Sat[i].IOD)
    236236            break;
    237237          case CLOCKORBIT_SATBDS:
    238             T_GPS_SATELLITE_ID(co->Sat[i].ID)
    239             T_BDS_TOEMOD(co->Sat[i].toe)
    240             T_BDS_IOD(co->Sat[i].IOD)
     238            E_GPS_SATELLITE_ID(co->Sat[i].ID)
     239            E_BDS_TOEMOD(co->Sat[i].toe)
     240            E_BDS_IOD(co->Sat[i].IOD)
    241241            break;
    242242        }
    243         T_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)
    244         T_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)
    245         T_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)
    246         T_DELTA_DOT_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)
    247         T_DELTA_DOT_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)
    248         T_DELTA_DOT_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)
    249         T_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)
    250         T_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)
    251         T_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)
     243        E_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)
     244        E_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)
     245        E_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)
     246        E_DOT_DELTA_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)
     247        E_DOT_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)
     248        E_DOT_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)
     249        E_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)
     250        E_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)
     251        E_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)
    252252      }
    253253      ENDBLOCK
     
    261261    if (status[s][COBOFS_HR]) {
    262262      INITBLOCK
    263       T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_HR)
     263      E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_HR)
    264264      switch (s) {
    265265        case CLOCKORBIT_SATGPS:
     
    268268        case CLOCKORBIT_SATSBAS:
    269269        case CLOCKORBIT_SATBDS:
    270           T_GPS_EPOCH_TIME(co->EpochTime[s])
     270          E_GPS_EPOCH_TIME(co->EpochTime[s])
    271271          break;
    272272        case CLOCKORBIT_SATGLONASS:
    273           T_GLONASS_EPOCH_TIME(co->EpochTime[s])
    274           break;
    275       }
    276       T_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    277       T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    278       T_SSR_IOD(co->SSRIOD)
    279       T_SSR_PROVIDER_ID(co->SSRProviderID)
    280       T_SSR_SOLUTION_ID(co->SSRSolutionID)
    281       T_NO_OF_SATELLITES(co->NumberOfSat[s])
     273          E_GLONASS_EPOCH_TIME(co->EpochTime[s])
     274          break;
     275      }
     276      E_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     277      E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     278      E_SSR_IOD(co->SSRIOD)
     279      E_SSR_PROVIDER_ID(co->SSRProviderID)
     280      E_SSR_SOLUTION_ID(co->SSRSolutionID)
     281      E_NO_OF_SATELLITES(co->NumberOfSat[s])
    282282      for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) {
    283283        switch (s) {
     
    286286            case CLOCKORBIT_SATSBAS:
    287287            case CLOCKORBIT_SATBDS:
    288             T_GPS_SATELLITE_ID(co->Sat[i].ID)
     288            E_GPS_SATELLITE_ID(co->Sat[i].ID)
    289289            break;
    290290          case CLOCKORBIT_SATQZSS:
    291             T_QZSS_SATELLITE_ID(co->Sat[i].ID)
     291            E_QZSS_SATELLITE_ID(co->Sat[i].ID)
    292292            break;
    293293          case CLOCKORBIT_SATGLONASS:
    294             T_GLONASS_SATELLITE_ID(co->Sat[i].ID)
     294            E_GLONASS_SATELLITE_ID(co->Sat[i].ID)
    295295            break;
    296296        }
    297         T_HR_CLOCK_CORRECTION(co->Sat[i].hrclock)
     297        E_HR_CLOCK_CORRECTION(co->Sat[i].hrclock)
    298298      }
    299299      ENDBLOCK
     
    301301    if (status[s][COBOFS_URA]) {
    302302      INITBLOCK
    303       T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_URA)
     303      E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_URA)
    304304      switch (s) {
    305305        case CLOCKORBIT_SATGPS:
     
    308308        case CLOCKORBIT_SATSBAS:
    309309        case CLOCKORBIT_SATBDS:
    310           T_GPS_EPOCH_TIME(co->EpochTime[s])
     310          E_GPS_EPOCH_TIME(co->EpochTime[s])
    311311          break;
    312312        case CLOCKORBIT_SATGLONASS:
    313           T_GLONASS_EPOCH_TIME(co->EpochTime[s])
    314           break;
    315       }
    316       T_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    317       T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    318       T_SSR_IOD(co->SSRIOD)
    319       T_SSR_PROVIDER_ID(co->SSRProviderID)
    320       T_SSR_SOLUTION_ID(co->SSRSolutionID)
    321       T_NO_OF_SATELLITES(co->NumberOfSat[s])
     313          E_GLONASS_EPOCH_TIME(co->EpochTime[s])
     314          break;
     315      }
     316      E_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     317      E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     318      E_SSR_IOD(co->SSRIOD)
     319      E_SSR_PROVIDER_ID(co->SSRProviderID)
     320      E_SSR_SOLUTION_ID(co->SSRSolutionID)
     321      E_NO_OF_SATELLITES(co->NumberOfSat[s])
    322322      for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) {
    323323        switch (s) {
     
    326326          case CLOCKORBIT_SATSBAS:
    327327          case CLOCKORBIT_SATBDS:
    328             T_GPS_SATELLITE_ID(co->Sat[i].ID)
     328            E_GPS_SATELLITE_ID(co->Sat[i].ID)
    329329            break;
    330330          case CLOCKORBIT_SATQZSS:
    331             T_QZSS_SATELLITE_ID(co->Sat[i].ID)
     331            E_QZSS_SATELLITE_ID(co->Sat[i].ID)
    332332            break;
    333333          case CLOCKORBIT_SATGLONASS:
    334             T_GLONASS_SATELLITE_ID(co->Sat[i].ID)
     334            E_GLONASS_SATELLITE_ID(co->Sat[i].ID)
    335335            break;
    336336        }
    337         T_SSR_URA(ValueToURA(co->Sat[i].UserRangeAccuracy))
     337        E_SSR_URA(ValueToURA(co->Sat[i].UserRangeAccuracy))
    338338      }
    339339      ENDBLOCK
     
    352352    if (b->NumberOfSat[s] && (type == CBTYPE_AUTO || type == corbase[s] + COBOFS_CBIAS)) {
    353353      INITBLOCK
    354       T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_CBIAS)
     354      E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_CBIAS)
    355355      switch (s) {
    356356        case CLOCKORBIT_SATGPS:
     
    359359        case CLOCKORBIT_SATSBAS:
    360360        case CLOCKORBIT_SATBDS:
    361           T_GPS_EPOCH_TIME(b->EpochTime[s])
     361          E_GPS_EPOCH_TIME(b->EpochTime[s])
    362362          break;
    363363        case CLOCKORBIT_SATGLONASS:
    364           T_GLONASS_EPOCH_TIME(b->EpochTime[s])
    365           break;
    366       }
    367       T_SSR_UPDATE_INTERVAL(b->UpdateInterval)
    368       T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    369       T_SSR_IOD(b->SSRIOD)
    370       T_SSR_PROVIDER_ID(b->SSRProviderID)
    371       T_SSR_SOLUTION_ID(b->SSRSolutionID)
    372       T_NO_OF_SATELLITES(b->NumberOfSat[s])
     364          E_GLONASS_EPOCH_TIME(b->EpochTime[s])
     365          break;
     366      }
     367      E_SSR_UPDATE_INTERVAL(b->UpdateInterval)
     368      E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     369      E_SSR_IOD(b->SSRIOD)
     370      E_SSR_PROVIDER_ID(b->SSRProviderID)
     371      E_SSR_SOLUTION_ID(b->SSRSolutionID)
     372      E_NO_OF_SATELLITES(b->NumberOfSat[s])
    373373      for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) {
    374374        switch (s) {
     
    377377          case CLOCKORBIT_SATSBAS:
    378378          case CLOCKORBIT_SATBDS:
    379             T_GPS_SATELLITE_ID(b->Sat[i].ID)
     379            E_GPS_SATELLITE_ID(b->Sat[i].ID)
    380380            break;
    381381          case CLOCKORBIT_SATQZSS:
    382             T_QZSS_SATELLITE_ID(b->Sat[i].ID)
     382            E_QZSS_SATELLITE_ID(b->Sat[i].ID)
    383383            break;
    384384          case CLOCKORBIT_SATGLONASS:
    385             T_GLONASS_SATELLITE_ID(b->Sat[i].ID)
     385            E_GLONASS_SATELLITE_ID(b->Sat[i].ID)
    386386            break;
    387387        }
    388         T_NO_OF_BIASES(b->Sat[i].NumberOfCodeBiases)
     388        E_NO_OF_BIASES(b->Sat[i].NumberOfCodeBiases)
    389389        for (j = 0; j < b->Sat[i].NumberOfCodeBiases; ++j) {
    390           T_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)
    391           T_CODE_BIAS(b->Sat[i].Biases[j].Bias)
     390          E_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)
     391          E_CODE_BIAS(b->Sat[i].Biases[j].Bias)
    392392        }
    393393      }
     
    407407    if (b->NumberOfSat[s] && (type == PBTYPE_AUTO || type == s + PBTYPE_BASE)) {
    408408      INITBLOCK
    409       T_RTCM_MESSAGE_NUMBER(s + PBTYPE_BASE)
     409      E_RTCM_MESSAGE_NUMBER(s + PBTYPE_BASE)
    410410      switch (s) {
    411411        case CLOCKORBIT_SATGPS:
     
    414414        case CLOCKORBIT_SATSBAS:
    415415        case CLOCKORBIT_SATBDS:
    416           T_GPS_EPOCH_TIME(b->EpochTime[s])
     416          E_GPS_EPOCH_TIME(b->EpochTime[s])
    417417          break;
    418418        case CLOCKORBIT_SATGLONASS:
    419           T_GLONASS_EPOCH_TIME(b->EpochTime[s])
    420           break;
    421       }
    422       T_SSR_UPDATE_INTERVAL(b->UpdateInterval)
    423       T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    424       T_SSR_IOD(b->SSRIOD)
    425       T_SSR_PROVIDER_ID(b->SSRProviderID)
    426       T_SSR_SOLUTION_ID(b->SSRSolutionID)
    427       T_DISPERSIVE_BIAS_INDICATOR(b->DispersiveBiasConsistencyIndicator ? 1 : 0)
    428       T_MW_CONSISTENCY_INDICATOR(b->MWConsistencyIndicator ? 1 : 0)
    429       T_NO_OF_SATELLITES(b->NumberOfSat[s])
     419          E_GLONASS_EPOCH_TIME(b->EpochTime[s])
     420          break;
     421      }
     422      E_SSR_UPDATE_INTERVAL(b->UpdateInterval)
     423      E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     424      E_SSR_IOD(b->SSRIOD)
     425      E_SSR_PROVIDER_ID(b->SSRProviderID)
     426      E_SSR_SOLUTION_ID(b->SSRSolutionID)
     427      E_DISPERSIVE_BIAS_INDICATOR(b->DispersiveBiasConsistencyIndicator ? 1 : 0)
     428      E_MW_CONSISTENCY_INDICATOR(b->MWConsistencyIndicator ? 1 : 0)
     429      E_NO_OF_SATELLITES(b->NumberOfSat[s])
    430430      for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) {
    431431        switch (s) {
     
    434434            case CLOCKORBIT_SATSBAS:
    435435            case CLOCKORBIT_SATBDS:
    436             T_GPS_SATELLITE_ID(b->Sat[i].ID)
     436            E_GPS_SATELLITE_ID(b->Sat[i].ID)
    437437            break;
    438438          case CLOCKORBIT_SATQZSS:
    439             T_QZSS_SATELLITE_ID(b->Sat[i].ID)
     439            E_QZSS_SATELLITE_ID(b->Sat[i].ID)
    440440            break;
    441441          case CLOCKORBIT_SATGLONASS:
    442             T_GLONASS_SATELLITE_ID(b->Sat[i].ID)
     442            E_GLONASS_SATELLITE_ID(b->Sat[i].ID)
    443443            break;
    444444        }
    445         T_NO_OF_BIASES(b->Sat[i].NumberOfPhaseBiases)
    446         T_YAW_ANGLE(b->Sat[i].YawAngle)
    447         T_YAW_RATE(b->Sat[i].YawRate)
     445        E_NO_OF_BIASES(b->Sat[i].NumberOfPhaseBiases)
     446        E_YAW_ANGLE(b->Sat[i].YawAngle)
     447        E_YAW_RATE(b->Sat[i].YawRate)
    448448        for (j = 0; j < b->Sat[i].NumberOfPhaseBiases; ++j) {
    449           T_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)
    450           T_INTEGER_INDICATOR(
     449          E_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)
     450          E_INTEGER_INDICATOR(
    451451              b->Sat[i].Biases[j].SignalIntegerIndicator ? 1 : 0)
    452           T_WIDE_LANE_INDICATOR(
     452          E_WIDE_LANE_INDICATOR(
    453453              b->Sat[i].Biases[j].SignalsWideLaneIntegerIndicator)
    454           T_DISCONTINUITY_COUNTER(
     454          E_DISCONTINUITY_COUNTER(
    455455              b->Sat[i].Biases[j].SignalDiscontinuityCounter)
    456           T_PHASE_BIAS(b->Sat[i].Biases[j].Bias)
     456          E_PHASE_BIAS_CORRECTION(b->Sat[i].Biases[j].Bias)
    457457        }
    458458      }
     
    468468  STARTDATA
    469469    INITBLOCK
    470   T_RTCM_MESSAGE_NUMBER(VTEC_BASE)
    471   T_GPS_EPOCH_TIME(v->EpochTime)
    472   T_SSR_UPDATE_INTERVAL(v->UpdateInterval)
    473   T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
    474   T_SSR_IOD(v->SSRIOD)
    475   T_SSR_PROVIDER_ID(v->SSRProviderID)
    476   T_SSR_SOLUTION_ID(v->SSRSolutionID)
    477   T_VTEC_QUALITY_INDICATOR(v->Quality)
    478   T_NO_IONO_LAYERS(v->NumLayers)
     470  E_RTCM_MESSAGE_NUMBER(VTEC_BASE)
     471  E_GPS_EPOCH_TIME(v->EpochTime)
     472  E_SSR_UPDATE_INTERVAL(v->UpdateInterval)
     473  E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)
     474  E_SSR_IOD(v->SSRIOD)
     475  E_SSR_PROVIDER_ID(v->SSRProviderID)
     476  E_SSR_SOLUTION_ID(v->SSRSolutionID)
     477  E_VTEC_QUALITY_INDICATOR(v->Quality)
     478  E_NO_IONO_LAYERS(v->NumLayers)
    479479  for (l = 0; l < v->NumLayers; ++l) {
    480     T_IONO_HEIGHT(v->Layers[l].Height)
    481     T_IONO_DEGREE(v->Layers[l].Degree)
    482     T_IONO_ORDER(v->Layers[l].Order)
     480    E_IONO_HEIGHT(v->Layers[l].Height)
     481    E_IONO_DEGREE(v->Layers[l].Degree)
     482    E_IONO_ORDER(v->Layers[l].Order)
    483483    for (o = 0; o <= v->Layers[l].Order; ++o) {
    484484      for (d = o; d <= v->Layers[l].Degree; ++d) {
    485         T_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])
     485        E_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])
    486486      }
    487487    }
    488488    for (o = 1; o <= v->Layers[l].Order; ++o) {
    489489      for (d = o; d <= v->Layers[l].Degree; ++d) {
    490         T_IONO_COEFF_S(v->Layers[l].Sinus[d][o])
     490        E_IONO_COEFF_S(v->Layers[l].Sinus[d][o])
    491491      }
    492492    }
     
    511511#endif
    512512
    513   G_HEADER(h)
    514   G_RESERVEDH(rs)
    515   G_SIZE(sizeofrtcmblock);
     513  D_HEADER(h)
     514  D_RESERVEDH(rs)
     515  D_SIZE(sizeofrtcmblock);
    516516
    517517  if ((unsigned char) h != 0xD3 || rs)
     
    526526  size = sizeofrtcmblock; /* reduce size, so overflows are detected */
    527527
    528   G_RTCM_MESSAGE_NUMBER(type)
     528  D_RTCM_MESSAGE_NUMBER(type)
    529529#ifdef BNC_DEBUG_SSR
    530530  fprintf(stderr, "type %d size %d\n",type,(int)sizeofrtcmblock);
     
    537537      return GCOBR_NOVTECPARAMETER;
    538538    memset(v, 0, sizeof(*v));
    539     G_GPS_EPOCH_TIME(v->EpochTime)
    540     G_SSR_UPDATE_INTERVAL(v->UpdateInterval)
    541     G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    542     G_SSR_IOD(v->SSRIOD)
    543     G_SSR_PROVIDER_ID(v->SSRProviderID)
    544     G_SSR_SOLUTION_ID(v->SSRSolutionID)
    545     G_VTEC_QUALITY_INDICATOR(v->Quality)
    546     G_NO_IONO_LAYERS(v->NumLayers)
     539    D_GPS_EPOCH_TIME(v->EpochTime)
     540    D_SSR_UPDATE_INTERVAL(v->UpdateInterval)
     541    D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     542    D_SSR_IOD(v->SSRIOD)
     543    D_SSR_PROVIDER_ID(v->SSRProviderID)
     544    D_SSR_SOLUTION_ID(v->SSRSolutionID)
     545    D_VTEC_QUALITY_INDICATOR(v->Quality)
     546    D_NO_IONO_LAYERS(v->NumLayers)
    547547#ifdef BNC_DEBUG_SSR
    548548          fprintf(stderr, "epochTime %d ui %d mmi %d ssrIod %d providerId %d solId %d vtecQ %8.3f numLay %d \n",
     
    551551#endif
    552552    for (l = 0; l < v->NumLayers; ++l) {
    553       G_IONO_HEIGHT(v->Layers[l].Height)
    554       G_IONO_DEGREE(v->Layers[l].Degree)
    555       G_IONO_ORDER(v->Layers[l].Order)
     553      D_IONO_HEIGHT(v->Layers[l].Height)
     554      D_IONO_DEGREE(v->Layers[l].Degree)
     555      D_IONO_ORDER(v->Layers[l].Order)
    556556#ifdef BNC_DEBUG_SSR
    557557          fprintf(stderr, "h  %8.3f deg %d ord %d \n",
     
    560560      for (o = 0; o <= v->Layers[l].Order; ++o) {
    561561        for (d = o; d <= v->Layers[l].Degree; ++d) {
    562           G_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])
     562          D_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])
    563563#ifdef BNC_DEBUG_SSR
    564564          fprintf(stderr, "C[%02d][%02d]  %8.3f \n",
     
    569569      for (o = 1; o <= v->Layers[l].Order; ++o) {
    570570        for (d = o; d <= v->Layers[l].Degree; ++d) {
    571           G_IONO_COEFF_S(v->Layers[l].Sinus[d][o])
     571          D_IONO_COEFF_S(v->Layers[l].Sinus[d][o])
    572572#ifdef BNC_DEBUG_SSR
    573573          fprintf(stderr, "S[%02d][%02d]  %8.3f \n",
     
    595595        case CLOCKORBIT_SATSBAS:
    596596        case CLOCKORBIT_SATBDS:
    597           G_GPS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s])
     597          D_GPS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s])
    598598          break;
    599599        case CLOCKORBIT_SATGLONASS:
    600           G_GLONASS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s])
    601           break;
    602       }
    603       G_SSR_UPDATE_INTERVAL(pb->UpdateInterval)
    604       G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    605       G_SSR_IOD(pb->SSRIOD)
    606       G_SSR_PROVIDER_ID(pb->SSRProviderID)
    607       G_SSR_SOLUTION_ID(pb->SSRSolutionID)
    608       G_DISPERSIVE_BIAS_INDICATOR(pb->DispersiveBiasConsistencyIndicator)
    609       G_MW_CONSISTENCY_INDICATOR(pb->MWConsistencyIndicator)
    610       G_NO_OF_SATELLITES(nums)
     600          D_GLONASS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s])
     601          break;
     602      }
     603      D_SSR_UPDATE_INTERVAL(pb->UpdateInterval)
     604      D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     605      D_SSR_IOD(pb->SSRIOD)
     606      D_SSR_PROVIDER_ID(pb->SSRProviderID)
     607      D_SSR_SOLUTION_ID(pb->SSRSolutionID)
     608      D_DISPERSIVE_BIAS_INDICATOR(pb->DispersiveBiasConsistencyIndicator)
     609      D_MW_CONSISTENCY_INDICATOR(pb->MWConsistencyIndicator)
     610      D_NO_OF_SATELLITES(nums)
    611611#ifdef BNC_DEBUG_SSR
    612612          fprintf(stderr, "epochTime %d ui %d mmi %d sats %d/%d ssrIod %d providerId %d solId %d dispInd %d mwInd %d\n",
     
    621621          case CLOCKORBIT_SATSBAS:
    622622          case CLOCKORBIT_SATBDS:
    623             G_GPS_SATELLITE_ID(id)
     623            D_GPS_SATELLITE_ID(id)
    624624            break;
    625625          case CLOCKORBIT_SATQZSS:
    626             G_QZSS_SATELLITE_ID(id)
     626            D_QZSS_SATELLITE_ID(id)
    627627            break;
    628628          case CLOCKORBIT_SATGLONASS:
    629             G_GLONASS_SATELLITE_ID(id)
     629            D_GLONASS_SATELLITE_ID(id)
    630630            break;
    631631        }
     
    639639          ++pb->NumberOfSat[s];
    640640        pb->Sat[pos].ID = id;
    641         G_NO_OF_BIASES(pb->Sat[pos].NumberOfPhaseBiases)
    642         G_YAW_ANGLE(pb->Sat[pos].YawAngle)
    643         G_YAW_RATE(pb->Sat[pos].YawRate)
     641        D_NO_OF_BIASES(pb->Sat[pos].NumberOfPhaseBiases)
     642        D_YAW_ANGLE(pb->Sat[pos].YawAngle)
     643        D_YAW_RATE(pb->Sat[pos].YawRate)
    644644#ifdef BNC_DEBUG_SSR
    645645            fprintf(stderr, "id %2d #%d y %10.6f yr %10.6f ",
     
    648648#endif
    649649        for (j = 0; j < pb->Sat[pos].NumberOfPhaseBiases; ++j) {
    650           G_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type)
    651           G_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].SignalIntegerIndicator)
    652           G_WIDE_LANE_INDICATOR(
     650          D_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type)
     651          D_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].SignalIntegerIndicator)
     652          D_WIDE_LANE_INDICATOR(
    653653              pb->Sat[pos].Biases[j].SignalsWideLaneIntegerIndicator)
    654           G_DISCONTINUITY_COUNTER(
     654          D_DISCONTINUITY_COUNTER(
    655655              pb->Sat[pos].Biases[j].SignalDiscontinuityCounter)
    656           G_PHASE_BIAS(pb->Sat[pos].Biases[j].Bias)
     656          D_PHASE_BIAS_CORRECTION(pb->Sat[pos].Biases[j].Bias)
    657657#ifdef BNC_DEBUG_SSR
    658658            fprintf(stderr, "t%02d int %d wl %d disc %d b %8.4f ",
     
    687687            case CLOCKORBIT_SATSBAS:
    688688            case CLOCKORBIT_SATBDS:
    689               G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     689              D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    690690              break;
    691691            case CLOCKORBIT_SATGLONASS:
    692               G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     692              D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    693693              break;
    694694          }
    695           G_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    696           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    697           G_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
    698           G_SSR_IOD(co->SSRIOD)
    699           G_SSR_PROVIDER_ID(co->SSRProviderID)
    700           G_SSR_SOLUTION_ID(co->SSRSolutionID)
    701           G_NO_OF_SATELLITES(nums)
     695          D_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     696          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     697          D_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
     698          D_SSR_IOD(co->SSRIOD)
     699          D_SSR_PROVIDER_ID(co->SSRProviderID)
     700          D_SSR_SOLUTION_ID(co->SSRSolutionID)
     701          D_NO_OF_SATELLITES(nums)
    702702          co->Supplied[COBOFS_ORBIT] |= 1;
    703703#ifdef BNC_DEBUG_SSR
     
    712712              case CLOCKORBIT_SATSBAS:
    713713              case CLOCKORBIT_SATBDS:
    714                 G_GPS_SATELLITE_ID(id)
     714                D_GPS_SATELLITE_ID(id)
    715715                break;
    716716              case CLOCKORBIT_SATQZSS:
    717                 G_QZSS_SATELLITE_ID(id)
     717                D_QZSS_SATELLITE_ID(id)
    718718                break;
    719719              case CLOCKORBIT_SATGLONASS:
    720                 G_GLONASS_SATELLITE_ID(id)
     720                D_GLONASS_SATELLITE_ID(id)
    721721                break;
    722722            }
     
    734734              case CLOCKORBIT_SATGPS:
    735735                case CLOCKORBIT_SATQZSS:
    736                   G_GPS_IODE(co->Sat[pos].IOD)
     736                  D_GPS_IODE(co->Sat[pos].IOD)
    737737                break;
    738738              case CLOCKORBIT_SATGLONASS:
    739                 G_GPS_IODE(co->Sat[pos].IOD)
     739                D_GPS_IODE(co->Sat[pos].IOD)
    740740                break;
    741741              case CLOCKORBIT_SATGALILEO:
    742                 G_GALILEO_IOD(co->Sat[pos].IOD)
     742                D_GALILEO_IOD(co->Sat[pos].IOD)
    743743                break;
    744744              case CLOCKORBIT_SATSBAS:
    745                 G_SBAS_T0MOD(co->Sat[pos].toe)
    746                 G_SBAS_IODCRC(co->Sat[pos].IOD)
     745                D_SBAS_T0MOD(co->Sat[pos].toe)
     746                D_SBAS_IODCRC(co->Sat[pos].IOD)
    747747                break;
    748748              case CLOCKORBIT_SATBDS:
    749                 G_BDS_TOEMOD(co->Sat[pos].toe)
    750                 G_GPS_IODE(co->Sat[pos].IOD)
     749                D_BDS_TOEMOD(co->Sat[pos].toe)
     750                D_GPS_IODE(co->Sat[pos].IOD)
    751751                break;
    752752            }
    753             G_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)
    754             G_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)
    755             G_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)
    756             G_DELTA_DOT_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)
    757             G_DELTA_DOT_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)
    758             G_DELTA_DOT_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)
     753            D_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)
     754            D_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)
     755            D_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)
     756            D_DOT_DELTA_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)
     757            D_DOT_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)
     758            D_DOT_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)
    759759#ifdef BNC_DEBUG_SSR
    760760            fprintf(stderr, "id %2d iod %3d dr %8.4f da %8.4f dc %8.4f dr %8.3f da %8.3f dc %8.3f\n",
     
    777777            case CLOCKORBIT_SATSBAS:
    778778            case CLOCKORBIT_SATBDS:
    779               G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     779              D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    780780              break;
    781781            case CLOCKORBIT_SATGLONASS:
    782               G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     782              D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    783783              break;
    784784          }
    785           G_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    786           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    787           G_SSR_IOD(co->SSRIOD)
    788           G_SSR_PROVIDER_ID(co->SSRProviderID)
    789           G_SSR_SOLUTION_ID(co->SSRSolutionID)
    790           G_NO_OF_SATELLITES(nums)
     785          D_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     786          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     787          D_SSR_IOD(co->SSRIOD)
     788          D_SSR_PROVIDER_ID(co->SSRProviderID)
     789          D_SSR_SOLUTION_ID(co->SSRSolutionID)
     790          D_NO_OF_SATELLITES(nums)
    791791          co->Supplied[COBOFS_CLOCK] |= 1;
    792792#ifdef BNC_DEBUG_SSR
     
    801801                case CLOCKORBIT_SATSBAS:
    802802                case CLOCKORBIT_SATBDS:
    803                 G_GPS_SATELLITE_ID(id)
     803                D_GPS_SATELLITE_ID(id)
    804804                break;
    805805              case CLOCKORBIT_SATQZSS:
    806                 G_QZSS_SATELLITE_ID(id)
     806                D_QZSS_SATELLITE_ID(id)
    807807                break;
    808808              case CLOCKORBIT_SATGLONASS:
    809                 G_GLONASS_SATELLITE_ID(id)
     809                D_GLONASS_SATELLITE_ID(id)
    810810                break;
    811811            }
     
    820820            co->Sat[pos].ID = id;
    821821
    822             G_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)
    823             G_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)
    824             G_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)
     822            D_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)
     823            D_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)
     824            D_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)
    825825#ifdef BNC_DEBUG_SSR
    826826            fprintf(stderr, "id %2d c0 %8.3f c1 %8.3f c2 %8.3f\n",
     
    840840            case CLOCKORBIT_SATSBAS:
    841841            case CLOCKORBIT_SATBDS:
    842               G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     842              D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    843843              break;
    844844            case CLOCKORBIT_SATGLONASS:
    845               G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     845              D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    846846              break;
    847847          }
    848           G_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    849           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    850           G_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
    851           G_SSR_IOD(co->SSRIOD)
    852           G_SSR_PROVIDER_ID(co->SSRProviderID)
    853           G_SSR_SOLUTION_ID(co->SSRSolutionID)
    854           G_NO_OF_SATELLITES(nums)
     848          D_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     849          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     850          D_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)
     851          D_SSR_IOD(co->SSRIOD)
     852          D_SSR_PROVIDER_ID(co->SSRProviderID)
     853          D_SSR_SOLUTION_ID(co->SSRSolutionID)
     854          D_NO_OF_SATELLITES(nums)
    855855          co->Supplied[COBOFS_ORBIT] |= 1;
    856856          co->Supplied[COBOFS_CLOCK] |= 1;
     
    866866              case CLOCKORBIT_SATSBAS:
    867867              case CLOCKORBIT_SATBDS:
    868                 G_GPS_SATELLITE_ID(id)
     868                D_GPS_SATELLITE_ID(id)
    869869                break;
    870870              case CLOCKORBIT_SATQZSS:
    871                 G_QZSS_SATELLITE_ID(id)
     871                D_QZSS_SATELLITE_ID(id)
    872872                break;
    873873              case CLOCKORBIT_SATGLONASS:
    874                 G_GLONASS_SATELLITE_ID(id)
     874                D_GLONASS_SATELLITE_ID(id)
    875875                break;
    876876            }
     
    888888              case CLOCKORBIT_SATGPS:
    889889                case CLOCKORBIT_SATQZSS:
    890                   G_GPS_IODE(co->Sat[pos].IOD)
     890                  D_GPS_IODE(co->Sat[pos].IOD)
    891891                break;
    892892              case CLOCKORBIT_SATGLONASS:
    893                 G_GPS_IODE(co->Sat[pos].IOD)
     893                D_GPS_IODE(co->Sat[pos].IOD)
    894894                break;
    895895              case CLOCKORBIT_SATGALILEO:
    896                 G_GALILEO_IOD(co->Sat[pos].IOD)
     896                D_GALILEO_IOD(co->Sat[pos].IOD)
    897897                break;
    898898              case CLOCKORBIT_SATSBAS:
    899                 G_SBAS_T0MOD(co->Sat[pos].toe)
    900                 G_SBAS_IODCRC(co->Sat[pos].IOD)
     899                D_SBAS_T0MOD(co->Sat[pos].toe)
     900                D_SBAS_IODCRC(co->Sat[pos].IOD)
    901901                break;
    902902              case CLOCKORBIT_SATBDS:
    903                 G_BDS_TOEMOD(co->Sat[pos].toe)
    904                 G_GPS_IODE(co->Sat[pos].IOD)
     903                D_BDS_TOEMOD(co->Sat[pos].toe)
     904                D_GPS_IODE(co->Sat[pos].IOD)
    905905                break;
    906906            }
    907             G_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)
    908             G_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)
    909             G_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)
    910             G_DELTA_DOT_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)
    911             G_DELTA_DOT_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)
    912             G_DELTA_DOT_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)
    913             G_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)
    914             G_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)
    915             G_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)
     907            D_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)
     908            D_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)
     909            D_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)
     910            D_DOT_DELTA_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)
     911            D_DOT_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)
     912            D_DOT_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)
     913            D_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)
     914            D_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)
     915            D_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)
    916916#ifdef BNC_DEBUG_SSR
    917917            fprintf(stderr, "id %2d iod %3d dr %10.6f da %10.6f dc %10.6f dr %10.6f da %10.6f dc %10.6f  c0 %10.6f c1 %10.6f c2 %10.6f\n",
     
    934934            case CLOCKORBIT_SATSBAS:
    935935            case CLOCKORBIT_SATBDS:
    936               G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     936              D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    937937              break;
    938938            case CLOCKORBIT_SATGLONASS:
    939               G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     939              D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    940940              break;
    941941          }
    942           G_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    943           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    944           G_SSR_IOD(co->SSRIOD)
    945           G_SSR_PROVIDER_ID(co->SSRProviderID)
    946           G_SSR_SOLUTION_ID(co->SSRSolutionID)
    947           G_NO_OF_SATELLITES(nums)
     942          D_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     943          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     944          D_SSR_IOD(co->SSRIOD)
     945          D_SSR_PROVIDER_ID(co->SSRProviderID)
     946          D_SSR_SOLUTION_ID(co->SSRSolutionID)
     947          D_NO_OF_SATELLITES(nums)
    948948          co->Supplied[COBOFS_URA] |= 1;
    949949#ifdef BNC_DEBUG_SSR
     
    958958              case CLOCKORBIT_SATSBAS:
    959959              case CLOCKORBIT_SATBDS:
    960                 G_GPS_SATELLITE_ID(id)
     960                D_GPS_SATELLITE_ID(id)
    961961                break;
    962962              case CLOCKORBIT_SATQZSS:
    963                 G_QZSS_SATELLITE_ID(id)
     963                D_QZSS_SATELLITE_ID(id)
    964964                break;
    965965              case CLOCKORBIT_SATGLONASS:
    966                 G_GLONASS_SATELLITE_ID(id)
     966                D_GLONASS_SATELLITE_ID(id)
    967967                break;
    968968            }
     
    976976              ++co->NumberOfSat[s];
    977977            co->Sat[pos].ID = id;
    978             G_SSR_URA(co->Sat[pos].UserRangeAccuracy)
     978            D_SSR_URA(co->Sat[pos].UserRangeAccuracy)
    979979#ifdef BNC_DEBUG_SSR
    980980            fprintf(stderr, "id %2d ura %8.3f \n",
     
    993993            case CLOCKORBIT_SATSBAS:
    994994            case CLOCKORBIT_SATBDS:
    995               G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     995              D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    996996              break;
    997997            case CLOCKORBIT_SATGLONASS:
    998               G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
     998              D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])
    999999              break;
    10001000          }
    1001           G_SSR_UPDATE_INTERVAL(co->UpdateInterval)
    1002           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    1003           G_SSR_IOD(co->SSRIOD)
    1004           G_SSR_PROVIDER_ID(co->SSRProviderID)
    1005           G_SSR_SOLUTION_ID(co->SSRSolutionID)
    1006           G_NO_OF_SATELLITES(nums)
     1001          D_SSR_UPDATE_INTERVAL(co->UpdateInterval)
     1002          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     1003          D_SSR_IOD(co->SSRIOD)
     1004          D_SSR_PROVIDER_ID(co->SSRProviderID)
     1005          D_SSR_SOLUTION_ID(co->SSRSolutionID)
     1006          D_NO_OF_SATELLITES(nums)
    10071007          co->Supplied[COBOFS_HR] |= 1;
    10081008#ifdef BNC_DEBUG_SSR
     
    10171017              case CLOCKORBIT_SATSBAS:
    10181018              case CLOCKORBIT_SATBDS:
    1019                 G_GPS_SATELLITE_ID(id)
     1019                D_GPS_SATELLITE_ID(id)
    10201020                break;
    10211021              case CLOCKORBIT_SATQZSS:
    1022                 G_QZSS_SATELLITE_ID(id)
     1022                D_QZSS_SATELLITE_ID(id)
    10231023                break;
    10241024              case CLOCKORBIT_SATGLONASS:
    1025                 G_GLONASS_SATELLITE_ID(id)
     1025                D_GLONASS_SATELLITE_ID(id)
    10261026                break;
    10271027            }
     
    10351035              ++co->NumberOfSat[s];
    10361036            co->Sat[pos].ID = id;
    1037             G_HR_CLOCK_CORRECTION(co->Sat[pos].hrclock)
     1037            D_HR_CLOCK_CORRECTION(co->Sat[pos].hrclock)
    10381038#ifdef BNC_DEBUG_SSR
    10391039            fprintf(stderr, "id %2d hrClock %8.3f \n",
     
    10521052            case CLOCKORBIT_SATSBAS:
    10531053            case CLOCKORBIT_SATBDS:
    1054               G_GPS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s])
     1054              D_GPS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s])
    10551055              break;
    10561056            case CLOCKORBIT_SATGLONASS:
    1057               G_GLONASS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s])
     1057              D_GLONASS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s])
    10581058              break;
    10591059          }
    1060           G_SSR_UPDATE_INTERVAL(b->UpdateInterval)
    1061           G_MULTIPLE_MESSAGE_INDICATOR(mmi)
    1062           G_SSR_IOD(b->SSRIOD)
    1063           G_SSR_PROVIDER_ID(b->SSRProviderID)
    1064           G_SSR_SOLUTION_ID(b->SSRSolutionID)
    1065           G_NO_OF_SATELLITES(nums)
     1060          D_SSR_UPDATE_INTERVAL(b->UpdateInterval)
     1061          D_MULTIPLE_MESSAGE_INDICATOR(mmi)
     1062          D_SSR_IOD(b->SSRIOD)
     1063          D_SSR_PROVIDER_ID(b->SSRProviderID)
     1064          D_SSR_SOLUTION_ID(b->SSRSolutionID)
     1065          D_NO_OF_SATELLITES(nums)
    10661066#ifdef BNC_DEBUG_SSR
    10671067          fprintf(stderr, "epochTime %d ui %d mmi %d sats %d/%d ssrIod %d providerId %d solId %d\n",
     
    10751075              case CLOCKORBIT_SATSBAS:
    10761076              case CLOCKORBIT_SATBDS:
    1077                 G_GPS_SATELLITE_ID(id)
     1077                D_GPS_SATELLITE_ID(id)
    10781078                break;
    10791079              case CLOCKORBIT_SATQZSS:
    1080                 G_QZSS_SATELLITE_ID(id)
     1080                D_QZSS_SATELLITE_ID(id)
    10811081                break;
    10821082              case CLOCKORBIT_SATGLONASS:
    1083                 G_GLONASS_SATELLITE_ID(id)
     1083                D_GLONASS_SATELLITE_ID(id)
    10841084                break;
    10851085            }
     
    10931093              ++b->NumberOfSat[s];
    10941094            b->Sat[pos].ID = id;
    1095             G_NO_OF_BIASES(b->Sat[pos].NumberOfCodeBiases)
     1095            D_NO_OF_BIASES(b->Sat[pos].NumberOfCodeBiases)
    10961096#ifdef BNC_DEBUG_SSR
    10971097            fprintf(stderr, "id %2d #%d ",
     
    10991099#endif
    11001100            for (j = 0; j < b->Sat[pos].NumberOfCodeBiases; ++j) {
    1101               G_GNSS_SIGNAL_IDENTIFIER(b->Sat[pos].Biases[j].Type)
    1102               G_CODE_BIAS(b->Sat[pos].Biases[j].Bias)
     1101              D_GNSS_SIGNAL_IDENTIFIER(b->Sat[pos].Biases[j].Type)
     1102              D_CODE_BIAS(b->Sat[pos].Biases[j].Bias)
    11031103#ifdef BNC_DEBUG_SSR
    11041104            fprintf(stderr, "t%02d b %8.2f ",
  • trunk/BNC/src/ephemeris.cpp

    r10954 r10990  
    29662966}
    29672967
    2968 // Health status of SBAS Ephemeris (virtual)
     2968// Health status of BDS Ephemeris (virtual)
    29692969////////////////////////////////////////////////////////////////////////////
    29702970unsigned int t_ephBDS::isUnhealthy() const {
Note: See TracChangeset for help on using the changeset viewer.