diff --git a/doc/轮毂识别定位一体与PLC通讯协议.docx b/doc/轮毂识别定位一体与PLC通讯协议.docx index 635f24c..d172ddc 100644 Binary files a/doc/轮毂识别定位一体与PLC通讯协议.docx and b/doc/轮毂识别定位一体与PLC通讯协议.docx differ diff --git a/tpvs17/tpMain/QPLCDevice.cpp b/tpvs17/tpMain/QPLCDevice.cpp index ab14ab2..49c477c 100644 --- a/tpvs17/tpMain/QPLCDevice.cpp +++ b/tpvs17/tpMain/QPLCDevice.cpp @@ -114,16 +114,21 @@ void QPLCDevice::onParaster(QByteArray recvData) int stationID = data.toInt(); emit sgTrigerCam(stationID); } - else if (cmd.toInt() == 2) + else if (cmd.toInt() == 2) //Ӧ { onSendHeartBit(); } + else if (cmd.toInt() == 3) + { + int stationID = data.toInt(); + emit sgSendAlgResult(stationID); + } } } void QPLCDevice::onSendValueRlt(const ValueResult& rlt) { - QString sdata = QString("CA;3;%1;%2;%3;%4;%5,#").arg(rlt.stationID).arg(rlt.strModel).arg(rlt.angle).arg(rlt.center.x()).arg(rlt.center.y()); + QString sdata = QString("CA;3;%1;%2;%3;%4;%5;#").arg(rlt.stationID).arg(rlt.strModel).arg(rlt.angle).arg(rlt.center.x()).arg(rlt.center.y()); sendByteData(sdata.toLatin1()); } diff --git a/tpvs17/tpMain/QPLCDevice.h b/tpvs17/tpMain/QPLCDevice.h index a142ae3..7310a5f 100644 --- a/tpvs17/tpMain/QPLCDevice.h +++ b/tpvs17/tpMain/QPLCDevice.h @@ -32,6 +32,7 @@ public: bool getClinetInfo(QString &client); signals: + void sgSendAlgResult(int camID); void sgTrigerCam(int camID); void sgSendDataCallBack(QByteArray); void sgRecvDataCallBack(QByteArray); diff --git a/tpvs17/tpMain/lpMainWin.cpp b/tpvs17/tpMain/lpMainWin.cpp index 042ba8f..a67a739 100644 --- a/tpvs17/tpMain/lpMainWin.cpp +++ b/tpvs17/tpMain/lpMainWin.cpp @@ -22,9 +22,9 @@ #include "databasesql.h" #include "lpCryptokey.h" -#define VERSION_HUB "3.0.1.7" +#define VERSION_HUB "3.0.1.8" #define VERSION_ALG "3.0.1.4" -#define UPDATE_TIME "2021-11-04" +#define UPDATE_TIME "2021-11-09" #pragma execution_character_set("utf-8") #define MODEL_UI_ICON_NONE ":/image/no-img" @@ -1717,7 +1717,7 @@ void lpMainWin::onSaveValveResult(ValueResult &rlt) //} sendWebAlgRlt(rlt); - QString strMsg = QString("%1 识别结果:%2 定位角度:%3").arg(QDateTime::currentDateTime().toString("hh:mm:ss")).arg(rlt.strModel).arg(rlt.angle); + QString strMsg = QString("%1 识别结果:%2 定位角度:%3 圆心:(%4,%5)").arg(QDateTime::currentDateTime().toString("hh:mm:ss")).arg(rlt.strModel).arg(rlt.angle).arg(rlt.center.x()).arg(rlt.center.y()); emit sgShowDetectLog(strMsg); } diff --git a/tpvs17/valueMainUI/lpConfigUI.cpp b/tpvs17/valueMainUI/lpConfigUI.cpp index 43a0404..50fbafa 100644 --- a/tpvs17/valueMainUI/lpConfigUI.cpp +++ b/tpvs17/valueMainUI/lpConfigUI.cpp @@ -39,11 +39,15 @@ Q_SLOT void lpConfigUI::onButtonClicked() if ("pushButton" == strObj) { QString strUrl = QFileDialog::getOpenFileName(this, "", "", "*.exe"); + if (strUrl.isEmpty()) + return; ui.lineEdit_APath->setText(strUrl); } else if ("pushButton_2" == strObj) { QString strUrl = QFileDialog::getOpenFileName(this, "", "", "*.exe"); + if (strUrl.isEmpty()) + return; ui.lineEdit_BPath->setText(strUrl); } else if ("pushButton_3" == strObj) diff --git a/tpvs17/valueMainUI/lpGlobalData.h b/tpvs17/valueMainUI/lpGlobalData.h index e248f9c..b81b0ac 100644 --- a/tpvs17/valueMainUI/lpGlobalData.h +++ b/tpvs17/valueMainUI/lpGlobalData.h @@ -3,6 +3,7 @@ #include #include "lp_singleton_base.h" +#include "Result2Ui.h" class lpGlobalData : public lp_singleton_base { public: @@ -10,6 +11,9 @@ public: ~lpGlobalData(); bool bShowRecv{ false }; bool bShowSend{ false }; + + ValueResult m_StationResult_1; + ValueResult m_StationResult_2; }; #endif diff --git a/tpvs17/valueMainUI/valueMainUI.cpp b/tpvs17/valueMainUI/valueMainUI.cpp index 4141400..48a1edb 100644 --- a/tpvs17/valueMainUI/valueMainUI.cpp +++ b/tpvs17/valueMainUI/valueMainUI.cpp @@ -29,7 +29,7 @@ valueMainUI::valueMainUI(QWidget *parent) setupTrayIcon();//后台任务栏初始化 setWindowIcon(QIcon(WINDOWICON)); - setWindowTitle(tr("识别定位一体检测系统")); + setWindowTitle(tr("识别定位一体检测系统(v1.0.3 21.11.09)")); lpGlobalData::instance(); lpConfig::instance()->loadConfig(); @@ -124,6 +124,7 @@ valueMainUI::valueMainUI(QWidget *parent) m_pPlcDevice->onInitDevice(); m_pPlcDevice->onStartServer(lpConfig::instance()->plcServerPort); connect(m_pPlcDevice, SIGNAL(sgTrigerCam(int)), this, SLOT(onPLCTrigerCam(int))); + connect(m_pPlcDevice, SIGNAL(sgSendAlgResult(int)), this, SLOT(onSendAlgResult(int))); connect(m_pPlcDevice, SIGNAL(sgSendDataCallBack(QByteArray)), this, SLOT(onShowSendTcpData(QByteArray))); connect(m_pPlcDevice, SIGNAL(sgRecvDataCallBack(QByteArray)), this, SLOT(onShowRecvTcpData(QByteArray))); } @@ -132,6 +133,8 @@ valueMainUI::valueMainUI(QWidget *parent) m_SysTimerID = startTimer(1000);//系统定时刷新定时器 m_timerStartID = startTimer(1000);//启动从机客户端 } + lpGlobalData::instance()->m_StationResult_1.stationID = 1; + lpGlobalData::instance()->m_StationResult_2.stationID = 2; } valueMainUI::~valueMainUI() @@ -274,9 +277,10 @@ Q_SLOT void valueMainUI::onRecvDataStr_A(const QJsonObject& json) rlt.angle = angle; rlt.center = QPointF(cnt_x, cnt_y); rlt.strModel = strName; + lpGlobalData::instance()->m_StationResult_1 = rlt; if (m_pPlcDevice) { - m_pPlcDevice->onSendValueRlt(rlt); + m_pPlcDevice->onAckTrigerCam(1); } } else if (strcmd == "heartbit") @@ -287,10 +291,7 @@ Q_SLOT void valueMainUI::onRecvDataStr_A(const QJsonObject& json) } else if (strcmd == "triggerAck") { - if (m_pPlcDevice) - { - m_pPlcDevice->onAckTrigerCam(1); - } + } } } @@ -365,9 +366,10 @@ Q_SLOT void valueMainUI::onRecvDataStr_B(const QJsonObject& json) rlt.angle = angle; rlt.center = QPointF(cnt_x, cnt_y); rlt.strModel = strName; + lpGlobalData::instance()->m_StationResult_2 = rlt; if (m_pPlcDevice) { - m_pPlcDevice->onSendValueRlt(rlt); + m_pPlcDevice->onAckTrigerCam(2); } } else if (strcmd == "heartbit") @@ -378,10 +380,7 @@ Q_SLOT void valueMainUI::onRecvDataStr_B(const QJsonObject& json) } else if (strcmd == "triggerAck") { - if (m_pPlcDevice) - { - m_pPlcDevice->onAckTrigerCam(2); - } + } } } @@ -1130,3 +1129,20 @@ Q_SLOT void valueMainUI::onLanguageChange(QString strLanguage) SetLanguage(strLanguage); } +Q_SLOT void valueMainUI::onSendAlgResult(int camID) +{ + if (camID == 1) + { + if (m_pPlcDevice) + { + m_pPlcDevice->onSendValueRlt(lpGlobalData::instance()->m_StationResult_1); + } + } + else if (camID == 2) + { + if (m_pPlcDevice) + { + m_pPlcDevice->onSendValueRlt(lpGlobalData::instance()->m_StationResult_2); + } + } +} \ No newline at end of file diff --git a/tpvs17/valueMainUI/valueMainUI.h b/tpvs17/valueMainUI/valueMainUI.h index 03f2567..4c305e1 100644 --- a/tpvs17/valueMainUI/valueMainUI.h +++ b/tpvs17/valueMainUI/valueMainUI.h @@ -72,6 +72,7 @@ private://trayIcon void SearchQmFile(const QString & strDir); void SetTranslator(const QString strPath); Q_SLOT void onLanguageChange(QString strLanguage); + Q_SLOT void onSendAlgResult(int camID); protected: virtual void timerEvent(QTimerEvent *event); virtual void closeEvent(QCloseEvent *event);