diff --git a/3part/tadpole/include/tpBase/iCoreCtrl.h b/3part/tadpole/include/tpBase/iCoreCtrl.h index 5ed8a55..5095197 100644 --- a/3part/tadpole/include/tpBase/iCoreCtrl.h +++ b/3part/tadpole/include/tpBase/iCoreCtrl.h @@ -17,7 +17,7 @@ typedef std::function FuncCallBack_VarInt; typedef std::function FuncCallBack_VarMap; typedef std::function FuncCallBack_StrMap; typedef std::function FuncCallBack_StrImg; - +typedef std::function FuncCallBack_StrInt; //interface for gui class ICoreCtrl { @@ -48,10 +48,10 @@ public: virtual bool ISetWidth(const QString& strSerial, int& width) = 0; virtual bool IGetHeight(const QString& strSerial, int& height) = 0; virtual bool ISetHeight(const QString& strSerial, int& height) = 0; - virtual bool IGetGain(const QString& strSerial, int& height) = 0; - virtual bool ISetGain(const QString& strSerial, int& height) = 0; - virtual bool IGetExposureTime(const QString& strSerial, int& height)=0; - virtual bool ISetExposureTime(const QString& strSerial, int& height)=0; + virtual bool IGetGain(const QString& strSerial, int& gain) = 0; + virtual bool ISetGain(const QString& strSerial, int& gain) = 0; + virtual bool IGetExposureTime(const QString& strSerial, int& exposure)=0; + virtual bool ISetExposureTime(const QString& strSerial, int& exposure)=0; virtual bool IGetPixelFormat(const QString& strSerial) { return false; }; virtual bool ISetPixelFormat(const QString& strSerial) { return false; }; virtual bool IGetAcquisitionMode(const QString& strSerial) { return false; }; @@ -63,11 +63,10 @@ public: virtual void loadConfig() = 0; virtual void saveConfig() = 0; - virtual bool IRegisterGetVariant(FuncCallBack_VarInt callback) = 0; //向算法传递检测参数回调接口 virtual bool IRegisterImageCallBack(FuncCallBack_StrImg callback) = 0; //获取相机图像回调接口 - virtual bool IRegisterResultCallBack(FuncCallBack_StrMap callback) = 0; //获取算法结果回调接口 - + virtual bool IRegisterResultCallBack(FuncCallBack_StrMap callback) = 0; //注册算法结果回调函数 可获取算法检测结果 + virtual bool IRegisterCamEventCallBack(FuncCallBack_StrInt callback) = 0;//注册相机事件回调函数 可获取相机打开关闭等相关事件 public://private: //use private when the old main is discarded; virtual int IInitCore(class IDetectorEngine* pDE = NULL) = 0; virtual void IFreeCore() = 0; diff --git a/DownMachine/wanfeng-双工位.rar b/DownMachine/wanfeng-双工位.rar new file mode 100644 index 0000000..39fc9a4 Binary files /dev/null and b/DownMachine/wanfeng-双工位.rar differ diff --git a/DownMachine/wanfeng.rar b/DownMachine/wanfeng.rar new file mode 100644 index 0000000..53ff7b1 Binary files /dev/null and b/DownMachine/wanfeng.rar differ diff --git a/doc/seafile文件上传规则.docx b/doc/seafile文件上传规则.docx new file mode 100644 index 0000000..71110a9 Binary files /dev/null and b/doc/seafile文件上传规则.docx differ diff --git a/doc/小气门芯的轮毂检测.docx b/doc/小气门芯的轮毂检测.docx new file mode 100644 index 0000000..cfd7667 Binary files /dev/null and b/doc/小气门芯的轮毂检测.docx differ diff --git a/doc/气门芯定位软件logo修改使用说明.docx b/doc/气门芯定位软件logo修改使用说明.docx new file mode 100644 index 0000000..5fdda86 Binary files /dev/null and b/doc/气门芯定位软件logo修改使用说明.docx differ diff --git a/doc/气门芯定位软件操作说明 .docx b/doc/气门芯定位软件操作说明 .docx new file mode 100644 index 0000000..acb547d Binary files /dev/null and b/doc/气门芯定位软件操作说明 .docx differ diff --git a/doc/气门芯径型号标定流程.docx b/doc/气门芯径型号标定流程.docx new file mode 100644 index 0000000..f312e8d Binary files /dev/null and b/doc/气门芯径型号标定流程.docx differ diff --git a/doc/气门芯设备安装常见问题解答.docx b/doc/气门芯设备安装常见问题解答.docx new file mode 100644 index 0000000..bd4aa64 Binary files /dev/null and b/doc/气门芯设备安装常见问题解答.docx differ diff --git a/src/lpCamera/lpCamVirtual/CameraVirtualFolder.cpp b/src/lpCamera/lpCamVirtual/CameraVirtualFolder.cpp index 86ed538..4b27957 100644 --- a/src/lpCamera/lpCamVirtual/CameraVirtualFolder.cpp +++ b/src/lpCamera/lpCamVirtual/CameraVirtualFolder.cpp @@ -223,7 +223,6 @@ void CCameraVirtualFolder::reloadImgs() m_fileFilter, QDir::NoSymLinks | QDir::Files, QDirIterator::Subdirectories); - while (qdi.hasNext()) { m_files.append(qdi.next()); diff --git a/src/lpCoreCtrl/CoreCtrl.cbt b/src/lpCoreCtrl/CoreCtrl.cbt new file mode 100644 index 0000000..6388895 --- /dev/null +++ b/src/lpCoreCtrl/CoreCtrl.cbt @@ -0,0 +1 @@ +This is a dummy file needed to create CoreCtrl.moc \ No newline at end of file diff --git a/src/lpCoreCtrl/CoreCtrl.cpp b/src/lpCoreCtrl/CoreCtrl.cpp index f0b496d..965d130 100644 --- a/src/lpCoreCtrl/CoreCtrl.cpp +++ b/src/lpCoreCtrl/CoreCtrl.cpp @@ -317,32 +317,26 @@ bool CCoreCtrl::IRegisterResultCallBack(FuncCallBack_StrMap callback) return false; } -/*多线程调用*/ -bool CCoreCtrl::onTaskFunc() +bool CCoreCtrl::IRegisterCamEventCallBack(FuncCallBack_StrInt callback) { - QTime timespan; - timespan.start(); - lpCameraImage* pCamImage = m_camDevManager->IPopCameraImage(); - int span = timespan.elapsed(); - if (span > 100) + if (callback) { -// qWarning() << "Pop image from poll cost " << span << " MSecs" -// << " - " __FUNCTION__; + lpCallBackFunc::instance()->m_CamEventCallBackFunc = callback; + return true; } + return false; +} +/*多线程调用*/ +bool CCoreCtrl::onTaskFunc() +{ + lpCameraImage* pCamImage = m_camDevManager->IPopCameraImage(); if (NULL != pCamImage) { - - CImageObject m_objImage(this); - { - // Algorithm process image - timespan.restart(); - m_objImage.SetCameraImage(pCamImage); - m_gpImgProc->IImageProcess(&m_objImage, m_pDE); -// qDebug() << "Process Image(ID:" << pCamImage->FrameNumber() -// << ") cost " << timespan.elapsed() << " MSecs" -// << " - " __FUNCTION__; - } + CImageObject m_objImage(this); + // Algorithm process image + m_objImage.SetCameraImage(pCamImage); + m_gpImgProc->IImageProcess(&m_objImage, m_pDE); //release CameraImage m_objImage.SetCameraImage(NULL); m_camDevManager->IFreeCameraImage(pCamImage); @@ -353,26 +347,62 @@ bool CCoreCtrl::onTaskFunc() void CCoreCtrl::onRunTask() { - if (m_safeList.getSize() > 0) { + if (m_safeList.getSize() > 0 && m_camDevManager != nullptr) { CameraCtrl ctrl; m_safeList.pop_front(ctrl); if (ctrl.m_ctrlType == EM_OPENCAM)//开始相机 外触发 { //onStartCamera(ctrl.strCamName); - m_camDevManager->IOpenCamera(ctrl.strCamName); + bool bRet = m_camDevManager->IOpenCamera(ctrl.strCamName); + + QString serial = ctrl.strCamName; + emTpCameraStatus nType = TP_CAMERA_STATUS_OPENED; + QFunctionTransfer::Instance()->execInMain([this, serial, nType,bRet]() { + if (lpCallBackFunc::instance()->m_CamEventCallBackFunc) + { + lpCallBackFunc::instance()->m_CamEventCallBackFunc(serial, nType, bRet); + } + }); } else if (ctrl.m_ctrlType == EM_CLOSECAM)//停止相机 { //onStopCamera(ctrl.strCamName); - m_camDevManager->ICloseCamera(ctrl.strCamName); + bool bRet = m_camDevManager->ICloseCamera(ctrl.strCamName); + + QString serial = ctrl.strCamName; + emTpCameraStatus nType = TP_CAMERA_STATUS_CLOSED; + QFunctionTransfer::Instance()->execInMain([this, serial, nType, bRet]() { + if (lpCallBackFunc::instance()->m_CamEventCallBackFunc) + { + lpCallBackFunc::instance()->m_CamEventCallBackFunc(serial, nType, bRet); + } + }); } else if (ctrl.m_ctrlType == EM_STARTCAM)//开始相机 软触发 { //onStartSoftCamera(ctrl.strCamName); - m_camDevManager->IStartCamera(ctrl.strCamName); + bool bRet = m_camDevManager->IStartCamera(ctrl.strCamName); + + QString serial = ctrl.strCamName; + emTpCameraStatus nType = TP_CAMERA_STATUS_STARTED; + QFunctionTransfer::Instance()->execInMain([this, serial, nType, bRet]() { + if (lpCallBackFunc::instance()->m_CamEventCallBackFunc) + { + lpCallBackFunc::instance()->m_CamEventCallBackFunc(serial, nType, bRet); + } + }); } else if (ctrl.m_ctrlType == EM_STOPCAM) {//停止相机 - m_camDevManager->IStopCamera(ctrl.strCamName); + bool bRet = m_camDevManager->IStopCamera(ctrl.strCamName); + + QString serial = ctrl.strCamName; + emTpCameraStatus nType = TP_CAMERA_STATUS_STOPPED; + QFunctionTransfer::Instance()->execInMain([this, serial, nType, bRet]() { + if (lpCallBackFunc::instance()->m_CamEventCallBackFunc) + { + lpCallBackFunc::instance()->m_CamEventCallBackFunc(serial, nType, bRet); + } + }); } else if (ctrl.m_ctrlType == EM_SNAPCAM)//软触发一次相机 { diff --git a/src/lpCoreCtrl/CoreCtrl.h b/src/lpCoreCtrl/CoreCtrl.h index 368699c..40b5675 100644 --- a/src/lpCoreCtrl/CoreCtrl.h +++ b/src/lpCoreCtrl/CoreCtrl.h @@ -64,18 +64,19 @@ private: virtual bool ISetWidth(const QString& strSerial, int& width); virtual bool IGetHeight(const QString& strSerial, int& height); virtual bool ISetHeight(const QString& strSerial, int& height); - virtual bool IGetGain(const QString& strSerial, int& height); - virtual bool ISetGain(const QString& strSerial, int& height); - virtual bool IGetExposureTime(const QString& strSerial, int& height); - virtual bool ISetExposureTime(const QString& strSerial, int& height); + virtual bool IGetGain(const QString& strSerial, int& gain); + virtual bool ISetGain(const QString& strSerial, int& gain); + virtual bool IGetExposureTime(const QString& strSerial, int& exposure); + virtual bool ISetExposureTime(const QString& strSerial, int& exposure); //更新json配置文件 virtual void loadConfig(); virtual void saveConfig(); - virtual bool IRegisterGetVariant(FuncCallBack_VarInt func); + virtual bool IRegisterGetVariant(FuncCallBack_VarInt func); //算法参数回调 virtual bool IRegisterImageCallBack(FuncCallBack_StrImg callback); //获取相机图像回调接口 virtual bool IRegisterResultCallBack(FuncCallBack_StrMap callback); //获取算法结果回调接口 + virtual bool IRegisterCamEventCallBack(FuncCallBack_StrInt callback); bool onTaskFunc(); void onRunTask(); private: diff --git a/src/lpCoreCtrl/callbackFunc.h b/src/lpCoreCtrl/callbackFunc.h index 26e3db3..9ea11c1 100644 --- a/src/lpCoreCtrl/callbackFunc.h +++ b/src/lpCoreCtrl/callbackFunc.h @@ -15,6 +15,7 @@ public: FuncCallBack_VarInt m_GetVariantCallBackFunc;//㷨亯 FuncCallBack_StrMap m_ResultCallBackFunc;//ص FuncCallBack_StrImg m_ImageCallBackFunc;//ͼȡص + FuncCallBack_StrInt m_CamEventCallBackFunc;//¼ص ر ֹͣ¼ }; #endif diff --git a/src/lpCoreCtrl/tpCamera/CameraPool.cpp b/src/lpCoreCtrl/tpCamera/CameraPool.cpp index 0ed7843..7392252 100644 --- a/src/lpCoreCtrl/tpCamera/CameraPool.cpp +++ b/src/lpCoreCtrl/tpCamera/CameraPool.cpp @@ -123,6 +123,7 @@ bool CCameraPool::IDelCamera(const QString& strSerial) bool CCameraPool::IAddCamera(const QString& strName, const TP_CAMERA_OPTION& camOpt) { bool bret = false; + if(m_CamDevMap.contains(strName)) { bret = ICloseCamera(strName); if (!bret) return bret; @@ -616,14 +617,6 @@ int CCameraPool::IPushCameraData(ICameraObject* pCamObj) { return 0; } -// if (pCamObj->m_pCamOpt->bIgnoreImage) -// { -// if (pCamObj->m_nFrameNum > 0) -// { -// pCamObj->m_nFrameNum--; -// } -// return 0; -// } lpCameraImage *pImage = m_imagesMerging.value(pCamObj->m_pCamOpt->uniqueName, NULL); if (NULL == pImage) diff --git a/tpvs17/lpMain/CMainWin.cpp b/tpvs17/lpMain/CMainWin.cpp index 0dfe3d5..d7fe524 100644 --- a/tpvs17/lpMain/CMainWin.cpp +++ b/tpvs17/lpMain/CMainWin.cpp @@ -132,7 +132,7 @@ CMainWin::CMainWin(QWidget *parent) connect(ui.wf_lb_image_show_2, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(onPopMenu(const QPoint&))); connect(this, SIGNAL(sgShowSrcImg(QString, QImage)), &m_camSetWid, SLOT(onShowImage(QString, QImage))); - + connect(this, SIGNAL(sgShowSrcImg(QString, QImage)), &m_CamMgrUI, SLOT(onShowImage(QString, QImage))); } CMainWin::~CMainWin() @@ -584,12 +584,20 @@ Q_SLOT void CMainWin::onActionClicked() process.startDetached(strTaskName); } else if ("action" == strObj) {//ϵͳ - m_devMgrWid.setParent(this); - m_devMgrWid.setWindowIcon(QIcon(LEAPER_LOGO)); - m_devMgrWid.setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); - m_devMgrWid.setWindowModality(Qt::ApplicationModal); - m_devMgrWid.setAttribute(Qt::WA_ShowModal, true); - m_devMgrWid.show(); +// m_devMgrWid.setParent(this); +// m_devMgrWid.setWindowIcon(QIcon(LEAPER_LOGO)); +// m_devMgrWid.setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); +// m_devMgrWid.setWindowModality(Qt::ApplicationModal); +// m_devMgrWid.setAttribute(Qt::WA_ShowModal, true); +// m_devMgrWid.show(); + + m_CamMgrUI.setParent(this); + m_CamMgrUI.setWindowIcon(QIcon(LEAPER_LOGO)); + m_CamMgrUI.setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); + m_CamMgrUI.setWindowModality(Qt::ApplicationModal); + m_CamMgrUI.setAttribute(Qt::WA_ShowModal, true); + m_CamMgrUI.onInitCamInfo(m_pCoreCtrl); + m_CamMgrUI.show(); } else if ("main_Login_action" == strObj) {//û½ if (m_pUserCtrl) { diff --git a/tpvs17/lpMain/CMainWin.h b/tpvs17/lpMain/CMainWin.h index 961cc2e..57e7789 100644 --- a/tpvs17/lpMain/CMainWin.h +++ b/tpvs17/lpMain/CMainWin.h @@ -20,6 +20,7 @@ #include "QAboutUI.h" #include "QDeviceMgrUI.h" #include "QCamSetDlg.h" +#include "QCameraMgrUI.h" struct StationInfo { @@ -129,6 +130,8 @@ private: QString m_strUserName; QString m_strComName; + + QCameraMgrUI m_CamMgrUI; }; #endif diff --git a/tpvs17/lpMain/QCamSetDlg.ui b/tpvs17/lpMain/QCamSetDlg.ui index aef2a36..8ccdbcf 100644 --- a/tpvs17/lpMain/QCamSetDlg.ui +++ b/tpvs17/lpMain/QCamSetDlg.ui @@ -7,7 +7,7 @@ 0 0 841 - 486 + 393 diff --git a/tpvs17/lpMain/QCamSettingDlg.cpp b/tpvs17/lpMain/QCamSettingDlg.cpp new file mode 100644 index 0000000..004a408 --- /dev/null +++ b/tpvs17/lpMain/QCamSettingDlg.cpp @@ -0,0 +1,285 @@ +#include "QCamSettingDlg.h" +#pragma execution_character_set("utf-8") +QCamSettingDlg::QCamSettingDlg(QWidget *parent) + : QWidget(parent) +{ + ui.setupUi(this); + setWindowIcon(QIcon(":/image/leaper")); +// QGridLayout *pLayout = new QGridLayout(ui.widget); +// m_pImgViewer = new RoiImgViewer(ui.widget); +// m_pImgViewer->setObjectName("Imageview_Setting"); +// pLayout->addWidget(m_pImgViewer); +// ui.widget->setLayout(pLayout); + connect(ui.btnOpenCam, SIGNAL(clicked()), this, SLOT(onButtonClicked()));//打开相机 + connect(ui.btnStartCam, SIGNAL(clicked()), this, SLOT(onButtonClicked()));//运行相机 + connect(ui.btnImgSizeApply, SIGNAL(clicked()), this, SLOT(onButtonClicked()));//应用参数 + connect(ui.tp_config_add_camera_open_virfolder_btn, SIGNAL(clicked()), this, SLOT(onButtonClicked())); + connect(ui.btn_add_camera_accept, SIGNAL(clicked()), this, SLOT(onButtonClicked())); + connect(ui.btn_camera_cancel, SIGNAL(clicked()), this, SLOT(onButtonClicked())); + +} + +QCamSettingDlg::~QCamSettingDlg() +{ + if (m_pImgViewer) + { + delete m_pImgViewer; + m_pImgViewer = nullptr; + } +} + +void QCamSettingDlg::setCoreCtrlPtr(ICoreCtrl* ptr) +{ + m_pCoreCtl = ptr; + if (m_pCoreCtl) + { + FuncCallBack_StrInt camEvFunc = std::bind(&QCamSettingDlg::onCamEvent, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3); + m_pCoreCtl->IRegisterCamEventCallBack(camEvFunc); + } + +} + +void QCamSettingDlg::onShowImage(QString serial , QImage img) +{ + if (m_curCamKey != serial) + return; +// if (m_pImgViewer) + { + ui.imgViewer->setImg(img); + } +} + +void QCamSettingDlg::onModCam(QString serial) +{ + ui.cmb_camera_type->setDisabled(true); + ui.edit_add_camera_sn->setDisabled(true); + + if (m_pCoreCtl) + { + QStringList lst = m_pCoreCtl->ICameraKeys(); + if (lst.size() <= 0) + return; + m_curCamKey = serial; + ui.edit_add_camera_sn->setText(m_curCamKey); + + QMap map = m_pCoreCtl->IGetCamShowNames(); + QString strShow = map[m_curCamKey]; + ui.edit_camera_showname->setText(strShow); + + TP_CAMERA_OPTION camOpt; + m_pCoreCtl->IGetCameraOption(m_curCamKey, camOpt); + + ui.spbImgStartX->setValue(0); + ui.spbImgStartY->setValue(0); + ui.spbImgHeight->setValue(camOpt.height); + ui.spbImgWidth->setValue(camOpt.width); + ui.spb_camera_exposure->setValue(camOpt.exposure); + ui.spb_camera_gain->setValue(camOpt.gain); + + emTpColorFormat color = camOpt.format; + if (color == TP_COLOR_Y800) + ui.cmb_camera_format->setCurrentIndex(0); + else + ui.cmb_camera_format->setCurrentIndex(1); + + if (camOpt.status == TP_CAMERA_STATUS_UNINIT)// 未初始化(刚从配置文件加载) + { + ui.btnOpenCam->setText("打开"); + ui.btnStartCam->setText("运行"); + } + else if (camOpt.status == TP_CAMERA_STATUS_INITED)// 已初始化(即加载DLL成功) + { + ui.btnOpenCam->setText("打开"); + ui.btnStartCam->setText("运行"); + } + else if (camOpt.status == TP_CAMERA_STATUS_OPENED)// 已打开 + { + ui.btnOpenCam->setText("关闭"); + ui.btnStartCam->setText("运行"); + } + else if (camOpt.status == TP_CAMERA_STATUS_STARTED)// 运行中 + { + ui.btnOpenCam->setText("关闭"); + ui.btnStartCam->setText("停止"); + } + else if (camOpt.status == TP_CAMERA_STATUS_STOPPED)// 暂停 + { + ui.btnOpenCam->setText("关闭"); + ui.btnStartCam->setText("运行"); + } + else if (camOpt.status == TP_CAMERA_STATUS_CLOSED)// 已关闭 + { + ui.btnOpenCam->setText("打开"); + ui.btnStartCam->setText("运行"); + } + else { + + } + } +} + +void QCamSettingDlg::onCamEvent(const QString& serial, emTpCameraStatus status, bool ret) +{ + if (m_curCamKey != serial) + return; + + if (status == TP_CAMERA_STATUS_CLOSED && ret == true) + { + ui.btnOpenCam->setText("打开"); + ui.btnStartCam->setText("运行"); + ui.btnStartCam->setDisabled(true); + } + else if (status == TP_CAMERA_STATUS_OPENED && ret == true) + { + ui.btnOpenCam->setText("关闭"); + ui.btnStartCam->setText("运行"); + ui.btnStartCam->setDisabled(false); + } + else if (status == TP_CAMERA_STATUS_STARTED && ret == true) + { + ui.btnOpenCam->setText("关闭"); + ui.btnStartCam->setText("停止"); + ui.btnStartCam->setDisabled(false); + } + else if (status == TP_CAMERA_STATUS_STOPPED && ret == true) + { + ui.btnOpenCam->setText("关闭"); + ui.btnStartCam->setText("运行"); + ui.btnStartCam->setDisabled(false); + } +} + +void QCamSettingDlg::onInitWidget(QString serial) +{ +/* if (m_pCoreCtl) + { + QStringList lst = m_pCoreCtl->ICameraKeys(); + if (lst.size() <= 0) + return; + m_curCamKey = serial; + ui.m_SerialNo->setText(m_curCamKey); + + QMap map = m_pCoreCtl->IGetCamShowNames(); + QString strShow = map[m_curCamKey]; + ui.m_ShowName->setText(strShow); + + TP_CAMERA_OPTION camOpt; + m_pCoreCtl->IGetCameraOption(m_curCamKey, camOpt); + + int h = camOpt.height; + int w = camOpt.width; + int e = camOpt.exposure; + int g = camOpt.gain; + + ui.m_ImgWidth->setText(QString("%1").arg(w)); + ui.m_ImgHeight->setText(QString("%1").arg(h)); + ui.m_Expouse->setText(QString("%1").arg(e)); + ui.m_Gain->setText(QString("%1").arg(g)); + ui.lineEdit_3->setText(camOpt.folder); + { + int devType = camOpt.deviceType; + int index = 0; + switch (devType) + { + case 100: + index = 0; + onShowVirtualDir(true); + break; + case 140: + index = 1; + onShowVirtualDir(false); + break; + case 160: + index = 2; + onShowVirtualDir(false); + break; + default: +// break; + } + ui.comboBox->setCurrentIndex(index); + } + { + emTpColorFormat color = camOpt.format; + if (color == TP_COLOR_Y800) + ui.m_Pixformat->setCurrentIndex(0); + else + ui.m_Pixformat->setCurrentIndex(1); + } + if (camOpt.status == TP_CAMERA_STATUS_STARTED) + { + EnableUI(false); + ui.m_pbOpen->setText(tr("关闭")); + ui.m_pbTrigger->setDisabled(false); + } + else { + ui.m_pbOpen->setText(tr("打开")); + EnableUI(true); + ui.m_pbTrigger->setDisabled(true); + } + }*/ +} + +Q_SLOT void QCamSettingDlg::onButtonClicked() +{ + QString strObj = sender()->objectName(); + if ("btnOpenCam" == strObj)//打开相机 + { + QString str = ui.btnOpenCam->text(); + if ("打开" == str) + { + m_pCoreCtl->IOpenCamera(m_curCamKey); + } + else { + m_pCoreCtl->ICloseCamera(m_curCamKey); + } + } + else if ("btnStartCam" == strObj)//运行相机 + { + QString str = ui.btnStartCam->text(); + if ("运行" == str) + { + m_pCoreCtl->IStartCamera(m_curCamKey); + } + else { + m_pCoreCtl->IStopCamera(m_curCamKey); + } + } + else if ("btnImgSizeApply" == strObj)//应用参数 + { + + } + else if ("tp_config_add_camera_open_virfolder_btn" == strObj) + { + + } + else if ("btn_add_camera_accept" == strObj) + { + if (m_pCoreCtl) + m_pCoreCtl->ISnapImage(QStringList() << m_curCamKey); + } + else if ("btn_camera_cancel" == strObj) + { + + } +} + +void QCamSettingDlg::onShowVirtualDir(bool bShow) +{ +// ui.label_4->setVisible(bShow); +// ui.lineEdit_3->setVisible(bShow); +// ui.m_pbSetting->setVisible(bShow); +} + +void QCamSettingDlg::EnableUI(bool b) +{ +// ui.m_SerialNo->setDisabled(!b); +// ui.m_ShowName->setDisabled(!b); +// ui.comboBox->setDisabled(!b); +// ui.m_Pixformat->setDisabled(!b); +// ui.toolButton->setDisabled(!b); +// ui.comboBox_3->setDisabled(!b); +// ui.m_pbSetRect->setDisabled(!b); +// ui.m_ImgWidth->setDisabled(!b); +// ui.m_ImgHeight->setDisabled(!b); +} + diff --git a/tpvs17/lpMain/QCamSettingDlg.h b/tpvs17/lpMain/QCamSettingDlg.h new file mode 100644 index 0000000..c5790d7 --- /dev/null +++ b/tpvs17/lpMain/QCamSettingDlg.h @@ -0,0 +1,35 @@ +#ifndef _H_QCAMSETTINGDLG_H_ +#define _H_QCAMSETTINGDLG_H_ + +#include +#include "ui_QCamSettingDlg.h" +#include "iCoreCtrl.h" +#include "RoiImgViewer.h" +#include + +class QCamSettingDlg : public QWidget +{ + Q_OBJECT + +public: + QCamSettingDlg(QWidget *parent = Q_NULLPTR); + ~QCamSettingDlg(); + void setCoreCtrlPtr(ICoreCtrl* ptr); + void onShowImage(QString serial, QImage img); + void onModCam(QString serial);//޸ Ԥ + void onCamEvent(const QString& serial, emTpCameraStatus status, bool ret); + void onInitWidget(QString serial);// + + Q_SLOT void onButtonClicked(); + + void onShowVirtualDir(bool bShow); + void EnableUI(bool b); +private: + Ui::QCamSettingDlg ui; + ICoreCtrl* m_pCoreCtl{ nullptr }; + + RoiImgViewer* m_pImgViewer{ nullptr }; + QString m_curCamKey; +}; + +#endif diff --git a/tpvs17/lpMain/QCamSettingDlg.ui b/tpvs17/lpMain/QCamSettingDlg.ui new file mode 100644 index 0000000..a03d8b2 --- /dev/null +++ b/tpvs17/lpMain/QCamSettingDlg.ui @@ -0,0 +1,803 @@ + + + QCamSettingDlg + + + + 0 + 0 + 775 + 553 + + + + 相机配置 + + + + + + + + + + + + + + 0 + 0 + + + + + 9 + 50 + false + false + + + + 相机预览 + + + + + + + 0 + 0 + + + + + 500 + 0 + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 75 + 0 + + + + 打开 + + + + + + + + 0 + 0 + + + + + 75 + 0 + + + + + 9 + 50 + false + false + + + + 运行 + + + + + + + + + + 0 + 0 + + + + + 0 + + + 0 + + + + + 当前图片尺寸: + + + + + + + + 0 + 0 + + + + + 0 + 20 + + + + + + + + + + + + + + + 0 + 0 + + + + + + + + 0 + 0 + + + + 10 + + + 9999 + + + + + + + + 0 + 0 + + + + 9999 + + + + + + + + 0 + 0 + + + + 10 + + + 9999 + + + + + + + 高度: + + + + + + + 宽度: + + + + + + + 应用 + + + + + + + 起始X: + + + + + + + 起始Y: + + + + + + + + 0 + 0 + + + + 9999 + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + + + + + + + + + + + + + 相机类型(*): + + + + + + + 序列号(*): + + + + + + + + 0 + 0 + + + + + Virtual Camera(100) + + + + + BitFlow(110) + + + + + Gige(120) + + + + + USB Camera(130) + + + + + HIK(140) + + + + + Vimba(150) + + + + + Baumer(160) + + + + + AdLink(170) + + + + + DaHua(180) + + + + + Basler(190) + + + + + PtGray(200) + + + + + Euresys(220) + + + + + + + + + 0 + 0 + + + + + + + + + + + 0 + 0 + + + + 0 + + + + + 0 + 0 + 225 + 368 + + + + 相机通用参数 + + + + + + 触发源: + + + + + + + 开启 + + + true + + + + + + + 缩放: + + + + + + + 增益: + + + + + + + false + + + + Line0 + + + + + Line1 + + + + + + + + 格式: + + + + + + + 显示名称(*): + + + + + + + + 0 + 0 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + 曝光: + + + + + + + + GRAY8 + + + + + RGB32 + + + + + + + + + 0 + 0 + + + + 1 + + + 999999 + + + 100 + + + 1000 + + + + + + + + 0 + 0 + + + + 1 + + + 999999 + + + 100 + + + 1000 + + + + + + + + + 0 + 0 + 225 + 368 + + + + 虚拟相机配置 + + + + + + 虚拟相机目录: + + + + + + + + + + + + + 30 + 16777215 + + + + ... + + + + + + + + + 依赖的相机: + + + + + + + + + + 是否循环: + + + + + + + 循环 + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + 0 + 0 + 225 + 368 + + + + 其他 + + + + + + 保存参数 + + + + + + 启用保存 + + + + + + + 保存图片后缀: + + + + + + + 是否保存: + + + + + + + + .BMP + + + + + .PNG + + + + + .JPG + + + + + .JPEG + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 75 + 0 + + + + 确定 + + + + + + + + 0 + 0 + + + + + 75 + 0 + + + + 取消 + + + + + + + + + + + lpImgViewer + QGraphicsView +
lpimgviewer.h
+
+
+ + +
diff --git a/tpvs17/lpMain/QCameraConfigUI.cpp b/tpvs17/lpMain/QCameraConfigUI.cpp new file mode 100644 index 0000000..ff2dbdc --- /dev/null +++ b/tpvs17/lpMain/QCameraConfigUI.cpp @@ -0,0 +1,57 @@ +#include "QCameraConfigUI.h" +#include +#include "baseStruct.h" + +#pragma execution_character_set("utf-8") +QCameraConfigUI::QCameraConfigUI(QWidget *parent) + : QDialog(parent) +{ + ui.setupUi(this); + connect(ui.m_pbApply, SIGNAL(clicked()), this, SLOT(onButtonClicked()));// + connect(ui.m_pbClose, SIGNAL(clicked()), this, SLOT(onButtonClicked()));//ر + connect(ui.m_pbSelectDir, SIGNAL(clicked()), this, SLOT(onButtonClicked()));//ļ· + + ui.comboBox->clear(); + for (QMap::const_iterator it = gCameraNamesMap.begin(); it != gCameraNamesMap.end(); ++it) + { + QString strVal = *it; + int key = it.key(); + ui.comboBox->addItem(strVal, key); + } +} + +QCameraConfigUI::~QCameraConfigUI() +{ +} + +Q_SLOT void QCameraConfigUI::onButtonClicked() +{ + QString strObj = sender()->objectName(); + if ("m_pbApply" == strObj) + { + QDialog::accept(); + } + else if ("m_pbClose" == strObj) + { + QDialog::reject(); + } + else if ("m_pbSelectDir" == strObj) + { + QString strPath = QFileDialog::getExistingDirectory(this); + ui.lineEdit_3->setText(strPath); + } +} + +tagCamInfo QCameraConfigUI::getNewCamInfo() +{ + int ntype = ui.comboBox->currentData().toInt(); + QString serial = ui.lineEdit->text();//serial + QString showName = ui.lineEdit_2->text();//show name + QString filePath = ui.lineEdit_3->text();//path + tagCamInfo camInfo; + camInfo.nType = ntype; + camInfo.serialNo = serial; + camInfo.showName = showName; + camInfo.loadPath = filePath; + return camInfo; +} diff --git a/tpvs17/lpMain/QCameraConfigUI.h b/tpvs17/lpMain/QCameraConfigUI.h new file mode 100644 index 0000000..0cd2b15 --- /dev/null +++ b/tpvs17/lpMain/QCameraConfigUI.h @@ -0,0 +1,35 @@ +/*! + *FileName: QCameraConfigUI.h + *Author: Pan Yingdong + *Email: bob.pan@hzleaper.com + *Created:2021/4/8 10:56 + *Note:ҳ +*/ +#ifndef _H_QCAMERACONFIGUI_H_ +#define _H_QCAMERACONFIGUI_H_ + +#include +#include +#include "ui_QCameraConfigUI.h" +typedef struct tagCamInfo +{ + int nType{ 0 }; + QString showName; + QString serialNo; + QString loadPath; +}CamInfo; +class QCameraConfigUI : public QDialog +{ + Q_OBJECT + +public: + QCameraConfigUI(QWidget *parent = Q_NULLPTR); + ~QCameraConfigUI(); + + Q_SLOT void onButtonClicked(); + tagCamInfo getNewCamInfo(); +private: + Ui::QCameraConfigUI ui; +}; + +#endif diff --git a/tpvs17/lpMain/QCameraConfigUI.ui b/tpvs17/lpMain/QCameraConfigUI.ui new file mode 100644 index 0000000..f4f3f1c --- /dev/null +++ b/tpvs17/lpMain/QCameraConfigUI.ui @@ -0,0 +1,150 @@ + + + QCameraConfigUI + + + + 0 + 0 + 289 + 182 + + + + QCameraConfigUI + + + + + + + + + 12 + + + + 相机类型(*) + + + + + + + + 12 + + + + + + + + + 12 + + + + 序列号(*) + + + + + + + + 12 + + + + + + + + + 12 + + + + 显示名称(*) + + + + + + + + 12 + + + + + + + + + + + + + 12 + + + + + + + + + 12 + + + + 配置 + + + + + + + + 12 + + + + 虚拟相机路径: + + + + + + + + + + 12 + + + + 保存 + + + + + + + + 12 + + + + 取消 + + + + + + + + + diff --git a/tpvs17/lpMain/QCameraMgrUI.cpp b/tpvs17/lpMain/QCameraMgrUI.cpp new file mode 100644 index 0000000..9cc0c39 --- /dev/null +++ b/tpvs17/lpMain/QCameraMgrUI.cpp @@ -0,0 +1,226 @@ +#include "QCameraMgrUI.h" +#include +#pragma execution_character_set("utf-8") +QCameraMgrUI::QCameraMgrUI(QWidget *parent) + : QWidget(parent) +{ + ui.setupUi(this); + connect(ui.m_pbFound, SIGNAL(clicked()), this, SLOT(onButtonClicked())); + connect(ui.m_pbAddCam, SIGNAL(clicked()), this, SLOT(onButtonClicked())); + connect(ui.m_pbModCam, SIGNAL(clicked()), this, SLOT(onButtonClicked())); + connect(ui.m_pbDelCam, SIGNAL(clicked()), this, SLOT(onButtonClicked())); + connect(ui.m_pbClose, SIGNAL(clicked()), this, SLOT(onButtonClicked())); + + QStringList strHeaders; + strHeaders << "ID" << "ʾ" << "к" << "" << "״̬"; + m_tableModel.setHorizontalHeaderLabels(strHeaders); + ui.tableView->setModel(&m_tableModel); + //ui.tableView->hideColumn(4); + ui.tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); + ui.tableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed); + ui.tableView->setColumnWidth(0, 20); + ui.tableView->verticalHeader()->hide(); + ui.tableView->setEditTriggers(QAbstractItemView::NoEditTriggers); + ui.tableView->setSelectionBehavior(QAbstractItemView::SelectRows); + + connect(ui.tableView, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(onDoubleClicked(const QModelIndex &))); + + m_pCamSetUI = new QCamSettingDlg();//Ԥ + m_pCamConfigUI = new QCameraConfigUI();// + +} + +QCameraMgrUI::~QCameraMgrUI() +{ + if (m_pCamSetUI) + { + delete m_pCamSetUI; + m_pCamSetUI = nullptr; + } + if (m_pCamConfigUI) + { + delete m_pCamConfigUI; + m_pCamConfigUI = nullptr; + } +} + +void QCameraMgrUI::onInitCamInfo(ICoreCtrl* pCtrl) +{ + m_pCorctl = pCtrl; + onUpdateTableView(); + + +} + +Q_SLOT void QCameraMgrUI::onButtonClicked() +{ + QString strObj = sender()->objectName(); + if (strObj == "m_pbFound") + { + + } + else if (strObj == "m_pbAddCam") + { + m_pCamConfigUI->setParent(this); + //m_pCamConfigUI->setWindowIcon(QIcon(LEAPER_LOGO)); + m_pCamConfigUI->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); + m_pCamConfigUI->setWindowModality(Qt::ApplicationModal); + m_pCamConfigUI->setAttribute(Qt::WA_ShowModal, true); + if (m_pCamConfigUI->exec() == QDialog::Accepted) + { + tagCamInfo info = m_pCamConfigUI->getNewCamInfo(); + + TP_CAMERA_OPTION camOpt; + camOpt.id = 3; + camOpt.folder = info.loadPath; + camOpt.showName = info.showName; + camOpt.uniqueName = info.serialNo; + camOpt.deviceType = info.nType; + m_pCorctl->IAddCamera(info.serialNo, camOpt); + } + + } + else if (strObj == "m_pbModCam") + { + int row = ui.tableView->currentIndex().row(); + if (row < 0) + { + QMessageBox::information(this, tr("ʾ"), "ѡҪ޸ĵ"); + return; + } + QModelIndex index = m_tableModel.index(row, 2);//ѡеһе + QVariant data = m_tableModel.data(index); + QString strSerial = data.toString(); + + m_pCamSetUI->setParent(this); + //m_pCamSetUI->setWindowIcon(QIcon(LEAPER_LOGO)); + m_pCamSetUI->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); + m_pCamSetUI->setWindowModality(Qt::ApplicationModal); + m_pCamSetUI->setAttribute(Qt::WA_ShowModal, true); + + m_pCamSetUI->setCoreCtrlPtr(m_pCorctl); + m_pCamSetUI->onInitWidget(strSerial); + + m_pCamSetUI->show(); + } + else if (strObj == "m_pbDelCam") + { + int row = ui.tableView->currentIndex().row(); + if (row < 0) + { + QMessageBox::information(this, tr("ʾ"), "ѡҪƳ"); + return; + } + QModelIndex index = m_tableModel.index(row, 2);//ѡеһе + QVariant data = m_tableModel.data(index); + QString key = data.toString(); + if (key.isEmpty()) + { + QMessageBox::information(this, tr("ʾ"), "ѡҪƳ"); + return; + } + QMessageBox info(this); + //info.setWindowIcon(QIcon(LEAPER_LOGO)); + info.setWindowTitle(QObject::tr("")); + info.setText(QObject::tr("ȷҪƳ %1").arg(key)); + info.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel); + info.setButtonText(QMessageBox::Ok, QObject::tr("ȷ")); + info.setButtonText(QMessageBox::Cancel, QObject::tr("ȡ")); + if (info.exec() == QMessageBox::Ok) + { + m_pCorctl->IDelCamera(key); + onUpdateTableView(); + } + } + else if (strObj == "m_pbClose") + { + close(); + } +} + +void QCameraMgrUI::onUpdateTableView() +{ + //Ƴ + while (m_tableModel.rowCount()) + { + m_tableModel.removeRow(0); + } + QStringList lst = m_pCorctl->ICameraKeys(); + foreach(QString var, lst) + { + TP_CAMERA_OPTION camOpt; + m_pCorctl->IGetCameraOption(var, camOpt); + int nID = camOpt.id; + QString strShowName = camOpt.showName; + QString strSerial = camOpt.uniqueName; + QString strType = gCameraNamesMap.value((emTpDeviceType)camOpt.deviceType); + QString strState = gCameraStatusMap.value(camOpt.status); + QList listItem; + listItem.append(new QStandardItem(QString("%1").arg(nID))); + listItem.append(new QStandardItem(QString("%1").arg(strShowName))); + listItem.append(new QStandardItem(QString("%1").arg(strSerial))); + listItem.append(new QStandardItem(QString("%1").arg(strType))); + listItem.append(new QStandardItem(QString("%1").arg(strState))); + m_tableModel.appendRow(listItem); + } + +// QMap map = QStationMgr::instance()->getConnInfos(); +// for (QMap::iterator it = map.begin(); it != map.end(); ++it) +// { +// QString strKey = it.key(); +// QList listItem; +// listItem.append(new QStandardItem(it.key())); +// listItem.append(new QStandardItem((*it).hostName)); +// listItem.append(new QStandardItem((*it).hostSerial)); +// listItem.append(new QStandardItem((*it).hostIP)); +// listItem.append(new QStandardItem((*it).hostMac)); +// QString strVersion = lpGlobalData::instance()->m_CamVersionMap[strKey]; +// listItem.append(new QStandardItem(strVersion)); +// // QStandardItem *pStateItem = new QStandardItem((*it).bConnect == false ? "δ" : ""); +// // listItem.append(pStateItem); +// // if ((*it).bConnect == true) { +// // pStateItem->setBackground(QBrush(Qt::red, Qt::NoBrush)); +// // } +// // else { +// // pStateItem->setBackground(QBrush(Qt::red, Qt::SolidPattern)); +// // } +// m_tableModel.appendRow(listItem); +// } +} + +void QCameraMgrUI::changeEvent(QEvent *evt) +{ + if (evt->type() == QEvent::LanguageChange) + { + ui.retranslateUi(this); + } +} + +Q_SLOT void QCameraMgrUI::onDoubleClicked(const QModelIndex &index) +{ + QString strSerial = m_tableModel.index(index.row(), 2).data().toString(); + TP_CAMERA_OPTION camOpt; + m_pCorctl->IGetCameraOption(strSerial, camOpt); + + if (m_pCamSetUI) + { + m_pCamSetUI->setParent(this); + //m_pCamSetUI->setWindowIcon(QIcon(LEAPER_LOGO)); + m_pCamSetUI->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); + m_pCamSetUI->setWindowModality(Qt::ApplicationModal); + m_pCamSetUI->setAttribute(Qt::WA_ShowModal, true); + + m_pCamSetUI->setCoreCtrlPtr(m_pCorctl); + m_pCamSetUI->onModCam(strSerial); + + m_pCamSetUI->show(); + } +} + +Q_SLOT void QCameraMgrUI::onShowImage(QString serial, QImage img) +{ + if (m_pCamSetUI) + { + m_pCamSetUI->onShowImage(serial, img); + } +} diff --git a/tpvs17/lpMain/QCameraMgrUI.h b/tpvs17/lpMain/QCameraMgrUI.h new file mode 100644 index 0000000..c5e0638 --- /dev/null +++ b/tpvs17/lpMain/QCameraMgrUI.h @@ -0,0 +1,46 @@ +/*! + *FileName: QCameraMgrUI.h + *Author: Pan Yingdong + *Email: bob.pan@hzleaper.com + *Created:2021/4/8 10:56 + *Note:ҳ +*/ +#ifndef _H_QCAMERAMGRUI_H_ +#define _H_QCAMERAMGRUI_H_ + +#include +#include "ui_QCameraMgrUI.h" +#include +#include +#include "iCoreCtrl.h" +#include "QCameraConfigUI.h" +#include "QCamSettingDlg.h" + +/*ҳ չʾб*/ +class QCameraMgrUI : public QWidget +{ + Q_OBJECT + +public: + QCameraMgrUI(QWidget *parent = Q_NULLPTR); + ~QCameraMgrUI(); + + void onInitCamInfo(ICoreCtrl* pCtrl); + + Q_SLOT void onButtonClicked(); + void onUpdateTableView(); + Q_SLOT void onDoubleClicked(const QModelIndex &index); + Q_SLOT void onShowImage(QString serial, QImage img); +protected: + virtual void changeEvent(QEvent *evt); + +private: + Ui::QCameraMgrUI ui; + QStandardItemModel m_tableModel; + + ICoreCtrl *m_pCorctl{ nullptr }; + QCamSettingDlg *m_pCamSetUI{ nullptr }; + QCameraConfigUI *m_pCamConfigUI{ nullptr }; +}; + +#endif diff --git a/tpvs17/lpMain/QCameraMgrUI.ui b/tpvs17/lpMain/QCameraMgrUI.ui new file mode 100644 index 0000000..1db4b89 --- /dev/null +++ b/tpvs17/lpMain/QCameraMgrUI.ui @@ -0,0 +1,141 @@ + + + QCameraMgrUI + + + + 0 + 0 + 722 + 365 + + + + 相机管理 + + + + + + + + + 12 + + + + 相机列表 + + + + + + + + 12 + + + + + + + + + + + + + 12 + + + + 修改/预览 + + + + + + + + 12 + + + + 删除 + + + + + + + + 12 + + + + 手动添加 + + + + + + + + 12 + + + + 查找可用 + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 12 + + + + 关闭 + + + + + + + + + + + diff --git a/tpvs17/lpMain/lpMain.vcxproj b/tpvs17/lpMain/lpMain.vcxproj index e8d139f..0681eed 100644 --- a/tpvs17/lpMain/lpMain.vcxproj +++ b/tpvs17/lpMain/lpMain.vcxproj @@ -142,7 +142,10 @@ + + + @@ -159,16 +162,31 @@ + + + + + .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql;.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\3part\tadpole\include\tpBase;.\..\..\src\lpMain\view + .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql;.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\3part\tadpole\include\tpBase;.\..\..\src\lpMain\view + + + .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql;.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\3part\tadpole\include\tpBase;.\..\..\src\lpMain\view + .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql;.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\3part\tadpole\include\tpBase;.\..\..\src\lpMain\view + - .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql;.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\3part\customgui\include;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\3part\tadpole\include\tpBase - .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql;.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\3part\customgui\include;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\src\lpBase + .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql;.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\3part\tadpole\include\tpBase;.\..\..\src\lpMain\view + .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql;.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\3part\tadpole\include\tpBase;.\..\..\src\lpMain\view + + + .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql;.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\3part\tadpole\include\tpBase;.\..\..\src\lpMain\view + .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql;.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\3part\tadpole\include\tpBase;.\..\..\src\lpMain\view .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql;.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\3part\customgui\include;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\src\lpBase diff --git a/tpvs17/lpMain/lpMain.vcxproj.filters b/tpvs17/lpMain/lpMain.vcxproj.filters index b2886f3..571b60f 100644 --- a/tpvs17/lpMain/lpMain.vcxproj.filters +++ b/tpvs17/lpMain/lpMain.vcxproj.filters @@ -136,9 +136,6 @@ Source Files - - Source Files - view @@ -148,6 +145,18 @@ view + + Source Files + + + Source Files + + + Source Files + + + Source Files + @@ -231,9 +240,6 @@ Header Files - - Header Files - view @@ -243,6 +249,18 @@ view + + Header Files + + + Header Files + + + Header Files + + + Header Files + @@ -266,9 +284,18 @@ Form Files + + Form Files + Form Files + + Form Files + + + Form Files + diff --git a/tpvs17/lpbengine/Resource.aps b/tpvs17/lpbengine/Resource.aps new file mode 100644 index 0000000..db4acdc Binary files /dev/null and b/tpvs17/lpbengine/Resource.aps differ