From e6adfc59091b691d637d3a44cd753e618fe8c930 Mon Sep 17 00:00:00 2001 From: IKhonakhbeeva <43929571+IKhonakhbeeva@users.noreply.github.com> Date: Tue, 14 Apr 2020 11:41:21 +0300 Subject: [PATCH] Add markerUp and markerDown generation on TRIK model (#861) * Add markerUp and markerDown generation on TRIK model * Updare copyrights Co-Authored-By: iakov Co-authored-by: iakov --- .../simpleGenerators/markerDownGenerator.cpp | 35 +++++++++++++++++++ .../simpleGenerators/markerDownGenerator.h | 33 +++++++++++++++++ .../simpleGenerators/markerUpGenerator.cpp | 30 ++++++++++++++++ .../src/simpleGenerators/markerUpGenerator.h | 33 +++++++++++++++++ .../src/trikGeneratorFactory.cpp | 6 ++++ .../trikGeneratorBase/trikGeneratorBase.pro | 8 +++-- .../trikPythonGeneratorLibrary/templates.qrc | 2 ++ .../templates/markerDown.t | 1 + .../templates/markerUp.t | 1 + .../trikQtsGeneratorLibrary/templates.qrc | 2 ++ .../templates/markerDown.t | 1 + .../templates/markerUp.t | 1 + .../src/coreBlocks/coreBlocksFactory.cpp | 4 +-- 13 files changed, 153 insertions(+), 4 deletions(-) create mode 100644 plugins/robots/generators/trik/trikGeneratorBase/src/simpleGenerators/markerDownGenerator.cpp create mode 100644 plugins/robots/generators/trik/trikGeneratorBase/src/simpleGenerators/markerDownGenerator.h create mode 100644 plugins/robots/generators/trik/trikGeneratorBase/src/simpleGenerators/markerUpGenerator.cpp create mode 100644 plugins/robots/generators/trik/trikGeneratorBase/src/simpleGenerators/markerUpGenerator.h create mode 100644 plugins/robots/generators/trik/trikPythonGeneratorLibrary/templates/markerDown.t create mode 100644 plugins/robots/generators/trik/trikPythonGeneratorLibrary/templates/markerUp.t create mode 100644 plugins/robots/generators/trik/trikQtsGeneratorLibrary/templates/markerDown.t create mode 100644 plugins/robots/generators/trik/trikQtsGeneratorLibrary/templates/markerUp.t diff --git a/plugins/robots/generators/trik/trikGeneratorBase/src/simpleGenerators/markerDownGenerator.cpp b/plugins/robots/generators/trik/trikGeneratorBase/src/simpleGenerators/markerDownGenerator.cpp new file mode 100644 index 0000000000..04c067b67b --- /dev/null +++ b/plugins/robots/generators/trik/trikGeneratorBase/src/simpleGenerators/markerDownGenerator.cpp @@ -0,0 +1,35 @@ +/* Copyright 2020, 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. */ + +#include "markerDownGenerator.h" + +#include +#include "src/converters/backgroundColorConverter.h" + +using namespace trik::simple; +using namespace trik::converters; +using namespace generatorBase::simple; + +MarkerDownGenerator::MarkerDownGenerator(const qrRepo::RepoApi &repo + , generatorBase::GeneratorCustomizer &customizer + , const qReal::Id &id + , QObject *parent) + : BindingGenerator(repo, customizer, id + , "markerDown.t" + , { Binding::createConverting("@@COLOR@@", "Color" + , new BackgroundColorConverter(customizer.factory()->pathsToTemplates())) +// , customizer.factory()->stringPropertyConverter(id, "Color")) + }, parent) +{ +} diff --git a/plugins/robots/generators/trik/trikGeneratorBase/src/simpleGenerators/markerDownGenerator.h b/plugins/robots/generators/trik/trikGeneratorBase/src/simpleGenerators/markerDownGenerator.h new file mode 100644 index 0000000000..d2562c98b3 --- /dev/null +++ b/plugins/robots/generators/trik/trikGeneratorBase/src/simpleGenerators/markerDownGenerator.h @@ -0,0 +1,33 @@ +/* Copyright 2020, 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 + +namespace trik { +namespace simple { + +/// Generator for 'SetBackground' block. +class MarkerDownGenerator : public generatorBase::simple::BindingGenerator +{ +public: + MarkerDownGenerator(const qrRepo::RepoApi &repo + , generatorBase::GeneratorCustomizer &customizer + , const qReal::Id &id + , QObject *parent); +}; + +} +} diff --git a/plugins/robots/generators/trik/trikGeneratorBase/src/simpleGenerators/markerUpGenerator.cpp b/plugins/robots/generators/trik/trikGeneratorBase/src/simpleGenerators/markerUpGenerator.cpp new file mode 100644 index 0000000000..23b6dd977e --- /dev/null +++ b/plugins/robots/generators/trik/trikGeneratorBase/src/simpleGenerators/markerUpGenerator.cpp @@ -0,0 +1,30 @@ +/* Copyright 2020, 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. */ + +#include "markerUpGenerator.h" + +#include +#include "src/converters/backgroundColorConverter.h" + +using namespace trik::simple; +using namespace trik::converters; +using namespace generatorBase::simple; + +MarkerUpGenerator::MarkerUpGenerator(const qrRepo::RepoApi &repo + , generatorBase::GeneratorCustomizer &customizer + , const qReal::Id &id + , QObject *parent) + : BindingGenerator(repo, customizer, id, "markerUp.t", QList(), parent) +{ +} diff --git a/plugins/robots/generators/trik/trikGeneratorBase/src/simpleGenerators/markerUpGenerator.h b/plugins/robots/generators/trik/trikGeneratorBase/src/simpleGenerators/markerUpGenerator.h new file mode 100644 index 0000000000..f4c9b0b4e1 --- /dev/null +++ b/plugins/robots/generators/trik/trikGeneratorBase/src/simpleGenerators/markerUpGenerator.h @@ -0,0 +1,33 @@ +/* Copyright 2020, 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 + +namespace trik { +namespace simple { + +/// Generator for 'SetBackground' block. +class MarkerUpGenerator : public generatorBase::simple::BindingGenerator +{ +public: + MarkerUpGenerator(const qrRepo::RepoApi &repo + , generatorBase::GeneratorCustomizer &customizer + , const qReal::Id &id + , QObject *parent); +}; + +} +} diff --git a/plugins/robots/generators/trik/trikGeneratorBase/src/trikGeneratorFactory.cpp b/plugins/robots/generators/trik/trikGeneratorBase/src/trikGeneratorFactory.cpp index 0956d47112..5d2f3962a9 100644 --- a/plugins/robots/generators/trik/trikGeneratorBase/src/trikGeneratorFactory.cpp +++ b/plugins/robots/generators/trik/trikGeneratorBase/src/trikGeneratorFactory.cpp @@ -50,6 +50,8 @@ #include "simpleGenerators/waitPadPressGenerator.h" #include "simpleGenerators/fileWriteGenerator.h" #include "simpleGenerators/removeFileGenerator.h" +#include "simpleGenerators/markerDownGenerator.h" +#include "simpleGenerators/markerUpGenerator.h" #include "parts/trikDeviceVariables.h" using namespace trik; @@ -142,6 +144,10 @@ AbstractSimpleGenerator *TrikGeneratorFactory::simpleGenerator(const qReal::Id & return new FileWriteGenerator(mRepo, customizer, id, this); } else if (elementType == "TrikRemoveFile") { return new RemoveFileGenerator(mRepo, customizer, id, this); + } else if (elementType == "MarkerDown") { + return new MarkerDownGenerator(mRepo, customizer, id, this); + } else if (elementType == "MarkerUp") { + return new MarkerUpGenerator(mRepo, customizer, id, this); } return GeneratorFactoryBase::simpleGenerator(id, customizer); diff --git a/plugins/robots/generators/trik/trikGeneratorBase/trikGeneratorBase.pro b/plugins/robots/generators/trik/trikGeneratorBase/trikGeneratorBase.pro index f002a46ea4..d3255ae7c2 100644 --- a/plugins/robots/generators/trik/trikGeneratorBase/trikGeneratorBase.pro +++ b/plugins/robots/generators/trik/trikGeneratorBase/trikGeneratorBase.pro @@ -79,7 +79,9 @@ HEADERS += \ $$PWD/src/simpleGenerators/fileWriteGenerator.h \ $$PWD/src/simpleGenerators/removeFileGenerator.h \ $$PWD/src/simpleGenerators/stopCameraGenerator.h \ - $$PWD/src/simpleGenerators/stopVideoStreamingGenerator.h + $$PWD/src/simpleGenerators/stopVideoStreamingGenerator.h \ + $$PWD/src/simpleGenerators/markerDownGenerator.h \ + $$PWD/src/simpleGenerators/markerUpGenerator.h \ SOURCES += \ $$PWD/src/trikBlocksValidator.cpp \ @@ -123,4 +125,6 @@ SOURCES += \ $$PWD/src/simpleGenerators/fileWriteGenerator.cpp \ $$PWD/src/simpleGenerators/removeFileGenerator.cpp \ $$PWD/src/simpleGenerators/stopCameraGenerator.cpp \ - $$PWD/src/simpleGenerators/stopVideoStreamingGenerator.cpp + $$PWD/src/simpleGenerators/stopVideoStreamingGenerator.cpp \ + $$PWD/src/simpleGenerators/markerDownGenerator.cpp \ + $$PWD/src/simpleGenerators/markerUpGenerator.cpp \ diff --git a/plugins/robots/generators/trik/trikPythonGeneratorLibrary/templates.qrc b/plugins/robots/generators/trik/trikPythonGeneratorLibrary/templates.qrc index 5ba6089dd8..3e52dd2a7d 100644 --- a/plugins/robots/generators/trik/trikPythonGeneratorLibrary/templates.qrc +++ b/plugins/robots/generators/trik/trikPythonGeneratorLibrary/templates.qrc @@ -232,5 +232,7 @@ templates/videosensors/stopobjectSensor.t templates/videosensors/stopVideoStreaming.t templates/wait/gyroscope.t + templates/markerDown.t + templates/markerUp.t diff --git a/plugins/robots/generators/trik/trikPythonGeneratorLibrary/templates/markerDown.t b/plugins/robots/generators/trik/trikPythonGeneratorLibrary/templates/markerDown.t new file mode 100644 index 0000000000..e834b26ed6 --- /dev/null +++ b/plugins/robots/generators/trik/trikPythonGeneratorLibrary/templates/markerDown.t @@ -0,0 +1 @@ +brick.marker().down("@@COLOR@@") diff --git a/plugins/robots/generators/trik/trikPythonGeneratorLibrary/templates/markerUp.t b/plugins/robots/generators/trik/trikPythonGeneratorLibrary/templates/markerUp.t new file mode 100644 index 0000000000..369dcdad14 --- /dev/null +++ b/plugins/robots/generators/trik/trikPythonGeneratorLibrary/templates/markerUp.t @@ -0,0 +1 @@ +brick.marker().up() diff --git a/plugins/robots/generators/trik/trikQtsGeneratorLibrary/templates.qrc b/plugins/robots/generators/trik/trikQtsGeneratorLibrary/templates.qrc index d530219c2f..0c9261184b 100644 --- a/plugins/robots/generators/trik/trikQtsGeneratorLibrary/templates.qrc +++ b/plugins/robots/generators/trik/trikQtsGeneratorLibrary/templates.qrc @@ -237,5 +237,7 @@ templates/switch/middle_switch.t templates/switch/oneCase_switch.t templates/wait/gyroscope.t + templates/markerDown.t + templates/markerUp.t diff --git a/plugins/robots/generators/trik/trikQtsGeneratorLibrary/templates/markerDown.t b/plugins/robots/generators/trik/trikQtsGeneratorLibrary/templates/markerDown.t new file mode 100644 index 0000000000..d97dc7d244 --- /dev/null +++ b/plugins/robots/generators/trik/trikQtsGeneratorLibrary/templates/markerDown.t @@ -0,0 +1 @@ +brick.marker().down("@@COLOR@@"); diff --git a/plugins/robots/generators/trik/trikQtsGeneratorLibrary/templates/markerUp.t b/plugins/robots/generators/trik/trikQtsGeneratorLibrary/templates/markerUp.t new file mode 100644 index 0000000000..a765c72d23 --- /dev/null +++ b/plugins/robots/generators/trik/trikQtsGeneratorLibrary/templates/markerUp.t @@ -0,0 +1 @@ +brick.marker().up(); diff --git a/plugins/robots/interpreters/interpreterCore/src/coreBlocks/coreBlocksFactory.cpp b/plugins/robots/interpreters/interpreterCore/src/coreBlocks/coreBlocksFactory.cpp index d88cafffcb..6cadc7266b 100644 --- a/plugins/robots/interpreters/interpreterCore/src/coreBlocks/coreBlocksFactory.cpp +++ b/plugins/robots/interpreters/interpreterCore/src/coreBlocks/coreBlocksFactory.cpp @@ -128,8 +128,8 @@ qReal::IdList CoreBlocksFactory::providedBlocks() const qReal::IdList CoreBlocksFactory::blocksToDisable() const { qReal::IdList result; - - if (!mRobotModelManager->model().name().contains("TwoD")) { + auto robotModelName = mRobotModelManager->model().name(); + if (!robotModelName.contains("TwoD") && !robotModelName.contains("TrikV62")) { result << id("MarkerDown") << id("MarkerUp");