1、valueMain主展示程序增加PLC通讯和测试UI,完善相关展示功能

2、注册码重新调整获取方法
master
bob.pan 4 years ago
parent e4cb943bf5
commit 02b18e8133

@ -20,6 +20,8 @@ class IDetectorUI
public:
virtual bool Initialize(IDetectorEngine* lpDE) = 0;
virtual bool ShowMainFrame(class QWidget* parent = nullptr) = 0;
virtual void HideMainFrame() = 0;
virtual bool IsMainFrameHidden() = 0;
};

@ -181,6 +181,8 @@ void CCameraVirtualFolder::ISnapCamera()
m_nImageHeight = img.height();
m_nImageSize = img.byteCount();
m_nBitsPerPixel = img.depth();
m_pCamOpt->width = m_nImageWidth;
m_pCamOpt->height = m_nImageHeight;
QImage::Format fd = img.format();
m_nColorFormat = TP_FUNCS::FromQImageFormat(img);
m_pCb->IPushCameraData(this);

@ -37,7 +37,7 @@ bool CDetectorUI::ShowMainFrame(class QWidget* parent)
return false;
m_pMainFrame->setParent(parent);
m_pMainFrame->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pMainFrame->setWindowFlags(Qt::Dialog | Qt::WindowMaximizeButtonHint | Qt::WindowCloseButtonHint);
m_pMainFrame->setWindowIcon(QIcon(":/image/leaper"));
m_pMainFrame->setWindowModality(Qt::ApplicationModal);
m_pMainFrame->setAttribute(Qt::WA_ShowModal, true);
@ -46,3 +46,13 @@ bool CDetectorUI::ShowMainFrame(class QWidget* parent)
return true;
}
void CDetectorUI::HideMainFrame()
{
m_pMainFrame->hide();
}
bool CDetectorUI::IsMainFrameHidden()
{
return m_pMainFrame->isHidden();
}

@ -10,6 +10,8 @@ public:
virtual ~CDetectorUI();
bool Initialize(IDetectorEngine* lpDE);
virtual bool ShowMainFrame(class QWidget* parent = nullptr);
virtual void HideMainFrame();
virtual bool IsMainFrameHidden();
private:
CMainFrame* m_pMainFrame{ nullptr };
IDetectorEngine* m_pDE{ nullptr };

@ -32,6 +32,7 @@ public:
// };
/*定位检测结果*/
struct ValueResult {
int stationID{ 1 };//工位ID 1 A侧 2 B侧
QString strModel{ "NG" };//型号名
double score{ 0.0 };//分数
double angle{ 0.0 };//定位角度

@ -9,7 +9,7 @@ namespace lpCryptokey
QString genSerialNumber(const QString& mac)
{
unsigned long long ulMacTmp = 0;
QString newMac = mac;// +ComponyKey;
QString newMac = mac + ComponyKey;
std::string mStrMac = newMac.toStdString();
mStrMac.erase(std::remove(mStrMac.begin(), mStrMac.end(), ':'), mStrMac.end());
mStrMac.erase(std::remove(mStrMac.begin(), mStrMac.end(), '-'), mStrMac.end());
@ -74,8 +74,17 @@ lpCheckKey::~lpCheckKey()
//检查linese是否匹配
bool lpCheckKey::checkLinese()
{
std::string biosID = lpHardwareInfo::instance()->getHardDrive();
m_SerialNo = lpCryptokey::genSerialNumber(QString(biosID.c_str()));
std::string hardDriveID = lpHardwareInfo::instance()->getHardDrive();
std::string cpuID = lpHardwareInfo::instance()->getCpuID();
std::string BoardID = lpHardwareInfo::instance()->getMotherBoardID();
std::string macID = lpHardwareInfo::instance()->getMacAddress();
if (hardDriveID.size() > 0)
{
m_SerialNo = lpCryptokey::genSerialNumber(QString(hardDriveID.c_str()) + QString(cpuID.c_str()));
}
else {
m_SerialNo = lpCryptokey::genSerialNumber(QString(BoardID.c_str()) + QString(macID.c_str()));
}
QSettings settingKey("Leaper_Register");
QString strKey = settingKey.value("key").toString();

@ -24,6 +24,7 @@ void QPLCDevice::onInitDevice()
if (!m_rawTcpServer) {
m_rawTcpServer = new lptkRawTcpServer();
connect(m_rawTcpServer, &lptkRawTcpServer::client_status_changed, this, &QPLCDevice::on_serv_status_changed);
connect(m_rawTcpServer, &lptkRawTcpServer::client_connect_status, this, &QPLCDevice::on_client_connect_status);
RecvDataFunc func = std::bind(&QPLCDevice::onRecvFunc, this, std::placeholders::_1);
m_rawTcpServer->setRecvCallFunc(func);
}
@ -48,6 +49,7 @@ void QPLCDevice::onRecvFunc(QByteArray data)
mMtLock.lock();
m_recvData.append(data);
mMtLock.unlock();
emit sgRecvDataCallBack(data);
}
void QPLCDevice::sendByteData(QByteArray byteData)
@ -59,6 +61,7 @@ void QPLCDevice::sendByteData(QByteArray byteData)
{
m_rawTcpServer->broadcast_send_data(sendData);
}
emit sgSendDataCallBack(byteData);
}
Q_SLOT void QPLCDevice::on_serv_status_changed(int id, ServerStatus status)
@ -108,7 +111,8 @@ void QPLCDevice::onParaster(QByteArray recvData)
if (cmd.toInt() == 1)//Ïà»ú´¥·¢
{
emit sgTrigerCam(data.toInt());
int stationID = data.toInt();
emit sgTrigerCam(stationID);
}
else if (cmd.toInt() == 2)
{
@ -119,7 +123,7 @@ void QPLCDevice::onParaster(QByteArray recvData)
void QPLCDevice::onSendValueRlt(const ValueResult& rlt)
{
QString sdata = QString("CA;3;%1;%2;%3;%4;#").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());
}
@ -129,8 +133,36 @@ void QPLCDevice::onSendHeartBit()
sendByteData(sdata.toLatin1());
}
void QPLCDevice::onAckTrigerCam()
void QPLCDevice::onAckTrigerCam(int stationID)
{
QString sdata = QString("CA;1;1;#");
QString sdata = QString("CA;1;%1;#").arg(stationID);
sendByteData(sdata.toLatin1());
}
Q_SLOT void QPLCDevice::on_client_connect_status(QString ip, int port, ServerStatus status)
{
QString clientName = QString("%1:%2").arg(ip).arg(port);
switch (status) {
case TCPSERVER_ON_CLIENT_CONNECTED:
if (!m_clientList.contains(clientName))
{
m_clientList.append(clientName);
}
break;
case TCPSERVER_ON_CLIENT_DISCONNECTED:
if (m_clientList.contains(clientName))
m_clientList.removeAll(clientName);
break;
default:
break;
}
}
bool QPLCDevice::getClinetInfo(QString &client)
{
if (m_clientList.size() > 0)
{
client = m_clientList.first();
return true;
}
return false;
}

@ -20,21 +20,28 @@ public:
void onRecvFunc(QByteArray data);
void sendByteData(QByteArray byteData);
Q_SLOT void on_serv_status_changed(int id, ServerStatus status);
bool onRunTask();
void onParaster(QByteArray recvData);
void onSendValueRlt(const ValueResult& rlt);//发送定位结果
void onSendHeartBit();//发送心跳
void onAckTrigerCam();//发送触发应答
void onSendHeartBit();//发送心跳
void onAckTrigerCam(int stationID);//发送触发应答
Q_SLOT void on_serv_status_changed(int id, ServerStatus status);
Q_SLOT void on_client_connect_status(QString ip, int port, ServerStatus status);
bool getClinetInfo(QString &client);
signals:
void sgTrigerCam(int camID);
void sgSendDataCallBack(QByteArray);
void sgRecvDataCallBack(QByteArray);
private:
lptkRawTcpServer *m_rawTcpServer{ nullptr };
private:
QMutex mMtLock;
QByteArray m_recvData;
lpThread *m_pTask{ nullptr };
QStringList m_clientList;
};
#endif // ifndef _QPLCDEVICE_H_

@ -22,9 +22,9 @@
#include "databasesql.h"
#include "lpCryptokey.h"
#define VERSION_HUB "3.0.1.3"
#define VERSION_HUB "3.0.1.4"
#define VERSION_ALG "3.0.1.3"
#define UPDATE_TIME "2021-09-22"
#define UPDATE_TIME "2021-09-30"
#pragma execution_character_set("utf-8")
@ -861,8 +861,8 @@ Q_SLOT void lpMainWin::onActionClicked()
m_pDebugDlg->setWindowTitle(tr("调试工具"));
m_pDebugDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pDebugDlg->setWindowIcon(QIcon(":/image/leaper"));
m_pDebugDlg->setWindowModality(Qt::ApplicationModal);
m_pDebugDlg->setAttribute(Qt::WA_ShowModal, true);
//m_pDebugDlg->setWindowModality(Qt::ApplicationModal);
//m_pDebugDlg->setAttribute(Qt::WA_ShowModal, true);
m_pDebugDlg->show();
}
}
@ -870,7 +870,7 @@ Q_SLOT void lpMainWin::onActionClicked()
if (m_pWorkUI)
{
m_pWorkUI->setParent(this);
m_pWorkUI->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pWorkUI->setWindowFlags(Qt::Dialog |Qt::WindowMaximizeButtonHint | Qt::WindowCloseButtonHint );
m_pWorkUI->setWindowIcon(QIcon(":/image/leaper"));
m_pWorkUI->setWindowModality(Qt::ApplicationModal);
m_pWorkUI->setAttribute(Qt::WA_ShowModal, true);
@ -904,7 +904,7 @@ Q_SLOT void lpMainWin::onActionClicked()
{
m_pModelMgrDlg->setParent(this);
m_pModelMgrDlg->setWindowTitle(tr("模板管理"));
m_pModelMgrDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pModelMgrDlg->setWindowFlags(Qt::Dialog | Qt::WindowMaximizeButtonHint | Qt::WindowCloseButtonHint);
m_pModelMgrDlg->setWindowIcon(QIcon(":/image/leaper"));
m_pModelMgrDlg->setWindowModality(Qt::ApplicationModal);
m_pModelMgrDlg->setAttribute(Qt::WA_ShowModal, true);
@ -981,8 +981,8 @@ Q_SLOT void lpMainWin::onActionClicked()
m_pAlgParamDlg->setWindowTitle(tr("算法参数"));
m_pAlgParamDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pAlgParamDlg->setWindowIcon(QIcon(":/image/leaper"));
m_pAlgParamDlg->setWindowModality(Qt::ApplicationModal);
m_pAlgParamDlg->setAttribute(Qt::WA_ShowModal, true);
//m_pAlgParamDlg->setWindowModality(Qt::ApplicationModal);
//m_pAlgParamDlg->setAttribute(Qt::WA_ShowModal, true);
m_pAlgParamDlg->show();
}
}
@ -1290,6 +1290,7 @@ Q_SLOT void lpMainWin::onTriggerCam()
QStringList strLst = m_pCoreCtrl->ICameraKeys();
m_pCoreCtrl->ISnapImage(strLst);
}
AckTriggerCam();
}
void lpMainWin::onInitAbout()
@ -1681,42 +1682,12 @@ Q_SLOT void lpMainWin::onPLCTrigerCam(int camID)
onTriggerCam();
}
Q_SLOT void lpMainWin::onWebSocketRecvData(QWebSocket* p, QByteArray data)
{
QJsonDocument doc = QJsonDocument::fromJson(data);
QJsonObject json = doc.object();
if (!json.empty())
{
QString strcmd = json.value("cmd").toString();
if (strcmd == "trigerCam")
{
onTriggerCam();
}
else if (strcmd == "heartbit")
{
}
else if (strcmd == "showWidget")
{
this->setWindowFlags(Qt::WindowStaysOnTopHint);
this->show();
}
else if (strcmd == "hideWidget")
{
}
else if (strcmd == "exitApp")
{
onQuitApplication();
}
}
}
void lpMainWin::onTcpHeartBit()
{
QJsonObject heartObj;
heartObj.insert("deviceName", "A");
heartObj.insert("cmd", "heartbit");
heartObj.insert("runState", lpGlobalConfig::instance()->IsDetect);
heartObj.insert("time", QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss zzz"));
if (tcp_server_ptr_)
{
@ -1778,13 +1749,10 @@ void lpMainWin::setupTrayIcon()
QIcon icon(":/image/leaper");
m_trayIcon->setIcon(icon);
m_trayIcon->setContextMenu(m_trayIconMenu);
//m_trayIcon->show();
connect(m_trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(onActivated(QSystemTrayIcon::ActivationReason)));
connect(m_restoreAction, &QAction::triggered, this, [this]() {
setMainWindowVisibility(isHidden());
// || windowState() == Qt::WindowMinimized
// || (qApp->applicationState() == Qt::ApplicationInactive));
});
connect(m_quitAction, &QAction::triggered, this, &lpMainWin::onQuitApplication);
}
@ -1801,14 +1769,76 @@ void lpMainWin::setMainWindowVisibility(bool state)
{
if (state) {
onShowMainWindow();
// qApp->processEvents();
// qApp->setActiveWindow(this);
// qApp->processEvents();
m_restoreAction->setText(tr("后台运行"));
}
else {
m_restoreAction->setText(tr("显示界面"));
hide();
if (m_pAlgParamDlg)
{
if (!m_pAlgParamDlg->isHidden())
{
m_pAlgParamDlg->hide();
}
}
if (m_pDebugDlg)
{
if (!m_pDebugDlg->isHidden())
{
m_pDebugDlg->hide();
}
}
if (m_pModelMgrDlg)
{
if (!m_pModelMgrDlg->isHidden())
{
m_pModelMgrDlg->hide();
}
}
if (m_CamSettingDlg)
{
if (!m_CamSettingDlg->isHidden())
{
m_CamSettingDlg->hide();
}
}
if (m_pSystemConfigUI)
{
if (!m_pSystemConfigUI->isHidden())
{
m_pSystemConfigUI->hide();
}
}
if (m_pWorkUI) {
if (!m_pWorkUI->isHidden())
{
m_pWorkUI->hide();
}
}
if (!m_aboutDlg.isHidden())
{
m_aboutDlg.hide();
}
if (m_pImageCaliUI)
{
if (!m_pImageCaliUI->isHidden())
{
m_pImageCaliUI->hide();
}
}
if (m_pDesigner) {
if (!m_pDesigner->IsMainFrameHidden())
{
m_pDesigner->HideMainFrame();
}
}
if (m_pCheckLineseUI)
{
if (!m_pCheckLineseUI->isHidden())
{
m_pCheckLineseUI->hide();
}
}
}
}
@ -1986,3 +2016,19 @@ void lpMainWin::onShowMainWindow()
this->raise();
}
}
void lpMainWin::AckTriggerCam()
{
if (tcp_server_ptr_)
{
QJsonObject ackObj;
ackObj.insert("deviceName", "A");
ackObj.insert("cmd", "triggerAck");
ackObj.insert("runState", lpGlobalConfig::instance()->IsDetect);
ackObj.insert("time", QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss zzz"));
TP_PROTOCOL_MESSAGE msg;
msg.body = ackObj;
tcp_server_ptr_->ISendMessage("*", msg);
}
}

@ -25,7 +25,7 @@
#include "lpImageCaliUI.h"
#include "QPLCDevice.h"
#include "lpSystemConfigUI.h"
#include "WebServer.h"
//#include "WebServer.h"
#include <QSystemTrayIcon>
#include "QCryptokeyUI.h"
#include "QAlgParamDlg.h"
@ -116,7 +116,6 @@ protected:
Q_SLOT void modWorkMgr(QString str);
Q_SLOT void onPLCTrigerCam(int camID);
Q_SLOT void onWebSocketRecvData(QWebSocket* p, QByteArray data);
void onTcpHeartBit();//websocket 通讯心跳
void sendWebAlgRlt(const ValueResult& rlt);
QJsonObject byte2Json(QByteArray data);
@ -147,6 +146,7 @@ private:
Q_SLOT void on_data_recv_completed(const QString &client_name, QSharedPointer<TP_PROTOCOL_MESSAGE> msg_ptr, QSharedPointer<QByteArray> pData);
void paraJson(const QJsonObject& obj);
void onShowMainWindow();
void AckTriggerCam();
protected:
virtual void timerEvent(QTimerEvent *event);
virtual void closeEvent(QCloseEvent *event);
@ -226,8 +226,6 @@ private:
IDetectorEngine* m_pEngineCtrl{nullptr};
CDllDesigner* m_pDllDesigner{ nullptr };
IDetectorUI* m_pDesigner{ nullptr };
private:
WebServer *m_pWebSocket{ nullptr };
QSharedPointer<lpTcpServer> tcp_server_ptr_;
private:

@ -1,4 +1,6 @@
#include "lpRawTcpClientSession.h"
#include <QHostAddress>
#include <QDebug>
#pragma execution_character_set("utf-8")
lpRawClientSession::lpRawClientSession(int ID, QObject *parent)
@ -56,6 +58,16 @@ void lpRawClientSession::on_data_to_send(int sess_id, QSharedPointer<QByteArray>
psocket_->write(data->constData(), data->size());
}
QString lpRawClientSession::getClientIP()
{
return psocket_->peerAddress().toString();
}
int lpRawClientSession::getClientPort()
{
return psocket_->peerPort();
}
void lpRawClientSession::socket_close()
{
@ -64,6 +76,5 @@ void lpRawClientSession::socket_close()
psocket_->abort();
psocket_->close();
}
}

@ -17,9 +17,9 @@ public:
void setRecvCallBackFunc(RecvDataFunc func) { _func = func; };
void force_close();
Q_SLOT void on_data_to_send(int sess_id, QSharedPointer<QByteArray>);
QString getClientIP();
int getClientPort();
signals:
void data_received(int, QSharedPointer<QByteArray>);
void sess_disconnected(int);

@ -90,7 +90,12 @@ void lptkRawTcpServer::incomingConnection(qintptr socketDescriptor)
client_sessions_[socketDescriptor] = cli_sess;
pThrd->start();
QString strIP = pclientSess->getClientIP();
int n = strIP.lastIndexOf(":");
strIP = strIP.mid(n).remove(":");
int port = pclientSess->getClientPort();
emit client_status_changed(socketDescriptor, TCPSERVER_ON_CLIENT_CONNECTED);
emit client_connect_status(strIP, port, TCPSERVER_ON_CLIENT_CONNECTED);
}
void lptkRawTcpServer::on_data_received(int sess_id, QSharedPointer<QByteArray> data_ptr)
@ -102,9 +107,7 @@ void lptkRawTcpServer::on_data_received(int sess_id, QSharedPointer<QByteArray>
return;
}
emit data_received(sess_id, data_ptr);
}
void lptkRawTcpServer::on_sess_disconnected(int sess_id)
@ -119,9 +122,15 @@ void lptkRawTcpServer::on_sess_disconnected(int sess_id)
if (cli_sess.pThrd_->isRunning()) {
cli_sess.pThrd_->exit(0);
}
delete cli_sess.pThrd_;// ->deleteLater();
QString strIP = cli_sess.pSess_->getClientIP();
int n = strIP.lastIndexOf(":");
strIP = strIP.mid(n).remove(":");
int port = cli_sess.pSess_->getClientPort();
emit client_connect_status(strIP, port, TCPSERVER_ON_CLIENT_DISCONNECTED);
delete cli_sess.pThrd_;
delete cli_sess.pSess_;
//cli_sess.pThrd_->deleteLater();
client_sessions_.erase(it);
}

@ -43,6 +43,7 @@ signals:
void client_status_changed(int, ServerStatus);
void data_received(int, QSharedPointer<QByteArray>);
void data_to_send(int, QSharedPointer<QByteArray>);
void client_connect_status(QString ip, int port, ServerStatus);
public slots:
void on_sess_disconnected(int);

@ -0,0 +1,58 @@
#include "QTCPDebugUI.h"
#include "lpGlobalData.h"
#include <QDateTime>
QTCPDebugUI::QTCPDebugUI(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
connect(ui.checkBox_Recv, SIGNAL(stateChanged(int)), this, SLOT(onStateChange(int)));
connect(ui.checkBox_Send, SIGNAL(stateChanged(int)), this, SLOT(onStateChange(int)));
}
QTCPDebugUI::~QTCPDebugUI()
{
}
void QTCPDebugUI::appendRecvData(QByteArray data)
{
QString msg = QString("recv %1->%2").arg(QDateTime::currentDateTime().toString("hh:mm:ss")).arg(QString(data));
ui.plainTextEdit->appendPlainText(msg);
}
void QTCPDebugUI::appendSendData(QByteArray data)
{
QString msg = QString("send %1->%2").arg(QDateTime::currentDateTime().toString("hh:mm:ss")).arg(QString(data));
ui.plainTextEdit->appendPlainText(msg);
}
void QTCPDebugUI::closeEvent(QCloseEvent *event)
{
lpGlobalData::instance()->bShowRecv = false;
lpGlobalData::instance()->bShowSend = false;
}
void QTCPDebugUI::showEvent(QShowEvent *event)
{
ui.plainTextEdit->clear();
ui.checkBox_Recv->setChecked(false);
ui.checkBox_Send->setChecked(false);
}
Q_SLOT void QTCPDebugUI::onStateChange(int state)
{
QString strObj = sender()->objectName();
if (strObj == "checkBox_Recv")
{
if (state > 0)
lpGlobalData::instance()->bShowRecv = true;
else
lpGlobalData::instance()->bShowRecv = false;
}
else if (strObj == "checkBox_Send")
{
if (state > 0)
lpGlobalData::instance()->bShowSend = true;
else
lpGlobalData::instance()->bShowSend = false;
}
}

@ -0,0 +1,26 @@
#ifndef _QTCPDEBUG_H_
#define _QTCPDEBUG_H_
#include <QWidget>
#include "ui_QTCPDebugUI.h"
class QTCPDebugUI : public QWidget
{
Q_OBJECT
public:
QTCPDebugUI(QWidget *parent = Q_NULLPTR);
~QTCPDebugUI();
void appendRecvData(QByteArray data);
void appendSendData(QByteArray data);
protected:
virtual void closeEvent(QCloseEvent *event);
virtual void showEvent(QShowEvent *event);
Q_SLOT void onStateChange(int state);
private:
Ui::QTCPDebugUI ui;
};
#endif

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QTCPDebugUI</class>
<widget class="QWidget" name="QTCPDebugUI">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>575</width>
<height>407</height>
</rect>
</property>
<property name="windowTitle">
<string>QTCPDebugUI</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="QCheckBox" name="checkBox_Recv">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>显示接收数据</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QCheckBox" name="checkBox_Send">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>显示发送数据</string>
</property>
</widget>
</item>
<item row="2" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0" rowspan="3">
<widget class="QPlainTextEdit" name="plainTextEdit"/>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

@ -2,4 +2,7 @@
urlA=ws://localhost:10110
urlB=ws://localhost:10111
appPathA=E:/wheelValve/runner17/Enchanter.exe
appPathB=E:/wheelValve/runner17/lpReportd.exe
appPathB=E:/wheelValve/Release/runner17_B/Enchanter_B.exe
doubleStation=true
portA=10110
portB=10111

@ -19,6 +19,7 @@ void lpConfig::saveConfig()
setting.setValue("appPathA", appPathA);
setting.setValue("appPathB", appPathB);
setting.setValue("doubleStation", doubleStation);
setting.setValue("serverPort", plcServerPort);
}
void lpConfig::loadConfig()
@ -29,4 +30,5 @@ void lpConfig::loadConfig()
appPathA = setting.value("appPathA").toString();
appPathB = setting.value("appPathB").toString();
doubleStation = setting.value("doubleStation",true).toBool();
plcServerPort = setting.value("serverPort", 1000).toInt();
}

@ -19,7 +19,7 @@ public:
QString appPathA;
QString appPathB;
bool doubleStation{ true };//true 崗묏貫 ; false 데묏貫
int plcServerPort{ 1000 };
};
#endif

@ -48,6 +48,7 @@ Q_SLOT void lpConfigUI::onButtonClicked()
lpConfig::instance()->portA = ui.lineEdit_APort->text().toInt();
lpConfig::instance()->portB = ui.lineEdit_BPort->text().toInt();
lpConfig::instance()->doubleStation = ui.checkBox_doubleStation->isChecked();
lpConfig::instance()->plcServerPort = ui.lineEdit_serverPort->text().toInt();
lpConfig::instance()->saveConfig();
ui.label_5->setVisible(true);
m_timerID = startTimer(1000);
@ -66,6 +67,7 @@ void lpConfigUI::showEvent(QShowEvent *event)
ui.lineEdit_APort->setText(QString("%1").arg(lpConfig::instance()->portA));
ui.lineEdit_BPort->setText(QString("%1").arg(lpConfig::instance()->portB));
ui.checkBox_doubleStation->setChecked(lpConfig::instance()->doubleStation);
ui.lineEdit_serverPort->setText(QString("%1").arg(lpConfig::instance()->plcServerPort));
}
void lpConfigUI::timerEvent(QTimerEvent *event)

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>545</width>
<height>303</height>
<width>532</width>
<height>394</height>
</rect>
</property>
<property name="windowTitle">
@ -16,8 +16,13 @@
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="title">
<string/>
<string>工位配置:</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="0">
@ -191,7 +196,7 @@
</layout>
</widget>
</item>
<item row="4" column="0">
<item row="5" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QLabel" name="label_5">
@ -244,7 +249,7 @@
</item>
</layout>
</item>
<item row="3" column="0">
<item row="4" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
@ -258,27 +263,124 @@
</spacer>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="checkBox_AutoRun">
<widget class="QGroupBox" name="groupBox_2">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>开机自启动</string>
<property name="title">
<string>机台PLC通讯</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>TCP服务端口</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_serverPort">
<property name="text">
<string>1000</string>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="checkBox_DesktopShort">
<widget class="QGroupBox" name="groupBox_3">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>添加到桌面快捷方式</string>
<property name="title">
<string>系统相关:</string>
</property>
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="QCheckBox" name="checkBox_AutoRun">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>开机自启动</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_DesktopShort">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>添加到桌面快捷方式</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>语言:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBox">
<item>
<property name="text">
<string>中文</string>
</property>
</item>
<item>
<property name="text">
<string>English</string>
</property>
</item>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>

@ -0,0 +1,9 @@
#include "lpGlobalData.h"
lpGlobalData::lpGlobalData()
{
}
lpGlobalData::~lpGlobalData()
{
}

@ -0,0 +1,16 @@
#ifndef _LPGLOBALDATA_H_
#define _LPGLOBALDATA_H_
#include <QObject>
#include "lp_singleton_base.h"
class lpGlobalData : public lp_singleton_base<lpGlobalData>
{
public:
lpGlobalData();
~lpGlobalData();
bool bShowRecv{ false };
bool bShowSend{ false };
};
#endif

@ -6,7 +6,10 @@
#include "SystemTool.h"
#include <QFileInfo>
#include <QMessageBox>
#include "QSettings"
#include <QSettings>
#include <QToolButton>
#include <QMenu>
#include "lpGlobalData.h"
#pragma execution_character_set("utf-8")
#define WINDOWICON ":/Resources/icon.png"
@ -17,8 +20,12 @@ valueMainUI::valueMainUI(QWidget *parent)
setupTrayIcon();
setWindowIcon(QIcon(WINDOWICON));
setWindowTitle(tr("识别定位一体检测系统"));
lpGlobalData::instance();
m_pLabelA = new QLabel(this);
m_pLabelB = new QLabel(this);
m_pLabelPLC = new QLabel(this);
m_pLabelSystem = new QLabel(this);
QFont font;
font.setBold(true);
@ -26,17 +33,21 @@ valueMainUI::valueMainUI(QWidget *parent)
m_pLabelA->setFont(font);
m_pLabelB->setFont(font);
m_pLabelPLC->setFont(font);
m_pLabelSystem->setFont(font);
m_pLabelA->setText("A侧连接状态");
m_pLabelB->setText("B侧连接状态");
m_pLabelSystem->setText("时间");
m_pLabelA->setText(tr("A侧连接状态"));
m_pLabelB->setText(tr("B侧连接状态"));
m_pLabelPLC->setText(tr("PLC连接状态"));
m_pLabelSystem->setText(tr("时间"));
m_pLabelA->setAlignment(Qt::AlignCenter);
m_pLabelB->setAlignment(Qt::AlignCenter);
m_pLabelPLC->setAlignment(Qt::AlignCenter);
m_pLabelSystem->setAlignment(Qt::AlignCenter);
ui.statusBar->addWidget(m_pLabelA, 50);
ui.statusBar->addWidget(m_pLabelB, 50);
ui.statusBar->addWidget(m_pLabelPLC, 50);
ui.statusBar->addPermanentWidget(m_pLabelSystem, 50);
m_pLabelA->setText("");
m_pLabelB->setText("");
@ -61,13 +72,45 @@ valueMainUI::valueMainUI(QWidget *parent)
double nScale_B = setting.value("ShowImg/ScaleB", 0.53).toDouble();
m_ImgViewer_A->setInitScale(nScale_A);
m_ImgViewer_B->setInitScale(nScale_B);
// QFont font;
// font.setBold(true);
// font.setPixelSize(25);
// m_pLabelState_A = new QLabel(m_ImgViewer_A);
// m_pLabelState_A->setFont(font);
// m_pLabelState_A->setText(tr("检测状态"));
// m_pLabelState_A->setMinimumWidth(300);
//
// m_pLabelRes_A = new QLabel(m_ImgViewer_A);
// m_pLabelRes_A->setFont(font);
// m_pLabelRes_A->setText(tr("检测结果"));
// m_pLabelRes_A->setMinimumWidth(300);
// m_pLabelRes_A->move(m_ImgViewer_A->rect().x(), 40);
}
QMenu *pToolMenu = new QMenu(this);
pToolMenu->addAction(ui.actionConfig);
pToolMenu->addAction(ui.actiondebug);
pToolMenu->addAction(ui.action_communicate);
QToolButton* pbutton = new QToolButton(this);
pbutton->setMenu(pToolMenu);
pbutton->setIcon(QIcon(":/Resources/Setting.png"));
pbutton->setText(tr("工具"));
pbutton->setToolTip(tr("工具"));
pbutton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
pbutton->setPopupMode(QToolButton::InstantPopup);
font.setBold(false);
font.setPixelSize(18);
pbutton->setFont(font);
ui.toolBar->addWidget(pbutton);
connect(ui.actionsettingA, SIGNAL(triggered()), this, SLOT(onButtonClicked()));
connect(ui.actionsettingB, SIGNAL(triggered()), this, SLOT(onButtonClicked()));
connect(ui.actionConfig, SIGNAL(triggered()), this, SLOT(onButtonClicked()));
connect(ui.actiondebug, SIGNAL(triggered()), this, SLOT(onButtonClicked()));
connect(ui.action_communicate, SIGNAL(triggered()), this, SLOT(onButtonClicked()));
m_pConfigUI = new lpConfigUI();
connect(m_pConfigUI, SIGNAL(sgUpdateConfig()), this, SLOT(onUpdateConfig()));
@ -79,6 +122,17 @@ valueMainUI::valueMainUI(QWidget *parent)
m_timerStartID = startTimer(2000);
onShowUI(lpConfig::instance()->doubleStation);
m_pTcpDebugUI = new QTCPDebugUI();
{//PLC tcp 通讯
m_pPlcDevice = new QPLCDevice();
m_pPlcDevice->onInitDevice();
m_pPlcDevice->onStartServer(lpConfig::instance()->plcServerPort);
connect(m_pPlcDevice, SIGNAL(sgTrigerCam(int)), this, SLOT(onPLCTrigerCam(int)));
connect(m_pPlcDevice, SIGNAL(sgSendDataCallBack(QByteArray)), this, SLOT(onShowSendTcpData(QByteArray)));
connect(m_pPlcDevice, SIGNAL(sgRecvDataCallBack(QByteArray)), this, SLOT(onShowRecvTcpData(QByteArray)));
}
}
valueMainUI::~valueMainUI()
@ -106,6 +160,26 @@ valueMainUI::~valueMainUI()
delete tcp_client_ptr_B;
tcp_client_ptr_B = nullptr;
}
if (m_pPlcDevice)
{
delete m_pPlcDevice;
m_pPlcDevice = nullptr;
}
if (m_pDebugUI)
{
delete m_pDebugUI;
m_pDebugUI = nullptr;
}
if (m_pConfigUI)
{
delete m_pConfigUI;
m_pConfigUI = nullptr;
}
if (m_pTcpDebugUI)
{
delete m_pTcpDebugUI;
m_pTcpDebugUI = nullptr;
}
}
QString valueMainUI::SecondTimeString(quint64 value)
@ -160,9 +234,8 @@ Q_SLOT void valueMainUI::onRecvDataStr_A(const QJsonObject& json)
{
case 0://识别OK定位OK
{
ui.label_A->setText(tr("型号 %1,定位角度 %2°").arg(strName).arg(angle));
ui.label_A->setText(tr("型号 %1,定位角度 %2 °").arg(strName).arg(angle));
ui.label_A->setStyleSheet("font: bold 14px;background-color: rgb(0, 170, 0);");
}
break;
case 1://识别OK定位异常
@ -193,11 +266,29 @@ Q_SLOT void valueMainUI::onRecvDataStr_A(const QJsonObject& json)
default:
break;
}
ValueResult rlt;
rlt.stationID = 1;
rlt.angle = angle;
rlt.center = QPointF(cnt_x, cnt_y);
rlt.strModel = strName;
if (m_pPlcDevice)
{
m_pPlcDevice->onSendValueRlt(rlt);
}
}
else if (strcmd == "heartbit")
{
m_CoutA = 0;
m_bServerA = true;
m_bRunStateA = json.value("runState").toBool(false);
}
else if (strcmd == "triggerAck")
{
if (m_pPlcDevice)
{
m_pPlcDevice->onAckTrigerCam(1);
}
}
}
}
@ -264,11 +355,29 @@ Q_SLOT void valueMainUI::onRecvDataStr_B(const QJsonObject& json)
default:
break;
}
ValueResult rlt;
rlt.stationID = 2;
rlt.angle = angle;
rlt.center = QPointF(cnt_x, cnt_y);
rlt.strModel = strName;
if (m_pPlcDevice)
{
m_pPlcDevice->onSendValueRlt(rlt);
}
}
else if (strcmd == "heartbit")
{
m_CoutB = 0;
m_bServerB = true;
m_bRunStateB = json.value("runState").toBool(false);
}
else if (strcmd == "triggerAck")
{
if (m_pPlcDevice)
{
m_pPlcDevice->onAckTrigerCam(2);
}
}
}
}
@ -380,8 +489,8 @@ Q_SLOT void valueMainUI::onButtonClicked()
m_pDebugUI->setWindowTitle(tr("调试页面"));
m_pDebugUI->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pDebugUI->setWindowIcon(QIcon(WINDOWICON));
m_pDebugUI->setWindowModality(Qt::ApplicationModal);
m_pDebugUI->setAttribute(Qt::WA_ShowModal, true);
//m_pDebugUI->setWindowModality(Qt::ApplicationModal);
//m_pDebugUI->setAttribute(Qt::WA_ShowModal, true);
m_pDebugUI->show();
}
@ -396,6 +505,14 @@ Q_SLOT void valueMainUI::onButtonClicked()
m_pConfigUI->show();
//check();
}
else if (strObj == "action_communicate")
{
m_pTcpDebugUI->setParent(this);
m_pTcpDebugUI->setWindowTitle(tr("通讯调试页面"));
m_pTcpDebugUI->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pTcpDebugUI->setWindowIcon(QIcon(WINDOWICON));
m_pTcpDebugUI->show();
}
}
QJsonObject valueMainUI::byte2Json(QByteArray data)
@ -454,36 +571,63 @@ void valueMainUI::timerEvent(QTimerEvent *event)
{
if (m_bServerA == true)
{
m_pLabelA->setText("A侧设备已连接");
m_pLabelA->setStyleSheet("background-color: rgb(63, 170, 24);");
if (m_bRunStateA == true)
{
m_pLabelA->setText(tr("A侧设备已连接(检测中)"));
m_pLabelA->setStyleSheet("background-color: rgb(63, 170, 24);");
}
else {
m_pLabelA->setText(tr("A侧设备已连接(暂停中)"));
m_pLabelA->setStyleSheet("background-color: rgb(200, 200, 10);");
}
}
else {
m_pLabelA->setText("A侧设备未连接");
m_pLabelA->setStyleSheet("");
m_pLabelA->setText(tr("A侧设备未连接"));
m_pLabelA->setStyleSheet("background-color: rgb(200, 10, 10);");
}
if (lpConfig::instance()->doubleStation == true)
{
if (m_bServerB == true)
{
m_pLabelB->setText("B侧设备已连接");
m_pLabelB->setStyleSheet("background-color: rgb(63, 170, 24);");
if (m_bRunStateB == true)
{
m_pLabelB->setText(tr("B侧设备已连接(检测中)"));
m_pLabelB->setStyleSheet("background-color: rgb(63, 170, 24);");
}
else {
m_pLabelB->setText(tr("B侧设备已连接(暂停中)"));
m_pLabelB->setStyleSheet("background-color: rgb(200, 200, 10);");
}
}
else {
m_pLabelB->setText("B侧设备未连接");
m_pLabelB->setStyleSheet("");
m_pLabelB->setText(tr("B侧设备未连接"));
m_pLabelB->setStyleSheet("background-color: rgb(200, 10, 10);");
}
}
else {
m_pLabelB->setText("");
}
if (m_pPlcDevice)
{
QString clientInfo;
bool bConnect = m_pPlcDevice->getClinetInfo(clientInfo);
if (bConnect == true)
{
QString plc = QString(tr("PLC客户端 %1").arg(clientInfo));
m_pLabelPLC->setText(plc);
m_pLabelPLC->setStyleSheet("background-color: rgb(63, 170, 24);");
}
else {
m_pLabelPLC->setText(tr("PLC客户端未连接"));
m_pLabelPLC->setStyleSheet("background-color: rgb(200, 200, 10);");
}
}
QString m_currentTime = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");
QString strlong = SecondTimeString(m_tickCount);
QString strTimeTitle = tr("运行时长:");
QString strShow = QString("%1 %2 %3").arg(m_currentTime).arg(strTimeTitle).arg(strlong);
m_pLabelSystem->setText(strShow);
}
}
else if (m_timerStartID == event->timerId())
@ -695,6 +839,27 @@ void valueMainUI::setMainWindowVisibility(bool state)
else {
m_restoreAction->setText(tr("显示界面"));
hide();
if (m_pTcpDebugUI)
{
if (!m_pTcpDebugUI->isHidden())
{
m_pTcpDebugUI->hide();
}
}
if (m_pConfigUI)
{
if (!m_pConfigUI->isHidden())
{
m_pConfigUI->hide();
}
}
if (m_pDebugUI)
{
if (!m_pDebugUI->isHidden())
{
m_pDebugUI->hide();
}
}
}
}
@ -823,3 +988,42 @@ void valueMainUI::onShowMainWindow()
this->raise();
}
}
Q_SLOT void valueMainUI::onPLCTrigerCam(int camID)
{
//onTriggerCam();
if (camID == 1)//A侧相机触发拍照
{
TP_PROTOCOL_MESSAGE msg;
QJsonObject sObj;
sObj.insert("cmd", "trigerCam");
msg.body = sObj;
if (tcp_client_ptr_A)
tcp_client_ptr_A->ISendMessage(msg);
}
else if (camID == 2)//B侧相机拍照
{
TP_PROTOCOL_MESSAGE msg;
QJsonObject sObj;
sObj.insert("cmd", "trigerCam");
msg.body = sObj;
if (tcp_client_ptr_B)
tcp_client_ptr_B->ISendMessage(msg);
}
}
Q_SLOT void valueMainUI::onShowRecvTcpData(QByteArray data)
{
if (lpGlobalData::instance()->bShowRecv == true)
{
m_pTcpDebugUI->appendRecvData(data);
}
}
Q_SLOT void valueMainUI::onShowSendTcpData(QByteArray data)
{
if (lpGlobalData::instance()->bShowSend == true)
{
m_pTcpDebugUI->appendSendData(data);
}
}

@ -11,6 +11,8 @@
#include <QMenu>
#include <QAction>
#include "libTcpClient.h"
#include "../QPLCDevice.h"
#include "QTCPDebugUI.h"
class valueMainUI : public QMainWindow
{
Q_OBJECT
@ -58,6 +60,10 @@ private://trayIcon
Q_SLOT void on_connected_B();
Q_SLOT void on_disconnected_B();
void onShowMainWindow();
Q_SLOT void onPLCTrigerCam(int camID);
Q_SLOT void onShowRecvTcpData(QByteArray data);
Q_SLOT void onShowSendTcpData(QByteArray data);
protected:
virtual void timerEvent(QTimerEvent *event);
virtual void closeEvent(QCloseEvent *event);
@ -69,7 +75,13 @@ private:
QLabel* m_pLabelA{ nullptr };
QLabel* m_pLabelB{ nullptr };
QLabel* m_pLabelPLC{ nullptr };
QLabel* m_pLabelSystem{ nullptr };
// QLabel* m_pLabelRes_A{ nullptr };
// QLabel* m_pLabelRes_B{ nullptr };
// QLabel* m_pLabelState_A{ nullptr };
// QLabel* m_pLabelState_B{ nullptr };
private:
int m_timerA{ 0 };
int m_timerB{ 0 };
@ -77,11 +89,14 @@ private:
lpConfigUI *m_pConfigUI{ nullptr };
lpDebugUI *m_pDebugUI{ nullptr };
QTCPDebugUI *m_pTcpDebugUI{ nullptr };
int m_CoutA{ 0 };
int m_CoutB{ 0 };
bool m_bServerA{ false };
bool m_bServerB{ false };
bool m_bRunStateA{ false };
bool m_bRunStateB{ false };
int m_SysTimerID{ 0 };
quint64 m_tickCount{ 0 };
@ -95,6 +110,8 @@ private:
QAction* m_restoreAction{ nullptr };
QAction* m_quitAction{ nullptr };
bool m_bExit{ false };
QPLCDevice* m_pPlcDevice{ nullptr };
};
#endif

@ -51,7 +51,7 @@
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<item row="0" column="0" colspan="2">
<widget class="QWidget" name="widget_B" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
@ -64,7 +64,7 @@
</property>
</widget>
</item>
<item row="1" column="0">
<item row="1" column="0" colspan="2">
<widget class="QLabel" name="label_B">
<property name="minimumSize">
<size>
@ -136,7 +136,7 @@
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<item row="0" column="0" colspan="2">
<widget class="QWidget" name="widget_A" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
@ -149,7 +149,7 @@
</property>
</widget>
</item>
<item row="1" column="0">
<item row="1" column="0" colspan="2">
<widget class="QLabel" name="label_A">
<property name="minimumSize">
<size>
@ -206,8 +206,6 @@
</attribute>
<addaction name="actionsettingA"/>
<addaction name="actionsettingB"/>
<addaction name="actionConfig"/>
<addaction name="actiondebug"/>
</widget>
<action name="actionsettingA">
<property name="icon">
@ -220,6 +218,8 @@
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
</action>
@ -234,6 +234,8 @@
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
</action>
@ -271,6 +273,23 @@
</font>
</property>
</action>
<action name="action_communicate">
<property name="icon">
<iconset resource="valueMainUI.qrc">
<normaloff>:/Resources/Setting.png</normaloff>:/Resources/Setting.png</iconset>
</property>
<property name="text">
<string>通讯调试</string>
</property>
<property name="toolTip">
<string>通讯调试</string>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>

@ -53,7 +53,7 @@
<ClCompile>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_WEBSOCKETS_LIB;QT_WIDGETS_LIB;QT_LOCATION_LIB;QT_NETWORK_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;E:\wheelValve\3part\lp_libtcp\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;.\..\..\src\tpMain\algela;.\..\..\3part\tadpole\include\tpBase;.\..\..\3part\lp_libtcp\include;.\..\..\src\tpMain;.\..\..\tpvs17\tpMain\lpRawTcp;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Disabled</Optimization>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@ -69,7 +69,7 @@
<QtMoc>
<OutputFile>.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</OutputFile>
<ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription>
<IncludePath>.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;E:\wheelValve\3part\lp_libtcp\include;%(AdditionalIncludeDirectories)</IncludePath>
<IncludePath>.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;.\..\..\src\tpMain\algela;.\..\..\3part\tadpole\include\tpBase;.\..\..\3part\lp_libtcp\include;.\..\..\src\tpMain;.\..\..\tpvs17\tpMain\lpRawTcp;%(AdditionalIncludeDirectories)</IncludePath>
<Define>UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_WEBSOCKETS_LIB;QT_WIDGETS_LIB;QT_LOCATION_LIB;QT_NETWORK_LIB;%(PreprocessorDefinitions)</Define>
</QtMoc>
<QtUic>
@ -85,7 +85,7 @@
<ClCompile>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_WEBSOCKETS_LIB;QT_WIDGETS_LIB;QT_LOCATION_LIB;QT_NETWORK_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;E:\wheelValve\3part\lp_libtcp\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;.\..\..\src\tpMain\algela;.\..\..\3part\tadpole\include\tpBase;.\..\..\3part\lp_libtcp\include;.\..\..\src\tpMain;.\..\..\tpvs17\tpMain\lpRawTcp;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat />
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
@ -100,7 +100,7 @@
<QtMoc>
<OutputFile>.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</OutputFile>
<ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription>
<IncludePath>.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;E:\wheelValve\3part\lp_libtcp\include;%(AdditionalIncludeDirectories)</IncludePath>
<IncludePath>.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;.\..\..\src\tpMain\algela;.\..\..\3part\tadpole\include\tpBase;.\..\..\3part\lp_libtcp\include;.\..\..\src\tpMain;.\..\..\tpvs17\tpMain\lpRawTcp;%(AdditionalIncludeDirectories)</IncludePath>
<Define>UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_WEBSOCKETS_LIB;QT_WIDGETS_LIB;QT_LOCATION_LIB;QT_NETWORK_LIB;%(PreprocessorDefinitions)</Define>
</QtMoc>
<QtUic>
@ -121,11 +121,17 @@
<ClCompile Include="..\..\src\tpMain\algela\lpImgViewer.cpp" />
<ClCompile Include="..\..\src\tpMain\algela\qtUtils.cpp" />
<ClCompile Include="..\..\src\tpMain\algela\RoiImgViewer.cpp" />
<ClCompile Include="..\..\src\tpMain\lpThread.cpp" />
<ClCompile Include="..\tpMain\lpRawTcp\lpRawTcpClientSession.cpp" />
<ClCompile Include="..\tpMain\lpRawTcp\lptkRawTcpServer.cpp" />
<ClCompile Include="..\tpMain\QPLCDevice.cpp" />
<ClCompile Include="lpConfig.cpp" />
<ClCompile Include="lpConfigUI.cpp" />
<ClCompile Include="lpDebugUI.cpp" />
<ClCompile Include="lpGlobalData.cpp" />
<ClCompile Include="main.cpp" />
<ClCompile Include="QSignleApplication.cpp" />
<ClCompile Include="QTCPDebugUI.cpp" />
<ClCompile Include="SystemTool.cpp" />
<ClCompile Include="valueMainUI.cpp" />
<ClCompile Include="webClient.cpp" />
@ -136,6 +142,7 @@
<ItemGroup>
<QtUic Include="lpConfigUI.ui" />
<QtUic Include="lpDebugUI.ui" />
<QtUic Include="QTCPDebugUI.ui" />
<QtUic Include="valueMainUI.ui" />
</ItemGroup>
<ItemGroup>
@ -151,6 +158,19 @@
<ClInclude Include="..\..\src\tpMain\algela\AngelaCommon.h" />
<ClInclude Include="..\..\src\tpMain\algela\AngelaEnum.h" />
<ClInclude Include="..\..\src\tpMain\algela\qtUtils.h" />
<QtMoc Include="..\tpMain\QPLCDevice.h">
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;E:\wheelValve\3part\lp_libtcp\include</IncludePath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;E:\wheelValve\3part\lp_libtcp\include</IncludePath>
</QtMoc>
<ClInclude Include="..\..\src\tpMain\lpThread.h" />
<QtMoc Include="..\tpMain\lpRawTcp\lpRawTcpClientSession.h">
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;.\..\..\src\tpMain\algela;.\..\..\3part\tadpole\include\tpBase;.\..\..\3part\lp_libtcp\include;.\..\..\src\tpMain</IncludePath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;E:\wheelValve\3part\lp_libtcp\include;E:\wheelValve\src\tpMain</IncludePath>
</QtMoc>
<QtMoc Include="..\tpMain\lpRawTcp\lptkRawTcpServer.h">
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;.\..\..\src\tpMain\algela;.\..\..\3part\tadpole\include\tpBase;.\..\..\3part\lp_libtcp\include;.\..\..\src\tpMain</IncludePath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;E:\wheelValve\3part\lp_libtcp\include;E:\wheelValve\src\tpMain</IncludePath>
</QtMoc>
<ClInclude Include="lpConfig.h">
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase</IncludePath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets</IncludePath>
@ -159,6 +179,14 @@
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase</IncludePath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase</IncludePath>
</QtMoc>
<QtMoc Include="QTCPDebugUI.h">
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;.\..\..\src\tpMain\algela;.\..\..\3part\tadpole\include\tpBase;.\..\..\3part\lp_libtcp\include;.\..\..\src\tpMain;.\..\..\tpvs17\tpMain\lpRawTcp</IncludePath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;E:\wheelValve\3part\lp_libtcp\include;E:\wheelValve\src\tpMain</IncludePath>
</QtMoc>
<ClInclude Include="lpGlobalData.h">
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;.\..\..\src\tpMain\algela;.\..\..\3part\tadpole\include\tpBase;.\..\..\3part\lp_libtcp\include;.\..\..\src\tpMain;.\..\..\tpvs17\tpMain\lpRawTcp</IncludePath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;E:\wheelValve\3part\lp_libtcp\include;E:\wheelValve\src\tpMain</IncludePath>
</ClInclude>
<ClInclude Include="resource.h" />
<ClInclude Include="SystemTool.h" />
<QtMoc Include="lpDebugUI.h">

@ -31,6 +31,9 @@
<Filter Include="view">
<UniqueIdentifier>{b528bd13-2709-4bfb-ae7d-6beffda08cc3}</UniqueIdentifier>
</Filter>
<Filter Include="lpRawTcp">
<UniqueIdentifier>{6b2afa7b-bb76-4d9e-9870-8a19fb08089a}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.cpp">
@ -81,6 +84,24 @@
<ClCompile Include="QSignleApplication.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\tpMain\QPLCDevice.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\tpMain\lpThread.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\tpMain\lpRawTcp\lpRawTcpClientSession.cpp">
<Filter>lpRawTcp</Filter>
</ClCompile>
<ClCompile Include="..\tpMain\lpRawTcp\lptkRawTcpServer.cpp">
<Filter>lpRawTcp</Filter>
</ClCompile>
<ClCompile Include="QTCPDebugUI.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="lpGlobalData.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<QtMoc Include="valueMainUI.h">
@ -110,6 +131,18 @@
<QtMoc Include="QSignleApplication.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\tpMain\QPLCDevice.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\tpMain\lpRawTcp\lpRawTcpClientSession.h">
<Filter>lpRawTcp</Filter>
</QtMoc>
<QtMoc Include="..\tpMain\lpRawTcp\lptkRawTcpServer.h">
<Filter>lpRawTcp</Filter>
</QtMoc>
<QtMoc Include="QTCPDebugUI.h">
<Filter>Header Files</Filter>
</QtMoc>
</ItemGroup>
<ItemGroup>
<QtUic Include="valueMainUI.ui">
@ -121,6 +154,9 @@
<QtUic Include="lpDebugUI.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="QTCPDebugUI.ui">
<Filter>Form Files</Filter>
</QtUic>
</ItemGroup>
<ItemGroup>
<QtRcc Include="valueMainUI.qrc">
@ -146,6 +182,12 @@
<ClInclude Include="resource.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\tpMain\lpThread.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="lpGlobalData.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="valueMainUI.rc" />

Loading…
Cancel
Save