Index: /trunk/BNC/CHANGELOG.md
===================================================================
--- /trunk/BNC/CHANGELOG.md	(revision 10765)
+++ /trunk/BNC/CHANGELOG.md	(revision 10766)
@@ -1,3 +1,7 @@
 # Changelog
+## 2.13.5 (2025-10-23)
+- CHANGED: The external class QextSerialPort was replaced by Qt internal class QSerialPort
+- CHANGED: The serial port is now introduced as case sensitive in 'Add streams' and supports a wider range of interfaces with it
+
 ## 2.13.4 (2025-09-02)
 - ADDED: **NtripServer Functionallity:** BNC can upload streams in any format to another caster installation
Index: /trunk/BNC/src/bncgetthread.cpp
===================================================================
--- /trunk/BNC/src/bncgetthread.cpp	(revision 10765)
+++ /trunk/BNC/src/bncgetthread.cpp	(revision 10766)
@@ -52,4 +52,5 @@
 #include <QTableWidget>
 #include <QTime>
+#include <QtSerialPort/QSerialPort>
 
 #include "bncgetthread.h"
@@ -71,5 +72,4 @@
 #include "RTCM/RTCM2Decoder.h"
 #include "RTCM3/RTCM3Decoder.h"
-#include "serial/qextserialport.h"
 
 using namespace std;
@@ -157,9 +157,8 @@
                       + _nmeaServer->errorString();
       emit newMessage(message.toLatin1(), true);
-    } else {
-      connect(_nmeaServer, SIGNAL(newConnection()), this,
-          SLOT(slotNewNMEAConnection()));
-      connect(BNC_CORE, SIGNAL(newNMEAstr(QByteArray, QByteArray)), this,
-          SLOT(slotNewNMEAstr(QByteArray, QByteArray)));
+    }
+    else {
+      connect(_nmeaServer, SIGNAL(newConnection()), this, SLOT(slotNewNMEAConnection()));
+      connect(BNC_CORE, SIGNAL(newNMEAstr(QByteArray, QByteArray)), this, SLOT(slotNewNMEAstr(QByteArray, QByteArray)));
       _nmeaSockets = new QList<QTcpSocket*>;
       _nmeaPortsMap[_staID] = nmeaPort;
@@ -175,36 +174,29 @@
   _serialOutFile = 0;
   _serialPort = 0;
+  QString portString = settings.value("serialPortName").toString();
 
   if (!_staID.isEmpty()
       && settings.value("serialMountPoint").toString() == _staID) {
-    _serialPort = new QextSerialPort(
-        settings.value("serialPortName").toString());
-    _serialPort->setTimeout(0, 100);
+    _serialPort = new QSerialPort(portString);
 
     // Baud Rate
     // ---------
     QString hlp = settings.value("serialBaudRate").toString();
-    if (hlp == "110") {
-      _serialPort->setBaudRate(BAUD110);
-    } else if (hlp == "300") {
-      _serialPort->setBaudRate(BAUD300);
-    } else if (hlp == "600") {
-      _serialPort->setBaudRate(BAUD600);
-    } else if (hlp == "1200") {
-      _serialPort->setBaudRate(BAUD1200);
+    if (hlp == "1200") {
+      _serialPort->setBaudRate(QSerialPort::Baud1200);
     } else if (hlp == "2400") {
-      _serialPort->setBaudRate(BAUD2400);
+      _serialPort->setBaudRate(QSerialPort::Baud2400);
     } else if (hlp == "4800") {
-      _serialPort->setBaudRate(BAUD4800);
+      _serialPort->setBaudRate(QSerialPort::Baud4800);
     } else if (hlp == "9600") {
-      _serialPort->setBaudRate(BAUD9600);
+      _serialPort->setBaudRate(QSerialPort::Baud9600);
     } else if (hlp == "19200") {
-      _serialPort->setBaudRate(BAUD19200);
+      _serialPort->setBaudRate(QSerialPort::Baud19200);
     } else if (hlp == "38400") {
-      _serialPort->setBaudRate(BAUD38400);
+      _serialPort->setBaudRate(QSerialPort::Baud38400);
     } else if (hlp == "57600") {
-      _serialPort->setBaudRate(BAUD57600);
+      _serialPort->setBaudRate(QSerialPort::Baud57600);
     } else if (hlp == "115200") {
-      _serialPort->setBaudRate(BAUD115200);
+      _serialPort->setBaudRate(QSerialPort::Baud115200);
     }
 
@@ -213,11 +205,13 @@
     hlp = settings.value("serialParity").toString();
     if (hlp == "NONE") {
-      _serialPort->setParity(PAR_NONE);
+      _serialPort->setParity(QSerialPort::NoParity);
     } else if (hlp == "ODD") {
-      _serialPort->setParity(PAR_ODD);
+      _serialPort->setParity(QSerialPort::OddParity);
     } else if (hlp == "EVEN") {
-      _serialPort->setParity(PAR_EVEN);
+      _serialPort->setParity(QSerialPort::EvenParity);
     } else if (hlp == "SPACE") {
-      _serialPort->setParity(PAR_SPACE);
+      _serialPort->setParity(QSerialPort::SpaceParity);
+    } else if (hlp == "MARK") {
+      _serialPort->setParity( QSerialPort::MarkParity);
     }
 
@@ -225,18 +219,22 @@
     // ---------
     hlp = settings.value("serialDataBits").toString();
-    if (hlp == "5") {
-      _serialPort->setDataBits(DATA_5);
+    if        (hlp == "5") {
+      _serialPort->setDataBits(QSerialPort::Data5);
     } else if (hlp == "6") {
-      _serialPort->setDataBits(DATA_6);
+      _serialPort->setDataBits(QSerialPort::Data6);
     } else if (hlp == "7") {
-      _serialPort->setDataBits(DATA_7);
+      _serialPort->setDataBits(QSerialPort::Data7);
     } else if (hlp == "8") {
-      _serialPort->setDataBits(DATA_8);
-    }
+      _serialPort->setDataBits(QSerialPort::Data8);
+    }
+    // Stop Bits
+    // ---------
     hlp = settings.value("serialStopBits").toString();
-    if (hlp == "1") {
-      _serialPort->setStopBits(STOP_1);
+    if        (hlp == "1") {
+      _serialPort->setStopBits(QSerialPort::OneStop);
+    } else if (hlp == "1.5") {
+      _serialPort->setStopBits(QSerialPort::OneAndHalfStop);
     } else if (hlp == "2") {
-      _serialPort->setStopBits(STOP_2);
+      _serialPort->setStopBits(QSerialPort::TwoStop);
     }
 
@@ -244,23 +242,26 @@
     // ------------
     hlp = settings.value("serialFlowControl").toString();
-    if (hlp == "XONXOFF") {
-      _serialPort->setFlowControl(FLOW_XONXOFF);
+    if        (hlp == "XONXOFF") {
+      _serialPort->setFlowControl(QSerialPort::SoftwareControl);
     } else if (hlp == "HARDWARE") {
-      _serialPort->setFlowControl(FLOW_HARDWARE);
+      _serialPort->setFlowControl(QSerialPort::HardwareControl);
     } else {
-      _serialPort->setFlowControl(FLOW_OFF);
+      _serialPort->setFlowControl(QSerialPort::NoFlowControl);
     }
 
     // Open Serial Port
     // ----------------
-    _serialPort->open(QIODevice::ReadWrite | QIODevice::Unbuffered);
+    //_serialPort->open(QIODevice::ReadWrite | QIODevice::Unbuffered);
+    _serialPort->open(QIODevice::ReadWrite);
     msleep(100); //sleep 0.1 sec
     if (!_serialPort->isOpen()) {
-      emit(newMessage((_staID + ": Cannot open serial port " + _serialPort->errorString()).toLatin1(), true));
+      emit(newMessage(_staID + ": Cannot open serial port " + portString.toLatin1()
+           + ": " + _serialPort->errorString().toLatin1(), true));
       delete _serialPort;
       _serialPort = 0;
     }
-
-    connect(_serialPort, SIGNAL(readyRead()), this, SLOT(slotSerialReadyRead()));
+    else {
+      connect(_serialPort, SIGNAL(readyRead()), this, SLOT(slotSerialReadyRead()));
+    }
 
     // Automatic NMEA
Index: /trunk/BNC/src/bncgetthread.h
===================================================================
--- /trunk/BNC/src/bncgetthread.h	(revision 10765)
+++ /trunk/BNC/src/bncgetthread.h	(revision 10766)
@@ -40,5 +40,5 @@
 
 class GPSDecoder;
-class QextSerialPort;
+class QSerialPort;
 class latencyChecker;
 
@@ -124,5 +124,5 @@
    int                        _ssrEpoch;
    bncRawFile*                _rawFile;
-   QextSerialPort*            _serialPort;
+   QSerialPort*               _serialPort;
    bool                       _isToBeDeleted;
    bool                       _rtcmObs;
Index: /trunk/BNC/src/bncnetquerys.cpp
===================================================================
--- /trunk/BNC/src/bncnetquerys.cpp	(revision 10765)
+++ /trunk/BNC/src/bncnetquerys.cpp	(revision 10766)
@@ -11,5 +11,5 @@
  * Created:    8-Mar-2009
  *
- * Changes:    
+ * Changes:
  *
  * -----------------------------------------------------------------------*/
@@ -34,5 +34,5 @@
 }
 
-// 
+//
 ////////////////////////////////////////////////////////////////////////////
 void bncNetQueryS::stop() {
@@ -42,12 +42,12 @@
 #endif
   _status = finished;
-} 
-
-// 
+}
+
+//
 /////////////////////////////////////////////////////////////////////////////
 void bncNetQueryS::waitForRequestResult(const QUrl&, QByteArray&) {
 }
 
-// 
+//
 ////////////////////////////////////////////////////////////////////////////
 void bncNetQueryS::waitForReadyRead(QByteArray& outData) {
@@ -70,4 +70,5 @@
 
   _url = url;
+
   if (_url.scheme().isEmpty()) {
     _url.setScheme("http");
@@ -79,52 +80,47 @@
   QString hlp;
   QStringList hlpL;
-  hlp = _url.host().toLatin1().replace("-"," ");
-  hlpL = hlp.split(" ");
 
   // Serial Port
   // -----------
+  hlp = _url.userInfo().replace("-"," ");
+  hlpL = hlp.split(" ");
   QString _portString;
-  if (hlpL.size() == 6) {
-    _portString = hlpL[hlpL.size()-6].replace("com","COM");
+  if (hlpL.size() == 1) {
+    _portString = hlpL[hlpL.size()-1];
   } else {
-    _portString = "/" + hlpL[hlpL.size()-7] + "/" + hlpL[hlpL.size()-6].replace("ttys","ttyS");
-  }
-  _serialPort = new QextSerialPort(_portString);
+    _portString = "/" + hlpL[hlpL.size()-2] + "/" + hlpL[hlpL.size()-1];
+  }
+
+  _serialPort = new QSerialPort(_portString);
+
 
   // Baud Rate
   // ---------
+  hlp = _url.host().replace("-"," ");
+  hlpL = hlp.split(" ");
   hlp = hlpL[hlpL.size()-1];
-  if      (hlp == "110") {
-    _serialPort->setBaudRate(BAUD110);
-  }
-  else if (hlp == "300") {
-    _serialPort->setBaudRate(BAUD300);
-  }
-  else if (hlp == "600") {
-    _serialPort->setBaudRate(BAUD600);
-  }
-  else if (hlp == "1200") {
-    _serialPort->setBaudRate(BAUD1200);
+  if (hlp == "1200") {
+    _serialPort->setBaudRate(QSerialPort::Baud1200);
   }
   else if (hlp == "2400") {
-    _serialPort->setBaudRate(BAUD2400);
+    _serialPort->setBaudRate(QSerialPort::Baud2400);
   }
   else if (hlp == "4800") {
-    _serialPort->setBaudRate(BAUD4800);
+    _serialPort->setBaudRate(QSerialPort::Baud4800);
   }
   else if (hlp == "9600") {
-    _serialPort->setBaudRate(BAUD9600);
+    _serialPort->setBaudRate(QSerialPort::Baud9600);
   }
   else if (hlp == "19200") {
-    _serialPort->setBaudRate(BAUD19200);
+    _serialPort->setBaudRate(QSerialPort::Baud19200);
   }
   else if (hlp == "38400") {
-    _serialPort->setBaudRate(BAUD38400);
+    _serialPort->setBaudRate(QSerialPort::Baud38400);
   }
   else if (hlp == "57600") {
-    _serialPort->setBaudRate(BAUD57600);
+    _serialPort->setBaudRate(QSerialPort::Baud57600);
   }
   else if (hlp == "115200") {
-    _serialPort->setBaudRate(BAUD115200);
+    _serialPort->setBaudRate(QSerialPort::Baud115200);
   }
 
@@ -133,15 +129,19 @@
   hlp = hlpL[hlpL.size()-4].toUpper();
   if      (hlp == "NONE") {
-    _serialPort->setParity(PAR_NONE);
+    _serialPort->setParity(QSerialPort::NoParity);
   }
   else if (hlp == "ODD") {
-    _serialPort->setParity(PAR_ODD);
+    _serialPort->setParity(QSerialPort::OddParity);
   }
   else if (hlp == "EVEN") {
-    _serialPort->setParity(PAR_EVEN);
+    _serialPort->setParity(QSerialPort::EvenParity);
   }
   else if (hlp == "SPACE") {
-    _serialPort->setParity(PAR_SPACE);
-  }
+    _serialPort->setParity(QSerialPort::SpaceParity);
+  }
+  else if (hlp == "MARK") {
+    _serialPort->setParity(QSerialPort::MarkParity);
+  }
+
 
   // Data Bits
@@ -149,14 +149,14 @@
   hlp = hlpL[hlpL.size()-5];
   if      (hlp == "5") {
-    _serialPort->setDataBits(DATA_5);
+    _serialPort->setDataBits(QSerialPort::Data5);
   }
   else if (hlp == "6") {
-    _serialPort->setDataBits(DATA_6);
+    _serialPort->setDataBits(QSerialPort::Data6);
   }
   else if (hlp == "7") {
-    _serialPort->setDataBits(DATA_7);
+    _serialPort->setDataBits(QSerialPort::Data6);
   }
   else if (hlp == "8") {
-    _serialPort->setDataBits(DATA_8);
+    _serialPort->setDataBits(QSerialPort::Data7);
   }
 
@@ -165,8 +165,11 @@
   hlp = hlpL[hlpL.size()-3];
   if      (hlp == "1") {
-    _serialPort->setStopBits(STOP_1);
+    _serialPort->setStopBits(QSerialPort::OneStop);
+  }
+  else if (hlp == "1.5") {
+    _serialPort->setStopBits(QSerialPort::OneAndHalfStop);
   }
   else if (hlp == "2") {
-    _serialPort->setStopBits(STOP_2);
+    _serialPort->setStopBits(QSerialPort::TwoStop);
   }
 
@@ -175,21 +178,24 @@
   hlp = hlpL[hlpL.size()-2].toUpper();
   if (hlp == "XONXOFF") {
-    _serialPort->setFlowControl(FLOW_XONXOFF);
+    _serialPort->setFlowControl(QSerialPort::SoftwareControl);
   }
   else if (hlp == "HARDWARE") {
-    _serialPort->setFlowControl(FLOW_HARDWARE);
+    _serialPort->setFlowControl(QSerialPort::HardwareControl);
   }
   else {
-    _serialPort->setFlowControl(FLOW_OFF);
+    _serialPort->setFlowControl(QSerialPort::NoFlowControl);
   }
 
   _status = running;
 
-  _serialPort->open(QIODevice::ReadWrite|QIODevice::Unbuffered);
+  //_serialPort->open(QIODevice::ReadWrite|QIODevice::Unbuffered);
+  _serialPort->open(QIODevice::ReadWrite);
+
   if (!_serialPort->isOpen()) {
+    emit newMessage(_url.path().toLatin1().replace(0,1,"") + ": Cannot open serial port " + _portString.toLatin1()
+                    + ": " +_serialPort->errorString().toLatin1(), true);
     delete _serialPort;
     _serialPort = 0;
     _status = error;
-    emit newMessage(_url.path().toLatin1().replace(0,1,"") + ": Cannot open serial port " + _portString.toLatin1(), true);
     return;
   }
Index: /trunk/BNC/src/bncnetquerys.h
===================================================================
--- /trunk/BNC/src/bncnetquerys.h	(revision 10765)
+++ /trunk/BNC/src/bncnetquerys.h	(revision 10766)
@@ -3,5 +3,5 @@
 
 #include "bncnetquery.h"
-#include "serial/qextserialport.h"
+#include <QtSerialPort/QSerialPort>
 
 class bncNetQueryS : public bncNetQuery {
@@ -17,5 +17,5 @@
 
  private:
-  QextSerialPort* _serialPort;
+  QSerialPort* _serialPort;
 };
 
Index: /trunk/BNC/src/bncserialport.cpp
===================================================================
--- /trunk/BNC/src/bncserialport.cpp	(revision 10765)
+++ /trunk/BNC/src/bncserialport.cpp	(revision 10766)
@@ -74,10 +74,9 @@
   _serialCountryLineEdit = new QLineEdit();
 
-  _serialBaudRateComboBox->addItems(QString("110,300,600,"
-            "1200,2400,4800,9600,19200,38400,57600,115200").split(","));
+  _serialBaudRateComboBox->addItems(QString("1200,2400,4800,9600,19200,38400,57600,115200").split(","));
   _serialFlowControlComboBox->addItems(QString("OFF,XONXOFF,HARDWARE").split(","));
   _serialDataBitsComboBox->addItems(QString("5,6,7,8").split(","));
-  _serialParityComboBox->addItems(QString("NONE,ODD,EVEN,SPACE").split(","));
-  _serialStopBitsComboBox->addItems(QString("1,2").split(","));
+  _serialParityComboBox->addItems(QString("NONE,ODD,EVEN,SPACE,MARK").split(","));
+  _serialStopBitsComboBox->addItems(QString("1,1.5,2").split(","));
 
   _serialBaudRateComboBox->setCurrentIndex(7);
@@ -104,5 +103,5 @@
   _serialLonLineEdit->setWhatsThis(tr("<p>Enter the approximate latitude of the stream providing receiver in degrees.<p></p>Example: 45.32</p>"));
   _serialCountryLineEdit->setWhatsThis(tr("<p>Specify the country code.</p><p>Follow the ISO 3166-1 alpha-3a code.<br>Example, Germany: DEU</p>"));
-  _serialPortLineEdit->setWhatsThis(tr("<p>Enter the serial 'Port name' selected for communication with your serial connected device. Valid port names are</p><pre>Windows:       COM1, COM2<br>Linux:         /dev/ttyS0, /dev/ttyS1<br>FreeBSD:       /dev/ttyd0, /dev/ttyd1<br>Digital Unix:  /dev/tty01, /dev/tty02<br>HP-UX:         /dev/tty1p0, /dev/tty2p0<br>SGI/IRIX:      /dev/ttyf1, /dev/ttyf2<br>SunOS/Solaris: /dev/ttya, /dev/ttyb</pre><p>You must plug a serial cable in the port defined here before you start BNC.</p>"));
+  _serialPortLineEdit->setWhatsThis(tr("<p>Enter the serial 'Port name' selected for communication with your serial connected device. Valid port names are e.g. </p><pre>Windows:       COM1, COM2<br>Linux:         /dev/ttyS0, /dev/ttyS1<br>FreeBSD:       /dev/ttyd0, /dev/ttyd1<br>Digital Unix:  /dev/tty01, /dev/tty02<br>HP-UX:         /dev/tty1p0, /dev/tty2p0<br>SGI/IRIX:      /dev/ttyf1, /dev/ttyf2<br>SunOS/Solaris: /dev/ttya, /dev/ttyb</pre><p>You must plug a serial cable in the port defined here before you start BNC.</p>"));
   _serialBaudRateComboBox->setWhatsThis(tr("<p>Select a 'Baud rate' for the serial input link.</p><p>Your selection must equal the baud rate configured to the serial connected device. Note that using a high baud rate is recommended.</p>"));
   _serialDataBitsComboBox->setWhatsThis(tr("<p>Select the number of 'Data bits' for the serial input link.</p><p>Your selection must equal the number of data bits configured to the serial connected device. Note that often 8 data bits are used.</p>"));
@@ -184,5 +183,5 @@
        !_serialLonLineEdit->text().isEmpty() ) {
     mountPoints->push_back("//"
-      + _serialPortLineEdit->text().replace("/","-").replace(QRegExp("^[-]"), "") + "-"
+      + _serialPortLineEdit->text().replace("/","-").replace(QRegExp("^[-]"), "") + "@"
       + _serialDataBits + "-"
       + _serialParity + "-"
Index: /trunk/BNC/src/bncversion.h
===================================================================
--- /trunk/BNC/src/bncversion.h	(revision 10765)
+++ /trunk/BNC/src/bncversion.h	(revision 10766)
@@ -3,5 +3,5 @@
 #define BNCVERSION_H
 
-#define BNCVERSION "2.13.4"
+#define BNCVERSION "2.13.5"
 #define BNCPGMNAME "BNC " BNCVERSION
 
Index: /trunk/BNC/src/bncwindow.cpp
===================================================================
--- /trunk/BNC/src/bncwindow.cpp	(revision 10765)
+++ /trunk/BNC/src/bncwindow.cpp	(revision 10766)
@@ -341,6 +341,5 @@
     _serialPortNameLineEdit = new QLineEdit(settings.value("serialPortName").toString());
     _serialBaudRateComboBox = new QComboBox();
-    _serialBaudRateComboBox->addItems(QString("110,300,600,"
-        "1200,2400,4800,9600,19200,38400,57600,115200").split(","));
+    _serialBaudRateComboBox->addItems(QString("1200,2400,4800,9600,19200,38400,57600,115200").split(","));
     int kk = _serialBaudRateComboBox->findText(settings.value("serialBaudRate").toString());
     if (kk != -1) {
@@ -360,5 +359,5 @@
     }
     _serialParityComboBox = new QComboBox();
-    _serialParityComboBox->addItems(QString("NONE,ODD,EVEN,SPACE").split(","));
+    _serialParityComboBox->addItems(QString("NONE,ODD,EVEN,SPACE,MARK").split(","));
     kk = _serialParityComboBox->findText(settings.value("serialParity").toString());
     if (kk != -1) {
@@ -366,5 +365,5 @@
     }
     _serialStopBitsComboBox = new QComboBox();
-    _serialStopBitsComboBox->addItems(QString("1,2").split(","));
+    _serialStopBitsComboBox->addItems(QString("1,1.5,2").split(","));
     kk = _serialStopBitsComboBox->findText(settings.value("serialStopBits").toString());
     if (kk != -1) {
@@ -1530,5 +1529,5 @@
     // ------------------------
     _serialMountPointLineEdit->setWhatsThis(tr("<p>Enter a 'Mountpoint' to forward the corresponding stream to a serial connected receiver.</p><p>Depending on the stream content, the receiver may use it for example for Differential GNSS, Precise Point Positioning or any other purpose supported by its firmware. <i>[key: serialMountPoint]</i></p>"));
-    _serialPortNameLineEdit->setWhatsThis(tr("<p>Enter the serial 'Port name' selected for communication with your serial connected receiver. Valid port names are</p><pre>Windows:       COM1, COM2<br>Linux:         /dev/ttyS0, /dev/ttyS1<br>FreeBSD:       /dev/ttyd0, /dev/ttyd1<br>Digital Unix:  /dev/tty01, /dev/tty02<br>HP-UX:         /dev/tty1p0, /dev/tty2p0<br>SGI/IRIX:      /dev/ttyf1, /dev/ttyf2<br>SunOS/Solaris: /dev/ttya, /dev/ttyb</pre><p>Note that before you start BNC, you must plug a serial cable in the port defined here. <i>[key: serialPortName]</i></p>"));
+    _serialPortNameLineEdit->setWhatsThis(tr("<p>Enter the serial 'Port name' selected for communication with your serial connected receiver. Valid port names are e.g.</p><pre>Windows:       COM1, COM2<br>Linux:         /dev/ttyS0, /dev/ttyS1<br>FreeBSD:       /dev/ttyd0, /dev/ttyd1<br>Digital Unix:  /dev/tty01, /dev/tty02<br>HP-UX:         /dev/tty1p0, /dev/tty2p0<br>SGI/IRIX:      /dev/ttyf1, /dev/ttyf2<br>SunOS/Solaris: /dev/ttya, /dev/ttyb</pre><p>Note that before you start BNC, you must plug a serial cable in the port defined here. <i>[key: serialPortName]</i></p>"));
     _serialBaudRateComboBox->setWhatsThis(tr("<p>Select a 'Baud rate' for the serial output link.</p><p>Note that your selection must equal the baud rate configured to the serial connected receiver. Using a high baud rate is recommended. <i>[key: serialBaudRate]</i></p>"));
     _serialFlowControlComboBox->setWhatsThis(tr("<p>Select a 'Flow control' for the serial output link.</p><p>Note that your selection must equal the flow control configured to the serial connected receiver. Select 'OFF' if you don't know better. <i>[key: serialFlowControl]</i></p>"));
@@ -1888,13 +1887,25 @@
         QUrl    url(hlp[0]);
 
-        QString fullPath = url.host() + QString(":%1").arg(url.port()) + url.path();
-        QString format(hlp[1]); QString country(hlp[2]); QString latitude(hlp[3]); QString longitude(hlp[4]);
+        QString format(hlp[1]);
+        QString country(hlp[2]);
+        QString latitude(hlp[3]);
+        QString longitude(hlp[4]);
         QString nmea(hlp[5]);
-        if (hlp[6] == "S") {
-            fullPath = hlp[0].replace(0, 2, "");
-        }
-        QString ntripVersion = "2";
-        if (hlp.size() >= 7) {
-            ntripVersion = (hlp[6]);
+        QString ntripVersion(hlp[6]);
+
+        QString fullPath;
+        if (ntripVersion == 'S') {
+          // url.userInfo() contains the case sensitive portName
+          // the portName shall be part of the mountpointString
+          // to inform the user about the source of the stream
+          if (url.host().contains(url.userInfo().toLower())) {
+            fullPath = url.host() + url.path();
+          }
+          else {
+            fullPath =  url.userInfo() + "-" + url.host() + url.path();
+          }
+        } else {
+          fullPath = url.host() + QString(":%1").arg(url.port()) + url.path();
+          ntripVersion = "2";
         }
 
@@ -2053,14 +2064,28 @@
     while (it.hasNext()) {
         QStringList hlp = it.next().split(" ");
-        QUrl    url(hlp[0]);
-        QString fullPath = url.host() + QString(":%1").arg(url.port()) + url.path();
-        QString format(hlp[1]); QString country(hlp[2]); QString latitude(hlp[3]); QString longitude(hlp[4]);
+
+        QUrl url(hlp[0]);
+
+        QString format(hlp[1]);
+        QString country(hlp[2]);
+        QString latitude(hlp[3]);
+        QString longitude(hlp[4]);
         QString nmea(hlp[5]);
-        if (hlp[6] == "S") {
-            fullPath = hlp[0].replace(0, 2, "");
-        }
-        QString ntripVersion = "2";
-        if (hlp.size() >= 7) {
-            ntripVersion = (hlp[6]);
+        QString ntripVersion(hlp[6]);
+
+        QString fullPath;
+        if (ntripVersion == 'S') {
+          // url.userInfo() contains the case sensitive portName
+          // the portName shall be part of the mountpointString
+          // to inform the user about the source of the stream
+          if (url.host().contains(url.userInfo().toLower())) {
+            fullPath = url.host() + url.path();
+          }
+          else {
+            fullPath =  url.userInfo() + "-" + url.host() + url.path();
+          }
+        } else {
+          fullPath = url.host() + QString(":%1").arg(url.port()) + url.path();
+          ntripVersion = "2";
         }
 
@@ -2102,5 +2127,5 @@
 
         it = new QTableWidgetItem(ntripVersion);
-        ////it->setFlags(it->flags() & ~Qt::ItemIsEditable);
+        //// it->setFlags(it->flags() & ~Qt::ItemIsEditable);
         _mountPointsTable->setItem(iRow, 7, it);
 
@@ -2133,26 +2158,15 @@
     for (int iRow = 0; iRow < _mountPointsTable->rowCount(); iRow++) {
 
-        if (_mountPointsTable->item(iRow, 6)->text() != "S") {
-            QUrl url("//" + _mountPointsTable->item(iRow, 0)->text() +
-                "@" + _mountPointsTable->item(iRow, 1)->text());
-
-            mountPoints.append(url.toString() + " " +
-                _mountPointsTable->item(iRow, 2)->text()
-                + " " + _mountPointsTable->item(iRow, 3)->text()
-                + " " + _mountPointsTable->item(iRow, 4)->text()
-                + " " + _mountPointsTable->item(iRow, 5)->text()
-                + " " + _mountPointsTable->item(iRow, 6)->text()
-                + " " + _mountPointsTable->item(iRow, 7)->text());
-        }
-        else {
-            mountPoints.append(
-                "//" + _mountPointsTable->item(iRow, 1)->text()
-                + " " + _mountPointsTable->item(iRow, 2)->text()
-                + " " + _mountPointsTable->item(iRow, 3)->text()
-                + " " + _mountPointsTable->item(iRow, 4)->text()
-                + " " + _mountPointsTable->item(iRow, 5)->text()
-                + " " + _mountPointsTable->item(iRow, 6)->text()
-                + " " + _mountPointsTable->item(iRow, 7)->text());
-        }
+          QUrl url("//"
+              + _mountPointsTable->item(iRow, 0)->text() + "@"
+              + _mountPointsTable->item(iRow, 1)->text());
+
+          mountPoints.append(url.toString()
+              + " " + _mountPointsTable->item(iRow, 2)->text()
+              + " " + _mountPointsTable->item(iRow, 3)->text()
+              + " " + _mountPointsTable->item(iRow, 4)->text()
+              + " " + _mountPointsTable->item(iRow, 5)->text()
+              + " " + _mountPointsTable->item(iRow, 6)->text()
+              + " " + _mountPointsTable->item(iRow, 7)->text());
     }
 
Index: /trunk/BNC/src/bncwindow.h
===================================================================
--- /trunk/BNC/src/bncwindow.h	(revision 10765)
+++ /trunk/BNC/src/bncwindow.h	(revision 10766)
@@ -67,4 +67,5 @@
     void CreateMenu();
     void AddToolbar();
+
 
 public slots:
@@ -107,4 +108,5 @@
 
 private:
+
     void saveOptions();
     void populateMountPointsTable();
Index: /trunk/BNC/src/src.pri
===================================================================
--- /trunk/BNC/src/src.pri	(revision 10765)
+++ /trunk/BNC/src/src.pri	(revision 10766)
@@ -9,4 +9,5 @@
 QT += widgets
 QT += core
+QT += serialport
 
 unix:QMAKE_CFLAGS_RELEASE   -= -O2
@@ -18,6 +19,6 @@
 release:MOC_DIR=.moc/release
 
-release:DEFINES += SPLITBLOCK
-debug:DEFINES   += SPLITBLOCK
+release:DEFINES  += SPLITBLOCK
+debug:DEFINES    += SPLITBLOCK
 #debug:DEFINES   += BNC_DEBUG_OBS
 #debug:DEFINES   += BNC_DEBUG_BCE
@@ -25,5 +26,5 @@
 #debug:DEFINES   += BNC_DEBUG_SSR
 #debug:DEFINES   += BNC_DEBUG_CMB
-#debug:DEFINES    += QT_DISABLE_DEPRECATED_BEFORE=0x050F00
+#debug:DEFINES   += QT_DISABLE_DEPRECATED_BEFORE=0x050F00
 
 !versionAtLeast(QT_VERSION, 5.15.0):error("Use at least Qt version 5.15.0")
@@ -78,7 +79,4 @@
           combination/bnccomb.h combination/bncbiassnx.h
 
-HEADERS       += serial/qextserialbase.h serial/qextserialport.h
-unix:HEADERS  += serial/posix_qextserialport.h
-win32:HEADERS += serial/win_qextserialport.h
 
 SOURCES = bncgetthread.cpp  bncwindow.cpp bnctabledlg.cpp             \
@@ -121,8 +119,4 @@
           combination/bnccomb.cpp combination/bncbiassnx.cpp
 
-SOURCES       += serial/qextserialbase.cpp serial/qextserialport.cpp
-unix:SOURCES  += serial/posix_qextserialport.cpp
-win32:SOURCES += serial/win_qextserialport.cpp
-
 RC_FILE = bnc.rc
 
