Changeset 6850 in ntrip for trunk/BNC


Ignore:
Timestamp:
May 22, 2015, 5:32:41 PM (9 years ago)
Author:
stuerze
Message:

extension of the rtnetuploadcaster interface regarding RTCM SSR II messages (phase biases) for GPS; GLONASS, Galileo, QZSS, SBAS and BDS

Location:
trunk/BNC/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp

    r6812 r6850  
    346346    satPhaseBias._time       = _lastTime;
    347347    satPhaseBias._updateInt  = _phaseBias.UpdateInterval;
     348    satPhaseBias._dispersiveBiasConsitencyIndicator
     349                             = _phaseBias.DispersiveBiasConsistencyIndicator;
     350    satPhaseBias._MWConsistencyIndicator
     351                             = _phaseBias.MWConsistencyIndicator;
    348352    satPhaseBias._yawDeg     = _phaseBias.Sat[ii].YawAngle * 180.0 / M_PI;
    349353    satPhaseBias._yawDegRate = _phaseBias.Sat[ii].YawRate * 180.0 / M_PI;
  • trunk/BNC/src/satObs.cpp

    r6589 r6850  
    217217      *out << "> PHASE_BIAS " << epoTime.datestr(' ') << ' ' << epoTime.timestr(1,' ') << " "
    218218           << satPhaseBias._updateInt <<  " "
     219           << satPhaseBias._dispersiveBiasConsitencyIndicator <<  " "
     220           << satPhaseBias._MWConsistencyIndicator <<  " "
    219221           << biasList.size() << ' ' << satPhaseBias._staID << endl;
    220222    }
  • trunk/BNC/src/satObs.h

    r6812 r6850  
    149149  t_satPhaseBias() {
    150150    _updateInt  = 0;
     151    _dispersiveBiasConsitencyIndicator = 0;
     152    _MWConsistencyIndicator = 0;
    151153    _yawDeg     = 0.0;
    152154    _yawDegRate = 0.0;
     
    158160  bncTime                     _time;
    159161  unsigned int                _updateInt;
     162  unsigned int                _dispersiveBiasConsitencyIndicator;
     163  unsigned int                _MWConsistencyIndicator;
    160164  double                      _yawDeg;
    161165  double                      _yawDegRate;
  • trunk/BNC/src/upload/bncrtnetuploadcaster.cpp

    r6846 r6850  
    294294  co.EpochTime[CLOCKORBIT_SATSBAS] = static_cast<int>(epoTime.gpssec());
    295295  co.EpochTime[CLOCKORBIT_SATBDS] = static_cast<int>(epoTime.bdssec());
    296 
    297296  co.Supplied[COBOFS_CLOCK] = 1;
    298297  co.Supplied[COBOFS_ORBIT] = 1;
    299   co.SatRefDatum       = DATUM_ITRF;
    300   co.SSRIOD            = _IOD;
    301   co.SSRProviderID     = _PID; // 256 .. BKG,  257 ... EUREF
    302   co.SSRSolutionID     = _SID;
     298  co.SatRefDatum   = DATUM_ITRF;
     299  co.SSRIOD        = _IOD;
     300  co.SSRProviderID = _PID; // 256 .. BKG,  257 ... EUREF
     301  co.SSRSolutionID = _SID;
    303302
    304303  struct CodeBias bias;
     
    310309  bias.EpochTime[CLOCKORBIT_SATSBAS]    = co.EpochTime[CLOCKORBIT_SATSBAS];
    311310  bias.EpochTime[CLOCKORBIT_SATBDS]     = co.EpochTime[CLOCKORBIT_SATBDS];
     311  bias.SSRIOD        = _IOD;
     312  bias.SSRProviderID = _PID;
     313  bias.SSRSolutionID = _SID;
     314
     315  struct PhaseBias phasebias;
     316  memset(&phasebias, 0, sizeof(phasebias));
     317  phasebias.EpochTime[CLOCKORBIT_SATGPS]     = co.EpochTime[CLOCKORBIT_SATGPS];
     318  phasebias.EpochTime[CLOCKORBIT_SATGLONASS] = co.EpochTime[CLOCKORBIT_SATGLONASS];
     319  phasebias.EpochTime[CLOCKORBIT_SATGALILEO] = co.EpochTime[CLOCKORBIT_SATGALILEO];
     320  phasebias.EpochTime[CLOCKORBIT_SATQZSS]    = co.EpochTime[CLOCKORBIT_SATQZSS];
     321  phasebias.EpochTime[CLOCKORBIT_SATSBAS]    = co.EpochTime[CLOCKORBIT_SATSBAS];
     322  phasebias.EpochTime[CLOCKORBIT_SATBDS]     = co.EpochTime[CLOCKORBIT_SATBDS];
     323  phasebias.SSRIOD        = _IOD;
     324  phasebias.SSRProviderID = _PID;
     325  phasebias.SSRSolutionID = _SID;
    312326
    313327  // Default Update Interval
     
    328342  co.UpdateInterval   = clkUpdInd;
    329343  bias.UpdateInterval = clkUpdInd;
     344  phasebias.UpdateInterval = clkUpdInd;
    330345
    331346  for (int ii = 1; ii < lines.size(); ii++) {
     
    380395      QMap<QString, double> codeBiases;
    381396
     397      QVector<phaseBiasSignal*> pbSig(0);
     398
    382399      while (true) {
    383400        QString key;
    384401        int     numVal = 0;
    385         in >> key >> numVal;
     402        in >> key;
    386403        if (in.status() != QTextStream::Ok) {
    387404          break;
    388405        }
    389406        if       (key == "APC") {
     407          in >> numVal;
    390408          rtnAPC.ReSize(3);
    391           in >> rtnAPC[0] >> rtnAPC[1] >> rtnAPC[2];
     409          for (int ii = 0; ii < numVal; ii++) {
     410            in >> rtnAPC[ii];
     411          }
    392412        }
    393413        else if (key == "Clk") {
    394           in >> rtnClk;
     414          in >> numVal;
     415          if (numVal ==1)
     416            in >> rtnClk;
    395417        }
    396418        else if (key == "Vel") {
    397419          rtnVel.ReSize(3);
    398           in >> rtnVel[0] >> rtnVel[1] >> rtnVel[2];
     420          in >> numVal;
     421          for (int ii = 0; ii < numVal; ii++) {
     422            in >> rtnVel[ii];
     423          }
    399424        }
    400425        else if (key == "CoM") {
    401426          rtnCoM.ReSize(3);
    402           in >> rtnCoM[0] >> rtnCoM[1] >> rtnCoM[2];
     427          in >> numVal;
     428          for (int ii = 0; ii < numVal; ii++) {
     429            in >> rtnCoM[ii];
     430          }
    403431        }
    404432        else if (key == "CodeBias") {
     433          in >> numVal;
    405434          for (int ii = 0; ii < numVal; ii++) {
    406435            QString type;
     
    410439          }
    411440        }
     441        else if (key == "PhaseBias") {
     442          phaseBiasesSat pbSat;
     443          in >> pbSat.yA >> pbSat.yR >> pbSat.dispInd >> pbSat.MWInd;
     444          in >> numVal;
     445          pbSig.resize(numVal);
     446          for (int ii = 0; ii < numVal; ii++) {
     447            in >> pbSig[ii]->type >> pbSig[ii]->bias >> pbSig[ii]->intInd
     448                >> pbSig[ii]->WLInd >> pbSig[ii]->discCount;
     449          }
     450        }
    412451        else {
    413452          for (int ii = 0; ii < numVal; ii++) {
     
    417456        }
    418457      }
     458
    419459      struct ClockOrbit::SatData* sd = 0;
    420460      if      (prn[0] == 'G') {
     
    455495      }
    456496
     497      // Code Biases
     498      // -----------
    457499      struct CodeBias::BiasSat* biasSat = 0;
    458500      if      (prn[0] == 'G') {
     
    488530      }
    489531
    490       // Code Biases
    491       // -----------
    492532      if (biasSat) {
    493533        biasSat->ID = prn.mid(1).toInt();
     
    860900        }
    861901      }
     902      // Phase Biases
     903      // ------------
     904      struct PhaseBias::PhaseBiasSat* phasebiasSat = 0;
     905      if      (prn[0] == 'G') {
     906        phasebiasSat = phasebias.Sat + phasebias.NumberOfSat[CLOCKORBIT_SATGPS];
     907        ++phasebias.NumberOfSat[CLOCKORBIT_SATGPS];
     908      }
     909      else if (prn[0] == 'R') {
     910        phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS
     911            + phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS];
     912        ++phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS];
     913      }
     914      else if (prn[0] == 'E') {
     915        phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
     916            + phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO];
     917        ++phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO];
     918      }
     919      else if (prn[0] == 'J') {
     920        phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO
     921            + phasebias.NumberOfSat[CLOCKORBIT_SATQZSS];
     922        ++phasebias.NumberOfSat[CLOCKORBIT_SATQZSS];
     923      }
     924      else if (prn[0] == 'S') {
     925        phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO
     926            + CLOCKORBIT_NUMQZSS
     927            + phasebias.NumberOfSat[CLOCKORBIT_SATSBAS];
     928        ++phasebias.NumberOfSat[CLOCKORBIT_SATSBAS];
     929      }
     930      else if (prn[0] == 'C') {
     931        phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO
     932            + CLOCKORBIT_NUMQZSS + CLOCKORBIT_NUMSBAS
     933            + phasebias.NumberOfSat[CLOCKORBIT_SATBDS];
     934        ++phasebias.NumberOfSat[CLOCKORBIT_SATBDS];
     935      }
     936
     937      if (phasebiasSat) {
     938        phasebiasSat->ID = prn.mid(1).toInt();
     939        phasebiasSat->NumberOfPhaseBiases = 0;
     940        if      (prn[0] == 'G') {
     941          QMutableVectorIterator<phaseBiasSignal*> it(pbSig);
     942          while (it.hasNext()) {
     943            phaseBiasSignal *pbsig = it.next();
     944            if      (pbsig->type == "1C") {
     945              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     946              phasebiasSat->NumberOfPhaseBiases += 1;
     947              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_CA;
     948              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     949              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     950              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     951              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     952            }
     953            else if (pbsig->type == "1P") {
     954              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     955              phasebiasSat->NumberOfPhaseBiases += 1;
     956              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_P;
     957              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     958              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     959              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     960              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     961            }
     962            else if (pbsig->type == "1W") {
     963              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     964              phasebiasSat->NumberOfPhaseBiases += 1;
     965              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_Z;
     966              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     967              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     968              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     969              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     970            }
     971            else if (pbsig->type == "2C") {
     972              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     973              phasebiasSat->NumberOfPhaseBiases += 1;
     974              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CA;
     975              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     976              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     977              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     978              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     979            }
     980            else if (pbsig->type == "2D") {
     981              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     982              phasebiasSat->NumberOfPhaseBiases += 1;
     983              phasebiasSat->Biases[ii].Type = CODETYPEGPS_SEMI_CODELESS;
     984              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     985              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     986              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     987              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     988            }
     989            else if (pbsig->type == "2S") {
     990              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     991              phasebiasSat->NumberOfPhaseBiases += 1;
     992              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CM;
     993              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     994              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     995              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     996              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     997            }
     998            else if (pbsig->type == "2L") {
     999              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1000              phasebiasSat->NumberOfPhaseBiases += 1;
     1001              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CL;
     1002              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1003              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1004              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1005              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1006            }
     1007            else if (pbsig->type == "2X") {
     1008              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1009              phasebiasSat->NumberOfPhaseBiases += 1;
     1010              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CML;
     1011              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1012              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1013              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1014              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1015            }
     1016            else if (pbsig->type == "2P") {
     1017              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1018              phasebiasSat->NumberOfPhaseBiases += 1;
     1019              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_P;
     1020              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1021              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1022              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1023              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1024            }
     1025            else if (pbsig->type == "2W") {
     1026              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1027              phasebiasSat->NumberOfPhaseBiases += 1;
     1028              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_Z;
     1029              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1030              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1031              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1032              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1033            }
     1034            else if (pbsig->type == "5I") {
     1035              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1036              phasebiasSat->NumberOfPhaseBiases += 1;
     1037              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_I;
     1038              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1039              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1040              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1041              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1042            }
     1043            else if (pbsig->type == "5Q") {
     1044              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1045              phasebiasSat->NumberOfPhaseBiases += 1;
     1046              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_Q;
     1047              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1048              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1049              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1050              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1051            }
     1052            else if (pbsig->type == "5X") {
     1053              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1054              phasebiasSat->NumberOfPhaseBiases += 1;
     1055              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_IQ;
     1056              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1057              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1058              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1059              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1060            }
     1061          }
     1062        }
     1063        if      (prn[0] == 'R') {
     1064          QMutableVectorIterator<phaseBiasSignal*> it(pbSig);
     1065          while (it.hasNext()) {
     1066            phaseBiasSignal *pbsig = it.next();
     1067            if      (pbsig->type == "1C") {
     1068              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1069              phasebiasSat->NumberOfPhaseBiases += 1;
     1070              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L1_CA;
     1071              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1072              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1073              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1074              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1075            }
     1076            else if (pbsig->type == "1P") {
     1077              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1078              phasebiasSat->NumberOfPhaseBiases += 1;
     1079              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L1_P;
     1080              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1081              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1082              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1083              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1084            }
     1085            else if (pbsig->type == "2C") {
     1086              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1087              phasebiasSat->NumberOfPhaseBiases += 1;
     1088              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L2_CA;
     1089              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1090              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1091              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1092              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1093            }
     1094            else if (pbsig->type == "2P") {
     1095              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1096              phasebiasSat->NumberOfPhaseBiases += 1;
     1097              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L2_P;
     1098              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1099              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1100              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1101              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1102            }
     1103          }
     1104        }
     1105        if      (prn[0] == 'E') {
     1106          QMutableVectorIterator<phaseBiasSignal*> it(pbSig);
     1107          while (it.hasNext()) {
     1108            phaseBiasSignal *pbsig = it.next();
     1109            if      (pbsig->type == "1A") {
     1110              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1111              phasebiasSat->NumberOfPhaseBiases += 1;
     1112              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E1_A;
     1113              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1114              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1115              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1116              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1117            }
     1118            else if (pbsig->type == "1B") {
     1119              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1120              phasebiasSat->NumberOfPhaseBiases += 1;
     1121              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E1_B;
     1122              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1123              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1124              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1125              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1126            }
     1127            else if (pbsig->type == "1C") {
     1128              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1129              phasebiasSat->NumberOfPhaseBiases += 1;
     1130              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E1_C;
     1131              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1132              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1133              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1134              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1135            }
     1136            else if (pbsig->type == "5I") {
     1137              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1138              phasebiasSat->NumberOfPhaseBiases += 1;
     1139              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_I;
     1140              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1141              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1142              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1143              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1144            }
     1145            else if (pbsig->type == "5Q") {
     1146              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1147              phasebiasSat->NumberOfPhaseBiases += 1;
     1148              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_Q;
     1149              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1150              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1151              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1152              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1153            }
     1154            else if (pbsig->type == "7I") {
     1155              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1156              phasebiasSat->NumberOfPhaseBiases += 1;
     1157              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_I;
     1158              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1159              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1160              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1161              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1162            }
     1163            else if (pbsig->type == "7Q") {
     1164              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1165              phasebiasSat->NumberOfPhaseBiases += 1;
     1166              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_Q;
     1167              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1168              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1169              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1170              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1171            }
     1172            else if (pbsig->type == "8I") {
     1173              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1174              phasebiasSat->NumberOfPhaseBiases += 1;
     1175              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5_I;
     1176              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1177              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1178              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1179              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1180            }
     1181            else if (pbsig->type == "8Q") {
     1182              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1183              phasebiasSat->NumberOfPhaseBiases += 1;
     1184              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5_Q;
     1185              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1186              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1187              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1188              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1189            }
     1190            else if (pbsig->type == "6A") {
     1191              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1192              phasebiasSat->NumberOfPhaseBiases += 1;
     1193              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E6_A;
     1194              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1195              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1196              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1197              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1198            }
     1199            else if (pbsig->type == "6B") {
     1200              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1201              phasebiasSat->NumberOfPhaseBiases += 1;
     1202              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E6_B;
     1203              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1204              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1205              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1206              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1207            }
     1208            else if (pbsig->type == "6C") {
     1209              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1210              phasebiasSat->NumberOfPhaseBiases += 1;
     1211              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E6_C;
     1212              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1213              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1214              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1215              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1216            }
     1217          }
     1218        }
     1219        if      (prn[0] == 'J') {
     1220          QMutableVectorIterator<phaseBiasSignal*> it(pbSig);
     1221          while (it.hasNext()) {
     1222            phaseBiasSignal *pbsig = it.next();
     1223            if      (pbsig->type == "1C") {
     1224              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1225              phasebiasSat->NumberOfPhaseBiases += 1;
     1226              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1_CA;
     1227              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1228              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1229              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1230              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1231            }
     1232            else if (pbsig->type == "1S") {
     1233              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1234              phasebiasSat->NumberOfPhaseBiases += 1;
     1235              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1C_D;
     1236              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1237              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1238              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1239              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1240            }
     1241            else if (pbsig->type == "1L") {
     1242              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1243              phasebiasSat->NumberOfPhaseBiases += 1;
     1244              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1C_P;
     1245              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1246              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1247              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1248              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1249            }
     1250            else if (pbsig->type == "1X") {
     1251              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1252              phasebiasSat->NumberOfPhaseBiases += 1;
     1253              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1C_DP;
     1254              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1255              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1256              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1257              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1258            }
     1259            else if (pbsig->type == "2S") {
     1260              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1261              phasebiasSat->NumberOfPhaseBiases += 1;
     1262              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2_CM;
     1263              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1264              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1265              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1266              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1267            }
     1268            else if (pbsig->type == "2L") {
     1269              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1270              phasebiasSat->NumberOfPhaseBiases += 1;
     1271              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2_CL;
     1272              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1273              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1274              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1275              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1276            }
     1277            else if (pbsig->type == "2X") {
     1278              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1279              phasebiasSat->NumberOfPhaseBiases += 1;
     1280              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2_CML;
     1281              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1282              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1283              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1284              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1285            }
     1286            else if (pbsig->type == "5I") {
     1287              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1288              phasebiasSat->NumberOfPhaseBiases += 1;
     1289              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_I;
     1290              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1291              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1292              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1293              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1294            }
     1295            else if (pbsig->type == "5Q") {
     1296              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1297              phasebiasSat->NumberOfPhaseBiases += 1;
     1298              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_Q;
     1299              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1300              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1301              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1302              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1303            }
     1304            else if (pbsig->type == "5X") {
     1305              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1306              phasebiasSat->NumberOfPhaseBiases += 1;
     1307              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_IQ;
     1308              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1309              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1310              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1311              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1312            }
     1313            else if (pbsig->type == "6S") {
     1314              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1315              phasebiasSat->NumberOfPhaseBiases += 1;
     1316              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_LEX_S;
     1317              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1318              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1319              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1320              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1321            }
     1322            else if (pbsig->type == "6L") {
     1323              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1324              phasebiasSat->NumberOfPhaseBiases += 1;
     1325              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_LEX_L;
     1326              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1327              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1328              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1329              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1330            }
     1331            else if (pbsig->type == "6X") {
     1332              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1333              phasebiasSat->NumberOfPhaseBiases += 1;
     1334              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_LEX_SL;
     1335              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1336              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1337              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1338              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1339            }
     1340          }
     1341        }
     1342        if      (prn[0] == 'S') {
     1343          QMutableVectorIterator<phaseBiasSignal*> it(pbSig);
     1344          while (it.hasNext()) {
     1345            phaseBiasSignal *pbsig = it.next();
     1346            if      (pbsig->type == "1C") {
     1347              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1348              phasebiasSat->NumberOfPhaseBiases += 1;
     1349              phasebiasSat->Biases[ii].Type = CODETYPE_SBAS_L1_CA;
     1350              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1351              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1352              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1353              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1354            }
     1355            else if (pbsig->type == "5I") {
     1356              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1357              phasebiasSat->NumberOfPhaseBiases += 1;
     1358              phasebiasSat->Biases[ii].Type = CODETYPE_SBAS_L5_I;
     1359              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1360              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1361              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1362              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1363            }
     1364            else if (pbsig->type == "5Q") {
     1365              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1366              phasebiasSat->NumberOfPhaseBiases += 1;
     1367              phasebiasSat->Biases[ii].Type = CODETYPE_SBAS_L5_Q;
     1368              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1369              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1370              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1371              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1372            }
     1373            else if (pbsig->type == "5X") {
     1374              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1375              phasebiasSat->NumberOfPhaseBiases += 1;
     1376              phasebiasSat->Biases[ii].Type = CODETYPE_SBAS_L5_IQ;
     1377              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1378              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1379              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1380              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1381            }
     1382          }
     1383        }
     1384        if      (prn[0] == 'C') {
     1385          QMutableVectorIterator<phaseBiasSignal*> it(pbSig);
     1386          while (it.hasNext()) {
     1387            phaseBiasSignal *pbsig = it.next();
     1388            if      (pbsig->type == "2I") {
     1389              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1390              phasebiasSat->NumberOfPhaseBiases += 1;
     1391              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1_I;
     1392              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1393              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1394              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1395              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1396            }
     1397            else if (pbsig->type == "2Q") {
     1398              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1399              phasebiasSat->NumberOfPhaseBiases += 1;
     1400              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1_Q;
     1401              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1402              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1403              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1404              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1405            }
     1406            else if (pbsig->type == "2X") {
     1407              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1408              phasebiasSat->NumberOfPhaseBiases += 1;
     1409              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1_IQ;
     1410              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1411              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1412              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1413              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1414            }
     1415            else if (pbsig->type == "6I") {
     1416              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1417              phasebiasSat->NumberOfPhaseBiases += 1;
     1418              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2_Q;
     1419              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1420              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1421              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1422              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1423            }
     1424            else if (pbsig->type == "6Q") {
     1425              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1426              phasebiasSat->NumberOfPhaseBiases += 1;
     1427              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2_I;
     1428              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1429              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1430              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1431              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1432            }
     1433            else if (pbsig->type == "6X") {
     1434              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1435              phasebiasSat->NumberOfPhaseBiases += 1;
     1436              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2_IQ;
     1437              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1438              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1439              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1440              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1441            }
     1442            else if (pbsig->type == "7I") {
     1443              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1444              phasebiasSat->NumberOfPhaseBiases += 1;
     1445              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B3_Q;
     1446              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1447              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1448              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1449              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1450            }
     1451            else if (pbsig->type == "7Q") {
     1452              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1453              phasebiasSat->NumberOfPhaseBiases += 1;
     1454              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B3_I;
     1455              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1456              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1457              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1458              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1459            }
     1460            else if (pbsig->type == "7X") {
     1461              int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     1462              phasebiasSat->NumberOfPhaseBiases += 1;
     1463              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B3_IQ;
     1464              phasebiasSat->Biases[ii].Bias = pbsig->bias;
     1465              phasebiasSat->Biases[ii].SignalIntegerIndicator          = pbsig->intInd;
     1466              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbsig->WLInd;
     1467              phasebiasSat->Biases[ii].SignalDiscontinuityCounter      = pbsig->discCount;
     1468            }
     1469          }
     1470        }
     1471      }
    8621472    }
    8631473  }
     1474
    8641475
    8651476  QByteArray hlpBufferCo;
     
    9821593  }
    9831594
    984   // Biases
    985   // ------
     1595  // Code Biases
     1596  // -----------
    9861597  QByteArray hlpBufferBias;
    9871598  if (bias.NumberOfSat[CLOCKORBIT_SATGPS] > 0 ||
     
    9981609  }
    9991610
    1000   _outBuffer += hlpBufferCo + hlpBufferBias;
     1611  // Phase Biases
     1612  // ------------
     1613  QByteArray hlpBufferPhaseBias;
     1614  if (phasebias.NumberOfSat[CLOCKORBIT_SATGPS] > 0 ||
     1615      phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0 ||
     1616      phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO] > 0 ||
     1617      phasebias.NumberOfSat[CLOCKORBIT_SATQZSS] > 0 ||
     1618      phasebias.NumberOfSat[CLOCKORBIT_SATSBAS] > 0 ||
     1619      phasebias.NumberOfSat[CLOCKORBIT_SATBDS] > 0 ) {
     1620    char obuffer[CLOCKORBIT_BUFFERSIZE];
     1621    int len = MakePhaseBias(&phasebias, PBTYPE_AUTO, 0, obuffer, sizeof(obuffer));
     1622    if (len > 0) {
     1623      hlpBufferPhaseBias = QByteArray(obuffer, len);
     1624    }
     1625  }
     1626
     1627  // VTEC
     1628  // ----
     1629  QByteArray hlpBufferVtec;
     1630
     1631  _outBuffer += hlpBufferCo + hlpBufferBias + hlpBufferPhaseBias;
    10011632}
    10021633
  • trunk/BNC/src/upload/bncrtnetuploadcaster.h

    r6557 r6850  
    7171};
    7272
     73struct phaseBiasesSat {
     74  double yA;
     75  double yR;
     76  unsigned int dispInd;
     77  unsigned int MWInd;
     78};
     79
     80struct phaseBiasSignal {
     81  QString type;
     82  double bias;
     83  unsigned int intInd;
     84  unsigned int WLInd;
     85  unsigned int discCount;
     86};
     87
    7388#endif
Note: See TracChangeset for help on using the changeset viewer.