Changeset 8275 in ntrip for trunk/BNC/src/bncwindow.cpp


Ignore:
Timestamp:
Feb 7, 2018, 2:26:39 PM (6 years ago)
Author:
stuerze
Message:

some preparation to allow Ntrip version 2 stream upload in future

File:
1 edited

Legend:

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

    r8252 r8275  
    514514  // Upload Results
    515515  // -------------
    516   _uploadTable = new QTableWidget(0,12);
    517   _uploadTable->setHorizontalHeaderLabels(QString("Host, Port, Mount, Password, System, CoM, SP3 File, RNX File, PID, SID, IOD, bytes").split(","));
     516  _uploadTable = new QTableWidget(0,14);
     517  _uploadTable->setHorizontalHeaderLabels(QString("Host, Port, Mount, Ntrip, User, Password, System, CoM, SP3 File, RNX File, PID, SID, IOD, bytes").split(","));
    518518  _uploadTable->setSelectionMode(QAbstractItemView::ExtendedSelection);
    519519  _uploadTable->setSelectionBehavior(QAbstractItemView::SelectRows);
     
    521521  _uploadTable->horizontalHeader()->resizeSection( 1, 5*ww);
    522522  _uploadTable->horizontalHeader()->resizeSection( 2, 6*ww);
    523   _uploadTable->horizontalHeader()->resizeSection( 3, 8*ww);
    524   _uploadTable->horizontalHeader()->resizeSection( 4,11*ww);
    525   _uploadTable->horizontalHeader()->resizeSection( 5, 4*ww);
    526   _uploadTable->horizontalHeader()->resizeSection( 6,15*ww);
    527   _uploadTable->horizontalHeader()->resizeSection( 7,15*ww);
    528   _uploadTable->horizontalHeader()->resizeSection( 8, 4*ww);
    529   _uploadTable->horizontalHeader()->resizeSection( 9, 4*ww);
     523  _uploadTable->horizontalHeader()->resizeSection( 3, 6*ww);
     524  _uploadTable->horizontalHeader()->resizeSection( 4, 8*ww);
     525  _uploadTable->horizontalHeader()->resizeSection( 5, 8*ww);
     526  _uploadTable->horizontalHeader()->resizeSection( 6,11*ww);
     527  _uploadTable->horizontalHeader()->resizeSection( 7, 4*ww);
     528  _uploadTable->horizontalHeader()->resizeSection( 8,15*ww);
     529  _uploadTable->horizontalHeader()->resizeSection( 9,15*ww);
    530530  _uploadTable->horizontalHeader()->resizeSection(10, 4*ww);
    531   _uploadTable->horizontalHeader()->resizeSection(11,12*ww);
     531  _uploadTable->horizontalHeader()->resizeSection(11, 4*ww);
     532  _uploadTable->horizontalHeader()->resizeSection(12, 4*ww);
     533  _uploadTable->horizontalHeader()->resizeSection(13,12*ww);
    532534#if QT_VERSION < 0x050000
    533535  _uploadTable->horizontalHeader()->setResizeMode(QHeaderView::Interactive);
     
    598600  // ----------------------
    599601  _uploadEphTable = new QTableWidget(0,6);
    600   _uploadEphTable->setColumnCount(6);
     602  _uploadEphTable->setColumnCount(8);
    601603  _uploadEphTable->setRowCount(0);
    602   _uploadEphTable->setHorizontalHeaderLabels(QString("Host, Port, Mount, Password, System, bytes").split(","));
     604  _uploadEphTable->setHorizontalHeaderLabels(QString("Host, Port, Mount,  Ntrip, User, Password, System, bytes").split(","));
    603605  _uploadEphTable->setSelectionMode(QAbstractItemView::ExtendedSelection);
    604606  _uploadEphTable->setSelectionBehavior(QAbstractItemView::SelectRows);
     
    606608  _uploadEphTable->horizontalHeader()->resizeSection( 1, 5*ww);
    607609  _uploadEphTable->horizontalHeader()->resizeSection( 2, 8*ww);
     610  _uploadEphTable->horizontalHeader()->resizeSection( 3, 6*ww);
     611  _uploadEphTable->horizontalHeader()->resizeSection( 4, 8*ww);
    608612  _uploadEphTable->horizontalHeader()->resizeSection( 3, 8*ww);
    609   _uploadEphTable->horizontalHeader()->resizeSection( 4,10*ww);
    610   _uploadEphTable->horizontalHeader()->resizeSection( 5,12*ww);
     613  _uploadEphTable->horizontalHeader()->resizeSection( 5,10*ww);
     614  _uploadEphTable->horizontalHeader()->resizeSection( 6,12*ww);
    611615#if QT_VERSION < 0x050000
    612616  _uploadEphTable->horizontalHeader()->setResizeMode(QHeaderView::Interactive);
     
    14231427  // WhatsThis, Upload Corrections
    14241428  // -----------------------------
    1425   _uploadTable->setWhatsThis(tr("<p>BNC can upload clock and orbit corrections to Broadcast Ephemeris (Broadcast Corrections) in RTCM Version 3 SSR format. You may have a situation where clocks and orbits come from an external Real-time Network Engine (1) or a situation where clock and orbit corrections are combined within BNC (2).</p><p>(1) BNC identifies a stream as coming from a Real-time Network Engine if its format is specified as 'RTNET' and hence its decoder string in the 'Streams' canvas is 'RTNET'. It encodes and uploads that stream to the specified Ntrip Broadcaster Host and Port</p><p>(2) BNC understands that it is expected to encode and upload combined Broadcast Ephemeris Corrections if you specify correction streams in the 'Combine Corrections' table.</p><p>To fill the 'Upload Corrections' table, hit the 'Add Row' button, double click on the 'Host' field to enter the IP or URL of an Ntrip Broadcaster and hit Enter. Then double click on the 'Port', 'Mount' and 'Password' fields to enter the Ntrip Broadcaster IP port (default is 80), the mountpoint and the stream upload password. An empty 'Host' option field means that you don't want to upload corrections.</p><p>Select a target coordinate reference System (e.g. IGS14) for outgoing clock and orbit corrections.</p><p>By default orbit and clock corrections refer to Antenna Phase Center (APC). Tick 'CoM' to refer uploaded corrections to Center of Mass instead of APC.</p><p>Specify a path for saving generated Broadcast Corrections plus Broadcast Ephemeris as SP3 orbit files. If the specified directory does not exist, BNC will not create such files. The following is a path example for a Linux system: /home/user/BNC${GPSWD}.sp3<br>Note that '${GPSWD}' produces the GPS Week and Day number in the filename.</p><p>Specify a path for saving generated Broadcast Correction clocks plus Broadcast Ephemeris clocks as Clock RINEX files. If the specified directory does not exist, BNC will not create Clock RINEX files. The following is a path example for a Linux system: /home/user/BNC${GPSWD}.clk<br>Note that '${GPSWD}' produces the GPS Week and Day number in the filename.</p><p>Finally, specify a SSR Provider ID (issued by RTCM), SSR Solution ID, and SSR Issue of Data number.</p><p>In case the 'Combine Corrections' table contains only one Broadcast Correction stream, BNC will add that stream content to the Broadcast Ephemeris to save results in files specified via SP3 and/or Clock RINEX file path. You should then define only the SP3 and Clock RINEX file path and no further option in the 'Upload Corrections' table. <i>[key: uploadMountpointsOut]</i></p>"));
     1429  _uploadTable->setWhatsThis(tr("<p>BNC can upload clock and orbit corrections to Broadcast Ephemeris (Broadcast Corrections) in RTCM Version 3 SSR format. You may have a situation where clocks and orbits come from an external Real-time Network Engine (1) or a situation where clock and orbit corrections are combined within BNC (2).</p><p>(1) BNC identifies a stream as coming from a Real-time Network Engine if its format is specified as 'RTNET' and hence its decoder string in the 'Streams' canvas is 'RTNET'. It encodes and uploads that stream to the specified Ntrip Broadcaster Host and Port</p><p>(2) BNC understands that it is expected to encode and upload combined Broadcast Ephemeris Corrections if you specify correction streams in the 'Combine Corrections' table.</p><p>To fill the 'Upload Corrections' table, hit the 'Add Row' button, double click on the 'Host' field to enter the IP or URL of an Ntrip Broadcaster and hit Enter. Select the Ntrip Version that shall be used for data upload. Then double click on the 'Port', 'Mount' and 'Password' fields to enter the Ntrip Broadcaster IP port (default is 80), the mountpoint and the stream upload password. If Ntrip Version 2 is chosen, click to the 'User' field to enter a stream upload user name. An empty 'Host' option field means that you don't want to upload corrections.</p><p>Select a target coordinate reference System (e.g. IGS14) for outgoing clock and orbit corrections.</p><p>By default orbit and clock corrections refer to Antenna Phase Center (APC). Tick 'CoM' to refer uploaded corrections to Center of Mass instead of APC.</p><p>Specify a path for saving generated Broadcast Corrections plus Broadcast Ephemeris as SP3 orbit files. If the specified directory does not exist, BNC will not create such files. The following is a path example for a Linux system: /home/user/BNC${GPSWD}.sp3<br>Note that '${GPSWD}' produces the GPS Week and Day number in the filename.</p><p>Specify a path for saving generated Broadcast Correction clocks plus Broadcast Ephemeris clocks as Clock RINEX files. If the specified directory does not exist, BNC will not create Clock RINEX files. The following is a path example for a Linux system: /home/user/BNC${GPSWD}.clk<br>Note that '${GPSWD}' produces the GPS Week and Day number in the filename.</p><p>Finally, specify a SSR Provider ID (issued by RTCM), SSR Solution ID, and SSR Issue of Data number.</p><p>In case the 'Combine Corrections' table contains only one Broadcast Correction stream, BNC will add that stream content to the Broadcast Ephemeris to save results in files specified via SP3 and/or Clock RINEX file path. You should then define only the SP3 and Clock RINEX file path and no further option in the 'Upload Corrections' table. <i>[key: uploadMountpointsOut]</i></p>"));
    14261430  addUploadRowButton->setWhatsThis(tr("<p>Hit 'Add Row' button to add another line to the 'Upload Corrections' table.</p>"));
    14271431  delUploadRowButton->setWhatsThis(tr("<p>Hit 'Del Row' button to delete the highlighted line(s) from the 'Upload Corrections' table.</p>"));
     
    18721876    for (int iCol = 0; iCol < _uploadTable->columnCount(); iCol++) {
    18731877      if (_uploadTable->cellWidget(iRow, iCol) &&
    1874           (iCol == 3 || iCol == 4 || iCol == 5)) {
    1875         if      (iCol == 3) {
     1878          (iCol == 3 || iCol == 4 || iCol == 5 || iCol == 6 || iCol == 7)) {
     1879        if       (iCol == 3) {
     1880          QComboBox* ntripversion = (QComboBox*)(_uploadTable->cellWidget(iRow, iCol));
     1881          hlp += ntripversion->currentText() + ",";
     1882        }
     1883        else if (iCol == 4 ) {
     1884          QLineEdit* user = (QLineEdit*)(_uploadTable->cellWidget(iRow, iCol));
     1885          hlp += user->text() + ",";
     1886        }
     1887        else if (iCol == 5) {
    18761888          QLineEdit* passwd = (QLineEdit*)(_uploadTable->cellWidget(iRow, iCol));
    18771889          hlp += passwd->text() + ",";
    18781890        }
    1879         else if (iCol == 4) {
     1891        else if (iCol == 6) {
    18801892          QComboBox* system = (QComboBox*)(_uploadTable->cellWidget(iRow, iCol));
    18811893          hlp += system->currentText() + ",";
    18821894        }
    1883         else if (iCol == 5) {
     1895        else if (iCol == 7) {
    18841896          QCheckBox* com    = (QCheckBox*)(_uploadTable->cellWidget(iRow, iCol));
    18851897          QString state; state.setNum(com->checkState());
     
    19011913    for (int iCol = 0; iCol < _uploadEphTable->columnCount(); iCol++) {
    19021914      if (_uploadEphTable->cellWidget(iRow, iCol) &&
    1903           (iCol == 3 || iCol == 4)) {
    1904         if      (iCol == 3) {
     1915          (iCol == 3 || iCol == 4 || iCol == 5 || iCol == 6)) {
     1916        if       (iCol == 3) {
     1917          QComboBox* ntripversion = (QComboBox*)(_uploadTable->cellWidget(iRow, iCol));
     1918          hlp += ntripversion->currentText() + ",";
     1919        }
     1920        else if (iCol == 4 ) {
     1921          QLineEdit* user = (QLineEdit*)(_uploadTable->cellWidget(iRow, iCol));
     1922          hlp += user->text() + ",";
     1923        }
     1924        else if (iCol == 5) {
    19051925          QLineEdit* passwd = (QLineEdit*)(_uploadEphTable->cellWidget(iRow, iCol));
    19061926          hlp += passwd->text() + ",";
    19071927        }
    1908         else if (iCol == 4) {
     1928        else if (iCol == 6) {
    19091929          QComboBox* system = (QComboBox*)(_uploadEphTable->cellWidget(iRow, iCol));
    19101930          hlp += system->currentText() + ",";
     
    26662686  _uploadTable->insertRow(iRow);
    26672687  for (int iCol = 0; iCol < _uploadTable->columnCount(); iCol++) {
    2668     if      (iCol == 3) {
     2688    if (iCol == 3) {
     2689      QComboBox* ntripversion = new QComboBox();
     2690      ntripversion->setEditable(false);
     2691      ntripversion->addItems(QString("1,2,2s").split(","));
     2692      ntripversion->setFrame(false);
     2693      _uploadTable->setCellWidget(iRow, iCol, ntripversion);
     2694
     2695    }
     2696    else if (iCol == 4) {
     2697      QLineEdit* user = new QLineEdit();
     2698      user->setFrame(false);
     2699      _uploadTable->setCellWidget(iRow, iCol, user);
     2700    }
     2701    else if (iCol == 5) {
    26692702      QLineEdit* passwd = new QLineEdit();
    26702703      passwd->setFrame(false);
     
    26722705      _uploadTable->setCellWidget(iRow, iCol, passwd);
    26732706    }
    2674     else if (iCol == 4) {
     2707    else if (iCol == 6) {
    26752708      QComboBox* system = new QComboBox();
    26762709      system->setEditable(false);
     
    26792712      _uploadTable->setCellWidget(iRow, iCol, system);
    26802713    }
    2681     else if (iCol == 5) {
     2714    else if (iCol == 7) {
    26822715      QCheckBox* com = new QCheckBox();
    26832716      _uploadTable->setCellWidget(iRow, iCol, com);
    26842717    }
    2685     else if (iCol == 11) {
     2718    else if (iCol == 13) {
    26862719      bncTableItem* bncIt = new bncTableItem();
    26872720      bncIt->setFlags(bncIt->flags() & ~Qt::ItemIsEditable);
     
    27392772  int iRow = -1;
    27402773  QListIterator<QString> it(settings.value("uploadMountpointsOut").toStringList());
     2774
    27412775  while (it.hasNext()) {
    27422776    QStringList hlp = it.next().split(",");
     
    27472781    for (int iCol = 0; iCol < hlp.size(); iCol++) {
    27482782      if      (iCol == 3) {
     2783        QComboBox* ntripversion = new QComboBox();
     2784        ntripversion->setEditable(false);
     2785        ntripversion->addItems(QString("1,2,2s").split(","));
     2786        ntripversion->setFrame(false);
     2787        ntripversion->setCurrentIndex(ntripversion->findText(hlp[iCol]));
     2788        _uploadTable->setCellWidget(iRow, iCol, ntripversion);
     2789      }
     2790      else if (iCol == 4) {
     2791        QLineEdit* user = new QLineEdit();
     2792        user->setFrame(false);
     2793        user->setText(hlp[iCol]);
     2794        _uploadTable->setCellWidget(iRow, iCol, user);
     2795      }
     2796      else if (iCol == 5) {
    27492797        QLineEdit* passwd = new QLineEdit();
    27502798        passwd->setFrame(false);
     
    27532801        _uploadTable->setCellWidget(iRow, iCol, passwd);
    27542802      }
    2755       else if (iCol == 4) {
     2803      else if (iCol == 6) {
    27562804        QComboBox* system = new QComboBox();
    27572805        system->setEditable(false);
    2758         system->addItems(QString(",IGS14,ETRF2000,NAD83,GDA94,SIRGAS2000,DREF91,Custom").split(","));
     2806        system->addItems(QString("IGS14,ETRF2000,NAD83,GDA2020,SIRGAS2000,DREF91,Custom").split(","));
    27592807        system->setFrame(false);
    27602808        system->setCurrentIndex(system->findText(hlp[iCol]));
    27612809        _uploadTable->setCellWidget(iRow, iCol, system);
    27622810      }
    2763       else if (iCol == 5) {
     2811      else if (iCol == 7) {
    27642812        QCheckBox* com = new QCheckBox();
    27652813        if (hlp[iCol].toInt() == Qt::Checked) {
     
    27682816        _uploadTable->setCellWidget(iRow, iCol, com);
    27692817      }
    2770       else if (iCol == 11) {
     2818      else if (iCol == 13) {
    27712819        bncTableItem* bncIt = new bncTableItem();
    27722820        bncIt->setFlags(bncIt->flags() & ~Qt::ItemIsEditable);
     
    27962844  for (int iCol = 0; iCol < _uploadEphTable->columnCount(); iCol++) {
    27972845    if      (iCol == 3) {
     2846      QComboBox* ntripversion = new QComboBox();
     2847      ntripversion->setEditable(false);
     2848      ntripversion->addItems(QString("1,2,2s").split(","));
     2849      ntripversion->setFrame(false);
     2850      _uploadEphTable->setCellWidget(iRow, iCol, ntripversion);
     2851
     2852    }
     2853    else if (iCol == 4) {
     2854      QLineEdit* user = new QLineEdit();
     2855      user->setFrame(false);
     2856      _uploadEphTable->setCellWidget(iRow, iCol, user);
     2857    }
     2858    else if (iCol == 5) {
    27982859      QLineEdit* passwd = new QLineEdit();
    27992860      passwd->setFrame(false);
     
    28012862      _uploadEphTable->setCellWidget(iRow, iCol, passwd);
    28022863    }
    2803     else if (iCol == 4) {
     2864    else if (iCol == 6) {
    28042865      QComboBox* system = new QComboBox();
    28052866      system->setEditable(false);
     
    28082869      _uploadEphTable->setCellWidget(iRow, iCol, system);
    28092870    }
    2810     else if (iCol == 5) {
     2871    else if (iCol == 7) {
    28112872      bncTableItem* bncIt = new bncTableItem();
    28122873      bncIt->setFlags(bncIt->flags() & ~Qt::ItemIsEditable);
     
    28622923  while (it.hasNext()) {
    28632924    QStringList hlp = it.next().split(",");
    2864     if (hlp.size() > 4) {
     2925    if (hlp.size() > 6) {
    28652926      ++iRow;
    28662927      _uploadEphTable->insertRow(iRow);
    28672928    }
    28682929    for (int iCol = 0; iCol < hlp.size(); iCol++) {
    2869       if      (iCol == 3) {
     2930      if (iCol == 3) {
     2931        QComboBox* ntripversion = new QComboBox();
     2932        ntripversion->setEditable(false);
     2933        ntripversion->addItems(QString("1,2,2s").split(","));
     2934        ntripversion->setFrame(false);
     2935        ntripversion->setCurrentIndex(ntripversion->findText(hlp[iCol]));
     2936        _uploadEphTable->setCellWidget(iRow, iCol, ntripversion);
     2937      }
     2938      else if (iCol == 4) {
     2939        QLineEdit* user = new QLineEdit();
     2940        user->setFrame(false);
     2941        _uploadEphTable->setCellWidget(iRow, iCol, user);
     2942      }
     2943      else if (iCol == 5) {
    28702944        QLineEdit* passwd = new QLineEdit();
    28712945        passwd->setFrame(false);
     
    28742948        _uploadEphTable->setCellWidget(iRow, iCol, passwd);
    28752949      }
    2876       else if (iCol == 4) {
     2950      else if (iCol == 6) {
    28772951        QComboBox* system = new QComboBox();
    28782952        system->setEditable(false);
     
    28822956        _uploadEphTable->setCellWidget(iRow, iCol, system);
    28832957      }
    2884       else if (iCol == 5) {
     2958      else if (iCol == 7) {
    28852959        bncTableItem* bncIt = new bncTableItem();
    28862960        bncIt->setFlags(bncIt->flags() & ~Qt::ItemIsEditable);
Note: See TracChangeset for help on using the changeset viewer.