Changeset 10776 in ntrip for trunk/BNC/src/bncgetthread.cpp


Ignore:
Timestamp:
Nov 5, 2025, 1:33:06 PM (4 weeks ago)
Author:
stuerze
Message:

CHANGE: back to the class QextSerialPort because the QT5 internal class QSerialPort seems to have a bug

File:
1 edited

Legend:

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

    r10772 r10776  
    5252#include <QTableWidget>
    5353#include <QTime>
    54 #include <QtSerialPort/QSerialPort>
    5554
    5655#include "bncgetthread.h"
     
    7271#include "RTCM/RTCM2Decoder.h"
    7372#include "RTCM3/RTCM3Decoder.h"
     73#include "serial/qextserialport.h"
    7474
    7575using namespace std;
     
    178178  if (!_staID.isEmpty()
    179179      && settings.value("serialMountPoint").toString() == _staID) {
    180     _serialPort = new QSerialPort(portString);
     180    _serialPort = new QextSerialPort(portString);
     181    _serialPort->setTimeout(0, 100);
    181182
    182183    // Baud Rate
    183184    // ---------
    184185    QString hlp = settings.value("serialBaudRate").toString();
    185     if (hlp == "1200") {
    186       _serialPort->setBaudRate(QSerialPort::Baud1200);
     186    if (hlp == "110") {
     187      _serialPort->setBaudRate(BAUD110);
     188    } else if (hlp == "300") {
     189      _serialPort->setBaudRate(BAUD300);
     190    } else if (hlp == "600") {
     191      _serialPort->setBaudRate(BAUD600);
     192    } else if (hlp == "1200") {
     193      _serialPort->setBaudRate(BAUD1200);
    187194    } else if (hlp == "2400") {
    188       _serialPort->setBaudRate(QSerialPort::Baud2400);
     195      _serialPort->setBaudRate(BAUD2400);
    189196    } else if (hlp == "4800") {
    190       _serialPort->setBaudRate(QSerialPort::Baud4800);
     197      _serialPort->setBaudRate(BAUD4800);
    191198    } else if (hlp == "9600") {
    192       _serialPort->setBaudRate(QSerialPort::Baud9600);
     199      _serialPort->setBaudRate(BAUD9600);
    193200    } else if (hlp == "19200") {
    194       _serialPort->setBaudRate(QSerialPort::Baud19200);
     201      _serialPort->setBaudRate(BAUD19200);
    195202    } else if (hlp == "38400") {
    196       _serialPort->setBaudRate(QSerialPort::Baud38400);
     203      _serialPort->setBaudRate(BAUD38400);
    197204    } else if (hlp == "57600") {
    198       _serialPort->setBaudRate(QSerialPort::Baud57600);
     205      _serialPort->setBaudRate(BAUD57600);
    199206    } else if (hlp == "115200") {
    200       _serialPort->setBaudRate(QSerialPort::Baud115200);
     207      _serialPort->setBaudRate(BAUD115200);
    201208    }
    202209
     
    205212    hlp = settings.value("serialParity").toString();
    206213    if (hlp == "NONE") {
    207       _serialPort->setParity(QSerialPort::NoParity);
     214      _serialPort->setParity(PAR_NONE);
    208215    } else if (hlp == "ODD") {
    209       _serialPort->setParity(QSerialPort::OddParity);
     216      _serialPort->setParity(PAR_ODD);
    210217    } else if (hlp == "EVEN") {
    211       _serialPort->setParity(QSerialPort::EvenParity);
     218      _serialPort->setParity(PAR_EVEN);
    212219    } else if (hlp == "SPACE") {
    213       _serialPort->setParity(QSerialPort::SpaceParity);
    214     } else if (hlp == "MARK") {
    215       _serialPort->setParity( QSerialPort::MarkParity);
     220      _serialPort->setParity(PAR_SPACE);
    216221    }
    217222
     
    220225    hlp = settings.value("serialDataBits").toString();
    221226    if        (hlp == "5") {
    222       _serialPort->setDataBits(QSerialPort::Data5);
     227      _serialPort->setDataBits(DATA_5);
    223228    } else if (hlp == "6") {
    224       _serialPort->setDataBits(QSerialPort::Data6);
     229      _serialPort->setDataBits(DATA_6);
    225230    } else if (hlp == "7") {
    226       _serialPort->setDataBits(QSerialPort::Data7);
     231      _serialPort->setDataBits(DATA_7);
    227232    } else if (hlp == "8") {
    228       _serialPort->setDataBits(QSerialPort::Data8);
     233      _serialPort->setDataBits(DATA_8);
    229234    }
    230235    // Stop Bits
     
    232237    hlp = settings.value("serialStopBits").toString();
    233238    if        (hlp == "1") {
    234       _serialPort->setStopBits(QSerialPort::OneStop);
    235     } else if (hlp == "1.5") {
    236       _serialPort->setStopBits(QSerialPort::OneAndHalfStop);
     239      _serialPort->setStopBits(STOP_1);
    237240    } else if (hlp == "2") {
    238       _serialPort->setStopBits(QSerialPort::TwoStop);
     241      _serialPort->setStopBits(STOP_2);
    239242    }
    240243
     
    243246    hlp = settings.value("serialFlowControl").toString();
    244247    if        (hlp == "XONXOFF") {
    245       _serialPort->setFlowControl(QSerialPort::SoftwareControl);
     248      _serialPort->setFlowControl(FLOW_XONXOFF);
    246249    } else if (hlp == "HARDWARE") {
    247       _serialPort->setFlowControl(QSerialPort::HardwareControl);
     250      _serialPort->setFlowControl(FLOW_HARDWARE);
    248251    } else {
    249       _serialPort->setFlowControl(QSerialPort::NoFlowControl);
     252      _serialPort->setFlowControl(FLOW_OFF);
    250253    }
    251254
    252255    // Open Serial Port
    253256    // ----------------
    254     //_serialPort->open(QIODevice::ReadWrite | QIODevice::Unbuffered);
    255     _serialPort->open(QIODevice::ReadWrite);
     257    _serialPort->open(QIODevice::ReadWrite | QIODevice::Unbuffered);
    256258    msleep(100); //sleep 0.1 sec
    257259    if (!_serialPort->isOpen()) {
Note: See TracChangeset for help on using the changeset viewer.