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


Ignore:
Timestamp:
Nov 5, 2025, 1:33:06 PM (5 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/bncnetquerys.cpp

    r10766 r10776  
    9292  }
    9393
    94   _serialPort = new QSerialPort(_portString);
    95 
     94  _serialPort = new QextSerialPort(_portString); cout << "_portString: " << _portString.toStdString().c_str() << endl;
    9695
    9796  // Baud Rate
     
    10099  hlpL = hlp.split(" ");
    101100  hlp = hlpL[hlpL.size()-1];
    102   if (hlp == "1200") {
    103     _serialPort->setBaudRate(QSerialPort::Baud1200);
     101  if      (hlp == "110") {
     102    _serialPort->setBaudRate(BAUD110);
     103  }
     104  else if (hlp == "300") {
     105    _serialPort->setBaudRate(BAUD300);
     106  }
     107  else if (hlp == "600") {
     108    _serialPort->setBaudRate(BAUD600);
     109  }
     110  else if (hlp == "1200") {
     111    _serialPort->setBaudRate(BAUD1200);
    104112  }
    105113  else if (hlp == "2400") {
    106     _serialPort->setBaudRate(QSerialPort::Baud2400);
     114    _serialPort->setBaudRate(BAUD2400);
    107115  }
    108116  else if (hlp == "4800") {
    109     _serialPort->setBaudRate(QSerialPort::Baud4800);
     117    _serialPort->setBaudRate(BAUD4800);
    110118  }
    111119  else if (hlp == "9600") {
    112     _serialPort->setBaudRate(QSerialPort::Baud9600);
     120    _serialPort->setBaudRate(BAUD9600);
    113121  }
    114122  else if (hlp == "19200") {
    115     _serialPort->setBaudRate(QSerialPort::Baud19200);
     123    _serialPort->setBaudRate(BAUD19200);
    116124  }
    117125  else if (hlp == "38400") {
    118     _serialPort->setBaudRate(QSerialPort::Baud38400);
     126    _serialPort->setBaudRate(BAUD38400);
    119127  }
    120128  else if (hlp == "57600") {
    121     _serialPort->setBaudRate(QSerialPort::Baud57600);
     129    _serialPort->setBaudRate(BAUD57600);
    122130  }
    123131  else if (hlp == "115200") {
    124     _serialPort->setBaudRate(QSerialPort::Baud115200);
     132    _serialPort->setBaudRate(BAUD115200);
    125133  }
    126134
     
    129137  hlp = hlpL[hlpL.size()-4].toUpper();
    130138  if      (hlp == "NONE") {
    131     _serialPort->setParity(QSerialPort::NoParity);
     139    _serialPort->setParity(PAR_NONE);
    132140  }
    133141  else if (hlp == "ODD") {
    134     _serialPort->setParity(QSerialPort::OddParity);
     142    _serialPort->setParity(PAR_ODD);
    135143  }
    136144  else if (hlp == "EVEN") {
    137     _serialPort->setParity(QSerialPort::EvenParity);
     145    _serialPort->setParity(PAR_EVEN);
    138146  }
    139147  else if (hlp == "SPACE") {
    140     _serialPort->setParity(QSerialPort::SpaceParity);
    141   }
    142   else if (hlp == "MARK") {
    143     _serialPort->setParity(QSerialPort::MarkParity);
    144   }
    145 
     148    _serialPort->setParity(PAR_SPACE);
     149  }
    146150
    147151  // Data Bits
     
    149153  hlp = hlpL[hlpL.size()-5];
    150154  if      (hlp == "5") {
    151     _serialPort->setDataBits(QSerialPort::Data5);
     155    _serialPort->setDataBits(DATA_5);
    152156  }
    153157  else if (hlp == "6") {
    154     _serialPort->setDataBits(QSerialPort::Data6);
     158    _serialPort->setDataBits(DATA_6);
    155159  }
    156160  else if (hlp == "7") {
    157     _serialPort->setDataBits(QSerialPort::Data6);
     161    _serialPort->setDataBits(DATA_7);
    158162  }
    159163  else if (hlp == "8") {
    160     _serialPort->setDataBits(QSerialPort::Data7);
     164    _serialPort->setDataBits(DATA_8);
    161165  }
    162166
     
    165169  hlp = hlpL[hlpL.size()-3];
    166170  if      (hlp == "1") {
    167     _serialPort->setStopBits(QSerialPort::OneStop);
    168   }
    169   else if (hlp == "1.5") {
    170     _serialPort->setStopBits(QSerialPort::OneAndHalfStop);
     171    _serialPort->setStopBits(STOP_1);
    171172  }
    172173  else if (hlp == "2") {
    173     _serialPort->setStopBits(QSerialPort::TwoStop);
     174    _serialPort->setStopBits(STOP_2);
    174175  }
    175176
     
    178179  hlp = hlpL[hlpL.size()-2].toUpper();
    179180  if (hlp == "XONXOFF") {
    180     _serialPort->setFlowControl(QSerialPort::SoftwareControl);
     181    _serialPort->setFlowControl(FLOW_XONXOFF);
    181182  }
    182183  else if (hlp == "HARDWARE") {
    183     _serialPort->setFlowControl(QSerialPort::HardwareControl);
     184    _serialPort->setFlowControl(FLOW_HARDWARE);
    184185  }
    185186  else {
    186     _serialPort->setFlowControl(QSerialPort::NoFlowControl);
    187   }
    188 
    189   _status = running;
    190 
    191   //_serialPort->open(QIODevice::ReadWrite|QIODevice::Unbuffered);
    192   _serialPort->open(QIODevice::ReadWrite);
     187    _serialPort->setFlowControl(FLOW_OFF);
     188  }
     189
     190  _serialPort->open(QIODevice::ReadWrite|QIODevice::Unbuffered);
    193191
    194192  if (!_serialPort->isOpen()) {
    195193    emit newMessage(_url.path().toLatin1().replace(0,1,"") + ": Cannot open serial port " + _portString.toLatin1()
    196                     + ": " +_serialPort->errorString().toLatin1(), true);
     194                    + ": " + _serialPort->errorString().toLatin1(), true);
    197195    delete _serialPort;
    198196    _serialPort = 0;
     
    200198    return;
    201199  }
     200  else {
     201    emit(newMessage(_url.path().toLatin1().replace(0,1,"") + ": Serial port " + _portString.toLatin1()
     202                    + " is connected: " , true));
     203    _status = running;
     204  }
    202205}
    203206
Note: See TracChangeset for help on using the changeset viewer.