Changeset 9889 in ntrip


Ignore:
Timestamp:
Nov 22, 2022, 1:49:32 PM (4 days ago)
Author:
stuerze
Message:

minor changes regarrding sinex tro files

Location:
trunk/BNC/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/bncmain.cpp

    r9866 r9889  
    230230      "   PPP/snxtroIntr  {SINEX troposphere file interval [character string: 1 min|2 min|5 min|10 min|15 min|30 min|1 hour|1 day]}\n"
    231231      "   PPP/snxtroSampl {SINEX troposphere file sampling rate [character string: 1 sec|5 sec|10 sec|30 sec|60 sec|300 sec]}\n"
    232       "   PPP/snxtroAc    {SINEX troposphere Analysis Center [character string]}\n"
    233       "   PPP/snxtroSol   {SINEX troposphere solution ID [character string]}\n"
     232      "   PPP/snxtroAc    {SINEX troposphere Analysis Center [3-char string]}\n"
     233      "   PPP/snxtroSol   {SINEX troposphere solution ID [1-char]}\n"
    234234      "\n"
    235235      "PPP Client Panel 2 keys:\n"
  • trunk/BNC/src/bncoutf.cpp

    r9783 r9889  
    155155      addition = QString("_ABS");
    156156    }
     157    if (_extension.contains("tro") || _extension.contains("TRO")) {
     158      QString site = baseName.left(9);
     159      bncSettings settings;
     160      QString ac  = settings.value("PPP/snxtroAc").toString();
     161      QString sol = settings.value("PPP/snxtroSol").toString();
     162      baseName.replace(0,3,ac);
     163      baseName.replace(3,1,sol);
     164      baseName.replace(4,3,"DEM");
     165      baseName.replace(7,3,"RTS");
     166      addition = QString("_%1_TRO").arg(site);
     167    }
    157168  if (_extension.count(".") == 2) {
    158169    _extension.replace(0,1,"_");
  • trunk/BNC/src/bncsinextro.cpp

    r9424 r9889  
    3131  : bncoutf(sklFileName, intr, sampl) {
    3232
    33   _opt       = opt;
     33  _opt   = opt;
    3434  _sampl =  sampl;
    3535
     
    8181  QString epo  = QString("%1").arg(numEpochs, 5, 10, QLatin1Char('0'));
    8282  QString ac   = QString("%1").arg(settings.value("PPP/snxtroAc").toString(),3,QLatin1Char(' '));
    83   QString sol  = QString("%1").arg(settings.value("PPP/snxtroSol").toString(),4,QLatin1Char(' '));
    84   QString corr = settings.value("PPP/corrMount").toString();
     83  QString sol  = QString("   %1").arg(settings.value("PPP/snxtroSol").toString(),1,QLatin1Char(' '));
     84  QString corr = "";
     85  if      (settings.value("PPP/dataSource").toString() == "Real-Time Streams") {
     86    corr = settings.value("PPP/corrMount").toString();
     87  }
     88  else if (settings.value("PPP/dataSource").toString() == "RINEX Files") {
     89    corr = settings.value("PPP/corrFile").toString();
     90  }
     91
     92  QString signalPriorities = QString::fromStdString(_opt->_signalPriorities);
     93  if (!signalPriorities.size()) {
     94    signalPriorities = "G:12&CWPSLX R:12&CP E:1&CBX E:5&QIX C:26&IQX";
     95  }
     96  QStringList priorList = signalPriorities.split(" ", QString::SkipEmptyParts);
     97  QStringList frqStrList;
     98  for (unsigned iFreq = 1; iFreq < t_frequency::max; iFreq++) {
     99    t_frequency::type frqType = static_cast<t_frequency::type>(iFreq);
     100    char frqSys = t_frequency::toString(frqType)[0];
     101    char frqNum = t_frequency::toString(frqType)[1];
     102    QStringList hlp;
     103    for (int ii = 0; ii < priorList.size(); ii++) {
     104      if (priorList[ii].indexOf(":") != -1) {
     105        hlp = priorList[ii].split(":", QString::SkipEmptyParts);
     106        if (hlp.size() == 2 && hlp[0].length() == 1 && hlp[0][0] == frqSys) {
     107          hlp = hlp[1].split("&", QString::SkipEmptyParts);
     108        }
     109        if (hlp.size() == 2 && hlp[0].indexOf(frqNum) != -1) {
     110          frqStrList.append(QString("%1%2").arg(frqSys).arg(frqNum));
     111        }
     112      }
     113    }
     114  }
    85115
    86116  _out << "%=TRO 2.00 " << ac.toStdString() << " "
     
    93123  _out << " OUTPUT             " << "Total Troposphere Zenith Path Delay Product" << endl;
    94124  _out << " SOFTWARE           " <<  BNCPGMNAME <<  endl;
    95   _out << " INPUT              " << "Ntrip streams, additional Orbit and Clock information from "
    96                                  << corr.toStdString() <<endl;
     125  _out << " INPUT              " << "Observations_: " << _opt->_roverName.substr(0,9)
     126                                 << ", SSR corrections: "  << corr.toStdString() << endl;
    97127  _out << "-FILE/REFERENCE" << endl << endl;
    98128
     
    114144  }
    115145  _out << "+SITE/ID" << endl;
    116   _out << "*CODE PT DOMES____ T _STATION DESCRIPTION__ APPROX_LON_ APPROX_LAT_ _APP_H_" << endl;
    117   _out << " " << _opt->_roverName.substr(0,4) << "  A           P "
     146  _out << "*CODE      PT DOMES____ T _STATION DESCRIPTION__ APPROX_LON_ APPROX_LAT_ _APP_H_" << endl;
     147  _out << " " << _opt->_roverName.substr(0,9) << "  A           P "
    118148       << country.toStdString() << "                   "
    119149       << QString(" %1").arg(lonD, 3, 10, QLatin1Char(' ')).toStdString()
     
    129159  if (!_opt->_recNameRover.empty()) {
    130160    _out << "+SITE/RECEIVER" << endl;
    131     _out << "*SITE PT SOLN T DATA_START__ DATA_END____ DESCRIPTION_________ S/N__ FIRMWARE___" << endl;
    132     _out << " " << _opt->_roverName.substr(0,4) << "  A "  <<  sol.toStdString() << " P "
     161    _out << "*SITE      PT SOLN T DATA_START__ DATA_END____ DESCRIPTION_________ S/N__ FIRMWARE___" << endl;
     162    _out << " " << _opt->_roverName.substr(0,9) << "  A "  <<  sol.toStdString() << " P "
    133163         << startTime.toStdString() << " " << endTime.toStdString()
    134164         << QString(" %1").arg(_opt->_recNameRover.c_str(), 20,QLatin1Char(' ')).toStdString()
     
    138168
    139169  _out << "+SITE/ANTENNA" << endl;
    140   _out << "*SITE PT SOLN T DATA_START__ DATA_END____ DESCRIPTION_________ S/N__" << endl;
    141   _out << " " << _opt->_roverName.substr(0,4) << "  A "  <<  sol.toStdString() << " P "
     170  _out << "*SITE      PT SOLN T DATA_START__ DATA_END____ DESCRIPTION_________ S/N__" << endl;
     171  _out << " " << _opt->_roverName.substr(0,9) << "  A "  <<  sol.toStdString() << " P "
    142172       << startTime.toStdString() << " " << endTime.toStdString() << " "
    143173       << _opt->_antNameRover << " -----" << endl;
     
    151181      _out << "*DESCRIPTION_________ S/N__ L1->ARP(m)__________ L2->ARP(m)__________ AZ_EL____" << endl;
    152182      _out << QString(" %1").arg(_opt->_antNameRover.c_str(), 20,QLatin1Char(' ')).toStdString()
    153            <<  " -----"
    154            << _antex->pcoSinexString(_opt->_antNameRover, t_frequency::G1).toStdString()
    155            << _antex->pcoSinexString(_opt->_antNameRover, t_frequency::G2).toStdString()
    156            <<  " ---------"
    157         << endl;
     183           <<  " -----";
     184           for (int i = 0; i < frqStrList.size(); ++i) {
     185             if (frqStrList.at(i).contains('G')) {//cout << frqStrList.at(i).toStdString() << endl;
     186               _out << _antex->pcoSinexString(_opt->_antNameRover, t_frequency::toInt(frqStrList.at(i).toStdString())).toStdString();
     187             }
     188           }
     189      _out << " ---------" << endl;
    158190      _out << "-SITE/GPS_PHASE_CENTER" << endl << endl;
    159191    }
     
    163195      _out << "*DESCRIPTION_________ S/N__ L1->ARP(m)__________ L2->ARP(m)__________ AZ_EL____" << endl;
    164196      _out << QString(" %1").arg(_opt->_antNameRover.c_str(), 20,QLatin1Char(' ')).toStdString()
    165            <<  " -----"
    166            << _antex->pcoSinexString(_opt->_antNameRover, t_frequency::R1).toStdString()
    167            << _antex->pcoSinexString(_opt->_antNameRover, t_frequency::R2).toStdString()
    168            <<  " ---------"
    169         << endl;
     197           <<  " -----";
     198           for (int i = 0; i < frqStrList.size(); ++i) {
     199             if (frqStrList.at(i).contains('R')) {//cout << frqStrList.at(i).toStdString() << endl;
     200               _out << _antex->pcoSinexString(_opt->_antNameRover, t_frequency::toInt(frqStrList.at(i).toStdString())).toStdString();
     201             }
     202           }
     203      _out << " ---------" << endl;
    170204      _out << "-SITE/GLONASS_PHASE_CENTER" << endl << endl;
    171205    }
     
    175209      _out << "*DESCRIPTION_________ S/N__ L1->ARP(m)__________ L2->ARP(m)__________ AZ_EL____" << endl;
    176210      _out << QString(" %1").arg(_opt->_antNameRover.c_str(), 20,QLatin1Char(' ')).toStdString()
    177            <<  " -----"
    178            << _antex->pcoSinexString(_opt->_antNameRover, t_frequency::E1).toStdString()
    179            << _antex->pcoSinexString(_opt->_antNameRover, t_frequency::E5).toStdString()
    180         << endl;
     211           <<  " -----";
     212           for (int i = 0; i < frqStrList.size(); ++i) {
     213             if (frqStrList.at(i).contains('E')) {//cout << frqStrList.at(i).toStdString() << endl;
     214               _out << _antex->pcoSinexString(_opt->_antNameRover, t_frequency::toInt(frqStrList.at(i).toStdString())).toStdString();
     215             }
     216           }
     217      _out << " ---------" << endl;
    181218      _out << "-SITE/GALILEO_PHASE_CENTER" << endl << endl;
    182219    }
     
    186223      _out << "*DESCRIPTION_________ S/N__ L1->ARP(m)__________ L2->ARP(m)__________ AZ_EL____" << endl;
    187224      _out << QString(" %1").arg(_opt->_antNameRover.c_str(), 20,QLatin1Char(' ')).toStdString()
    188            <<  " -----"
    189            << _antex->pcoSinexString(_opt->_antNameRover, t_frequency::C2).toStdString()
    190            << _antex->pcoSinexString(_opt->_antNameRover, t_frequency::C6).toStdString()
    191         << endl;
     225               <<  " -----";
     226               for (int i = 0; i < frqStrList.size(); ++i) {
     227                 if (frqStrList.at(i).contains('C')) {//cout << frqStrList.at(i).toStdString() << endl;
     228                   _out << _antex->pcoSinexString(_opt->_antNameRover, t_frequency::toInt(frqStrList.at(i).toStdString())).toStdString();
     229                 }
     230               }
     231      _out << " ---------" << endl;
    192232      _out << "-SITE/BEIDOU_PHASE_CENTER" << endl << endl;
    193233    }
     
    198238  _out << "+SITE/ECCENTRICITY" << endl;
    199239  _out << "*                                             UP______ NORTH___ EAST____" << endl;
    200   _out << "*SITE PT SOLN T DATA_START__ DATA_END____ AXE ARP->BENCHMARK(M)_________" << endl;
    201   _out << " " << _opt->_roverName.substr(0,4) << "  A "  <<  sol.toStdString() << " P "
     240  _out << "*SITE      PT SOLN T DATA_START__ DATA_END____ AXE ARP->BENCHMARK(M)_________" << endl;
     241  _out << " " << _opt->_roverName.substr(0,9) << "  A "  <<  sol.toStdString() << " P "
    202242       << startTime.toStdString() << " " << endTime.toStdString() << " UNE"
    203243       << QString("%1").arg(_opt->_neuEccRover(3), 9, 'f', 4, QLatin1Char(' ')).toStdString()
     
    207247
    208248  _out << "+TROP/COORDINATES" << endl;
    209   _out << "*SITE PT SOLN T STA_X_______ STA_Y_______ STA_Z_______ SYSTEM REMARK" << endl;
    210   _out << " " << _opt->_roverName.substr(0,4) << "  A "  <<  sol.toStdString() << " P"
     249  _out << "*SITE      PT SOLN T STA_X_______ STA_Y_______ STA_Z_______ SYSTEM REMARK" << endl;
     250  _out << " " << _opt->_roverName.substr(0,9) << "  A "  <<  sol.toStdString() << " P"
    211251       << QString(" %1").arg(_opt->_xyzAprRover(1), 12, 'f', 3, QLatin1Char(' ')).toStdString()
    212252       << QString(" %1").arg(_opt->_xyzAprRover(2), 12, 'f', 3, QLatin1Char(' ')).toStdString()
    213253       << QString(" %1").arg(_opt->_xyzAprRover(3), 12, 'f', 3, QLatin1Char(' ')).toStdString()
    214        << " ITRF14 " << ac.toStdString() << endl;
     254       << " IGS20 " << ac.toStdString() << endl;
    215255  _out << "-TROP/COORDINATES"<< endl << endl;
    216256
     
    228268
    229269  _out << "+TROP/SOLUTION" << endl;
    230   _out << "*SITE EPOCH_______ TROTOT STDEV" << endl;
     270  _out << "*SITE      EPOCH_______ TROTOT STDEV" << endl;
    231271}
    232272
     
    246286  if ((reopen(GPSWeek, GPSWeeks) == success) &&
    247287      (fmod(daysec, double(_sampl)) == 0.0)) {
    248     _out << ' '  << staID.left(4).data() << ' ' << time.toStdString() << ' '
     288    _out << ' '  << staID.left(9).data() << ' ' << time.toStdString() << ' '
    249289         << noshowpos << setw(6) << setprecision(1) << trotot * 1000.0
    250290         << noshowpos << setw(6) << setprecision(1) << stdev  * 1000.0 << endl;
  • trunk/BNC/src/bncwindow.cpp

    r9866 r9889  
    14671467  _pppWidgets._corrFile->setWhatsThis(tr("<p>Specify the Broadcast Ephemeris Corrections file as saved beforehand using BNC.</p><p>If you don't specify corrections by this option, BNC will fall back to Single Point Positioning (SPP, positioning from RINEX Obs and RINEX Nav files only) instead of doing PPP. <i>[key: PPP/corrFile]</i></p>"));
    14681468  _pppWidgets._ionoFile->setWhatsThis(tr("<p>Specify the VTEC file as saved beforehand using BNC.</p><p>If you don't specify corrections by this option, BNC will use VTEC informations from the Corrections file, if available. <i>[key: PPP/ionoFile]</i></p>"));
    1469   _pppWidgets._antexFile->setWhatsThis(tr("<p>Observations in RTCM streams or RINEX files should be referred to the receiver's and to the satellite's Antenna Phase Center (APC) and therefore be corrected for<ul><li>Receiver APC offsets</li><li>Receiver APC variations</li><li>Satellite APC offsets.</li></ul> Specify the full path to an IGS 'ANTEX file' which contains APC offsets and variations.</p><p>If you don't specify an 'ANTEX file' then observations will not be corrected for APC offsets and variations. <i>[key: PPP/antexFile]</i></p>"));
    1470   _pppWidgets._crdFile->setWhatsThis(tr("<p>Enter the full path to an ASCII file which specifies the streams or files of those stations you want to process. Specifying a 'Coordinates file' is optional. If it exists, it should contain one record per station with the following parameters separated by blank character:<p><ul><li>Specify the station either by<ul><li>the 'Mountpoint' of the station's RTCM stream (when in real-time PPP mode), or</li><li>the 4-charater station ID of the RINEX Observations file (when in post processing PPP mode).</li></ul></li><li>Approximate X,Y,Z coordinate of station's Antenna Reference Point [m] (ARP, specify '0.0 0.0 0.0' if unknown).</li><li>North, East and Up component of antenna eccentricity [m] (specify '0.0 0.0 0.0' if unknown).</li><li>20 Characters describing the antenna type and radome following the IGS 'ANTEX file' standard (leave blank if unknown).</li><li>Receiver type following the naming conventions for IGS equipment.</li></ul></p><p>Records with exclamation mark '!' in the first column or blank records will be interpreted as comment lines and ignored. <i>[key: PPP/crdFile]</i></p>"));
    1471   _pppWidgets._logPath->setWhatsThis(tr("<p>Specify a directory for saving daily PPP logfiles. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no PPP logficorrMountles shall be produced. <i>[key: PPP/logPath]</i></p>"));
     1469  _pppWidgets._antexFile->setWhatsThis(tr("<p>Observations in RTCM streams or RINEX files should be referred to the receiver's and to the satellite's Antenna Phase Center (APC) and therefore be corrected for<ul><li>Receiver APC offsets and variations</li><li>Satellite APC offsets and variations.</li></ul> Specify the full path to an IGS 'ANTEX file' which contains APC offsets and variations for satellites and receiver.</p> <i>[key: PPP/antexFile]</i></p>"));
     1470  _pppWidgets._crdFile->setWhatsThis(tr("<p>Enter the full path to an ASCII file which specifies the streams or files of those stations you want to process. Specifying a 'Coordinates file' is optional. If it exists, it should contain one record per station with the following parameters separated by blank character:</p><ul><li>Specify the station either by:<ul><li>the 'Mountpoint' of the station's RTCM stream (in real-time PPP mode), or</li><li>the 9-char station ID of the RINEX Version 3 or 4 Observations file (in post processing PPP mode), or </li><li>the 4-char station ID of the RINEX Version 2 Observations file (in post processing PPP mode).</li></ul><li>Approximate X,Y,Z coordinate of station's Antenna Reference Point [m] (ARP, specify '0.0 0.0 0.0' if unknown).</li><li>North, East and Up component of antenna eccentricity [m] (specify '0.0 0.0 0.0' if unknown). </li><li>20 Characters describing the antenna type and radome following the IGS 'ANTEX file' standard (leave blank if unknown).</li><li>Receiver type following the naming conventions for IGS equipment.</li></ul>Records with exclamation mark '!' in the first column or blank records will be interpreted as comment lines and ignored.. <i>[key: PPP/crdFile]</i></p>"));
     1471  _pppWidgets._blqFile->setWhatsThis(tr("<p>Specify the full path to a 'BLQ file' containing the ocean loading coefficients for different stations. These coefficients can be obtained from the ocean loading service under request trough the web site http://holt.oso.chalmers.se/loading/. <i>[key: PPP/blqFile]</i></p>"));
     1472  _pppWidgets._logPath->setWhatsThis(tr("<p>Specify a directory for saving daily PPP logfiles. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no PPP logfiles shall be produced. <i>[key: PPP/logPath]</i></p>"));
    14721473  _pppWidgets._nmeaPath->setWhatsThis(tr("<p>Specify a directory for saving coordinates in daily NMEA files. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no NMEA file shall be produced. <i>[key: PPP/nmeaPath]</i></p>"));
    14731474  _pppWidgets._snxtroPath->setWhatsThis(tr("<p>Specify a directory for saving SINEX Troposphere files. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no SINEX Troposphere files shall be produced. <i>[key: PPP/snxtroPath]</i></p>"));
     
    14751476  _pppWidgets._snxtroSampl->setWhatsThis(tr("<p>Select a 'Sampling' rate for saving troposphere parameters. <i>[key: PPP/snxtroSampl]</i></p>"));
    14761477  _pppWidgets._snxtroAc->setWhatsThis(tr("<p>Specify a 3-character abbreviation describing you as the generating Analysis Center (AC) in your SINEX troposphere files. <i>[key: PPP/snxtroAc]</i></p>"));
    1477   _pppWidgets._snxtroSol->setWhatsThis(tr("<p>Specify a 4-character solution ID to allow a distinction between different solutions per AC. <i>[key: PPP/snxtroSol]</i></p>"));
     1478  _pppWidgets._snxtroSol->setWhatsThis(tr("<p>Specify a 1-character solution ID to allow a distinction between different solutions per AC. <i>[key: PPP/snxtroSol]</i></p>"));
    14781479
    14791480
     
    14841485  _pppWidgets._lcGalileo->setWhatsThis(tr("<p>Specify which kind of Galileo observations you want to use</p><p><ul><li>Specifying 'Pi' means that you request BNC to use code data of two frequencies.</li><li>Specifying'Li' means that you request BNC to use phase data of two frequencies.</li> <li>Specifying'Pi&Li' means that you request BNC to use both, code and phase data of two frequencies.</li></ul></p><p>Specifying 'no' means that you don't want BNC to use Galileo data. <i>[key: PPP/lcGalileo]</i></p>"));
    14851486  _pppWidgets._lcBDS->setWhatsThis(tr("<p>Specify which kind of BDS observations you want to use</p><p><ul><li>Specifying 'Pi' means that you request BNC to use code data from two frequencies.</li><li>Specifying'Li' means that you request BNC to use phase data of two frequencies.</li> <li>Specifying'Pi&Li' means that you request BNC to use both, code and phase data of two frequencies.</li></ul></p><p>Specifying 'no' means that you don't want BNC to use BDS data. <i>[key: PPP/lcBDS]</i></p>"));
    1486   _pppWidgets._modelObs->setWhatsThis(tr("<p>Specify which kind of PPP model you want to use:</p><p><ul><li>Iopnosphere-free PPP</li><li>Uncombined PPP</li><li>PPP-RTK (recommended for test purposes only because of an incomplete standardized SSR model)</li><li>DCM with Code or Phase Biases</li><li></p><p>[key: PPP/modelObs]</i></p>"));
    1487   _pppWidgets._pseudoObs->setWhatsThis(tr("<p>Specify which kind of pseudo observations you want to use. Please note, pseudo observations regarding the Ionosphere are useful, as soon as the ionospheric information is more accurate than the code data accuracy. <i>[key: PPP/pseudoObs]</i></p>"));
     1487  _pppWidgets._modelObs->setWhatsThis(tr("<p>Specify which kind of PPP model you want to use:</p><p><ul><li>Uncombined PPP</li><li>Iopnosphere-free PPP</li><li>PPP-RTK (currently not activated because of an incomplete standardized SSR model)</li><li>DCM with Code or Phase Biases</li><li></p><p>[key: PPP/modelObs]</i></p>"));
     1488  _pppWidgets._pseudoObs->setWhatsThis(tr("<p>Specify whether pseudo observations regarding the Ionosphere shall be used. Please note, this is useful, as soon as the ionospheric information is more accurate than the code data accuracy. <i>[key: PPP/pseudoObs]</i></p>"));
    14881489  _pppWidgets._sigmaC1->setWhatsThis(tr("<p>Enter a Sigma for GPS C1 code observations in meters.</p><p>The higher the sigma you enter, the less the contribution of GPS C1 code observations to a PPP solution from combined code and phase data. 2.0 is likely to be an appropriate choice.</p><p>Default is an empty option field, meaning<br>'Sigma C1 = 2.0' <i>[key: PPP/sigmaC1]</i></p>"));
    14891490  _pppWidgets._sigmaL1->setWhatsThis(tr("<p>Enter a Sigma for GPS L1 phase observations in meters.</p><p>The higher the sigma you enter, the less the contribution of GPS L1 phase observations to a PPP solutions from combined code and phase data. 0.02 is likely to be an appropriate choice.</p><p>Default is an empty option field, meaning<br>'Sigma L1 = 0.02' <i>[key: PPP/sigmaL1]</i></p>"));
  • trunk/BNC/src/pppRun.cpp

    r9854 r9889  
    222222      snxtroFileSkl += QDir::separator();
    223223    }
    224     snxtroFileSkl = snxtroFileSkl + ID9 + "${V3PROD}" + distStr + ".tra";
     224    snxtroFileSkl = snxtroFileSkl + ID9 + '_' + "${V3PROD}" + distStr + ".tro";
    225225    sampl = settings.value("PPP/snxtroSampl").toString().split("sec").first().toInt();
    226226    intr  = settings.value("PPP/snxtroIntr").toString();
Note: See TracChangeset for help on using the changeset viewer.