diff --git a/testdll/GeneratedFiles/Debug/moc_testdll.cpp b/testdll/GeneratedFiles/Debug/moc_testdll.cpp new file mode 100644 index 0000000..71506a1 --- /dev/null +++ b/testdll/GeneratedFiles/Debug/moc_testdll.cpp @@ -0,0 +1,131 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'testdll.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.8.0) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "../../testdll.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'testdll.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.8.0. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_testdll_t { + QByteArrayData data[8]; + char stringdata0[65]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_testdll_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_testdll_t qt_meta_stringdata_testdll = { + { +QT_MOC_LITERAL(0, 0, 7), // "testdll" +QT_MOC_LITERAL(1, 8, 12), // "onbeginstart" +QT_MOC_LITERAL(2, 21, 0), // "" +QT_MOC_LITERAL(3, 22, 10), // "onfanzhuan" +QT_MOC_LITERAL(4, 33, 6), // "onstop" +QT_MOC_LITERAL(5, 40, 8), // "onlogcom" +QT_MOC_LITERAL(6, 49, 3), // "str" +QT_MOC_LITERAL(7, 53, 11) // "oninfomotor" + + }, + "testdll\0onbeginstart\0\0onfanzhuan\0" + "onstop\0onlogcom\0str\0oninfomotor" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_testdll[] = { + + // content: + 7, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 0, 39, 2, 0x0a /* Public */, + 3, 0, 40, 2, 0x0a /* Public */, + 4, 0, 41, 2, 0x0a /* Public */, + 5, 1, 42, 2, 0x0a /* Public */, + 7, 0, 45, 2, 0x0a /* Public */, + + // slots: parameters + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::QString, 6, + QMetaType::Void, + + 0 // eod +}; + +void testdll::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + testdll *_t = static_cast(_o); + Q_UNUSED(_t) + switch (_id) { + case 0: _t->onbeginstart(); break; + case 1: _t->onfanzhuan(); break; + case 2: _t->onstop(); break; + case 3: _t->onlogcom((*reinterpret_cast< QString(*)>(_a[1]))); break; + case 4: _t->oninfomotor(); break; + default: ; + } + } +} + +const QMetaObject testdll::staticMetaObject = { + { &QMainWindow::staticMetaObject, qt_meta_stringdata_testdll.data, + qt_meta_data_testdll, qt_static_metacall, Q_NULLPTR, Q_NULLPTR} +}; + + +const QMetaObject *testdll::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *testdll::qt_metacast(const char *_clname) +{ + if (!_clname) return Q_NULLPTR; + if (!strcmp(_clname, qt_meta_stringdata_testdll.stringdata0)) + return static_cast(const_cast< testdll*>(this)); + return QMainWindow::qt_metacast(_clname); +} + +int testdll::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/testdll/GeneratedFiles/qrc_testdll.cpp b/testdll/GeneratedFiles/qrc_testdll.cpp new file mode 100644 index 0000000..67e079a --- /dev/null +++ b/testdll/GeneratedFiles/qrc_testdll.cpp @@ -0,0 +1,46 @@ +/**************************************************************************** +** Resource object code +** +** Created by: The Resource Compiler for Qt version 5.8.0 +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#ifdef QT_NAMESPACE +# define QT_RCC_PREPEND_NAMESPACE(name) ::QT_NAMESPACE::name +# define QT_RCC_MANGLE_NAMESPACE0(x) x +# define QT_RCC_MANGLE_NAMESPACE1(a, b) a##_##b +# define QT_RCC_MANGLE_NAMESPACE2(a, b) QT_RCC_MANGLE_NAMESPACE1(a,b) +# define QT_RCC_MANGLE_NAMESPACE(name) QT_RCC_MANGLE_NAMESPACE2( \ + QT_RCC_MANGLE_NAMESPACE0(name), QT_RCC_MANGLE_NAMESPACE0(QT_NAMESPACE)) +#else +# define QT_RCC_PREPEND_NAMESPACE(name) name +# define QT_RCC_MANGLE_NAMESPACE(name) name +#endif + +#ifdef QT_NAMESPACE +namespace QT_NAMESPACE { +#endif + +#ifdef QT_NAMESPACE +} +#endif + +int QT_RCC_MANGLE_NAMESPACE(qInitResources_testdll)(); +int QT_RCC_MANGLE_NAMESPACE(qInitResources_testdll)() +{ + return 1; +} + +int QT_RCC_MANGLE_NAMESPACE(qCleanupResources_testdll)(); +int QT_RCC_MANGLE_NAMESPACE(qCleanupResources_testdll)() +{ + return 1; +} + +namespace { + struct initializer { + initializer() { QT_RCC_MANGLE_NAMESPACE(qInitResources_testdll)(); } + ~initializer() { QT_RCC_MANGLE_NAMESPACE(qCleanupResources_testdll)(); } + } dummy; +} diff --git a/testdll/GeneratedFiles/ui_testdll.h b/testdll/GeneratedFiles/ui_testdll.h new file mode 100644 index 0000000..9d328c7 --- /dev/null +++ b/testdll/GeneratedFiles/ui_testdll.h @@ -0,0 +1,149 @@ +/******************************************************************************** +** Form generated from reading UI file 'testdll.ui' +** +** Created by: Qt User Interface Compiler version 5.8.0 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_TESTDLL_H +#define UI_TESTDLL_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_testdllClass +{ +public: + QWidget *centralWidget; + QVBoxLayout *verticalLayout; + QHBoxLayout *horizontalLayout_2; + QLabel *label; + QLineEdit *lineEdit; + QSpacerItem *horizontalSpacer; + QHBoxLayout *horizontalLayout; + QPushButton *startmotor; + QPushButton *pushButton; + QPushButton *pushButton_3; + QPushButton *pushButton_2; + QTextEdit *textEdit; + QMenuBar *menuBar; + QToolBar *mainToolBar; + QStatusBar *statusBar; + + void setupUi(QMainWindow *testdllClass) + { + if (testdllClass->objectName().isEmpty()) + testdllClass->setObjectName(QStringLiteral("testdllClass")); + testdllClass->resize(600, 400); + centralWidget = new QWidget(testdllClass); + centralWidget->setObjectName(QStringLiteral("centralWidget")); + verticalLayout = new QVBoxLayout(centralWidget); + verticalLayout->setSpacing(6); + verticalLayout->setContentsMargins(11, 11, 11, 11); + verticalLayout->setObjectName(QStringLiteral("verticalLayout")); + horizontalLayout_2 = new QHBoxLayout(); + horizontalLayout_2->setSpacing(6); + horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2")); + label = new QLabel(centralWidget); + label->setObjectName(QStringLiteral("label")); + + horizontalLayout_2->addWidget(label); + + lineEdit = new QLineEdit(centralWidget); + lineEdit->setObjectName(QStringLiteral("lineEdit")); + + horizontalLayout_2->addWidget(lineEdit); + + horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_2->addItem(horizontalSpacer); + + + verticalLayout->addLayout(horizontalLayout_2); + + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setSpacing(6); + horizontalLayout->setObjectName(QStringLiteral("horizontalLayout")); + startmotor = new QPushButton(centralWidget); + startmotor->setObjectName(QStringLiteral("startmotor")); + + horizontalLayout->addWidget(startmotor); + + pushButton = new QPushButton(centralWidget); + pushButton->setObjectName(QStringLiteral("pushButton")); + + horizontalLayout->addWidget(pushButton); + + pushButton_3 = new QPushButton(centralWidget); + pushButton_3->setObjectName(QStringLiteral("pushButton_3")); + + horizontalLayout->addWidget(pushButton_3); + + pushButton_2 = new QPushButton(centralWidget); + pushButton_2->setObjectName(QStringLiteral("pushButton_2")); + + horizontalLayout->addWidget(pushButton_2); + + + verticalLayout->addLayout(horizontalLayout); + + textEdit = new QTextEdit(centralWidget); + textEdit->setObjectName(QStringLiteral("textEdit")); + + verticalLayout->addWidget(textEdit); + + testdllClass->setCentralWidget(centralWidget); + menuBar = new QMenuBar(testdllClass); + menuBar->setObjectName(QStringLiteral("menuBar")); + menuBar->setGeometry(QRect(0, 0, 600, 23)); + testdllClass->setMenuBar(menuBar); + mainToolBar = new QToolBar(testdllClass); + mainToolBar->setObjectName(QStringLiteral("mainToolBar")); + testdllClass->addToolBar(Qt::TopToolBarArea, mainToolBar); + statusBar = new QStatusBar(testdllClass); + statusBar->setObjectName(QStringLiteral("statusBar")); + testdllClass->setStatusBar(statusBar); + + retranslateUi(testdllClass); + + QMetaObject::connectSlotsByName(testdllClass); + } // setupUi + + void retranslateUi(QMainWindow *testdllClass) + { + testdllClass->setWindowTitle(QApplication::translate("testdllClass", "testdll", Q_NULLPTR)); + label->setText(QApplication::translate("testdllClass", "\351\200\237\345\272\246", Q_NULLPTR)); + lineEdit->setText(QApplication::translate("testdllClass", "2000", Q_NULLPTR)); + startmotor->setText(QApplication::translate("testdllClass", "\346\255\243\350\275\254", Q_NULLPTR)); + pushButton->setText(QApplication::translate("testdllClass", "\345\217\215\350\275\254", Q_NULLPTR)); + pushButton_3->setText(QApplication::translate("testdllClass", "\346\237\245\350\257\242\347\212\266\346\200\201", Q_NULLPTR)); + pushButton_2->setText(QApplication::translate("testdllClass", "\345\201\234\346\255\242", Q_NULLPTR)); + } // retranslateUi + +}; + +namespace Ui { + class testdllClass: public Ui_testdllClass {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_TESTDLL_H diff --git a/testdll/main.cpp b/testdll/main.cpp new file mode 100644 index 0000000..f08be19 --- /dev/null +++ b/testdll/main.cpp @@ -0,0 +1,10 @@ +#include "testdll.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + testdll w; + w.show(); + return a.exec(); +} diff --git a/testdll/testdll.cpp b/testdll/testdll.cpp new file mode 100644 index 0000000..e6a0c97 --- /dev/null +++ b/testdll/testdll.cpp @@ -0,0 +1,79 @@ +#include "testdll.h" +#include "QThread" + +testdll::testdll(QWidget *parent) + : QMainWindow(parent) +{ + ui.setupUi(this); + motor = new VinceControl(NETTCP, 6000); + connect(ui.startmotor, &QPushButton::clicked, this, &testdll::onbeginstart); + connect(ui.pushButton, &QPushButton::clicked, this, &testdll::onfanzhuan); + connect(ui.pushButton_2, &QPushButton::clicked, this, &testdll::onstop); + connect(ui.pushButton_3, &QPushButton::clicked, this, &testdll::oninfomotor); + connect(motor, &VinceControl::SendLogToCallClass, this, &testdll::onlogcom); + timer = new QTimer(this); + connect(timer, SIGNAL(timeout()), this, SLOT(oninfomotor())); + timer->start(2000); + + +} + +testdll::~testdll() +{ + motor->StopMotormove(); + delete motor; + +} + +void testdll::onbeginstart() +{ + //motor->Handshacke(); + motor->EnableMotro(); + + //motor->StopMotormove(); + long aa = ui.lineEdit->text().toLong(); + motor->StopMotormove(); + motor->SettingSpeed(aa); + motor->MoveMotar(true); + //fangxiang = !fangxiang; + //QThread::sleep(5); + + + + +} + +void testdll::onfanzhuan() +{ + +// motor->StopMotormove(); + long aa = ui.lineEdit->text().toLong(); + motor->StopMotormove(); + motor->SettingSpeed(aa); + motor->MoveMotar(false); + motor->SendCommandtoMotor("cfg\n"); + //fangxiang = !fangxiang; + //QThread::sleep(5); +} + +void testdll::onstop() +{ + //motor->StopMotormove(); + //motor->SendCommandtoMotor("cfg\n"); + motor->SettingZeroLocation(); +} + +void testdll::onlogcom(QString str) +{ + ui.textEdit->append(str); + //motor->SendCommandtoMotor("cfg\n"); +} + +void testdll::oninfomotor() +{ + if (motor->IsMotorInit) + { + motor->GetState(); + } + +} diff --git a/testdll/testdll.h b/testdll/testdll.h new file mode 100644 index 0000000..24eaf51 --- /dev/null +++ b/testdll/testdll.h @@ -0,0 +1,28 @@ +#ifndef TESTDLL_H +#define TESTDLL_H + +#include +#include "ui_testdll.h" +#include "vincecontrol.h" +#include "QTimer" +class testdll : public QMainWindow +{ + Q_OBJECT + +public: + testdll(QWidget *parent = 0); + ~testdll(); + +private: + Ui::testdllClass ui; + VinceControl *motor; + QTimer *timer; + public slots : + void onbeginstart(); + void onfanzhuan(); + void onstop(); + void onlogcom(QString str); + void oninfomotor(); +}; + +#endif // TESTDLL_H diff --git a/testdll/testdll.qrc b/testdll/testdll.qrc new file mode 100644 index 0000000..6edb827 --- /dev/null +++ b/testdll/testdll.qrc @@ -0,0 +1,4 @@ + + + + diff --git a/testdll/testdll.ui b/testdll/testdll.ui new file mode 100644 index 0000000..5d3e9d1 --- /dev/null +++ b/testdll/testdll.ui @@ -0,0 +1,111 @@ + + + testdllClass + + + + 0 + 0 + 600 + 400 + + + + testdll + + + + + + + + + 速度 + + + + + + + 2000 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + 正转 + + + + + + + 反转 + + + + + + + 查询状态 + + + + + + + 停止 + + + + + + + + + + + + + + 0 + 0 + 600 + 23 + + + + + + TopToolBarArea + + + false + + + + + + + + + + diff --git a/testdll/testdll.vcxproj b/testdll/testdll.vcxproj new file mode 100644 index 0000000..87aae94 --- /dev/null +++ b/testdll/testdll.vcxproj @@ -0,0 +1,232 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {FE2F26F1-B5DA-4B8A-BA06-9B4E489DEDF1} + Qt4VSv1.0 + + + + Application + v120 + + + Application + v120 + + + Application + v120 + + + Application + v120 + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Platform)\$(Configuration)\ + + + $(SolutionDir)$(Platform)\$(Configuration)\ + + + $(SolutionDir)$(Platform)\$(Configuration)\ + + + $(SolutionDir)$(Platform)\$(Configuration)\ + + + + UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;%(PreprocessorDefinitions) + .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;%(AdditionalIncludeDirectories) + Disabled + ProgramDatabase + MultiThreadedDebugDLL + true + + + Windows + $(OutDir)\$(ProjectName).exe + $(QTDIR)\lib;%(AdditionalLibraryDirectories) + true + qtmaind.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;Qt5Networkd.lib;Qt5SerialPortd.lib;%(AdditionalDependencies) + + + + + UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;%(PreprocessorDefinitions) + ..\;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;%(AdditionalIncludeDirectories) + Disabled + ProgramDatabase + MultiThreadedDebugDLL + true + + + Windows + $(OutDir)\$(ProjectName).exe + ..\..\x64\Debug;$(QTDIR)\lib;%(AdditionalLibraryDirectories) + true + vincecontrol.lib;qtmaind.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;Qt5Networkd.lib;Qt5SerialPortd.lib;%(AdditionalDependencies) + + + + + UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;%(PreprocessorDefinitions) + .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;%(AdditionalIncludeDirectories) + + MultiThreadedDLL + true + + + Windows + $(OutDir)\$(ProjectName).exe + $(QTDIR)\lib;%(AdditionalLibraryDirectories) + false + qtmain.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;Qt5Network.lib;Qt5SerialPort.lib;%(AdditionalDependencies) + + + + + UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;%(PreprocessorDefinitions) + .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;%(AdditionalIncludeDirectories) + + MultiThreadedDLL + true + + + Windows + $(OutDir)\$(ProjectName).exe + $(QTDIR)\lib;%(AdditionalLibraryDirectories) + false + qtmain.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;Qt5Network.lib;Qt5SerialPort.lib;%(AdditionalDependencies) + + + + + true + true + + + + + + + + + + + + + true + true + + + + + + + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing testdll.h... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_NETWORK_LIB -DQT_SERIALPORT_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtNetwork" "-I$(QTDIR)\include\QtSerialPort" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing testdll.h... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_NETWORK_LIB -DQT_SERIALPORT_LIB "-I.\.." "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtNetwork" "-I$(QTDIR)\include\QtSerialPort" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing testdll.h... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_NETWORK_LIB -DQT_SERIALPORT_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtNetwork" "-I$(QTDIR)\include\QtSerialPort" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing testdll.h... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_NETWORK_LIB -DQT_SERIALPORT_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtNetwork" "-I$(QTDIR)\include\QtSerialPort" + + + + + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + + + + + + + + %(FullPath);%(AdditionalInputs) + Rcc%27ing %(Identity)... + .\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs) + "$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp + %(FullPath);%(AdditionalInputs) + Rcc%27ing %(Identity)... + .\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs) + "$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp + %(FullPath);%(AdditionalInputs) + Rcc%27ing %(Identity)... + .\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs) + "$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp + %(FullPath);%(AdditionalInputs) + Rcc%27ing %(Identity)... + .\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs) + "$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp + + + + + + + + + + + \ No newline at end of file diff --git a/testdll/testdll.vcxproj.filters b/testdll/testdll.vcxproj.filters new file mode 100644 index 0000000..4923dae --- /dev/null +++ b/testdll/testdll.vcxproj.filters @@ -0,0 +1,70 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;cxx;c;def + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h + + + {99349809-55BA-4b9d-BF79-8FDBB0286EB3} + ui + + + {D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E} + qrc;* + false + + + {71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11} + moc;h;cpp + False + + + {6e1893f8-0829-4202-b060-6dfe5c596c3a} + cpp;moc + False + + + {09cc2671-132c-4254-beab-562321593421} + cpp;moc + False + + + + + Source Files + + + Source Files + + + Generated Files\Debug + + + Generated Files\Release + + + Generated Files + + + + + Header Files + + + Form Files + + + Resource Files + + + + + Generated Files + + + \ No newline at end of file diff --git a/testdll/testdll.vcxproj.user b/testdll/testdll.vcxproj.user new file mode 100644 index 0000000..75b63ac --- /dev/null +++ b/testdll/testdll.vcxproj.user @@ -0,0 +1,12 @@ + + + + + C:\Qt\Qt5.8.0\5.8\msvc2013_64 + PATH=$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b$(PATH) + + + C:\Qt\Qt5.8.0\5.8\msvc2013_64 + PATH=$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b$(PATH) + + \ No newline at end of file diff --git a/testdll/x64/Debug/main.obj b/testdll/x64/Debug/main.obj new file mode 100644 index 0000000..849dd69 Binary files /dev/null and b/testdll/x64/Debug/main.obj differ diff --git a/testdll/x64/Debug/moc_testdll.obj b/testdll/x64/Debug/moc_testdll.obj new file mode 100644 index 0000000..d396aca Binary files /dev/null and b/testdll/x64/Debug/moc_testdll.obj differ diff --git a/testdll/x64/Debug/qrc_testdll.obj b/testdll/x64/Debug/qrc_testdll.obj new file mode 100644 index 0000000..1f37844 Binary files /dev/null and b/testdll/x64/Debug/qrc_testdll.obj differ diff --git a/testdll/x64/Debug/testdll.log b/testdll/x64/Debug/testdll.log new file mode 100644 index 0000000..0bec2b6 --- /dev/null +++ b/testdll/x64/Debug/testdll.log @@ -0,0 +1,13 @@ +生成启动时间为 2020/9/3 14:49:21。 + 1>项目“D:\vspro\ProjectofIrisIMAGE\vincecontrol\vincecontrol\testdll\testdll.vcxproj”在节点 2 上(Build 个目标)。 + 1>Link: + C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64\link.exe /ERRORREPORT:PROMPT /OUT:"D:\vspro\ProjectofIrisIMAGE\vincecontrol\x64\Debug\\testdll.exe" /NOLOGO /LIBPATH:..\..\x64\Debug /LIBPATH:C:\Qt\Qt5.8.0\5.8\msvc2013_64\lib vincecontrol.lib qtmaind.lib Qt5Cored.lib Qt5Guid.lib Qt5Widgetsd.lib Qt5Networkd.lib Qt5SerialPortd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"D:\vspro\ProjectofIrisIMAGE\vincecontrol\x64\Debug\testdll.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"D:\vspro\ProjectofIrisIMAGE\vincecontrol\x64\Debug\testdll.lib" /MACHINE:X64 x64\Debug\moc_testdll.obj + x64\Debug\qrc_testdll.obj + x64\Debug\main.obj + x64\Debug\testdll.obj + testdll.vcxproj -> D:\vspro\ProjectofIrisIMAGE\vincecontrol\x64\Debug\testdll.exe + 1>已完成生成项目“D:\vspro\ProjectofIrisIMAGE\vincecontrol\vincecontrol\testdll\testdll.vcxproj”(Build 个目标)的操作。 + +生成成功。 + +已用时间 00:00:00.73 diff --git a/testdll/x64/Debug/testdll.obj b/testdll/x64/Debug/testdll.obj new file mode 100644 index 0000000..bea64f9 Binary files /dev/null and b/testdll/x64/Debug/testdll.obj differ diff --git a/testdll/x64/Debug/testdll.tlog/CL.read.1.tlog b/testdll/x64/Debug/testdll.tlog/CL.read.1.tlog new file mode 100644 index 0000000..eb1e468 Binary files /dev/null and b/testdll/x64/Debug/testdll.tlog/CL.read.1.tlog differ diff --git a/testdll/x64/Debug/testdll.tlog/CL.write.1.tlog b/testdll/x64/Debug/testdll.tlog/CL.write.1.tlog new file mode 100644 index 0000000..c653c3b Binary files /dev/null and b/testdll/x64/Debug/testdll.tlog/CL.write.1.tlog differ diff --git a/testdll/x64/Debug/testdll.tlog/cl.command.1.tlog b/testdll/x64/Debug/testdll.tlog/cl.command.1.tlog new file mode 100644 index 0000000..5f8204d Binary files /dev/null and b/testdll/x64/Debug/testdll.tlog/cl.command.1.tlog differ diff --git a/testdll/x64/Debug/testdll.tlog/custombuild.command.1.tlog b/testdll/x64/Debug/testdll.tlog/custombuild.command.1.tlog new file mode 100644 index 0000000..ac4d7c5 Binary files /dev/null and b/testdll/x64/Debug/testdll.tlog/custombuild.command.1.tlog differ diff --git a/testdll/x64/Debug/testdll.tlog/custombuild.read.1.tlog b/testdll/x64/Debug/testdll.tlog/custombuild.read.1.tlog new file mode 100644 index 0000000..e3a8459 Binary files /dev/null and b/testdll/x64/Debug/testdll.tlog/custombuild.read.1.tlog differ diff --git a/testdll/x64/Debug/testdll.tlog/custombuild.write.1.tlog b/testdll/x64/Debug/testdll.tlog/custombuild.write.1.tlog new file mode 100644 index 0000000..ed84a2c Binary files /dev/null and b/testdll/x64/Debug/testdll.tlog/custombuild.write.1.tlog differ diff --git a/testdll/x64/Debug/testdll.tlog/link.command.1.tlog b/testdll/x64/Debug/testdll.tlog/link.command.1.tlog new file mode 100644 index 0000000..be5313f Binary files /dev/null and b/testdll/x64/Debug/testdll.tlog/link.command.1.tlog differ diff --git a/testdll/x64/Debug/testdll.tlog/link.read.1.tlog b/testdll/x64/Debug/testdll.tlog/link.read.1.tlog new file mode 100644 index 0000000..c100a5a Binary files /dev/null and b/testdll/x64/Debug/testdll.tlog/link.read.1.tlog differ diff --git a/testdll/x64/Debug/testdll.tlog/link.write.1.tlog b/testdll/x64/Debug/testdll.tlog/link.write.1.tlog new file mode 100644 index 0000000..fdd93df Binary files /dev/null and b/testdll/x64/Debug/testdll.tlog/link.write.1.tlog differ diff --git a/testdll/x64/Debug/testdll.tlog/testdll.lastbuildstate b/testdll/x64/Debug/testdll.tlog/testdll.lastbuildstate new file mode 100644 index 0000000..f04b5e0 --- /dev/null +++ b/testdll/x64/Debug/testdll.tlog/testdll.lastbuildstate @@ -0,0 +1,2 @@ +#TargetFrameworkVersion=v4.0:PlatformToolSet=v120:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit +Debug|x64|D:\vspro\ProjectofIrisIMAGE\vincecontrol\| diff --git a/testdll/x64/Debug/vc120.pdb b/testdll/x64/Debug/vc120.pdb new file mode 100644 index 0000000..9a59a14 Binary files /dev/null and b/testdll/x64/Debug/vc120.pdb differ diff --git a/vincecontrol.cpp b/vincecontrol.cpp index a39ae86..beeec67 100644 --- a/vincecontrol.cpp +++ b/vincecontrol.cpp @@ -80,7 +80,7 @@ void VinceControl::Handshacke(QString motorid) str.append(buf); SendLog(str); } - + initMotor(motorid); } void VinceControl::SetRS485ID(QString id) @@ -375,26 +375,89 @@ void VinceControl::initme() } +void VinceControl::initMotor(QString motornetid /*= "non"*/) +{ + QByteArray buf; + //s1½ʱֹͣת + QString commonstr = "cfg s1f=2\n"; + SendCommandtoMotor(commonstr, motornetid); + GetCommonRetrun(buf, motornetid); + + commonstr = "cfg zmd=1\n";//㳢Դ + SendCommandtoMotor(commonstr, motornetid); + GetCommonRetrun(buf, motornetid); + commonstr = "cfg snr=0\n";//㴫 + SendCommandtoMotor(commonstr, motornetid); + GetCommonRetrun(buf, motornetid); + commonstr = "cfg osv=0\n";//㴫ʱõƿΪ͵ƽ + SendCommandtoMotor(commonstr, motornetid); + GetCommonRetrun(buf, motornetid); + commonstr = "cfg zsd=3000\n";//㴫ʱõƿΪ͵ƽ + SendCommandtoMotor(commonstr, motornetid); + GetCommonRetrun(buf, motornetid); + //ø޴ + commonstr = "cfg msr=1\n"; + SendCommandtoMotor(commonstr, motornetid); + GetCommonRetrun(buf, motornetid); + //ü޴Ϊ͵ƽ + commonstr = "cfg msv=0\n"; + SendCommandtoMotor(commonstr, motornetid); + GetCommonRetrun(buf, motornetid); + + + //s2½ʱֹͣת + commonstr = "cfg s2f=2\n"; + SendCommandtoMotor(commonstr, motornetid); + GetCommonRetrun(buf, motornetid); + //޴ + commonstr = "cfg psr=2\n"; + SendCommandtoMotor(commonstr, motornetid); + GetCommonRetrun(buf, motornetid); + //޴Ϊ͵ƽ + commonstr = "cfg psv=0\n"; + SendCommandtoMotor(commonstr, motornetid); + GetCommonRetrun(buf, motornetid); + +} + void VinceControl::MovetoZero(QString motornetid ) { + MoveToLocation(0, motornetid); } -long VinceControl::GetLocationNow() -{ - return 10000; -} - -void VinceControl::MoveToLocation(long Location) +long VinceControl::GetLocationNow(QString motornetid) { + ByteBack back = GetState(motornetid); + return back.Location; } -void VinceControl::SettingUpandDownSpeed(int addspeed, int downspeed) +void VinceControl::MoveToLocation(long Location, QString motornetid) { + QString commonstr = "pos "+QString::number(Location)+"\n"; + SendCommandtoMotor(commonstr, motornetid); + QByteArray buf; + GetCommonRetrun(buf, motornetid); + TranslateBytedata(buf, motornetid); } +void VinceControl::SettingUpandDownSpeed(int addspeed, int downspeed, QString motornetid) +{ + //üٶ + QString commonstr = "cfg acc=" + QString::number(addspeed) + "\n"; + SendCommandtoMotor(commonstr, motornetid); + QByteArray buf; + GetCommonRetrun(buf, motornetid); + TranslateBytedata(buf, motornetid); + //üٶ + commonstr = "cfg dec=" + QString::number(addspeed) + "\n"; + SendCommandtoMotor(commonstr, motornetid); + GetCommonRetrun(buf, motornetid); + TranslateBytedata(buf, motornetid); +} + void VinceControl::StopMotormove(QString motornetid ) { QString commonstr = "stp\n"; @@ -405,6 +468,8 @@ void VinceControl::StopMotormove(QString motornetid ) } + + ByteBack VinceControl::GetState(QString motorid /*= "non"*/) { QString commonstr = "cts\n"; @@ -415,6 +480,16 @@ ByteBack VinceControl::GetState(QString motorid /*= "non"*/) return back; } +void VinceControl::SettingZeroLocation(QString motorid /*= "non"*/) +{ + QString commonstr = "zero start\n"; + SendCommandtoMotor(commonstr, motorid); + // + QByteArray buf; + GetCommonRetrun(buf, motorid); + +} + VinceControl::VinceControl(ProTools proto, int port) { //VinceControl(proto); diff --git a/vincecontrol.h b/vincecontrol.h index 55b83f0..d0cf149 100644 --- a/vincecontrol.h +++ b/vincecontrol.h @@ -68,11 +68,14 @@ struct ByteBack /******************************************************************** * 描述:马达控制程序 * 使用步骤 -* 1)初始话 需要告诉通讯协议(Vince规定的): -* 2)如果是485 请设置id 默认为0 -* 3) serialconnect 建立链接 -* 4)使用 -* 2020-8-5:立新 +* 1 初始化 需要告诉通讯协议(Vince规定的) 如:motor = new VinceControl(NETTCP, 6000); +* 2 通过 motor->IsMotorInit 来判断是否右马达接入 +* 建议: +* 1) 可以用SettingZeroLocation()结合传感器的是指来设置零为 +* 2)关于传感器的设置均在initmotor()函数里 +* 注意: +* 类中所有默认参数再不设置的情况下均指网络通讯的第一个设备id +* 2020-8-5:立新 *******************************************************************/ class VINCECONTROL_EXPORT VinceControl:public QObject { @@ -88,6 +91,7 @@ public: // Parameter: ProTools 通讯协议 RS485 或者 RS232 //************************************ VinceControl(ProTools proto); + //************************************ // Method: VinceControl //走网络协议 需要两个参数 第一个为NETTCP 第二个为端口 6000或者6001 // FullName: VinceControl::VinceControl @@ -100,16 +104,15 @@ public: VinceControl(ProTools proto,int port); ~VinceControl(); //************************************ - // Method: serialconnect - // FullName: VinceControl::serialconnect + // Method: MoveToLocation 移动到某位置(据0点) + // FullName: VinceControl::MoveToLocation // Access: public - // Returns: bool + // Returns: void // Qualifier: - // Parameter: QString comname 串口名称 - // Parameter: QString bandrate 串口波特率 + // Parameter: long Location 距离零点的位置 //************************************ - - bool serialconnect(QString comname,QString bandrate); + void MoveToLocation(long Location, QString motornetid = "non"); + //************************************ // Method: Handshacke // FullName: VinceControl::Handshacke @@ -117,18 +120,18 @@ public: // Returns: void // Qualifier: //************************************ - - void Handshacke(QString motorid = "non"); + //************************************ - // Method: SetRS485ID - // FullName: VinceControl::SetRS485ID + // Method: SettingZeroLocation 马达归零 + // FullName: VinceControl::SettingZeroLocation // Access: public // Returns: void // Qualifier: - // Parameter: QString id RS485 id + // Parameter: QString motorid //************************************ - void SetRS485ID(QString id); + void SettingZeroLocation(QString motorid = "non"); + //************************************ // Method: 电机使能 // FullName: VinceControl::EnableMotro @@ -165,6 +168,7 @@ public: // Parameter: int motorid //************************************ void SendCommandtoMotor(QString str,QString modor); + //************************************ // Method: MoveSetDistance 电机左移/右移 一定数量(不是距离) // FullName: VinceControl::MoveSetDistance @@ -173,8 +177,8 @@ public: // Qualifier: // Parameter: long distance //************************************ - void MoveSetDistance(long distance, QString motornetid = "non"); + //************************************ // Method: MoveModar 电机左移/右移 direction是方向 // FullName: VinceControl::MoveModar @@ -184,6 +188,7 @@ public: // Parameter: bool direction 方向 //************************************ void MoveMotar(bool direction, QString motornetid = "non"); + //************************************ // Method: SettingSpeed 设置速度 // FullName: VinceControl::SettingSpeed @@ -202,6 +207,7 @@ public: // Qualifier: //************************************ void MovetoZero(QString motornetid = "non"); + //************************************ // Method: GetLocationNow 获取当前至0点位置 // FullName: VinceControl::GetLocationNow @@ -209,16 +215,8 @@ public: // Returns: long 位置 // Qualifier: //************************************ - long GetLocationNow(); - //************************************ - // Method: MoveToLocation 移动到某位置(据0点) - // FullName: VinceControl::MoveToLocation - // Access: public - // Returns: void - // Qualifier: - // Parameter: long Location 距离零点的位置 - //************************************ - void MoveToLocation(long Location); + long GetLocationNow(QString motornetid = "non"); + //************************************ // Method: SettingUpandDownSpeed 设置加减速度 // FullName: VinceControl::SettingUpandDownSpeed @@ -228,16 +226,64 @@ public: // Parameter: int addspeed 加速度 // Parameter: int downspeed 减速度 //************************************ - void SettingUpandDownSpeed(int addspeed, int downspeed); + void SettingUpandDownSpeed(int addspeed, int downspeed, QString motornetid = "non"); + //************************************ + // Method: StopMotormove 停止马达 + // FullName: VinceControl::StopMotormove + // Access: public + // Returns: void + // Qualifier: + // Parameter: QString motornetid + //************************************ void StopMotormove(QString motornetid = "non"); + + + //************************************ + // Method: GetState + // FullName: VinceControl::GetState + // Access: public + // Returns: ByteBack + // Qualifier: + // Parameter: QString motorid + //************************************ ByteBack GetState(QString motorid = "non"); + + //************************************ + // Method: SetRS485ID + // FullName: VinceControl::SetRS485ID + // Access: public + // Returns: void + // Qualifier: + // Parameter: QString id RS485 id + //************************************ + void SetRS485ID(QString id); + + //************************************ + // Method: serialconnect + // FullName: VinceControl::serialconnect + // Access: public + // Returns: bool + // Qualifier: + // Parameter: QString comname 串口名称 + // Parameter: QString bandrate 串口波特率 + //************************************ + bool serialconnect(QString comname, QString bandrate); + //************************************ + // Method: initMotor 设置左右极限 s1是为左极限 且到s1后会将s1位置设置为0 s2是右极限 归零传感器是指为s1 + // FullName: VinceControl::initMotor + // Access: public + // Returns: void + // Qualifier: + // Parameter: QString motornetid + //************************************ + void initMotor(QString motornetid = "non"); QStringList Motorlist; bool IsMotorInit; signals: void SendLogToCallClass(QString str); - public slots : - void onNewTcpClinetConnet(); +public slots : + void onNewTcpClinetConnet(); void onClinetDisConnet(); private: @@ -259,6 +305,7 @@ private: void SettingSpeedByThis(long Speed, QString motornetid = "non"); ByteBack TranslateBytedata(QByteArray buf, QString motornetid = "non"); void initme(); + }; diff --git a/vincecontrol.vcxproj.user b/vincecontrol.vcxproj.user index 6fc2e63..82c2f15 100644 --- a/vincecontrol.vcxproj.user +++ b/vincecontrol.vcxproj.user @@ -3,10 +3,10 @@ C:\Qt\Qt5.8.0\5.8\msvc2013_64 - PATH=$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b$(PATH) + PATH=$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b$(PATH) C:\Qt\Qt5.8.0\5.8\msvc2013_64 - PATH=$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b$(PATH) + PATH=$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b$(PATH) \ No newline at end of file