Changeset 2294 in ntrip


Ignore:
Timestamp:
Feb 14, 2010, 6:30:54 PM (14 years ago)
Author:
mervart
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNS/bns.cpp

    r2293 r2294  
    409409
    410410          QString      prn;
    411           ColumnVector xx(10); xx = 0.0;
     411          ColumnVector xx(14); xx = 0.0;
    412412          t_eph*       ep = 0;
    413413     
     
    418418            if ( _ephList.contains(prn) ) {
    419419              in >> xx(1) >> xx(2) >> xx(3) >> xx(4) >> xx(5)
    420                  >> xx(6) >> xx(7) >> xx(8) >> xx(9) >> xx(10);
     420                 >> xx(6) >> xx(7) >> xx(8) >> xx(9) >> xx(10)
     421                 >> xx(11) >> xx(12) >> xx(13) >> xx(14);
    421422              xx(1) *= 1e3;     // x-crd
    422423              xx(2) *= 1e3;     // y-crd
     
    425426              xx(5) *= 1e-6;    // rel. corr.
    426427                                // xx(6), xx(7), xx(8) ... PhaseCent - CoM
    427                                 // xx(9) P1-C1 DCB, xx(1) P1-P2 DCB
     428                                // xx(9) .. P1-C1 DCB, xx(10) ... P1-P2 DCB
     429                                // xx(11) ... dT
     430              xx(12) *= 1e3;    // x-crd at time + dT
     431              xx(13) *= 1e3;    // y-crd at time + dT
     432              xx(14) *= 1e3;    // z-crd at time + dT
    428433
    429434              t_ephPair* pair = _ephList[prn];
     
    526531                             QString& outLine) {
    527532
    528   ColumnVector xB(4);
    529   ColumnVector vv(3);
    530 
    531   ep->position(GPSweek, GPSweeks, xB, vv);
    532 
    533   ColumnVector xyz = xx.Rows(1,3);
    534 
    535   // Correction Center of Mass -> Antenna Phase Center
    536   // -------------------------------------------------
    537   if (! CoM) {
    538     xyz(1) += xx(6);
    539     xyz(2) += xx(7);
    540     xyz(3) += xx(8);
    541   }
    542 
    543   if (trafo != "IGS05") {
    544     crdTrafo(GPSweek, xyz, trafo);
    545   }
    546 
    547   ColumnVector dx = xB.Rows(1,3) - xyz;
     533  const double secPerWeek = 7.0 * 86400.0;
    548534
    549535  ColumnVector rsw(3);
    550   XYZ_to_RSW(xB.Rows(1,3), vv, dx, rsw);
    551 
    552   double dClk = (xB(4) - xx(4)) * 299792458.0;
    553 
     536  ColumnVector rsw2(3);
     537  double dClk;
     538
     539  for (int ii = 1; ii <= 2; ++ii) {
     540
     541    int    GPSweek12  = GPSweek;
     542    double GPSweeks12 = GPSweeks;
     543    if (ii == 2) {
     544      GPSweeks12 += xx(11);
     545      if (GPSweeks12 > secPerWeek) {
     546        GPSweek12  += 1;
     547        GPSweeks12 -= secPerWeek;
     548      }
     549    }
     550
     551    ColumnVector xB(4);
     552    ColumnVector vv(3);
     553
     554    ep->position(GPSweek12, GPSweeks12, xB, vv);
     555   
     556    ColumnVector xyz;
     557    if (ii == 1) {
     558      xyz = xx.Rows(1,3);
     559    }
     560    else {
     561      xyz = xx.Rows(12,14);
     562    }
     563   
     564    // Correction Center of Mass -> Antenna Phase Center
     565    // -------------------------------------------------
     566    if (! CoM) {
     567      xyz(1) += xx(6);
     568      xyz(2) += xx(7);
     569      xyz(3) += xx(8);
     570    }
     571   
     572    if (trafo != "IGS05") {
     573      crdTrafo(GPSweek12, xyz, trafo);
     574    }
     575   
     576    ColumnVector dx = xB.Rows(1,3) - xyz;
     577   
     578    if (ii == 1) {
     579      XYZ_to_RSW(xB.Rows(1,3), vv, dx, rsw);
     580      dClk = (xB(4) - xx(4)) * 299792458.0;
     581    }
     582    else {
     583      XYZ_to_RSW(xB.Rows(1,3), vv, dx, rsw2);
     584    }
     585  }
    554586
    555587  if (sd) {
     
    560592    sd->Orbit.DeltaAlongTrack = rsw(2);
    561593    sd->Orbit.DeltaCrossTrack = rsw(3);
     594    sd->Orbit.DotDeltaRadial     = (rsw2(1) - rsw(1)) / xx(11);
     595    sd->Orbit.DotDeltaAlongTrack = (rsw2(2) - rsw(2)) / xx(11);
     596    sd->Orbit.DotDeltaCrossTrack = (rsw2(3) - rsw(3)) / xx(11);
    562597  }
    563598
Note: See TracChangeset for help on using the changeset viewer.