Changeset 7980 in ntrip for trunk/BNC/src/rinex/rnxobsfile.cpp


Ignore:
Timestamp:
Jul 21, 2016, 10:31:16 AM (8 years ago)
Author:
stuerze
Message:

System and frequency specific signal priorities are added for RINEX3 to RINEX2 conversion and the default 'Signal priority' list is improved

File:
1 edited

Legend:

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

    r7894 r7980  
    13031303  }
    13041304  *stream << endl;
     1305
    13051306  for (unsigned iSat = 0; iSat < epo->rnxSat.size(); iSat++) {
    1306 
    13071307    const t_rnxSat& rnxSat = epo->rnxSat[iSat];
    13081308    char            sys    = rnxSat.prn.system();
    1309 
    13101309    for (int iTypeV2 = 0; iTypeV2 < header.nTypes(sys); iTypeV2++) {
    13111310      if (iTypeV2 > 0 && iTypeV2 % 5 == 0) {
     
    13141313      QString typeV2 = header.obsType(sys, iTypeV2);
    13151314      bool    found  = false;
    1316 
    1317       QString preferredAttrib = signalPriorities(sys);
    1318       for (int iPref = 0; iPref < preferredAttrib.length(); iPref++) {
     1315      QStringList preferredAttribList = signalPriorities(sys);
     1316      QString preferredAttrib;
     1317      for (int ii = 0; ii < preferredAttribList.size(); ii++) {
     1318        if (preferredAttribList[ii].indexOf("&") != -1) {
     1319          QStringList hlp = preferredAttribList[ii].split("&", QString::SkipEmptyParts);
     1320          if (hlp.size() == 2 && hlp[0].contains(typeV2[1])) {
     1321            preferredAttrib = hlp[1];
     1322          }
     1323        }
     1324        else {
     1325          preferredAttrib = preferredAttribList[ii];
     1326        }
     1327      }
     1328
     1329      for (int iPref = 0; iPref < preferredAttribList.size(); iPref++) {
    13191330        QMapIterator<QString, t_rnxObs> itObs(rnxSat.obs);
    13201331        while (itObs.hasNext()) {
     
    15451556// Tracking Mode Priorities
    15461557////////////////////////////////////////////////////////////////////////////
    1547 QString t_rnxObsFile::signalPriorities(char sys) {
     1558QStringList t_rnxObsFile::signalPriorities(char sys) {
    15481559
    15491560  bncSettings settings;
    1550 
     1561 
    15511562  QStringList priorList;
    15521563  QString reqcAction = settings.value("reqcAction").toString();
     
    15551566  // ---------------------------------------------------
    15561567  if (reqcAction == "Edit/Concatenate") {
    1557   priorList = settings.value("reqcV2Priority").toString().split(" ", QString::SkipEmptyParts);
     1568    priorList = settings.value("reqcV2Priority").toString().split(" ", QString::SkipEmptyParts);
    15581569  }
    15591570
     
    15611572  // ----------------------------
    15621573  else {
    1563   priorList = settings.value("rnxV2Priority").toString().split(" ", QString::SkipEmptyParts);
    1564   }
    1565 
    1566   if (priorList.empty()) {
    1567     priorList << "CWPX_?";
    1568   }
    1569 
    1570   QString result;
     1574    priorList = settings.value("rnxV2Priority").toString().split(" ", QString::SkipEmptyParts);
     1575  }
     1576
     1577  QStringList result;
    15711578  for (int ii = 0; ii < priorList.size(); ii++) {
    15721579    if (priorList[ii].indexOf(":") != -1) {
    15731580      QStringList hlp = priorList[ii].split(":", QString::SkipEmptyParts);
    15741581      if (hlp.size() == 2 && hlp[0].length() == 1 && hlp[0][0] == sys) {
    1575         result = hlp[1];
     1582        result.append(hlp[1]);
     1583      }
     1584    }
     1585    else {
     1586      result.append(priorList[ii]);
     1587    }
     1588  }
     1589
     1590  if (result.empty()) {
     1591    switch (sys) {
     1592      case 'G':
     1593        result << "G:12&PWCSLXYN G:5&IQX";
    15761594        break;
    1577       }
    1578     }
    1579     else {
    1580       result = priorList[ii];
    1581     }
    1582   }
    1583 
     1595      case 'R':
     1596        result << "R:12&PC R:3&IQX";
     1597        break;
     1598      case 'E':
     1599        result << "E:16&BCX E:578&IQX";
     1600        break;
     1601      case 'J':
     1602        result << "J:1&SLXCZ J:26&SLX J:5&IQX";
     1603        break;
     1604      case 'C':
     1605        result << "C:IQX";
     1606        break;
     1607      case 'I':
     1608        result << "I:ABCX";
     1609        break;
     1610      case 'S':
     1611        result << "S:1&C S:5&IQX";
     1612        break;
     1613    }
     1614  }
    15841615  return result;
    15851616}
Note: See TracChangeset for help on using the changeset viewer.