You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wheeldetect/tpvs17/tpMain/lpMainWin.cpp

1220 lines
36 KiB
C++

#include "lpMainWin.h"
#include "quserinfo_global.h"
#include "QDir"
#include "QFileInfo"
#include "qmysplashscreen.h"
#include "InfoFile.h"
#include "WheelCtrl.h"
#include "QWorkMgrCtlr.h"
#include "qworkmgrui.h"
#include "IWheelModel.h"
#include <QDebug>
#include "qnettickthread.h"
#include "QMessageBox"
#include "ChannelInfo.h"
#pragma execution_character_set("utf-8")
lpMainWin::lpMainWin(QWidget *parent)
: QMainWindow(parent)
{
QMySplashScreen m_screen;
m_screen.show();
qRegisterMetaType<TimeStruct>("TimeStruct");
m_screen.ShowMsg(tr("<EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>Ҫģ<EFBFBD><EFBFBD>....."));
onInitCoreCtrl();
ui.setupUi(this);
onInitAbout();
{
QGridLayout *pLayout = new QGridLayout(ui.cam_win_1);
m_ImgViewer = new RoiImgViewer(ui.cam_win_1);
m_ImgViewer->setObjectName("Imageview");
pLayout->addWidget(m_ImgViewer);
ui.cam_win_1->setLayout(pLayout);
}
{
connect(ui.action_userManager, SIGNAL(triggered()), this, SLOT(onActionClicked()));
connect(ui.action_Login, SIGNAL(triggered()), this, SLOT(onActionClicked()));
connect(ui.action_about, SIGNAL(triggered()), this, SLOT(onActionClicked()));
connect(ui.action_setting_ip, SIGNAL(triggered()), this, SLOT(onActionClicked()));
connect(ui.action_cali_raster, SIGNAL(triggered()), this, SLOT(onActionClicked()));
connect(ui.action_setting_ban, SIGNAL(triggered()), this, SLOT(onActionClicked()));
connect(ui.action_debug, SIGNAL(triggered()), this, SLOT(onActionClicked()));
connect(ui.action_connect_mode, SIGNAL(triggered()), this, SLOT(onActionClicked()));
connect(ui.action_checkdata, SIGNAL(triggered()), this, SLOT(onActionClicked()));
connect(ui.action_modelmgr, SIGNAL(triggered()), this, SLOT(onActionClicked()));
connect(ui.btn_start_detect, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
connect(ui.btn_clear_data, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
}
{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QSettings languageSetting("hubdetect.ini", QSettings::IniFormat);
QString strLangeage = languageSetting.value("language", "Chinese").toString();
SetLanguage(strLangeage);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
loadUserModel();
//<2F><>ʼ<EFBFBD><CABC>ģ<EFBFBD>͹<EFBFBD><CDB9><EFBFBD>ģ<EFBFBD><C4A3>
{
m_pCtrl = new WheelCtrl(QCoreApplication::applicationDirPath(), &m_screen);
pWorkCtrl = new QWorkMgrCtlr(m_pCtrl);
pWorkCtrl->readManageFile();
m_pworkUI = new QWorkMgrUI(pWorkCtrl, m_pCtrl);
m_pworkUI->InitUI();
connect(m_pworkUI, SIGNAL(sgUpdatedefect()), this, SLOT(onUpdateDefect()));
m_pState = m_pCtrl->getDetectState();
m_pModelMgrDlg = new QModelMgrDlg();
m_pDebugDlg = new QDebugDlg();
m_pTimerMgrDlg = new QTimeMgrDlg();
connect(m_pDebugDlg, SIGNAL(sgTriggerCam()), this, SLOT(onTriggerCam()));
m_pDebugDlg->onSetCtrl(m_pCtrl);
m_pixMapList = new QPixmapListBar(ui.tp_main_tabWidget);
ui.tp_main_tabWidget->insertTab(0, m_pixMapList, tr("<EFBFBD><EFBFBD>ʷ"));
ui.tp_main_tabWidget->setCurrentIndex(0);
}
{
/*<2A><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>*/
SendModelLibTask = new QMyThread();
SendModelLibTask->setUser(true);
SendModelLibTask->loadfunc(this, &lpMainWin::SendModelKuTskFun);
SendTiskTsk = new QMyThread();
SendTiskTsk->loadfunc(this, &lpMainWin::SendTickTskFun);
m_screen.ShowMsg(tr("ϵͳ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."));
}
{
onSetModel();
/*<2A><><EFBFBD><EFBFBD>ͨ<EFBFBD>ż<EFBFBD><C5BC><EFBFBD>*/
m_pNet = ((WheelCtrl*)m_pCtrl)->getNet();
connect(m_pNet, SIGNAL(sgShow2UI(QString, bool)), this, SLOT(onTcpConnet(QString, bool)));//net
connect(m_pNet, SIGNAL(sgClientConnect(QString, bool)), this, SLOT(onClientConnect(QString, bool)));//net
//connect(m_pNet, SIGNAL(sgRecv(const QString &)), this, SLOT(onTcpRecv(const QString &)));// net<65><74>ʾ
connect(m_pNet, SIGNAL(sgThickness(double)), this, SLOT(onThickness(double)));//xy height
connect(m_pNet, SIGNAL(sgRecvDetectState(int, int)), this, SLOT(onDetectStateRecv(int, int)));//xy check
connect(m_pNet, SIGNAL(sgClearRev(bool)), this, SLOT(onClearLibRev(bool)));//xy clearlib
connect(m_pNet, SIGNAL(sgPulseRev()), this, SLOT(onPulseRev()));
// connect(m_pNet, SIGNAL(sgResultRev()), this, SLOT(onResultRev()));
connect(m_pNet, SIGNAL(sgRecvTrigPara()), this, SLOT(onRecvTrigPara()));
connect(m_pNet, SIGNAL(sgReadDetectState(int, QString)), this, SLOT(onReadDetectState(int, QString)));
connect(m_pNet, SIGNAL(sgReadDetectStateASK()), this, SLOT(onReadDetectStateASK()));
connect(m_pNet, SIGNAL(sgCameraTrig(int)), this, SLOT(onTrigRecv(int)));
connect(m_pNet, SIGNAL(sgServerState(QString, int, bool)), this, SLOT(onServerState(QString, int, bool)));
connect(m_pNet, SIGNAL(sgShutDownComputer()), this, SLOT(onShutDownComputer()));
connect(m_pNet, SIGNAL(sgLibRev(bool)), SendModelLibTask, SLOT(WaitSingleIn(bool)));//xy lib
// connect(m_pNet, SIGNAL(sgChangeOnlineState(int)), m_pUi, SLOT(onSwitchOnlineModel(int)));//ǿ<><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
QTimer::singleShot(500, m_pNet, SLOT(onOpenServer()));//<2F>ӳ<EFBFBD>2s<32><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCP<43><50><EFBFBD><EFBFBD>
}
{
connect(&m_PulseTimer, SIGNAL(timeout()), this, SLOT(onPulseTimer()));//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
connect(&m_wfPulseTimer, SIGNAL(timeout()), this, SLOT(onwfPulseTimer()));//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
connect(&m_ThicknessTimer, SIGNAL(timeout()), this, SLOT(onThicknessTimer()));// <20><><EFBFBD>Ȳ<EFBFBD>ѯ
connect(&m_ReadLibTimer, SIGNAL(timeout()), this, SLOT(onSendReadOnlineLib()));
connect(this, SIGNAL(sgTickTsk()), this, SLOT(onPulseTimer()));
connect(this, SIGNAL(sgShowMsg(QString, bool)), this, SLOT(onTcpConnet(QString, bool)));
connect(this, SIGNAL(sgTaskSendModels(int, QString, double, double)), this, SLOT(onTaskSendModels(int, QString, double, double)));//<2F><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>Ī<EFBFBD><C4AA><EFBFBD><EFBFBD>
connect(this, SIGNAL(sgTskSendDetectState(int, QString, int)), this, SLOT(onTaskSendDetectState(int, QString, int)));//<2F><><EFBFBD>߼<EFBFBD><DFBC><EFBFBD><E2B7A2> <20><><EFBFBD>ڷ<EFBFBD><DAB7>ͼ<EFBFBD><CDBC><EFBFBD>״̬
connect(this, SIGNAL(sgTskSendCheck(int, int, QString)), this, SLOT(onTaskCheck(int, int, QString)));//<2F><><EFBFBD>߼<EFBFBD><DFBC><EFBFBD>״̬<D7B4><CCAC>ѯ <20><><EFBFBD>ڲ<EFBFBD>ѯ<EFBFBD>߳<EFBFBD>
// connect(this, SIGNAL(sgCheckEnd()), this, SLOT(onCheckEnd()));
connect(this, SIGNAL(sgShowImgState(QString)), this, SLOT(onShowImgState(QString)));
connect(this, SIGNAL(sgGetImg()), this, SLOT(onGetImg()));
connect(this, SIGNAL(sgShowMsgdlg(QString)), this, SLOT(onShowMsg(QString)));
connect(this, SIGNAL(sgSendDisLib(int, QString)), this, SLOT(onSendDisLib(int, QString)));
connect(this, SIGNAL(sgSendDisLibDone()), this, SLOT(onSendDisLibDone()));
connect(this, SIGNAL(sgShowChannelRes(QString)), this, SLOT(onShowChannel(QString)));
}
{
/*<2A><><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>һֱ<D2BB><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD><CDBA>Ȳ<EFBFBD>ѯ*/
if (m_pState->m_AutoSendTick2Net)
{
SendTiskTsk->setSleepTime(1000);
SendTiskTsk->start();
}
if (m_pState->m_StartAndDetect == 1)//m_sysType <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>
{
// m_timerDetect.setSingleShot(true);
// connect(&m_timerDetect, SIGNAL(timeout()), m_pUi, SLOT(onStartDetect()));
// m_timerDetect.start(5000);
//QTimer::singleShot(1000, m_pUi, SLOT(onStartDetect()));
// QTimer::singleShot(3000, [&](){
// m_pState->bLockDetect = true;
// m_pCtrl->onStart();
// });
}
if (m_pState->m_AutoSendTick2COM)
m_wfPulseTimer.start(1000);
pTickThread = new QThread(this);
QNetTickThread *pNetTick = new QNetTickThread;
pNetTick->setNetPtr(m_pNet);
pNetTick->moveToThread(pTickThread);
connect(pTickThread, &QThread::finished, pNetTick, &QObject::deleteLater);
connect(this, SIGNAL(sgNetData(int, QVariantMap)), pNetTick, SLOT(doWork(int, QVariantMap)));
connect(pNetTick, SIGNAL(resultReady(int, QVariantMap)), m_pNet, SLOT(onSendDataByType(int, QVariantMap)));
pTickThread->start();
}
{
m_pTableCheck = new ModelsView(ui.tableview_checkstate, m_pCtrl->getAllModelMapPtr());
m_pTableCheck->setEnable(false);
connect(m_pCtrl, SIGNAL(sgModelChanged()), m_pTableCheck, SLOT(updateModels()));
m_pTableCheck->setModelList(forDefectList);
}
}
lpMainWin::~lpMainWin()
{
m_timer.stop();
if (m_VecTranPtr.size() > 0) {
while (m_VecTranPtr.size()) {
QTranslator *pTrans = m_VecTranPtr.takeFirst();
qApp->removeTranslator(pTrans);
delete pTrans;
}
}
if (m_pUserCtrl) {
delete m_pUserCtrl;
m_pUserCtrl = NULL;
}
if (SendModelLibTask)
{
qDebug() << "delete SendModelLibTak";
if (SendModelLibTask->isRunning())
SendModelLibTask->stop();
SendModelLibTask->wait(50);
delete SendModelLibTask;
SendModelLibTask = NULL;
qDebug() << "delete SendModelLibTak end";
}
if (SendTiskTsk)
{
qDebug() << "delete SendTiskTsk";
if (SendTiskTsk->isRunning())
SendTiskTsk->stop();
SendTiskTsk->wait(50);
delete SendTiskTsk;
SendTiskTsk = NULL;
qDebug() << "delete SendTiskTsk end";
}
if (pTickThread)
{
qDebug() << "delete pTickThread";
if (pTickThread->isRunning())
{
pTickThread->quit();
pTickThread->wait(50);
}
delete pTickThread;
pTickThread = NULL;
qDebug() << "delete pTickThread end";
}
if (m_pCtrl)
{
delete m_pCtrl;
m_pCtrl = nullptr;
}
if (pWorkCtrl)
{
delete pWorkCtrl;
pWorkCtrl = nullptr;
}
if (m_pworkUI)
{
delete m_pworkUI;
m_pworkUI = nullptr;
}
if (m_pModelMgrDlg)
{
delete m_pModelMgrDlg;
m_pModelMgrDlg = nullptr;
}
if (m_pDebugDlg) {
delete m_pDebugDlg;
m_pDebugDlg = nullptr;
}
if (m_pTimerMgrDlg) {
delete m_pTimerMgrDlg;
m_pTimerMgrDlg = nullptr;
}
if (m_ImgViewer) {
delete m_ImgViewer;
m_ImgViewer = nullptr;
}
if (m_pixMapList) {
delete m_pixMapList;
m_pixMapList = nullptr;
}
if (m_pDllCoreCtrl)
{
delete m_pDllCoreCtrl;
m_pDllCoreCtrl = nullptr;
}
}
bool lpMainWin::onInitCoreCtrl()
{
//load coretrl
if (NULL == m_pDllCoreCtrl)
{
m_pDllCoreCtrl = new CDllCoreCtrl(QStringList(), nullptr);
if (NULL == m_pDllCoreCtrl)
{
return false;
}
m_pCoreCtrl = m_pDllCoreCtrl->m_pCoreCtrl;
FuncCallBack_VarInt getVarfunc = std::bind(&lpMainWin::IGetVariantById, this, std::placeholders::_1);
m_pCoreCtrl->IRegisterGetVariant(getVarfunc);
FuncCallBack_StrMap strMapfunc = std::bind(&lpMainWin::IVariantMapToUI, this, std::placeholders::_1, std::placeholders::_2);
m_pCoreCtrl->IRegisterResultCallBack(strMapfunc);
FuncCallBack_StrImg strImgfunc = std::bind(&lpMainWin::INewCameraImage, this, std::placeholders::_1, std::placeholders::_2);
m_pCoreCtrl->IRegisterImageCallBack(strImgfunc);
return true;
}
return false;
}
void lpMainWin::loadUserModel()
{
//userctrel
#ifdef _DEBUG
QLibrary lib("QUserInfod");
#else
QLibrary lib("QUserInfo");
#endif
_UserCtrlCreate func = (_UserCtrlCreate)lib.resolve("UserCtrlCreate");
if (func) {
m_pUserCtrl = func();
connect(m_pUserCtrl, SIGNAL(sgCurrentUserInfo(QString, int, int)), this, SLOT(onLogInOut(QString, int, int)));
}
}
void lpMainWin::SearchQmFile(const QString & strDir)
{
QDir dir(strDir);
if (!dir.exists())
{
return;
}
dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
dir.setSorting(QDir::DirsFirst); // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// ת<><D7AA><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>List
QFileInfoList list = dir.entryInfoList();
if (list.size() < 1)
{
return;
}
int i = 0;
do
{
QFileInfo fileInfo = list.at(i);
QString tt = fileInfo.fileName();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
bool bisDir = fileInfo.isDir();
if (bisDir)
{
SearchQmFile(fileInfo.filePath());
}
else
{
bool bQm = fileInfo.fileName().endsWith(".qm");
SetTranslator(fileInfo.filePath());
}
i++;
} while (i < list.size());
}
void lpMainWin::SetTranslator(const QString strPath)
{
if (strPath.isEmpty())
{
return;
}
QTranslator *pTrans = new QTranslator;
if (pTrans->load(strPath)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>سɹ<D8B3>
{
qApp->installTranslator(pTrans);
m_VecTranPtr.append(pTrans);
}
else
{
delete pTrans;
pTrans = NULL;
}
}
void lpMainWin::SetLanguage(QString strLangage)
{
QString strDirPath = QString(QCoreApplication::applicationDirPath() + "/language/");
QString translatorFileName = strLangage;
if (!translatorFileName.isEmpty())
{
if (m_VecTranPtr.size() > 0)
{
while (m_VecTranPtr.size())
{
QTranslator *pVa = m_VecTranPtr.takeFirst();
qApp->removeTranslator(pVa);
delete pVa;
pVa = NULL;
}
}
//if (strLangage == "Chinese")
// return;
QLocale::setDefault(QLocale(translatorFileName));
QString transDir = strDirPath + translatorFileName;
SearchQmFile(transDir);
}
}
/*<2A><><EFBFBD>߳̽<DFB3><CCBD><EFBFBD>ͼ<EFBFBD><CDBC>*/
void lpMainWin::INewCameraImage(const QString& camKey, QImage img)
{
if (m_ImgViewer)
{
int widgetWidth = m_ImgViewer->width();
int imgWidth = img.width();
float scalew = (widgetWidth*1.0) / (imgWidth*1.0);
int widgetHeight = m_ImgViewer->height();
int imgHeight = img.height();
float scaleh = (widgetHeight*1.0) / (imgHeight*1.0);
float minScale = scalew < scaleh ? scalew : scaleh;
m_ImgViewer->setInitScale(minScale-0.01);
m_ImgViewer->setImg(img);
}
}
/*<2A><><EFBFBD>̷߳<DFB3><CCB7><EFBFBD><EFBFBD><EFBFBD><E3B7A8><EFBFBD><EFBFBD>*/
void lpMainWin::IVariantMapToUI(const QString& camKey, const QVariantMap& vMap)
{
emit(sgShowImgState(tr("<EFBFBD><EFBFBD>ʾʶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")));
if (vMap.contains("error"))
{
emit(sgShowMsgdlg(tr("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")));
return;
}
Result2Ui *pResult = (Result2Ui*)vMap.value("result").toLongLong();
onShowResult(pResult);
if (m_pDebugDlg) {
m_pDebugDlg->onShowResult(pResult);
}
// m_pUi->processResult(pResult);
static int ErrorNum = 0;
if (m_pNet) {
if (pResult->m_strModel == "NG") {
//m_pNet->sendLight(0, 1, 1000, 10);//<2F><><EFBFBD><EFBFBD>
SendResultBee(LIGHT_REDBEE, 1);
SendResultBee(LIGHT_BEE, 1);
ErrorNum++;
}
else {
//m_pNet->sendLight(2, 1, 1000, 100);
SendResultBee(LIGHT_GREENBEE, 1);
ErrorNum = 0;
}
if (ErrorNum >= 3) {
QString str = tr("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%1<><31>δʶ<CEB4><CAB6><EFBFBD>ͺ<EFBFBD>").arg(ErrorNum);
if (m_pState->IsDetect == false)
str += tr("<><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B9A6><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>");
m_pCtrl->addLog(str, emTypeWaring);
//m_pNet->sendLight(0, 1, 2000, 100);
//m_pNet->sendLight(3, 1, 3000, 100);
SendResultBee(LIGHT_REDBEE, 3);
SendResultBee(LIGHT_BEE, 3);
}
}
if (m_pState->m_SendDetectStr2Net)
SendResultStr2PLC(pResult);//<2F><><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>PLC
if (m_pState->m_SendChannelRes2COM)
SendResultChannelCOM(pResult);//<2F><><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pState->m_SendChannelRes2Net)
SendResultChannel2PLC(pResult);//<2F><><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>PLC
m_pCtrl->saveResult(pResult);
delete pResult;
// m_IsDetected--;
// if (m_IsDetected <= 0)
// {
// m_IsDetected = 0;
// //emit(sgFinish());
// }
}
/*<2A><><EFBFBD>̻߳<DFB3>ȡ<EFBFBD><EFBFBD><E3B7A8><EFBFBD><EFBFBD>*/
QVariant lpMainWin::IGetVariantById(int id)
{
m_nDiffTrigNum--;//<2F><><EFBFBD><EFBFBD><EBB5BD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ͼƬ
qWarning() << "Alg get An Image:" << "(" << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss zzz") << ")";
emit(sgShowImgState(tr("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD>,<2C><><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD>...")));
emit(sgGetImg());
qDebug() << "get one Pic ,id=" << id;
if (m_pState->m_showThressList == 1) {
QString str = m_pCtrl->getThicknessStr();
emit(sgShowMsg(str, true));
}
QVariantMap vMap;
int nThickness = 0;
if (m_pState->m_IsUseRaster == 0)
nThickness = m_nWfThress;
else
nThickness = m_pCtrl->getThickness();// m_houduVec.first();
//nThickness = 209;
vMap.insert("thickness", QVariant(nThickness));
double dDiameter;// = (-794.25 * nThickness / 1000000.0 + 0.775960);
dDiameter = (m_pState->m_k * nThickness + m_pState->m_b);
vMap.insert("d2h", dDiameter);
vMap.insert("useThickness", m_pState->bUseThickness);
vMap.insert("useDiameter", m_pState->bUseDiameter);
vMap.insert("Threshold", m_pState->m_AlgThres);
vMap.insert("IsCutImg", m_pState->m_UseCutImg);
void* address = (void*)m_pCtrl->getAllModelMapPtr();
long long varadr = (long long)address;
vMap.insert("modelMap", varadr);
void* pdefectList = (void*)&forDefectList;
long long val = (long long)pdefectList;
vMap.insert("defectList", val);
qDebug() << "end get one pic" << id;
if (m_pState->m_showThressValue == 1) {
QString str = QString("thickness value = %1,dDiameter value = %2").arg(nThickness).arg(dDiameter);
emit(sgShowMsg(str, true));
}
return vMap;
}
Q_SLOT void lpMainWin::onLogInOut(QString strName, int level, int state)
{
// if (state == 0) {
// m_pCtrl->setUser(strName, level);
// if (main_loginIn)
// main_loginIn->setText(tr("ע <20><>"));
// m_pUi->onUserRole();
// }
// else
// {
// m_pCtrl->setUser(strName, level);
// if (main_loginIn)
// main_loginIn->setText(tr("<22><> ¼"));
// m_pUi->onUserRole();
// }
}
Q_SLOT void lpMainWin::onActionClicked()
{
QString strObj = sender()->objectName();
if ("action_userManager" == strObj) {
if (m_pUserCtrl)
{
m_pUserCtrl->ShowUserMgrDlg();
}
}
else if ("action_Login" == strObj) {
if (m_pUserCtrl)
{
m_pUserCtrl->CheckLogin();
}
}
else if ("action_about" == strObj) {
m_aboutDlg.setParent(this);
m_aboutDlg.setWindowTitle(tr("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
m_aboutDlg.setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_aboutDlg.setWindowIcon(QIcon(":/resource/logo-8.png"));
m_aboutDlg.setWindowModality(Qt::ApplicationModal);
m_aboutDlg.setAttribute(Qt::WA_ShowModal, true);
m_aboutDlg.show();
}
else if ("action_setting_ip" == strObj) {
}
else if ("action_cali_raster" == strObj) {
}
else if ("action_setting_ban" == strObj) {
if (m_pTimerMgrDlg) {
m_pTimerMgrDlg->setParent(this);
m_pTimerMgrDlg->setWindowTitle(tr("<EFBFBD><EFBFBD><EFBFBD>ι<EFBFBD><EFBFBD><EFBFBD>"));
m_pTimerMgrDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pTimerMgrDlg->setWindowIcon(QIcon(":/resource/logo-8.png"));
m_pTimerMgrDlg->setWindowModality(Qt::ApplicationModal);
m_pTimerMgrDlg->setAttribute(Qt::WA_ShowModal, true);
m_pTimerMgrDlg->show();
}
}
else if ("action_debug" == strObj) {
if (m_pDebugDlg) {
m_pDebugDlg->setParent(this);
m_pDebugDlg->setWindowTitle(tr("<EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><EFBFBD><EFBFBD>"));
m_pDebugDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pDebugDlg->setWindowIcon(QIcon(":/resource/logo-8.png"));
m_pDebugDlg->setWindowModality(Qt::ApplicationModal);
m_pDebugDlg->setAttribute(Qt::WA_ShowModal, true);
m_pDebugDlg->show();
}
}
else if ("action_connect_mode" == strObj) {
if (m_pworkUI)
{
m_pworkUI->setParent(this);
m_pworkUI->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pworkUI->setWindowIcon(QIcon(":/resource/logo-8.png"));
m_pworkUI->setWindowModality(Qt::ApplicationModal);
m_pworkUI->setAttribute(Qt::WA_ShowModal, true);
m_pworkUI->onExec();
}
}
else if ("action_checkdata" == strObj) {
}
else if ("action_modelmgr" == strObj) {
if (m_pModelMgrDlg)
{
m_pModelMgrDlg->setParent(this);
m_pModelMgrDlg->setWindowTitle(tr("ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
m_pModelMgrDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pModelMgrDlg->setWindowIcon(QIcon(":/resource/logo-8.png"));
m_pModelMgrDlg->setWindowModality(Qt::ApplicationModal);
m_pModelMgrDlg->setAttribute(Qt::WA_ShowModal, true);
m_pModelMgrDlg->show();
}
}
}
Q_SLOT void lpMainWin::onButtonClicked()
{
QString strObj = sender()->objectName();
if ("btn_start_detect" == strObj)//<2F><>ʼ
{
//<2F><>ʼ<EFBFBD><CABC><EFBFBD>ⰴť
if (m_pState->IsDetect == false) {
ui.btn_start_detect->setText(tr("ֹͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
m_pCtrl->onStart();
QString str = tr("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>ⰴť<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><EFBFBD><EFBFBD>");
m_pCtrl->addLog(str, emTypeRunState);
//QTimer::singleShot(3000, [&](){m_pState->bLockDetect = true; });
QTimer::singleShot(3000, this, SLOT(onChangeDetect()));
}
else {
m_pCtrl->onFinish();
ui.btn_start_detect->setText(tr("<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
QString str = tr("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ<EFBFBD><EFBFBD><EFBFBD>ⰴť<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܹر<EFBFBD>");
m_pCtrl->addLog(str, emTypeRunState);
m_pState->bLockDetect = false;
}
m_pState->IsDetect = !m_pState->IsDetect;
}
else if ("btn_clear_data" == strObj) {//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QMessageBox infobox(QMessageBox::Warning, tr("<EFBFBD><EFBFBD>ʾ"), tr("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QMessageBox::Yes | QMessageBox::Cancel, this);
infobox.setButtonText(QMessageBox::Yes, tr("ȷ<EFBFBD><EFBFBD>"));
infobox.setButtonText(QMessageBox::Cancel, tr("ȡ<EFBFBD><EFBFBD>"));
infobox.setWindowIcon(QIcon(":/image/leaper"));
if (QMessageBox::Cancel != infobox.exec()) {
m_pCtrl->onClear();
ui.main_lb_res_ok_num->setText(QString::number(0));
ui.main_lb_res_ng_num->setText(QString::number(0));
QString str = m_pCtrl->getUserName() + ":" + tr("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㰴ť<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
m_pCtrl->addLog(str, emTypeUseState);
}
}
}
void lpMainWin::timerEvent(QTimerEvent *event)
{
}
void lpMainWin::closeEvent(QCloseEvent *event)
{
}
void lpMainWin::SendModelKuTskFun()
{
/*
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PLC<EFBFBD><EFBFBD>
*/
m_pState->m_ThreadWaitTime = 100;
const int c_nErrorTime = 3;
int nError = 0;
QMap<QString, IWheelModel*>*ptr = m_pCtrl->getAllModelMapPtr();
QList<QString> lst = ptr->keys();
if (ptr->size() > 0 && lst.size() > 0)
{
int nIndex = 0;
do
{
IWheelModel *p = ptr->value(lst.at(nIndex));
emit sgTaskSendModels(nIndex + 1, lst.at(nIndex), p->getDiameter(), p->getThickness());
bool b = this->SendModelLibTask->WaitForSingle(m_pState->m_ThreadWaitTime);
if (!b) {
nError++;
if (m_pState->m_PLC_ASK == 1) {
if (nError > c_nErrorTime) {
++nIndex;
nError = 0;
qDebug() << "timeout, more than 3 times, cannot rev ask";
}
}
else {
++nIndex;
nError = 0;
}
}
else {
nError = 0;
nIndex++;
}
} while (nIndex < lst.size());
}
emit(sgShowMsgdlg(tr("ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")));
}
void lpMainWin::SendTickTskFun()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pNet)
{
m_pNet->sendPulse(6000, m_pState->IsDetect, m_pState->IsOnline);
//m_TimerID = startTimer(500);
}
}
void lpMainWin::onSetModel()
{
/*
<EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>
*/
forDefectList = pWorkCtrl->getDefectList();
if (m_pTableCheck) {
m_pTableCheck->setModelList(forDefectList);
}
QString str = QString("%1:%2(%3)").arg(tr("<EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD><EFBFBD><EFBFBD>")).arg(forDefectList.size()).arg(m_pCtrl->getAllModelName().size() - 1);
ui.main_showWorkLabel->setText(str);
// IWheelUi *pMainWidget = m_pUi->getItemWidget(WHEEL_UI_MAINWINDOW);
// if (pMainWidget) {
// pMainWidget->setViewList(forDefectList);
// }
// void* address = (void*)m_pCtrl->getAllModelMapPtr();
// gpTpCoreCtrl->ISetAlgorithmShared("modelMap", (int)address);
// QVariant filepath = QVariant(QCoreApplication::applicationDirPath());
// gpTpCoreCtrl->ISetAlgorithmShared("filepath", filepath);
//
// void* pdefectList = (void*)&forDefectList;
// gpTpCoreCtrl->ISetAlgorithmShared("defectList", (int)pdefectList);
}
///*******************************************************************************
Q_SLOT void lpMainWin::onUpdateDefect() {
forDefectList = pWorkCtrl->getDefectList();
if (m_pTableCheck) {
m_pTableCheck->setModelList(forDefectList);
}
QString str = QString("%1:%2(%3)").arg(tr("<EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD><EFBFBD><EFBFBD>")).arg(forDefectList.size()).arg(m_pCtrl->getAllModelName().size() - 1);
ui.main_showWorkLabel->setText(str);
}
Q_SLOT void lpMainWin::onTcpConnet(QString str, bool bConnect)
{
static bool nTcpConnetSetting = true;
QTextBrowser *m_Tcp_textbrower = ui.main_textBrowser;
if (m_Tcp_textbrower && nTcpConnetSetting == true) {
m_Tcp_textbrower->clear();
QTextDocument *pDoc = m_Tcp_textbrower->document();
pDoc->setMaximumBlockCount(10244);
nTcpConnetSetting = false;
}
if (m_Tcp_textbrower) {
if (!bConnect) {
QColor m_color(255, 0, 0);
m_Tcp_textbrower->setTextColor(m_color);
}
else {
QColor m_color(16, 67, 24);
m_Tcp_textbrower->setTextColor(m_color);
}
m_Tcp_textbrower->append(str);
QTextCursor cursor = m_Tcp_textbrower->textCursor();
cursor.movePosition(QTextCursor::End);
m_Tcp_textbrower->setTextCursor(cursor);
}
}
Q_SLOT void lpMainWin::onClientConnect(QString addr, bool bConnect)
{
/*<2A>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ӵĻ<D3B5><C4BB><EFBFBD>IP<49><50>ַ<EFBFBD>Dz<EFBFBD><C7B2>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>úõ<C3BA>IP<49><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
QString m_addr = NetProtocol::genAddressPort(m_pNet->getIp(emNetClient), m_pNet->getPort(emNetClient));
if (m_addr == addr && bConnect)
{
QTimer::singleShot(200, this, SLOT(onSendClearLib2PLC()));
}
if (bConnect == true && 1 == m_pState->IsOnline) {
//m_pUi->onSwitchOnlineModel(m_pState->IsOnline);//<2F><><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD>ģʽ<C4A3>л<EFBFBD>
}
QString strMsg;
if (bConnect)
{
strMsg += QString("IP:%1 %2").arg(addr).arg(tr("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
}
else
{
strMsg += QString("IP:%1 %2").arg(addr).arg(tr("<EFBFBD>ѶϿ<EFBFBD>"));
}
m_pCtrl->addLog(strMsg, emTypeRunState);
ui.main_textBrowser->append(strMsg);
}
Q_SLOT void lpMainWin::onThickness(double dValue)
{
m_pCtrl->appendThicknessValue(dValue);
}
Q_SLOT void lpMainWin::onDetectStateRecv(int nIndex, int value)
{
nIndex -= 1;
QMap<QString, IWheelModel*> *ptr = m_pCtrl->getAllModelMapPtr();
if (ptr) {
QList<QString> lst = ptr->keys();
if (nIndex < lst.size() && nIndex >= 0) {
IWheelModel*pModel = ptr->value(lst.at(nIndex));
pModel->setDetectState(value);
emit(m_pCtrl->sgModelChanged(lst.at(nIndex)));
}
else {
qDebug() << "rev detect state, index big than lst size";
}
}
}
Q_SLOT void lpMainWin::onClearLibRev(bool state)
{
/*<2A><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>*/
if (SendModelLibTask) {
if (SendModelLibTask->isRunning())
SendModelLibTask->stop();
if (m_pNet)
m_pNet->sendModelNum(m_pCtrl->getAllModelMapPtr()->size());
SendModelLibTask->start();
}
}
//<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>رն<D8B1>ʱ<EFBFBD><CAB1>
Q_SLOT void lpMainWin::onPulseRev()
{
if (m_TimerID != 0)
{
killTimer(m_TimerID);
m_TimerOutCount = 0;
m_RestartServerCount = 0;
}
}
Q_SLOT void lpMainWin::onRecvTrigPara()
{
emit(sgShowMsgdlg(tr("PLC<EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")));
}
Q_SLOT void lpMainWin::onReadDetectState(int nIndex, QString strModel)
{
nIndex -= 1;
QMap<QString, IWheelModel*> *ptr = m_pCtrl->getAllModelMapPtr();
if (ptr) {
QList<QString> lst = ptr->keys();
/*if (nIndex < lst.size() && nIndex >= 0)*/ {
IWheelModel*pModel = ptr->value(strModel);
if (pModel) {
pModel->setDetectState(1);
emit(m_pCtrl->sgModelChanged(strModel));
}
}
}
}
Q_SLOT void lpMainWin::onReadDetectStateASK()
{
QMap<QString, IWheelModel*> *ptr = m_pCtrl->getAllModelMapPtr();
if (ptr) {
QList<QString> lst = ptr->keys();
for (int nIndex = 0; nIndex < lst.size(); nIndex++) {
IWheelModel*pModel = ptr->value(lst.at(nIndex));
pModel->setDetectState(0);
emit(m_pCtrl->sgModelChanged(lst.at(nIndex)));
}
}
}
Q_SLOT void lpMainWin::onTrigRecv(int m_value)
{
/*<2A><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD>PLC<4C><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD> <20>Լ<EFBFBD><D4BC>Ƿ<EFBFBD><C7B7>յ<EFBFBD>ͼ<EFBFBD><CDBC> */
qDebug() << "recv a camera trig :" << QString::number(m_value);
qWarning() << "recv a Triger signal from PLC:" << "(" << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss zzz") << ")";
if (m_pState)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
if (m_pState->m_CameraTrigeType == 0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
{
if (m_pState->bLockDetect == true) {
//CC_Action(CC_AC_NEXT);
onTriggerCam();
qWarning() << "soft ctrol camera :" << "(" << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss zzz") << ")";
}
}
}
}
Q_SLOT void lpMainWin::onServerState(QString Addr, int port, bool m_state)
{
QString str;
if (m_state == true)
str = QString(tr("<EFBFBD>Ѵ<EFBFBD><EFBFBD><EFBFBD>"));
else
str = QString(tr("<EFBFBD>ѹر<EFBFBD>"));
QString strMsg = QString("serverIP %1 port %2 %3.").arg(Addr).arg(port).arg(str);
m_pCtrl->addLog(m_pCtrl->getUserName() + ":" + strMsg, emTypeRunState);
}
Q_SLOT void lpMainWin::onShutDownComputer()
{
qApp->closeAllWindows();
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
OSVERSIONINFO osvi;
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
if (GetVersionEx(&osvi) == 0)
return;
if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) {
// Windows NT 3.51, Windows NT 4.0, Windows 2000,
// Windows XP, Windows .NET Server
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
return;
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, NULL, NULL);
}
ExitWindowsEx(EWX_SHUTDOWN, SHTDN_REASON_MAJOR_OTHER);
}
//***********************************************************************
Q_SLOT void lpMainWin::onPulseTimer()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pNet)
{
m_pNet->sendPulse(6000, m_pState->IsDetect, m_pState->IsOnline);
//m_TimerID = startTimer(500);
}
}
Q_SLOT void lpMainWin::onTaskSendModels(int nIndex, QString strModel, double dDiameter, double dHeight)
{
if (m_pNet)
m_pNet->sendModelList(nIndex, strModel, dDiameter, dHeight);
}
Q_SLOT void lpMainWin::onTaskSendDetectState(int nIndex, QString strModel, int IsState)
{
if (m_pNet)
m_pNet->sendDeteStateList(nIndex, IsState, strModel);
}
Q_SLOT void lpMainWin::onTaskCheck(int nIndex, int IsState, QString strModel)
{
if (m_pNet)
m_pNet->sendCheckDeteStateList(nIndex, IsState, strModel);
}
Q_SLOT void lpMainWin::onShowImgState(QString str)
{
ui.main_label_state->setText(str);
}
Q_SLOT void lpMainWin::onGetImg()
{
ui.main_lb_res_model_pic->setStyleSheet(QString("QLabel{border: 1px solid rgb(0,0,0,250);background-color: rgb(200, 200, 200);}"));
}
//չʾ<D5B9><CABE>Ϣ
Q_SLOT void lpMainWin::onShowMsg(QString str)
{
// QPulpewidget *pw = new QPulpewidget();
// m_pw = pw;
// QMainWindow *m_pDlgMain = nullptr;// GET_WIDGET_POINTER("MainWindow", QMainWindow);
// pw->setParent(m_pDlgMain);
// pw->showmessage(str);
// connect(pw, SIGNAL(finished()), pw, SLOT(deleteLater()));
// connect(pw, SIGNAL(finished()), this, SLOT(onInitPW()));
}
Q_SLOT void lpMainWin::onSendDisLib(int nIndex, QString strModel)
{
m_pNet->sendDisLibs(nIndex, strModel);
}
Q_SLOT void lpMainWin::onSendDisLibDone()
{
m_pNet->sendDisLibsDone();
}
Q_SLOT void lpMainWin::onShowChannel(QString str)
{
ui.main_lb_res_Channle_Show->setText(str);
}
Q_SLOT void lpMainWin::onTriggerCam()
{
if (m_pCoreCtrl)
{
QStringList strLst = m_pCoreCtrl->ICameraKeys();
m_pCoreCtrl->ISnapImage(strLst);
}
}
void lpMainWin::onInitAbout()
{
QString aboutString;
aboutString = QString(
"<h1>%1</h1>"
"<p>%2.</p>"
"<p>%3:www.hzleaper.com</p>"
"<p>%4:%5</p>"
"<p>%6:%7</p>"
"<p>%8<><38>%9</p>"
"<p> </p>"
).arg(tr("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>ʶ<EFBFBD><EFBFBD>ϵͳ"))
.arg(tr("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>ʶ<EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD>ɴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳʹ<EFBFBD><EFBFBD>"))
.arg(tr("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD>ò<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD><EFBFBD><EFBFBD>վ"))
.arg(tr("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")).arg(111)
//.arg(tr("<22><EFBFBD>汾")).arg(strWhelAlgoType)
.arg(tr("<EFBFBD><EFBFBD>")).arg(111)
.arg(tr("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>")).arg(111)
.arg(tr("<EFBFBD><EFBFBD>Ȩ (c) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾ <20><><EFBFBD><EFBFBD>"));
m_aboutDlg.setFixedSize(500, 300);
//QLabel* lbTitle = new QLabel(m_lightBox);
//QLabel* lbTitle = new QLabel(&m_mainWidget);
//lbTitle->setPixmap(QPixmap(":/image/Resource/logo-8.png").scaled(50,50));
//lbTitle->setStyleSheet("font-size: 28px; font-weight: bold; color: white");
//QTextEdit* pEdit = new QTextEdit(m_lightBox);
QTextEdit* pEdit = new QTextEdit(&m_aboutDlg);
//QLabel* pEdit = new QLabel(&m_mainWidget);
pEdit->setReadOnly(true);
pEdit->append(aboutString);
//pEdit->setText(aboutString);
//pEdit->setStyleSheet("background-color: rgb(0, 0, 0, 255);color:#1E296B;border:0px solid gray;color: black");
pEdit->setAttribute(Qt::WA_TranslucentBackground, true);
QPalette pl = pEdit->palette();
pl.setBrush(QPalette::Base, QBrush(QColor(255, 0, 0, 0)));
pEdit->setPalette(pl);
QPushButton* lbClose = new QPushButton(tr("<EFBFBD>ر<EFBFBD>"));
//QGridLayout* lbLayout = new QGridLayout(m_lightBox);
QGridLayout* lbLayout = new QGridLayout(&m_aboutDlg);
//lbLayout->addWidget(lbTitle, 1, 1);
lbLayout->addWidget(pEdit, 2, 1, 1, 3);
lbLayout->addWidget(lbClose, 3, 2);
lbClose->setMaximumSize(QSize(100, 50));
//connect(lbClose, SIGNAL(clicked()), m_lightBox, SLOT(hide()));
connect(lbClose, SIGNAL(clicked()), &m_aboutDlg, SLOT(hide()));
//m_lightBox->setLayout(lbLayout);
}
void lpMainWin::onShowResult(Result2Ui* pRlt)
{
if (!pRlt)
return;
/*
ui.main_lb_res_model_pic;//ƥ<><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ
ui.main_lb_res_okng;//ƥ<><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OK NG
ui.main_lb_res_model_id;//ƥ<><C6A5><EFBFBD>ͺ<EFBFBD>
ui.main_lb_res_model_score;//ƥ<><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ui.main_lb_res_model_thickness;//<2F><><EFBFBD><EFBFBD>
ui.main_lb_res_model_diameter;//ֱ<><D6B1>
ui.main_lb_res_model_time;//ʶ<><CAB6><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1>
ui.main_lb_res_ok_num;//ʶ<><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ui.main_lb_res_ng_num;//NG <20><><EFBFBD><EFBFBD>
*/
int scareh = ui.main_lb_res_model_pic->height();
int scarew = ui.main_lb_res_model_pic->width();
int scare = 0;
if (scareh > scarew)
scare = scarew;
else
scare = scareh;
if (pRlt->m_strModel.isEmpty()) {
m_pState->totalUnDetectNum++;
QPixmap pix(":/image/none.jpg");
ui.main_lb_res_model_pic->setPixmap(pix.scaled(scare - 15, scare - 15));
ui.main_lb_res_model_pic->setStyleSheet(QString("QLabel{border: 5px solid rgb(250,0,0,250);background-color: rgb(200, 200, 200);}"));
pRlt->m_strModel = "NG";
ui.main_lb_res_okng->setText("NG");
ui.main_lb_res_okng->setStyleSheet("background-color: rgb(255, 0, 0);");
IWheelModel *pModel = m_pCtrl->getModel("NG");
if (pModel) {
pModel->increCount();
emit m_pTableCheck->sgValueChange(pModel->getModelID());
}
}
else {
IWheelModel *pModel = m_pCtrl->getModel(pRlt->m_strModel);
if (pModel) {
QString filepath = m_pCtrl->appRoot() + pModel->getPicPath();
QPixmap pix(filepath);
ui.main_lb_res_model_pic->setPixmap(pix.scaled(scare - 15, scare - 15));
pModel->increCount();
ui.main_lb_res_okng->setText("OK");
ui.main_lb_res_okng->setStyleSheet("background-color: rgb(0, 255, 0);");
ui.main_lb_res_model_pic->setStyleSheet(QString("QLabel{border: 5px solid rgb(0,250,0,250);background-color: rgb(200, 200, 200);}"));
emit m_pTableCheck->sgValueChange(pModel->getModelID());
}
}
m_pState->totalDetectNum++;
//show
ui.main_lb_res_ng_num->setText(QString::number(m_pState->totalUnDetectNum));
ui.main_lb_res_ok_num->setText(QString::number(m_pState->totalDetectNum));
ui.main_lb_res_model_time->setText(QString::number(pRlt->m_dRunTime, 'f', 2));
ui.main_lb_res_model_thickness->setText(QString::number((int)pRlt->m_dThickness));
ui.main_lb_res_model_diameter->setText(QString::number((int)pRlt->m_dDiameter));
ui.main_lb_res_model_id->setText(pRlt->m_strModel);
ui.main_lb_res_model_score->setText(QString::number(pRlt->m_dScore * 100, 'f', 1) + "%");
if (m_pixMapList)
{
if (pRlt->m_pixResult.isNull())
m_pixMapList->addItemByLimit(pRlt->m_pixSrc, pRlt->m_strModel);
else
m_pixMapList->addItemByLimit(pRlt->m_pixResult, pRlt->m_strModel);
}
}
void lpMainWin::SendResultBee(emTypeBee m_Type, int num)
{
//qDebug() << "sendResultBeeLight";
//SComframe frame;
//if (m_Type == LIGHT_REDBEE) {
// frame.data1 = 1;
// frame.data2 = num;
// SendDataToCom(0x46, frame);
//}
//else if (m_Type == LIGHT_GREENBEE) {
// frame.data1 = 2;
// frame.data2 = 0;
// frame.data3 = num;
// SendDataToCom(0x46, frame);
//}
//else if (m_Type == LIGHT_YELLOWBEE) {
// frame.data1 = 4;
// frame.data2 = 0;
// frame.data3 = 0;
// frame.data4 = num;
// SendDataToCom(0x46, frame);
//}
//else if (m_Type == LIGHT_BEE) {
// frame.data1 = 8;
// frame.data2 = 0;
// frame.data3 = 0;
// frame.data4 = 0;
// frame.data5 = num;
// SendDataToCom(0x46, frame);
//}
if (m_Type == LIGHT_REDBEE) {
m_pNet->sendLight(0, 1, 500, 500);//<2F><><EFBFBD><EFBFBD>
}
else if (m_Type == LIGHT_GREENBEE) {
m_pNet->sendLight(2, 1, 500, 500);
}
else if (m_Type == LIGHT_YELLOWBEE) {
m_pNet->sendLight(1, 1, 500, 500);
}
else if (m_Type == LIGHT_BEE) {
m_pNet->sendLight(3, 1, 500, 500);
}
}
void lpMainWin::SendResultStr2PLC(Result2Ui* m_Res)
{
qDebug() << "sendResultToPLC resultName=" << m_Res->m_strModel << endl;
if (m_pNet)
m_pNet->sendDetectResult(m_Res->m_strModel, m_Res->m_dDiameter, m_Res->m_dThickness);
}
void lpMainWin::SendResultChannel2PLC(Result2Ui* m_Res)
{
qDebug() << "SendResultChannel2PLC";
CChannelInfo *pChannelInfo = m_pCtrl->getChannelInfo();
ChannelInfo *npInfo = pChannelInfo->getChannelInfo(m_Res->m_strModel);
//npInfo->m_value = 5;
if (npInfo&&m_pState->m_bObjAll2A == false) {
if (m_pNet)
m_pNet->sendResultChannel(npInfo->m_value, m_Res->m_dDiameter, m_Res->m_dThickness, m_Res->m_strModel);
emit(sgShowChannelRes(npInfo->m_ChannelName));
}
else
{
int defaultChannel = pChannelInfo->getDefaultChannel();
ChannelInfo *defaultInfo = pChannelInfo->getChannelInfo(defaultChannel);
int nResultChannel = 0;
if (defaultInfo)
{
nResultChannel = defaultInfo->m_value;
emit(sgShowChannelRes(defaultInfo->m_ChannelName + tr("<><C4AC>)")));
}
else
{
nResultChannel = 1000;
emit(sgShowChannelRes(tr("Ĭ<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD> ֵ1000")));
}
if (m_pNet)
m_pNet->sendResultChannel(nResultChannel, m_Res->m_dDiameter, m_Res->m_dThickness, m_Res->m_strModel);
}
}
void lpMainWin::SendResultChannelCOM(Result2Ui* m_Res)
{
qDebug() << "SendResultStr2COM";
CChannelInfo *pChannelInfo = m_pCtrl->getChannelInfo();
ChannelInfo *npInfo = pChannelInfo->getChannelInfo(m_Res->m_strModel);
//SComframe frame;
//if (npInfo&&m_pState->m_bObjAll2A == false) {
// frame.data1 = npInfo->m_value;
// SendDataToCom(0x47, frame);
// emit(sgShowChannelRes(npInfo->m_ChannelName));
//}
//else
//{
// int defaultChannel = pChannelInfo->getDefaultChannel();
// ChannelInfo *defaultInfo = pChannelInfo->getChannelInfo(defaultChannel);
// if (defaultInfo)
// {
// frame.data1 = defaultInfo->m_value;
// emit(sgShowChannelRes(defaultInfo->m_ChannelName + QString(tr("(Ĭ<><C4AC>)"))));
// }
// else
// {
// frame.data1 = 1000;
// emit(sgShowChannelRes(tr("Ĭ<><C4AC>ͨ<EFBFBD><CDA8> ֵ1000")));
// }
// SendDataToCom(0x47, frame);
//}
}