Changeset 2786 in ntrip


Ignore:
Timestamp:
Dec 14, 2010, 12:56:46 PM (13 years ago)
Author:
mervart
Message:
 
Location:
trunk/BNC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/bncpppclient.cpp

    r2779 r2786  
    6969  }
    7070
    71   _useGalileo = true; // TODO
     71  if ( Qt::CheckState(settings.value("pppGalileo").toInt()) == Qt::Checked) {
     72    _useGalileo = true;
     73  }
     74  else {
     75    _useGalileo = false;
     76  }
    7277
    7378  if (settings.value("pppSPP").toString() == "PPP") {
     
    164169  }
    165170
    166   // Set Code Observations - P1 or C1
    167   // --------------------------------
    168   bool haveP1 = false;
    169   if      (obs.P1) {
    170     satData->P1         = obs.P1 + (bb ? bb->p1 : 0.0);
    171     satData->codeTypeF1 = t_satData::P_CODE;
    172     haveP1 = true;
    173   }
    174   else if (obs.C1) {
    175     satData->P1         = obs.C1 + (bb ? bb->c1 : 0.0);
    176     satData->codeTypeF1 = t_satData::C_CODE;
    177     haveP1 = true;
    178   }
    179 
    180   if (!haveP1) {
    181     delete satData;
    182     return;
    183   }
    184 
    185   // P2 or C2, and C5
    186   // ----------------   
    187   bool haveP2 = false;
    188   if      (obs.P2) {
    189     satData->P2         = obs.P2 + (bb ? bb->p2 : 0.0);
    190     satData->codeTypeF2 = t_satData::P_CODE;
    191     haveP2 = true;
    192   }
    193   else if (obs.C2) {
    194     satData->P2         = obs.C2;
    195     satData->codeTypeF2 = t_satData::C_CODE;
    196     haveP2 = true;
    197   }
    198 
    199   bool haveP5 = false;
    200   if      (obs.C5) {
    201     satData->P5         = obs.C5;
    202     satData->codeTypeF2 = t_satData::P_CODE;
    203     haveP5 = true;
    204   }
    205 
    206   if (!haveP2 && !haveP5) {
    207     delete satData;
    208     return;
    209   }
    210 
    211171  // Add new Satellite to the epoch
    212172  // ------------------------------
     
    224184  }
    225185
    226   // Set Ionosphere-Free Combinations
    227   // --------------------------------
     186  // Set Observations GPS
     187  // --------------------
    228188  if      (obs.satSys == 'G') {
    229     double f1 = t_CST::freq1;
    230     double f2 = t_CST::freq2;
    231     double c1 =   f1 * f1 / (f1 * f1 - f2 * f2);
    232     double c2 = - f2 * f2 / (f1 * f1 - f2 * f2);
    233 
    234     if (obs.L1() && obs.L2()) {
    235       satData->L1 = obs.L1() * t_CST::c / f1;
    236       satData->L2 = obs.L2() * t_CST::c / f2;
     189    if ( (obs.P1 || obs.C1) && (obs.P2 || obs.C2) && obs.L1() && obs.L2() ) {
     190      double f1 = t_CST::freq1;
     191      double f2 = t_CST::freq2;
     192      double c1 =   f1 * f1 / (f1 * f1 - f2 * f2);
     193      double c2 = - f2 * f2 / (f1 * f1 - f2 * f2);
     194      if (obs.P1) {
     195        satData->P1 = obs.P1 + (bb ? bb->p1 : 0.0);
     196      }
     197      else {
     198        satData->P1 = obs.C1 + (bb ? bb->c1 : 0.0);
     199      }
     200      if (obs.P2) {
     201        satData->P2 = obs.P2 + (bb ? bb->p2 : 0.0);
     202      }
     203      else {
     204        satData->P2 = obs.C2;
     205      }
     206      satData->L1      = obs.L1() * t_CST::c / f1;
     207      satData->L2      = obs.L2() * t_CST::c / f2;
     208      satData->P3      = c1 * satData->P1 + c2 * satData->P2;
     209      satData->L3      = c1 * satData->L1 + c2 * satData->L2;
     210      satData->lambda3 = c1 * t_CST::c / f1 + c2 * t_CST::c / f2;
     211
     212      _epoData->satDataGPS[satData->prn] = satData;
    237213    }
    238214    else {
    239215      delete satData;
    240       return;
    241     }
    242 
    243     satData->P3      = c1 * satData->P1 + c2 * satData->P2;
    244     satData->L3      = c1 * satData->L1 + c2 * satData->L2;
    245     satData->lambda3 = c1 * t_CST::c / f1 + c2 * t_CST::c / f2;
    246 
    247     _epoData->satDataGPS[satData->prn] = satData;
    248   }
     216    }
     217  }
     218
     219  // Set Observations GLONASS
     220  // ------------------------
    249221  else if (obs.satSys == 'R') {
    250     double f1 = 1602000000.0 + 562500.0 * obs.slotNum;
    251     double f2 = 1246000000.0 + 437500.0 * obs.slotNum;
    252     double c1 =   f1 * f1 / (f1 * f1 - f2 * f2);
    253     double c2 = - f2 * f2 / (f1 * f1 - f2 * f2);
    254 
    255     if (obs.L1() && obs.L2()) {
    256       satData->L1 = obs.L1() * t_CST::c / f1;
    257       satData->L2 = obs.L2() * t_CST::c / f2;
     222    if ( (obs.P1 || obs.C1) && (obs.P2 || obs.C2) && obs.L1() && obs.L2() ) {
     223      double f1 = 1602000000.0 + 562500.0 * obs.slotNum;
     224      double f2 = 1246000000.0 + 437500.0 * obs.slotNum;
     225      double c1 =   f1 * f1 / (f1 * f1 - f2 * f2);
     226      double c2 = - f2 * f2 / (f1 * f1 - f2 * f2);
     227      if (obs.P1) {
     228        satData->P1 = obs.P1 + (bb ? bb->p1 : 0.0);
     229      }
     230      else {
     231        satData->P1 = obs.C1 + (bb ? bb->c1 : 0.0);
     232      }
     233      if (obs.P2) {
     234        satData->P2 = obs.P2 + (bb ? bb->p2 : 0.0);
     235      }
     236      else {
     237        satData->P2 = obs.C2;
     238      }
     239      satData->L1      = obs.L1() * t_CST::c / f1;
     240      satData->L2      = obs.L2() * t_CST::c / f2;
     241      satData->P3      = c1 * satData->P1 + c2 * satData->P2;
     242      satData->L3      = c1 * satData->L1 + c2 * satData->L2;
     243      satData->lambda3 = c1 * t_CST::c / f1 + c2 * t_CST::c / f2;
     244
     245      _epoData->satDataGlo[satData->prn] = satData;
    258246    }
    259247    else {
    260248      delete satData;
    261       return;
    262     }
    263 
    264     satData->P3      = c1 * satData->P1 + c2 * satData->P2;
    265     satData->L3      = c1 * satData->L1 + c2 * satData->L2;
    266     satData->lambda3 = c1 * t_CST::c / f1 + c2 * t_CST::c / f2;
    267 
    268     _epoData->satDataGlo[satData->prn] = satData;
    269   }
     249    }
     250  }
     251
     252  // Set Observations Galileo
     253  // ------------------------
    270254  else if (obs.satSys == 'E') {
    271     double f1 = t_CST::freq1;
    272     double f5 = t_CST::freq5;
    273     double c1 =   f1 * f1 / (f1 * f1 - f5 * f5);
    274     double c5 = - f5 * f5 / (f1 * f1 - f5 * f5);
    275 
    276     if (obs.L1() && obs.L5) {
    277       satData->L1 = obs.L1() * t_CST::c / f1;
    278       satData->L5 = obs.L5   * t_CST::c / f5;
     255    if ( obs.C1 && obs.C2 && obs.L1() && obs.L5) {
     256      double f1 = t_CST::freq1;
     257      double f5 = t_CST::freq5;
     258      double c1 =   f1 * f1 / (f1 * f1 - f5 * f5);
     259      double c5 = - f5 * f5 / (f1 * f1 - f5 * f5);
     260
     261      satData->P1      = obs.C1;
     262      satData->P5      = obs.C5;
     263      satData->L1      = obs.L1() * t_CST::c / f1;
     264      satData->L5      = obs.L5 * t_CST::c / f5;
     265      satData->P3      = c1 * satData->P1 + c5 * satData->P5;
     266      satData->L3      = c1 * satData->L1 + c5 * satData->L5;
     267      satData->lambda3 = c1 * t_CST::c / f1 + c5 * t_CST::c / f5;
     268      _epoData->satDataGal[satData->prn] = satData;
    279269    }
    280270    else {
    281271      delete satData;
    282       return;
    283     }
    284 
    285     satData->P3      = c1 * satData->P1 + c5 * satData->P5;
    286     satData->L3      = c1 * satData->L1 + c5 * satData->L5;
    287     satData->lambda3 = c1 * t_CST::c / f1 + c5 * t_CST::c / f5;
    288 
    289     _epoData->satDataGal[satData->prn] = satData;
     272    }
    290273  }
    291274}
  • trunk/BNC/bncpppclient.h

    r2778 r2786  
    3939class t_satData {
    4040 public:
    41   enum codeType {P_CODE, C_CODE};
    4241  QString      prn;
    4342  double       P1;
     
    4948  double       L5;
    5049  double       L3;
    51   codeType     codeTypeF1;
    52   codeType     codeTypeF2;
    53   codeType     codeTypeF5;
    5450  ColumnVector xx;
    5551  ColumnVector vv;
Note: See TracChangeset for help on using the changeset viewer.