diff --git a/runner17/config/comSetting.json b/runner17/config/comSetting.json new file mode 100644 index 0000000..69822e9 --- /dev/null +++ b/runner17/config/comSetting.json @@ -0,0 +1,3 @@ +{ + "Com": 1 +} diff --git a/config/tcpServer.json b/runner17/config/tcpServer.json similarity index 70% rename from config/tcpServer.json rename to runner17/config/tcpServer.json index ccc2e27..638452e 100644 --- a/config/tcpServer.json +++ b/runner17/config/tcpServer.json @@ -1,6 +1,6 @@ { "address": { "IP": "127.0.0.1", - "Port": "9900" + "Port": "2000" } } diff --git a/src/TcpServer/TcpServer.cpp b/src/TcpServer/TcpServer.cpp index 51959ca..8af9347 100644 --- a/src/TcpServer/TcpServer.cpp +++ b/src/TcpServer/TcpServer.cpp @@ -50,7 +50,6 @@ void TcpServer::onCloseConnect() m_tcpServerPtr->disconnect(); m_tcpServerPtr->close(); } - } void TcpServer::onNewConnection() { diff --git a/src/VisionController/VisionController.cpp b/src/VisionController/VisionController.cpp index fe12660..050ea6e 100644 --- a/src/VisionController/VisionController.cpp +++ b/src/VisionController/VisionController.cpp @@ -1,6 +1,7 @@ #pragma execution_character_set("utf-8") #include "VisionController.h" +QString absolutePath = "\\..\\runner17\\config\\"; VisionController::VisionController(QWidget *parent) : QMainWindow(parent) { @@ -36,22 +37,40 @@ VisionController::VisionController(QWidget *parent) connect(m_tcpServerPtr, &TcpServer::sgReceived, this, &VisionController::receivedData); connect(m_tcpServerPtr, &TcpServer::sgDisconnected, this, &VisionController::onDisconnected); m_ioControllerPtr = new IOController(); - unsigned int serialNum = 2; - if (!m_ioControllerPtr->controllerInitialization(serialNum)) + unsigned int comlNum=0; + if (!readComSetting(path, comlNum)) { - QString showMsg = QString("串口Com%1初始化失败").arg(serialNum); + QString showMsg = QString("未能读取到Com配置文件"); + ui.textLog->appendPlainText(showMsg); + } + if (!m_ioControllerPtr->controllerInitialization(comlNum)) + { + QString showMsg = QString("串口Com%1初始化失败").arg(comlNum); ui.textLog->appendPlainText(showMsg); } else { - QString showMsg = QString("串口Com%1初始化成功").arg(serialNum); + QString showMsg = QString("串口Com%1初始化成功").arg(comlNum); ui.textLog->appendPlainText(showMsg); } } +VisionController::~VisionController() +{ + if (m_ioControllerPtr) + { + delete m_ioControllerPtr; + //m_ioControllerPtr = nullptr; + } + if (m_tcpServerPtr) + { + delete m_tcpServerPtr; + } +} bool VisionController::readServerConfig(QString path, QString& serverIP, quint16& port) { - QString filePath = path + "\\..\\config\\tcpServer.json"; + //QString filePath = path + "\\..\\config\\tcpServer.json"; + QString filePath = path + absolutePath + "tcpServer.json"; QFile jsonFile(filePath); if (!jsonFile.exists()) { @@ -82,7 +101,8 @@ bool VisionController::readServerConfig(QString path, QString& serverIP, quint16 } bool VisionController::writeServerConfig(QString path, QString serverIP, quint16 serverPort) { - QString filePath = path + "\\..\\config\\tcpServer.json"; + //QString filePath = path + "\\..\\config\\tcpServer.json"; + QString filePath = path + absolutePath + "tcpServer.json"; QFile jsonFile(filePath); if (!jsonFile.open(QIODevice::WriteOnly)) { @@ -100,20 +120,35 @@ bool VisionController::writeServerConfig(QString path, QString serverIP, quint16 jsonFile.close(); return true; } -VisionController::~VisionController() +bool VisionController::readComSetting(QString path, unsigned int& comNum) { - if (m_ioControllerPtr) + QString filePath = path + absolutePath + "comSetting.json"; + QFile comSettingFile(filePath); + if (!comSettingFile.exists()) { - delete m_ioControllerPtr; - //m_ioControllerPtr = nullptr; + qDebug() << "文件:" << filePath << "不存在!"; + return false; } - - if (m_tcpServerPtr) + if (!comSettingFile.open(QIODevice::ReadOnly | QIODevice::Text)) { - delete m_tcpServerPtr; + qDebug() << "文件:" << filePath << "打开失败!"; + return false; } + QByteArray dataArray = comSettingFile.readAll(); + comSettingFile.close(); + QJsonParseError jsonError; + QJsonDocument jsonDocument = QJsonDocument::fromJson(dataArray, &jsonError); + if (jsonError.error != QJsonParseError::NoError) + { + qDebug() << "文件:" << filePath << "格式错误!"; + return false; + } + QJsonObject jsonObject = jsonDocument.object(); + comNum = jsonObject.value("Com").toInt(); + return true; } + Q_SLOT void VisionController::onButtonClicked() { QString strObj = sender()->objectName(); diff --git a/src/VisionController/VisionController.h b/src/VisionController/VisionController.h index 5cc5860..efac157 100644 --- a/src/VisionController/VisionController.h +++ b/src/VisionController/VisionController.h @@ -31,6 +31,7 @@ private: Q_SLOT void onDisconnected(QString ip, quint16 port); bool readServerConfig(QString path, QString& serverIP, quint16& port); bool writeServerConfig(QString path, QString serverIP, quint16 port); + bool readComSetting(QString path, unsigned int& comNum); TcpServer* m_tcpServerPtr; IOController* m_ioControllerPtr{nullptr}; //IOInterface* m_ioInterfacePtr{ nullptr };