Ignore:
Timestamp:
Sep 21, 2026, 2:06:01 PM (3 days ago)
Author:
stuerze
Message:

updates regarding RTCM-SSR

File:
1 edited

Legend:

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

    r11031 r11034  
    7878  GCOBR_NOPHASEBIASPARAMETER = -12,
    7979  GCOBR_NOVTECPARAMETER = -13,
     80  GCOBR_NOANTENNAPARAMETER = -14,
    8081  /* data mismatch - data in storage does not match new data */
    8182  GCOBR_TIMEMISMATCH = -20,
     
    478479
    479480  struct Antenna {
    480     unsigned int SSRProviderID;
    481     unsigned int SatelliteAntennaIOD;
    482     unsigned int PhaseCenterInformationIndicator;
    483     unsigned int GroupDelayInformationIndicator;
    484     unsigned int NadirAngleDependentCorrectionIndicator;
    485     unsigned int maximumOffNadirAngle;
    486     unsigned int NadirAngleDependentCorrectionRangeExtension;
    487     unsigned int SatelliteSetIndicator;
    488     unsigned int SatelliteMask;
     481    SatAntennaType messageType[CLOCKORBIT_SATNUM];
     482    unsigned int SSRProviderID[CLOCKORBIT_SATNUM];
     483    unsigned int SatelliteAntennaIOD[CLOCKORBIT_SATNUM];
     484    unsigned int PhaseCenterInformationIndicator[CLOCKORBIT_SATNUM];
     485    unsigned int GroupDelayInformationIndicator[CLOCKORBIT_SATNUM];
     486    unsigned int NadirAngleDependentCorrectionIndicator[CLOCKORBIT_SATNUM];
     487    unsigned int maximumOffNadirAngle[CLOCKORBIT_SATNUM];
     488    unsigned int NadirAngleDependentCorrectionRangeExtension[CLOCKORBIT_SATNUM];
     489    unsigned int SatelliteSetIndicator[CLOCKORBIT_SATNUM];
     490    uint64_t SatelliteMask[CLOCKORBIT_SATNUM];
    489491    struct SatellitePart {
    490492      unsigned int FrequencySetIndicator;
     
    496498      } Freq[ANT_MAXFREQUENCIES];
    497499    } Sat[CLOCKORBIT_COUNTSAT];
    498   } GNSS[CLOCKORBIT_SATNUM];
     500  };
    499501
    500502  /* return size of resulting data or 0 in case of an error */
     
    598600#define E_NADIR_ANGLE_DEPENDENT_CORR_RANGE_EXTENSION(a) ADDBITS(4,  a)                      /* DF+015 (new RTCM) to extend DF+021*/
    599601#define E_SATELLITE_SET_INDICATOR(a)                    ADDBITS(1,  a)                      /* DF+016 (new RTCM) */
     602#define E_SATELLITE_MASK(a)                             ADDBITS(64, a)                      /* DF394 */
    600603#define E_FREQUENCY_SET_INDICATOR(a)                    ADDBITS(1,  a)                      /* DF+017 (new RTCM) */
    601604#define E_GNSS_FREQUENCY_MASK(a)                        ADDBITS(6,  a)                      /* DF+018 (new RTCM) */
     
    843846/* Antenna Information*/
    844847#define D_SATELLITE_ANTENNA_IOD(a)                      GETSSRBITS(a,  6)                    /* DF+010 (new RTCM) */
    845 #define D_PHASE_CENTER_INFO_INDICATORD(a)               GETSSRBITS(a,  1)                    /* DF+011 (new RTCM) */   
     848#define D_PHASE_CENTER_INFO_INDICATOR(a)                GETSSRBITS(a,  1)                    /* DF+011 (new RTCM) */   
    846849#define D_GROUP_DELAY_INFO_INDICATOR(a)                 GETSSRBITS(a,  1)                    /* DF+012 (new RTCM) */   
    847850#define D_NADIR_ANGLE_DEPENDENT_CORR_INDICATOR(a)       GETSSRBITS(a,  1)                    /* DF+013 (new RTCM) */
     851#define D_MAXIMUM_OFF_NADIR_ANGLE(a)                    GETSSRBITS(a,  5)                    /* DF+014 (new RTCM  */
    848852#define D_NADIR_ANGLE_DEPENDENT_CORR_RANGE_EXTENSION(a) GETSSRBITS(a,  4)                    /* DF+015 (new RTCM) required to extend DF+021*/
    849853#define D_SATELLITE_SET_INDICATOR(a)                    GETSSRBITS(a,  1)                    /* DF+016 (new RTCM) */
    850 #define D_FREQUENCY_SET_INDICATOR (a)                   GETSSRBITS(a,  1)                    /* DF+017 (new RTCM) */
    851 #define D_GNSS_FREQUENCY_MASK (a)                       GETSSRBITS(a,  6)                    /* DF+018 (new RTCM) */
     854/* GETSSRBITS cannot safely read a full 64 bits in one call: bitbuffer is
     855   itself only 64 bits wide, so LOADSSRBITS's loop (which keeps whatever
     856   residual (0-7) bits are already buffered from the previous field) can be
     857   asked to hold residual+64 bits at once, silently shifting the residual
     858   bits out before extraction. Split into two 32-bit reads instead, each of
     859   which stays safely within bitbuffer's capacity. */
     860#define D_SATELLITE_MASK(a)                             { \
     861  unsigned int maskHi32, maskLo32; \
     862  GETSSRBITS(maskHi32, 32) \
     863  GETSSRBITS(maskLo32, 32) \
     864  (a) = ((uint64_t)maskHi32 << 32) | maskLo32; \
     865}                                                                             /* DF394 */
     866#define D_FREQUENCY_SET_INDICATOR(a)                    GETSSRBITS(a,  1)                    /* DF+017 (new RTCM) */
     867#define D_GNSS_FREQUENCY_MASK(a)                        GETSSRBITS(a,  6)                    /* DF+018 (new RTCM) */
    852868#define D_NADIR_CORR_INDICATOR(a)                       GETSSRBITS(a,  1)                    /* DF+019 (new RTCM) */
    853869#define D_NADIR_CORRECTION(a)                           GETSSRFLOATSIGN(a, 12, 1/1000.0)     /* DF+020 (new RTCM) in [m] */
Note: See TracChangeset for help on using the changeset viewer.