From 0fb27dff7b995ed2ea0ce61c130ed696002c1ce3 Mon Sep 17 00:00:00 2001 From: zcy <290198252@qq.com> Date: Mon, 12 Apr 2021 23:39:06 +0800 Subject: [PATCH] no message --- protoDebuger/CMakeLists.txt | 4 +- protoDebuger/CMakeLists.txt.user | 551 +++++++++++++++--------------- protoDebuger/SerialSelect.qml | 37 +- protoDebuger/main.cpp | 47 +-- protoDebuger/main.qml | 9 +- protoDebuger/serialcontroller.cpp | 65 ++-- protoDebuger/serialcontroller.h | 24 +- protoDebuger/sharedata.cpp | 17 + protoDebuger/sharedata.h | 25 ++ 9 files changed, 436 insertions(+), 343 deletions(-) diff --git a/protoDebuger/CMakeLists.txt b/protoDebuger/CMakeLists.txt index 01c8166..95bfce8 100644 --- a/protoDebuger/CMakeLists.txt +++ b/protoDebuger/CMakeLists.txt @@ -79,5 +79,7 @@ add_executable(protoDebuger #最后需要参与链接生成的是 target_compile_definitions(protoDebuger PRIVATE $<$,$>:QT_QML_DEBUG>) +find_package( Qt5SerialPort) + target_link_libraries(protoDebuger - PRIVATE Qt5::Core Qt5::Quick Qt5::Widgets) # 指定引入的QT功能,和qmake .pro 文件中的QT+= XXX类似 + PRIVATE Qt5::Core Qt5::Quick Qt5::Widgets Qt5::SerialPort ) # 指定引入的QT功能,和qmake .pro 文件中的QT+= XXX类似 diff --git a/protoDebuger/CMakeLists.txt.user b/protoDebuger/CMakeLists.txt.user index 758dd9d..b7e4a2f 100644 --- a/protoDebuger/CMakeLists.txt.user +++ b/protoDebuger/CMakeLists.txt.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -335,6 +335,284 @@ ProjectExplorer.Project.Target.1 + + Desktop Qt 5.14.0 MSVC2017 32bit + Desktop Qt 5.14.0 MSVC2017 32bit + qt.qt5.5140.win32_msvc2017_kit + 0 + 0 + 0 + + + CMAKE_BUILD_TYPE:STRING=Debug + CMAKE_CXX_COMPILER:STRING=%{Compiler:Executable:Cxx} + CMAKE_C_COMPILER:STRING=%{Compiler:Executable:C} + CMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX} + QT_QMAKE_EXECUTABLE:STRING=%{Qt:qmakeExecutable} + + D:/project/c++qt/proto-debuger/build-protoDebuger-Desktop_Qt_5_14_0_MSVC2017_32bit-Debug + + + + + all + + true + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + + clean + + true + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + true + + Path=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\\Extensions\Microsoft\IntelliCode\CLI;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX64\x86;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX64\x64;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VC\VCPackages;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\bin\Roslyn;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Team Tools\Performance Tools;C:\Program Files (x86)\Microsoft Visual Studio\Shared\Common\VSPerfCollectionTools\vs2019\;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\devinit;C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64;C:\Program Files (x86)\Windows Kits\10\bin\x64;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\\MSBuild\Current\Bin;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\;H:\anaconda\condabin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Java\jdk1.8.0_251\bin;D:\Program Files\Git\cmd;D:\Program Files\go\bin;D:\Program Files\nodejs\;C:\Program Files (x86)\Conan\conan;D:\Program Files\CMake\bin;D:\Program Files\ffmpeg-20181001-dcbd89e-win64-static\bin;H:\anaconda;C:\ProgramData\chocolatey\bin;C:\OpenSSL-Win64\bin\;C:\rosenv\opencv\x64\vc16\bin;C:\ProgramData\chocolatey\lib\cunit\lib;C:\ProgramData\chocolatey\lib\tinyxml2\lib;C:\ProgramData\chocolatey\lib\log4cxx\lib;C:\ProgramData\chocolatey\lib\bullet\lib;C:\Program Files\Graphviz 0.1.1\bin;H:\anaconda\Scripts;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\dotnet\;D:\Program Files\lua_5.1;D:\Program Files\lua_5.1\clibs;D:\Home\depot_tools;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Users\29019\.dnx\bin;C:\Program Files (x86)\Conan\conan;C:\Users\29019\AppData\Local\Microsoft\WindowsApps;C:\Users\29019\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\29019\AppData\Local\Android\Sdk\tools;C:\Users\29019\AppData\Roaming\npm;C:\Users\29019\.dotnet\tools;C:\laragon\bin\composer;C:\laragon\bin\php\php-7.2.11-Win32-VC15-x64;D:\project\golang\bin;C:\Users\29019\AppData\Local\Programs\Microsoft VS Code;D:\project\toolkit\odb-2.4.0-i686-windows\odb-2.4.0-i686-windows\bin;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja;H:\Qt\Tools\QtCreator\bin + TMP=H:\tmp + + Debug + CMakeProjectManager.CMakeBuildConfiguration + + + + CMAKE_BUILD_TYPE:STRING=Release + CMAKE_CXX_COMPILER:STRING=%{Compiler:Executable:Cxx} + CMAKE_C_COMPILER:STRING=%{Compiler:Executable:C} + CMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX} + QT_QMAKE_EXECUTABLE:STRING=%{Qt:qmakeExecutable} + + D:/project/c++qt/proto-debuger.git/build-protoDebuger-Desktop_Qt_5_14_0_MSVC2017_32bit-Release + + + + + all + + true + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + + clean + + true + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + true + + Path=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\\Extensions\Microsoft\IntelliCode\CLI;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX64\x86;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX64\x64;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VC\VCPackages;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\bin\Roslyn;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Team Tools\Performance Tools;C:\Program Files (x86)\Microsoft Visual Studio\Shared\Common\VSPerfCollectionTools\vs2019\;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\devinit;C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64;C:\Program Files (x86)\Windows Kits\10\bin\x64;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\\MSBuild\Current\Bin;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\;H:\anaconda\condabin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Java\jdk1.8.0_251\bin;D:\Program Files\Git\cmd;D:\Program Files\go\bin;D:\Program Files\nodejs\;C:\Program Files (x86)\Conan\conan;D:\Program Files\CMake\bin;D:\Program Files\ffmpeg-20181001-dcbd89e-win64-static\bin;H:\anaconda;C:\ProgramData\chocolatey\bin;C:\OpenSSL-Win64\bin\;C:\rosenv\opencv\x64\vc16\bin;C:\ProgramData\chocolatey\lib\cunit\lib;C:\ProgramData\chocolatey\lib\tinyxml2\lib;C:\ProgramData\chocolatey\lib\log4cxx\lib;C:\ProgramData\chocolatey\lib\bullet\lib;C:\Program Files\Graphviz 0.1.1\bin;H:\anaconda\Scripts;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\dotnet\;D:\Program Files\lua_5.1;D:\Program Files\lua_5.1\clibs;D:\Home\depot_tools;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Users\29019\.dnx\bin;C:\Program Files (x86)\Conan\conan;C:\Users\29019\AppData\Local\Microsoft\WindowsApps;C:\Users\29019\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\29019\AppData\Local\Android\Sdk\tools;C:\Users\29019\AppData\Roaming\npm;C:\Users\29019\.dotnet\tools;C:\laragon\bin\composer;C:\laragon\bin\php\php-7.2.11-Win32-VC15-x64;D:\project\golang\bin;C:\Users\29019\AppData\Local\Programs\Microsoft VS Code;D:\project\toolkit\odb-2.4.0-i686-windows\odb-2.4.0-i686-windows\bin;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja;H:\Qt\Tools\QtCreator\bin + TMP=H:\tmp + + Release + CMakeProjectManager.CMakeBuildConfiguration + + + + CMAKE_BUILD_TYPE:STRING=RelWithDebInfo + CMAKE_CXX_COMPILER:STRING=%{Compiler:Executable:Cxx} + CMAKE_C_COMPILER:STRING=%{Compiler:Executable:C} + CMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX} + QT_QMAKE_EXECUTABLE:STRING=%{Qt:qmakeExecutable} + + D:/project/c++qt/proto-debuger.git/build-protoDebuger-Desktop_Qt_5_14_0_MSVC2017_32bit-RelWithDebInfo + + + + + all + + true + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + + clean + + true + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Release with Debug Information + CMakeProjectManager.CMakeBuildConfiguration + + + + CMAKE_BUILD_TYPE:STRING=MinSizeRel + CMAKE_CXX_COMPILER:STRING=%{Compiler:Executable:Cxx} + CMAKE_C_COMPILER:STRING=%{Compiler:Executable:C} + CMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX} + QT_QMAKE_EXECUTABLE:STRING=%{Qt:qmakeExecutable} + + D:/project/c++qt/proto-debuger.git/build-protoDebuger-Desktop_Qt_5_14_0_MSVC2017_32bit-MinSizeRel + + + + + all + + true + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + + clean + + true + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Minimum Size Release + CMakeProjectManager.CMakeBuildConfiguration + + 4 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + ProjectExplorer.DefaultDeployConfiguration + + 1 + + + dwarf + + cpu-cycles + + + 250 + + -e + cpu-cycles + --call-graph + dwarf,4096 + -F + 250 + + -F + true + 4096 + false + false + 1000 + + true + + false + false + false + false + true + 0.01 + 10 + true + kcachegrind + 1 + 25 + + 1 + true + false + true + valgrind + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + 2 + + protoDebuger + CMakeProjectManager.CMakeRunConfiguration.protoDebuger + protoDebuger + + false + + false + true + true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.2 Desktop Qt 5.14.0 MSVC2017 64bit Desktop Qt 5.14.0 MSVC2017 64bit @@ -530,277 +808,6 @@ 0 - - ProjectExplorer.Project.Target.2 - - Desktop Qt 5.14.0 MSVC2017 32bit - Desktop Qt 5.14.0 MSVC2017 32bit - qt.qt5.5140.win32_msvc2017_kit - 0 - 0 - 0 - - - CMAKE_BUILD_TYPE:STRING=Debug - CMAKE_CXX_COMPILER:STRING=%{Compiler:Executable:Cxx} - CMAKE_C_COMPILER:STRING=%{Compiler:Executable:C} - CMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX} - QT_QMAKE_EXECUTABLE:STRING=%{Qt:qmakeExecutable} - - D:/project/c++qt/proto-debuger.git/build-protoDebuger-Desktop_Qt_5_14_0_MSVC2017_32bit-Debug - - - - - all - - true - CMakeProjectManager.MakeStep - - 1 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - - - clean - - true - CMakeProjectManager.MakeStep - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - CMakeProjectManager.CMakeBuildConfiguration - - - - CMAKE_BUILD_TYPE:STRING=Release - CMAKE_CXX_COMPILER:STRING=%{Compiler:Executable:Cxx} - CMAKE_C_COMPILER:STRING=%{Compiler:Executable:C} - CMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX} - QT_QMAKE_EXECUTABLE:STRING=%{Qt:qmakeExecutable} - - D:/project/c++qt/proto-debuger.git/build-protoDebuger-Desktop_Qt_5_14_0_MSVC2017_32bit-Release - - - - - all - - true - CMakeProjectManager.MakeStep - - 1 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - - - clean - - true - CMakeProjectManager.MakeStep - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - CMakeProjectManager.CMakeBuildConfiguration - - - - CMAKE_BUILD_TYPE:STRING=RelWithDebInfo - CMAKE_CXX_COMPILER:STRING=%{Compiler:Executable:Cxx} - CMAKE_C_COMPILER:STRING=%{Compiler:Executable:C} - CMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX} - QT_QMAKE_EXECUTABLE:STRING=%{Qt:qmakeExecutable} - - D:/project/c++qt/proto-debuger.git/build-protoDebuger-Desktop_Qt_5_14_0_MSVC2017_32bit-RelWithDebInfo - - - - - all - - true - CMakeProjectManager.MakeStep - - 1 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - - - clean - - true - CMakeProjectManager.MakeStep - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release with Debug Information - CMakeProjectManager.CMakeBuildConfiguration - - - - CMAKE_BUILD_TYPE:STRING=MinSizeRel - CMAKE_CXX_COMPILER:STRING=%{Compiler:Executable:Cxx} - CMAKE_C_COMPILER:STRING=%{Compiler:Executable:C} - CMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX} - QT_QMAKE_EXECUTABLE:STRING=%{Qt:qmakeExecutable} - - D:/project/c++qt/proto-debuger.git/build-protoDebuger-Desktop_Qt_5_14_0_MSVC2017_32bit-MinSizeRel - - - - - all - - true - CMakeProjectManager.MakeStep - - 1 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - - - clean - - true - CMakeProjectManager.MakeStep - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Minimum Size Release - CMakeProjectManager.CMakeBuildConfiguration - - 4 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - - ProjectExplorer.CustomExecutableRunConfiguration - - - false - - false - true - false - false - true - - - - 1 - - ProjectExplorer.Project.Target.3 diff --git a/protoDebuger/SerialSelect.qml b/protoDebuger/SerialSelect.qml index 860d335..283a3b5 100644 --- a/protoDebuger/SerialSelect.qml +++ b/protoDebuger/SerialSelect.qml @@ -4,12 +4,12 @@ import QtQuick.Layouts 1.0 Item { -// width: 800 -// height: 600 + objectName: "SerialSelect" width: parent.width - 80 height: parent.height - + property var comlist: [] visible: true + property bool uart_open: false ColorAnimation { from: "white" @@ -42,12 +42,11 @@ Item { renderType: Text.QtRendering horizontalAlignment: Text.AlignHCenter } - ComboBox { - id: comboBox + id: comPort width: 200 + model: comlist } - Label { id: label1 text: qsTr("波特率: ") @@ -95,7 +94,7 @@ Item { } ComboBox { - id: data_bits + id: dataBits width: 200 currentIndex: 3 @@ -121,7 +120,7 @@ Item { } ComboBox { - id: comboBox3 + id: stopBits width: 200 model: [ @@ -144,7 +143,7 @@ Item { } ComboBox { - id: comboBox4 + id: verify width: 200 model: [ @@ -169,7 +168,7 @@ Item { } ComboBox { - id: comboBox5 + id: flow width: 200 model: [ "none", @@ -184,6 +183,24 @@ Item { x: 97 y: 339 text: qsTr("打开串口") + onClicked: { + if(!uart_open){ + let ret = DataWrap.OpenUart(comPort.currentText, + baurate.currentText, + dataBits.currentText, + stopBits.currentText, + flow.currentText) + if(ret == 0){ + uart_open = true + button.text = "关闭串口" + } + }else{ + + + } + + + } } } } diff --git a/protoDebuger/main.cpp b/protoDebuger/main.cpp index cdcf995..3cfc4d8 100644 --- a/protoDebuger/main.cpp +++ b/protoDebuger/main.cpp @@ -2,37 +2,46 @@ #include #include #include -#include "lua_wraper.h" #include +#include +#include +#include +#include +#include + #include "sharedata.h" #include "serialcontroller.h" +#include "lua_wraper.h" + + +ShareData gGlobal; void RegisterQmlType(){ - qmlRegisterType("ShareData", 1, 0, "Data"); + qmlRegisterSingletonInstance("ShareData", 1, 0, "DataWrap",&gGlobal); } int main(int argc, char *argv[]) { QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QApplication app(argc, argv); -// TestLua(); - QQmlApplicationEngine engine; - const QUrl url(QStringLiteral("qrc:/main.qml")); - QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, - &app, [url](QObject *obj, const QUrl &objUrl) { - if (!obj && url == objUrl) - QCoreApplication::exit(-1); - }, Qt::QueuedConnection); - engine.load(url); + QGuiApplication app(argc, argv); - SerialController *pSerial = new SerialController(); - QList list = pSerial->GetPorts(); - for(int i = 0 ;i < list.size();i++){ - QTextCodec *codec = QTextCodec::codecForName("UTF-16"); - QString string = codec->fromUnicode(list[i].portName.toUtf8()); - qDebug()<setContextProperty("DataWrap",&gGlobal); + + view.show(); + QObject *qmlObject = view.findChild("SerialSelect",Qt::FindChildOption::FindChildrenRecursively); + qmlObject->setProperty("comlist",comList); + return app.exec(); } diff --git a/protoDebuger/main.qml b/protoDebuger/main.qml index 944714e..5abc0dc 100644 --- a/protoDebuger/main.qml +++ b/protoDebuger/main.qml @@ -4,13 +4,13 @@ import QtQuick.Window 2.14 import QtQuick.Controls 2.14 import QtQuick.Layouts 1.12 -ApplicationWindow { +Rectangle { id: root width: 800 height: 600 visible: true - minimumHeight: 600 - minimumWidth: 800 +// minimumHeight: 600 +// minimumWidth: 800 Flow{ @@ -81,6 +81,9 @@ ApplicationWindow { net_choose.visible = false proto_debug.visible = true + console.log(DataWrap) + console.log(DataWrap._txt) + DataWrap.getValFromQml(1) } background: Image { anchors.fill: parent diff --git a/protoDebuger/serialcontroller.cpp b/protoDebuger/serialcontroller.cpp index e710e42..cf182e9 100644 --- a/protoDebuger/serialcontroller.cpp +++ b/protoDebuger/serialcontroller.cpp @@ -7,14 +7,19 @@ SerialController::SerialController(QObject *parent) : QObject(parent) } -int SerialController::OpenSerial(QString port, PortSettings setting) + +int SerialController::OpenSerial(QString port, QString baudRate, QString dataBits, QString stopBits, QString flow) { - //PortSettings settings = {BAUD115200, DATA_8, PAR_NONE, STOP_1, FLOW_OFF, 100}; - mCurrentPort = new QextSerialPort(port, setting, QextSerialPort::EventDriven); + GetSetting(baudRate,dataBits,stopBits,flow); + mCurrentPort = new QSerialPort(); if(nullptr == mCurrentPort){ return NULLPOINTER; } mCurrentPort->setPortName(port); + mCurrentPort->setBaudRate(mBaudrate); + mCurrentPort->setDataBits(mDataBits); + mCurrentPort->setStopBits(mStopBits); + mCurrentPort->setFlowControl(mFlow); mCurrentPort->open(QIODevice::ReadWrite); if(!mCurrentPort->isOpen()){ qDebug()<< mCurrentPort->errorString(); @@ -23,7 +28,6 @@ int SerialController::OpenSerial(QString port, PortSettings setting) connect(mCurrentPort, SIGNAL(readyRead()), SLOT(ReadyRead())); connect(mCurrentPort, SIGNAL(aboutToClose()),SLOT(AboutClose())); this->mConnected = true; - this->mSetting = setting; return OK; } @@ -35,36 +39,15 @@ int SerialController::CloseSerial() return OK; } -void SerialController::FlushPorts() -{ - mPorts = QextSerialEnumerator::getPorts(); - int strLenMax = 0; - int index = 0; - int maxIndex = 0; - qDebug() << "List of ports:"; - foreach (QextPortInfo info, mPorts) { - qDebug() << "port name:" << QString().fromUtf8(info.portName.toUtf8()); - qDebug() << "friendly name:" << info.friendName; - qDebug() << "physical name:" << info.physName; - qDebug() << "enumerator name:" << info.enumName; - qDebug() << "vendor ID:" << info.vendorID; - qDebug() << "product ID:" << info.productID; - qDebug() << "==================================="; - if (info.friendName.length() > strLenMax){ - strLenMax = info.friendName.length(); - maxIndex = index; - } - index ++; - } -} -QList SerialController::GetPorts() +QList SerialController::GetPorts() { - FlushPorts(); + this->mPorts = QSerialPortInfo::availablePorts(); return mPorts; } + int SerialController::SetProto(QSerialProto * proto) { this->mProto = proto; @@ -79,9 +62,33 @@ int SerialController::SendData(uint8_t *data, uint8_t len) return ERROR_SEND; } +void SerialController::GetSetting(QString baudRate, QString dataBits, QString stopBits, QString flow) +{ + + if (stopBits == "1") { + mStopBits = QSerialPort::StopBits::OneStop; + } + if (stopBits == "1.5") { + mStopBits = QSerialPort::StopBits::OneAndHalfStop; + } + if (stopBits == "2") { + mStopBits = QSerialPort::StopBits::TwoStop; + } + if(flow == "none") + mFlow = QSerialPort::FlowControl::NoFlowControl; + if(flow == "software") + mFlow = QSerialPort::FlowControl::SoftwareControl; + if(flow == "hardware") + mFlow = QSerialPort::FlowControl::HardwareControl; + mBaudrate = baudRate.toUInt(); + mDataBits = (QSerialPort::DataBits)dataBits.toUInt(); + mParity = QSerialPort::Parity::NoParity; + +} + void SerialController::ReadyRead() { - if (this->mCurrentPort->bytesAvailable() > 3) { + if (this->mCurrentPort->bytesAvailable() > 0) { auto data = mCurrentPort->readAll(); std::string str = data.toStdString().c_str(); qDebug()<< QString::fromStdString(str); diff --git a/protoDebuger/serialcontroller.h b/protoDebuger/serialcontroller.h index 0123fc6..8f99826 100644 --- a/protoDebuger/serialcontroller.h +++ b/protoDebuger/serialcontroller.h @@ -2,12 +2,13 @@ #define SERIALCONTROLLER_H #include -#include -#include #include #include "qserialproto.h" #include #include +#include +#include + #define OK 0 #define NULLPOINTER -1 @@ -29,20 +30,25 @@ public: ERROR_SEND = -2, }SerialError; explicit SerialController(QObject *parent = nullptr); - int OpenSerial(QString port,PortSettings setting); + int OpenSerial(QString port,QString baudRate, QString dataBits, QString stopBits, QString flow); + int CloseSerial(); - void FlushPorts(); - QList GetPorts(); + QList GetPorts(); int SetProto(QSerialProto *); int SendData(uint8_t *,uint8_t len); - + void GetSetting(QString baudRate, QString dataBits, QString stopBits, QString flow); signals: private: - QList mPorts; + QList mPorts; bool mConnected; - PortSettings mSetting; - QextSerialPort *mCurrentPort; + QSerialPort *mCurrentPort; QSerialProto *mProto; + QString mPortName; + uint32_t mBaudrate; + QSerialPort::DataBits mDataBits; + QSerialPort::Parity mParity; + QSerialPort::StopBits mStopBits; + QSerialPort::FlowControl mFlow; }; #endif // SERIALCONTROLLER_H diff --git a/protoDebuger/sharedata.cpp b/protoDebuger/sharedata.cpp index a40f158..29b0ac3 100644 --- a/protoDebuger/sharedata.cpp +++ b/protoDebuger/sharedata.cpp @@ -1,6 +1,23 @@ #include "sharedata.h" ShareData::ShareData(QObject *parent) : QObject(parent) +{ + mSerialController = new SerialController(nullptr); +} + +int ShareData::OpenUart(QString port, QString baudRate, QString dataBits, QString stopBits, QString flow) +{ + qDebug()<OpenSerial(port,baudRate,dataBits,stopBits,flow) == 0){ + qDebug()<<"openserial ok"; + return 0; + } + qDebug()<<"openserial failed"; + return -1; +} + + +int ShareData::CloseSerial() { } diff --git a/protoDebuger/sharedata.h b/protoDebuger/sharedata.h index 47130e2..041d87c 100644 --- a/protoDebuger/sharedata.h +++ b/protoDebuger/sharedata.h @@ -1,20 +1,45 @@ #ifndef SHAREDATA_H #define SHAREDATA_H +#include "serialcontroller.h" #include #include class ShareData : public QObject { Q_OBJECT + + Q_PROPERTY(QString _txt READ rtxt WRITE settxt NOTIFY txtchanged) + public: explicit ShareData(QObject *parent = nullptr); + + QString rtxt() const{ + return _txt; + } + void settxt(QString s){ + _txt = s; + emit txtchanged(); + } + Q_INVOKABLE void getValFromQml(int v) { qDebug() << "value from qml is :" << v; emit valueFromCpp(456); } + + Q_INVOKABLE int OpenUart(QString port,QString baudRate,QString dataBits,QString stopBits, + QString flow); + Q_INVOKABLE int CloseSerial(); + + QString _txt = "hello world\r\n"; + signals: + void txtchanged(); void valueFromCpp(int val); + +private: + SerialController *mSerialController; + }; #endif // SHAREDATA_H