diff --git a/.github/workflows/windows_build_with_installer.yml b/.github/workflows/windows_build_with_installer.yml index a1c2fa6110..4652f51d60 100644 --- a/.github/workflows/windows_build_with_installer.yml +++ b/.github/workflows/windows_build_with_installer.yml @@ -173,6 +173,7 @@ jobs: echo "$PATH" echo ------ cd ${{ env.BUILD_DIR }}/bin + export TRIK_PYTHONPATH=$(cygpath -w "${pythonLocation}/Lib") python "${{ github.workspace }}\buildScripts\tests\fieldstest.py" 2D-model.exe "${{ github.workspace }}\testing_small" - name: Push binaries diff --git a/buildScripts/github/install.sh b/buildScripts/github/install.sh index 20ca0678f4..c09c137e50 100755 --- a/buildScripts/github/install.sh +++ b/buildScripts/github/install.sh @@ -6,7 +6,7 @@ XCODE_VERSION=${XCODE_VERSION:-15.3} SCRIPT_DIR="$(dirname "$(realpath "${BASH_SOURCE[0]}")")" source "$SCRIPT_DIR/utilities.sh" -qt_archives=("qtbase" "qtmultimedia" "qtsvg" "qtscript" "qttools" "qtserialport" "qtimageformats" "qtdeclarative" "qtquickcontrols2" "qttranslations") +qt_archives=("qtbase" "qtmultimedia" "qtsvg" "qtscript" "qttools" "qtserialport" "qtimageformats" "qtdeclarative" "qttranslations") qt_modules=("qtscript") case "$(uname)" in Darwin) @@ -50,8 +50,8 @@ case "$(uname)" in qt5-multimedia-devel qt5-svg-devel qt5-script-devel qt5-tools qt5-serialport-devel elif [ "$ID" = "ubuntu" ]; then sudo apt-get update && sudo apt-get install -y --no-install-recommends ccache curl make bear libusb-1.0-0-dev \ - qtscript5-dev qttools5-dev-tools qtmultimedia5-dev libqt5serialport5-dev libqt5svg5-dev qtdeclarative5-dev \ - libudev-dev "$TRIK_PYTHON"-dev qtbase5-private-dev qtquickcontrols2-5-dev qtwayland5 libqscintilla2-qt5-dev libquazip5-dev + qtscript5-dev qttools5-dev-tools qtmultimedia5-dev libqt5serialport5-dev libqt5svg5-dev \ + libudev-dev "$TRIK_PYTHON"-dev qtbase5-private-dev qtwayland5 libqscintilla2-qt5-dev libquazip5-dev elif [[ "$ID" = "rocky" || "$ID" = '"rocky"' ]]; then GCC_VERSION=${GCC_VERSION:-13} sudo yum update -y && sudo yum install -y --setopt=install_weak_deps=False epel-release @@ -66,7 +66,7 @@ case "$(uname)" in echo $INSTALL_INSTALLER_ENVIRONMENT if [ "$INSTALL_INSTALLER_ENVIRONMENT" != "true" ]; then sudo yum install -y --setopt=install_weak_deps=False qt5-qtscript-devel qt5-qttools-devel qt5-qtmultimedia-devel qt5-qtserialport-devel \ - qt5-qtsvg-devel qt5-qtbase-devel qt5-qtbase-private-devel qt5-qtquickcontrols2 qt5-qtdeclarative-devel qt5-qtwayland + qt5-qtsvg-devel qt5-qtbase-devel qt5-qtbase-private-devel qt5-qtwayland else sudo yum install -y --setopt=install_weak_deps=False libX11-xcb libXext libxkbcommon-x11 fontconfig freetype libXrender #libQt5WaylandCompositor.so.5.15: libQt5Quick.so.5 libQt5Qml.so.5 libQt5QmlModels.so.5 diff --git a/plugins/robots/interpreters/trikKitInterpreterCommon/include/trikKitInterpreterCommon/trikEmulation/displaywidgetemu.h b/plugins/robots/interpreters/trikKitInterpreterCommon/include/trikKitInterpreterCommon/trikEmulation/displaywidgetemu.h deleted file mode 100644 index c27b910065..0000000000 --- a/plugins/robots/interpreters/trikKitInterpreterCommon/include/trikKitInterpreterCommon/trikEmulation/displaywidgetemu.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright 2016-2017 CyberTech Labs Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. */ - -#pragma once - -#include "trikControl/displayWidgetInterface.h" - -namespace trik { - -class DisplayWidgetEmu : trikControl::DisplayWidgetInterface -{ - Q_OBJECT -}; - -} - diff --git a/plugins/robots/interpreters/trikKitInterpreterCommon/include/trikKitInterpreterCommon/trikEmulation/trikdisplayemu.h b/plugins/robots/interpreters/trikKitInterpreterCommon/include/trikKitInterpreterCommon/trikEmulation/trikdisplayemu.h index d964316ed2..a93ec3f5bf 100644 --- a/plugins/robots/interpreters/trikKitInterpreterCommon/include/trikKitInterpreterCommon/trikEmulation/trikdisplayemu.h +++ b/plugins/robots/interpreters/trikKitInterpreterCommon/include/trikKitInterpreterCommon/trikEmulation/trikdisplayemu.h @@ -31,12 +31,6 @@ class Display; class TrikDisplayEmu : public trikControl::DisplayInterface { Q_OBJECT - - // Hide this strange access function to prevent problems, it violates LoD - // To prevent UB the exception is thrown - trikControl::DisplayWidgetInterface &graphicsWidget() override; - - // DisplayInterface interface public: explicit TrikDisplayEmu(const QSharedPointer &model); void init(); diff --git a/plugins/robots/interpreters/trikKitInterpreterCommon/include/trikKitInterpreterCommon/trikbrick.h b/plugins/robots/interpreters/trikKitInterpreterCommon/include/trikKitInterpreterCommon/trikbrick.h index 320a9be5e8..a9308bdd1a 100644 --- a/plugins/robots/interpreters/trikKitInterpreterCommon/include/trikKitInterpreterCommon/trikbrick.h +++ b/plugins/robots/interpreters/trikKitInterpreterCommon/include/trikKitInterpreterCommon/trikbrick.h @@ -48,17 +48,11 @@ namespace trik { class TrikBrick final : public trikControl::BrickInterface { Q_OBJECT - - // BrickInterface interface public: - TrikBrick(const QSharedPointer &model); + explicit TrikBrick(const QSharedPointer &model); ~TrikBrick() override; void reset() override; - QString configVersion() const override {return QString();} - trikControl::DisplayWidgetInterface *graphicsWidget() override { - return nullptr; - } - + QString configVersion() const override {return {};} void init(); void setCurrentDir(const QString &dir); @@ -67,6 +61,10 @@ class TrikBrick final : public trikControl::BrickInterface void reinitImitationCamera(); QDir getCurrentDir() const; + QStringList motorPorts(trikControl::MotorInterface::Type type) const override; + QStringList pwmCapturePorts() const override {return {};} + QStringList sensorPorts(trikControl::SensorInterface::Type type) const override; + QStringList encoderPorts() const override; public Q_SLOTS: void configure(const QString &, const QString &) override {} @@ -78,10 +76,6 @@ public Q_SLOTS: trikControl::MarkerInterface *marker() override; trikControl::PwmCaptureInterface *pwmCapture(const QString &) override {return nullptr;} trikControl::SensorInterface *sensor(const QString &port) override; - QStringList motorPorts(trikControl::MotorInterface::Type type) const override; - QStringList pwmCapturePorts() const override {return {};} - QStringList sensorPorts(trikControl::SensorInterface::Type type) const override; - QStringList encoderPorts() const override; trikControl::VectorSensorInterface *accelerometer() override; trikControl::GyroSensorInterface *gyroscope() override; trikControl::LineSensorInterface *lineSensor(const QString &port) override; diff --git a/plugins/robots/interpreters/trikKitInterpreterCommon/src/trikEmulation/trikdisplayemu.cpp b/plugins/robots/interpreters/trikKitInterpreterCommon/src/trikEmulation/trikdisplayemu.cpp index b477584905..d8c1d21027 100644 --- a/plugins/robots/interpreters/trikKitInterpreterCommon/src/trikEmulation/trikdisplayemu.cpp +++ b/plugins/robots/interpreters/trikKitInterpreterCommon/src/trikEmulation/trikdisplayemu.cpp @@ -35,12 +35,6 @@ Qt::ConnectionType TrikDisplayEmu::callType() const { // return thread() != mDisplay->thread()? Qt::BlockingQueuedConnection : Qt::DirectConnection; } -trikControl::DisplayWidgetInterface &TrikDisplayEmu::graphicsWidget() -{ - Q_UNIMPLEMENTED(); - throw std::logic_error(__PRETTY_FUNCTION__); -} - void TrikDisplayEmu::init() { mDisplay = kitBase::robotModel::RobotModelUtils::findDevice(*mTwoDRobotModel, "DisplayPort"); diff --git a/plugins/robots/interpreters/trikKitInterpreterCommon/trikKitInterpreterCommon.pri b/plugins/robots/interpreters/trikKitInterpreterCommon/trikKitInterpreterCommon.pri index 33e2a91c53..d0394be5f6 100644 --- a/plugins/robots/interpreters/trikKitInterpreterCommon/trikKitInterpreterCommon.pri +++ b/plugins/robots/interpreters/trikKitInterpreterCommon/trikKitInterpreterCommon.pri @@ -80,7 +80,6 @@ HEADERS += \ $$PWD/include/trikKitInterpreterCommon/trikDisplayWidget.h \ $$PWD/include/trikKitInterpreterCommon/trikKitInterpreterPluginBase.h \ $$PWD/include/trikKitInterpreterCommon/trikbrick.h \ - $$PWD/include/trikKitInterpreterCommon/trikEmulation/displaywidgetemu.h \ $$PWD/include/trikKitInterpreterCommon/trikEmulation/trikdisplayemu.h \ $$PWD/include/trikKitInterpreterCommon/trikEmulation/triksensoremu.h \ $$PWD/include/trikKitInterpreterCommon/trikEmulation/trikmotoremu.h \ diff --git a/plugins/robots/thirdparty/trikRuntime/trikControl.pri b/plugins/robots/thirdparty/trikRuntime/trikControl.pri new file mode 100644 index 0000000000..5c3617b017 --- /dev/null +++ b/plugins/robots/thirdparty/trikRuntime/trikControl.pri @@ -0,0 +1,55 @@ +TEMPLATE = lib + +include($$PWD/trikRuntime/global.pri) + +DEFINES += TRIKCONTROL_LIBRARY + +TRIK_CONTROL_ROOT = $$PWD/trikRuntime/trikControl + +HEADERS += \ + $$TRIK_CONTROL_ROOT/include/trikControl/trikControlDeclSpec.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/batteryInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/brickInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/cameraDeviceInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/colorSensorInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/deviceInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/displayInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/encoderInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/eventCodeInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/eventDeviceInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/eventInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/fifoInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/gamepadInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/keysInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/ledInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/lineSensorInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/motorInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/objectSensorInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/pwmCaptureInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/sensorInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/soundSensorInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/vectorSensorInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/gyroSensorInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/markerInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/i2cDeviceInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/utilities.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/lidarInterface.h \ + $$TRIK_CONTROL_ROOT/include/trikControl/irCameraInterface.h \ + $$TRIK_CONTROL_ROOT/src/qtCameraImplementation.h \ + $$TRIK_CONTROL_ROOT/src/imitationCameraImplementation.h \ + +SOURCES += \ + $$TRIK_CONTROL_ROOT/src/utilities.cpp \ + $$TRIK_CONTROL_ROOT/src/brickInterface.cpp \ + $$TRIK_CONTROL_ROOT/src/qtCameraImplementation.cpp \ + $$TRIK_CONTROL_ROOT/src/cameraDeviceInterface.cpp \ + $$TRIK_CONTROL_ROOT/src/imitationCameraImplementation.cpp \ + +INCLUDEPATH += \ + $$TRIK_CONTROL_ROOT/include/ \ + $$TRIK_CONTROL_ROOT/include/trikControl/ \ + +QT += multimedia gui + +links(trikRuntimeQsLog trikKernel) +implementationIncludes(trikKernel) diff --git a/plugins/robots/thirdparty/trikRuntime/trikRuntime b/plugins/robots/thirdparty/trikRuntime/trikRuntime index 0dc61bf88a..b7bd8b0354 160000 --- a/plugins/robots/thirdparty/trikRuntime/trikRuntime +++ b/plugins/robots/thirdparty/trikRuntime/trikRuntime @@ -1 +1 @@ -Subproject commit 0dc61bf88adfe6274210cd73bc4853a8535059de +Subproject commit b7bd8b0354f8e0f75f2af73000f5912c2ff8d585 diff --git a/plugins/robots/thirdparty/trikRuntime/trikRuntime.pro b/plugins/robots/thirdparty/trikRuntime/trikRuntime.pro index e638484f60..57e9b52261 100644 --- a/plugins/robots/thirdparty/trikRuntime/trikRuntime.pro +++ b/plugins/robots/thirdparty/trikRuntime/trikRuntime.pro @@ -16,16 +16,15 @@ TEMPLATE = subdirs include(../../../../global.pri) CONFIG += trik_not_brick +CONFIG += exclude_init_internal_types cache(CONFIG, set) SUBDIRS += \ trikKernel \ trikNetwork \ trikControl \ - trikHal \ trikCommunicator \ trikScriptRunner \ - mlx90640-library \ # translations \ EXTERNAL_SETTINGS = $$PWD/trikRuntimeExternal.pri @@ -39,12 +38,6 @@ trikRuntime_use_local_qslog { cache(EXTERNAL_SETTINGS, set stash super) -tests { - SUBDIRS *= tests - tests.depends = trikScriptRunner trikCommunicator trikKernel - tests.subdir = $$PWD/trikRuntime/tests -} - !trik_nopython { SUBDIRS += PythonQt trikScriptRunner.depends += PythonQt @@ -54,14 +47,11 @@ trikScriptRunner.subdir = $$PWD/trikRuntime/trikScriptRunner trikCommunicator.subdir = $$PWD/trikRuntime/trikCommunicator trikKernel.subdir = $$PWD/trikRuntime/trikKernel trikNetwork.subdir = $$PWD/trikRuntime/trikNetwork -trikControl.subdir = $$PWD/trikRuntime/trikControl +trikControl.file = $$PWD/trikControl.pri translations.subdir = $$PWD/trikRuntime/translations -trikHal.subdir = $$PWD/trikRuntime/trikHal -mlx90640-library.subdir = $$PWD/trikRuntime/mlx90640-library -trikControl.depends = trikKernel trikHal mlx90640-library +trikControl.depends = trikKernel trikNetwork.depends = trikKernel trikScriptRunner.depends += trikControl trikKernel trikNetwork -trikHal.depends = trikKernel trikCommunicator.depends = trikScriptRunner OTHER_FILES += trikRuntime/trikRuntime.pro