Changeset 7278 in ntrip for trunk/BNC


Ignore:
Timestamp:
Sep 15, 2015, 4:48:34 AM (9 years ago)
Author:
stuerze
Message:

some memory leaks fixed

Location:
trunk/BNC/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/PPP/pppEphPool.cpp

    r7237 r7278  
    1111 * Created:    29-Jul-2014
    1212 *
    13  * Changes:   
     13 * Changes:
    1414 *
    1515 * -----------------------------------------------------------------------*/
     
    5252//
    5353/////////////////////////////////////////////////////////////////////////////
    54 t_irc t_pppEphPool::getCrd(const t_prn& prn, const bncTime& tt, 
     54t_irc t_pppEphPool::getCrd(const t_prn& prn, const bncTime& tt,
    5555                             ColumnVector& xc, ColumnVector& vv) const {
    5656  return _satEphPool[prn.toInt()].getCrd(tt, xc, vv);
     
    8484    t_eph* eph = _ephs[ii];
    8585    if (eph->IOD() == corr->_iod) {
    86       eph->setOrbCorr(corr);
    87       return;
     86      eph->setOrbCorr(corr);
    8887    }
    8988  }
     
    9796    t_eph* eph = _ephs[ii];
    9897    if (eph->IOD() == corr->_iod) {
    99       eph->setClkCorr(corr); 
     98      eph->setClkCorr(corr);
    10099    }
    101100  }
  • trunk/BNC/src/ephemeris.cpp

    r7169 r7278  
    2323  _orbCorr    = 0;
    2424  _clkCorr    = 0;
     25}
     26// Destructor
     27////////////////////////////////////////////////////////////////////////////
     28t_eph::~t_eph() {
     29  if (_orbCorr)
     30    delete _orbCorr;
     31  if (_clkCorr)
     32    delete _clkCorr;
    2533}
    2634
     
    313321  double OM     = _OMEGA0 + (_OMEGADOT - omegaEarth)*tk -
    314322                   omegaEarth*_TOEsec;
    315  
     323
    316324  double sinom = sin(OM);
    317325  double cosom = cos(OM);
     
    320328  xc[0] = xp*cosom - yp*cosi*sinom;
    321329  xc[1] = xp*sinom + yp*cosi*cosom;
    322   xc[2] = yp*sini;                 
     330  xc[2] = yp*sini;               
    323331 
    324332  double tc = tt - _TOC;
     
    329337  double tanv2 = tan(v/2);
    330338  double dEdM  = 1 / (1 - _e*cos(E));
    331   double dotv  = sqrt((1.0 + _e)/(1.0 - _e)) / cos(E/2)/cos(E/2) / (1 + tanv2*tanv2) 
     339  double dotv  = sqrt((1.0 + _e)/(1.0 - _e)) / cos(E/2)/cos(E/2) / (1 + tanv2*tanv2)
    332340               * dEdM * n;
    333341  double dotu  = dotv + (-_Cuc*sin2u0 + _Cus*cos2u0)*2*dotv;
    334342  double dotom = _OMEGADOT - omegaEarth;
    335343  double doti  = _IDOT + (-_Cic*sin2u0 + _Cis*cos2u0)*2*dotv;
    336   double dotr  = a0 * _e*sin(E) * dEdM * n 
     344  double dotr  = a0 * _e*sin(E) * dEdM * n
    337345                + (-_Crc*sin2u0 + _Crs*cos2u0)*2*dotv;
    338346  double dotx  = dotr*cos(u) - r*sin(u)*dotu;
     
    11281136  }
    11291137
    1130   _x_pos          *= 1.e3; 
    1131   _y_pos          *= 1.e3; 
    1132   _z_pos          *= 1.e3; 
    1133   _x_velocity     *= 1.e3; 
    1134   _y_velocity     *= 1.e3; 
    1135   _z_velocity     *= 1.e3; 
    1136   _x_acceleration *= 1.e3; 
    1137   _y_acceleration *= 1.e3; 
    1138   _z_acceleration *= 1.e3; 
     1138  _x_pos          *= 1.e3;
     1139  _y_pos          *= 1.e3;
     1140  _z_pos          *= 1.e3;
     1141  _x_velocity     *= 1.e3;
     1142  _y_velocity     *= 1.e3;
     1143  _z_velocity     *= 1.e3;
     1144  _x_acceleration *= 1.e3;
     1145  _y_acceleration *= 1.e3;
     1146  _z_acceleration *= 1.e3;
    11391147}
    11401148
     
    11761184  double  dt = tt - _TOC;
    11771185
    1178   xc[0] = _x_pos + _x_velocity * dt + _x_acceleration * dt * dt / 2.0; 
    1179   xc[1] = _y_pos + _y_velocity * dt + _y_acceleration * dt * dt / 2.0; 
    1180   xc[2] = _z_pos + _z_velocity * dt + _z_acceleration * dt * dt / 2.0; 
     1186  xc[0] = _x_pos + _x_velocity * dt + _x_acceleration * dt * dt / 2.0;
     1187  xc[1] = _y_pos + _y_velocity * dt + _y_acceleration * dt * dt / 2.0;
     1188  xc[2] = _z_pos + _z_velocity * dt + _z_acceleration * dt * dt / 2.0;
    11811189
    11821190  vv[0] = _x_velocity + _x_acceleration * dt;
     
    14551463  double sini  = 0;
    14561464  double cosi  = 0;
    1457  
     1465
    14581466  const double iMaxGEO = 10.0 / 180.0 * M_PI;
    14591467
     
    14701478    xc[0] = xp*cosom - yp*cosi*sinom;
    14711479    xc[1] = xp*sinom + yp*cosi*cosom;
    1472     xc[2] = yp*sini;                 
     1480    xc[2] = yp*sini;
    14731481  }
    14741482
     
    14861494    double xx = xp*cosom - yp*cosi*sinom;
    14871495    double yy = xp*sinom + yp*cosi*cosom;
    1488     double zz = yp*sini;                 
     1496    double zz = yp*sini;
    14891497
    14901498    Matrix R1 = BNC_PPP::t_astro::rotX(-5.0 / 180.0 * M_PI);
     
    14981506    xc[2] = X2(3);
    14991507  }
    1500  
     1508
    15011509  double tc = tt - _TOC;
    1502   xc[3] = _clock_bias + _clock_drift*tc + _clock_driftrate*tc*tc 
     1510  xc[3] = _clock_bias + _clock_drift*tc + _clock_driftrate*tc*tc
    15031511          - 4.442807633e-10 * _e * sqrt(a0) *sin(E);
    15041512
     
    15071515  double tanv2 = tan(v/2);
    15081516  double dEdM  = 1 / (1 - _e*cos(E));
    1509   double dotv  = sqrt((1.0 + _e)/(1.0 - _e)) / cos(E/2)/cos(E/2) 
     1517  double dotv  = sqrt((1.0 + _e)/(1.0 - _e)) / cos(E/2)/cos(E/2)
    15101518                 / (1 + tanv2*tanv2) * dEdM * n;
    15111519  double dotu  = dotv + (-_Cuc*sin2u0 + _Cus*cos2u0)*2*dotv;
    15121520  double dotom = _OMEGADOT - t_CST::omega;
    15131521  double doti  = _IDOT + (-_Cic*sin2u0 + _Cis*cos2u0)*2*dotv;
    1514   double dotr  = a0 * _e*sin(E) * dEdM * n 
     1522  double dotr  = a0 * _e*sin(E) * dEdM * n
    15151523                + (-_Crc*sin2u0 + _Crs*cos2u0)*2*dotv;
    15161524  double dotx  = dotr*cos(u) - r*sin(u)*dotu;
     
    15201528        - xp*sinom*dotom - yp*cosi*cosom*dotom   // dX / dOMEGA
    15211529                         + yp*sini*sinom*doti;   // dX / di
    1522  
     1530
    15231531  vv[1]  = sinom  *dotx  + cosi*cosom   *doty
    15241532        + xp*cosom*dotom - yp*cosi*sinom*dotom
     
    15271535  vv[2]  = sini   *doty  + yp*cosi      *doti;
    15281536
    1529   // dotC  = _clock_drift + _clock_driftrate*tc 
     1537  // dotC  = _clock_drift + _clock_driftrate*tc
    15301538  //       - 4.442807633e-10*_e*sqrt(a0)*cos(E) * dEdM * n;
    15311539
  • trunk/BNC/src/ephemeris.h

    r7208 r7278  
    2121
    2222  t_eph();
    23   virtual ~t_eph() {};
     23  virtual ~t_eph();
    2424
    2525  virtual e_type  type() const = 0;
     
    4040  static bool earlierTime(const t_eph* eph1, const t_eph* eph2) {return eph1->_TOC < eph2->_TOC;}
    4141
    42  protected: 
     42 protected:
    4343  virtual t_irc position(int GPSweek, double GPSweeks, double* xc, double* vv) const = 0;
    4444  t_prn        _prn;
     
    6767  virtual t_irc position(int GPSweek, double GPSweeks, double* xc, double* vv) const;
    6868
    69   double  _clock_bias;      // [s]   
    70   double  _clock_drift;     // [s/s] 
     69  double  _clock_bias;      // [s]
     70  double  _clock_drift;     // [s/s]
    7171  double  _clock_driftrate; // [s/s^2]
    7272
    73   double  _IODE;           
    74   double  _Crs;             // [m]   
     73  double  _IODE;
     74  double  _Crs;             // [m]
    7575  double  _Delta_n;         // [rad/s]
    76   double  _M0;              // [rad] 
    77 
    78   double  _Cuc;             // [rad] 
    79   double  _e;               //       
    80   double  _Cus;             // [rad] 
     76  double  _M0;              // [rad]
     77
     78  double  _Cuc;             // [rad]
     79  double  _e;               //
     80  double  _Cus;             // [rad]
    8181  double  _sqrt_A;          // [m^0.5]
    8282
    83   double  _TOEsec;          // [s]   
    84   double  _Cic;             // [rad] 
    85   double  _OMEGA0;          // [rad] 
    86   double  _Cis;             // [rad] 
    87 
    88   double  _i0;              // [rad] 
    89   double  _Crc;             // [m]   
    90   double  _omega;           // [rad] 
     83  double  _TOEsec;          // [s]
     84  double  _Cic;             // [rad]
     85  double  _OMEGA0;          // [rad]
     86  double  _Cis;             // [rad]
     87
     88  double  _i0;              // [rad]
     89  double  _Crc;             // [m]
     90  double  _omega;           // [rad]
    9191  double  _OMEGADOT;        // [rad/s]
    9292
    9393  double  _IDOT;            // [rad/s]
    94   double  _L2Codes;         // Codes on L2 channel 
     94  double  _L2Codes;         // Codes on L2 channel
    9595  double  _TOEweek;
    9696  double  _L2PFlag;         // L2 P data flag
     
    9898  mutable double  _ura;     // SV accuracy
    9999  double  _health;          // SV health
    100   double  _TGD;             // [s]   
    101   double  _IODC;           
    102 
    103   double  _TOT;             // Transmisstion time 
     100  double  _TGD;             // [s]
     101  double  _IODC;
     102
     103  double  _TOT;             // Transmisstion time
    104104  double  _fitInterval;     // Fit interval
    105105};
     
    122122  static ColumnVector glo_deriv(double /* tt */, const ColumnVector& xv, double* acc);
    123123
    124   mutable bncTime      _tt;  // time 
     124  mutable bncTime      _tt;  // time
    125125  mutable ColumnVector _xv;  // status vector (position, velocity) at time _tt
    126126
    127127  double  _gps_utc;
    128   double  _tau;              // [s]     
    129   double  _gamma;            //         
     128  double  _tau;              // [s]
     129  double  _gamma;            //
    130130  mutable double  _tki;      // message frame time
    131131
    132   double  _x_pos;            // [km]     
    133   double  _x_velocity;       // [km/s]   
    134   double  _x_acceleration;   // [km/s^2] 
    135   double  _health;           // 0 = O.K. 
    136 
    137   double  _y_pos;            // [km]     
    138   double  _y_velocity;       // [km/s]   
    139   double  _y_acceleration;   // [km/s^2] 
    140   double  _frequency_number; // ICD-GLONASS data position 
    141 
    142   double  _z_pos;            // [km]     
    143   double  _z_velocity;       // [km/s]   
    144   double  _z_acceleration;   // [km/s^2] 
    145   double  _E;                // Age of Information [days]   
     132  double  _x_pos;            // [km]
     133  double  _x_velocity;       // [km/s]
     134  double  _x_acceleration;   // [km/s^2]
     135  double  _health;           // 0 = O.K.
     136
     137  double  _y_pos;            // [km]
     138  double  _y_velocity;       // [km/s]
     139  double  _y_acceleration;   // [km/s^2]
     140  double  _frequency_number; // ICD-GLONASS data position
     141
     142  double  _z_pos;            // [km]
     143  double  _z_velocity;       // [km/s]
     144  double  _z_acceleration;   // [km/s^2]
     145  double  _E;                // Age of Information [days]
    146146};
    147147
     
    161161  virtual t_irc position(int GPSweek, double GPSweeks, double* xc, double* vv) const;
    162162
    163   double  _clock_bias;       //  [s]   
    164   double  _clock_drift;      //  [s/s] 
     163  double  _clock_bias;       //  [s]
     164  double  _clock_drift;      //  [s/s]
    165165  double  _clock_driftrate;  //  [s/s^2]
    166166
    167167  double  _IODnav;
    168   double  _Crs;              //  [m]   
     168  double  _Crs;              //  [m]
    169169  double  _Delta_n;          //  [rad/s]
    170   double  _M0;               //  [rad] 
    171 
    172   double  _Cuc;              //  [rad] 
    173   double  _e;                //         
    174   double  _Cus;              //  [rad] 
     170  double  _M0;               //  [rad]
     171
     172  double  _Cuc;              //  [rad]
     173  double  _e;                //
     174  double  _Cus;              //  [rad]
    175175  double  _sqrt_A;           //  [m^0.5]
    176176
    177   double  _TOEsec;           //  [s]   
    178   double  _Cic;              //  [rad] 
    179   double  _OMEGA0;           //  [rad] 
    180   double  _Cis;              //  [rad] 
    181 
    182   double  _i0;               //  [rad] 
    183   double  _Crc;              //  [m]   
    184   double  _omega;            //  [rad] 
     177  double  _TOEsec;           //  [s]
     178  double  _Cic;              //  [rad]
     179  double  _OMEGA0;           //  [rad]
     180  double  _Cis;              //  [rad]
     181
     182  double  _i0;               //  [rad]
     183  double  _Crc;              //  [m]
     184  double  _omega;            //  [rad]
    185185  double  _OMEGADOT;         //  [rad/s]
    186186
     
    193193  double  _E5bHS;            //  [0..3] E5b Health Status
    194194  double  _E1_bHS;           //  [0..3] E1-b Health Status
    195   double  _BGD_1_5A;         //  group delay [s] 
    196   double  _BGD_1_5B;         //  group delay [s] 
     195  double  _BGD_1_5A;         //  group delay [s]
     196  double  _BGD_1_5B;         //  group delay [s]
    197197
    198198  double  _TOT;              // [s]
     
    229229  double _agf1;           // [s/s]  clock correction drift
    230230
    231   double _x_pos;          // [m]     
    232   double _x_velocity;     // [m/s]   
    233   double _x_acceleration; // [m/s^2] 
    234 
    235   double _y_pos;          // [m]     
    236   double _y_velocity;     // [m/s]   
    237   double _y_acceleration; // [m/s^2] 
    238 
    239   double _z_pos;          // [m]     
    240   double _z_velocity;     // [m/s]   
    241   double _z_acceleration; // [m/s^2] 
     231  double _x_pos;          // [m]
     232  double _x_velocity;     // [m/s]
     233  double _x_acceleration; // [m/s^2]
     234
     235  double _y_pos;          // [m]
     236  double _y_velocity;     // [m/s]
     237  double _y_acceleration; // [m/s^2]
     238
     239  double _z_pos;          // [m]
     240  double _z_velocity;     // [m/s]
     241  double _z_acceleration; // [m/s^2]
    242242
    243243  mutable double _ura;
     
    266266  int     _URAI;             //  [0..15] index from RTCM stream
    267267  mutable double  _URA;      //  user range accuracy
    268   double  _clock_bias;       //  [s]   
    269   double  _clock_drift;      //  [s/s] 
     268  double  _clock_bias;       //  [s]
     269  double  _clock_drift;      //  [s/s]
    270270  double  _clock_driftrate;  //  [s/s^2]
    271   double  _Crs;              //  [m]   
     271  double  _Crs;              //  [m]
    272272  double  _Delta_n;          //  [rad/s]
    273   double  _M0;               //  [rad] 
    274   double  _Cuc;              //  [rad] 
    275   double  _e;                //         
    276   double  _Cus;              //  [rad] 
     273  double  _M0;               //  [rad]
     274  double  _Cuc;              //  [rad]
     275  double  _e;                //
     276  double  _Cus;              //  [rad]
    277277  double  _sqrt_A;           //  [m^0.5]
    278   double  _Cic;              //  [rad] 
    279   double  _OMEGA0;           //  [rad] 
    280   double  _Cis;              //  [rad] 
    281   double  _i0;               //  [rad] 
    282   double  _Crc;              //  [m]   
    283   double  _omega;            //  [rad] 
     278  double  _Cic;              //  [rad]
     279  double  _OMEGA0;           //  [rad]
     280  double  _Cis;              //  [rad]
     281  double  _i0;               //  [rad]
     282  double  _Crc;              //  [m]
     283  double  _omega;            //  [rad]
    284284  double  _OMEGADOT;         //  [rad/s]
    285285  double  _IDOT;             //  [rad/s]
    286   double  _TGD1;             //  [s]   
    287   double  _TGD2;             //  [s]   
    288   int     _SatH1;            // 
     286  double  _TGD1;             //  [s]
     287  double  _TGD2;             //  [s]
     288  int     _SatH1;            //
    289289  double  _TOW;              //  [s] of BDT week
    290290  double  _TOEsec;           //  [s] of BDT week
  • trunk/BNC/src/pppMain.cpp

    r7261 r7278  
    3636 * Created:    29-Jul-2014
    3737 *
    38  * Changes:   
     38 * Changes:
    3939 *
    4040 * -----------------------------------------------------------------------*/
     
    6565}
    6666
    67 // 
     67//
    6868//////////////////////////////////////////////////////////////////////////////
    6969void t_pppMain::start() {
     
    9090}
    9191
    92 // 
     92//
    9393//////////////////////////////////////////////////////////////////////////////
    9494void t_pppMain::stop() {
     
    110110}
    111111
    112 // 
     112//
    113113//////////////////////////////////////////////////////////////////////////////
    114114void t_pppMain::readOptions() {
     
    135135  }
    136136  else {
    137     return;   
     137    return;
    138138  }
    139139
     
    149149
    150150    opt->_realTime     = _realTime;
    151     opt->_roverName    = hlp[0].toAscii().data();
     151    opt->_roverName    = hlp[0].toStdString();
    152152    opt->_aprSigCrd[0] = hlp[1].toDouble();
    153153    opt->_aprSigCrd[1] = hlp[2].toDouble();
  • trunk/BNC/src/pppRun.cpp

    r7231 r7278  
    3636 * Created:    29-Jul-2014
    3737 *
    38  * Changes:   
     38 * Changes:
    3939 *
    4040 * -----------------------------------------------------------------------*/
     
    6767  _opt = opt;
    6868
    69   connect(this, SIGNAL(newMessage(QByteArray,bool)), 
     69  connect(this, SIGNAL(newMessage(QByteArray,bool)),
    7070          BNC_CORE, SLOT(slotMessage(const QByteArray,bool)));
    7171
     
    9191    connect(BNC_CORE, SIGNAL(newGPSEph(t_ephGPS)),
    9292            this, SLOT(slotNewGPSEph(t_ephGPS)),conType);
    93  
     93
    9494    connect(BNC_CORE, SIGNAL(newGlonassEph(t_ephGlo)),
    9595            this, SLOT(slotNewGlonassEph(t_ephGlo)),conType);
    96  
     96
    9797    connect(BNC_CORE, SIGNAL(newGalileoEph(t_ephGal)),
    9898            this, SLOT(slotNewGalileoEph(t_ephGal)),conType);
     
    120120    connect(this, SIGNAL(progressRnxPPP(int)), BNC_CORE, SIGNAL(progressRnxPPP(int)));
    121121    connect(this, SIGNAL(finishedRnxPPP()),    BNC_CORE, SIGNAL(finishedRnxPPP()));
    122     connect(BNC_CORE, SIGNAL(mapSpeedSliderChanged(int)),   
     122    connect(BNC_CORE, SIGNAL(mapSpeedSliderChanged(int)),
    123123            this, SLOT(slotSetSpeed(int)));
    124124    connect(BNC_CORE, SIGNAL(stopRinexPPP()), this, SLOT(slotSetStopFlag()));
    125125  }
    126  
     126
    127127  _stopFlag = false;
    128128
     
    183183}
    184184
    185 // 
     185//
    186186////////////////////////////////////////////////////////////////////////////
    187187void t_pppRun::slotNewGPSEph(t_ephGPS eph) {
     
    190190}
    191191
    192 // 
     192//
    193193////////////////////////////////////////////////////////////////////////////
    194194void t_pppRun::slotNewGlonassEph(t_ephGlo eph) {
     
    196196  _pppClient->putEphemeris(&eph);
    197197}
    198  
    199 // 
     198
     199//
    200200////////////////////////////////////////////////////////////////////////////
    201201void t_pppRun::slotNewGalileoEph(t_ephGal eph) {
     
    220220  }
    221221
    222   // Loop over all obsevations (possible different epochs)
     222  // Loop over all observations (possible different epochs)
    223223  // -----------------------------------------------------
    224224  QListIterator<t_satObs> it(obsList);
     
    276276
    277277    delete _epoData.front(); _epoData.pop_front();
    278    
     278
    279279    ostringstream log;
    280280    if (output._error) {
     
    295295
    296296    if (_logFile && output._epoTime.valid()) {
    297       _logFile->write(output._epoTime.gpsw(), output._epoTime.gpssec(), 
    298                       QString(output._log.c_str())); 
     297      _logFile->write(output._epoTime.gpsw(), output._epoTime.gpssec(),
     298                      QString(output._log.c_str()));
    299299    }
    300300
     
    335335}
    336336
    337 // 
     337//
    338338////////////////////////////////////////////////////////////////////////////
    339339void t_pppRun::slotNewOrbCorrections(QList<t_orbCorr> orbCorr) {
     
    352352  }
    353353
    354   _pppClient->putOrbCorrections(corrections);
    355 }
    356 
    357 //
     354  _pppClient->putOrbCorrections(corrections);
     355
     356  for (unsigned ii = 0; ii < corrections.size(); ii++) {
     357    delete corrections[ii];
     358  }
     359}
     360
     361//
    358362////////////////////////////////////////////////////////////////////////////
    359363void t_pppRun::slotNewClkCorrections(QList<t_clkCorr> clkCorr) {
     
    372376    _lastClkCorrTime = clkCorr[ii]._time;
    373377  }
    374   _pppClient->putClkCorrections(corrections);
    375 }
    376 
    377 //
     378  _pppClient->putClkCorrections(corrections);
     379
     380  for (unsigned ii = 0; ii < corrections.size(); ii++) {
     381    delete corrections[ii];
     382  }
     383}
     384
     385//
    378386////////////////////////////////////////////////////////////////////////////
    379387void t_pppRun::slotNewCodeBiases(QList<t_satCodeBias> codeBiases) {
     
    392400  }
    393401
    394   _pppClient->putCodeBiases(biases);
    395 }
    396 
    397 //
     402  _pppClient->putCodeBiases(biases);
     403
     404  for (unsigned ii = 0; ii < biases.size(); ii++) {
     405    delete biases[ii];
     406  }
     407}
     408
     409//
    398410////////////////////////////////////////////////////////////////////////////
    399411void t_pppRun::processFiles() {
     
    468480    for (unsigned iObs = 0; iObs < epo->rnxSat.size(); iObs++) {
    469481      const t_rnxObsFile::t_rnxSat& rnxSat = epo->rnxSat[iObs];
    470    
     482
    471483      t_satObs obs;
    472484      t_rnxObsFile::setObsFromRnx(_rnxObsFile, epo, rnxSat, obs);
     
    479491      emit progressRnxPPP(nEpo);
    480492    }
    481  
     493
    482494    QCoreApplication::processEvents();
    483495  }
     
    493505}
    494506
    495 // 
     507//
    496508////////////////////////////////////////////////////////////////////////////
    497509void t_pppRun::slotSetSpeed(int speed) {
     
    500512}
    501513
    502 // 
     514//
    503515////////////////////////////////////////////////////////////////////////////
    504516void t_pppRun::slotSetStopFlag() {
     
    507519}
    508520
    509 // 
     521//
    510522////////////////////////////////////////////////////////////////////////////
    511523QString t_pppRun::nmeaString(char strType, const t_output& output) {
    512524
    513   double ell[3]; 
     525  double ell[3];
    514526  xyz2ell(output._xyzRover, ell);
    515527  double phiDeg = ell[0] * 180 / M_PI;
     
    520532    phiDeg = -phiDeg;
    521533    phiCh  =  'S';
    522   }   
     534  }
    523535  char lamCh = 'E';
    524536  if (lamDeg < 0) {
    525537    lamDeg = -lamDeg;
    526538    lamCh  =  'W';
    527   }   
     539  }
    528540
    529541  ostringstream out;
     
    532544  if      (strType == 'R') {
    533545    string datestr = output._epoTime.datestr(0); // yyyymmdd
    534     out << "GPRMC," 
     546    out << "GPRMC,"
    535547        << output._epoTime.timestr(0,0) << ",A,"
    536         << setw(2) << setfill('0') << int(phiDeg) 
    537         << setw(6) << setprecision(3) << setfill('0') 
     548        << setw(2) << setfill('0') << int(phiDeg)
     549        << setw(6) << setprecision(3) << setfill('0')
    538550        << fmod(60*phiDeg,60) << ',' << phiCh << ','
    539         << setw(3) << setfill('0') << int(lamDeg) 
    540         << setw(6) << setprecision(3) << setfill('0') 
     551        << setw(3) << setfill('0') << int(lamDeg)
     552        << setw(6) << setprecision(3) << setfill('0')
    541553        << fmod(60*lamDeg,60) << ',' << lamCh << ",,,"
    542554        << datestr[6] << datestr[7] << datestr[4] << datestr[5]
     
    544556  }
    545557  else if (strType == 'G') {
    546     out << "GPGGA," 
     558    out << "GPGGA,"
    547559        << output._epoTime.timestr(0,0) << ','
    548         << setw(2) << setfill('0') << int(phiDeg) 
    549         << setw(10) << setprecision(7) << setfill('0') 
     560        << setw(2) << setfill('0') << int(phiDeg)
     561        << setw(10) << setprecision(7) << setfill('0')
    550562        << fmod(60*phiDeg,60) << ',' << phiCh << ','
    551         << setw(3) << setfill('0') << int(lamDeg) 
    552         << setw(10) << setprecision(7) << setfill('0') 
    553         << fmod(60*lamDeg,60) << ',' << lamCh 
     563        << setw(3) << setfill('0') << int(lamDeg)
     564        << setw(10) << setprecision(7) << setfill('0')
     565        << fmod(60*lamDeg,60) << ',' << lamCh
    554566        << ",1," << setw(2) << setfill('0') << output._numSat << ','
    555567        << setw(3) << setprecision(1) << output._pDop << ','
     
    569581}
    570582
    571 // 
     583//
    572584////////////////////////////////////////////////////////////////////////////
    573585bool t_pppRun::waitForCorr(const bncTime& epoTime) const {
Note: See TracChangeset for help on using the changeset viewer.