update corctl

add doc
master
bob.pan 5 years ago
parent 56f2c57cc4
commit 48470053bd

@ -17,7 +17,7 @@ typedef std::function<QVariant(int)> FuncCallBack_VarInt;
typedef std::function<void(const QVariantMap&)> FuncCallBack_VarMap;
typedef std::function<void(const QString&, const QVariantMap&)> FuncCallBack_StrMap;
typedef std::function<void(const QString&, QImage)> FuncCallBack_StrImg;
typedef std::function<void(const QString&, emTpCameraStatus, bool)> 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;

Binary file not shown.

Binary file not shown.

@ -223,7 +223,6 @@ void CCameraVirtualFolder::reloadImgs()
m_fileFilter,
QDir::NoSymLinks | QDir::Files,
QDirIterator::Subdirectories);
while (qdi.hasNext())
{
m_files.append(qdi.next());

@ -0,0 +1 @@
This is a dummy file needed to create CoreCtrl.moc

@ -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__;
}
//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)//软触发一次相机
{

@ -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:

@ -15,6 +15,7 @@ public:
FuncCallBack_VarInt m_GetVariantCallBackFunc;//检测算法传输函数
FuncCallBack_StrMap m_ResultCallBackFunc;//检测结果回调函数
FuncCallBack_StrImg m_ImageCallBackFunc;//图像获取回调函数
FuncCallBack_StrInt m_CamEventCallBackFunc;//相机事件回调函数 包含打开 关闭 启动 停止相关事件
};
#endif

@ -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)

@ -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) {

@ -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

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>841</width>
<height>486</height>
<height>393</height>
</rect>
</property>
<property name="windowTitle">

@ -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<QString, QString> 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<QString, QString> 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);
}

@ -0,0 +1,35 @@
#ifndef _H_QCAMSETTINGDLG_H_
#define _H_QCAMSETTINGDLG_H_
#include <QWidget>
#include "ui_QCamSettingDlg.h"
#include "iCoreCtrl.h"
#include "RoiImgViewer.h"
#include <QImage>
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

@ -0,0 +1,803 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QCamSettingDlg</class>
<widget class="QWidget" name="QCamSettingDlg">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>775</width>
<height>553</height>
</rect>
</property>
<property name="windowTitle">
<string>相机配置</string>
</property>
<layout class="QGridLayout" name="gridLayout_9">
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2"/>
</item>
<item>
<widget class="QGroupBox" name="gpCamPreview">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
<underline>false</underline>
</font>
</property>
<property name="title">
<string>相机预览</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_8">
<item>
<widget class="lpImgViewer" name="imgViewer">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>500</width>
<height>0</height>
</size>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_16">
<item>
<spacer name="horizontalSpacer_11">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="btnOpenCam">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>75</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>打开</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnStartCam">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>75</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
<underline>false</underline>
</font>
</property>
<property name="text">
<string>运行</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QWidget" name="widget_2" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<property name="topMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>当前图片尺寸:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="labImgCurSize">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="widget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QGridLayout" name="gridLayout_6">
<item row="3" column="4">
<widget class="QSpinBox" name="spbImgHeight">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimum">
<number>10</number>
</property>
<property name="maximum">
<number>9999</number>
</property>
</widget>
</item>
<item row="1" column="4">
<widget class="QSpinBox" name="spbImgStartY">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximum">
<number>9999</number>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="spbImgWidth">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimum">
<number>10</number>
</property>
<property name="maximum">
<number>9999</number>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QLabel" name="label_26">
<property name="text">
<string>高度:</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_25">
<property name="text">
<string>宽度:</string>
</property>
</widget>
</item>
<item row="4" column="4">
<widget class="QPushButton" name="btnImgSizeApply">
<property name="text">
<string>应用</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_23">
<property name="text">
<string>起始X</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLabel" name="label_24">
<property name="text">
<string>起始Y</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="spbImgStartX">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximum">
<number>9999</number>
</property>
</widget>
</item>
<item row="1" column="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<layout class="QGridLayout" name="gridLayout_7">
<item row="0" column="0">
<widget class="QLabel" name="label_16">
<property name="text">
<string>相机类型(*)</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>序列号(*)</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QComboBox" name="cmb_camera_type">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>Virtual Camera(100)</string>
</property>
</item>
<item>
<property name="text">
<string>BitFlow(110)</string>
</property>
</item>
<item>
<property name="text">
<string>Gige(120)</string>
</property>
</item>
<item>
<property name="text">
<string>USB Camera(130)</string>
</property>
</item>
<item>
<property name="text">
<string>HIK(140)</string>
</property>
</item>
<item>
<property name="text">
<string>Vimba(150)</string>
</property>
</item>
<item>
<property name="text">
<string>Baumer(160)</string>
</property>
</item>
<item>
<property name="text">
<string>AdLink(170)</string>
</property>
</item>
<item>
<property name="text">
<string>DaHua(180)</string>
</property>
</item>
<item>
<property name="text">
<string>Basler(190)</string>
</property>
</item>
<item>
<property name="text">
<string>PtGray(200)</string>
</property>
</item>
<item>
<property name="text">
<string>Euresys(220)</string>
</property>
</item>
</widget>
</item>
<item row="1" column="2">
<widget class="QLineEdit" name="edit_add_camera_sn">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QToolBox" name="toolBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="page_3">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>225</width>
<height>368</height>
</rect>
</property>
<attribute name="label">
<string>相机通用参数</string>
</attribute>
<layout class="QGridLayout" name="gridLayout">
<item row="4" column="0">
<widget class="QLabel" name="label_21">
<property name="text">
<string>触发源:</string>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QCheckBox" name="chbx_camera_zoom">
<property name="text">
<string>开启</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>缩放:</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_13">
<property name="text">
<string>增益:</string>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QComboBox" name="cmb_camera_triggersource">
<property name="editable">
<bool>false</bool>
</property>
<item>
<property name="text">
<string>Line0</string>
</property>
</item>
<item>
<property name="text">
<string>Line1</string>
</property>
</item>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>格式:</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>显示名称(*)</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLineEdit" name="edit_camera_showname">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="6" column="2">
<spacer name="verticalSpacer_5">
<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="1" column="0">
<widget class="QLabel" name="label_12">
<property name="text">
<string>曝光:</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QComboBox" name="cmb_camera_format">
<item>
<property name="text">
<string>GRAY8</string>
</property>
</item>
<item>
<property name="text">
<string>RGB32</string>
</property>
</item>
</widget>
</item>
<item row="1" column="2">
<widget class="QSpinBox" name="spb_camera_exposure">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>999999</number>
</property>
<property name="singleStep">
<number>100</number>
</property>
<property name="value">
<number>1000</number>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QSpinBox" name="spb_camera_gain">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>999999</number>
</property>
<property name="singleStep">
<number>100</number>
</property>
<property name="value">
<number>1000</number>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_5">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>225</width>
<height>368</height>
</rect>
</property>
<attribute name="label">
<string>虚拟相机配置</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_3">
<item row="1" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>虚拟相机目录:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLineEdit" name="edit_camera_vircam_folder"/>
</item>
<item>
<widget class="QPushButton" name="tp_config_add_camera_open_virfolder_btn">
<property name="maximumSize">
<size>
<width>30</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
<string>依赖的相机:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="tp_config_add_camera_relyon_cam_cbx"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_17">
<property name="text">
<string>是否循环:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QCheckBox" name="ckbx_vircamera_loop">
<property name="text">
<string>循环</string>
</property>
</widget>
</item>
<item row="3" column="1">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_7">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>225</width>
<height>368</height>
</rect>
</property>
<attribute name="label">
<string>其他</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>保存参数</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="1">
<widget class="QCheckBox" name="chbx_camera_save">
<property name="text">
<string>启用保存</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>保存图片后缀:</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>是否保存:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="cmb_camera_savefile_suffix">
<item>
<property name="text">
<string>.BMP</string>
</property>
</item>
<item>
<property name="text">
<string>.PNG</string>
</property>
</item>
<item>
<property name="text">
<string>.JPG</string>
</property>
</item>
<item>
<property name="text">
<string>.JPEG</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
<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>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="btn_add_camera_accept">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>75</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_camera_cancel">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>75</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>
<customwidget>
<class>lpImgViewer</class>
<extends>QGraphicsView</extends>
<header>lpimgviewer.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

@ -0,0 +1,57 @@
#include "QCameraConfigUI.h"
#include <QFileDialog>
#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<emTpDeviceType, QString>::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;
}

@ -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 <QWidget>
#include <QDialog>
#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

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QCameraConfigUI</class>
<widget class="QWidget" name="QCameraConfigUI">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>289</width>
<height>182</height>
</rect>
</property>
<property name="windowTitle">
<string>QCameraConfigUI</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0" colspan="2">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>相机类型(*)</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBox">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>序列号(*)</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lineEdit">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>显示名称(*)</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="lineEdit_2">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0" colspan="2">
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<widget class="QLineEdit" name="lineEdit_3">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="m_pbSelectDir">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>配置</string>
</property>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="label_4">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>虚拟相机路径:</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QPushButton" name="m_pbApply">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>保存</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="m_pbClose">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

@ -0,0 +1,226 @@
#include "QCameraMgrUI.h"
#include <QMessageBox>
#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<QStandardItem*> 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<QString, ServerInfo> map = QStationMgr::instance()->getConnInfos();
// for (QMap<QString, ServerInfo>::iterator it = map.begin(); it != map.end(); ++it)
// {
// QString strKey = it.key();
// QList<QStandardItem*> 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);
}
}

@ -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 <QWidget>
#include "ui_QCameraMgrUI.h"
#include <QStandardItem>
#include <QStandardItemModel>
#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

@ -0,0 +1,141 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QCameraMgrUI</class>
<widget class="QWidget" name="QCameraMgrUI">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>722</width>
<height>365</height>
</rect>
</property>
<property name="windowTitle">
<string>相机管理</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>相机列表</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QTableView" name="tableView">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="1">
<layout class="QGridLayout" name="gridLayout_2">
<item row="2" column="0">
<widget class="QPushButton" name="m_pbModCam">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>修改/预览</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QPushButton" name="m_pbDelCam">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>删除</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="m_pbAddCam">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>手动添加</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="m_pbFound">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>查找可用</string>
</property>
</widget>
</item>
<item row="4" column="0">
<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>
</layout>
</item>
<item row="1" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="m_pbClose">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>关闭</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

@ -142,7 +142,10 @@
<ClCompile Include="lpSysConfig.cpp" />
<ClCompile Include="QAboutUI.cpp" />
<ClCompile Include="QAddModeUI.cpp" />
<ClCompile Include="QCameraConfigUI.cpp" />
<ClCompile Include="QCameraMgrUI.cpp" />
<ClCompile Include="QCamSetDlg.cpp" />
<ClCompile Include="QCamSettingDlg.cpp" />
<ClCompile Include="QDeviceMgrUI.cpp" />
<ClCompile Include="QModelMangerUI.cpp" />
<ClCompile Include="QPLCIndexUI.cpp" />
@ -159,16 +162,31 @@
<QtUic Include="CMainWin.ui" />
<QtUic Include="QAboutUI.ui" />
<QtUic Include="QAddModeUI.ui" />
<QtUic Include="QCameraConfigUI.ui" />
<QtUic Include="QCameraMgrUI.ui" />
<QtUic Include="QCamSetDlg.ui" />
<QtUic Include="QCamSettingDlg.ui" />
<QtUic Include="QDeviceMgrUI.ui" />
<QtUic Include="QModelMangerUI.ui" />
<QtUic Include="QPLCIndexUI.ui" />
<QtUic Include="QTestModeWid.ui" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="QCameraConfigUI.h">
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\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</IncludePath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\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</IncludePath>
</QtMoc>
<QtMoc Include="QCameraMgrUI.h">
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\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</IncludePath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\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</IncludePath>
</QtMoc>
<QtMoc Include="QCamSetDlg.h">
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\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</IncludePath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\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</IncludePath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\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</IncludePath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\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</IncludePath>
</QtMoc>
<QtMoc Include="QCamSettingDlg.h">
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\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</IncludePath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\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</IncludePath>
</QtMoc>
<QtMoc Include="QDeviceMgrUI.h">
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\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</IncludePath>

@ -136,9 +136,6 @@
<ClCompile Include="QDeviceMgrUI.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="QCamSetDlg.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lpMain\view\cunstomgraphview.cpp">
<Filter>view</Filter>
</ClCompile>
@ -148,6 +145,18 @@
<ClCompile Include="..\..\src\lpMain\view\stytlegraphview.cpp">
<Filter>view</Filter>
</ClCompile>
<ClCompile Include="QCamSettingDlg.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="QCamSetDlg.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="QCameraMgrUI.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="QCameraConfigUI.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<QtMoc Include="IMainWidget.h">
@ -231,9 +240,6 @@
<QtMoc Include="QDeviceMgrUI.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="QCamSetDlg.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\..\src\lpMain\view\cunstomgraphview.h">
<Filter>view</Filter>
</QtMoc>
@ -243,6 +249,18 @@
<QtMoc Include="..\..\src\lpMain\view\stytlegraphview.h">
<Filter>view</Filter>
</QtMoc>
<QtMoc Include="QCamSettingDlg.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="QCamSetDlg.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="QCameraMgrUI.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="QCameraConfigUI.h">
<Filter>Header Files</Filter>
</QtMoc>
</ItemGroup>
<ItemGroup>
<QtUic Include="CMainWin.ui">
@ -266,9 +284,18 @@
<QtUic Include="QDeviceMgrUI.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="QCamSettingDlg.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="QCamSetDlg.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="QCameraMgrUI.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="QCameraConfigUI.ui">
<Filter>Form Files</Filter>
</QtUic>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\lpMain\CoreCtrl\CDllCoreCtrl.h">

Binary file not shown.
Loading…
Cancel
Save