Changeset 4930 in ntrip for trunk


Ignore:
Timestamp:
Feb 21, 2013, 8:02:10 PM (11 years ago)
Author:
mervart
Message:
 
Location:
trunk/BNC/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/bncmodel.cpp

    r4802 r4930  
    5858const unsigned MINOBS                = 5;
    5959const double   MINELE                = 10.0 * M_PI / 180.0;
    60 const double   MAXRES_CODE           = 15.0;
    61 const double   MAXRES_PHASE_GPS      = 0.04;
    62 const double   MAXRES_PHASE_GLONASS  = 0.08;
     60const double   MAXRES_CODE           = 1015.0;
     61const double   MAXRES_PHASE_GPS      = 100.04;
     62const double   MAXRES_PHASE_GLONASS  = 100.08;
    6363const double   GLONASS_WEIGHT_FACTOR = 5.0;
    6464
  • trunk/BNC/src/bncpppclient.cpp

    r4799 r4930  
    353353
    354354  double dtRao = tt - cc->tRao;
    355   ColumnVector raoHlp = cc->rao + cc->dotRao * dtRao
    356                       + 0.5 * cc->dotDotRao * dtRao * dtRao;
     355//  ColumnVector raoHlp = cc->rao + cc->dotRao * dtRao
     356//                      + 0.5 * cc->dotDotRao * dtRao * dtRao;
     357
     358  ColumnVector raoHlp = cc->rao;
    357359
    358360  if (raoHlp.norm_Frobenius() > 20.0) {
  • trunk/BNC/src/upload/bncrtnetuploadcaster.cpp

    r4913 r4930  
    490490                                       QString& outLine) {
    491491
    492   const double secPerWeek = 7.0 * 86400.0;
    493 
     492  // Broadcast Position and Velocity
     493  // -------------------------------
     494  ColumnVector xB(4);
     495  ColumnVector vB(3);
     496  eph->position(GPSweek, GPSweeks, xB.data(), vB.data());
     497 
     498  // Precise Position and Velocity
     499  // -----------------------------
     500  ColumnVector xP = xx.Rows(1,3);
     501  ColumnVector vP = (xx.Rows(12,14) - xx.Rows(1,3)) / xx(11);
     502 
     503  // Correction Center of Mass -> Antenna Phase Center
     504  // -------------------------------------------------
     505  if (! _CoM) {
     506    xP(1) += xx(6);
     507    xP(2) += xx(7);
     508    xP(3) += xx(8);
     509  }
     510
     511  double dc = 0.0;   
     512  if (_crdTrafo != "IGS08") {
     513    crdTrafo(GPSweek, xP, dc);
     514  }
     515 
     516  // Difference in xyz
     517  // -----------------
     518  ColumnVector dx = xB.Rows(1,3) - xP;
     519  ColumnVector dv = vB           - vP;
     520 
     521  // Difference in RSW
     522  // -----------------
    494523  ColumnVector rsw(3);
    495   ColumnVector rsw2(3);
    496   double dClk;
    497 
    498   for (int ii = 1; ii <= 2; ++ii) {
    499 
    500     int    GPSweek12  = GPSweek;
    501     double GPSweeks12 = GPSweeks;
    502     if (ii == 2) {
    503       GPSweeks12 += xx(11);
    504       if (GPSweeks12 > secPerWeek) {
    505         GPSweek12  += 1;
    506         GPSweeks12 -= secPerWeek;
    507       }
    508     }
    509 
    510     ColumnVector xB(4);
    511     ColumnVector vv(3);
    512 
    513     eph->position(GPSweek12, GPSweeks12, xB.data(), vv.data());
    514    
    515     ColumnVector xyz;
    516     if (ii == 1) {
    517       xyz = xx.Rows(1,3);
    518     }
    519     else {
    520       xyz = xx.Rows(12,14);
    521     }
    522    
    523     // Correction Center of Mass -> Antenna Phase Center
    524     // -------------------------------------------------
    525     if (! _CoM) {
    526       xyz(1) += xx(6);
    527       xyz(2) += xx(7);
    528       xyz(3) += xx(8);
    529     }
    530 
    531     double dc = 0.0;   
    532     if (_crdTrafo != "IGS08") {
    533       crdTrafo(GPSweek12, xyz, dc);
    534     }
    535    
    536     ColumnVector dx = xB.Rows(1,3) - xyz ;
    537    
    538     if (ii == 1) {
    539       XYZ_to_RSW(xB.Rows(1,3), vv, dx, rsw);
    540       dClk = (xx(4) + xx(5) - xB(4) + dc) * t_CST::c;
    541     }
    542     else {
    543       XYZ_to_RSW(xB.Rows(1,3), vv, dx, rsw2);
    544     }
    545   }
     524  XYZ_to_RSW(xB.Rows(1,3), vB, dx, rsw);
     525
     526  ColumnVector dotRsw(3);
     527  XYZ_to_RSW(xB.Rows(1,3), vB, dv, dotRsw);
     528
     529  // Clock Correction
     530  // ----------------
     531  double dClk = (xx(4) + xx(5) - xB(4) + dc) * t_CST::c;
    546532
    547533  if (sd) {
    548     sd->ID                    = prn.mid(1).toInt();
    549     sd->IOD                   = eph->IOD();
    550     sd->Clock.DeltaA0         = dClk;
    551     sd->Orbit.DeltaRadial     = rsw(1);
    552     sd->Orbit.DeltaAlongTrack = rsw(2);
    553     sd->Orbit.DeltaCrossTrack = rsw(3);
    554     sd->Orbit.DotDeltaRadial     = (rsw2(1) - rsw(1)) / xx(11);
    555     sd->Orbit.DotDeltaAlongTrack = (rsw2(2) - rsw(2)) / xx(11);
    556     sd->Orbit.DotDeltaCrossTrack = (rsw2(3) - rsw(3)) / xx(11);
     534    sd->ID                       = prn.mid(1).toInt();
     535    sd->IOD                      = eph->IOD();
     536    sd->Clock.DeltaA0            = dClk;
     537    sd->Orbit.DeltaRadial        = rsw(1);
     538    sd->Orbit.DeltaAlongTrack    = rsw(2);
     539    sd->Orbit.DeltaCrossTrack    = rsw(3);
     540    sd->Orbit.DotDeltaRadial     = dotRsw(1);
     541    sd->Orbit.DotDeltaAlongTrack = dotRsw(2);
     542    sd->Orbit.DotDeltaCrossTrack = dotRsw(3);
    557543  }
    558544
Note: See TracChangeset for help on using the changeset viewer.