Skip to content

Commit

Permalink
Switch from QextSerialPort to QSerialPort
Browse files Browse the repository at this point in the history
  • Loading branch information
MinyazevR committed Feb 1, 2025
1 parent eeafe92 commit bae4c9f
Show file tree
Hide file tree
Showing 26 changed files with 39 additions and 118 deletions.
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,3 @@
[submodule "trik-checkapp"]
path = thirdparty/checkapp/checkapp
url = https://github.com/trikset/trik-checkapp
[submodule "plugins/robots/thirdparty/qextserialport/qextserialport"]
path = plugins/robots/thirdparty/qextserialport/qextserialport
url = https://github.com/qextserialport/qextserialport
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,13 @@ rsync -a "$BIN_DIR"/plugins/tools/kitPlugins/librobots-ev3-interpreter.dylib
rsync -a "$BIN_DIR"/plugins/tools/kitPlugins/librobots-ev3-rbf-generator.dylib "$BUNDLE_CONTENTS/Lib/plugins/tools/kitPlugins/"
rsync -a "$BIN_DIR"/librobots-ev3-kit*.dylib "$BUNDLE_CONTENTS/Lib/"
rsync -a "$BIN_DIR"/librobots-ev3-generator-base*.dylib "$BUNDLE_CONTENTS/Lib/"
rsync -a "$BIN_DIR"/libqextserialport*.dylib "$BUNDLE_CONTENTS/Lib/"
rsync -a "$BIN_DIR"/libusb-1.*.dylib "$BUNDLE_CONTENTS/Lib/"

fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/plugins/editors/libev3Metamodel.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/plugins/tools/kitPlugins/librobots-ev3-interpreter.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/plugins/tools/kitplugins/librobots-ev3-rbf-generator.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/librobots-ev3-kit.1.0.0.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/librobots-ev3-generator-base.1.0.0.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/libqextserialport.1.0.0.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/libusb-1.0.0.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/libusb-1.0.dylib"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,4 @@ rsync -a "$BIN_DIR"/plugins/tools/kitPlugins/robots-ev3-interpreter.dll "$PWD"
rsync -a "$BIN_DIR"/plugins/tools/kitPlugins/robots-ev3-rbf-generator.dll "$PWD"/../data/plugins/tools/kitPlugins/
rsync -a "$BIN_DIR"/robots-ev3-kit.dll "$PWD"/../data
rsync -a "$BIN_DIR"/robots-ev3-generator-base.dll "$PWD"/../data
rsync -a "$BIN_DIR"/qextserialport.dll "$PWD"/../data
rsync -a "$BIN_DIR"/libusb-1.0.dll "$PWD"/../data
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ rsync -a "$BIN_DIR"/plugins/tools/kitPlugins/librobots-nxt-interpreter.so
rsync -a "$BIN_DIR"/plugins/tools/kitPlugins/librobots-nxt-osek-c-generator.so "$PWD"/../data/lib/plugins/tools/kitPlugins/
rsync -a "$BIN_DIR"/librobots-nxt-generator-base.so* "$PWD"/../data/lib
rsync -a "$BIN_DIR"/librobots-nxt-kit.so* "$PWD"/../data/lib
rsync -a "$BIN_DIR"/libqextserialport.so* "$PWD"/../data/lib

# Cleaning up prebuild-common.sh results...
rm -rf "$PWD"/../data/plugins
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,13 @@ rsync -a "$BIN_DIR"/plugins/tools/kitPlugins/librobots-nxt-interpreter.dylib
rsync -a "$BIN_DIR"/plugins/tools/kitPlugins/librobots-nxt-osek-c-generator.dylib "$BUNDLE_CONTENTS/Lib/plugins/tools/kitPlugins/"
rsync -a "$BIN_DIR"/librobots-nxt-generator-base*.dylib "$BUNDLE_CONTENTS/Lib"
rsync -a "$BIN_DIR"/librobots-nxt-kit*.dylib "$BUNDLE_CONTENTS/Lib"
rsync -a "$BIN_DIR"/libqextserialport*.dylib "$BUNDLE_CONTENTS/Lib"
rsync -a "$BIN_DIR"/libusb-1.*.dylib "$BUNDLE_CONTENTS/Lib/"

fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/plugins/editors/libnxtMetamodel.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/plugins/tools/kitPlugins/librobots-nxt-interpreter.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/plugins/tools/kitPlugins/librobots-nxt-osek-c-generator.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/librobots-nxt-generator-base.1.0.0.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/librobots-nxt-kit.1.0.0.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/libqextserialport.1.0.0.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/libusb-1.0.0.dylib"

# Cleaning up prebuild-common.sh results...
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,4 @@ rsync -a "$BIN_DIR"/plugins/tools/kitPlugins/robots-nxt-interpreter.dll
rsync -a "$BIN_DIR"/plugins/tools/kitPlugins/robots-nxt-osek-c-generator.dll "$PWD"/../data/plugins/tools/kitPlugins/
rsync -a "$BIN_DIR"/robots-nxt-generator-base.dll "$PWD"/../data/
rsync -a "$BIN_DIR"/robots-nxt-kit.dll "$PWD"/../data/
rsync -a "$BIN_DIR"/qextserialport.dll "$PWD"/../data/
rsync -a "$BIN_DIR"/libusb-1.0.dll "$PWD"/../data
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ rsync -a "$BIN_DIR"/libBox2D.so* "$PW
rsync -a "$BIN_DIR"/librobots-generator-base.so* "$PWD"/../data/lib/
rsync -a "$BIN_DIR"/librobots-kit-base.so* "$PWD"/../data/lib/
rsync -a "$BIN_DIR"/librobots-utils.so* "$PWD"/../data/lib/
rsync -a "$BIN_DIR"/libqextserialport.so* "$PWD/../data/lib"
rsync -a --remove-source-files "$PWD"/../data/externalToolsConfig/ "$PWD"/../data/bin/externalToolsConfig/
rsync -a "$BIN_DIR/run_maze_generator.sh" "$PWD/../data/bin/"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ rsync -a "$BIN_DIR"/libBox2D*.dylib "
rsync -a "$BIN_DIR"/librobots-generator-base*.dylib "$BUNDLE_CONTENTS/Lib/"
rsync -a "$BIN_DIR"/librobots-kit-base*.dylib "$BUNDLE_CONTENTS/Lib/"
rsync -a "$BIN_DIR"/librobots-utils*.dylib "$BUNDLE_CONTENTS/Lib/"
rsync -a "$BIN_DIR"/libqextserialport*.dylib "$BUNDLE_CONTENTS/Lib"

copy_qt_lib QtMultimedia
copy_qt_lib QtNetwork
Expand All @@ -31,7 +30,6 @@ fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/libBox2D.1.0.0.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/librobots-generator-base.1.0.0.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/librobots-kit-base.1.0.0.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/librobots-utils.1.0.0.dylib"
fix_qreal_dependencies "$BUNDLE_CONTENTS/Lib/libqextserialport.1.0.0.dylib"

# Cleaning up prebuild-common.sh results...
rm -rf "$PWD"/../data/plugins/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ rsync -a "$BIN_DIR"/Box2D.dll "$PWD"
rsync -a "$BIN_DIR"/robots-generator-base.dll "$PWD"/../data
rsync -a "$BIN_DIR"/robots-kit-base.dll "$PWD"/../data
rsync -a "$BIN_DIR"/robots-utils.dll "$PWD"/../data
rsync -a "$BIN_DIR/qextserialport.dll" "$PWD/../data/"


rsync -a "$QT_LIB/Qt5Network.dll" "$PWD/../data"
Expand Down
6 changes: 2 additions & 4 deletions plugins/robots/checker/scripts/build-checker-installer.sh
Original file line number Diff line number Diff line change
Expand Up @@ -127,17 +127,15 @@ $qRealDir/libtrikqscintilla2.so* \
$qRealDir/libqrtext.so* .

# Copying TRIKStudio plugins
rsync -av $qRealDir/libqextserialport.so* \
$qRealDir/librobots-2d-model.so* \
rsync -av $qRealDir/librobots-2d-model.so* \
$qRealDir/librobots-interpreter-core.so* \
$qRealDir/librobots-trik-kit-interpreter-common.so* \
$qRealDir/librobots-kit-base.so* \
$qRealDir/librobots-trik-kit.so* \
$qRealDir/librobots-utils.so* \
$qRealDir/libBox2D.so* .

rsync -av $qRealDir/libqextserialport.so* \
$qRealDir/librobots-ev3-kit.so* \
rsync -av $qRealDir/librobots-ev3-kit.so* \
$qRealDir/librobots-utils.so* \
$qRealDir/librobots-kit-base.so* \
.
Expand Down
2 changes: 1 addition & 1 deletion plugins/robots/common/ev3Kit/ev3Kit.pri
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
QT += widgets

links(qrkernel qrutils qrtext qrgui-preferences-dialog qrgui-tool-plugin-interface \
robots-utils robots-kit-base robots-2d-model qextserialport \
robots-utils robots-kit-base robots-2d-model \
)

includes(plugins/robots/common/ev3Kit \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

#include "ev3RobotCommunicationThread.h"

class QextSerialPort;
class QSerialPort;
class QTimer;

namespace ev3 {
Expand Down Expand Up @@ -49,7 +49,7 @@ private slots:

QByteArray receive(int size) const override;

QextSerialPort *mPort;
QSerialPort *mPort;

/// Timer that sends messages to robot to check that connection is still alive
QTimer *mKeepAliveTimer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@
#include <QtCore/QTimer>
#include <QtCore/QThread>
#include <QtCore/QFileInfo>

#include <QtSerialPort/QSerialPort>
#include <qrkernel/settingsManager.h>
#include <plugins/robots/thirdparty/qextserialport/qextserialport/src/qextserialport.h>

#include "ev3Kit/communication/commandConstants.h"
#include "ev3Kit/communication/ev3DirectCommand.h"

#include <QsLog.h>

const int keepAliveResponseSize = 5;
const int readTimeoutMsec = 3000;

using namespace ev3::communication;

Expand Down Expand Up @@ -68,13 +68,12 @@ bool BluetoothRobotCommunicationThread::connect()
}

const QString portName = qReal::SettingsManager::value("Ev3BluetoothPortName").toString();
mPort = new QextSerialPort(portName, QextSerialPort::Polling, this);
mPort->setBaudRate(BAUD9600);
mPort->setFlowControl(FLOW_OFF);
mPort->setParity(PAR_NONE);
mPort->setDataBits(DATA_8);
mPort->setStopBits(STOP_2);
mPort->setTimeout(3000);
mPort = new QSerialPort(portName, this);
mPort->setBaudRate(QSerialPort::BaudRate::Baud9600);
mPort->setFlowControl(QSerialPort::FlowControl::NoFlowControl);
mPort->setParity(QSerialPort::Parity::NoParity);
mPort->setDataBits(QSerialPort::DataBits::Data8);
mPort->setStopBits(QSerialPort::StopBits::TwoStop);

mPort->open(QIODevice::ReadWrite | QIODevice::Unbuffered);

Expand Down Expand Up @@ -123,7 +122,10 @@ bool BluetoothRobotCommunicationThread::send1(const QByteArray &buffer) const

QByteArray BluetoothRobotCommunicationThread::receive(int size) const
{
return mPort ? mPort->read(size) : QByteArray();
if (!mPort || !mPort->waitForReadyRead(readTimeoutMsec)) {
return {};
}
return mPort->read(size);
}

void BluetoothRobotCommunicationThread::checkForConnection()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

#include <utils/robotCommunication/robotCommunicationThreadInterface.h>

class QextSerialPort;
class QSerialPort;
class QTimer;

namespace nxt {
Expand Down Expand Up @@ -47,7 +47,7 @@ private slots:
bool send(const QByteArray &buffer) const;
QByteArray receive(int size) const;

QextSerialPort *mPort;
QSerialPort *mPort;

/// Timer that sends messages to robot to check that connection is still alive
QTimer *mKeepAliveTimer;
Expand Down
2 changes: 1 addition & 1 deletion plugins/robots/common/nxtKit/nxtKit.pri
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ includes(plugins/robots/common/nxtKit \
)

links(qrkernel qrutils qrtext qrgui-preferences-dialog qrgui-tool-plugin-interface \
robots-utils robots-kit-base qextserialport )
robots-utils robots-kit-base )

PKGCONFIG *= libusb-1.0
CONFIG += link_pkgconfig
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@
#include <ctime>

#include <qrkernel/settingsManager.h>
#include <plugins/robots/thirdparty/qextserialport/qextserialport/src/qextserialport.h>

#include <QtSerialPort/QSerialPort>
#include "nxtKit/communication/nxtCommandConstants.h"

const int keepAliveResponseSize = 9;
const int getFirmwareVersionResponseSize = 9;
const int readTimeoutMsec = 3000;

using namespace nxt::communication;

Expand Down Expand Up @@ -71,13 +71,12 @@ bool BluetoothRobotCommunicationThread::connect()
}

const QString portName = qReal::SettingsManager::value("NxtBluetoothPortName").toString();
mPort = new QextSerialPort(portName, QextSerialPort::Polling);
mPort->setBaudRate(BAUD9600);
mPort->setFlowControl(FLOW_OFF);
mPort->setParity(PAR_NONE);
mPort->setDataBits(DATA_8);
mPort->setStopBits(STOP_2);
mPort->setTimeout(3000);
mPort = new QSerialPort(portName, this);
mPort->setBaudRate(QSerialPort::BaudRate::Baud9600);
mPort->setFlowControl(QSerialPort::FlowControl::NoFlowControl);
mPort->setParity(QSerialPort::Parity::NoParity);
mPort->setDataBits(QSerialPort::DataBits::Data8);
mPort->setStopBits(QSerialPort::StopBits::TwoStop);

mPort->open(QIODevice::ReadWrite | QIODevice::Unbuffered);

Expand Down Expand Up @@ -128,6 +127,9 @@ bool BluetoothRobotCommunicationThread::send(const QByteArray &buffer) const

QByteArray BluetoothRobotCommunicationThread::receive(int size) const
{
if (!mPort || !mPort->waitForReadyRead(readTimeoutMsec)) {
return {};
}
return mPort->read(size);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ includes(plugins/robots/common/kitBase \
)

links(qrkernel qrutils qrtext qrgui-preferences-dialog qrgui-tool-plugin-interface \
robots-utils robots-kit-base robots-ev3-kit robots-2d-model qextserialport)
robots-utils robots-kit-base robots-ev3-kit robots-2d-model)

win32: QMAKE_CXXFLAGS += -Wno-error=pedantic

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
QT += widgets

links(qrkernel qrutils qrtext qrgui-preferences-dialog qrgui-tool-plugin-interface \
robots-utils robots-kit-base robots-2d-model robots-nxt-kit qextserialport )
robots-utils robots-kit-base robots-2d-model robots-nxt-kit)

includes(plugins/robots/common/kitBase \
plugins/robots/common/twoDModel \
Expand Down
47 changes: 0 additions & 47 deletions plugins/robots/thirdparty/qextserialport/.gitignore

This file was deleted.

1 change: 0 additions & 1 deletion plugins/robots/thirdparty/qextserialport/qextserialport
Submodule qextserialport deleted from ada321
13 changes: 0 additions & 13 deletions plugins/robots/thirdparty/qextserialport/qextserialport.pro

This file was deleted.

1 change: 0 additions & 1 deletion plugins/robots/thirdparty/thirdparty.pro
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
TEMPLATE = subdirs

SUBDIRS += \
qextserialport \
libusb-1.0 \
trikRuntime \
Box2D \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@
#include "utils/utilsDeclSpec.h"
#include "robotCommunicationThreadInterface.h"

class QextSerialPort;

namespace utils {
namespace robotCommunication {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@

#include "utils/robotCommunication/robotCommunicator.h"

#include <plugins/robots/thirdparty/qextserialport/qextserialport/src/qextserialenumerator.h>
#include <plugins/robots/thirdparty/qextserialport/qextserialport/src/qextserialport.h>

using namespace utils::robotCommunication;

RobotCommunicator::RobotCommunicator(QObject *parent)
Expand Down
8 changes: 4 additions & 4 deletions plugins/robots/utils/src/widgets/comPortPicker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@
* See the License for the specific language governing permissions and
* limitations under the License. */

#include <QtSerialPort/QSerialPortInfo>
#include "utils/widgets/comPortPicker.h"

#include <qrkernel/settingsManager.h>
#include <qrkernel/settingsListener.h>
#include <plugins/robots/thirdparty/qextserialport/qextserialport/src/qextserialenumerator.h>

using namespace qReal::ui;

Expand All @@ -33,13 +33,13 @@ ComPortPicker::ComPortPicker(const QString &key, QObject *parent)

void ComPortPicker::populate(QComboBox &box, const QString &settingsKey)
{
const QList<QextPortInfo> ports = QextSerialEnumerator::getPorts();
auto ports = QSerialPortInfo::availablePorts();
const QString defaultPortName = SettingsManager::value(settingsKey).toString();
box.clear();

for (const QextPortInfo &info : ports) {
for (auto &&info : ports) {
const QRegExp portNameRegexp("COM\\d+", Qt::CaseInsensitive);
if (portNameRegexp.indexIn(info.portName) != -1) {
if (portNameRegexp.indexIn(info.portName()) != -1) {
const QString portName = portNameRegexp.cap();
box.addItem(portName);
}
Expand Down
Loading

0 comments on commit bae4c9f

Please sign in to comment.