Changeset 10955 in ntrip for trunk/BNC/src/bncantex.h
- Timestamp:
- Jul 3, 2026, 11:10:42 AM (6 weeks ago)
- File:
-
- 1 edited
-
trunk/BNC/src/bncantex.h (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/bncantex.h
r10951 r10955 46 46 double rcvCorr(const std::string& antName, t_frequency::type frqType, 47 47 double eleSat, double azSat, bool& found) const; 48 49 // Attitude model selection for satCoMcorrection(). 50 enum e_attMode { 51 ATT_COMPUTED = 0, // full model: GLONASS yaw-fixed + GPS noon/midnight turn 52 ATT_NOMINAL = 1, // simple nominal Sun-pointing only (no maneuver model) 53 ATT_EXTERNAL = 2, // use caller-supplied externalYaw angle [rad] 54 }; 55 48 56 t_irc satCoMcorrection(const QString& prn, double Mjd, 49 57 const ColumnVector& xSat, const ColumnVector& vSat, 50 ColumnVector& dx); 58 ColumnVector& dx, 59 e_attMode mode = ATT_COMPUTED, 60 double externalYaw = 0.0); 51 61 52 // Drains and returns the diagnostic log accumulated by the GLONASS 53 // yaw-fixed model (mode transitions, with beta/mu/rate at the time). 62 // Drain and return diagnostic logs accumulated by the yaw models. 54 63 // Empty most of the time; only non-empty right after a transition. 55 64 QString takeGlonassYawLog() { … … 58 67 return s; 59 68 } 69 QString takeGpsYawLog() { 70 QString s = _gpsYawLog; 71 _gpsYawLog.clear(); 72 return s; 73 } 74 QString takeOnYawLog() { 75 QString s = _onYawLog; 76 _onYawLog.clear(); 77 return s; 78 } 60 79 61 80 private: 62 // Per-satellite GLONASS yaw state, used to freeze the yaw angle while 63 // the satellite cannot follow the nominal Sun-pointing attitude law 64 // (see glonassYawAngle() below). 81 // Per-satellite GLONASS yaw state: freezes the yaw angle while the 82 // satellite cannot follow the nominal Sun-pointing law (Dilssner 2011). 65 83 class t_glonassYaw { 66 84 public: … … 77 95 }; 78 96 97 // Per-satellite GPS yaw state: rate-limits the yaw during noon/midnight 98 // turns when the required yaw rate exceeds the block's mechanical maximum 99 // (Kouba 2009/2015, Bar-Sever 1996). 100 class t_gpsYaw { 101 public: 102 t_gpsYaw() { 103 yaw = 0.0; 104 lastCallMjd = 0.0; 105 valid = false; 106 inTurn = false; 107 } 108 double yaw; 109 double lastCallMjd; 110 bool valid; 111 bool inTurn; // true while in a constrained noon/midnight turn 112 }; 113 114 // Per-satellite Galileo/BDS yaw state: tracks rate-limited rotation between 115 // yaw-steering (psiNom) and orbit-normal mode (psi=0) when |beta| crosses 116 // the constellation-specific threshold (Kouba 2017, Dai et al. 2015). 117 class t_onYaw { 118 public: 119 t_onYaw() { 120 yaw = 0.0; 121 lastCallMjd = 0.0; 122 valid = false; 123 inON = false; 124 } 125 double yaw; 126 double lastCallMjd; 127 bool valid; 128 bool inON; // true while satellite is in (or transitioning to) orbit-normal mode 129 }; 130 79 131 QString _glonassYawLog; 132 QString _gpsYawLog; 133 QString _onYawLog; 80 134 81 135 double glonassYawAngle(const QString& prn, double Mjd, const ColumnVector& xSat, 82 136 const ColumnVector& vSat, const ColumnVector& xSun); 83 137 138 double gpsYawAngle(const QString& prn, const QString& blockType, double Mjd, 139 const ColumnVector& xSat, const ColumnVector& vSat, 140 const ColumnVector& xSun); 141 142 double onModeYawAngle(const QString& prn, double betaThr, double psiDotMax, 143 double Mjd, const ColumnVector& xSat, 144 const ColumnVector& vSat, const ColumnVector& xSun); 145 146 double galileoYawAngle(const QString& prn, const QString& blockType, double Mjd, 147 const ColumnVector& xSat, const ColumnVector& vSat, 148 const ColumnVector& xSun); 149 150 double bdsYawAngle(const QString& prn, const QString& blockType, double Mjd, 151 const ColumnVector& xSat, const ColumnVector& vSat, 152 const ColumnVector& xSun); 153 84 154 QMap<QString, t_glonassYaw> _glonassYaw; 155 QMap<QString, t_gpsYaw> _gpsYaw; 156 QMap<QString, t_onYaw> _onYaw; 85 157 86 158 class t_frqMap { … … 111 183 } 112 184 QString antName; 185 QString blockType; // e.g. "IIF", "IIR-M", "IIA", "IIIA" (GPS only) 113 186 double zen1; 114 187 double zen2;
Note:
See TracChangeset
for help on using the changeset viewer.
