V20251030-2.1.1
修复相机取流崩溃的bug。 加快海康相机初始化的速度。
This commit is contained in:
+1
-1
@@ -8,7 +8,7 @@
|
||||
#include <vector>
|
||||
#include <functional>
|
||||
#pragma execution_character_set("utf-8")
|
||||
const std::string softwareVersion = "V20251030-2.1.0";
|
||||
const std::string softwareVersion = "V20251030-2.1.1";
|
||||
const std::string euiJsonVersion = "1.0.6";
|
||||
#define globalDatabasePth "./sqlDatabase/eui_db.db" //全局数据库路径
|
||||
#define saveImgEnable 1
|
||||
|
||||
@@ -120,7 +120,7 @@ void cameraManager::run(){
|
||||
|
||||
//非海康相机可跳过
|
||||
MV_CC_DEVICE_INFO_LIST m_stDevList = searchMvDevice();
|
||||
QByteArray mvDevices = MV_CC_DeviceInfoListToQByteArray(m_stDevList);
|
||||
QByteArray mvDevices = "deviceList" + MV_CC_DeviceInfoListToQByteArray(m_stDevList);
|
||||
|
||||
for (auto i = 0; i < _cameraStructs.size(); i++) {
|
||||
auto& m_module = _cameraStructs[i];
|
||||
@@ -138,7 +138,7 @@ void cameraManager::run(){
|
||||
for (int i = 0; i < m_stDevList.nDeviceNum; i++){
|
||||
std::string userDefineName = static_cast<std::string>((LPCSTR)m_stDevList.pDeviceInfo[i]->SpecialInfo.stGigEInfo.chUserDefinedName);
|
||||
std::string serialNumber = static_cast<std::string>((LPCSTR)m_stDevList.pDeviceInfo[i]->SpecialInfo.stGigEInfo.chSerialNumber);
|
||||
if (!serialNumber.compare(m_module.key) || !userDefineName.compare(m_module.key)){
|
||||
if (!serialNumber.compare(m_module.connectionName) || !userDefineName.compare(m_module.connectionName)){
|
||||
m_module.module_ptr->writeData(vec_mat, mvDevices);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -11,12 +11,14 @@
|
||||
#include <qdatetime.h>
|
||||
#include <qmessagebox.h>
|
||||
#include <qdir.h>
|
||||
#include <qmutex.h>
|
||||
|
||||
//实时取流线程
|
||||
class GrabbingThread :public QThread {
|
||||
public:
|
||||
GrabbingThread(QLabel* showImageLabelIN, QMutex* mutex) {
|
||||
GrabbingThread(QLabel* showImageLabelIN, QMutex* mutexIn) {
|
||||
showImageLabel = showImageLabelIN;
|
||||
mutex = mutexIn;
|
||||
}
|
||||
void setCameraName(std::string cameraNameIN) {
|
||||
cameraName = cameraNameIN;
|
||||
|
||||
@@ -26,6 +26,16 @@ bool ifRunning = false;
|
||||
MV_CC_DEVICE_INFO_LIST m_stDevList; // ch:设备信息列表结构体变量,用来存储设备列表
|
||||
//MV_GENTL_IF_INFO_LIST m_stIFList;
|
||||
void CloseDevice();
|
||||
static MV_CC_DEVICE_INFO_LIST QByteArrayToMV_CC_DeviceInfoList(const QByteArray& byteArray) {
|
||||
MV_CC_DEVICE_INFO_LIST deviceInfoList;
|
||||
if (byteArray.size() == sizeof(MV_CC_DEVICE_INFO_LIST)) {
|
||||
memcpy(&deviceInfoList, byteArray.constData(), sizeof(MV_CC_DEVICE_INFO_LIST));
|
||||
}
|
||||
else {
|
||||
qDebug() << "Invalid size of QByteArray for MV_CC_DEVICE_INFO_LIST!";
|
||||
}
|
||||
return deviceInfoList;
|
||||
}
|
||||
QString byteArrayToUnicode(const QByteArray array) {
|
||||
|
||||
// state用于保存转换状态,它的成员invalidChars,可用来判断是否转换成功
|
||||
@@ -94,9 +104,15 @@ void __stdcall ImageCallBackEx(unsigned char* pData0, MV_FRAME_OUT_INFO_EX* pFra
|
||||
//搜索所有设备
|
||||
int SearchDevice()
|
||||
{
|
||||
memset(&m_stDevList, 0, sizeof(MV_CC_DEVICE_INFO_LIST));
|
||||
// ch:枚举子网内所有设备 | en:Enumerate all devices within subnet
|
||||
int nRet = MV_CC_EnumDevices(MV_GIGE_DEVICE | MV_USB_DEVICE, &m_stDevList);
|
||||
if (m_stDevList.nDeviceNum == 0) {
|
||||
memset(&m_stDevList, 0, sizeof(MV_CC_DEVICE_INFO_LIST));
|
||||
// ch:枚举子网内所有设备 | en:Enumerate all devices within subnet
|
||||
int nRet = MV_CC_EnumDevices(MV_GIGE_DEVICE | MV_USB_DEVICE, &m_stDevList);
|
||||
if (MV_OK != nRet)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < m_stDevList.nDeviceNum; i++)
|
||||
{
|
||||
//SN
|
||||
@@ -110,10 +126,6 @@ int SearchDevice()
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (MV_OK != nRet)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -387,6 +399,13 @@ bool Hd_CameraModule_HIK_hard_PCIE::readData(std::vector<cv::Mat>& mat, QByteArr
|
||||
bool Hd_CameraModule_HIK_hard_PCIE::writeData(std::vector<cv::Mat>& mat, QByteArray& data)
|
||||
{
|
||||
Q_UNUSED(mat);
|
||||
if (data.contains("deviceList")) {
|
||||
auto result = QByteArrayToMV_CC_DeviceInfoList(data.mid(10));
|
||||
if (result.nDeviceNum != 0) {
|
||||
m_stDevList = result;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
QStringList dataList = QString::fromUtf8(data).split("_");
|
||||
//2024.02.18更新,相机对应的读SN信号时,表示新产品进入,设置初始值
|
||||
if (data == "rest_newProductIn")
|
||||
|
||||
@@ -36,7 +36,16 @@ QString byteArrayToUnicode(const QByteArray array) {
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
static MV_CC_DEVICE_INFO_LIST QByteArrayToMV_CC_DeviceInfoList(const QByteArray& byteArray) {
|
||||
MV_CC_DEVICE_INFO_LIST deviceInfoList;
|
||||
if (byteArray.size() == sizeof(MV_CC_DEVICE_INFO_LIST)) {
|
||||
memcpy(&deviceInfoList, byteArray.constData(), sizeof(MV_CC_DEVICE_INFO_LIST));
|
||||
}
|
||||
else {
|
||||
qDebug() << "Invalid size of QByteArray for MV_CC_DEVICE_INFO_LIST!";
|
||||
}
|
||||
return deviceInfoList;
|
||||
}
|
||||
#pragma execution_character_set("utf-8")
|
||||
|
||||
QMutex* n_mutex;// = new QMutex();
|
||||
@@ -93,13 +102,19 @@ bool IsColor(MvGvspPixelType enType)
|
||||
//搜索所有设备
|
||||
int SearchDevice()
|
||||
{
|
||||
memset(&m_stDevList, 0, sizeof(MV_CC_DEVICE_INFO_LIST));
|
||||
// ch:枚举子网内所有设备 | en:Enumerate all devices within subnet
|
||||
int nRet = MV_CC_EnumDevices(MV_USB_DEVICE , &m_stDevList);
|
||||
if (m_stDevList.nDeviceNum == 0) {
|
||||
memset(&m_stDevList, 0, sizeof(MV_CC_DEVICE_INFO_LIST));
|
||||
// ch:枚举子网内所有设备 | en:Enumerate all devices within subnet
|
||||
int nRet = MV_CC_EnumDevices(MV_GIGE_DEVICE | MV_USB_DEVICE, &m_stDevList);
|
||||
if (MV_OK != nRet)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < m_stDevList.nDeviceNum; i++)
|
||||
{
|
||||
//SN
|
||||
unsigned char* name = m_stDevList.pDeviceInfo[i]->SpecialInfo.stUsb3VInfo.chSerialNumber;
|
||||
unsigned char* name = m_stDevList.pDeviceInfo[i]->SpecialInfo.stGigEInfo.chSerialNumber;
|
||||
//userID
|
||||
//unsigned char* name=m_stDevList.pDeviceInfo[i]->SpecialInfo.stGigEInfo.chUserDefinedName;
|
||||
string userName = static_cast<string>((LPCSTR)name);
|
||||
@@ -109,21 +124,17 @@ int SearchDevice()
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (MV_OK != nRet)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
bool connctDevice()
|
||||
bool connectDevice()
|
||||
{
|
||||
index = -1;
|
||||
SearchDevice();
|
||||
if (index == -1)
|
||||
{
|
||||
//未匹配到相机
|
||||
qDebug() << "[Waring] " << "Hd_CameraModule_HIK_soft not match --CameraName:" << QString::fromStdString(Username);
|
||||
qDebug() << "[Waring] " << "Hd_CameraModule_HIK_hard_USB not match --CameraName:" << QString::fromStdString(Username);
|
||||
return false;
|
||||
}
|
||||
unsigned char* name = m_stDevList.pDeviceInfo[index]->SpecialInfo.stGigEInfo.chUserDefinedName;
|
||||
@@ -177,9 +188,9 @@ void __stdcall ReconnectDevice(unsigned int nMsgType, void* pUser)
|
||||
while (1)
|
||||
{
|
||||
Sleep(100);
|
||||
if (connctDevice() == true)
|
||||
if (connectDevice() == true)
|
||||
{
|
||||
qWarning() << "[Hd_CameraModule_HIK_soft] " << " Hd_CameraModule_HIK_soft create success again! ";
|
||||
qWarning() << "[Hd_CameraModule_HIK_hard_USB] " << " Hd_CameraModule_HIK_hard_USB create success again! ";
|
||||
moduleStatus = true;
|
||||
break;
|
||||
}
|
||||
@@ -215,20 +226,20 @@ int RGB2BGR(unsigned char* pRgbData, unsigned int nWidth, unsigned int nHeight)
|
||||
|
||||
}
|
||||
|
||||
Hd_CameraModule_HIK_soft* create()
|
||||
Hd_CameraModule_HIK_hard_USB* create()
|
||||
{
|
||||
qDebug() << "[INFO] " << "Hd_CameraModule_HIK_soft create success!" ;
|
||||
return new Hd_CameraModule_HIK_soft;
|
||||
qDebug() << "[INFO] " << "Hd_CameraModule_HIK_hard_USB create success!" ;
|
||||
return new Hd_CameraModule_HIK_hard_USB;
|
||||
}
|
||||
|
||||
void destory(Hd_CameraModule_HIK_soft * ptr)
|
||||
void destory(Hd_CameraModule_HIK_hard_USB * ptr)
|
||||
{
|
||||
if(ptr)
|
||||
{
|
||||
delete ptr;
|
||||
ptr = nullptr;
|
||||
}
|
||||
qDebug() << "[INFO] " << "Hd_CameraModule_HIK_soft destory success!";
|
||||
qDebug() << "[INFO] " << "Hd_CameraModule_HIK_hard_USB destory success!";
|
||||
}
|
||||
//回调函数;
|
||||
//经测试,相机像素格式Mono8、RGB8是可以正常转换的,YUV422还需要优化;RGB8格式比YUV422帧率低;BGR格式会导致异色问题
|
||||
@@ -339,7 +350,7 @@ void SetGain(float GainValue)
|
||||
MV_CC_SetEnumValue(handle, "GainAuto", 0);
|
||||
MV_CC_SetFloatValue(handle, "Gain", GainValue);
|
||||
}
|
||||
Hd_CameraModule_HIK_soft::Hd_CameraModule_HIK_soft()
|
||||
Hd_CameraModule_HIK_hard_USB::Hd_CameraModule_HIK_hard_USB()
|
||||
{
|
||||
n_mutex = new QMutex();
|
||||
m_thread = new MyThread;
|
||||
@@ -353,7 +364,7 @@ void CloseDevice()
|
||||
handle = nullptr; //此处注释掉的话,软件断开再连接,回调函数不出图
|
||||
}
|
||||
|
||||
Hd_CameraModule_HIK_soft::~Hd_CameraModule_HIK_soft()
|
||||
Hd_CameraModule_HIK_hard_USB::~Hd_CameraModule_HIK_hard_USB()
|
||||
{
|
||||
m_flag = true;
|
||||
Sleep(10);
|
||||
@@ -374,7 +385,7 @@ Hd_CameraModule_HIK_soft::~Hd_CameraModule_HIK_soft()
|
||||
qDebug() << "[INFO] " << " delete success!";
|
||||
}
|
||||
//从类中读数据到实例对象
|
||||
bool Hd_CameraModule_HIK_soft::readData(std::vector<cv::Mat> &mat,QByteArray &data)
|
||||
bool Hd_CameraModule_HIK_hard_USB::readData(std::vector<cv::Mat> &mat,QByteArray &data)
|
||||
{
|
||||
if (queuepic.isEmpty())
|
||||
{
|
||||
@@ -392,9 +403,16 @@ bool Hd_CameraModule_HIK_soft::readData(std::vector<cv::Mat> &mat,QByteArray &da
|
||||
return true;
|
||||
}
|
||||
//实例对象把数据写入到类
|
||||
bool Hd_CameraModule_HIK_soft::writeData(std::vector<cv::Mat> &mat,QByteArray &data)
|
||||
bool Hd_CameraModule_HIK_hard_USB::writeData(std::vector<cv::Mat> &mat,QByteArray &data)
|
||||
{
|
||||
//2024.02.18更新,相机对应的读SN信号时,表示新产品进入,设置初始值
|
||||
if (data.contains("deviceList")) {
|
||||
auto result = QByteArrayToMV_CC_DeviceInfoList(data.mid(10));
|
||||
if (result.nDeviceNum != 0) {
|
||||
m_stDevList = result;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (data == "rest_newProductIn")
|
||||
{
|
||||
//根据实际项目,设置初始值:曝光、增益,ROI区域等
|
||||
@@ -476,7 +494,7 @@ bool Hd_CameraModule_HIK_soft::writeData(std::vector<cv::Mat> &mat,QByteArray &d
|
||||
data.append("TriggerMode_" + ui.comboBox_triggerMode->currentText());*/
|
||||
|
||||
|
||||
qDebug() << "Hd_CameraModule_HIK_soft::writeData::" << data;
|
||||
qDebug() << "Hd_CameraModule_HIK_hard_USB::writeData::" << data;
|
||||
|
||||
m_flag = false;
|
||||
//Username = data.toStdString();
|
||||
@@ -485,7 +503,7 @@ bool Hd_CameraModule_HIK_soft::writeData(std::vector<cv::Mat> &mat,QByteArray &d
|
||||
|
||||
|
||||
//传入initParas函数,格式为:相机key+参数名1#参数值1#参数值2+参数名2#参数值1...
|
||||
bool Hd_CameraModule_HIK_soft::initParas(QByteArray& initData)
|
||||
bool Hd_CameraModule_HIK_hard_USB::initParas(QByteArray& initData)
|
||||
{
|
||||
QByteArrayList valueList = initData.split('+');
|
||||
Username = valueList[0];
|
||||
@@ -497,7 +515,7 @@ bool Hd_CameraModule_HIK_soft::initParas(QByteArray& initData)
|
||||
|
||||
bool ifOk = true;
|
||||
if (handle == NULL)
|
||||
ifOk = connctDevice();
|
||||
ifOk = connectDevice();
|
||||
if (ifOk == false)
|
||||
return false;
|
||||
if (valueList.size() > 1)
|
||||
@@ -618,7 +636,7 @@ bool Hd_CameraModule_HIK_soft::initParas(QByteArray& initData)
|
||||
|
||||
return ifOk;
|
||||
}
|
||||
bool Hd_CameraModule_HIK_soft::run()
|
||||
bool Hd_CameraModule_HIK_hard_USB::run()
|
||||
{
|
||||
if (imgIndex == expourseTimeList.size())
|
||||
imgIndex = 0;
|
||||
@@ -709,7 +727,7 @@ bool Hd_CameraModule_HIK_soft::run()
|
||||
}
|
||||
|
||||
//相机连接状态:正常连接或断开
|
||||
bool Hd_CameraModule_HIK_soft::checkStatus()
|
||||
bool Hd_CameraModule_HIK_hard_USB::checkStatus()
|
||||
{
|
||||
//status = moduleStatus;
|
||||
return moduleStatus;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef Hd_CameraModule_HIK_soft_H
|
||||
#define Hd_CameraModule_HIK_soft_H
|
||||
#ifndef Hd_CameraModule_HIK_hard_USB_H
|
||||
#define Hd_CameraModule_HIK_hard_USB_H
|
||||
|
||||
#include <QtCore/qglobal.h>
|
||||
|
||||
@@ -22,11 +22,11 @@ using namespace cv;
|
||||
|
||||
|
||||
class MyThread;
|
||||
class Hd_CameraModule_HIK_soft :public dsModuleBase
|
||||
class Hd_CameraModule_HIK_hard_USB :public dsModuleBase
|
||||
{
|
||||
public:
|
||||
Hd_CameraModule_HIK_soft();
|
||||
virtual ~Hd_CameraModule_HIK_soft();
|
||||
Hd_CameraModule_HIK_hard_USB();
|
||||
virtual ~Hd_CameraModule_HIK_hard_USB();
|
||||
//从类中读数据到实例对象
|
||||
bool readData(std::vector<cv::Mat>& mat, QByteArray& data);
|
||||
//实例对象把数据写入到类
|
||||
@@ -52,8 +52,8 @@ signals:
|
||||
|
||||
extern "C"
|
||||
{
|
||||
Q_DECL_EXPORT Hd_CameraModule_HIK_soft * create();
|
||||
Q_DECL_EXPORT void destory(Hd_CameraModule_HIK_soft * ptr);
|
||||
Q_DECL_EXPORT Hd_CameraModule_HIK_hard_USB * create();
|
||||
Q_DECL_EXPORT void destory(Hd_CameraModule_HIK_hard_USB * ptr);
|
||||
}
|
||||
|
||||
#endif // Hd_CameraModule_HIK_soft_H
|
||||
#endif // Hd_CameraModule_HIK_hard_USB_H
|
||||
|
||||
@@ -25,6 +25,16 @@ bool ifRunning = false;
|
||||
MV_CC_DEVICE_INFO_LIST m_stDevList; // ch:设备信息列表结构体变量,用来存储设备列表
|
||||
//MV_GENTL_IF_INFO_LIST m_stIFList;
|
||||
void CloseDevice();
|
||||
static MV_CC_DEVICE_INFO_LIST QByteArrayToMV_CC_DeviceInfoList(const QByteArray& byteArray) {
|
||||
MV_CC_DEVICE_INFO_LIST deviceInfoList;
|
||||
if (byteArray.size() == sizeof(MV_CC_DEVICE_INFO_LIST)) {
|
||||
memcpy(&deviceInfoList, byteArray.constData(), sizeof(MV_CC_DEVICE_INFO_LIST));
|
||||
}
|
||||
else {
|
||||
qDebug() << "Invalid size of QByteArray for MV_CC_DEVICE_INFO_LIST!";
|
||||
}
|
||||
return deviceInfoList;
|
||||
}
|
||||
QString byteArrayToUnicode(const QByteArray array) {
|
||||
|
||||
// state用于保存转换状态,它的成员invalidChars,可用来判断是否转换成功
|
||||
@@ -93,9 +103,15 @@ void __stdcall ImageCallBackEx(unsigned char* pData0, MV_FRAME_OUT_INFO_EX* pFra
|
||||
//搜索所有设备
|
||||
int SearchDevice()
|
||||
{
|
||||
memset(&m_stDevList, 0, sizeof(MV_CC_DEVICE_INFO_LIST));
|
||||
// ch:枚举子网内所有设备 | en:Enumerate all devices within subnet
|
||||
int nRet = MV_CC_EnumDevices(MV_GIGE_DEVICE | MV_USB_DEVICE, &m_stDevList);
|
||||
if (m_stDevList.nDeviceNum == 0) {
|
||||
memset(&m_stDevList, 0, sizeof(MV_CC_DEVICE_INFO_LIST));
|
||||
// ch:枚举子网内所有设备 | en:Enumerate all devices within subnet
|
||||
int nRet = MV_CC_EnumDevices(MV_GIGE_DEVICE | MV_USB_DEVICE, &m_stDevList);
|
||||
if (MV_OK != nRet)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < m_stDevList.nDeviceNum; i++)
|
||||
{
|
||||
//SN
|
||||
@@ -109,10 +125,6 @@ int SearchDevice()
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (MV_OK != nRet)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -246,13 +258,13 @@ void _stdcall ExceptionCB(unsigned int nMesgType, void* pUser) {
|
||||
}
|
||||
|
||||
|
||||
Hd_CameraModule_HIK_hard_PCIE* create()
|
||||
Hd_CameraModule_HIK_soft_GIGE* create()
|
||||
{
|
||||
qDebug() << "[INFO] " << "Hd_CameraModule_HIK create success!";
|
||||
return new Hd_CameraModule_HIK_hard_PCIE;
|
||||
return new Hd_CameraModule_HIK_soft_GIGE;
|
||||
}
|
||||
|
||||
void destory(Hd_CameraModule_HIK_hard_PCIE* ptr)
|
||||
void destory(Hd_CameraModule_HIK_soft_GIGE* ptr)
|
||||
{
|
||||
if (ptr)
|
||||
{
|
||||
@@ -348,12 +360,12 @@ void __stdcall ImageCallBackEx(unsigned char* pData0, MV_FRAME_OUT_INFO_EX* pFra
|
||||
<< "--CameraName:" << QString::fromStdString(Username) << " imgIndex:" << imgCnt << "nFrameNum : " << frameNum;
|
||||
}
|
||||
|
||||
Hd_CameraModule_HIK_hard_PCIE::Hd_CameraModule_HIK_hard_PCIE()
|
||||
Hd_CameraModule_HIK_soft_GIGE::Hd_CameraModule_HIK_soft_GIGE()
|
||||
{
|
||||
//m_thread = new MyThread;
|
||||
//m_mutex = new QMutex();
|
||||
}
|
||||
Hd_CameraModule_HIK_hard_PCIE::~Hd_CameraModule_HIK_hard_PCIE()
|
||||
Hd_CameraModule_HIK_soft_GIGE::~Hd_CameraModule_HIK_soft_GIGE()
|
||||
{
|
||||
CloseDevice();
|
||||
if (n_mutex)
|
||||
@@ -365,7 +377,7 @@ Hd_CameraModule_HIK_hard_PCIE::~Hd_CameraModule_HIK_hard_PCIE()
|
||||
qDebug() << "[INFO] " << " delete success!";
|
||||
}
|
||||
//从类中读数据到实例对象
|
||||
bool Hd_CameraModule_HIK_hard_PCIE::readData(std::vector<cv::Mat>& mat, QByteArray& data)
|
||||
bool Hd_CameraModule_HIK_soft_GIGE::readData(std::vector<cv::Mat>& mat, QByteArray& data)
|
||||
{
|
||||
if (queuepic.isEmpty())
|
||||
{
|
||||
@@ -382,9 +394,16 @@ bool Hd_CameraModule_HIK_hard_PCIE::readData(std::vector<cv::Mat>& mat, QByteArr
|
||||
}
|
||||
|
||||
//实例对象把数据写入到类;加载模型后会运行此函数
|
||||
bool Hd_CameraModule_HIK_hard_PCIE::writeData(std::vector<cv::Mat>& mat, QByteArray& data)
|
||||
bool Hd_CameraModule_HIK_soft_GIGE::writeData(std::vector<cv::Mat>& mat, QByteArray& data)
|
||||
{
|
||||
Q_UNUSED(mat);
|
||||
if (data.contains("deviceList")) {
|
||||
auto result = QByteArrayToMV_CC_DeviceInfoList(data.mid(10));
|
||||
if (result.nDeviceNum != 0) {
|
||||
m_stDevList = result;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
QStringList dataList = QString::fromUtf8(data).split("_");
|
||||
//2024.02.18更新,相机对应的读SN信号时,表示新产品进入,设置初始值
|
||||
if (data == "rest_newProductIn")
|
||||
@@ -430,7 +449,7 @@ bool Hd_CameraModule_HIK_hard_PCIE::writeData(std::vector<cv::Mat>& mat, QByteAr
|
||||
return true;
|
||||
}
|
||||
//传入initParas函数,格式为:相机key+参数名1#参数值1#参数值2+参数名2#参数值1...
|
||||
bool Hd_CameraModule_HIK_hard_PCIE::initParas(QByteArray& initData)
|
||||
bool Hd_CameraModule_HIK_soft_GIGE::initParas(QByteArray& initData)
|
||||
{
|
||||
QByteArrayList valueList = initData.split('+');
|
||||
Username = valueList[0];
|
||||
@@ -512,7 +531,7 @@ bool Hd_CameraModule_HIK_hard_PCIE::initParas(QByteArray& initData)
|
||||
return ifOk;
|
||||
}
|
||||
|
||||
bool Hd_CameraModule_HIK_hard_PCIE::run()
|
||||
bool Hd_CameraModule_HIK_soft_GIGE::run()
|
||||
{
|
||||
//queuepic.clear();
|
||||
qDebug() << "[INFO] " << " run start" << QString::fromStdString(Username);
|
||||
@@ -571,7 +590,7 @@ bool Hd_CameraModule_HIK_hard_PCIE::run()
|
||||
}
|
||||
|
||||
//相机连接状态:正常连接或断开
|
||||
bool Hd_CameraModule_HIK_hard_PCIE::checkStatus()
|
||||
bool Hd_CameraModule_HIK_soft_GIGE::checkStatus()
|
||||
{
|
||||
//status = moduleStatus;
|
||||
return moduleStatus;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef Hd_CameraModule_HIK_hard_PCIE_H
|
||||
#define Hd_CameraModule_HIK_hard_PCIE_H
|
||||
#ifndef Hd_CameraModule_HIK_soft_GIGE_H
|
||||
#define Hd_CameraModule_HIK_soft_GIGE_H
|
||||
#include <QtCore/qglobal.h>
|
||||
#include <MvCameraControl.h>
|
||||
#include <CameraParams.h>
|
||||
@@ -14,11 +14,11 @@
|
||||
using namespace cv;
|
||||
#pragma execution_character_set("utf-8")
|
||||
|
||||
class Hd_CameraModule_HIK_hard_PCIE :public dsModuleBase
|
||||
class Hd_CameraModule_HIK_soft_GIGE :public dsModuleBase
|
||||
{
|
||||
public:
|
||||
Hd_CameraModule_HIK_hard_PCIE();
|
||||
virtual ~Hd_CameraModule_HIK_hard_PCIE();
|
||||
Hd_CameraModule_HIK_soft_GIGE();
|
||||
virtual ~Hd_CameraModule_HIK_soft_GIGE();
|
||||
//从类中读数据到实例对象
|
||||
bool readData(std::vector<cv::Mat>& mat, QByteArray& data);
|
||||
//实例对象把数据写入到类
|
||||
@@ -35,9 +35,9 @@ private:
|
||||
|
||||
extern "C"
|
||||
{
|
||||
Q_DECL_EXPORT Hd_CameraModule_HIK_hard_PCIE * create();
|
||||
Q_DECL_EXPORT void destory(Hd_CameraModule_HIK_hard_PCIE * ptr);
|
||||
Q_DECL_EXPORT Hd_CameraModule_HIK_soft_GIGE * create();
|
||||
Q_DECL_EXPORT void destory(Hd_CameraModule_HIK_soft_GIGE * ptr);
|
||||
}
|
||||
|
||||
#endif // Hd_CameraModule_HIK_hard_H
|
||||
//Hd_CameraModule_HIK_hard_PCIE
|
||||
//Hd_CameraModule_HIK_soft_GIGE
|
||||
|
||||
Reference in New Issue
Block a user