Changeset 6844 in ntrip for trunk/BNC


Ignore:
Timestamp:
May 22, 2015, 9:34:56 AM (9 years ago)
Author:
stuerze
Message:

extension of the rtnetuploadcaster interface regarding RTCM SSR I messages (clock, orbit, code biases) for Galileo, QZSS, SBAS and BDS

File:
1 edited

Legend:

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

    r6812 r6844  
    415415      }
    416416      else if (prn[0] == 'R') {
    417         sd = co.Sat + CLOCKORBIT_NUMGPS + co.NumberOfSat[CLOCKORBIT_SATGLONASS];
     417        sd = co.Sat + CLOCKORBIT_NUMGPS
     418            + co.NumberOfSat[CLOCKORBIT_SATGLONASS];
    418419        ++co.NumberOfSat[CLOCKORBIT_SATGLONASS];
     420      }
     421      else if (prn[0] == 'E') {
     422        sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
     423            + co.NumberOfSat[CLOCKORBIT_SATGALILEO];
     424        ++co.NumberOfSat[CLOCKORBIT_SATGALILEO];
     425      }
     426      else if (prn[0] == 'J') {
     427        sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO
     428            + co.NumberOfSat[CLOCKORBIT_SATQZSS];
     429        ++co.NumberOfSat[CLOCKORBIT_SATQZSS];
     430      }
     431      else if (prn[0] == 'S') {
     432        sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO
     433            + CLOCKORBIT_NUMQZSS
     434            + co.NumberOfSat[CLOCKORBIT_SATSBAS];
     435        ++co.NumberOfSat[CLOCKORBIT_SATSBAS];
     436      }
     437      else if (prn[0] == 'C') {
     438        sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO
     439            + CLOCKORBIT_NUMQZSS + CLOCKORBIT_NUMSBAS
     440            + co.NumberOfSat[CLOCKORBIT_SATBDS];
     441        ++co.NumberOfSat[CLOCKORBIT_SATBDS];
    419442      }
    420443      if (sd) {
     
    430453      }
    431454      else if (prn[0] == 'R') {
    432         biasSat = bias.Sat + CLOCKORBIT_NUMGPS + bias.NumberOfSat[CLOCKORBIT_SATGLONASS];
     455        biasSat = bias.Sat + CLOCKORBIT_NUMGPS
     456            + bias.NumberOfSat[CLOCKORBIT_SATGLONASS];
    433457        ++bias.NumberOfSat[CLOCKORBIT_SATGLONASS];
     458      }
     459      else if (prn[0] == 'E') {
     460        biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
     461            + bias.NumberOfSat[CLOCKORBIT_SATGALILEO];
     462        ++bias.NumberOfSat[CLOCKORBIT_SATGALILEO];
     463      }
     464      else if (prn[0] == 'J') {
     465        biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO
     466            + bias.NumberOfSat[CLOCKORBIT_SATQZSS];
     467        ++bias.NumberOfSat[CLOCKORBIT_SATQZSS];
     468      }
     469      else if (prn[0] == 'S') {
     470        biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO
     471            + CLOCKORBIT_NUMQZSS
     472            + bias.NumberOfSat[CLOCKORBIT_SATSBAS];
     473        ++bias.NumberOfSat[CLOCKORBIT_SATSBAS];
     474      }
     475      else if (prn[0] == 'C') {
     476        biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO
     477            + CLOCKORBIT_NUMQZSS + CLOCKORBIT_NUMSBAS
     478            + bias.NumberOfSat[CLOCKORBIT_SATBDS];
     479        ++bias.NumberOfSat[CLOCKORBIT_SATBDS];
    434480      }
    435481
     
    449495              biasSat->Biases[ii].Bias = it.value();
    450496            }
    451             else if (it.key() == "1C") {
    452               int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
    453               biasSat->NumberOfCodeBiases += 1;
    454               biasSat->Biases[ii].Type = CODETYPEGPS_L1_CA;
    455               biasSat->Biases[ii].Bias = it.value();
    456             }
    457497            else if (it.key() == "1P") {
    458498              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     
    519559              biasSat->NumberOfCodeBiases += 1;
    520560              biasSat->Biases[ii].Type = CODETYPEGPS_L5_Q;
     561              biasSat->Biases[ii].Bias = it.value();
     562            }
     563            else if (it.key() == "5X") {
     564              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     565              biasSat->NumberOfCodeBiases += 1;
     566              biasSat->Biases[ii].Type = CODETYPEGPS_L5_IQ;
    521567              biasSat->Biases[ii].Bias = it.value();
    522568            }
     
    553599          }
    554600        }
     601        else if (prn[0] == 'E') {
     602          QMapIterator<QString, double> it(codeBiases);
     603          while (it.hasNext()) {
     604            it.next();
     605            if      (it.key() == "1A") {
     606              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     607              biasSat->NumberOfCodeBiases += 1;
     608              biasSat->Biases[ii].Type = CODETYPEGALILEO_E1_A;
     609              biasSat->Biases[ii].Bias = it.value();
     610            }
     611            else if (it.key() == "1B") {
     612              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     613              biasSat->NumberOfCodeBiases += 1;
     614              biasSat->Biases[ii].Type = CODETYPEGALILEO_E1_B;
     615              biasSat->Biases[ii].Bias = it.value();
     616            }
     617            else if (it.key() == "1C") {
     618              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     619              biasSat->NumberOfCodeBiases += 1;
     620              biasSat->Biases[ii].Type = CODETYPEGALILEO_E1_C;
     621              biasSat->Biases[ii].Bias = it.value();
     622            }
     623            else if (it.key() == "5I") {
     624              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     625              biasSat->NumberOfCodeBiases += 1;
     626              biasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_I;
     627              biasSat->Biases[ii].Bias = it.value();
     628            }
     629            else if (it.key() == "5Q") {
     630              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     631              biasSat->NumberOfCodeBiases += 1;
     632              biasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_Q;
     633              biasSat->Biases[ii].Bias = it.value();
     634            }
     635            else if (it.key() == "7I") {
     636              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     637              biasSat->NumberOfCodeBiases += 1;
     638              biasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_I;
     639              biasSat->Biases[ii].Bias = it.value();
     640            }
     641            else if (it.key() == "7Q") {
     642              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     643              biasSat->NumberOfCodeBiases += 1;
     644              biasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_Q;
     645              biasSat->Biases[ii].Bias = it.value();
     646            }
     647            else if (it.key() == "8I") {
     648              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     649              biasSat->NumberOfCodeBiases += 1;
     650              biasSat->Biases[ii].Type = CODETYPEGALILEO_E5_I;
     651              biasSat->Biases[ii].Bias = it.value();
     652            }
     653            else if (it.key() == "8Q") {
     654              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     655              biasSat->NumberOfCodeBiases += 1;
     656              biasSat->Biases[ii].Type = CODETYPEGALILEO_E5_Q;
     657              biasSat->Biases[ii].Bias = it.value();
     658            }
     659            else if (it.key() == "6A") {
     660              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     661              biasSat->NumberOfCodeBiases += 1;
     662              biasSat->Biases[ii].Type = CODETYPEGALILEO_E6_A;
     663              biasSat->Biases[ii].Bias = it.value();
     664            }
     665            else if (it.key() == "6B") {
     666              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     667              biasSat->NumberOfCodeBiases += 1;
     668              biasSat->Biases[ii].Type = CODETYPEGALILEO_E6_B;
     669              biasSat->Biases[ii].Bias = it.value();
     670            }
     671            else if (it.key() == "6C") {
     672              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     673              biasSat->NumberOfCodeBiases += 1;
     674              biasSat->Biases[ii].Type = CODETYPEGALILEO_E6_C;
     675              biasSat->Biases[ii].Bias = it.value();
     676            }
     677          }
     678        }
     679        else if (prn[0] == 'J') {
     680          QMapIterator<QString, double> it(codeBiases);
     681          while (it.hasNext()) {
     682            it.next();
     683            if      (it.key() == "1C") {
     684              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     685              biasSat->NumberOfCodeBiases += 1;
     686              biasSat->Biases[ii].Type = CODETYPEQZSS_L1_CA;
     687              biasSat->Biases[ii].Bias = it.value();
     688            }
     689            else if (it.key() == "1S") {
     690              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     691              biasSat->NumberOfCodeBiases += 1;
     692              biasSat->Biases[ii].Type = CODETYPEQZSS_L1C_D;
     693              biasSat->Biases[ii].Bias = it.value();
     694            }
     695            else if (it.key() == "1L") {
     696              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     697              biasSat->NumberOfCodeBiases += 1;
     698              biasSat->Biases[ii].Type = CODETYPEQZSS_L1C_P;
     699              biasSat->Biases[ii].Bias = it.value();
     700            }
     701            else if (it.key() == "1X") {
     702              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     703              biasSat->NumberOfCodeBiases += 1;
     704              biasSat->Biases[ii].Type = CODETYPEQZSS_L1C_DP;
     705              biasSat->Biases[ii].Bias = it.value();
     706            }
     707            else if (it.key() == "2S") {
     708              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     709              biasSat->NumberOfCodeBiases += 1;
     710              biasSat->Biases[ii].Type = CODETYPEQZSS_L2_CM;
     711              biasSat->Biases[ii].Bias = it.value();
     712            }
     713            else if (it.key() == "2L") {
     714              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     715              biasSat->NumberOfCodeBiases += 1;
     716              biasSat->Biases[ii].Type = CODETYPEQZSS_L2_CL;
     717              biasSat->Biases[ii].Bias = it.value();
     718            }
     719            else if (it.key() == "2X") {
     720              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     721              biasSat->NumberOfCodeBiases += 1;
     722              biasSat->Biases[ii].Type = CODETYPEQZSS_L2_CML;
     723              biasSat->Biases[ii].Bias = it.value();
     724            }
     725            else if (it.key() == "5I") {
     726              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     727              biasSat->NumberOfCodeBiases += 1;
     728              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_I;
     729              biasSat->Biases[ii].Bias = it.value();
     730            }
     731            else if (it.key() == "5Q") {
     732              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     733              biasSat->NumberOfCodeBiases += 1;
     734              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_Q;
     735              biasSat->Biases[ii].Bias = it.value();
     736            }
     737            else if (it.key() == "5X") {
     738              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     739              biasSat->NumberOfCodeBiases += 1;
     740              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_IQ;
     741              biasSat->Biases[ii].Bias = it.value();
     742            }
     743            else if (it.key() == "6S") {
     744              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     745              biasSat->NumberOfCodeBiases += 1;
     746              biasSat->Biases[ii].Type = CODETYPEQZSS_LEX_S;
     747              biasSat->Biases[ii].Bias = it.value();
     748            }
     749            else if (it.key() == "6L") {
     750              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     751              biasSat->NumberOfCodeBiases += 1;
     752              biasSat->Biases[ii].Type = CODETYPEQZSS_LEX_L;
     753              biasSat->Biases[ii].Bias = it.value();
     754            }
     755            else if (it.key() == "6X") {
     756              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     757              biasSat->NumberOfCodeBiases += 1;
     758              biasSat->Biases[ii].Type = CODETYPEQZSS_LEX_SL;
     759              biasSat->Biases[ii].Bias = it.value();
     760            }
     761          }
     762        }
     763        else if (prn[0] == 'S') {
     764          QMapIterator<QString, double> it(codeBiases);
     765          while (it.hasNext()) {
     766            it.next();
     767            if      (it.key() == "1C") {
     768              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     769              biasSat->NumberOfCodeBiases += 1;
     770              biasSat->Biases[ii].Type = CODETYPE_SBAS_L1_CA;
     771              biasSat->Biases[ii].Bias = it.value();
     772            }
     773            else if (it.key() == "5I") {
     774              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     775              biasSat->NumberOfCodeBiases += 1;
     776              biasSat->Biases[ii].Type = CODETYPE_SBAS_L5_I;
     777              biasSat->Biases[ii].Bias = it.value();
     778            }
     779            else if (it.key() == "5Q") {
     780              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     781              biasSat->NumberOfCodeBiases += 1;
     782              biasSat->Biases[ii].Type = CODETYPE_SBAS_L5_Q;
     783              biasSat->Biases[ii].Bias = it.value();
     784            }
     785            else if (it.key() == "5X") {
     786              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     787              biasSat->NumberOfCodeBiases += 1;
     788              biasSat->Biases[ii].Type = CODETYPE_SBAS_L5_IQ;
     789              biasSat->Biases[ii].Bias = it.value();
     790            }
     791          }
     792        }
     793        else if (prn[0] == 'C') {
     794          QMapIterator<QString, double> it(codeBiases);
     795          while (it.hasNext()) {
     796            it.next();
     797            if      (it.key() == "2I") {
     798              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     799              biasSat->NumberOfCodeBiases += 1;
     800              biasSat->Biases[ii].Type = CODETYPE_BDS_B1_I;
     801              biasSat->Biases[ii].Bias = it.value();
     802            }
     803            else if (it.key() == "2Q") {
     804              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     805              biasSat->NumberOfCodeBiases += 1;
     806              biasSat->Biases[ii].Type = CODETYPE_BDS_B1_Q;
     807              biasSat->Biases[ii].Bias = it.value();
     808            }
     809            else if (it.key() == "2X") {
     810              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     811              biasSat->NumberOfCodeBiases += 1;
     812              biasSat->Biases[ii].Type = CODETYPE_BDS_B1_IQ;
     813              biasSat->Biases[ii].Bias = it.value();
     814            }
     815            else if (it.key() == "6I") {
     816              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     817              biasSat->NumberOfCodeBiases += 1;
     818              biasSat->Biases[ii].Type = CODETYPE_BDS_B3_I;
     819              biasSat->Biases[ii].Bias = it.value();
     820            }
     821            else if (it.key() == "6Q") {
     822              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     823              biasSat->NumberOfCodeBiases += 1;
     824              biasSat->Biases[ii].Type = CODETYPE_BDS_B3_Q;
     825              biasSat->Biases[ii].Bias = it.value();
     826            }
     827            else if (it.key() == "6X") {
     828              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     829              biasSat->NumberOfCodeBiases += 1;
     830              biasSat->Biases[ii].Type = CODETYPE_BDS_B3_IQ;
     831              biasSat->Biases[ii].Bias = it.value();
     832            }
     833            else if (it.key() == "7I") {
     834              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     835              biasSat->NumberOfCodeBiases += 1;
     836              biasSat->Biases[ii].Type = CODETYPE_BDS_B2_I;
     837              biasSat->Biases[ii].Bias = it.value();
     838            }
     839            else if (it.key() == "7Q") {
     840              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     841              biasSat->NumberOfCodeBiases += 1;
     842              biasSat->Biases[ii].Type = CODETYPE_BDS_B2_Q;
     843              biasSat->Biases[ii].Bias = it.value();
     844            }
     845            else if (it.key() == "7X") {
     846              int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break;
     847              biasSat->NumberOfCodeBiases += 1;
     848              biasSat->Biases[ii].Type = CODETYPE_BDS_B2_IQ;
     849              biasSat->Biases[ii].Bias = it.value();
     850            }
     851          }
     852        }
    555853      }
    556854    }
     
    562860  // ------------------------------------
    563861  if (_samplRtcmEphCorr == 0.0) {
    564     if (co.NumberOfSat[CLOCKORBIT_SATGPS] > 0 || co.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0) {
     862    if (co.NumberOfSat[CLOCKORBIT_SATGPS] > 0 ||
     863        co.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0 ||
     864        co.NumberOfSat[CLOCKORBIT_SATGALILEO] > 0 ||
     865        co.NumberOfSat[CLOCKORBIT_SATQZSS] > 0 ||
     866        co.NumberOfSat[CLOCKORBIT_SATSBAS] > 0 ||
     867        co.NumberOfSat[CLOCKORBIT_SATBDS] > 0) {
    565868      char obuffer[CLOCKORBIT_BUFFERSIZE];
    566869      int len = MakeClockOrbit(&co, COTYPE_AUTO, 0, obuffer, sizeof(obuffer));
     
    600903        }
    601904      }
    602       int len2 = MakeClockOrbit(&co, COTYPE_GLONASSCLOCK, 0, obuffer, sizeof(obuffer));
     905      int mmsg = (co.NumberOfSat[CLOCKORBIT_SATGALILEO] > 0) ? 1 : 0;
     906      int len2 = MakeClockOrbit(&co, COTYPE_GLONASSCLOCK, mmsg, obuffer, sizeof(obuffer));
     907      if (len2 > 0) {
     908        hlpBufferCo += QByteArray(obuffer, len2);
     909      }
     910    }
     911    if (co.NumberOfSat[CLOCKORBIT_SATGALILEO] > 0) {
     912      char obuffer[CLOCKORBIT_BUFFERSIZE];
     913      if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) {
     914        co.UpdateInterval = ephUpdInd;
     915        int len1 = MakeClockOrbit(&co, COTYPE_GALILEOORBIT, 1, obuffer, sizeof(obuffer));
     916        co.UpdateInterval = clkUpdInd;
     917        if (len1 > 0) {
     918          hlpBufferCo += QByteArray(obuffer, len1);
     919        }
     920      }
     921      int mmsg = (co.NumberOfSat[CLOCKORBIT_SATQZSS] > 0) ? 1 : 0;
     922      int len2 = MakeClockOrbit(&co, COTYPE_GALILEOCLOCK, mmsg, obuffer, sizeof(obuffer));
     923      if (len2 > 0) {
     924        hlpBufferCo += QByteArray(obuffer, len2);
     925      }
     926    }
     927    if (co.NumberOfSat[CLOCKORBIT_SATQZSS] > 0) {
     928      char obuffer[CLOCKORBIT_BUFFERSIZE];
     929      if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) {
     930        co.UpdateInterval = ephUpdInd;
     931        int len1 = MakeClockOrbit(&co, COTYPE_QZSSORBIT, 1, obuffer, sizeof(obuffer));
     932        co.UpdateInterval = clkUpdInd;
     933        if (len1 > 0) {
     934          hlpBufferCo += QByteArray(obuffer, len1);
     935        }
     936      }
     937      int mmsg = (co.NumberOfSat[CLOCKORBIT_SATSBAS] > 0) ? 1 : 0;
     938      int len2 = MakeClockOrbit(&co, COTYPE_QZSSCLOCK, mmsg, obuffer, sizeof(obuffer));
     939      if (len2 > 0) {
     940        hlpBufferCo += QByteArray(obuffer, len2);
     941      }
     942    }
     943    if (co.NumberOfSat[CLOCKORBIT_SATSBAS] > 0) {
     944      char obuffer[CLOCKORBIT_BUFFERSIZE];
     945      if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) {
     946        co.UpdateInterval = ephUpdInd;
     947        int len1 = MakeClockOrbit(&co, COTYPE_SBASORBIT, 1, obuffer, sizeof(obuffer));
     948        co.UpdateInterval = clkUpdInd;
     949        if (len1 > 0) {
     950          hlpBufferCo += QByteArray(obuffer, len1);
     951        }
     952      }
     953      int mmsg = (co.NumberOfSat[CLOCKORBIT_SATBDS] > 0) ? 1 : 0;
     954      int len2 = MakeClockOrbit(&co, COTYPE_SBASCLOCK, mmsg, obuffer, sizeof(obuffer));
     955      if (len2 > 0) {
     956        hlpBufferCo += QByteArray(obuffer, len2);
     957      }
     958    }
     959    if (co.NumberOfSat[CLOCKORBIT_SATBDS] > 0) {
     960      char obuffer[CLOCKORBIT_BUFFERSIZE];
     961      if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) {
     962        co.UpdateInterval = ephUpdInd;
     963        int len1 = MakeClockOrbit(&co, COTYPE_BDSORBIT, 1, obuffer, sizeof(obuffer));
     964        co.UpdateInterval = clkUpdInd;
     965        if (len1 > 0) {
     966          hlpBufferCo += QByteArray(obuffer, len1);
     967        }
     968      }
     969      int len2 = MakeClockOrbit(&co, COTYPE_BDSCLOCK, 0, obuffer, sizeof(obuffer));
    603970      if (len2 > 0) {
    604971        hlpBufferCo += QByteArray(obuffer, len2);
     
    610977  // ------
    611978  QByteArray hlpBufferBias;
    612   if (bias.NumberOfSat[CLOCKORBIT_SATGPS] > 0 || bias.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0) {
     979  if (bias.NumberOfSat[CLOCKORBIT_SATGPS] > 0 ||
     980      bias.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0 ||
     981      bias.NumberOfSat[CLOCKORBIT_SATGALILEO] > 0 ||
     982      bias.NumberOfSat[CLOCKORBIT_SATQZSS] > 0 ||
     983      bias.NumberOfSat[CLOCKORBIT_SATSBAS] > 0 ||
     984      bias.NumberOfSat[CLOCKORBIT_SATBDS] > 0 ) {
    613985    char obuffer[CLOCKORBIT_BUFFERSIZE];
    614986    int len = MakeCodeBias(&bias, BTYPE_AUTO, 0, obuffer, sizeof(obuffer));
Note: See TracChangeset for help on using the changeset viewer.