Ignore:
Timestamp:
Aug 25, 2020, 11:02:49 PM (4 years ago)
Author:
stuerze
Message:

some modification to allow encoding and decoding of SSR corrections in RTCM-SSR and IGS-SSR formats

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/upload/bncrtnetuploadcaster.cpp

    r8991 r9025  
    3131    const QString& ntripVersion,
    3232    const QString& userName, const QString& password,
    33     const QString& crdTrafo, bool CoM, const QString& sp3FileName,
     33    const QString& crdTrafo, const QString& ssrFormat, bool CoM, const QString& sp3FileName,
    3434    const QString& rnxFileName, int PID, int SID, int IOD, int iRow) :
    3535    bncUploadCaster(mountpoint, outHost, outPort, ntripVersion, userName, password, iRow, 0) {
    36 
     36qDebug() << "bncRtnetUploadCaster";
    3737
    3838  if (!mountpoint.isEmpty()) {
     
    5656
    5757  _crdTrafo = crdTrafo;
     58
     59  _ssrFormat = ssrFormat;qDebug() << _ssrFormat;
     60  _ssrCorr = 0;
     61  if      (_ssrFormat == "IGS-SSR") {qDebug() << "bin hier IGS";
     62    _ssrCorr = new SsrCorrIgs();
     63  }
     64  else if (_ssrFormat == "RTCM-SSR") {qDebug() << "bin hier RTCM";
     65    _ssrCorr = new SsrCorrRtcm();
     66  }
     67if (!_ssrCorr) {
     68  qDebug() << "no _ssrCorr";
     69}
    5870  _CoM = CoM;
    5971  _PID = PID;
     
    228240  delete _ephUser;
    229241  delete _usedEph;
     242  delete _ssrCorr;
    230243}
    231244
    232245//
    233246////////////////////////////////////////////////////////////////////////////
    234 void bncRtnetUploadCaster::decodeRtnetStream(char* buffer, int bufLen) {
    235 
     247void bncRtnetUploadCaster::decodeRtnetStream(char* buffer, int bufLen) {qDebug() << "decodeRtnetStream";
     248  qDebug() << "decodeRtnetStream";
    236249  QMutexLocker locker(&_mutex);
    237250
     
    294307          + _casterID.toLatin1(), false));
    295308
    296   struct ClockOrbit co;
     309  struct SsrCorr::ClockOrbit co;
    297310  memset(&co, 0, sizeof(co));
    298311  co.EpochTime[CLOCKORBIT_SATGPS] = static_cast<int>(epoTime.gpssec());
    299 #ifdef USE_SSR_RTCM
    300   double gt = epoTime.gpssec() + 3 * 3600 - gnumleap(year, month, day);
    301   co.EpochTime[CLOCKORBIT_SATGLONASS] = static_cast<int>(fmod(gt, 86400.0));
    302 #elif USE_SSR_IGS
    303   co.EpochTime[CLOCKORBIT_SATGLONASS] = static_cast<int>(epoTime.gpssec());
    304 #endif
     312  if      (_ssrFormat == "RTCM-SSR") {
     313    double gt = epoTime.gpssec() + 3 * 3600 - gnumleap(year, month, day);
     314    co.EpochTime[CLOCKORBIT_SATGLONASS] = static_cast<int>(fmod(gt, 86400.0));
     315  }
     316  else if (_ssrFormat == "IGS-SSR") {
     317    co.EpochTime[CLOCKORBIT_SATGLONASS] = static_cast<int>(epoTime.gpssec());
     318  }
    305319  co.EpochTime[CLOCKORBIT_SATGALILEO] = static_cast<int>(epoTime.gpssec());
    306   co.EpochTime[CLOCKORBIT_SATQZSS] = static_cast<int>(epoTime.gpssec());
    307   co.EpochTime[CLOCKORBIT_SATSBAS] = static_cast<int>(epoTime.gpssec());
    308 #ifdef USE_SSR_RTCM
    309   co.EpochTime[CLOCKORBIT_SATBDS] = static_cast<int>(epoTime.bdssec());
    310 #elif  USE_SSR_IGS
    311   co.EpochTime[CLOCKORBIT_SATBDS] = static_cast<int>(epoTime.gpssec());
    312 #endif
    313   co.Supplied[COBOFS_CLOCK] = 1;
    314   co.Supplied[COBOFS_ORBIT] = 1;
    315   co.SatRefDatum = DATUM_ITRF;
    316   co.SSRIOD = _IOD;
     320  co.EpochTime[CLOCKORBIT_SATQZSS]    = static_cast<int>(epoTime.gpssec());
     321  co.EpochTime[CLOCKORBIT_SATSBAS]    = static_cast<int>(epoTime.gpssec());
     322  if      (_ssrFormat == "RTCM-SSR") {
     323    co.EpochTime[CLOCKORBIT_SATBDS] = static_cast<int>(epoTime.bdssec());
     324  }
     325  else if (_ssrFormat == "IGS-SSR") {
     326    co.EpochTime[CLOCKORBIT_SATBDS] = static_cast<int>(epoTime.gpssec());
     327  }
     328  co.Supplied[_ssrCorr->COBOFS_CLOCK] = 1;
     329  co.Supplied[_ssrCorr->COBOFS_ORBIT] = 1;
     330  co.SatRefDatum = _ssrCorr->DATUM_ITRF; // ToDo: to decode from RTNET format
     331  co.SSRIOD        = _IOD;
    317332  co.SSRProviderID = _PID; // 256 .. BKG,  257 ... EUREF
    318333  co.SSRSolutionID = _SID;
    319334
    320   struct CodeBias bias;
     335  struct SsrCorr::CodeBias bias;
    321336  memset(&bias, 0, sizeof(bias));
    322   bias.EpochTime[CLOCKORBIT_SATGPS] = co.EpochTime[CLOCKORBIT_SATGPS];
     337  bias.EpochTime[CLOCKORBIT_SATGPS]     = co.EpochTime[CLOCKORBIT_SATGPS];
    323338  bias.EpochTime[CLOCKORBIT_SATGLONASS] = co.EpochTime[CLOCKORBIT_SATGLONASS];
    324339  bias.EpochTime[CLOCKORBIT_SATGALILEO] = co.EpochTime[CLOCKORBIT_SATGALILEO];
    325   bias.EpochTime[CLOCKORBIT_SATQZSS] = co.EpochTime[CLOCKORBIT_SATQZSS];
    326   bias.EpochTime[CLOCKORBIT_SATSBAS] = co.EpochTime[CLOCKORBIT_SATSBAS];
    327   bias.EpochTime[CLOCKORBIT_SATBDS] = co.EpochTime[CLOCKORBIT_SATBDS];
    328   bias.SSRIOD = _IOD;
     340  bias.EpochTime[CLOCKORBIT_SATQZSS]    = co.EpochTime[CLOCKORBIT_SATQZSS];
     341  bias.EpochTime[CLOCKORBIT_SATSBAS]    = co.EpochTime[CLOCKORBIT_SATSBAS];
     342  bias.EpochTime[CLOCKORBIT_SATBDS]     = co.EpochTime[CLOCKORBIT_SATBDS];
     343  bias.SSRIOD        = _IOD;
    329344  bias.SSRProviderID = _PID;
    330345  bias.SSRSolutionID = _SID;
    331346
    332   struct PhaseBias phasebias;
     347  struct SsrCorr::PhaseBias phasebias;
    333348  memset(&phasebias, 0, sizeof(phasebias));
    334349  unsigned int dispersiveBiasConsistenyIndicator = 0;
    335350  unsigned int mwConsistencyIndicator = 0;
    336   phasebias.EpochTime[CLOCKORBIT_SATGPS] = co.EpochTime[CLOCKORBIT_SATGPS];
     351  phasebias.EpochTime[CLOCKORBIT_SATGPS]     = co.EpochTime[CLOCKORBIT_SATGPS];
    337352  phasebias.EpochTime[CLOCKORBIT_SATGLONASS] = co.EpochTime[CLOCKORBIT_SATGLONASS];
    338353  phasebias.EpochTime[CLOCKORBIT_SATGALILEO] = co.EpochTime[CLOCKORBIT_SATGALILEO];
    339   phasebias.EpochTime[CLOCKORBIT_SATQZSS] = co.EpochTime[CLOCKORBIT_SATQZSS];
    340   phasebias.EpochTime[CLOCKORBIT_SATSBAS] = co.EpochTime[CLOCKORBIT_SATSBAS];
    341   phasebias.EpochTime[CLOCKORBIT_SATBDS] = co.EpochTime[CLOCKORBIT_SATBDS];
    342   phasebias.SSRIOD = _IOD;
     354  phasebias.EpochTime[CLOCKORBIT_SATQZSS]    = co.EpochTime[CLOCKORBIT_SATQZSS];
     355  phasebias.EpochTime[CLOCKORBIT_SATSBAS]    = co.EpochTime[CLOCKORBIT_SATSBAS];
     356  phasebias.EpochTime[CLOCKORBIT_SATBDS]     = co.EpochTime[CLOCKORBIT_SATBDS];
     357  phasebias.SSRIOD        = _IOD;
    343358  phasebias.SSRProviderID = _PID;
    344359  phasebias.SSRSolutionID = _SID;
    345360
    346   struct VTEC vtec;
     361  struct SsrCorr::VTEC vtec;
    347362  memset(&vtec, 0, sizeof(vtec));
    348363  vtec.EpochTime = static_cast<int>(epoTime.gpssec());
    349   vtec.SSRIOD = _IOD;
     364  vtec.SSRIOD        = _IOD;
    350365  vtec.SSRProviderID = _PID;
    351366  vtec.SSRSolutionID = _SID;
     
    468483        QString key;
    469484        int numVal = 0;
    470         in >> key;
     485        in >> key;qDebug() << key;
    471486        if (in.status() != QTextStream::Ok) {
    472487          break;
     
    553568      }
    554569
    555       struct ClockOrbit::SatData* sd = 0;
     570      struct SsrCorr::ClockOrbit::SatData* sd = 0;
    556571      if (prn.system() == 'G') {
    557572        sd = co.Sat + co.NumberOfSat[CLOCKORBIT_SATGPS];
     
    599614      // Code Biases
    600615      // -----------
    601       struct CodeBias::BiasSat* biasSat = 0;
     616      struct SsrCorr::CodeBias::BiasSat* biasSat = 0;
    602617      if (!codeBiases.isEmpty()) {
    603618        if (prn.system() == 'G') {
     
    639654        biasSat->ID = prn.number();
    640655        biasSat->NumberOfCodeBiases = 0;
    641         if (prn.system() == 'G') {
    642           QMapIterator<QString, double> it(codeBiases);
    643           while (it.hasNext()) {
    644             it.next();
    645             if (it.key() == "1C") {
    646               int ii = biasSat->NumberOfCodeBiases;
    647               if (ii >= CLOCKORBIT_NUMBIAS)
    648                 break;
    649               biasSat->NumberOfCodeBiases += 1;
    650               biasSat->Biases[ii].Type = CODETYPEGPS_L1_CA;
    651               biasSat->Biases[ii].Bias = it.value();
    652             }
    653             else if (it.key() == "1S") {
    654               int ii = biasSat->NumberOfCodeBiases;
    655               if (ii >= CLOCKORBIT_NUMBIAS)
    656                 break;
    657               biasSat->NumberOfCodeBiases += 1;
    658               biasSat->Biases[ii].Type = CODETYPEGPS_L1C_D;
    659               biasSat->Biases[ii].Bias = it.value();
    660             }
    661             else if (it.key() == "1L") {
    662               int ii = biasSat->NumberOfCodeBiases;
    663               if (ii >= CLOCKORBIT_NUMBIAS)
    664                 break;
    665               biasSat->NumberOfCodeBiases += 1;
    666               biasSat->Biases[ii].Type = CODETYPEGPS_L1C_P;
    667               biasSat->Biases[ii].Bias = it.value();
    668             }
    669 #ifdef USE_SSR_RTCM
    670             else if (it.key() == "1X") {
    671               int ii = biasSat->NumberOfCodeBiases;
    672               if (ii >= CLOCKORBIT_NUMBIAS)
    673                 break;
    674               biasSat->NumberOfCodeBiases += 1;
    675               biasSat->Biases[ii].Type = CODETYPEGPS_L1C_DP;
    676               biasSat->Biases[ii].Bias = it.value();
    677             }
    678 #endif
    679             else if (it.key() == "1P") {
    680               int ii = biasSat->NumberOfCodeBiases;
    681               if (ii >= CLOCKORBIT_NUMBIAS)
    682                 break;
    683               biasSat->NumberOfCodeBiases += 1;
    684               biasSat->Biases[ii].Type = CODETYPEGPS_L1_P;
    685               biasSat->Biases[ii].Bias = it.value();
    686             }
    687             else if (it.key() == "1W") {
    688               int ii = biasSat->NumberOfCodeBiases;
    689               if (ii >= CLOCKORBIT_NUMBIAS)
    690                 break;
    691               biasSat->NumberOfCodeBiases += 1;
    692               biasSat->Biases[ii].Type = CODETYPEGPS_L1_Z;
    693               biasSat->Biases[ii].Bias = it.value();
    694             }
    695             else if (it.key() == "2C") {
    696               int ii = biasSat->NumberOfCodeBiases;
    697               if (ii >= CLOCKORBIT_NUMBIAS)
    698                 break;
    699               biasSat->NumberOfCodeBiases += 1;
    700               biasSat->Biases[ii].Type = CODETYPEGPS_L2_CA;
    701               biasSat->Biases[ii].Bias = it.value();
    702             }
    703             else if (it.key() == "2D") {
    704               int ii = biasSat->NumberOfCodeBiases;
    705               if (ii >= CLOCKORBIT_NUMBIAS)
    706                 break;
    707               biasSat->NumberOfCodeBiases += 1;
    708               biasSat->Biases[ii].Type = CODETYPEGPS_SEMI_CODELESS;
    709               biasSat->Biases[ii].Bias = it.value();
    710             }
    711             else if (it.key() == "2S") {
    712               int ii = biasSat->NumberOfCodeBiases;
    713               if (ii >= CLOCKORBIT_NUMBIAS)
    714                 break;
    715               biasSat->NumberOfCodeBiases += 1;
    716               biasSat->Biases[ii].Type = CODETYPEGPS_L2C_M;
    717               biasSat->Biases[ii].Bias = it.value();
    718             }
    719             else if (it.key() == "2L") {
    720               int ii = biasSat->NumberOfCodeBiases;
    721               if (ii >= CLOCKORBIT_NUMBIAS)
    722                 break;
    723               biasSat->NumberOfCodeBiases += 1;
    724               biasSat->Biases[ii].Type = CODETYPEGPS_L2C_L;
    725               biasSat->Biases[ii].Bias = it.value();
    726             }
    727 #ifdef USE_SSR_RTCM
    728             else if (it.key() == "2X") {
    729               int ii = biasSat->NumberOfCodeBiases;
    730               if (ii >= CLOCKORBIT_NUMBIAS)
    731                 break;
    732               biasSat->NumberOfCodeBiases += 1;
    733               biasSat->Biases[ii].Type = CODETYPEGPS_L2C_ML;
    734               biasSat->Biases[ii].Bias = it.value();
    735             }
    736 #endif
    737             else if (it.key() == "2P") {
    738               int ii = biasSat->NumberOfCodeBiases;
    739               if (ii >= CLOCKORBIT_NUMBIAS)
    740                 break;
    741               biasSat->NumberOfCodeBiases += 1;
    742               biasSat->Biases[ii].Type = CODETYPEGPS_L2_P;
    743               biasSat->Biases[ii].Bias = it.value();
    744             }
    745             else if (it.key() == "2W") {
    746               int ii = biasSat->NumberOfCodeBiases;
    747               if (ii >= CLOCKORBIT_NUMBIAS)
    748                 break;
    749               biasSat->NumberOfCodeBiases += 1;
    750               biasSat->Biases[ii].Type = CODETYPEGPS_L2_Z;
    751               biasSat->Biases[ii].Bias = it.value();
    752             }
    753             else if (it.key() == "5I") {
    754               int ii = biasSat->NumberOfCodeBiases;
    755               if (ii >= CLOCKORBIT_NUMBIAS)
    756                 break;
    757               biasSat->NumberOfCodeBiases += 1;
    758               biasSat->Biases[ii].Type = CODETYPEGPS_L5_I;
    759               biasSat->Biases[ii].Bias = it.value();
    760             }
    761             else if (it.key() == "5Q") {
    762               int ii = biasSat->NumberOfCodeBiases;
    763               if (ii >= CLOCKORBIT_NUMBIAS)
    764                 break;
    765               biasSat->NumberOfCodeBiases += 1;
    766               biasSat->Biases[ii].Type = CODETYPEGPS_L5_Q;
    767               biasSat->Biases[ii].Bias = it.value();
    768             }
    769 #ifdef USE_SSR_RTCM
    770             else if (it.key() == "5X") {
    771               int ii = biasSat->NumberOfCodeBiases;
    772               if (ii >= CLOCKORBIT_NUMBIAS)
    773                 break;
    774               biasSat->NumberOfCodeBiases += 1;
    775               biasSat->Biases[ii].Type = CODETYPEGPS_L5_IQ;
    776               biasSat->Biases[ii].Bias = it.value();
    777             }
    778 #endif
    779           }
    780         }
    781         else if (prn.system() == 'R') {
    782           QMapIterator<QString, double> it(codeBiases);
    783           while (it.hasNext()) {
    784             it.next();
    785             if (it.key() == "1C") {
    786               int ii = biasSat->NumberOfCodeBiases;
    787               if (ii >= CLOCKORBIT_NUMBIAS)
    788                 break;
    789               biasSat->NumberOfCodeBiases += 1;
    790               biasSat->Biases[ii].Type = CODETYPEGLONASS_L1_CA;
    791               biasSat->Biases[ii].Bias = it.value();
    792             }
    793             else if (it.key() == "1P") {
    794               int ii = biasSat->NumberOfCodeBiases;
    795               if (ii >= CLOCKORBIT_NUMBIAS)
    796                 break;
    797               biasSat->NumberOfCodeBiases += 1;
    798               biasSat->Biases[ii].Type = CODETYPEGLONASS_L1_P;
    799               biasSat->Biases[ii].Bias = it.value();
    800             }
    801             else if (it.key() == "2C") {
    802               int ii = biasSat->NumberOfCodeBiases;
    803               if (ii >= CLOCKORBIT_NUMBIAS)
    804                 break;
    805               biasSat->NumberOfCodeBiases += 1;
    806               biasSat->Biases[ii].Type = CODETYPEGLONASS_L2_CA;
    807               biasSat->Biases[ii].Bias = it.value();
    808             }
    809             else if (it.key() == "2P") {
    810               int ii = biasSat->NumberOfCodeBiases;
    811               if (ii >= CLOCKORBIT_NUMBIAS)
    812                 break;
    813               biasSat->NumberOfCodeBiases += 1;
    814               biasSat->Biases[ii].Type = CODETYPEGLONASS_L2_P;
    815               biasSat->Biases[ii].Bias = it.value();
    816             }
    817             else if (it.key() == "4A") {
    818               int ii = biasSat->NumberOfCodeBiases;
    819               if (ii >= CLOCKORBIT_NUMBIAS)
    820                 break;
    821               biasSat->NumberOfCodeBiases += 1;
    822               biasSat->Biases[ii].Type = CODETYPEGLONASS_L1a_OCd;
    823               biasSat->Biases[ii].Bias = it.value();
    824             }
    825             else if (it.key() == "4B") {
    826               int ii = biasSat->NumberOfCodeBiases;
    827               if (ii >= CLOCKORBIT_NUMBIAS)
    828                 break;
    829               biasSat->NumberOfCodeBiases += 1;
    830               biasSat->Biases[ii].Type = CODETYPEGLONASS_L1a_OCp;
    831               biasSat->Biases[ii].Bias = it.value();
    832             }
    833 #ifdef USE_SSR_RTCM
    834             else if (it.key() == "4X") {
    835               int ii = biasSat->NumberOfCodeBiases;
    836               if (ii >= CLOCKORBIT_NUMBIAS)
    837                 break;
    838               biasSat->NumberOfCodeBiases += 1;
    839               biasSat->Biases[ii].Type = CODETYPEGLONASS_L1a_OCdp;
    840               biasSat->Biases[ii].Bias = it.value();
    841             }
    842 #endif
    843             else if (it.key() == "6A") {
    844               int ii = biasSat->NumberOfCodeBiases;
    845               if (ii >= CLOCKORBIT_NUMBIAS)
    846                 break;
    847               biasSat->NumberOfCodeBiases += 1;
    848               biasSat->Biases[ii].Type = CODETYPEGLONASS_L2a_CSI;
    849               biasSat->Biases[ii].Bias = it.value();
    850             }
    851             else if (it.key() == "6B") {
    852               int ii = biasSat->NumberOfCodeBiases;
    853               if (ii >= CLOCKORBIT_NUMBIAS)
    854                 break;
    855               biasSat->NumberOfCodeBiases += 1;
    856               biasSat->Biases[ii].Type = CODETYPEGLONASS_L2a_OCp;
    857               biasSat->Biases[ii].Bias = it.value();
    858             }
    859 #ifdef USE_SSR_RTCM
    860             else if (it.key() == "6X") {
    861               int ii = biasSat->NumberOfCodeBiases;
    862               if (ii >= CLOCKORBIT_NUMBIAS)
    863                 break;
    864               biasSat->NumberOfCodeBiases += 1;
    865               biasSat->Biases[ii].Type = CODETYPEGLONASS_L2a_CSIOCp;
    866               biasSat->Biases[ii].Bias = it.value();
    867             }
    868 #endif
    869             else if (it.key() == "3I") {
    870               int ii = biasSat->NumberOfCodeBiases;
    871               if (ii >= CLOCKORBIT_NUMBIAS)
    872                 break;
    873               biasSat->NumberOfCodeBiases += 1;
    874               biasSat->Biases[ii].Type = CODETYPEGLONASS_L3_I;
    875               biasSat->Biases[ii].Bias = it.value();
    876             }
    877             else if (it.key() == "3Q") {
    878               int ii = biasSat->NumberOfCodeBiases;
    879               if (ii >= CLOCKORBIT_NUMBIAS)
    880                 break;
    881               biasSat->NumberOfCodeBiases += 1;
    882               biasSat->Biases[ii].Type = CODETYPEGLONASS_L3_Q;
    883               biasSat->Biases[ii].Bias = it.value();
    884             }
    885 #ifdef USE_SSR_RTCM
    886             else if (it.key() == "3X") {
    887               int ii = biasSat->NumberOfCodeBiases;
    888               if (ii >= CLOCKORBIT_NUMBIAS)
    889                 break;
    890               biasSat->NumberOfCodeBiases += 1;
    891               biasSat->Biases[ii].Type = CODETYPEGLONASS_L3_IQ;
    892               biasSat->Biases[ii].Bias = it.value();
    893             }
    894 #endif
    895           }
    896         }
    897         else if (prn.system() == 'E') {
    898           QMapIterator<QString, double> it(codeBiases);
    899           while (it.hasNext()) {
    900             it.next();
    901             if (it.key() == "1A") {
    902               int ii = biasSat->NumberOfCodeBiases;
    903               if (ii >= CLOCKORBIT_NUMBIAS)
    904                 break;
    905               biasSat->NumberOfCodeBiases += 1;
    906               biasSat->Biases[ii].Type = CODETYPEGALILEO_E1_A;
    907               biasSat->Biases[ii].Bias = it.value();
    908             }
    909             else if (it.key() == "1B") {
    910               int ii = biasSat->NumberOfCodeBiases;
    911               if (ii >= CLOCKORBIT_NUMBIAS)
    912                 break;
    913               biasSat->NumberOfCodeBiases += 1;
    914               biasSat->Biases[ii].Type = CODETYPEGALILEO_E1_B;
    915               biasSat->Biases[ii].Bias = it.value();
    916             }
    917             else if (it.key() == "1C") {
    918               int ii = biasSat->NumberOfCodeBiases;
    919               if (ii >= CLOCKORBIT_NUMBIAS)
    920                 break;
    921               biasSat->NumberOfCodeBiases += 1;
    922               biasSat->Biases[ii].Type = CODETYPEGALILEO_E1_C;
    923               biasSat->Biases[ii].Bias = it.value();
    924             }
    925 #ifdef USE_SSR_RTCM
    926             else if (it.key() == "1X") {
    927               int ii = biasSat->NumberOfCodeBiases;
    928               if (ii >= CLOCKORBIT_NUMBIAS)
    929                 break;
    930               biasSat->NumberOfCodeBiases += 1;
    931               biasSat->Biases[ii].Type = CODETYPEGALILEO_E1_BC;
    932               biasSat->Biases[ii].Bias = it.value();
    933             }
    934             else if (it.key() == "1Z") {
    935               int ii = biasSat->NumberOfCodeBiases;
    936               if (ii >= CLOCKORBIT_NUMBIAS)
    937                 break;
    938               biasSat->NumberOfCodeBiases += 1;
    939               biasSat->Biases[ii].Type = CODETYPEGALILEO_E1_ABC;
    940               biasSat->Biases[ii].Bias = it.value();
    941             }
    942 #endif
    943             else if (it.key() == "5I") {
    944               int ii = biasSat->NumberOfCodeBiases;
    945               if (ii >= CLOCKORBIT_NUMBIAS)
    946                 break;
    947               biasSat->NumberOfCodeBiases += 1;
    948               biasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_I;
    949               biasSat->Biases[ii].Bias = it.value();
    950             }
    951             else if (it.key() == "5Q") {
    952               int ii = biasSat->NumberOfCodeBiases;
    953               if (ii >= CLOCKORBIT_NUMBIAS)
    954                 break;
    955               biasSat->NumberOfCodeBiases += 1;
    956               biasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_Q;
    957               biasSat->Biases[ii].Bias = it.value();
    958             }
    959 #ifdef USE_SSR_RTCM
    960             else if (it.key() == "5X") {
    961               int ii = biasSat->NumberOfCodeBiases;
    962               if (ii >= CLOCKORBIT_NUMBIAS)
    963                 break;
    964               biasSat->NumberOfCodeBiases += 1;
    965               biasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_IQ;
    966               biasSat->Biases[ii].Bias = it.value();
    967             }
    968 #endif
    969             else if (it.key() == "7I") {
    970               int ii = biasSat->NumberOfCodeBiases;
    971               if (ii >= CLOCKORBIT_NUMBIAS)
    972                 break;
    973               biasSat->NumberOfCodeBiases += 1;
    974               biasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_I;
    975               biasSat->Biases[ii].Bias = it.value();
    976             }
    977             else if (it.key() == "7Q") {
    978               int ii = biasSat->NumberOfCodeBiases;
    979               if (ii >= CLOCKORBIT_NUMBIAS)
    980                 break;
    981               biasSat->NumberOfCodeBiases += 1;
    982               biasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_Q;
    983               biasSat->Biases[ii].Bias = it.value();
    984             }
    985 #ifdef USE_SSR_RTCM
    986             else if (it.key() == "7X") {
    987               int ii = biasSat->NumberOfCodeBiases;
    988               if (ii >= CLOCKORBIT_NUMBIAS)
    989                 break;
    990               biasSat->NumberOfCodeBiases += 1;
    991               biasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_IQ;
    992               biasSat->Biases[ii].Bias = it.value();
    993             }
    994             else if (it.key() == "8I") {
    995               int ii = biasSat->NumberOfCodeBiases;
    996               if (ii >= CLOCKORBIT_NUMBIAS)
    997                 break;
    998               biasSat->NumberOfCodeBiases += 1;
    999               biasSat->Biases[ii].Type = CODETYPEGALILEO_E5_I;
    1000               biasSat->Biases[ii].Bias = it.value();
    1001             }
    1002             else if (it.key() == "8Q") {
    1003               int ii = biasSat->NumberOfCodeBiases;
    1004               if (ii >= CLOCKORBIT_NUMBIAS)
    1005                 break;
    1006               biasSat->NumberOfCodeBiases += 1;
    1007               biasSat->Biases[ii].Type = CODETYPEGALILEO_E5_Q;
    1008               biasSat->Biases[ii].Bias = it.value();
    1009             }
    1010             else if (it.key() == "8X") {
    1011               int ii = biasSat->NumberOfCodeBiases;
    1012               if (ii >= CLOCKORBIT_NUMBIAS)
    1013                 break;
    1014               biasSat->NumberOfCodeBiases += 1;
    1015               biasSat->Biases[ii].Type = CODETYPEGALILEO_E5_IQ;
    1016               biasSat->Biases[ii].Bias = it.value();
    1017             }
    1018 #endif
    1019             else if (it.key() == "6A") {
    1020               int ii = biasSat->NumberOfCodeBiases;
    1021               if (ii >= CLOCKORBIT_NUMBIAS)
    1022                 break;
    1023               biasSat->NumberOfCodeBiases += 1;
    1024               biasSat->Biases[ii].Type = CODETYPEGALILEO_E6_A;
    1025               biasSat->Biases[ii].Bias = it.value();
    1026             }
    1027             else if (it.key() == "6B") {
    1028               int ii = biasSat->NumberOfCodeBiases;
    1029               if (ii >= CLOCKORBIT_NUMBIAS)
    1030                 break;
    1031               biasSat->NumberOfCodeBiases += 1;
    1032               biasSat->Biases[ii].Type = CODETYPEGALILEO_E6_B;
    1033               biasSat->Biases[ii].Bias = it.value();
    1034             }
    1035             else if (it.key() == "6C") {
    1036               int ii = biasSat->NumberOfCodeBiases;
    1037               if (ii >= CLOCKORBIT_NUMBIAS)
    1038                 break;
    1039               biasSat->NumberOfCodeBiases += 1;
    1040               biasSat->Biases[ii].Type = CODETYPEGALILEO_E6_C;
    1041               biasSat->Biases[ii].Bias = it.value();
    1042             }
    1043 #ifdef USE_SSR_RTCM
    1044             else if (it.key() == "6X") {
    1045               int ii = biasSat->NumberOfCodeBiases;
    1046               if (ii >= CLOCKORBIT_NUMBIAS)
    1047                 break;
    1048               biasSat->NumberOfCodeBiases += 1;
    1049               biasSat->Biases[ii].Type = CODETYPEGALILEO_E6_BC;
    1050               biasSat->Biases[ii].Bias = it.value();
    1051             }
    1052             else if (it.key() == "6Z") {
    1053               int ii = biasSat->NumberOfCodeBiases;
    1054               if (ii >= CLOCKORBIT_NUMBIAS)
    1055                 break;
    1056               biasSat->NumberOfCodeBiases += 1;
    1057               biasSat->Biases[ii].Type = CODETYPEGALILEO_E6_ABC;
    1058               biasSat->Biases[ii].Bias = it.value();
    1059             }
    1060 #endif
    1061           }
    1062         }
    1063         else if (prn.system() == 'J') {
    1064           QMapIterator<QString, double> it(codeBiases);
    1065           while (it.hasNext()) {
    1066             it.next();
    1067             if (it.key() == "1C") {
    1068               int ii = biasSat->NumberOfCodeBiases;
    1069               if (ii >= CLOCKORBIT_NUMBIAS)
    1070                 break;
    1071               biasSat->NumberOfCodeBiases += 1;
    1072               biasSat->Biases[ii].Type = CODETYPEQZSS_L1_CA;
    1073               biasSat->Biases[ii].Bias = it.value();
    1074             }
    1075             else if (it.key() == "1S") {
    1076               int ii = biasSat->NumberOfCodeBiases;
    1077               if (ii >= CLOCKORBIT_NUMBIAS)
    1078                 break;
    1079               biasSat->NumberOfCodeBiases += 1;
    1080               biasSat->Biases[ii].Type = CODETYPEQZSS_L1C_D;
    1081               biasSat->Biases[ii].Bias = it.value();
    1082             }
    1083             else if (it.key() == "1L") {
    1084               int ii = biasSat->NumberOfCodeBiases;
    1085               if (ii >= CLOCKORBIT_NUMBIAS)
    1086                 break;
    1087               biasSat->NumberOfCodeBiases += 1;
    1088               biasSat->Biases[ii].Type = CODETYPEQZSS_L1C_P;
    1089               biasSat->Biases[ii].Bias = it.value();
    1090             }
    1091             else if (it.key() == "2S") {
    1092               int ii = biasSat->NumberOfCodeBiases;
    1093               if (ii >= CLOCKORBIT_NUMBIAS)
    1094                 break;
    1095               biasSat->NumberOfCodeBiases += 1;
    1096               biasSat->Biases[ii].Type = CODETYPEQZSS_L2C_M;
    1097               biasSat->Biases[ii].Bias = it.value();
    1098             }
    1099             else if (it.key() == "2L") {
    1100               int ii = biasSat->NumberOfCodeBiases;
    1101               if (ii >= CLOCKORBIT_NUMBIAS)
    1102                 break;
    1103               biasSat->NumberOfCodeBiases += 1;
    1104               biasSat->Biases[ii].Type = CODETYPEQZSS_L2C_L;
    1105               biasSat->Biases[ii].Bias = it.value();
    1106             }
    1107 #ifdef USE_SSR_RTCM
    1108             else if (it.key() == "2X") {
    1109               int ii = biasSat->NumberOfCodeBiases;
    1110               if (ii >= CLOCKORBIT_NUMBIAS)
    1111                 break;
    1112               biasSat->NumberOfCodeBiases += 1;
    1113               biasSat->Biases[ii].Type = CODETYPEQZSS_L2C_ML;
    1114               biasSat->Biases[ii].Bias = it.value();
    1115             }
    1116 #endif
    1117             else if (it.key() == "5I") {
    1118               int ii = biasSat->NumberOfCodeBiases;
    1119               if (ii >= CLOCKORBIT_NUMBIAS)
    1120                 break;
    1121               biasSat->NumberOfCodeBiases += 1;
    1122               biasSat->Biases[ii].Type = CODETYPEQZSS_L5_I;
    1123               biasSat->Biases[ii].Bias = it.value();
    1124             }
    1125             else if (it.key() == "5Q") {
    1126               int ii = biasSat->NumberOfCodeBiases;
    1127               if (ii >= CLOCKORBIT_NUMBIAS)
    1128                 break;
    1129               biasSat->NumberOfCodeBiases += 1;
    1130               biasSat->Biases[ii].Type = CODETYPEQZSS_L5_Q;
    1131               biasSat->Biases[ii].Bias = it.value();
    1132             }
    1133 #ifdef USE_SSR_RTCM
    1134             else if (it.key() == "5X") {
    1135               int ii = biasSat->NumberOfCodeBiases;
    1136               if (ii >= CLOCKORBIT_NUMBIAS)
    1137                 break;
    1138               biasSat->NumberOfCodeBiases += 1;
    1139               biasSat->Biases[ii].Type = CODETYPEQZSS_L5_IQ;
    1140               biasSat->Biases[ii].Bias = it.value();
    1141             }
    1142 #endif
    1143             else if (it.key() == "6S") {
    1144               int ii = biasSat->NumberOfCodeBiases;
    1145               if (ii >= CLOCKORBIT_NUMBIAS)
    1146                 break;
    1147               biasSat->NumberOfCodeBiases += 1;
    1148               biasSat->Biases[ii].Type = CODETYPEQZSS_L6_D;
    1149               biasSat->Biases[ii].Bias = it.value();
    1150             }
    1151             else if (it.key() == "6L") {
    1152               int ii = biasSat->NumberOfCodeBiases;
    1153               if (ii >= CLOCKORBIT_NUMBIAS)
    1154                 break;
    1155               biasSat->NumberOfCodeBiases += 1;
    1156               biasSat->Biases[ii].Type = CODETYPEQZSS_L6_P;
    1157               biasSat->Biases[ii].Bias = it.value();
    1158             }
    1159 #ifdef USE_SSR_RTCM
    1160             else if (it.key() == "6X") {
    1161               int ii = biasSat->NumberOfCodeBiases;
    1162               if (ii >= CLOCKORBIT_NUMBIAS)
    1163                 break;
    1164               biasSat->NumberOfCodeBiases += 1;
    1165               biasSat->Biases[ii].Type = CODETYPEQZSS_L6_DP;
    1166               biasSat->Biases[ii].Bias = it.value();
    1167             }
    1168                         else if (it.key() == "1X") {
    1169               int ii = biasSat->NumberOfCodeBiases;
    1170               if (ii >= CLOCKORBIT_NUMBIAS)
    1171                 break;
    1172               biasSat->NumberOfCodeBiases += 1;
    1173               biasSat->Biases[ii].Type = CODETYPEQZSS_L1C_DP;
    1174               biasSat->Biases[ii].Bias = it.value();
    1175             }
    1176             else if (it.key() == "1Z") {
    1177               int ii = biasSat->NumberOfCodeBiases;
    1178               if (ii >= CLOCKORBIT_NUMBIAS)
    1179                 break;
    1180               biasSat->NumberOfCodeBiases += 1;
    1181               biasSat->Biases[ii].Type = CODETYPEQZSS_L1_S;
    1182               biasSat->Biases[ii].Bias = it.value();
    1183             }
    1184             else if (it.key() == "5D") {
    1185               int ii = biasSat->NumberOfCodeBiases;
    1186               if (ii >= CLOCKORBIT_NUMBIAS)
    1187                 break;
    1188               biasSat->NumberOfCodeBiases += 1;
    1189               biasSat->Biases[ii].Type = CODETYPEQZSS_L5_D;
    1190               biasSat->Biases[ii].Bias = it.value();
    1191             }
    1192             else if (it.key() == "5P") {
    1193               int ii = biasSat->NumberOfCodeBiases;
    1194               if (ii >= CLOCKORBIT_NUMBIAS)
    1195                 break;
    1196               biasSat->NumberOfCodeBiases += 1;
    1197               biasSat->Biases[ii].Type = CODETYPEQZSS_L5_P;
    1198               biasSat->Biases[ii].Bias = it.value();
    1199             }
    1200             else if (it.key() == "5Z") {
    1201               int ii = biasSat->NumberOfCodeBiases;
    1202               if (ii >= CLOCKORBIT_NUMBIAS)
    1203                 break;
    1204               biasSat->NumberOfCodeBiases += 1;
    1205               biasSat->Biases[ii].Type = CODETYPEQZSS_L5_DP;
    1206               biasSat->Biases[ii].Bias = it.value();
    1207             }
    1208 #endif
    1209             else if (it.key() == "6E") {
    1210               int ii = biasSat->NumberOfCodeBiases;
    1211               if (ii >= CLOCKORBIT_NUMBIAS)
    1212                 break;
    1213               biasSat->NumberOfCodeBiases += 1;
    1214               biasSat->Biases[ii].Type = CODETYPEQZSS_L6_E;
    1215               biasSat->Biases[ii].Bias = it.value();
    1216             }
    1217 #ifdef USE_SSR_RTCM
    1218             else if (it.key() == "6Z") {
    1219               int ii = biasSat->NumberOfCodeBiases;
    1220               if (ii >= CLOCKORBIT_NUMBIAS)
    1221                 break;
    1222               biasSat->NumberOfCodeBiases += 1;
    1223               biasSat->Biases[ii].Type = CODETYPEQZSS_L6_DE;
    1224               biasSat->Biases[ii].Bias = it.value();
    1225             }
    1226 #endif
    1227           }
    1228         }
    1229         else if (prn.system() == 'S') {
    1230           QMapIterator<QString, double> it(codeBiases);
    1231           while (it.hasNext()) {
    1232             it.next();
    1233             if (it.key() == "1C") {
    1234               int ii = biasSat->NumberOfCodeBiases;
    1235               if (ii >= CLOCKORBIT_NUMBIAS)
    1236                 break;
    1237               biasSat->NumberOfCodeBiases += 1;
    1238               biasSat->Biases[ii].Type = CODETYPE_SBAS_L1_CA;
    1239               biasSat->Biases[ii].Bias = it.value();
    1240             }
    1241             else if (it.key() == "5I") {
    1242               int ii = biasSat->NumberOfCodeBiases;
    1243               if (ii >= CLOCKORBIT_NUMBIAS)
    1244                 break;
    1245               biasSat->NumberOfCodeBiases += 1;
    1246               biasSat->Biases[ii].Type = CODETYPE_SBAS_L5_I;
    1247               biasSat->Biases[ii].Bias = it.value();
    1248             }
    1249             else if (it.key() == "5Q") {
    1250               int ii = biasSat->NumberOfCodeBiases;
    1251               if (ii >= CLOCKORBIT_NUMBIAS)
    1252                 break;
    1253               biasSat->NumberOfCodeBiases += 1;
    1254               biasSat->Biases[ii].Type = CODETYPE_SBAS_L5_Q;
    1255               biasSat->Biases[ii].Bias = it.value();
    1256             }
    1257 #ifdef USE_SSR_RTCM
    1258             else if (it.key() == "5X") {
    1259               int ii = biasSat->NumberOfCodeBiases;
    1260               if (ii >= CLOCKORBIT_NUMBIAS)
    1261                 break;
    1262               biasSat->NumberOfCodeBiases += 1;
    1263               biasSat->Biases[ii].Type = CODETYPE_SBAS_L5_IQ;
    1264               biasSat->Biases[ii].Bias = it.value();
    1265             }
    1266 #endif
    1267           }
    1268         }
    1269         else if (prn.system() == 'C') {
    1270           QMapIterator<QString, double> it(codeBiases);
    1271           while (it.hasNext()) {
    1272             it.next();
    1273             if (it.key() == "2I") {
    1274               int ii = biasSat->NumberOfCodeBiases;
    1275               if (ii >= CLOCKORBIT_NUMBIAS)
    1276                 break;
    1277               biasSat->NumberOfCodeBiases += 1;
    1278               biasSat->Biases[ii].Type = CODETYPE_BDS_B1_I;
    1279               biasSat->Biases[ii].Bias = it.value();
    1280             }
    1281             else if (it.key() == "2Q") {
    1282               int ii = biasSat->NumberOfCodeBiases;
    1283               if (ii >= CLOCKORBIT_NUMBIAS)
    1284                 break;
    1285               biasSat->NumberOfCodeBiases += 1;
    1286               biasSat->Biases[ii].Type = CODETYPE_BDS_B1_Q;
    1287               biasSat->Biases[ii].Bias = it.value();
    1288             }
    1289 #ifdef USE_SSR_RTCM
    1290             else if (it.key() == "2X") {
    1291               int ii = biasSat->NumberOfCodeBiases;
    1292               if (ii >= CLOCKORBIT_NUMBIAS)
    1293                 break;
    1294               biasSat->NumberOfCodeBiases += 1;
    1295               biasSat->Biases[ii].Type = CODETYPE_BDS_B1_IQ;
    1296               biasSat->Biases[ii].Bias = it.value();
    1297             }
    1298 #endif
    1299             else if (it.key() == "6I") {
    1300               int ii = biasSat->NumberOfCodeBiases;
    1301               if (ii >= CLOCKORBIT_NUMBIAS)
    1302                 break;
    1303               biasSat->NumberOfCodeBiases += 1;
    1304               biasSat->Biases[ii].Type = CODETYPE_BDS_B3_I;
    1305               biasSat->Biases[ii].Bias = it.value();
    1306             }
    1307             else if (it.key() == "6Q") {
    1308               int ii = biasSat->NumberOfCodeBiases;
    1309               if (ii >= CLOCKORBIT_NUMBIAS)
    1310                 break;
    1311               biasSat->NumberOfCodeBiases += 1;
    1312               biasSat->Biases[ii].Type = CODETYPE_BDS_B3_Q;
    1313               biasSat->Biases[ii].Bias = it.value();
    1314             }
    1315 #ifdef USE_SSR_RTCM
    1316             else if (it.key() == "6X") {
    1317               int ii = biasSat->NumberOfCodeBiases;
    1318               if (ii >= CLOCKORBIT_NUMBIAS)
    1319                 break;
    1320               biasSat->NumberOfCodeBiases += 1;
    1321               biasSat->Biases[ii].Type = CODETYPE_BDS_B3_IQ;
    1322               biasSat->Biases[ii].Bias = it.value();
    1323             }
    1324 #endif
    1325             else if (it.key() == "7I") {
    1326               int ii = biasSat->NumberOfCodeBiases;
    1327               if (ii >= CLOCKORBIT_NUMBIAS)
    1328                 break;
    1329               biasSat->NumberOfCodeBiases += 1;
    1330               biasSat->Biases[ii].Type = CODETYPE_BDS_B2_I;
    1331               biasSat->Biases[ii].Bias = it.value();
    1332             }
    1333             else if (it.key() == "7Q") {
    1334               int ii = biasSat->NumberOfCodeBiases;
    1335               if (ii >= CLOCKORBIT_NUMBIAS)
    1336                 break;
    1337               biasSat->NumberOfCodeBiases += 1;
    1338               biasSat->Biases[ii].Type = CODETYPE_BDS_B2_Q;
    1339               biasSat->Biases[ii].Bias = it.value();
    1340             }
    1341 #ifdef USE_SSR_RTCM
    1342             else if (it.key() == "7X") {
    1343               int ii = biasSat->NumberOfCodeBiases;
    1344               if (ii >= CLOCKORBIT_NUMBIAS)
    1345                 break;
    1346               biasSat->NumberOfCodeBiases += 1;
    1347               biasSat->Biases[ii].Type = CODETYPE_BDS_B2_IQ;
    1348               biasSat->Biases[ii].Bias = it.value();
    1349             }
    1350 #endif
    1351             else if (it.key() == "1D") {
    1352               int ii = biasSat->NumberOfCodeBiases;
    1353               if (ii >= CLOCKORBIT_NUMBIAS)
    1354                 break;
    1355               biasSat->NumberOfCodeBiases += 1;
    1356               biasSat->Biases[ii].Type = CODETYPE_BDS_B1a_D;
    1357               biasSat->Biases[ii].Bias = it.value();
    1358             }
    1359             else if (it.key() == "1P") {
    1360               int ii = biasSat->NumberOfCodeBiases;
    1361               if (ii >= CLOCKORBIT_NUMBIAS)
    1362                 break;
    1363               biasSat->NumberOfCodeBiases += 1;
    1364               biasSat->Biases[ii].Type = CODETYPE_BDS_B1a_P;
    1365               biasSat->Biases[ii].Bias = it.value();
    1366             }
    1367 #ifdef USE_SSR_RTCM
    1368             else if (it.key() == "1X") {
    1369               int ii = biasSat->NumberOfCodeBiases;
    1370               if (ii >= CLOCKORBIT_NUMBIAS)
    1371                 break;
    1372               biasSat->NumberOfCodeBiases += 1;
    1373               biasSat->Biases[ii].Type = CODETYPE_BDS_B1a_DP;
    1374               biasSat->Biases[ii].Bias = it.value();
    1375             }
    1376 #endif
    1377             else if (it.key() == "5D") {
    1378               int ii = biasSat->NumberOfCodeBiases;
    1379               if (ii >= CLOCKORBIT_NUMBIAS)
    1380                 break;
    1381               biasSat->NumberOfCodeBiases += 1;
    1382               biasSat->Biases[ii].Type = CODETYPE_BDS_B2a_D;
    1383               biasSat->Biases[ii].Bias = it.value();
    1384             }
    1385             else if (it.key() == "5P") {
    1386               int ii = biasSat->NumberOfCodeBiases;
    1387               if (ii >= CLOCKORBIT_NUMBIAS)
    1388                 break;
    1389               biasSat->NumberOfCodeBiases += 1;
    1390               biasSat->Biases[ii].Type = CODETYPE_BDS_B2a_P;
    1391               biasSat->Biases[ii].Bias = it.value();
    1392             }
    1393 #ifdef USE_SSR_RTCM
    1394             else if (it.key() == "5X") {
    1395               int ii = biasSat->NumberOfCodeBiases;
    1396               if (ii >= CLOCKORBIT_NUMBIAS)
    1397                 break;
    1398               biasSat->NumberOfCodeBiases += 1;
    1399               biasSat->Biases[ii].Type = CODETYPE_BDS_B2a_DP;
    1400               biasSat->Biases[ii].Bias = it.value();
    1401             }
    1402 #elif USE_SSR_IGS
    1403             else if (it.key() == "1A") {
    1404               int ii = biasSat->NumberOfCodeBiases;
    1405               if (ii >= CLOCKORBIT_NUMBIAS)
    1406                 break;
    1407               biasSat->NumberOfCodeBiases += 1;
    1408               biasSat->Biases[ii].Type = CODETYPE_BDS_B1_A;
    1409               biasSat->Biases[ii].Bias = it.value();
    1410             }
    1411             else if (it.key() == "6A") {
    1412               int ii = biasSat->NumberOfCodeBiases;
    1413               if (ii >= CLOCKORBIT_NUMBIAS)
    1414                 break;
    1415               biasSat->NumberOfCodeBiases += 1;
    1416               biasSat->Biases[ii].Type = CODETYPE_BDS_B3_A;
    1417               biasSat->Biases[ii].Bias = it.value();
    1418             }
    1419 #endif
     656        QMapIterator<QString, double> it(codeBiases);
     657        while (it.hasNext()) {
     658          it.next();
     659          int ii = biasSat->NumberOfCodeBiases;
     660          if (ii >= CLOCKORBIT_NUMBIAS)
     661            break;
     662          SsrCorr::CodeType type = _ssrCorr->rnxTypeToCodeType(prn.system(), it.key().toStdString());
     663          if (type != _ssrCorr->RESERVED) {
     664            biasSat->NumberOfCodeBiases += 1;
     665            biasSat->Biases[ii].Type = type;
     666            biasSat->Biases[ii].Bias = it.value();
    1420667          }
    1421668        }
     
    1424671      // Phase Biases
    1425672      // ------------
    1426       struct PhaseBias::PhaseBiasSat* phasebiasSat = 0;
     673      struct SsrCorr::PhaseBias::PhaseBiasSat* phasebiasSat = 0;
    1427674      if (prn.system()      == 'G') {
    1428675        phasebiasSat = phasebias.Sat
     
    1467714        phasebiasSat->YawAngle = pbSat.yawAngle;
    1468715        phasebiasSat->YawRate = pbSat.yawRate;
    1469         if (prn.system() == 'G') {
    1470           QListIterator<phaseBiasSignal> it(phaseBiasList);
    1471           while (it.hasNext()) {
    1472             const phaseBiasSignal &pbSig = it.next();
    1473             if (pbSig.type == "1C") {
    1474               int ii = phasebiasSat->NumberOfPhaseBiases;
    1475               if (ii >= CLOCKORBIT_NUMBIAS)
    1476                 break;
    1477               phasebiasSat->NumberOfPhaseBiases += 1;
    1478               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_CA;
    1479               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1480               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1481               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1482               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1483             }
    1484             else if (pbSig.type == "1P") {
    1485               int ii = phasebiasSat->NumberOfPhaseBiases;
    1486               if (ii >= CLOCKORBIT_NUMBIAS)
    1487                 break;
    1488               phasebiasSat->NumberOfPhaseBiases += 1;
    1489               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_P;
    1490               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1491               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1492               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1493               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1494             }
    1495             else if (pbSig.type == "1W") {
    1496               int ii = phasebiasSat->NumberOfPhaseBiases;
    1497               if (ii >= CLOCKORBIT_NUMBIAS)
    1498                 break;
    1499               phasebiasSat->NumberOfPhaseBiases += 1;
    1500               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_Z;
    1501               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1502               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1503               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1504               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1505             }
    1506             else if (pbSig.type == "2C") {
    1507               int ii = phasebiasSat->NumberOfPhaseBiases;
    1508               if (ii >= CLOCKORBIT_NUMBIAS)
    1509                 break;
    1510               phasebiasSat->NumberOfPhaseBiases += 1;
    1511               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CA;
    1512               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1513               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1514               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1515               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1516             }
    1517             else if (pbSig.type == "2D") {
    1518               int ii = phasebiasSat->NumberOfPhaseBiases;
    1519               if (ii >= CLOCKORBIT_NUMBIAS)
    1520                 break;
    1521               phasebiasSat->NumberOfPhaseBiases += 1;
    1522               phasebiasSat->Biases[ii].Type = CODETYPEGPS_SEMI_CODELESS;
    1523               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1524               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1525               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1526               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1527             }
    1528             else if (pbSig.type == "2S") {
    1529               int ii = phasebiasSat->NumberOfPhaseBiases;
    1530               if (ii >= CLOCKORBIT_NUMBIAS)
    1531                 break;
    1532               phasebiasSat->NumberOfPhaseBiases += 1;
    1533               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2C_M;
    1534               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1535               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1536               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1537               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1538             }
    1539             else if (pbSig.type == "2L") {
    1540               int ii = phasebiasSat->NumberOfPhaseBiases;
    1541               if (ii >= CLOCKORBIT_NUMBIAS)
    1542                 break;
    1543               phasebiasSat->NumberOfPhaseBiases += 1;
    1544               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2C_L;
    1545               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1546               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1547               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1548               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1549             }
    1550 #ifdef USE_SSR_RTCM
    1551             else if (pbSig.type == "2X") {
    1552               int ii = phasebiasSat->NumberOfPhaseBiases;
    1553               if (ii >= CLOCKORBIT_NUMBIAS)
    1554                 break;
    1555               phasebiasSat->NumberOfPhaseBiases += 1;
    1556               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2C_ML;
    1557               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1558               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1559               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1560               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1561             }
    1562 #endif
    1563             else if (pbSig.type == "2P") {
    1564               int ii = phasebiasSat->NumberOfPhaseBiases;
    1565               if (ii >= CLOCKORBIT_NUMBIAS)
    1566                 break;
    1567               phasebiasSat->NumberOfPhaseBiases += 1;
    1568               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_P;
    1569               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1570               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1571               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1572               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1573             }
    1574             else if (pbSig.type == "2W") {
    1575               int ii = phasebiasSat->NumberOfPhaseBiases;
    1576               if (ii >= CLOCKORBIT_NUMBIAS)
    1577                 break;
    1578               phasebiasSat->NumberOfPhaseBiases += 1;
    1579               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_Z;
    1580               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1581               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1582               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1583               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1584             }
    1585             else if (pbSig.type == "5I") {
    1586               int ii = phasebiasSat->NumberOfPhaseBiases;
    1587               if (ii >= CLOCKORBIT_NUMBIAS)
    1588                 break;
    1589               phasebiasSat->NumberOfPhaseBiases += 1;
    1590               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_I;
    1591               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1592               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1593               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1594               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1595             }
    1596             else if (pbSig.type == "5Q") {
    1597               int ii = phasebiasSat->NumberOfPhaseBiases;
    1598               if (ii >= CLOCKORBIT_NUMBIAS)
    1599                 break;
    1600               phasebiasSat->NumberOfPhaseBiases += 1;
    1601               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_Q;
    1602               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1603               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1604               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1605               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1606             }
    1607 #ifdef USE_SSR_RTCM
    1608             else if (pbSig.type == "5X") {
    1609               int ii = phasebiasSat->NumberOfPhaseBiases;
    1610               if (ii >= CLOCKORBIT_NUMBIAS)
    1611                 break;
    1612               phasebiasSat->NumberOfPhaseBiases += 1;
    1613               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_IQ;
    1614               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1615               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1616               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1617               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1618             }
    1619 #endif
    1620             else if (pbSig.type == "1S") {
    1621               int ii = phasebiasSat->NumberOfPhaseBiases;
    1622               if (ii >= CLOCKORBIT_NUMBIAS)
    1623                 break;
    1624               phasebiasSat->NumberOfPhaseBiases += 1;
    1625               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1C_D;
    1626               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1627               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1628               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1629               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1630             }
    1631             else if (pbSig.type == "1L") {
    1632               int ii = phasebiasSat->NumberOfPhaseBiases;
    1633               if (ii >= CLOCKORBIT_NUMBIAS)
    1634                 break;
    1635               phasebiasSat->NumberOfPhaseBiases += 1;
    1636               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1C_P;
    1637               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1638               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1639               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1640               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1641             }
    1642 #ifdef USE_SSR_RTCM
    1643             else if (pbSig.type == "1X") {
    1644               int ii = phasebiasSat->NumberOfPhaseBiases;
    1645               if (ii >= CLOCKORBIT_NUMBIAS)
    1646                 break;
    1647               phasebiasSat->NumberOfPhaseBiases += 1;
    1648               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1C_DP;
    1649               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1650               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1651               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1652               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1653             }
    1654 #endif
    1655           }
    1656         }
    1657         if (prn.system() == 'R') {
    1658           QListIterator<phaseBiasSignal> it(phaseBiasList);
    1659           while (it.hasNext()) {
    1660             const phaseBiasSignal &pbSig = it.next();
    1661             if (pbSig.type == "1C") {
    1662               int ii = phasebiasSat->NumberOfPhaseBiases;
    1663               if (ii >= CLOCKORBIT_NUMBIAS)
    1664                 break;
    1665               phasebiasSat->NumberOfPhaseBiases += 1;
    1666               phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L1_CA;
    1667               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1668               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1669               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1670               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1671             }
    1672             else if (pbSig.type == "1P") {
    1673               int ii = phasebiasSat->NumberOfPhaseBiases;
    1674               if (ii >= CLOCKORBIT_NUMBIAS)
    1675                 break;
    1676               phasebiasSat->NumberOfPhaseBiases += 1;
    1677               phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L1_P;
    1678               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1679               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1680               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1681               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1682             }
    1683             else if (pbSig.type == "2C") {
    1684               int ii = phasebiasSat->NumberOfPhaseBiases;
    1685               if (ii >= CLOCKORBIT_NUMBIAS)
    1686                 break;
    1687               phasebiasSat->NumberOfPhaseBiases += 1;
    1688               phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L2_CA;
    1689               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1690               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1691               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1692               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1693             }
    1694             else if (pbSig.type == "2P") {
    1695               int ii = phasebiasSat->NumberOfPhaseBiases;
    1696               if (ii >= CLOCKORBIT_NUMBIAS)
    1697                 break;
    1698               phasebiasSat->NumberOfPhaseBiases += 1;
    1699               phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L2_P;
    1700               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1701               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1702               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1703               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1704             }
    1705             else if (pbSig.type == "4A") {
    1706               int ii = phasebiasSat->NumberOfPhaseBiases;
    1707               if (ii >= CLOCKORBIT_NUMBIAS)
    1708                 break;
    1709               phasebiasSat->NumberOfPhaseBiases += 1;
    1710               phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L1a_OCd;
    1711               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1712               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1713               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1714               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1715             }
    1716             else if (pbSig.type == "4B") {
    1717               int ii = phasebiasSat->NumberOfPhaseBiases;
    1718               if (ii >= CLOCKORBIT_NUMBIAS)
    1719                 break;
    1720               phasebiasSat->NumberOfPhaseBiases += 1;
    1721               phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L1a_OCp;
    1722               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1723               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1724               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1725               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1726             }
    1727 #ifdef USE_SSR_RTCM
    1728             else if (pbSig.type == "4X") {
    1729               int ii = phasebiasSat->NumberOfPhaseBiases;
    1730               if (ii >= CLOCKORBIT_NUMBIAS)
    1731                 break;
    1732               phasebiasSat->NumberOfPhaseBiases += 1;
    1733               phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L1a_OCdp;
    1734               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1735               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1736               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1737               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1738             }
    1739 #endif
    1740             else if (pbSig.type == "6A") {
    1741               int ii = phasebiasSat->NumberOfPhaseBiases;
    1742               if (ii >= CLOCKORBIT_NUMBIAS)
    1743                 break;
    1744               phasebiasSat->NumberOfPhaseBiases += 1;
    1745               phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L2a_CSI;
    1746               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1747               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1748               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1749               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1750             }
    1751             else if (pbSig.type == "6B") {
    1752               int ii = phasebiasSat->NumberOfPhaseBiases;
    1753               if (ii >= CLOCKORBIT_NUMBIAS)
    1754                 break;
    1755               phasebiasSat->NumberOfPhaseBiases += 1;
    1756               phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L2a_OCp;
    1757               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1758               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1759               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1760               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1761             }
    1762 #ifdef USE_SSR_RTCM
    1763             else if (pbSig.type == "6X") {
    1764               int ii = phasebiasSat->NumberOfPhaseBiases;
    1765               if (ii >= CLOCKORBIT_NUMBIAS)
    1766                 break;
    1767               phasebiasSat->NumberOfPhaseBiases += 1;
    1768               phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L2a_CSIOCp;
    1769               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1770               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1771               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1772               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1773             }
    1774 #endif
    1775             else if (pbSig.type == "3I") {
    1776               int ii = phasebiasSat->NumberOfPhaseBiases;
    1777               if (ii >= CLOCKORBIT_NUMBIAS)
    1778                 break;
    1779               phasebiasSat->NumberOfPhaseBiases += 1;
    1780               phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L3_I;
    1781               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1782               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1783               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1784               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1785             }
    1786             else if (pbSig.type == "3Q") {
    1787               int ii = phasebiasSat->NumberOfPhaseBiases;
    1788               if (ii >= CLOCKORBIT_NUMBIAS)
    1789                 break;
    1790               phasebiasSat->NumberOfPhaseBiases += 1;
    1791               phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L3_Q;
    1792               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1793               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1794               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1795               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1796             }
    1797 #ifdef USE_SSR_RTCM
    1798             else if (pbSig.type == "3X") {
    1799               int ii = phasebiasSat->NumberOfPhaseBiases;
    1800               if (ii >= CLOCKORBIT_NUMBIAS)
    1801                 break;
    1802               phasebiasSat->NumberOfPhaseBiases += 1;
    1803               phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L3_IQ;
    1804               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1805               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1806               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1807               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1808             }
    1809 #endif
    1810           }
    1811         }
    1812         if (prn.system() == 'E') {
    1813           QListIterator<phaseBiasSignal> it(phaseBiasList);
    1814           while (it.hasNext()) {
    1815             const phaseBiasSignal &pbSig = it.next();
    1816             if (pbSig.type == "1A") {
    1817               int ii = phasebiasSat->NumberOfPhaseBiases;
    1818               if (ii >= CLOCKORBIT_NUMBIAS)
    1819                 break;
    1820               phasebiasSat->NumberOfPhaseBiases += 1;
    1821               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E1_A;
    1822               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1823               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1824               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1825               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1826             }
    1827             else if (pbSig.type == "1B") {
    1828               int ii = phasebiasSat->NumberOfPhaseBiases;
    1829               if (ii >= CLOCKORBIT_NUMBIAS)
    1830                 break;
    1831               phasebiasSat->NumberOfPhaseBiases += 1;
    1832               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E1_B;
    1833               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1834               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1835               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1836               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1837             }
    1838             else if (pbSig.type == "1C") {
    1839               int ii = phasebiasSat->NumberOfPhaseBiases;
    1840               if (ii >= CLOCKORBIT_NUMBIAS)
    1841                 break;
    1842               phasebiasSat->NumberOfPhaseBiases += 1;
    1843               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E1_C;
    1844               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1845               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1846               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1847               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1848             }
    1849 #ifdef USE_SSR_RTCM
    1850             else if (pbSig.type == "1X") {
    1851               int ii = phasebiasSat->NumberOfPhaseBiases;
    1852               if (ii >= CLOCKORBIT_NUMBIAS)
    1853                 break;
    1854               phasebiasSat->NumberOfPhaseBiases += 1;
    1855               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E1_BC;
    1856               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1857               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1858               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1859               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1860             }
    1861             else if (pbSig.type == "1Z") {
    1862               int ii = phasebiasSat->NumberOfPhaseBiases;
    1863               if (ii >= CLOCKORBIT_NUMBIAS)
    1864                 break;
    1865               phasebiasSat->NumberOfPhaseBiases += 1;
    1866               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E1_ABC;
    1867               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1868               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1869               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1870               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1871             }
    1872 #endif
    1873             else if (pbSig.type == "5I") {
    1874               int ii = phasebiasSat->NumberOfPhaseBiases;
    1875               if (ii >= CLOCKORBIT_NUMBIAS)
    1876                 break;
    1877               phasebiasSat->NumberOfPhaseBiases += 1;
    1878               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_I;
    1879               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1880               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1881               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1882               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1883             }
    1884             else if (pbSig.type == "5Q") {
    1885               int ii = phasebiasSat->NumberOfPhaseBiases;
    1886               if (ii >= CLOCKORBIT_NUMBIAS)
    1887                 break;
    1888               phasebiasSat->NumberOfPhaseBiases += 1;
    1889               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_Q;
    1890               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1891               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1892               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1893               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1894             }
    1895 #ifdef USE_SSR_RTCM
    1896             else if (pbSig.type == "5X") {
    1897               int ii = phasebiasSat->NumberOfPhaseBiases;
    1898               if (ii >= CLOCKORBIT_NUMBIAS)
    1899                 break;
    1900               phasebiasSat->NumberOfPhaseBiases += 1;
    1901               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_IQ;
    1902               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1903               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1904               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1905               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1906             }
    1907 #endif
    1908             else if (pbSig.type == "7I") {
    1909               int ii = phasebiasSat->NumberOfPhaseBiases;
    1910               if (ii >= CLOCKORBIT_NUMBIAS)
    1911                 break;
    1912               phasebiasSat->NumberOfPhaseBiases += 1;
    1913               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_I;
    1914               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1915               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1916               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1917               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1918             }
    1919             else if (pbSig.type == "7Q") {
    1920               int ii = phasebiasSat->NumberOfPhaseBiases;
    1921               if (ii >= CLOCKORBIT_NUMBIAS)
    1922                 break;
    1923               phasebiasSat->NumberOfPhaseBiases += 1;
    1924               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_Q;
    1925               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1926               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1927               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1928               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1929             }
    1930 #ifdef USE_SSR_RTCM
    1931             else if (pbSig.type == "7X") {
    1932               int ii = phasebiasSat->NumberOfPhaseBiases;
    1933               if (ii >= CLOCKORBIT_NUMBIAS)
    1934                 break;
    1935               phasebiasSat->NumberOfPhaseBiases += 1;
    1936               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_IQ;
    1937               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1938               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1939               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1940               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1941             }
    1942             else if (pbSig.type == "8I") {
    1943               int ii = phasebiasSat->NumberOfPhaseBiases;
    1944               if (ii >= CLOCKORBIT_NUMBIAS)
    1945                 break;
    1946               phasebiasSat->NumberOfPhaseBiases += 1;
    1947               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5_I;
    1948               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1949               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1950               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1951               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1952             }
    1953             else if (pbSig.type == "8Q") {
    1954               int ii = phasebiasSat->NumberOfPhaseBiases;
    1955               if (ii >= CLOCKORBIT_NUMBIAS)
    1956                 break;
    1957               phasebiasSat->NumberOfPhaseBiases += 1;
    1958               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5_Q;
    1959               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1960               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1961               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1962               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1963             }
    1964             else if (pbSig.type == "8X") {
    1965               int ii = phasebiasSat->NumberOfPhaseBiases;
    1966               if (ii >= CLOCKORBIT_NUMBIAS)
    1967                 break;
    1968               phasebiasSat->NumberOfPhaseBiases += 1;
    1969               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5_IQ;
    1970               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1971               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1972               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1973               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1974             }
    1975 #endif
    1976             else if (pbSig.type == "6A") {
    1977               int ii = phasebiasSat->NumberOfPhaseBiases;
    1978               if (ii >= CLOCKORBIT_NUMBIAS)
    1979                 break;
    1980               phasebiasSat->NumberOfPhaseBiases += 1;
    1981               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E6_A;
    1982               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1983               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1984               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1985               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1986             }
    1987             else if (pbSig.type == "6B") {
    1988               int ii = phasebiasSat->NumberOfPhaseBiases;
    1989               if (ii >= CLOCKORBIT_NUMBIAS)
    1990                 break;
    1991               phasebiasSat->NumberOfPhaseBiases += 1;
    1992               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E6_B;
    1993               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    1994               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    1995               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    1996               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    1997             }
    1998             else if (pbSig.type == "6C") {
    1999               int ii = phasebiasSat->NumberOfPhaseBiases;
    2000               if (ii >= CLOCKORBIT_NUMBIAS)
    2001                 break;
    2002               phasebiasSat->NumberOfPhaseBiases += 1;
    2003               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E6_C;
    2004               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2005               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2006               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2007               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2008             }
    2009 #ifdef USE_SSR_RTCM
    2010             else if (pbSig.type == "6X") {
    2011               int ii = phasebiasSat->NumberOfPhaseBiases;
    2012               if (ii >= CLOCKORBIT_NUMBIAS)
    2013                 break;
    2014               phasebiasSat->NumberOfPhaseBiases += 1;
    2015               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E6_BC;
    2016               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2017               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2018               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2019               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2020             }
    2021             else if (pbSig.type == "6Z") {
    2022               int ii = phasebiasSat->NumberOfPhaseBiases;
    2023               if (ii >= CLOCKORBIT_NUMBIAS)
    2024                 break;
    2025               phasebiasSat->NumberOfPhaseBiases += 1;
    2026               phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E6_ABC;
    2027               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2028               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2029               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2030               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2031             }
    2032 #endif
    2033           }
    2034         }
    2035         if (prn.system() == 'J') {
    2036           QListIterator<phaseBiasSignal> it(phaseBiasList);
    2037           while (it.hasNext()) {
    2038             const phaseBiasSignal &pbSig = it.next();
    2039             if (pbSig.type == "1C") {
    2040               int ii = phasebiasSat->NumberOfPhaseBiases;
    2041               if (ii >= CLOCKORBIT_NUMBIAS)
    2042                 break;
    2043               phasebiasSat->NumberOfPhaseBiases += 1;
    2044               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1_CA;
    2045               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2046               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2047               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2048               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2049             }
    2050             else if (pbSig.type == "1S") {
    2051               int ii = phasebiasSat->NumberOfPhaseBiases;
    2052               if (ii >= CLOCKORBIT_NUMBIAS)
    2053                 break;
    2054               phasebiasSat->NumberOfPhaseBiases += 1;
    2055               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1C_D;
    2056               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2057               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2058               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2059             }
    2060             else if (pbSig.type == "1L") {
    2061               int ii = phasebiasSat->NumberOfPhaseBiases;
    2062               if (ii >= CLOCKORBIT_NUMBIAS)
    2063                 break;
    2064               phasebiasSat->NumberOfPhaseBiases += 1;
    2065               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1C_P;
    2066               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2067               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2068               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2069               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2070             }
    2071             else if (pbSig.type == "2S") {
    2072               int ii = phasebiasSat->NumberOfPhaseBiases;
    2073               if (ii >= CLOCKORBIT_NUMBIAS)
    2074                 break;
    2075               phasebiasSat->NumberOfPhaseBiases += 1;
    2076               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2C_M;
    2077               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2078               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2079               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2080               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2081             }
    2082             else if (pbSig.type == "2L") {
    2083               int ii = phasebiasSat->NumberOfPhaseBiases;
    2084               if (ii >= CLOCKORBIT_NUMBIAS)
    2085                 break;
    2086               phasebiasSat->NumberOfPhaseBiases += 1;
    2087               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2C_L;
    2088               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2089               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2090               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2091               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2092             }
    2093 #ifdef USE_SSR_RTCM
    2094             else if (pbSig.type == "2X") {
    2095               int ii = phasebiasSat->NumberOfPhaseBiases;
    2096               if (ii >= CLOCKORBIT_NUMBIAS)
    2097                 break;
    2098               phasebiasSat->NumberOfPhaseBiases += 1;
    2099               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2C_ML;
    2100               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2101               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2102               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2103             }
    2104 #endif
    2105             else if (pbSig.type == "5I") {
    2106               int ii = phasebiasSat->NumberOfPhaseBiases;
    2107               if (ii >= CLOCKORBIT_NUMBIAS)
    2108                 break;
    2109               phasebiasSat->NumberOfPhaseBiases += 1;
    2110               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_I;
    2111               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2112               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2113               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2114               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2115             }
    2116             else if (pbSig.type == "5Q") {
    2117               int ii = phasebiasSat->NumberOfPhaseBiases;
    2118               if (ii >= CLOCKORBIT_NUMBIAS)
    2119                 break;
    2120               phasebiasSat->NumberOfPhaseBiases += 1;
    2121               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_Q;
    2122               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2123               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2124               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2125               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2126             }
    2127 #ifdef USE_SSR_RTCM
    2128             else if (pbSig.type == "5X") {
    2129               int ii = phasebiasSat->NumberOfPhaseBiases;
    2130               if (ii >= CLOCKORBIT_NUMBIAS)
    2131                 break;
    2132               phasebiasSat->NumberOfPhaseBiases += 1;
    2133               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_IQ;
    2134               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2135               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2136               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2137               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2138             }
    2139 #endif
    2140             else if (pbSig.type == "6S") {
    2141               int ii = phasebiasSat->NumberOfPhaseBiases;
    2142               if (ii >= CLOCKORBIT_NUMBIAS)
    2143                 break;
    2144               phasebiasSat->NumberOfPhaseBiases += 1;
    2145               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_D;
    2146               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2147               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2148               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2149               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2150             }
    2151             else if (pbSig.type == "6L") {
    2152               int ii = phasebiasSat->NumberOfPhaseBiases;
    2153               if (ii >= CLOCKORBIT_NUMBIAS)
    2154                 break;
    2155               phasebiasSat->NumberOfPhaseBiases += 1;
    2156               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_P;
    2157               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2158               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2159               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2160               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2161             }
    2162 #ifdef USE_SSR_RTCM
    2163             else if (pbSig.type == "6X") {
    2164               int ii = phasebiasSat->NumberOfPhaseBiases;
    2165               if (ii >= CLOCKORBIT_NUMBIAS)
    2166                 break;
    2167               phasebiasSat->NumberOfPhaseBiases += 1;
    2168               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_DP;
    2169               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2170               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2171               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2172               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2173             }
    2174                         else if (pbSig.type == "1X") {
    2175               int ii = phasebiasSat->NumberOfPhaseBiases;
    2176               if (ii >= CLOCKORBIT_NUMBIAS)
    2177                 break;
    2178               phasebiasSat->NumberOfPhaseBiases += 1;
    2179               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1C_DP;
    2180               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2181               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2182               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2183               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2184             }
    2185             else if (pbSig.type == "1Z") {
    2186               int ii = phasebiasSat->NumberOfPhaseBiases;
    2187               if (ii >= CLOCKORBIT_NUMBIAS)
    2188                 break;
    2189               phasebiasSat->NumberOfPhaseBiases += 1;
    2190               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1_S;
    2191               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2192               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2193               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2194               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2195             }
    2196             else if (pbSig.type == "5D") {
    2197               int ii = phasebiasSat->NumberOfPhaseBiases;
    2198               if (ii >= CLOCKORBIT_NUMBIAS)
    2199                 break;
    2200               phasebiasSat->NumberOfPhaseBiases += 1;
    2201               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_D;
    2202               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2203               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2204               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2205               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2206             }
    2207             else if (pbSig.type == "5P") {
    2208               int ii = phasebiasSat->NumberOfPhaseBiases;
    2209               if (ii >= CLOCKORBIT_NUMBIAS)
    2210                 break;
    2211               phasebiasSat->NumberOfPhaseBiases += 1;
    2212               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_P;
    2213               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2214               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2215               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2216               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2217             }
    2218             else if (pbSig.type == "5Z") {
    2219               int ii = phasebiasSat->NumberOfPhaseBiases;
    2220               if (ii >= CLOCKORBIT_NUMBIAS)
    2221                 break;
    2222               phasebiasSat->NumberOfPhaseBiases += 1;
    2223               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_DP;
    2224               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2225               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2226               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2227               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2228             }
    2229 #endif
    2230             else if (pbSig.type == "6E") {
    2231               int ii = phasebiasSat->NumberOfPhaseBiases;
    2232               if (ii >= CLOCKORBIT_NUMBIAS)
    2233                 break;
    2234               phasebiasSat->NumberOfPhaseBiases += 1;
    2235               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_E;
    2236               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2237               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2238               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2239               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2240             }
    2241 #ifdef USE_SSR_RTCM
    2242             else if (pbSig.type == "6Z") {
    2243               int ii = phasebiasSat->NumberOfPhaseBiases;
    2244               if (ii >= CLOCKORBIT_NUMBIAS)
    2245                 break;
    2246               phasebiasSat->NumberOfPhaseBiases += 1;
    2247               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_DE;
    2248               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2249               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2250               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2251               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2252             }
    2253 #endif
    2254           }
    2255         }
    2256         if (prn.system() == 'S') {
    2257           QListIterator<phaseBiasSignal> it(phaseBiasList);
    2258           while (it.hasNext()) {
    2259             const phaseBiasSignal &pbSig = it.next();
    2260             if (pbSig.type == "1C") {
    2261               int ii = phasebiasSat->NumberOfPhaseBiases;
    2262               if (ii >= CLOCKORBIT_NUMBIAS)
    2263                 break;
    2264               phasebiasSat->NumberOfPhaseBiases += 1;
    2265               phasebiasSat->Biases[ii].Type = CODETYPE_SBAS_L1_CA;
    2266               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2267               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2268               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2269               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2270             }
    2271             else if (pbSig.type == "5I") {
    2272               int ii = phasebiasSat->NumberOfPhaseBiases;
    2273               if (ii >= CLOCKORBIT_NUMBIAS)
    2274                 break;
    2275               phasebiasSat->NumberOfPhaseBiases += 1;
    2276               phasebiasSat->Biases[ii].Type = CODETYPE_SBAS_L5_I;
    2277               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2278               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2279               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2280             }
    2281             else if (pbSig.type == "5Q") {
    2282               int ii = phasebiasSat->NumberOfPhaseBiases;
    2283               if (ii >= CLOCKORBIT_NUMBIAS)
    2284                 break;
    2285               phasebiasSat->NumberOfPhaseBiases += 1;
    2286               phasebiasSat->Biases[ii].Type = CODETYPE_SBAS_L5_Q;
    2287               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2288               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2289               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2290               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2291             }
    2292 #ifdef USE_SSR_RTCM
    2293             else if (pbSig.type == "5X") {
    2294               int ii = phasebiasSat->NumberOfPhaseBiases;
    2295               if (ii >= CLOCKORBIT_NUMBIAS)
    2296                 break;
    2297               phasebiasSat->NumberOfPhaseBiases += 1;
    2298               phasebiasSat->Biases[ii].Type = CODETYPE_SBAS_L5_IQ;
    2299               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2300               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2301               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2302               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2303             }
    2304 #endif
    2305           }
    2306         }
    2307         if (prn.system() == 'C') {
    2308           QListIterator<phaseBiasSignal> it(phaseBiasList);
    2309           while (it.hasNext()) {
    2310             const phaseBiasSignal &pbSig = it.next();
    2311             if (pbSig.type == "2I") {
    2312               int ii = phasebiasSat->NumberOfPhaseBiases;
    2313               if (ii >= CLOCKORBIT_NUMBIAS)
    2314                 break;
    2315               phasebiasSat->NumberOfPhaseBiases += 1;
    2316               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1_I;
    2317               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2318               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2319               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2320               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2321             }
    2322             else if (pbSig.type == "2Q") {
    2323               int ii = phasebiasSat->NumberOfPhaseBiases;
    2324               if (ii >= CLOCKORBIT_NUMBIAS)
    2325                 break;
    2326               phasebiasSat->NumberOfPhaseBiases += 1;
    2327               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1_Q;
    2328               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2329               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2330               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2331               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2332             }
    2333 #ifdef USE_SSR_RTCM
    2334             else if (pbSig.type == "2X") {
    2335               int ii = phasebiasSat->NumberOfPhaseBiases;
    2336               if (ii >= CLOCKORBIT_NUMBIAS)
    2337                 break;
    2338               phasebiasSat->NumberOfPhaseBiases += 1;
    2339               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1_IQ;
    2340               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2341               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2342               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2343               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2344             }
    2345 #endif
    2346             else if (pbSig.type == "6I") {
    2347               int ii = phasebiasSat->NumberOfPhaseBiases;
    2348               if (ii >= CLOCKORBIT_NUMBIAS)
    2349                 break;
    2350               phasebiasSat->NumberOfPhaseBiases += 1;
    2351               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B3_I;
    2352               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2353               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2354               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2355               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2356             }
    2357             else if (pbSig.type == "6Q") {
    2358               int ii = phasebiasSat->NumberOfPhaseBiases;
    2359               if (ii >= CLOCKORBIT_NUMBIAS)
    2360                 break;
    2361               phasebiasSat->NumberOfPhaseBiases += 1;
    2362               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B3_Q;
    2363               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2364               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2365               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2366               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2367             }
    2368 #ifdef USE_SSR_RTCM
    2369             else if (pbSig.type == "6X") {
    2370               int ii = phasebiasSat->NumberOfPhaseBiases;
    2371               if (ii >= CLOCKORBIT_NUMBIAS)
    2372                 break;
    2373               phasebiasSat->NumberOfPhaseBiases += 1;
    2374               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B3_IQ;
    2375               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2376               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2377               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2378               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2379             }
    2380 #endif
    2381             else if (pbSig.type == "7I") {
    2382               int ii = phasebiasSat->NumberOfPhaseBiases;
    2383               if (ii >= CLOCKORBIT_NUMBIAS)
    2384                 break;
    2385               phasebiasSat->NumberOfPhaseBiases += 1;
    2386               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2_I;
    2387               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2388               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2389               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2390               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2391             }
    2392             else if (pbSig.type == "7Q") {
    2393               int ii = phasebiasSat->NumberOfPhaseBiases;
    2394               if (ii >= CLOCKORBIT_NUMBIAS)
    2395                 break;
    2396               phasebiasSat->NumberOfPhaseBiases += 1;
    2397               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2_Q;
    2398               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2399               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    2400               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2401               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2402             }
    2403 #ifdef USE_SSR_RTCM
    2404             else if (pbSig.type == "7X") {
    2405               int ii = phasebiasSat->NumberOfPhaseBiases;
    2406               if (ii >= CLOCKORBIT_NUMBIAS)
    2407                 break;
    2408               phasebiasSat->NumberOfPhaseBiases += 1;
    2409               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2_IQ;
    2410               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2411               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2412               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2413             }
    2414 #endif
    2415             else if (pbSig.type == "1D") {
    2416               int ii = phasebiasSat->NumberOfPhaseBiases;
    2417               if (ii >= CLOCKORBIT_NUMBIAS)
    2418                 break;
    2419               phasebiasSat->NumberOfPhaseBiases += 1;
    2420               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1a_D;
    2421               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2422               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2423               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2424             }
    2425             else if (pbSig.type == "1P") {
    2426               int ii = phasebiasSat->NumberOfPhaseBiases;
    2427               if (ii >= CLOCKORBIT_NUMBIAS)
    2428                 break;
    2429               phasebiasSat->NumberOfPhaseBiases += 1;
    2430               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1a_P;
    2431               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2432               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2433               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2434             }
    2435 #ifdef USE_SSR_RTCM
    2436             else if (pbSig.type == "1X") {
    2437               int ii = phasebiasSat->NumberOfPhaseBiases;
    2438               if (ii >= CLOCKORBIT_NUMBIAS)
    2439                 break;
    2440               phasebiasSat->NumberOfPhaseBiases += 1;
    2441               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1a_DP;
    2442               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2443               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2444               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2445             }
    2446 #endif
    2447             else if (pbSig.type == "5D") {
    2448               int ii = phasebiasSat->NumberOfPhaseBiases;
    2449               if (ii >= CLOCKORBIT_NUMBIAS)
    2450                 break;
    2451               phasebiasSat->NumberOfPhaseBiases += 1;
    2452               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2a_D;
    2453               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2454               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2455               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2456             }
    2457             else if (pbSig.type == "5P") {
    2458               int ii = phasebiasSat->NumberOfPhaseBiases;
    2459               if (ii >= CLOCKORBIT_NUMBIAS)
    2460                 break;
    2461               phasebiasSat->NumberOfPhaseBiases += 1;
    2462               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2a_P;
    2463               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2464               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2465               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2466             }
    2467 #ifdef USE_SSR_RTCM
    2468             else if (pbSig.type == "5X") {
    2469               int ii = phasebiasSat->NumberOfPhaseBiases;
    2470               if (ii >= CLOCKORBIT_NUMBIAS)
    2471                 break;
    2472               phasebiasSat->NumberOfPhaseBiases += 1;
    2473               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2a_DP;
    2474               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2475               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2476               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2477             }
    2478 #elif USE_SSR_IGS
    2479             else if (pbSig.type == "1A") {
    2480               int ii = phasebiasSat->NumberOfPhaseBiases;
    2481               if (ii >= CLOCKORBIT_NUMBIAS)
    2482                 break;
    2483               phasebiasSat->NumberOfPhaseBiases += 1;
    2484               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1_A;
    2485               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2486               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2487               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2488             }
    2489             else if (pbSig.type == "6A") {
    2490               int ii = phasebiasSat->NumberOfPhaseBiases;
    2491               if (ii >= CLOCKORBIT_NUMBIAS)
    2492                 break;
    2493               phasebiasSat->NumberOfPhaseBiases += 1;
    2494               phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B3_A;
    2495               phasebiasSat->Biases[ii].Bias = pbSig.bias;
    2496               phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    2497               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2498             }
    2499 #endif
     716        QListIterator<phaseBiasSignal> it(phaseBiasList);
     717        while (it.hasNext()) {
     718          const phaseBiasSignal &pbSig = it.next();
     719          int ii = phasebiasSat->NumberOfPhaseBiases;
     720          if (ii >= CLOCKORBIT_NUMBIAS)
     721            break;
     722          SsrCorr::CodeType type = _ssrCorr->rnxTypeToCodeType(prn.system(), pbSig.type.toStdString());
     723          if (type != _ssrCorr->RESERVED) {
     724            phasebiasSat->NumberOfPhaseBiases += 1;
     725            phasebiasSat->Biases[ii].Type = type;
     726            phasebiasSat->Biases[ii].Bias = pbSig.bias;
     727            phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
     728            phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
     729            phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
    2500730          }
    2501731        }
     
    2517747        || co.NumberOfSat[CLOCKORBIT_SATBDS] > 0) {
    2518748      char obuffer[CLOCKORBIT_BUFFERSIZE];
    2519       int len = MakeClockOrbit(&co, COTYPE_AUTO, 0, obuffer, sizeof(obuffer));
     749      int len = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_AUTO, 0, obuffer, sizeof(obuffer));
    2520750      if (len > 0) {
    2521751        hlpBufferCo = QByteArray(obuffer, len);
     
    2531761      if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) {
    2532762        co.UpdateInterval = ephUpdInd;
    2533         int len1 = MakeClockOrbit(&co, COTYPE_GPSORBIT, 1, obuffer,
     763        int len1 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_GPSORBIT, 1, obuffer,
    2534764            sizeof(obuffer));
    2535765        co.UpdateInterval = clkUpdInd;
     
    2543773                  co.NumberOfSat[CLOCKORBIT_SATSBAS]    > 0 ||
    2544774                  co.NumberOfSat[CLOCKORBIT_SATBDS]     > 0   ) ? 1 : 0;
    2545       int len2 = MakeClockOrbit(&co, COTYPE_GPSCLOCK, mmsg, obuffer,
     775      int len2 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_GPSCLOCK, mmsg, obuffer,
    2546776          sizeof(obuffer));
    2547777      if (len2 > 0) {
     
    2553783      if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) {
    2554784        co.UpdateInterval = ephUpdInd;
    2555         int len1 = MakeClockOrbit(&co, COTYPE_GLONASSORBIT, 1, obuffer,
     785        int len1 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_GLONASSORBIT, 1, obuffer,
    2556786            sizeof(obuffer));
    2557787        co.UpdateInterval = clkUpdInd;
     
    2564794                  co.NumberOfSat[CLOCKORBIT_SATSBAS]    > 0 ||
    2565795                  co.NumberOfSat[CLOCKORBIT_SATBDS]     > 0   ) ? 1 : 0;
    2566       int len2 = MakeClockOrbit(&co, COTYPE_GLONASSCLOCK, mmsg, obuffer,
     796      int len2 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_GLONASSCLOCK, mmsg, obuffer,
    2567797          sizeof(obuffer));
    2568798      if (len2 > 0) {
     
    2574804      if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) {
    2575805        co.UpdateInterval = ephUpdInd;
    2576         int len1 = MakeClockOrbit(&co, COTYPE_GALILEOORBIT, 1, obuffer,
     806        int len1 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_GALILEOORBIT, 1, obuffer,
    2577807            sizeof(obuffer));
    2578808        co.UpdateInterval = clkUpdInd;
     
    2584814                  co.NumberOfSat[CLOCKORBIT_SATSBAS]    > 0 ||
    2585815                  co.NumberOfSat[CLOCKORBIT_SATBDS]     > 0   ) ? 1 : 0;
    2586       int len2 = MakeClockOrbit(&co, COTYPE_GALILEOCLOCK, mmsg, obuffer,
     816      int len2 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_GALILEOCLOCK, mmsg, obuffer,
    2587817          sizeof(obuffer));
    2588818      if (len2 > 0) {
     
    2594824      if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) {
    2595825        co.UpdateInterval = ephUpdInd;
    2596         int len1 = MakeClockOrbit(&co, COTYPE_QZSSORBIT, 1, obuffer,
     826        int len1 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_QZSSORBIT, 1, obuffer,
    2597827            sizeof(obuffer));
    2598828        co.UpdateInterval = clkUpdInd;
     
    2603833      int mmsg = (co.NumberOfSat[CLOCKORBIT_SATSBAS]    > 0 ||
    2604834                  co.NumberOfSat[CLOCKORBIT_SATBDS]     > 0   ) ? 1 : 0;
    2605       int len2 = MakeClockOrbit(&co, COTYPE_QZSSCLOCK, mmsg, obuffer,
     835      int len2 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_QZSSCLOCK, mmsg, obuffer,
    2606836          sizeof(obuffer));
    2607837      if (len2 > 0) {
     
    2613843      if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) {
    2614844        co.UpdateInterval = ephUpdInd;
    2615         int len1 = MakeClockOrbit(&co, COTYPE_SBASORBIT, 1, obuffer,
     845        int len1 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_SBASORBIT, 1, obuffer,
    2616846            sizeof(obuffer));
    2617847        co.UpdateInterval = clkUpdInd;
     
    2621851      }
    2622852      int mmsg = (co.NumberOfSat[CLOCKORBIT_SATBDS] > 0) ? 1 : 0;
    2623       int len2 = MakeClockOrbit(&co, COTYPE_SBASCLOCK, mmsg, obuffer,
     853      int len2 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_SBASCLOCK, mmsg, obuffer,
    2624854          sizeof(obuffer));
    2625855      if (len2 > 0) {
     
    2631861      if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) {
    2632862        co.UpdateInterval = ephUpdInd;
    2633         int len1 = MakeClockOrbit(&co, COTYPE_BDSORBIT, 1, obuffer,
     863        int len1 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_BDSORBIT, 1, obuffer,
    2634864            sizeof(obuffer));
    2635865        co.UpdateInterval = clkUpdInd;
     
    2639869      }
    2640870      int mmsg = 0;
    2641       int len2 = MakeClockOrbit(&co, COTYPE_BDSCLOCK, mmsg, obuffer,
     871      int len2 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_BDSCLOCK, mmsg, obuffer,
    2642872          sizeof(obuffer));
    2643873      if (len2 > 0) {
     
    2657887      || bias.NumberOfSat[CLOCKORBIT_SATBDS] > 0) {
    2658888    char obuffer[CLOCKORBIT_BUFFERSIZE];
    2659     int len = MakeCodeBias(&bias, CBTYPE_AUTO, 0, obuffer, sizeof(obuffer));
     889    int len = _ssrCorr->MakeCodeBias(&bias, _ssrCorr->CBTYPE_AUTO, 0, obuffer, sizeof(obuffer));
    2660890    if (len > 0) {
    2661891      hlpBufferBias = QByteArray(obuffer, len);
     
    2673903      || phasebias.NumberOfSat[CLOCKORBIT_SATBDS] > 0) {
    2674904    char obuffer[CLOCKORBIT_BUFFERSIZE];
    2675     int len = MakePhaseBias(&phasebias, PBTYPE_AUTO, 0, obuffer,
     905    int len = _ssrCorr->MakePhaseBias(&phasebias, _ssrCorr->PBTYPE_AUTO, 0, obuffer,
    2676906        sizeof(obuffer));
    2677907    if (len > 0) {
     
    2685915  if (vtec.NumLayers > 0) {
    2686916    char obuffer[CLOCKORBIT_BUFFERSIZE];
    2687     int len = MakeVTEC(&vtec, 0, obuffer, sizeof(obuffer));
     917    int len = _ssrCorr->MakeVTEC(&vtec, 0, obuffer, sizeof(obuffer));
    2688918    if (len > 0) {
    2689919      hlpBufferVtec = QByteArray(obuffer, len);
     
    2701931    double rtnUra, const ColumnVector& rtnClk, const ColumnVector& rtnVel,
    2702932    const ColumnVector& rtnCoM, const ColumnVector& rtnClkSig,
    2703     struct ClockOrbit::SatData* sd, QString& outLine) {
     933    struct SsrCorr::ClockOrbit::SatData* sd, QString& outLine) {
    2704934
    2705935  // Broadcast Position and Velocity
     
    2744974  double dClkA1 = 0.0;
    2745975  if (rtnClk(2)) {
    2746     dClkA1 = rtnClk(2) - xB(5) * t_CST::c;
     976         dClkA1 = rtnClk(2) - xB(5) * t_CST::c;
    2747977  }
    2748978  double dClkA2 = 0.0;
    2749979  if (rtnClk(3)) {
    2750     dClkA2 = rtnClk(3) - xB(6) * t_CST::c;
     980         dClkA2 = rtnClk(3) - xB(6) * t_CST::c;
    2751981  }
    2752982
Note: See TracChangeset for help on using the changeset viewer.