Changeset 3171 in ntrip
- Timestamp:
- Mar 29, 2011, 4:10:33 PM (14 years ago)
- Location:
- trunk/BNC
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/bncgetthread.cpp
r3168 r3171 319 319 else if (_format.indexOf("RTNET") != -1) { 320 320 emit(newMessage(_staID + ": Get data in RTNet format", true)); 321 _decoder = new bncRtnetDecoder( _staID);321 _decoder = new bncRtnetDecoder(); 322 322 } 323 323 else { -
trunk/BNC/bncutils.cpp
r3044 r3171 309 309 // 310 310 //////////////////////////////////////////////////////////////////////////// 311 double djul(int jj, int mm, double tt) { 312 int ii, kk; 313 double djul ; 314 if( mm <= 2 ) { 315 jj = jj - 1; 316 mm = mm + 12; 317 } 318 ii = jj/100; 319 kk = 2 - ii + ii/4; 320 djul = (365.25*jj - fmod( 365.25*jj, 1.0 )) - 679006.0; 321 djul = djul + floor( 30.6001*(mm + 1) ) + tt + kk; 322 return djul; 323 } 324 325 // 326 //////////////////////////////////////////////////////////////////////////// 327 void jdgp(double tjul, double & second, int & nweek) { 328 double deltat; 329 deltat = tjul - 44244.0 ; 330 // current gps week 331 nweek = (int) floor(deltat/7.0); 332 // seconds past midnight of last weekend 333 second = (deltat - (nweek)*7.0)*86400.0; 334 } 335 336 // 337 //////////////////////////////////////////////////////////////////////////// 311 338 void GPSweekFromDateAndTime(const QDateTime& dateTime, 312 339 int& GPSWeek, double& GPSWeeks) { … … 321 348 GPSWeeks = (weekDay - 1) * 86400.0 322 349 - dateTime.time().msecsTo(QTime()) / 1e3; 350 } 351 352 // 353 //////////////////////////////////////////////////////////////////////////// 354 void GPSweekFromYMDhms(int year, int month, int day, int hour, int min, 355 double sec, int& GPSWeek, double& GPSWeeks) { 356 357 double mjd = djul(year, month, day); 358 359 jdgp(mjd, GPSWeeks, GPSWeek); 360 GPSWeeks += hour * 3600.0 + min * 60.0 + sec; 323 361 } 324 362 -
trunk/BNC/bncutils.h
r3044 r3171 63 63 int& GPSWeek, double& GPSWeeks); 64 64 65 void GPSweekFromYMDhms(int year, int month, int day, int hour, int min, 66 double sec, int& GPSWeek, double& GPSWeeks); 67 65 68 void mjdFromDateAndTime(const QDateTime& dateTime, int& mjd, double& dayfrac); 66 69 -
trunk/BNC/upload/bncrtnetdecoder.cpp
r3166 r3171 48 48 // Constructor 49 49 //////////////////////////////////////////////////////////////////////// 50 bncRtnetDecoder::bncRtnetDecoder(const QString& fileName) { 51 50 bncRtnetDecoder::bncRtnetDecoder() { 52 51 bncSettings settings; 53 QString path = settings.value("rnxPath").toString(); 54 expandEnvVar(path); 55 56 if ( path.length() > 0 && path[path.length()-1] != QDir::separator() ) { 57 path += QDir::separator(); 58 } 59 60 _fileName = path + fileName; 61 62 _out = 0; 52 _year = 0; 63 53 } 64 54 … … 66 56 //////////////////////////////////////////////////////////////////////// 67 57 bncRtnetDecoder::~bncRtnetDecoder() { 68 delete _out;69 58 } 70 59 71 // Reopen Output File60 // Decode Method 72 61 //////////////////////////////////////////////////////////////////////// 73 void bncRtnetDecoder::reopen() { 74 QDate currDate = currentDateAndTimeGPS().date(); 75 if (!_out || _fileDate != currDate) { 76 delete _out; 77 QByteArray fileName = 78 (_fileName + "_" + currDate.toString("yyMMdd")).toAscii(); 79 bncSettings settings; 80 if (Qt::CheckState(settings.value("rnxAppend").toInt()) == Qt::Checked) { 81 _out = new ofstream(fileName.data(), ios::out | ios::app); 82 } 83 else { 84 _out = new ofstream(fileName.data()); 85 } 86 _fileDate = currDate; 87 } 62 void bncRtnetDecoder::readEpochTime(const QString& line) { 63 QTextStream in(line.toAscii()); 64 QString hlp; 65 in >> hlp >> _year >> _month >> _day >> _hour >> _min >> _sec; 66 GPSweekFromYMDhms(_year, _month, _day, _hour, _min, _sec, _GPSweek, _GPSweeks); 88 67 } 89 68 … … 91 70 //////////////////////////////////////////////////////////////////////// 92 71 t_irc bncRtnetDecoder::Decode(char* buffer, int bufLen, vector<string>& errmsg) { 72 93 73 errmsg.clear(); 94 reopen(); 95 _out->write(buffer, bufLen); 96 _out->flush(); 74 75 _buffer.append(QByteArray(buffer, bufLen)); 76 77 int iLast = _buffer.lastIndexOf('\n'); 78 79 if (iLast != -1) { 80 QStringList lines = _buffer.split('\n', QString::SkipEmptyParts); 81 _buffer = _buffer.mid(iLast+1); 82 cout << "number of lines = " << lines.size() << endl; 83 for (int ii = 0; ii < lines.size(); ii++) { 84 if (lines[ii].indexOf('*') != -1) { 85 readEpochTime(lines[ii]); 86 cout << "epoch: " << lines[ii].toAscii().data() << endl; 87 } 88 else if (_year != 0) { 89 cout << "pos: " << lines[ii].toAscii().data() << endl; 90 } 91 } 92 } 93 97 94 return success; 98 95 } -
trunk/BNC/upload/bncrtnetdecoder.h
r3167 r3171 23 23 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 24 24 25 #ifndef INC_BNCRTNETDECODER_H26 #define INC_BNCRTNETDECODER_H25 #ifndef BNCRTNETDECODER_H 26 #define BNCRTNETDECODER_H 27 27 28 28 #include <fstream> … … 33 33 class bncRtnetDecoder: public GPSDecoder, public bncEphUser { 34 34 public: 35 bncRtnetDecoder( const QString& fileName);35 bncRtnetDecoder(); 36 36 ~bncRtnetDecoder(); 37 37 virtual t_irc Decode(char* buffer, int bufLen, std::vector<std::string>& errmsg); 38 38 private: 39 void reopen(); 40 QString _fileName; 41 std::ofstream* _out; 42 QDate _fileDate; 39 void readEpochTime(const QString& line); 40 41 QString _buffer; 42 43 int _GPSweek; 44 double _GPSweeks; 45 int _year; 46 int _month; 47 int _day; 48 int _hour; 49 int _min; 50 double _sec; 51 52 double _dx; 53 double _dy; 54 double _dz; 55 double _dxr; 56 double _dyr; 57 double _dzr; 58 double _ox; 59 double _oy; 60 double _oz; 61 double _oxr; 62 double _oyr; 63 double _ozr; 64 double _sc; 65 double _scr; 66 double _t0; 43 67 }; 44 68
Note:
See TracChangeset
for help on using the changeset viewer.