- Timestamp:
- Oct 24, 2012, 6:02:49 PM (12 years ago)
- Location:
- trunk/BNC/src/RTRover
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/RTRover/bncrtrover.cpp
r4764 r4768 15 15 //////////////////////////////////////////////////////////////////////////// 16 16 t_bncRtrover::t_bncRtrover() : QThread(0) { 17 18 17 } 19 18 … … 21 20 //////////////////////////////////////////////////////////////////////////// 22 21 t_bncRtrover::~t_bncRtrover() { 23 QMapIterator<QString, t_corr*> ic(_corr);24 while (ic.hasNext()) {25 ic.next();26 delete ic.value();27 }28 22 rtrover_destroy(); 29 23 } … … 34 28 bncSettings settings; 35 29 36 // Processed Station, Corrections Source 37 // ------------------------------------- 38 _pppCorrMount = settings.value("pppCorrMount").toString(); 30 // User Options 31 // ------------ 32 _mode = settings.value("rtroverMode").toByteArray(); 33 _roverMount = settings.value("rtroverRoverMount").toByteArray(); 34 _baseMount = settings.value("rtroverBaseMount").toByteArray(); 35 _corrMount = settings.value("rtroverCorrMount").toByteArray(); 36 _outputFile.setFileName(settings.value("rtroverOutput").toString()); 37 _outputFile.open(QIODevice::WriteOnly | QIODevice::Text); 39 38 40 39 // Define Input Options 41 40 // -------------------- 42 41 rtrover_opt opt; 42 opt._roverName = strdup(_roverMount.data()); 43 opt._baseName = strdup(_baseMount.data()); 44 opt._xyzAprRover[0] = settings.value("rtroverRoverRefCrdX").toDouble(); 45 opt._xyzAprRover[1] = settings.value("rtroverRoverRefCrdY").toDouble(); 46 opt._xyzAprRover[2] = settings.value("rtroverRoverRefCrdZ").toDouble(); 47 opt._xyzAprBase[0] = settings.value("rtroverBaseRefCrdX").toDouble(); 48 opt._xyzAprBase[1] = settings.value("rtroverBaseRefCrdY").toDouble(); 49 opt._xyzAprBase[2] = settings.value("rtroverBaseRefCrdZ").toDouble(); 50 opt._sigmaPhase = 0.002; // TODO 51 opt._sigmaCode = 2.0; // TODO 43 52 rtrover_setOptions(&opt); 44 53 … … 155 164 // Check the Mountpoint (source of corrections) 156 165 // -------------------------------------------- 157 if (!_pppCorrMount.isEmpty()) { 158 QMutableListIterator<QString> itm(corrList); 159 while (itm.hasNext()) { 160 QStringList hlp = itm.next().split(" "); 161 if (hlp.size() > 0) { 162 QString mountpoint = hlp[hlp.size()-1]; 163 if (mountpoint != _pppCorrMount) { 164 itm.remove(); 165 } 166 QMutableListIterator<QString> itm(corrList); 167 while (itm.hasNext()) { 168 QStringList hlp = itm.next().split(" "); 169 if (hlp.size() > 0) { 170 QString mountpoint = hlp[hlp.size()-1]; 171 if (mountpoint != _corrMount) { 172 itm.remove(); 166 173 } 167 174 } … … 185 192 186 193 if ( t_corr::relevantMessageType(messageType) ) { 187 t_corr* cc = 0;188 if (_corr.contains(prn)) {189 cc = _corr.value(prn);190 }191 else {192 cc = new t_corr();193 _corr[prn] = cc;194 }195 196 cc->readLine(line);197 194 } 198 195 } 199 200 QMapIterator<QString, t_corr*> ic(_corr);201 while (ic.hasNext()) {202 ic.next();203 t_corr* cc = ic.value();204 if (cc->ready()) {205 206 }207 }208 196 } 209 197 210 198 // 211 199 //////////////////////////////////////////////////////////////////////////// 212 void t_bncRtrover::slotNewObs(QByteArray staID, bool firstObs, t_obs obsIn) { 213 QMutexLocker locker(&_mutex); 200 void t_bncRtrover::slotNewObs(QByteArray staID, bool /* firstObs */, t_obs obsIn) { 201 QMutexLocker locker(&_mutex); 202 203 if (staID != _roverMount && staID != _baseMount) { 204 return; 205 } 214 206 215 207 bncTime obsTime(obsIn.GPSWeek, obsIn.GPSWeeks); 216 217 if (_epoch.size() != 0) {218 bncTime epoTime(_epoch[0].GPSWeek, _epoch[0].GPSWeeks);219 if (epoTime != obsTime) {220 //// const GPSS::gpcObs* allObs[_epoch.size()];221 for (unsigned iObs = 0; iObs < _epoch.size(); iObs++) {222 t_obs& obs = _epoch[iObs];223 224 }225 226 // for (unsigned iObs = 0; iObs < _epoch.size(); iObs++) {227 // delete allObs[iObs];228 // }229 230 _epoch.clear();231 }232 }233 234 t_obs newObs(obsIn);235 _epoch.push_back(newObs);236 237 208 int numSatRover = 1; 238 209 rtrover_satObs satObsRover[numSatRover]; … … 242 213 rtrover_output output; 243 214 rtrover_processEpoch(numSatRover, satObsRover, 0, 0, &output); 244 } 215 216 _outputFile.write(output._log); 217 _outputFile.flush(); 218 } -
trunk/BNC/src/RTRover/bncrtrover.h
r4763 r4768 3 3 4 4 #include <vector> 5 #include <queue> 5 6 6 7 #include "RTCM/GPSDecoder.h" … … 23 24 24 25 private: 25 QMutex _mutex; 26 QString _pppCorrMount; 27 QMap<QString, t_corr*> _corr; 28 std::vector<t_obs> _epoch; 26 class t_epoData { 27 public: 28 bncTime _time; 29 std::vector<t_obs> _obsRover; 30 std::vector<t_obs> _obsBase; 31 }; 32 QMutex _mutex; 33 QByteArray _mode; 34 QFile _outputFile; 35 QByteArray _roverMount; 36 QByteArray _baseMount; 37 QByteArray _corrMount; 38 std::queue<t_epoData> _epochs; 29 39 }; 30 40
Note:
See TracChangeset
for help on using the changeset viewer.