Changeset 6424 in ntrip


Ignore:
Timestamp:
Dec 23, 2014, 2:48:12 PM (9 years ago)
Author:
mervart
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/rinex/reqcanalyze.cpp

    r6423 r6424  
    519519void t_reqcAnalyze::preparePlotData(const t_rnxObsFile* obsFile) {
    520520
    521   QString mp1Title  = "Multipath\n";
    522   QString mp2Title  = "Multipath\n";
    523   QString snr1Title = "Signal-to-Noise Ratio\n";
    524   QString snr2Title = "Signal-to-Noise Ratio\n";
     521  QString mp1Title = "Multipath\n";
     522  QString mp2Title = "Multipath\n";
     523  QString sn1Title = "Signal-to-Noise Ratio\n";
     524  QString sn2Title = "Signal-to-Noise Ratio\n";
    525525
    526526  bncSettings settings;
    527527  QStringList signalsOpt = settings.value("reqcSkyPlotSignals").toString().split(" ", QString::SkipEmptyParts);
    528   QMap<char, QVector<QString> > signalsMap;
     528  QMap<char, QString> signalTypes1;
     529  QMap<char, QString> signalTypes2;
    529530  for (int ii = 0; ii < signalsOpt.size(); ii++) {
    530531    QStringList hlp = signalsOpt.at(ii).split(QRegExp("[:&]"), QString::SkipEmptyParts);
    531532    if (hlp.size() > 1 && hlp[0].length() == 1) {
    532       for (int jj = 1; jj < hlp.size(); jj++) {
    533         signalsMap[hlp[0].toAscii().constData()[0]] << hlp[jj];
    534         if      (jj == 1) {
    535           mp1Title  += hlp[0] + ":" + hlp[jj] + " ";
    536           snr1Title += hlp[0] + ":" + hlp[jj] + " ";
    537         }
    538         else if (jj == 2) {
    539           mp2Title  += hlp[0] + ":" + hlp[jj] + " ";
    540           snr2Title += hlp[0] + ":" + hlp[jj] + " ";
    541         }
    542       }
    543     }
    544   }
    545 
    546 
    547   bool plotGPS  = false;
    548   bool plotGlo  = false;
    549   bool plotGal  = false;
    550   bool plotQZSS = false;
    551   bool plotSBAS = false;
    552   bool plotBDS  = false;
    553   char freq1 = '1';
    554   char freq2 = '2';
    555 
    556   QString reqSkyPlotSystems = "ALL";
    557   if      (reqSkyPlotSystems == "GPS") {
    558     plotGPS = true;
    559   }
    560   else if (reqSkyPlotSystems == "GLONASS") {
    561     plotGlo = true;
    562   }
    563   else if (reqSkyPlotSystems == "Galileo") {
    564     plotGal = true;
    565     freq2 = '5';
    566   }
    567   else if (reqSkyPlotSystems == "QZSS") {
    568     plotQZSS = true;
    569   }
    570   else if (reqSkyPlotSystems == "SBAS") {
    571     plotSBAS = true;
    572     freq2 = '5';
    573   }
    574   else if (reqSkyPlotSystems == "BDS") {
    575     plotBDS = true;
    576     freq2 = '7';
    577   }
    578   else if (reqSkyPlotSystems == "ALL") {
    579     plotGPS = true;
    580     plotGlo = true;
    581     plotGal = true;
    582     plotQZSS = true;
    583     plotSBAS = true;
    584     plotBDS = true;
    585   }
    586   else {
    587           return;
    588   }
     533      char system = hlp[0].toAscii().constData()[0];   
     534      signalTypes1[system] = hlp[1];
     535      mp1Title += hlp[0] + ":" + hlp[1] + " ";
     536      sn1Title += hlp[0] + ":" + hlp[1] + " ";
     537      if (hlp.size() > 2) {
     538        signalTypes2[system] = hlp[2];
     539        mp2Title += hlp[0] + ":" + hlp[2] + " ";
     540        sn2Title += hlp[0] + ":" + hlp[2] + " ";
     541      }
     542    }
     543  }
     544
    589545  QVector<t_polarPoint*>* dataMP1  = new QVector<t_polarPoint*>;
    590546  QVector<t_polarPoint*>* dataMP2  = new QVector<t_polarPoint*>;
     
    601557      const t_prn&   prn   = it.key();
    602558      const t_qcSat& qcSat = it.value();
    603       if ( (prn.system() == 'G' && plotGPS) ||
    604            (prn.system() == 'R' && plotGlo) ||
    605            (prn.system() == 'E' && plotGal) ||
    606            (prn.system() == 'J' && plotQZSS) ||
    607            (prn.system() == 'S' && plotSBAS) ||
    608            (prn.system() == 'C' && plotBDS) ) {
    609 
    610         if (qcSat._eleSet) {
    611           QString frqType1;
    612           QString frqType2;
    613           for (int iFrq = 0; iFrq < qcSat._qcFrq.size(); iFrq++) {
    614             const t_qcFrq& qcFrq = qcSat._qcFrq[iFrq];
    615             if (qcFrq._rnxType2ch[0] == freq1 && frqType1.isEmpty()) {
    616               frqType1 = qcFrq._rnxType2ch;
     559      if (qcSat._eleSet) {
     560
     561        QString frqType[2];
     562
     563        for (int iFrq = 0; iFrq < qcSat._qcFrq.size(); iFrq++) {
     564          const t_qcFrq& qcFrq = qcSat._qcFrq[iFrq];
     565
     566          for (int ii = 0; ii < 2; ii++) {
     567            const QMap<char, QString>& signalTypes = (ii == 0 ? signalTypes1 : signalTypes2);
     568            if (frqType[ii].isEmpty()) {
     569              QMapIterator<char, QString> it(signalTypes);
     570              while (it.hasNext()) {
     571                it.next();
     572                if (it.key() == prn.system()) {
     573                  if (it.value() == qcFrq._rnxType2ch || it.value() == qcFrq._rnxType2ch.left(1)) {
     574                    frqType[ii] = qcFrq._rnxType2ch;
     575                    break;
     576                  }
     577                }
     578              }
    617579            }
    618             if (qcFrq._rnxType2ch[0] == freq2 && frqType2.isEmpty()) {
    619               frqType2 = qcFrq._rnxType2ch;
    620             }
    621             if      (qcFrq._rnxType2ch == frqType1) {
    622               (*dataSNR1) << (new t_polarPoint(qcSat._azDeg, 90.0 - qcSat._eleDeg, qcFrq._SNR));
    623               (*dataMP1)  << (new t_polarPoint(qcSat._azDeg, 90.0 - qcSat._eleDeg, qcFrq._stdMP));
    624             }
    625             else if (qcFrq._rnxType2ch == frqType2) {
    626               (*dataSNR2) << (new t_polarPoint(qcSat._azDeg, 90.0 - qcSat._eleDeg, qcFrq._SNR));
    627               (*dataMP2)  << (new t_polarPoint(qcSat._azDeg, 90.0 - qcSat._eleDeg, qcFrq._stdMP));
    628             }
     580          }
     581          if      (qcFrq._rnxType2ch == frqType[0]) {
     582            (*dataSNR1) << (new t_polarPoint(qcSat._azDeg, 90.0 - qcSat._eleDeg, qcFrq._SNR));
     583            (*dataMP1)  << (new t_polarPoint(qcSat._azDeg, 90.0 - qcSat._eleDeg, qcFrq._stdMP));
     584          }
     585          else if (qcFrq._rnxType2ch == frqType[1]) {
     586            (*dataSNR2) << (new t_polarPoint(qcSat._azDeg, 90.0 - qcSat._eleDeg, qcFrq._SNR));
     587            (*dataMP2)  << (new t_polarPoint(qcSat._azDeg, 90.0 - qcSat._eleDeg, qcFrq._stdMP));
    629588          }
    630589        }
     
    639598    QByteArray title = fileInfo.fileName().toAscii();
    640599    emit dspSkyPlot(obsFile->fileName(), mp1Title,  dataMP1,  mp2Title,  dataMP2,  "Meters",  2.0);
    641     emit dspSkyPlot(obsFile->fileName(), snr1Title, dataSNR1, snr2Title, dataSNR2, "dbHz",   54.0);
     600    emit dspSkyPlot(obsFile->fileName(), sn1Title, dataSNR1, sn2Title, dataSNR2, "dbHz",   54.0);
    642601    emit dspAvailPlot(obsFile->fileName(), title);
    643602  }
Note: See TracChangeset for help on using the changeset viewer.