Changeset 7278 in ntrip for trunk/BNC/src/ephemeris.cpp


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

some memory leaks fixed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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
Note: See TracChangeset for help on using the changeset viewer.