GD500机型代码

GD500
wzzhu 23 hours ago
parent 5085b3c0ab
commit 0fdfe6e039

@ -1,68 +0,0 @@
{
"files.associations": {
"string": "cpp",
"array": "cpp",
"atomic": "cpp",
"bit": "cpp",
"*.tcc": "cpp",
"cctype": "cpp",
"chrono": "cpp",
"clocale": "cpp",
"cmath": "cpp",
"compare": "cpp",
"complex": "cpp",
"concepts": "cpp",
"condition_variable": "cpp",
"cstdarg": "cpp",
"cstddef": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cstring": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"cwctype": "cpp",
"deque": "cpp",
"list": "cpp",
"map": "cpp",
"set": "cpp",
"unordered_map": "cpp",
"unordered_set": "cpp",
"vector": "cpp",
"exception": "cpp",
"algorithm": "cpp",
"functional": "cpp",
"iterator": "cpp",
"memory": "cpp",
"memory_resource": "cpp",
"numeric": "cpp",
"random": "cpp",
"ratio": "cpp",
"string_view": "cpp",
"system_error": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"utility": "cpp",
"fstream": "cpp",
"future": "cpp",
"initializer_list": "cpp",
"iomanip": "cpp",
"iosfwd": "cpp",
"iostream": "cpp",
"istream": "cpp",
"limits": "cpp",
"mutex": "cpp",
"new": "cpp",
"numbers": "cpp",
"ostream": "cpp",
"semaphore": "cpp",
"sstream": "cpp",
"stdexcept": "cpp",
"stop_token": "cpp",
"streambuf": "cpp",
"thread": "cpp",
"cinttypes": "cpp",
"typeindex": "cpp",
"typeinfo": "cpp"
}
}

@ -0,0 +1,32 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.3.32929.385
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Cigarette", "Cigarette\Cigarette.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.ActiveCfg = Debug|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.Build.0 = Debug|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x86.ActiveCfg = Debug|Win32
{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x86.Build.0 = Debug|Win32
{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.ActiveCfg = Release|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.Build.0 = Release|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x86.ActiveCfg = Release|Win32
{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {0AF1A30E-A12C-4014-ACD5-65A1E6D54D46}
Qt5Version = 5.15.2_msvc2019_64
EndGlobalSection
EndGlobal

@ -0,0 +1,3 @@
#include "ASyncQueue.h"

@ -0,0 +1,81 @@
#pragma once
#include<mutex>
//#include<condition_variable>
#include<list>
#include<iostream>
using namespace std;
template<class T> class ASyncQueue
{
public:
ASyncQueue(int max_size);
~ASyncQueue();
void put(const T& val);
void take(T& val);
void clear();
bool isEmpty();
bool isFull();
int count();
public:
string name;
private:
mutex lock;
//condition_variable_any cv_full, cv_empty;
list<T> q;
int size;
int max_size;
};
using namespace std;
template<class T>
ASyncQueue<T>::ASyncQueue(int max_size) :max_size(max_size)
{
}
template<class T>
ASyncQueue<T>::~ASyncQueue()
{
}
template<class T>
void ASyncQueue<T>::put(const T& val)
{
lock_guard<mutex> locker(lock);
q.emplace_back(val);
}
template<class T>
void ASyncQueue<T>::take(T& val)
{
lock_guard<mutex> locker(lock);
val = q.front();
q.pop_front();
}
template<class T>
void ASyncQueue<T>::clear()
{
lock_guard<mutex> locker(lock);
q.clear();
}
template<class T>
bool ASyncQueue<T>::isEmpty()
{
return q.size() == 0;
}
template<class T>
bool ASyncQueue<T>::isFull()
{
return q.size() == max_size;
}
template<class T>
int ASyncQueue<T>::count()
{
lock_guard<mutex> locker(lock);
return q.size();
}

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

@ -0,0 +1,14 @@
#pragma once
#include <iostream>
class AlarmInfo
{
public:
AlarmInfo();
~AlarmInfo();
public:
std::string alarm_start; //报警发生时间
std::string alarm_handle; //报警处理时间
std::string alarm_msg; //报警信息
int alarm_code; //报警代码
};

@ -0,0 +1,166 @@
#include "CaptureThread.h"
#include "common.h"
#include "exportData.h"
extern bool g_debug_mode; //相机调试模式,工作模式必须停止状态才能打开
extern SyncQueue<_XMLExportDataInfo>* export_XMLData_Info_queue;
//-----------------------------------------------------------------------------
CaptureThread::CaptureThread(Device* pCurrDev, bool boTerminated, FunctionInterface* pFI_, int Num) :
pDev_(pCurrDev), boTerminated_(boTerminated), requestPendingForDisplay_(INVALID_ID), pFI_(pFI_), Local_Num(Num)
//-----------------------------------------------------------------------------
{
p_unit_queue = new ASyncQueue<cv::Mat>(Unit_Queue_Size);
}
void CaptureThread::fpsTimeout(void)
{
uint64_t delta = m_cntGrabbedImages - m_cntLastGrabbedImages;
m_cntLastGrabbedImages = m_cntGrabbedImages;
QString data = QString("%1").arg(delta);
emit updateStatistics(data.left(4), Local_Num);
}
CaptureThread::~CaptureThread()
{
delete p_unit_queue;
}
//-----------------------------------------------------------------------------
void CaptureThread::process(void)
//-----------------------------------------------------------------------------
{
try
{
//Line5回调
mvIMPACT::acquire::GenICam::EventControl pEventCtrl_(pDev_);
//pEventCtrl_.eventSelector.writeS("Line5FallingEdge");
//pEventCtrl_.eventNotification.writeS("Off");
//pEventCtrl_.eventSelector.writeS("Line5RisingEdge");
//pEventCtrl_.eventNotification.writeS("Off");
pEventCtrl_.eventSelector.writeS("Line5AnyEdge");
#ifdef IMM_PROCESS
pEventCtrl_.eventNotification.writeS("Off");
#else
pEventCtrl_.eventNotification.writeS("On");
#endif
#ifndef IMM_PROCESS
EventCallback eventCallback(&pEventCtrl_);
eventCallback.p_unit_queue_ = p_unit_queue;
#ifdef SYNC_CAMERA
eventCallback.p_image_sync_arr_ = p_image_sync_arr;
eventCallback.p_image_sync_queue_ = p_image_sync_queue;
#else
eventCallback.p_image_queue_ = p_image_queue;
#endif
eventCallback.p_result_wait_queue_ = p_result_wait_queue;
eventCallback.p_shooted_queue_ = p_shooted_queue;
eventCallback.p_double_queue_ = p_double_queue;
eventCallback.m_pMVCamera = pDev_;
eventCallback.pCaptureThread = this;
eventCallback.registerComponent(pEventCtrl_.eventLine5AnyEdge);
#endif
m_threadFunc.m_pMVCamera = pDev_;
m_threadFunc.p_result_queue_ = p_result_queue;
m_threadFunc.p_double_queue_ = p_double_queue;
//相机掉线回调
CIwtCameraLostCallbackMV cam_lost_cb;
cam_lost_cb.channel_ = Local_Num;
if (cam_lost_cb.registerComponent(pDev_->state) != true)
{
std::cout << "ERROR: Unable to register the camera's lost CallBack function!\n";
}
//图像采集循环
TDMR_ERROR result = DMR_NO_ERROR;
while ((result = static_cast<TDMR_ERROR>(pFI_->imageRequestSingle())) == DMR_NO_ERROR) {};
if (result != DEV_NO_FREE_REQUEST_AVAILABLE)
{
qDebug() << "'FunctionInterface.imageRequestSingle' returned with an unexpected result: " << QString::fromStdString(mvIMPACT::acquire::ImpactAcquireException::getErrorCodeAsString(result));
}
manuallyStartAcquisitionIfNeeded(pDev_, *pFI_);
int cnt = 0;
// run thread loop
mvIMPACT::acquire::Statistics statistics(pDev_);
mvIMPACT::acquire::Request* pRequest = 0;
mvIMPACT::acquire::Request* pPreviousRequest = nullptr;
const unsigned int timeout_ms = 100;
Ready = true;
while (!boTerminated_)
{
const int requestNr = pFI_->imageRequestWaitFor(timeout_ms);
pRequest = pFI_->isRequestNrValid(requestNr) ? pFI_->getRequest(requestNr) : 0;
if (pRequest)
{
if (pRequest->isOK())
{
// do something with the image
int openCVDataType = CV_8UC1;
if ((pRequest->imagePixelFormat.read() == ibpfBGR888Packed) || (pRequest->imagePixelFormat.read() == ibpfRGB888Packed))
openCVDataType = CV_8UC3;
cv::Mat openCVImage(cv::Size(pRequest->imageWidth.read(), pRequest->imageHeight.read()), openCVDataType, pRequest->imageData.read(), pRequest->imageLinePitch.read());
cv::Mat image_clone = openCVImage.clone();
if (!g_debug_mode)
{
#ifdef IMM_PROCESS
p_image_queue->put(std::make_pair(1, image_clone)); //放入临时队列
#else
p_unit_queue->put(image_clone); //放入临时队列
#endif
}
else
{
p_debug_queue->put(image_clone); //放入调试队列
}
cnt++;
// display some statistics
if (cnt % 10 == 0)
{
QString data = QString::fromStdString(statistics.framesPerSecond.readS());
emit updateStatistics(data.left(4), Local_Num);
}
}
else
{
// some error: pRequest->requestResult.readS() will return a string representation
}
// this image has been used thus the buffer is no longer needed...
if (pPreviousRequest)
{
// this image has been displayed thus the buffer is no longer needed...
pPreviousRequest->unlock();
}
pPreviousRequest = pRequest;
// send a new image request into the capture queue
pFI_->imageRequestSingle();
}
#if defined (IMM_FEED_BACK) || defined (CAP_FEED_BACK)
m_threadFunc.SendFeedBack(ImageCap);
#endif
}
manuallyStopAcquisitionIfNeeded(pDev_, *pFI_);
if (pRequest)
{
pRequest->unlock();
}
pFI_->imageRequestReset(0, 0);
}
catch (const ImpactAcquireException& e)
{
emit error(QString::fromStdString(e.getErrorCodeAsString()));
}
}
//-----------------------------------------------------------------------------
int CaptureThread::getPendingRequestNr(void)
//-----------------------------------------------------------------------------
{
QMutexLocker lockedScope(&lock_);
int result = requestPendingForDisplay_;
// Reset the ID of the request to tell the capture loop that this request has already been
// picked up and someone else will take care of it from now on.
requestPendingForDisplay_ = INVALID_ID;
return result;
}

@ -0,0 +1,268 @@
//-----------------------------------------------------------------------------
#ifndef CaptureThreadH
#define CaptureThreadH CaptureThreadH
//-----------------------------------------------------------------------------
#include "balluffcamera.h"
#include <QThread>
#include <QMutex>
#include <QTimer>
#include <qdebug.h>
#include "SyncQueue.h"
#include "ASyncQueue.h"
#include "apps/Common/exampleHelper.h"
#include <apps/Common/qtIncludePrologue.h>
#include <apps/Common/qtIncludeEpilogue.h>
#include <opencv2/opencv.hpp>
#include "common.h"
extern SingleCamInfoStruct SingleCamInfo[NumberOfSupportedCameras];
extern int work_camera_nums;
class CaptureThread_Func
{
public:
Device* m_pMVCamera;
ASyncQueue<bool>* p_result_queue_;
ASyncQueue<bool>* p_double_queue_;
void SendFeedBack(int OpID)
{
bool send_ng = false;
bool send_ok = false;
if (OpID == EdgeEvent)
{
#if defined DOUBLE_FEED_BACK
if (p_double_queue_->count() > 0)
{
bool temp;
p_double_queue_->take(temp);
send_ng = true;
}
#endif
}
if (p_result_queue_->count() > 0)
{
bool result;
p_result_queue_->take(result);
if (!result)
{
#if defined DOUBLE_FEED_BACK
p_double_queue_->put(true);
#endif
send_ng = true;
}
else
{
send_ok = true;
}
}
try
{
mvIMPACT::acquire::GenICam::DigitalIOControl mvDIOC(m_pMVCamera);
if (send_ng) {
mvDIOC.userOutputSelector.writeS("UserOutput0");
mvIMPACT::acquire::TBoolean tb = mvDIOC.userOutputValue.read();
if (tb == bFalse)
mvDIOC.userOutputValue.write(bTrue);
else
mvDIOC.userOutputValue.write(bFalse);
}
else if (send_ok)
{
mvDIOC.userOutputSelector.writeS("UserOutput1");
mvIMPACT::acquire::TBoolean tb = mvDIOC.userOutputValue.read();
if (tb == bFalse)
mvDIOC.userOutputValue.write(bTrue);
else
mvDIOC.userOutputValue.write(bFalse);
}
}
catch (const ImpactAcquireException& e)
{
std::cout << "(error code: " << e.getErrorCodeAsString() << "). Press [ENTER] to end the application..." << std::endl;
}
}
};
class CaptureThread : public QObject
//-----------------------------------------------------------------------------
{
Q_OBJECT
public:
explicit CaptureThread(Device* pCurrDev, bool boTerminated, FunctionInterface* pFi, int Num);
CaptureThread::~CaptureThread(void);
void terminate(void)
{
boTerminated_ = true;
}
int getPendingRequestNr();
signals:
void error(QString err);
void finished(void);
void requestReady(void);
void updateStatistics(const QString& data, int Num);
private slots:
void process(void);
void fpsTimeout(void);
public:
int Local_Num;
QTimer* m_Timer;
uint64_t m_cntGrabbedImages = 0;
uint64_t m_cntLastGrabbedImages = 0;
#ifdef SYNC_CAMERA
ImageSyncArr* p_image_sync_arr;
SyncQueue<std::vector<std::pair<int, cv::Mat>>>* p_image_sync_queue;
#else
SyncQueue<std::pair<int, cv::Mat> >* p_image_queue;
#endif
ASyncQueue<cv::Mat>* p_unit_queue;
ASyncQueue<bool>* p_result_queue;
ASyncQueue<bool>* p_result_wait_queue;
ASyncQueue<bool>* p_double_queue;
ASyncQueue<bool>* p_shooted_queue;
SyncQueue<cv::Mat>* p_debug_queue;
bool Ready = false;
CaptureThread_Func m_threadFunc;
private:
Device* pDev_;
volatile bool boTerminated_;
int requestPendingForDisplay_;
FunctionInterface* pFI_;
QMutex lock_;
};
//=============================================================================
//================= Camera's property callback ================================
//=============================================================================
class EventCallback : public mvIMPACT::acquire::ComponentCallback
{
public:
ASyncQueue<cv::Mat>* p_unit_queue_;
#ifdef SYNC_CAMERA
ImageSyncArr* p_image_sync_arr_;
SyncQueue<std::vector<std::pair<int, cv::Mat>>>* p_image_sync_queue_;
#else
SyncQueue<std::pair<int, cv::Mat> >* p_image_queue_;
#endif
ASyncQueue<bool>* p_result_wait_queue_;
ASyncQueue<bool>* p_shooted_queue_;
ASyncQueue<bool>* p_double_queue_;
explicit EventCallback(void* pUserData = 0) : ComponentCallback(pUserData) {}
Device* m_pMVCamera;
CaptureThread* pCaptureThread = NULL;
int count = 0;
virtual void execute(Component& c, void* pUserData)
{
try
{
// re-generating the object/data previously attached to the callback object. This could now be used to call a certain member function e.g. to update a class instance about this event!
mvIMPACT::acquire::GenICam::EventControl* ec = reinterpret_cast<mvIMPACT::acquire::GenICam::EventControl*>(pUserData);
// Execute the followings if the component is a property.
if (c.isProp())
{
mvIMPACT::acquire::GenICam::DigitalIOControl mvDIOC(m_pMVCamera);
mvDIOC.lineSelector.writeS("Line5");
if (mvDIOC.lineStatus.read())
{
#ifdef IMM_FEED_BACK
if (p_shooted_queue_->count() > 0)
{
bool temp;
p_shooted_queue_->take(temp);
}
#elif defined ONE_TIME_SHIFT
if (
p_shooted_queue_->count() > 0
#if defined DOUBLE_FEED_BACK
|| p_double_queue_->count() > 0
#endif
)
{
if (p_shooted_queue_->count() > 0) {
bool temp;
p_shooted_queue_->take(temp);
}
pCaptureThread->m_threadFunc.SendFeedBack(EdgeEvent);
}
#else
if (p_result_wait_queue_->count() > 0)
{
bool temp;
p_result_wait_queue_->take(temp);
pCaptureThread->m_threadFunc.SendFeedBack(EdgeEvent);
}
if (p_shooted_queue_->count() > 0)
{
bool temp;
p_shooted_queue_->take(temp);
p_result_wait_queue_->put(true);
}
#endif
}
else
{
int unit_count = p_unit_queue_->count();
if (unit_count > 0)
{
cv::Mat long_image;
for (int i = 0; i < unit_count; i++)
{
cv::Mat image;
p_unit_queue_->take(image);
if (0 == i)
{
long_image = cv::Mat::zeros(image.rows * unit_count, image.cols, image.type());
}
cv::Rect r(0, i * image.rows, image.cols, image.rows);
cv::Mat roi = long_image(r);
image.copyTo(roi);
}
#ifdef SYNC_CAMERA
{
std::lock_guard<std::mutex> locker(p_image_sync_arr_->lock);
p_image_sync_arr_->image_sync_arr.at(pCaptureThread->Local_Num) = std::make_pair(unit_count, long_image);
p_image_sync_arr_->collect_cnt++;
if (p_image_sync_arr_->collect_cnt == work_camera_nums)
{
p_image_sync_queue_->put(p_image_sync_arr_->image_sync_arr);
p_image_sync_arr_->collect_cnt = 0;
}
}
#else
p_image_queue_->put(std::make_pair(unit_count, long_image));
#endif
p_shooted_queue_->put(true);
}
p_unit_queue_->clear();
}
}
}
catch (const ImpactAcquireException& e)
{
qDebug() << "Error";
}
}
};
class CIwtCameraLostCallbackMV : public mvIMPACT::acquire::ComponentCallback
{
public:
CIwtCameraLostCallbackMV() : ComponentCallback() {}
int channel_;
virtual void execute(mvIMPACT::acquire::Component& c, void* pDummy)
{
PropertyIDeviceState p(c);
std::cout << p.name() << " = " << p.readS() << endl;
SingleCamInfo[channel_].OffLine = true;
}
};
//-----------------------------------------------------------------------------
#endif // CaptureThreadH

@ -0,0 +1,207 @@
#include "CaptureThreadBasler.h"
#include <QtWidgets/QApplication>
#include "PLCDevice.h"
#include "common.h"
#include <qdebug.h>
#include <exportData.h>
extern SyncQueue<_XMLExportDataInfo>* export_XMLData_Info_queue;
extern PLCDevice* m_PLCDevice;
//-----------------------------------------------------------------------------
CaptureThreadBasler::CaptureThreadBasler(Pylon::CBaslerUniversalInstantCamera* pCurrDev, bool boTerminated, int Num, int shoot) :
pDev_(pCurrDev), boTerminated_(boTerminated), Local_Num(Num)
//-----------------------------------------------------------------------------
{
p_unit_queue = new ASyncQueue<cv::Mat>(Unit_Queue_Size);
Shoot_Num = shoot;
}
CaptureThreadBasler::~CaptureThreadBasler()
{
delete p_unit_queue;
}
//-----------------------------------------------------------------------------
void CaptureThreadBasler::process(void)
//-----------------------------------------------------------------------------
{
bool last_high = false;
bool last_result = false;
CSampleConfigurationEventHandler* CfgEvent = NULL;
CfgEvent = new CSampleConfigurationEventHandler;
CfgEvent->channel_ = Local_Num;
pDev_->RegisterConfiguration(CfgEvent, Pylon::RegistrationMode_Append, Pylon::Cleanup_None);
CSampleImageEventHandler ImageEvent;
#ifdef SYNC_CAMERA
ImageEvent.p_image_sync_arr_ = p_image_sync_arr;
ImageEvent.p_image_sync_queue_ = p_image_sync_queue;
#else
ImageEvent.p_image_queue_ = p_image_queue;
#endif
ImageEvent.p_unit_queue_ = p_unit_queue;
ImageEvent.p_shooted_queue_ = p_shooted_queue;
ImageEvent.p_debug_queue_ = p_debug_queue;
ImageEvent.m_cntGrabbedImages_ = &m_cntGrabbedImages;
ImageEvent.Shoot_Num_ = Shoot_Num;
ImageEvent.pDev__ = pDev_;
pDev_->RegisterImageEventHandler(&ImageEvent, Pylon::RegistrationMode_Append, Pylon::Cleanup_None);
CSampleCameraEventHandler BurstEvent;
#ifdef SYNC_CAMERA
BurstEvent.p_image_sync_arr_ = p_image_sync_arr;
BurstEvent.p_image_sync_queue_ = p_image_sync_queue;
#else
BurstEvent.p_image_queue_ = p_image_queue;
#endif
BurstEvent.p_unit_queue_ = p_unit_queue;
BurstEvent.p_result_wait_queue_ = p_result_wait_queue;
BurstEvent.p_result_queue_ = p_result_queue;
BurstEvent.p_shooted_queue_ = p_shooted_queue;
BurstEvent.p_double_queue_ = p_double_queue;
BurstEvent.pDev__ = pDev_;
BurstEvent.pCaptureThreadBasler = this;
try
{
m_threadFunc.pDev__ = pDev_;
m_threadFunc.p_result_queue_ = p_result_queue;
m_threadFunc.p_double_queue_ = p_double_queue;
m_threadFunc.m_IOTimer_ = m_IOTimer;
#ifndef USB_BASLER_NEW_FW
if (pDev_->TriggerSelector.TrySetValue(Basler_UniversalCameraParams::TriggerSelector_FrameBurstStart))
{
pDev_->TriggerMode.SetValue(Basler_UniversalCameraParams::TriggerMode_On);
pDev_->TriggerSource.SetValue(Basler_UniversalCameraParams::TriggerSource_Line1);
pDev_->TriggerActivation.SetValue(Basler_UniversalCameraParams::TriggerActivation_RisingEdge);
pDev_->AcquisitionBurstFrameCount.SetValue(Shoot_Num);
if (pDev_->EventSelector.TrySetValue(Basler_UniversalCameraParams::EventSelector_FrameBurstStart))
{
if (!pDev_->EventNotification.TrySetValue(Basler_UniversalCameraParams::EventNotification_On))
{
pDev_->EventNotification.SetValue(Basler_UniversalCameraParams::EventNotification_GenICamEvent);
}
m_IOTimer = new QTimer();
connect(m_IOTimer, SIGNAL(timeout()), this, SLOT(ioTimeout()));
m_IOTimer->setSingleShot(true);
BurstEvent.ioTimer = m_IOTimer;
pDev_->RegisterCameraEventHandler(&BurstEvent, "EventFrameBurstStartData", eMyFrameBurstStartEvent, Pylon::RegistrationMode_Append, Pylon::Cleanup_None);
}
if (pDev_->EventSelector.TrySetValue("Line1RisingEdge"))
{
pDev_->EventNotification.SetValue(Basler_UniversalCameraParams::EventNotification_Off);
}
if (pDev_->EventSelector.TrySetValue("Line1FallingEdge"))
{
pDev_->EventNotification.SetValue(Basler_UniversalCameraParams::EventNotification_Off);
}
}
#else
/*Set here*/
if (pDev_->TriggerSelector.TrySetValue(Basler_UniversalCameraParams::TriggerSelector_FrameBurstStart))
{
pDev_->TriggerMode.SetValue(Basler_UniversalCameraParams::TriggerMode_Off);
if (pDev_->EventSelector.TrySetValue(Basler_UniversalCameraParams::EventSelector_FrameBurstStart))
{
pDev_->EventNotification.SetValue(Basler_UniversalCameraParams::EventNotification_Off);
}
}
pDev_->RegisterCameraEventHandler(&BurstEvent, "EventLine1RisingEdgeData", Line1RisingEdge, Pylon::RegistrationMode_Append, Pylon::Cleanup_None);
pDev_->EventSelector.SetValue("Line1RisingEdge");
#ifdef IMM_PROCESS
pDev_->EventNotification.SetValue(Basler_UniversalCameraParams::EventNotification_Off);
#else
pDev_->EventNotification.SetValue(Basler_UniversalCameraParams::EventNotification_On);
#endif
pDev_->RegisterCameraEventHandler(&BurstEvent, "EventLine1FallingEdgeData", Line1FallingEdge, Pylon::RegistrationMode_Append, Pylon::Cleanup_None);
pDev_->EventSelector.SetValue("Line1FallingEdge");
#ifdef IMM_PROCESS
pDev_->EventNotification.SetValue(Basler_UniversalCameraParams::EventNotification_Off);
#else
pDev_->EventNotification.SetValue(Basler_UniversalCameraParams::EventNotification_On);
#endif
#endif
const unsigned int timeout_ms = 100;
// This smart pointer will receive the grab result data.
Pylon::CGrabResultPtr ptrGrabResult;
pDev_->StartGrabbing();
m_Timer = new QTimer();
connect(m_Timer, SIGNAL(timeout()), this, SLOT(fpsTimeout()));
m_Timer->start(1000);
Ready = true;
while (!boTerminated_)
{
// Retrieve grab results and notify the camera event and image event handlers.
pDev_->RetrieveResult(timeout_ms, ptrGrabResult, Pylon::TimeoutHandling_Return);
#if defined (IMM_FEED_BACK) || defined (CAP_FEED_BACK)
m_threadFunc.SendFeedBack(ImageCap);
#endif
QCoreApplication::processEvents();//Make sure the timer is triggered
}
#ifndef USB_BASLER_NEW_FW
// Disable sending Event Overrun events.
if (pDev_->EventSelector.TrySetValue(Basler_UniversalCameraParams::EventSelector_FrameBurstStart))
{
pDev_->EventNotification.TrySetValue(Basler_UniversalCameraParams::EventNotification_Off);
}
if (m_IOTimer) delete m_IOTimer;
#endif
if (m_Timer) delete m_Timer;
pDev_->StopGrabbing();
pDev_->Close();
pDev_->DeregisterConfiguration(CfgEvent);
pDev_->DeregisterImageEventHandler(&ImageEvent);
#ifndef USB_BASLER_NEW_FW
pDev_->DeregisterCameraEventHandler(&BurstEvent, "EventFrameBurstStartData");
#else
pDev_->DeregisterCameraEventHandler(&BurstEvent, "EventLine1RisingEdgeData");
pDev_->DeregisterCameraEventHandler(&BurstEvent, "EventLine1FallingEdgeData");
#endif
}
catch (const Pylon::GenericException& e)
{
emit error(QString::fromStdString(e.GetDescription()));
std::cout << e.GetSourceLine() << e.GetDescription() << std::endl;
if (pDev_->IsCameraDeviceRemoved())
{
cout << "The camera has been removed from the computer." << endl;
}
else
{
pDev_->StopGrabbing();
pDev_->GrabCameraEvents = false;
pDev_->Close();
pDev_->DeregisterConfiguration(CfgEvent);
pDev_->DeregisterImageEventHandler(&ImageEvent);
#ifndef USB_BASLER_NEW_FW
pDev_->DeregisterCameraEventHandler(&BurstEvent, "EventFrameBurstStartData");
#else
pDev_->DeregisterCameraEventHandler(&BurstEvent, "EventLine1RisingEdgeData");
pDev_->DeregisterCameraEventHandler(&BurstEvent, "EventLine1FallingEdgeData");
#endif
}
}
}
void CaptureThreadBasler::fpsTimeout()
{
uint64_t delta = m_cntGrabbedImages - m_cntLastGrabbedImages;
m_cntLastGrabbedImages = m_cntGrabbedImages;
QString data = QString("%1").arg(delta);
emit updateStatistics(data.left(4), Local_Num);
}
void CaptureThreadBasler::ioTimeout()
{
pDev_->UserOutputSelector.SetValue(Basler_UniversalCameraParams::UserOutputSelector_UserOutput1);
pDev_->UserOutputValue.SetValue(false);
pDev_->UserOutputSelector.SetValue(Basler_UniversalCameraParams::UserOutputSelector_UserOutput3);
pDev_->UserOutputValue.SetValue(false);
}

@ -0,0 +1,388 @@
//-----------------------------------------------------------------------------
#ifndef CaptureThreadBaslerH
#define CaptureThreadBaslerH CaptureThreadBaslerH
//-----------------------------------------------------------------------------
#include "baslercamera.h"
#include <QThread>
#include <QMutex>
#include <QTimer>
#include <qdebug.h>
#include "SyncQueue.h"
#include "ASyncQueue.h"
#include "common.h"
#include <opencv2/opencv.hpp>
extern bool g_debug_mode;
extern int work_camera_nums;
extern SingleCamInfoStruct SingleCamInfo[NumberOfSupportedCameras];
enum MyEvents
{
eMyFrameBurstStartEvent = 100,
Line1RisingEdge = 200,
Line1FallingEdge = 300
// More events can be added here.
};
class CaptureThreadBasler_Func
{
public:
Pylon::CBaslerUniversalInstantCamera* pDev__;
ASyncQueue<bool>* p_result_queue_;
ASyncQueue<bool>* p_double_queue_;
QTimer* m_IOTimer_ = NULL;
void SendFeedBack(int OpID)
{
bool send_ng = false;
bool send_ok = false;
if (OpID == EdgeEvent)
{
#if defined DOUBLE_FEED_BACK
if (p_double_queue_->count() > 0)
{
bool temp;
p_double_queue_->take(temp);
send_ng = true;
}
#endif
}
if (p_result_queue_->count() > 0)
{
bool result;
p_result_queue_->take(result);
if (!result) {
#if defined DOUBLE_FEED_BACK
p_double_queue_->put(true);
#endif
send_ng = true;
}
else
{
send_ok = true;
}
}
#ifndef USB_BASLER_NEW_FW
if (send_ng) {
pDev__->UserOutputSelector.SetValue(Basler_UniversalCameraParams::UserOutputSelector_UserOutput3);
pDev__->UserOutputValue.SetValue(true);
}
else if (send_ok) {
pDev__->UserOutputSelector.SetValue(Basler_UniversalCameraParams::UserOutputSelector_UserOutput1);
pDev__->UserOutputValue.SetValue(true);
}
m_IOTimer_->start(StrobeLineTime / 2000);
#else
if (send_ng) {
pDev__->UserOutputSelector.SetValue(Basler_UniversalCameraParams::UserOutputSelector_UserOutput3);
pDev__->UserOutputValue.SetValue(false);
pDev__->UserOutputValue.SetValue(true);
}
else if (send_ok) {
pDev__->UserOutputSelector.SetValue(Basler_UniversalCameraParams::UserOutputSelector_UserOutput1);
pDev__->UserOutputValue.SetValue(false);
pDev__->UserOutputValue.SetValue(true);
}
#endif
}
};
//-----------------------------------------------------------------------------
class CaptureThreadBasler : public QObject
{
Q_OBJECT
public:
explicit CaptureThreadBasler(Pylon::CBaslerUniversalInstantCamera* pCurrDev, bool boTerminated, int Num, int shoot);
CaptureThreadBasler::~CaptureThreadBasler(void);
void terminate(void)
{
boTerminated_ = true;
}
signals:
void error(QString err);
void finished(void);
void requestReady(void);
void updateStatistics(const QString& data, int Num);
private slots:
void process(void);
void fpsTimeout(void);
void ioTimeout(void);
public:
int Local_Num;
int Shoot_Num;
#ifdef SYNC_CAMERA
ImageSyncArr* p_image_sync_arr;
SyncQueue<std::vector<std::pair<int, cv::Mat>>>* p_image_sync_queue;
#else
SyncQueue<std::pair<int, cv::Mat> >* p_image_queue;
#endif
ASyncQueue<cv::Mat>* p_unit_queue;
ASyncQueue<bool>* p_result_queue;
ASyncQueue<bool>* p_result_wait_queue;
ASyncQueue<bool>* p_double_queue;
ASyncQueue<bool>* p_shooted_queue;
SyncQueue<cv::Mat>* p_debug_queue;
QTimer* m_Timer = NULL, * m_IOTimer = NULL;
uint64_t m_cntGrabbedImages = 0;
uint64_t m_cntLastGrabbedImages = 0;
bool Ready = false;
CaptureThreadBasler_Func m_threadFunc;
private:
Pylon::CBaslerUniversalInstantCamera* pDev_;
volatile bool boTerminated_;
QMutex lock_;
};
//-----------------------------------------------------------------------------
class CSampleConfigurationEventHandler : public Pylon::CBaslerUniversalConfigurationEventHandler //CConfigurationEventHandler
{
public:
int channel_;
// This method is called from a different thread when the camera device removal has been detected.
void OnCameraDeviceRemoved(Pylon::CBaslerUniversalInstantCamera& camera)
{
SingleCamInfo[channel_].OffLine = true;
}
};
// Example handler for camera events.
class CSampleCameraEventHandler : public Pylon::CBaslerUniversalCameraEventHandler
{
public:
QTimer* ioTimer;
ASyncQueue<cv::Mat>* p_unit_queue_;
ASyncQueue<bool>* p_result_wait_queue_;
ASyncQueue<bool>* p_result_queue_;
ASyncQueue<bool>* p_double_queue_;
ASyncQueue<bool>* p_shooted_queue_;
#ifdef SYNC_CAMERA
ImageSyncArr* p_image_sync_arr_;
SyncQueue<std::vector<std::pair<int, cv::Mat>>>* p_image_sync_queue_;
#else
SyncQueue<std::pair<int, cv::Mat> >* p_image_queue_;
#endif
Pylon::CBaslerUniversalInstantCamera* pDev__;
CaptureThreadBasler* pCaptureThreadBasler = NULL;
// Only very short processing tasks should be performed by this method. Otherwise, the event notification will block the
// processing of images.
virtual void OnCameraEvent(Pylon::CBaslerUniversalInstantCamera& camera, intptr_t userProvidedId, GenApi::INode* pNode)
{
switch (userProvidedId)
{
#ifndef USB_BASLER_NEW_FW
case eMyFrameBurstStartEvent:
{
#ifdef IMM_FEED_BACK
if (p_shooted_queue_->count() > 0)
{
bool temp;
p_shooted_queue_->take(temp);
}
#elif defined ONE_TIME_SHIFT
if (
p_shooted_queue_->count() > 0
#if defined DOUBLE_FEED_BACK
|| p_double_queue_->count() > 0
#endif
)
{
if (p_shooted_queue_->count() > 0) {
bool temp;
p_shooted_queue_->take(temp);
}
pCaptureThreadBasler->m_threadFunc.SendFeedBack(EdgeEvent);
}
#else
if (p_unit_queue_->count() > 0) {
int unit_count = p_unit_queue_->count();
cv::Mat long_image;
for (int i = 0; i < unit_count; i++)
{
cv::Mat image;
p_unit_queue_->take(image);
if (0 == i)
{
long_image = cv::Mat::zeros(image.rows * unit_count, image.cols, image.type());
}
cv::Rect r(0, i * image.rows, image.cols, image.rows);
cv::Mat roi = long_image(r);
image.copyTo(roi);
}
p_image_queue_->put(std::make_pair(unit_count, long_image));
p_shooted_queue_->put(true);
p_unit_queue_->clear();
}
if (p_result_wait_queue_->count() > 0)
{
bool temp;
p_result_wait_queue_->take(temp);
pCaptureThreadBasler->m_threadFunc.SendFeedBack(EdgeEvent);
}
if (p_shooted_queue_->count() > 0)
{
bool temp;
p_shooted_queue_->take(temp);
p_result_wait_queue_->put(true);
}
#endif
break;
}
#else
case Line1RisingEdge:
{
#ifdef IMM_FEED_BACK
if (p_shooted_queue_->count() > 0)
{
bool temp;
p_shooted_queue_->take(temp);
}
#elif defined ONE_TIME_SHIFT
if (
p_shooted_queue_->count() > 0
#if defined DOUBLE_FEED_BACK
|| p_double_queue_->count() > 0
#endif
)
{
bool temp;
p_shooted_queue_->take(temp);
pCaptureThreadBasler->m_threadFunc.SendFeedBack(EdgeEvent);
}
#else
if (p_result_wait_queue_->count() > 0)
{
bool temp;
p_result_wait_queue_->take(temp);
pCaptureThreadBasler->m_threadFunc.SendFeedBack(EdgeEvent);
}
if (p_shooted_queue_->count() > 0)
{
bool temp;
p_shooted_queue_->take(temp);
p_result_wait_queue_->put(true);
}
#endif
break;
}
case Line1FallingEdge:
{
int unit_count = p_unit_queue_->count();
if (unit_count > 0)
{
cv::Mat long_image;
for (int i = 0; i < unit_count; i++)
{
cv::Mat image;
p_unit_queue_->take(image);
if (0 == i)
{
long_image = cv::Mat::zeros(image.rows * unit_count, image.cols, image.type());
}
cv::Rect r(0, i * image.rows, image.cols, image.rows);
cv::Mat roi = long_image(r);
image.copyTo(roi);
}
#ifdef SYNC_CAMERA
{
std::lock_guard<std::mutex> locker(p_image_sync_arr_->lock);
p_image_sync_arr_->image_sync_arr.at(pCaptureThreadBasler->Local_Num) = std::make_pair(unit_count, long_image);
p_image_sync_arr_->collect_cnt++;
if (p_image_sync_arr_->collect_cnt == work_camera_nums)
{
p_image_sync_queue_->put(p_image_sync_arr_->image_sync_arr);
p_image_sync_arr_->collect_cnt = 0;
}
}
#else
p_image_queue_->put(std::make_pair(unit_count, long_image));
#endif
p_shooted_queue_->put(true);
}
p_unit_queue_->clear();
break;
}
#endif
default:
break;
}
}
};
class CSampleImageEventHandler : public Pylon::CBaslerUniversalImageEventHandler
{
public:
ASyncQueue<cv::Mat>* p_unit_queue_;
#ifdef SYNC_CAMERA
ImageSyncArr* p_image_sync_arr_;
SyncQueue<std::vector<std::pair<int, cv::Mat>>>* p_image_sync_queue_;
#else
SyncQueue<std::pair<int, cv::Mat> >* p_image_queue_;
#endif
SyncQueue<cv::Mat>* p_debug_queue_;
ASyncQueue<bool>* p_shooted_queue_;
Pylon::CBaslerUniversalInstantCamera* pDev__;
uint64_t* m_cntGrabbedImages_;
int Shoot_Num_;
virtual void OnImageGrabbed(Pylon::CBaslerUniversalInstantCamera& camera, const Pylon::CBaslerUniversalGrabResultPtr& ptrGrabResult)
{
// Create a pylon ImageFormatConverter object.
Pylon::CImageFormatConverter formatConverter;
// Specify the output pixel format.
formatConverter.OutputPixelFormat = Pylon::PixelType_Mono8;
cv::Mat openCvImage;
// Create a PylonImage that will be used to create OpenCV images later.
Pylon::CPylonImage pylonImage;
// Convert the grabbed buffer to a pylon image.
formatConverter.Convert(pylonImage, ptrGrabResult);
// Create an OpenCV image from a pylon image.
openCvImage = cv::Mat(ptrGrabResult->GetHeight(), ptrGrabResult->GetWidth(), CV_8UC1, (uint8_t*)pylonImage.GetBuffer());
cv::Mat image_clone = openCvImage.clone();
if (!g_debug_mode)
{
#ifdef IMM_PROCESS
p_image_queue_->put(std::make_pair(1, image_clone));
#else
p_unit_queue_->put(image_clone);
#endif
}
else
{
p_debug_queue_->put(image_clone);
}
(*m_cntGrabbedImages_)++;
#ifndef IMM_PROCESS
#ifndef USB_BASLER_NEW_FW
int unit_count = p_unit_queue_->count();
if (unit_count == Shoot_Num_)
{
cv::Mat long_image;
for (int i = 0; i < unit_count; i++)
{
cv::Mat image;
p_unit_queue_->take(image);
if (0 == i)
{
long_image = cv::Mat::zeros(image.rows * unit_count, image.cols, image.type());
}
cv::Rect r(0, i * image.rows, image.cols, image.rows);
cv::Mat roi = long_image(r);
image.copyTo(roi);
}
p_image_queue_->put(std::make_pair(unit_count, long_image));
p_shooted_queue_->put(true);
DEBUG(" unit_count\n");
p_unit_queue_->clear();
}
#endif
#endif
}
};
#endif // CaptureThreadBasler

@ -0,0 +1,331 @@
#include "CaptureThreadHIK.h"
#include <QtWidgets/QApplication>
#include "PLCDevice.h"
#include "common.h"
#include <windows.h>
#include "exportData.h"
extern bool g_debug_mode; //相机调试模式,工作模式必须停止状态才能打开
extern SingleCamInfoStruct SingleCamInfo[NumberOfSupportedCameras];
extern SyncQueue<_XMLExportDataInfo>* export_XMLData_Info_queue;
extern PLCDevice* m_PLCDevice;
extern int work_camera_nums;
#ifdef __TCPSend
extern SyncQueue<_TCPSendInfo>* TCP_Info_queue;
extern threadSendTCP tcpSendThread;
#endif
inline void LossCallBackfunction(unsigned int pData, void* pUser) {
try {
CaptureThreadHIK* CaptureThreadHIKptr = (CaptureThreadHIK*)pUser;
SingleCamInfo[CaptureThreadHIKptr->Local_Num].OffLine = true;
CaptureThreadHIKptr->terminate();
}
catch (...) {
std::cout << "LossCallBackfunction error" << std::endl;
}
}
inline void FallingGpioEventfunction(MV_EVENT_OUT_INFO* pEventInfo, void* pUser) {
try {
CaptureThreadHIK* CaptureThreadHIKptr = (CaptureThreadHIK*)pUser;
int unit_count = CaptureThreadHIKptr->p_unit_queue->count();
if (unit_count > 0)
{
cv::Mat long_image;
for (int i = 0; i < unit_count; i++)
{
cv::Mat image;
CaptureThreadHIKptr->p_unit_queue->take(image);
if (0 == i)
{
long_image = cv::Mat::zeros(image.rows * unit_count, image.cols, image.type());
}
cv::Rect r(0, i * image.rows, image.cols, image.rows);
cv::Mat roi = long_image(r);
image.copyTo(roi);
}
#ifdef SYNC_CAMERA
{//合并所有相机图片放入队列
std::lock_guard<std::mutex> locker(CaptureThreadHIKptr->p_image_sync_arr->lock);
CaptureThreadHIKptr->p_image_sync_arr->image_sync_arr.at(CaptureThreadHIKptr->Local_Num) = std::make_pair(unit_count, long_image);
CaptureThreadHIKptr->p_image_sync_arr->collect_cnt++;
if (CaptureThreadHIKptr->p_image_sync_arr->collect_cnt == work_camera_nums)
{
CaptureThreadHIKptr->p_image_sync_queue->put(CaptureThreadHIKptr->p_image_sync_arr->image_sync_arr);
CaptureThreadHIKptr->p_image_sync_arr->collect_cnt = 0;
}
}
#else
CaptureThreadHIKptr->p_image_queue->put(std::make_pair(unit_count, long_image));
#endif
CaptureThreadHIKptr->p_shooted_queue->put(true);
}
CaptureThreadHIKptr->p_unit_queue->clear();
}
catch (...) {
//std::cout << "FallingGpioEventfunction error" << std::endl;
std::exception_ptr p = std::current_exception();
try {
if (p)
std::rethrow_exception(p);
}
catch (const std::exception& e) {
qDebug() << "Caught an exception: " << e.what();
}
}
}
inline void RisingGpioEventfunction(MV_EVENT_OUT_INFO* pEventInfo, void* pUser) {
try {
CaptureThreadHIK* CaptureThreadHIKptr = (CaptureThreadHIK*)pUser;
#ifdef IMM_FEED_BACK
if (CaptureThreadHIKptr->p_shooted_queue->count() > 0)
{
bool temp;
CaptureThreadHIKptr->p_shooted_queue->take(temp);
}
#elif defined ONE_TIME_SHIFT
if (
CaptureThreadHIKptr->p_shooted_queue->count() > 0
#if defined DOUBLE_FEED_BACK
|| CaptureThreadHIKptr->p_double_queue->count() > 0
#endif
)
{
if (CaptureThreadHIKptr->p_shooted_queue->count() > 0) {
bool temp;
CaptureThreadHIKptr->p_shooted_queue->take(temp);
}
CaptureThreadHIKptr->m_threadFunc.SendFeedBack(EdgeEvent);
}
#else
if (CaptureThreadHIKptr->p_result_wait_queue->count() > 0)
{
bool temp;
CaptureThreadHIKptr->p_result_wait_queue->take(temp);
CaptureThreadHIKptr->m_threadFunc.SendFeedBack(EdgeEvent);
}
if (CaptureThreadHIKptr->p_shooted_queue->count() > 0)
{
bool temp;
CaptureThreadHIKptr->p_shooted_queue->take(temp);
CaptureThreadHIKptr->p_result_wait_queue->put(true);
}
#endif
}
catch (...) {
std::cout << "RisingGpioEventfunction error" << std::endl;
}
}
#define CaptureThreadHIK_init(a)\
void __stdcall LossCallBack##a(unsigned int pData, void* pUser){LossCallBackfunction(pData,pUser);}\
void __stdcall FallingGpioEvent##a(MV_EVENT_OUT_INFO* pEventInfo, void* pUser){FallingGpioEventfunction(pEventInfo,pUser);}\
void __stdcall RisingGpioEvent##a(MV_EVENT_OUT_INFO* pEventInfo, void* pUser){RisingGpioEventfunction(pEventInfo,pUser);}
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>0)
CaptureThreadHIK_init(1)
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>1)
CaptureThreadHIK_init(2)
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>2)
CaptureThreadHIK_init(3)
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>3)
CaptureThreadHIK_init(4)
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>4)
CaptureThreadHIK_init(5)
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>5)
CaptureThreadHIK_init(6)
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>6)
CaptureThreadHIK_init(7)
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>7)
CaptureThreadHIK_init(8)
#endif
void(*LossCallBack[NumberOfSupportedCameras])(unsigned int pData, void* pUser) = {
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>0)
LossCallBack1
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>1)
,LossCallBack2
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>2)
,LossCallBack3
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>3)
,LossCallBack4
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>4)
,LossCallBack5
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>5)
,LossCallBack6
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>6)
,LossCallBack7
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>7)
,LossCallBack8
#endif
};
void(*FallingGpioEvent[NumberOfSupportedCameras])(MV_EVENT_OUT_INFO* pEventInfo, void* pUser) = {
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>0)
FallingGpioEvent1
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>1)
,FallingGpioEvent2
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>2)
,FallingGpioEvent3
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>3)
,FallingGpioEvent4
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>4)
,FallingGpioEvent5
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>5)
,FallingGpioEvent6
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>6)
,FallingGpioEvent7
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>7)
,FallingGpioEvent8
#endif
};
void(*RisingGpioEvent[NumberOfSupportedCameras])(MV_EVENT_OUT_INFO* pEventInfo, void* pUser) = {
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>0)
RisingGpioEvent1
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>1)
,RisingGpioEvent2
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>2)
,RisingGpioEvent3
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>3)
,RisingGpioEvent4
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>4)
,RisingGpioEvent5
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>5)
,RisingGpioEvent6
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>6)
,RisingGpioEvent7
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>7)
,RisingGpioEvent8
#endif
};
void CaptureThreadHIK::fpsTimeout(void)//采集速度
{
uint64_t delta = m_cntGrabbedImages - m_cntLastGrabbedImages;
m_cntLastGrabbedImages = m_cntGrabbedImages;
QString data = QString("%1").arg(delta);
emit updateStatistics(data.left(4), Local_Num);
}
//-----------------------------------------------------------------------------
CaptureThreadHIK::CaptureThreadHIK(void* camhandle, bool boTerminated, int Num) :
CamHandle(camhandle), boTerminated_(boTerminated), Local_Num(Num)
//-----------------------------------------------------------------------------
{
p_unit_queue = new ASyncQueue<cv::Mat>(Unit_Queue_Size);
g_pImage_buf = (unsigned char*)malloc(3000 * 3000 * 3);
}
CaptureThreadHIK::~CaptureThreadHIK()
{
delete p_unit_queue;
free(g_pImage_buf);
}
//-----------------------------------------------------------------------------
void CaptureThreadHIK::process(void)
//-----------------------------------------------------------------------------
{
try {
int nRet = MV_OK, nnRet = MV_OK;
m_threadFunc.CamHandle_ = CamHandle;
m_threadFunc.p_result_queue_ = p_result_queue;
m_threadFunc.p_double_queue_ = p_double_queue;
nRet = MV_CC_RegisterExceptionCallBack(CamHandle, LossCallBack[Local_Num], this);
if (nRet) { std::cout << "can not register loss callback" << std::endl; nnRet = nRet; }
//#ifdef IMM_FEED_BACK ///不打开无反馈等( 延后一次两次用ifndef // 不延后用ifdef)
nRet = MV_CC_SetEnumValueByString(CamHandle, "EventSelector", "Line0FallingEdge");
if (nRet) { std::cout << "can not set EventSelector" << std::endl; nnRet = nRet; }
nRet = MV_CC_SetEnumValueByString(CamHandle, "EventNotification", "On");
if (nRet) { std::cout << "can not set EventNotification" << std::endl; nnRet = nRet; }
nRet = MV_CC_SetEnumValueByString(CamHandle, "EventSelector", "Line0RisingEdge");
if (nRet) { std::cout << "can not set EventSelector" << std::endl; nnRet = nRet; }
nRet = MV_CC_SetEnumValueByString(CamHandle, "EventNotification", "On");
if (nRet) { std::cout << "can not set EventNotification" << std::endl; nnRet = nRet; }
nRet = MV_CC_RegisterEventCallBackEx(CamHandle, "Line0FallingEdge", FallingGpioEvent[Local_Num], this);
if (nRet) { std::cout << "can not register GPIO callback" << std::endl; nnRet = nRet; }
nRet = MV_CC_RegisterEventCallBackEx(CamHandle, "Line0RisingEdge", RisingGpioEvent[Local_Num], this);
if (nRet) { std::cout << "can not register GPIO callback" << std::endl; nnRet = nRet; }
//#endif
m_Timer = new QTimer();
connect(m_Timer, SIGNAL(timeout()), this, SLOT(fpsTimeout()));
m_Timer->start(1000);
unsigned int nDataSize;
MVCC_INTVALUE_EX stIntValue = { 0 };
nRet = MV_CC_GetIntValueEx(CamHandle, "PayloadSize", &stIntValue);
if (nRet) { std::cout << "Get PayloadSize error" << std::endl; }
nDataSize = stIntValue.nCurValue * 3;///
MV_CC_StartGrabbing(CamHandle);
Ready = true;
while (!boTerminated_)//循环取流,拍照取图
{
//nRet = MV_CC_GetOneFrameTimeout(CamHandle, g_pImage_buf, nDataSize, &stFrameInfo, 200);
nRet = MV_CC_GetImageForBGR(CamHandle, g_pImage_buf, nDataSize, &stFrameInfo, 100);
if (MV_OK == nRet)
{
m_cntGrabbedImages++;
cv::Mat openCVImage(stFrameInfo.nHeight, stFrameInfo.nWidth, CV_8UC3, g_pImage_buf);
cv::Mat image_clone = openCVImage.clone();
if (!g_debug_mode)
{
#ifdef IMM_PROCESS
p_image_queue->put(std::make_pair(1, image_clone));
#else
p_unit_queue->put(image_clone); //放入临时队列
#endif
}
else
{
p_debug_queue->put(image_clone); //放入调试队列
}
}
#if defined (IMM_FEED_BACK) || defined (CAP_FEED_BACK)
m_threadFunc.SendFeedBack(ImageCap);
#endif
QCoreApplication::processEvents();//Make sure the timer is triggered
}
MV_CC_StopGrabbing(CamHandle);
MV_CC_CloseDevice(CamHandle);
delete m_Timer;
}
catch (cv::Exception& e) {
const char* err_msg = e.what();
std::cout << "exception caught: " << err_msg << std::endl;
}
}
//-----------------------------------------------------------------------------

@ -0,0 +1,107 @@
//-----------------------------------------------------------------------------
#ifndef CaptureThreadHIKH
#define CaptureThreadHIKH CaptureThreadHIKH
//-----------------------------------------------------------------------------
#include "hikcamera.h"
#include "common.h"
#include <QThread>
#include <QMutex>
#include <functional>
#include <QTimer>
#include "SyncQueue.h"
#include "ASyncQueue.h"
#include <opencv2/opencv.hpp>
class CaptureThreadHIK_Func
{
public:
void* CamHandle_;
ASyncQueue<bool>* p_result_queue_;
ASyncQueue<bool>* p_double_queue_;
void SendFeedBack(int OpID)
{
bool send_ng = false;
bool send_ok = false;
if (OpID == EdgeEvent)
{
#if defined DOUBLE_FEED_BACK
if (p_double_queue_->count() > 0)
{
bool temp;
p_double_queue_->take(temp);
send_ng = true;
}
#endif
}
if (p_result_queue_->count() > 0)
{
bool result;
p_result_queue_->take(result);
if (!result)
{
#if defined DOUBLE_FEED_BACK
p_double_queue_->put(true);
#endif
send_ng = true;
}
}
if (send_ng)
{
MV_CC_SetEnumValue(CamHandle_, "LineSelector", 1);
MV_CC_SetCommandValue(CamHandle_, "LineTriggerSoftware");
}
}
};
//-----------------------------------------------------------------------------
class CaptureThreadHIK : public QObject
//-----------------------------------------------------------------------------
{
Q_OBJECT
public:
explicit CaptureThreadHIK(void* camhandle, bool boTerminated, int Num);
CaptureThreadHIK::~CaptureThreadHIK(void);
void terminate(void)
{
boTerminated_ = true;
}
signals:
void error(QString err);
void finished(void);
void requestReady(void);
void updateStatistics(const QString& data, int Num);
private slots:
void process(void);
void fpsTimeout(void);
public:
int Local_Num;
#ifdef SYNC_CAMERA
ImageSyncArr* p_image_sync_arr;
SyncQueue<std::vector<std::pair<int, cv::Mat>>>* p_image_sync_queue;
#else
SyncQueue<std::pair<int, cv::Mat> >* p_image_queue;
#endif
ASyncQueue<cv::Mat>* p_unit_queue;
ASyncQueue<bool>* p_result_queue;
ASyncQueue<bool>* p_result_wait_queue;
ASyncQueue<bool>* p_double_queue;
ASyncQueue<bool>* p_shooted_queue;
SyncQueue<cv::Mat>* p_debug_queue;
void* CamHandle;
QTimer* m_Timer;
uint64_t m_cntGrabbedImages = 0;
uint64_t m_cntLastGrabbedImages = 0;
bool Ready = false;
CaptureThreadHIK_Func m_threadFunc;
private:
MV_FRAME_OUT_INFO_EX stFrameInfo;
unsigned char* g_pImage_buf;
volatile bool boTerminated_;
QMutex lock_;
};
#endif // CaptureThreadHIKH

File diff suppressed because one or more lines are too long

@ -0,0 +1,392 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{B12702AD-ABFB-343A-A199-8E24837244A3}</ProjectGuid>
<Keyword>QtVS_v304</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<QtMsBuild Condition="'$(QtMsBuild)'=='' OR !Exists('$(QtMsBuild)\qt.targets')">$(MSBuildProjectDirectory)\QtMsBuild</QtMsBuild>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Import Project="$(QtMsBuild)\qt_defaults.props" Condition="Exists('$(QtMsBuild)\qt_defaults.props')" />
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<QtModules>core;network;gui;widgets</QtModules>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QtInstall>5.15.2_msvc2019_64</QtInstall>
<QtModules>core;network;gui;widgets</QtModules>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<QtModules>core;network;gui;widgets</QtModules>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<QtInstall>5.15.2_msvc2019_64</QtInstall>
<QtModules>core;network;gui;widgets</QtModules>
</PropertyGroup>
<Target Name="QtMsBuildNotFound" BeforeTargets="CustomBuild;ClCompile" Condition="!Exists('$(QtMsBuild)\qt.targets') OR !Exists('$(QtMsBuild)\Qt.props')">
<Message Importance="High" Text="QtMsBuild: could not locate qt.targets, qt.props; project may not build correctly." />
</Target>
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(QtMsBuild)\Qt.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(QtMsBuild)\Qt.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(QtMsBuild)\Qt.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(QtMsBuild)\Qt.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>14.0.25431.1</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IncludePath>$(IncludePath)</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PreprocessorDefinitions>UNICODE;_UNICODE;WIN32;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;.\GeneratedFiles;.\GeneratedFiles\$(ConfigurationName);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Disabled</Optimization>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<QtMoc>
<ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription>
<DynamicSource>output</DynamicSource>
<QtMocDir>.\GeneratedFiles\$(ConfigurationName)</QtMocDir>
<QtMocFileName>moc_%(Filename).cpp</QtMocFileName>
</QtMoc>
<QtRcc>
<InitFuncName>%(Filename)</InitFuncName>
<Compression>default</Compression>
<NoCompression>true</NoCompression>
<ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription>
<QtRccDir>.\GeneratedFiles</QtRccDir>
<QtRccFileName>qrc_%(Filename).cpp</QtRccFileName>
</QtRcc>
<QtUic>
<ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription>
<QtUicDir>.\GeneratedFiles</QtUicDir>
<QtUicFileName>ui_%(Filename).h</QtUicFileName>
</QtUic>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>UNICODE;_UNICODE;WIN32;WIN64;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;.\GeneratedFiles;.\GeneratedFiles\$(ConfigurationName);G:\code_library\c\opencv\4.3\build-opencv-cpu\include;$(ProjectDir)MvIMPACT;$(ProjectDir)Pylon6.2\include;$(ProjectDir)Common;$(ProjectDir)modbus;$(ProjectDir)MVS3.2.1\Include;$(ProjectDir)PLC;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>MaxSpeed</Optimization>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<LanguageStandard>stdcpp14</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
<AdditionalLibraryDirectories>G:\code_library\c\opencv\4.3\build-opencv-cpu\x64\vc15\lib;$(ProjectDir)Pylon6.2\lib\Win64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<AdditionalDependencies>opencv_world430d.lib;modbus.lib;mvDeviceManager.lib;MvCameraControl.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<QtMoc>
<ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription>
<DynamicSource>output</DynamicSource>
<QtMocDir>.\GeneratedFiles\$(ConfigurationName)</QtMocDir>
<QtMocFileName>moc_%(Filename).cpp</QtMocFileName>
</QtMoc>
<QtRcc>
<InitFuncName>%(Filename)</InitFuncName>
<Compression>default</Compression>
<NoCompression>true</NoCompression>
<ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription>
<QtRccDir>.\GeneratedFiles</QtRccDir>
<QtRccFileName>qrc_%(Filename).cpp</QtRccFileName>
</QtRcc>
<QtUic>
<ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription>
<QtUicDir>.\GeneratedFiles</QtUicDir>
<QtUicFileName>ui_%(Filename).h</QtUicFileName>
</QtUic>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PreprocessorDefinitions>UNICODE;_UNICODE;WIN32;WIN64;QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;.\GeneratedFiles;.\GeneratedFiles\$(ConfigurationName);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat />
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<QtMoc>
<ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription>
<DynamicSource>output</DynamicSource>
<QtMocDir>.\GeneratedFiles\$(ConfigurationName)</QtMocDir>
<QtMocFileName>moc_%(Filename).cpp</QtMocFileName>
</QtMoc>
<QtRcc>
<InitFuncName>%(Filename)</InitFuncName>
<Compression>default</Compression>
<NoCompression>true</NoCompression>
<ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription>
<QtRccDir>.\GeneratedFiles</QtRccDir>
<QtRccFileName>qrc_%(Filename).cpp</QtRccFileName>
</QtRcc>
<QtUic>
<ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription>
<QtUicDir>.\GeneratedFiles</QtUicDir>
<QtUicFileName>ui_%(Filename).h</QtUicFileName>
</QtUic>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PreprocessorDefinitions>UNICODE;_UNICODE;WIN32;WIN64;QT_NO_DEBUG;NDEBUG;NOMINMAX;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;.\GeneratedFiles;.\GeneratedFiles\$(ConfigurationName);$(ProjectDir)MvIMPACT;$(ProjectDir)OpenCV455Simple\include;$(ProjectDir)Common;$(ProjectDir)Pylon6.2\include;$(ProjectDir)modbus;$(ProjectDir)MVS3.2.1\Include;$(ProjectDir)PLC;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<LanguageStandard>stdcpp14</LanguageStandard>
<Optimization>MaxSpeed</Optimization>
<SupportJustMyCode>false</SupportJustMyCode>
<DisableSpecificWarnings>4819;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
<AdditionalLibraryDirectories>$(ProjectDir)OpenCV455Simple\win64\vc15\lib;$(ProjectDir)Pylon6.2\lib\Win64;$(ProjectDir)MvIMPACT\lib\win64;$(ProjectDir)MVS3.2.1\lib\win64;$(ProjectDir)modbus;Ws2_32.lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<AdditionalDependencies>opencv_world455.lib;modbus.lib;mvDeviceManager.lib;MvCameraControl.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreSpecificDefaultLibraries>
</IgnoreSpecificDefaultLibraries>
</Link>
<QtMoc>
<ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription>
<DynamicSource>output</DynamicSource>
<QtMocDir>.\GeneratedFiles\$(ConfigurationName)</QtMocDir>
<QtMocFileName>moc_%(Filename).cpp</QtMocFileName>
</QtMoc>
<QtRcc>
<InitFuncName>%(Filename)</InitFuncName>
<Compression>default</Compression>
<NoCompression>true</NoCompression>
<ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription>
<QtRccDir>.\GeneratedFiles</QtRccDir>
<QtRccFileName>qrc_%(Filename).cpp</QtRccFileName>
</QtRcc>
<QtUic>
<ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription>
<QtUicDir>.\GeneratedFiles</QtUicDir>
<QtUicFileName>ui_%(Filename).h</QtUicFileName>
</QtUic>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="alarmdialog.cpp" />
<ClCompile Include="AlarmInfo.cpp" />
<ClCompile Include="alg_jd.cpp" />
<ClCompile Include="ASyncQueue.cpp" />
<ClCompile Include="balluffcamera.cpp" />
<ClCompile Include="basecamera.cpp" />
<ClCompile Include="baslercamera.cpp" />
<ClCompile Include="camera_glue.cpp" />
<ClCompile Include="CaptureThread.cpp" />
<ClCompile Include="CaptureThreadBasler.cpp" />
<ClCompile Include="CaptureThreadHIK.cpp" />
<ClCompile Include="change_shift.cpp" />
<ClCompile Include="cigarette.cpp" />
<ClCompile Include="Cleanthread.cpp" />
<ClCompile Include="common.cpp" />
<ClCompile Include="db_label.cpp" />
<ClCompile Include="debugthread.cpp" />
<ClCompile Include="dialogin.cpp" />
<ClCompile Include="dialogsetup.cpp" />
<ClCompile Include="dialogsetuppasswd.cpp" />
<ClCompile Include="exportData.cpp" />
<ClCompile Include="hikcamera.cpp" />
<ClCompile Include="Logthread.cpp" />
<ClCompile Include="main.cpp" />
<ClCompile Include="output_statistic.cpp" />
<ClCompile Include="plcsetup.cpp" />
<ClCompile Include="PLC\PLCDevice.cpp" />
<ClCompile Include="plc_item.cpp" />
<ClCompile Include="SyncQueue.cpp" />
<ClCompile Include="SyncWorkThread.cpp" />
<ClCompile Include="threadReceive.cpp" />
<ClCompile Include="threadSend.cpp" />
<ClCompile Include="threadSendTCP.cpp" />
<ClCompile Include="tinyxml2.cpp" />
<ClCompile Include="workthread.cpp" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="cigarette.h" />
</ItemGroup>
<ItemGroup>
<QtUic Include="cigarette.ui" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="FtpManager.h" />
<QtMoc Include="SyncWorkThread.h" />
<ClInclude Include="threadSendTCP.h" />
<ClInclude Include="tinyxml2.h" />
<QtMoc Include="threadReceive.h" />
<CustomBuild Include="threadSend.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</Command>
</CustomBuild>
<QtMoc Include="workthread.h" />
<QtMoc Include="alarmdialog.hpp" />
<ClInclude Include="AlarmInfo.h" />
<ClInclude Include="alg_jd.h" />
<ClInclude Include="ASyncQueue.h" />
<ClInclude Include="balluffcamera.h" />
<QtMoc Include="CaptureThread.h" />
<ClInclude Include="baslercamera.h" />
<QtMoc Include="CaptureThreadBasler.h" />
<QtMoc Include="CaptureThreadHIK.h" />
<QtMoc Include="camera_glue.h" />
<QtMoc Include="change_shift.h" />
<QtMoc Include="Cleanthread.h" />
<ClInclude Include="common.h" />
<QtMoc Include="plcsetup.hpp" />
<QtMoc Include="db_label.h" />
<QtMoc Include="debugthread.h" />
<QtMoc Include="dialogin.hpp" />
<QtMoc Include="exportData.h" />
<ClInclude Include="hikcamera.h" />
<QtMoc Include="output_statistic.h" />
<QtMoc Include="Logthread.h" />
<ClInclude Include="PLC\PLCDevice.h" />
<ClInclude Include="plc_item.h" />
<QtMoc Include="savethread.h" />
<ClInclude Include="SyncQueue.h" />
<QtMoc Include="dialogsetuppasswd.hpp" />
<QtMoc Include="dialogsetup.hpp" />
<ClInclude Include="basecamera.h" />
</ItemGroup>
<ItemGroup>
<QtRcc Include="cigarette.qrc" />
</ItemGroup>
<ItemGroup>
<QtUic Include="dialogsetuppasswd.ui" />
</ItemGroup>
<ItemGroup>
<QtUic Include="dialogsetup.ui" />
</ItemGroup>
<ItemGroup>
<QtUic Include="plcsetup.ui" />
</ItemGroup>
<ItemGroup>
<QtUic Include="alarmdialog.ui" />
</ItemGroup>
<ItemGroup>
<QtUic Include="dialogin.ui" />
</ItemGroup>
<ItemGroup>
<QtUic Include="camera_glue.ui" />
</ItemGroup>
<ItemGroup>
<QtUic Include="change_shift.ui" />
</ItemGroup>
<ItemGroup>
<QtUic Include="output_statistic.ui" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Import Project="$(QtMsBuild)\qt.targets" Condition="Exists('$(QtMsBuild)\qt.targets')" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<ProjectExtensions>
<VisualStudio>
<UserProperties />
</VisualStudio>
</ProjectExtensions>
</Project>

@ -0,0 +1,286 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;cxx;c;def</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h</Extensions>
</Filter>
<Filter Include="Form Files">
<UniqueIdentifier>{99349809-55BA-4b9d-BF79-8FDBB0286EB3}</UniqueIdentifier>
<Extensions>ui</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
<Extensions>qrc;*</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
<Filter Include="Generated Files">
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
<Extensions>moc;h;cpp</Extensions>
<SourceControlFiles>False</SourceControlFiles>
</Filter>
<Filter Include="Generated Files\Debug">
<UniqueIdentifier>{21a337b6-7c4c-4375-86e6-fb668dce746e}</UniqueIdentifier>
<Extensions>cpp;moc</Extensions>
<SourceControlFiles>False</SourceControlFiles>
</Filter>
<Filter Include="Generated Files\Release">
<UniqueIdentifier>{65773ffc-5f94-4329-b62b-afc0b9e58efa}</UniqueIdentifier>
<Extensions>cpp;moc</Extensions>
<SourceControlFiles>False</SourceControlFiles>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cigarette.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="dialogsetuppasswd.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="dialogsetup.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="basecamera.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="SyncQueue.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="alg_jd.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="balluffcamera.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="plcsetup.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="CaptureThread.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="plc_item.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="db_label.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="alarmdialog.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="AlarmInfo.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="common.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="debugthread.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="dialogin.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="ASyncQueue.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="baslercamera.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="workthread.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="CaptureThreadBasler.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="hikcamera.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="CaptureThreadHIK.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="PLC\PLCDevice.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="threadSend.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="camera_glue.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="change_shift.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="output_statistic.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Logthread.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Cleanthread.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="threadReceive.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="exportData.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="tinyxml2.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="threadSendTCP.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="SyncWorkThread.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<QtMoc Include="cigarette.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtUic Include="cigarette.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtRcc Include="cigarette.qrc">
<Filter>Resource Files</Filter>
</QtRcc>
<QtMoc Include="dialogsetuppasswd.hpp">
<Filter>Header Files</Filter>
</QtMoc>
<QtUic Include="dialogsetuppasswd.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtMoc Include="dialogsetup.hpp">
<Filter>Header Files</Filter>
</QtMoc>
<QtUic Include="dialogsetup.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtMoc Include="plcsetup.hpp">
<Filter>Header Files</Filter>
</QtMoc>
<QtUic Include="plcsetup.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtMoc Include="CaptureThread.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="db_label.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="alarmdialog.hpp">
<Filter>Header Files</Filter>
</QtMoc>
<QtUic Include="alarmdialog.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtMoc Include="debugthread.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="dialogin.hpp">
<Filter>Header Files</Filter>
</QtMoc>
<QtUic Include="dialogin.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtMoc Include="workthread.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="CaptureThreadBasler.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="savethread.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="CaptureThreadHIK.h">
<Filter>Header Files</Filter>
</QtMoc>
<CustomBuild Include="threadSend.h">
<Filter>Header Files</Filter>
</CustomBuild>
<QtMoc Include="camera_glue.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtUic Include="camera_glue.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtMoc Include="change_shift.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtUic Include="change_shift.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtMoc Include="output_statistic.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtUic Include="output_statistic.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtMoc Include="Logthread.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="Cleanthread.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="threadReceive.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="exportData.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="SyncWorkThread.h">
<Filter>Header Files</Filter>
</QtMoc>
</ItemGroup>
<ItemGroup>
<ClInclude Include="basecamera.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="SyncQueue.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="alg_jd.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="balluffcamera.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="common.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="plc_item.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="AlarmInfo.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="ASyncQueue.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="baslercamera.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="hikcamera.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="PLC\PLCDevice.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="tinyxml2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="FtpManager.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="threadSendTCP.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<QTDIR>C:\Qt\5.15.2\msvc2019_64</QTDIR>
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3bD:\Qt\5.15.2\msvc2019_64\bin%3b$(PATH)</LocalDebuggerEnvironment>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QTDIR>C:\Qt\5.15.2\msvc2019_64</QTDIR>
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3bD:\Qt\5.15.2\msvc2019_64\bin%3b$(PATH)</LocalDebuggerEnvironment>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<QtLastBackgroundBuild>2024-06-18T03:41:53.0670120Z</QtLastBackgroundBuild>
<QtTouchProperty>
</QtTouchProperty>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QtLastBackgroundBuild>2024-06-18T03:41:53.1118616Z</QtLastBackgroundBuild>
<QtTouchProperty>
</QtTouchProperty>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<QtLastBackgroundBuild>2024-06-18T03:41:53.3131922Z</QtLastBackgroundBuild>
<QtTouchProperty>
</QtTouchProperty>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<QtLastBackgroundBuild>2024-06-18T03:41:53.3450829Z</QtLastBackgroundBuild>
<QtTouchProperty>
</QtTouchProperty>
</PropertyGroup>
</Project>

@ -0,0 +1,60 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Qt_DEFINES_>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_WIDGETS_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB</Qt_DEFINES_>
<Qt_INCLUDEPATH_>C:\Users\FD\AppData\Local\Temp\iige4dcj.z1o;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include\QtWidgets;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include\QtGui;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include\QtANGLE;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include\QtNetwork;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include\QtCore;C:\Users\FD\AppData\Local\Temp\iige4dcj.z1o;/include;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\mkspecs\win32-msvc</Qt_INCLUDEPATH_>
<Qt_STDCPP_></Qt_STDCPP_>
<Qt_RUNTIME_>MultiThreadedDebugDLL</Qt_RUNTIME_>
<Qt_CL_OPTIONS_>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus</Qt_CL_OPTIONS_>
<Qt_LIBS_>C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\Qt5Widgetsd.lib;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\Qt5Guid.lib;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\Qt5Networkd.lib;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\Qt5Cored.lib;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\qtmaind.lib;shell32.lib</Qt_LIBS_>
<Qt_LINK_OPTIONS_>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'"</Qt_LINK_OPTIONS_>
<QMake_QT_SYSROOT_></QMake_QT_SYSROOT_>
<QMake_QT_INSTALL_PREFIX_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64</QMake_QT_INSTALL_PREFIX_>
<QMake_QT_INSTALL_ARCHDATA_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64</QMake_QT_INSTALL_ARCHDATA_>
<QMake_QT_INSTALL_DATA_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64</QMake_QT_INSTALL_DATA_>
<QMake_QT_INSTALL_DOCS_>C:/Qt/Qt5.14.2/Docs/Qt-5.14.2</QMake_QT_INSTALL_DOCS_>
<QMake_QT_INSTALL_HEADERS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/include</QMake_QT_INSTALL_HEADERS_>
<QMake_QT_INSTALL_LIBS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/lib</QMake_QT_INSTALL_LIBS_>
<QMake_QT_INSTALL_LIBEXECS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/bin</QMake_QT_INSTALL_LIBEXECS_>
<QMake_QT_INSTALL_BINS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/bin</QMake_QT_INSTALL_BINS_>
<QMake_QT_INSTALL_TESTS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/tests</QMake_QT_INSTALL_TESTS_>
<QMake_QT_INSTALL_PLUGINS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/plugins</QMake_QT_INSTALL_PLUGINS_>
<QMake_QT_INSTALL_IMPORTS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/imports</QMake_QT_INSTALL_IMPORTS_>
<QMake_QT_INSTALL_QML_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/qml</QMake_QT_INSTALL_QML_>
<QMake_QT_INSTALL_TRANSLATIONS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/translations</QMake_QT_INSTALL_TRANSLATIONS_>
<QMake_QT_INSTALL_CONFIGURATION_></QMake_QT_INSTALL_CONFIGURATION_>
<QMake_QT_INSTALL_EXAMPLES_>C:/Qt/Qt5.14.2/Examples/Qt-5.14.2</QMake_QT_INSTALL_EXAMPLES_>
<QMake_QT_INSTALL_DEMOS_>C:/Qt/Qt5.14.2/Examples/Qt-5.14.2</QMake_QT_INSTALL_DEMOS_>
<QMake_QT_HOST_PREFIX_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64</QMake_QT_HOST_PREFIX_>
<QMake_QT_HOST_DATA_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64</QMake_QT_HOST_DATA_>
<QMake_QT_HOST_BINS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/bin</QMake_QT_HOST_BINS_>
<QMake_QT_HOST_LIBS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/lib</QMake_QT_HOST_LIBS_>
<QMake_QMAKE_SPEC_>win32-msvc</QMake_QMAKE_SPEC_>
<QMake_QMAKE_XSPEC_>win32-msvc</QMake_QMAKE_XSPEC_>
<QMake_QMAKE_VERSION_>3.1</QMake_QMAKE_VERSION_>
<QMake_QT_VERSION_>5.14.2</QMake_QT_VERSION_>
<Qt_INCLUDEPATH_
>$(Qt_INCLUDEPATH_);.\GeneratedFiles\Debug;.\GeneratedFiles</Qt_INCLUDEPATH_>
<QtBkup_QtInstall
>5.14.2_msvc2017_64</QtBkup_QtInstall>
<QtBkup_QtModules
>core;network;gui;widgets</QtBkup_QtModules>
<QtBkup_QtPathBinaries
>bin</QtBkup_QtPathBinaries>
<QtBkup_QtPathLibraryExecutables
>bin</QtBkup_QtPathLibraryExecutables>
<QtBkup_QtHeaderSearchPath
></QtBkup_QtHeaderSearchPath>
<QtBkup_QtLibrarySearchPath
></QtBkup_QtLibrarySearchPath>
<QtBkup_QtVars
>DEFINES=/Project/ItemDefinitionGroup/ClCompile/PreprocessorDefinitions;INCLUDEPATH=/Project/ItemDefinitionGroup/ClCompile/AdditionalIncludeDirectories;STDCPP=/Project/ItemDefinitionGroup/ClCompile/LanguageStandard;RUNTIME=/Project/ItemDefinitionGroup/ClCompile/RuntimeLibrary;CL_OPTIONS=/Project/ItemDefinitionGroup/ClCompile/AdditionalOptions;LIBS=/Project/ItemDefinitionGroup/Link/AdditionalDependencies;LINK_OPTIONS=/Project/ItemDefinitionGroup/Link/AdditionalOptions</QtBkup_QtVars>
<QtBkup_QMakeCodeLines
></QtBkup_QMakeCodeLines>
<QtBkup_QtBuildConfig
>debug</QtBkup_QtBuildConfig>
<QtVersion>5.14.2</QtVersion>
<QtVersionMajor>5</QtVersionMajor>
<QtVersionMinor>14</QtVersionMinor>
<QtVersionPatch>2</QtVersionPatch>
</PropertyGroup>
</Project>

@ -0,0 +1,7 @@
QMAKE_CXX.QT_COMPILER_STDCXX = 199711L
QMAKE_CXX.QMAKE_MSC_VER = 1939
QMAKE_CXX.QMAKE_MSC_FULL_VER = 193933523
QMAKE_CXX.COMPILER_MACROS = \
QT_COMPILER_STDCXX \
QMAKE_MSC_VER \
QMAKE_MSC_FULL_VER

@ -0,0 +1 @@
This is a dummy file needed to create ./moc_predefs.h

@ -0,0 +1,25 @@
QT_SYSROOT:
QT_INSTALL_PREFIX:C:/Qt/Qt5.14.2/5.14.2/msvc2017_64
QT_INSTALL_ARCHDATA:C:/Qt/Qt5.14.2/5.14.2/msvc2017_64
QT_INSTALL_DATA:C:/Qt/Qt5.14.2/5.14.2/msvc2017_64
QT_INSTALL_DOCS:C:/Qt/Qt5.14.2/Docs/Qt-5.14.2
QT_INSTALL_HEADERS:C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/include
QT_INSTALL_LIBS:C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/lib
QT_INSTALL_LIBEXECS:C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/bin
QT_INSTALL_BINS:C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/bin
QT_INSTALL_TESTS:C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/tests
QT_INSTALL_PLUGINS:C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/plugins
QT_INSTALL_IMPORTS:C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/imports
QT_INSTALL_QML:C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/qml
QT_INSTALL_TRANSLATIONS:C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/translations
QT_INSTALL_CONFIGURATION:
QT_INSTALL_EXAMPLES:C:/Qt/Qt5.14.2/Examples/Qt-5.14.2
QT_INSTALL_DEMOS:C:/Qt/Qt5.14.2/Examples/Qt-5.14.2
QT_HOST_PREFIX:C:/Qt/Qt5.14.2/5.14.2/msvc2017_64
QT_HOST_DATA:C:/Qt/Qt5.14.2/5.14.2/msvc2017_64
QT_HOST_BINS:C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/bin
QT_HOST_LIBS:C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/lib
QMAKE_SPEC:win32-msvc
QMAKE_XSPEC:win32-msvc
QMAKE_VERSION:3.1
QT_VERSION:5.14.2

@ -0,0 +1 @@
Info: creating stash file C:\Users\FD\AppData\Local\Temp\iige4dcj.z1o\.qmake.stash

@ -0,0 +1,2 @@
CONFIG += no_fixpath
QT += core network gui widgets

@ -0,0 +1,83 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid></ProjectGuid>
<RootNamespace>qtvars</RootNamespace>
<Keyword>Qt4VSv1.0</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;" Label="Configuration">
<PlatformToolset>v142</PlatformToolset>
<OutputDirectory>.\</OutputDirectory>
<ATLMinimizesCRunTimeLibraryUsage>false</ATLMinimizesCRunTimeLibraryUsage>
<CharacterSet>NotSet</CharacterSet>
<ConfigurationType>Application</ConfigurationType>
<PrimaryOutput>qtvars</PrimaryOutput>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">.\</OutDir>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">qtvars</TargetName>
<IgnoreImportLibrary Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">true</IgnoreImportLibrary>
</PropertyGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">
<ClCompile>
<AdditionalIncludeDirectories>C:\Users\FD\AppData\Local\Temp\iige4dcj.z1o;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include\QtWidgets;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include\QtGui;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include\QtANGLE;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include\QtNetwork;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include\QtCore;C:\Users\FD\AppData\Local\Temp\iige4dcj.z1o;/include;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\mkspecs\win32-msvc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<AssemblerListingLocation>.\</AssemblerListingLocation>
<BrowseInformation>false</BrowseInformation>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>.\</ObjectFileName>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_WIDGETS_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<WarningLevel>TurnOffAllWarnings</WarningLevel>
</ClCompile>
<Link>
<AdditionalDependencies>C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\Qt5Widgetsd.lib;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\Qt5Guid.lib;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\Qt5Networkd.lib;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\Qt5Cored.lib;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\qtmaind.lib;shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>C:\openssl\lib;C:\Utils\my_sql\mysql-5.7.25-winx64\lib;C:\Utils\postgresql\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalOptions>&quot;/MANIFESTDEPENDENCY:type=&apos;win32&apos; name=&apos;Microsoft.Windows.Common-Controls&apos; version=&apos;6.0.0.0&apos; publicKeyToken=&apos;6595b64144ccf1df&apos; language=&apos;*&apos; processorArchitecture=&apos;*&apos;&quot; %(AdditionalOptions)</AdditionalOptions>
<DataExecutionPrevention>true</DataExecutionPrevention>
<GenerateDebugInformation>true</GenerateDebugInformation>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<OutputFile>$(OutDir)\qtvars.exe</OutputFile>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<SubSystem>Windows</SubSystem>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Link>
<Midl>
<DefaultCharType>Unsigned</DefaultCharType>
<EnableErrorChecks>None</EnableErrorChecks>
<WarningLevel>0</WarningLevel>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_WIDGETS_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<CustomBuild Include="moc_predefs.h.cbt">
<FileType>Document</FileType>
<AdditionalInputs Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\mkspecs\features\data\dummy.cpp;%(AdditionalInputs)</AdditionalInputs>
<Command Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">cl -BxC:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin\qmake.exe -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -Zi -MDd -W0 -E C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\mkspecs\features\data\dummy.cpp 2&gt;NUL &gt;moc_predefs.h</Command>
<Message Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">Generate moc_predefs.h</Message>
<Outputs Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">moc_predefs.h;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Generated Files">
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
<Extensions>cpp;c;cxx;moc;h;def;odl;idl;res;</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="moc_predefs.h.cbt">
<Filter>Generated Files</Filter>
</CustomBuild>
</ItemGroup>
</Project>

@ -0,0 +1,60 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Qt_DEFINES_>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_WIDGETS_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB</Qt_DEFINES_>
<Qt_INCLUDEPATH_>C:\Users\FD\AppData\Local\Temp\iige4dcj.z1o;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include\QtWidgets;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include\QtGui;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include\QtANGLE;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include\QtNetwork;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\include\QtCore;C:\Users\FD\AppData\Local\Temp\iige4dcj.z1o;/include;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\mkspecs\win32-msvc</Qt_INCLUDEPATH_>
<Qt_STDCPP_></Qt_STDCPP_>
<Qt_RUNTIME_>MultiThreadedDebugDLL</Qt_RUNTIME_>
<Qt_CL_OPTIONS_>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus</Qt_CL_OPTIONS_>
<Qt_LIBS_>C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\Qt5Widgetsd.lib;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\Qt5Guid.lib;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\Qt5Networkd.lib;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\Qt5Cored.lib;C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\qtmaind.lib;shell32.lib</Qt_LIBS_>
<Qt_LINK_OPTIONS_>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'"</Qt_LINK_OPTIONS_>
<QMake_QT_SYSROOT_></QMake_QT_SYSROOT_>
<QMake_QT_INSTALL_PREFIX_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64</QMake_QT_INSTALL_PREFIX_>
<QMake_QT_INSTALL_ARCHDATA_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64</QMake_QT_INSTALL_ARCHDATA_>
<QMake_QT_INSTALL_DATA_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64</QMake_QT_INSTALL_DATA_>
<QMake_QT_INSTALL_DOCS_>C:/Qt/Qt5.14.2/Docs/Qt-5.14.2</QMake_QT_INSTALL_DOCS_>
<QMake_QT_INSTALL_HEADERS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/include</QMake_QT_INSTALL_HEADERS_>
<QMake_QT_INSTALL_LIBS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/lib</QMake_QT_INSTALL_LIBS_>
<QMake_QT_INSTALL_LIBEXECS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/bin</QMake_QT_INSTALL_LIBEXECS_>
<QMake_QT_INSTALL_BINS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/bin</QMake_QT_INSTALL_BINS_>
<QMake_QT_INSTALL_TESTS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/tests</QMake_QT_INSTALL_TESTS_>
<QMake_QT_INSTALL_PLUGINS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/plugins</QMake_QT_INSTALL_PLUGINS_>
<QMake_QT_INSTALL_IMPORTS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/imports</QMake_QT_INSTALL_IMPORTS_>
<QMake_QT_INSTALL_QML_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/qml</QMake_QT_INSTALL_QML_>
<QMake_QT_INSTALL_TRANSLATIONS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/translations</QMake_QT_INSTALL_TRANSLATIONS_>
<QMake_QT_INSTALL_CONFIGURATION_></QMake_QT_INSTALL_CONFIGURATION_>
<QMake_QT_INSTALL_EXAMPLES_>C:/Qt/Qt5.14.2/Examples/Qt-5.14.2</QMake_QT_INSTALL_EXAMPLES_>
<QMake_QT_INSTALL_DEMOS_>C:/Qt/Qt5.14.2/Examples/Qt-5.14.2</QMake_QT_INSTALL_DEMOS_>
<QMake_QT_HOST_PREFIX_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64</QMake_QT_HOST_PREFIX_>
<QMake_QT_HOST_DATA_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64</QMake_QT_HOST_DATA_>
<QMake_QT_HOST_BINS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/bin</QMake_QT_HOST_BINS_>
<QMake_QT_HOST_LIBS_>C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/lib</QMake_QT_HOST_LIBS_>
<QMake_QMAKE_SPEC_>win32-msvc</QMake_QMAKE_SPEC_>
<QMake_QMAKE_XSPEC_>win32-msvc</QMake_QMAKE_XSPEC_>
<QMake_QMAKE_VERSION_>3.1</QMake_QMAKE_VERSION_>
<QMake_QT_VERSION_>5.14.2</QMake_QT_VERSION_>
<Qt_INCLUDEPATH_
>$(Qt_INCLUDEPATH_);.\GeneratedFiles\Debug;.\GeneratedFiles</Qt_INCLUDEPATH_>
<QtBkup_QtInstall
>5.14.2_msvc2017_64</QtBkup_QtInstall>
<QtBkup_QtModules
>core;network;gui;widgets</QtBkup_QtModules>
<QtBkup_QtPathBinaries
>bin</QtBkup_QtPathBinaries>
<QtBkup_QtPathLibraryExecutables
>bin</QtBkup_QtPathLibraryExecutables>
<QtBkup_QtHeaderSearchPath
></QtBkup_QtHeaderSearchPath>
<QtBkup_QtLibrarySearchPath
></QtBkup_QtLibrarySearchPath>
<QtBkup_QtVars
>DEFINES=/Project/ItemDefinitionGroup/ClCompile/PreprocessorDefinitions;INCLUDEPATH=/Project/ItemDefinitionGroup/ClCompile/AdditionalIncludeDirectories;STDCPP=/Project/ItemDefinitionGroup/ClCompile/LanguageStandard;RUNTIME=/Project/ItemDefinitionGroup/ClCompile/RuntimeLibrary;CL_OPTIONS=/Project/ItemDefinitionGroup/ClCompile/AdditionalOptions;LIBS=/Project/ItemDefinitionGroup/Link/AdditionalDependencies;LINK_OPTIONS=/Project/ItemDefinitionGroup/Link/AdditionalOptions</QtBkup_QtVars>
<QtBkup_QMakeCodeLines
></QtBkup_QMakeCodeLines>
<QtBkup_QtBuildConfig
>debug</QtBkup_QtBuildConfig>
<QtVersion>5.14.2</QtVersion>
<QtVersionMajor>5</QtVersionMajor>
<QtVersionMinor>14</QtVersionMinor>
<QtVersionPatch>2</QtVersionPatch>
</PropertyGroup>
</Project>

@ -0,0 +1,156 @@
#include "Cleanthread.h"
#include <QMutex>
#include <QDate>
#include <QDir>
#include <QFileInfoList>
#include <Windows.h>
#include <QSignalMapper>
#include <QIntValidator>
#include "common.h"///
extern SysConf g_sys_conf;///
extern ConfPath g_conf_path;
CleanWorkThread::CleanWorkThread(QObject* parent) : QObject(parent)
{
}
CleanWorkThread::~CleanWorkThread()
{
}
void CleanWorkThread::setSelAuto() {
delSelection = 1;
}
void CleanWorkThread::setSel() {
delSelection = 2;
}
void CleanWorkThread::startWork()
{
emit workStart();
doWork();
}
void CleanWorkThread::startWorkAuto()
{
emit workStartAuto();
doWork();
}
void CleanWorkThread::doWork()
{
qint64 spaceSize;
qint64 dirSize;
QString dirPath = g_conf_path.save_pics_path;
char drive[_MAX_DRIVE];
char dir_1[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
_splitpath(dirPath.toStdString().c_str(), drive, dir_1, fname, ext);
QString iDriver = drive + QString("/");
LPCWSTR strDriver = (LPCWSTR)iDriver.utf16();
ULARGE_INTEGER freeDiskSpaceAvailable, totalDiskSpace, totalFreeDiskSpace;
qint64 gb = (1024 * 1024 * 1024);
QString dir(g_conf_path.save_pics_path + "/ALL");
if (delSelection == 2)
{
CleanImageFile(dir, 1);
}
else
{
qint64 delDays = g_sys_conf.save_days;///
qint64 freeSize = g_sys_conf.freesize;
CleanImageFile(dir, delDays--);
//调用函数获取磁盘参数(单位为字节Byte),转化为GB需要除以(1024*1024*1024)
GetDiskFreeSpaceEx(strDriver, &freeDiskSpaceAvailable, &totalDiskSpace, &totalFreeDiskSpace);
spaceSize = ((qint64)totalFreeDiskSpace.QuadPart * (100 / freeSize)) / (qint64)totalDiskSpace.QuadPart;
dirSize = DirFileSize(dir) / gb;
//delDays = g_sys_conf.save_days;
while ((spaceSize < 1) && (delDays > 1)) { //磁盘剩余空间小于百分之十
CleanImageFile(dir, delDays--);
GetDiskFreeSpaceEx(strDriver, &freeDiskSpaceAvailable, &totalDiskSpace, &totalFreeDiskSpace);
spaceSize = ((qint64)totalFreeDiskSpace.QuadPart * (100 / freeSize)) / (qint64)totalDiskSpace.QuadPart;
}
}
emit workFinished();
}
void CleanWorkThread::CleanImageFile(const QString& path, const qint64& delDays)
{
QDir dir(path);
QFileInfoList list;
QFileInfo curFile;
if (!dir.exists()) { return; }//文件不存则返回false
dir.setFilter(QDir::Dirs | QDir::Files);
list = dir.entryInfoList(QDir::Dirs | QDir::Files
| QDir::Readable | QDir::Writable
| QDir::Hidden | QDir::NoDotAndDotDot
, QDir::Time);
if (list.isEmpty()) { return; }//文件夹为空则返回false
int i = list.size() - 1;
do {
QFileInfo fileInfo = list.at(i);
// dir.removeRecursively();
while (fileInfo.fileName() == "." || fileInfo.fileName() == ".." && i >= 0)
{
i--;
}
if (i < 0) {
break;
}
bool bisDir = fileInfo.isDir();
if (bisDir)
{
QRegExp rx("\\d{4}-\\d{2}-\\d{2}");
QRegExpValidator v(rx, 0);
int pos = 0;
int match;
QString name = fileInfo.fileName();
match = v.validate(name, pos);
if (match == 2)
{
QDate delDate = QDate::currentDate();
QDate dirDate;
QString name = fileInfo.fileName();
dirDate = QDate::fromString(fileInfo.fileName(), "yyyy-MM-dd");
qint64 nDays = dirDate.daysTo(delDate);
if (nDays >= delDays)
{
if (fileInfo.isDir()) {
QString n = fileInfo.absoluteFilePath();
QDir subPath(fileInfo.absoluteFilePath());
subPath.removeRecursively();
}
else
{
fileInfo.dir().remove(fileInfo.fileName());
}
}
}
else
{
CleanImageFile(fileInfo.filePath(), delDays);
}
}
else
{
fileInfo.dir().remove(fileInfo.fileName());
}
i--;
} while (i >= 0);
}
qint64 CleanWorkThread::DirFileSize(const QString& path)
{
QDir dir(path);
quint64 size = 0;
//dir.entryInfoList(QDir::Files)返回文件信息
foreach(QFileInfo fileInfo, dir.entryInfoList(QDir::Files))
{
//计算文件大小
size += fileInfo.size();
}
//dir.entryList(QDir::Dirs|QDir::NoDotAndDotDot)返回所有子目录,并进行过滤
foreach(QString subDir, dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot))
{
//若存在子目录则递归调用dirFileSize()函数
size += DirFileSize(path + QDir::separator() + subDir);
}
return size;
}

@ -0,0 +1,24 @@
#pragma once
#include <QObject>
class CleanWorkThread : public QObject
{
Q_OBJECT
public:
CleanWorkThread(QObject* parent = nullptr);
~CleanWorkThread();
public slots:
void startWork();
void startWorkAuto();
void doWork();
void setSelAuto();
void setSel();
signals:
void workFinished();
void workStart();
void workStartAuto();
public:
qint64 DirFileSize(const QString& path);
void CleanImageFile(const QString& path, const qint64& delDays);
private:
int delSelection;
};

@ -0,0 +1,27 @@
#include "CommonGUIFunctions.h"
#include "wxIncludePrologue.h"
#include <wx/progdlg.h>
#include "wxIncludeEpilogue.h"
//-----------------------------------------------------------------------------
void UpdateDeviceListWithProgressMessage( wxWindow* pParent, const mvIMPACT::acquire::DeviceManager& devMgr )
//-----------------------------------------------------------------------------
{
static const int MAX_TIME_MS = 10000;
wxProgressDialog progressDialog( wxT( "Scanning For Drivers, Interfaces and Devices" ),
wxT( "Scanning for drivers, interfaces and devices...\n\nThis dialog will disappear automatically once this operation completes!" ),
MAX_TIME_MS, // range
pParent,
wxPD_AUTO_HIDE | wxPD_APP_MODAL | wxPD_ELAPSED_TIME );
UpdateDeviceListThread thread( devMgr );
thread.Create();
thread.Run();
while( thread.IsRunning() )
{
wxMilliSleep( 100 );
progressDialog.Pulse();
}
thread.Wait();
progressDialog.Update( MAX_TIME_MS );
}

@ -0,0 +1,34 @@
//-----------------------------------------------------------------------------
#ifndef CommonGUIFunctionsH
#define CommonGUIFunctionsH CommonGUIFunctionsH
//-----------------------------------------------------------------------------
#include <mvIMPACT_CPP/mvIMPACT_acquire.h>
#include "wxIncludePrologue.h"
#include <wx/thread.h>
#include "wxIncludeEpilogue.h"
class wxWindow;
//=============================================================================
//================= Implementation UpdateDeviceListThread =====================
//=============================================================================
//------------------------------------------------------------------------------
class UpdateDeviceListThread : public wxThread
//------------------------------------------------------------------------------
{
const mvIMPACT::acquire::DeviceManager& devMgr_;
protected:
void* Entry( void )
{
devMgr_.updateDeviceList();
return 0;
}
public:
explicit UpdateDeviceListThread( const mvIMPACT::acquire::DeviceManager& devMgr ) : wxThread( wxTHREAD_JOINABLE ),
devMgr_( devMgr ) {}
};
void UpdateDeviceListWithProgressMessage( wxWindow* pParent, const mvIMPACT::acquire::DeviceManager& devMgr );
#endif // CommonGUIFunctionsH

@ -0,0 +1,12 @@
//-----------------------------------------------------------------------------
#ifndef InfoH
#define InfoH InfoH
//-----------------------------------------------------------------------------
#define COMPANY_NAME wxT("MATRIX VISION GmbH")
#define COMPANY_WEBSITE wxT("www.matrix-vision.com")
#define COMPANY_SUPPORT_MAIL wxT("mailto:support@matrix-vision.com")
#define CURRENT_YEAR wxT("2020")
#define VERSION_STRING wxT("2.39.0.2982")
#endif // InfoH

@ -0,0 +1,22 @@
//-----------------------------------------------------------------------------
#ifndef ProxyResolverContextH
#define ProxyResolverContextH ProxyResolverContextH
//-----------------------------------------------------------------------------
#include <string>
//-----------------------------------------------------------------------------
class ProxyResolverContext
//-----------------------------------------------------------------------------
{
struct ProxyResolverContextImpl* pImpl_;
public:
explicit ProxyResolverContext( const std::wstring& userAgent = std::wstring(), const std::wstring& url = std::wstring() );
~ProxyResolverContext();
std::wstring GetProxy( unsigned int index ) const;
unsigned int GetProxyPort( unsigned int index ) const;
};
bool IsCurrentUserLocalAdministrator( void );
#endif // ProxyResolverContextH

@ -0,0 +1,39 @@
//----------------------------------------------------------------------------------------
#ifndef aviexceptionH
#define aviexceptionH aviexceptionH
//----------------------------------------------------------------------------------------
#include <string>
//----------------------------------------------------------------------------------------
class AVIException
//----------------------------------------------------------------------------------------
{
public:
virtual const char* what() const = 0;
};
//----------------------------------------------------------------------------------------
class AEUnsupportedCodec : public AVIException
//----------------------------------------------------------------------------------------
{
public:
const char* what() const
{
return "Unsupported codec";
}
};
//----------------------------------------------------------------------------------------
class AVIWrapperException : public AVIException
//----------------------------------------------------------------------------------------
{
std::string m_errorString;
public:
AVIWrapperException( const char* pError ) : m_errorString( pError ) {}
const char* what() const
{
return m_errorString.c_str();
}
};
#endif // aviexceptionH

@ -0,0 +1,173 @@
//----------------------------------------------------------------------------------------
#include "avihelper.h"
//----------------------------------------------------------------------------------------
using namespace std;
//----------------------------------------------------------------------------------------
/*!
\brief Builds an error string from an AVI error code.
\param error The error code to be converted.
Helper function to convert an AVI error code into a string.
*/
string AVIErrorToString( HRESULT error )
//----------------------------------------------------------------------------------------
{
string errormsg( "AVI error '" );
switch( error )
{
case AVIERR_BADFLAGS :
errormsg.append( "AVIERR_BADFLAGS" );
break;
case AVIERR_BADFORMAT :
errormsg.append( "AVIERR_BADFORMAT" );
break;
case AVIERR_BADHANDLE :
errormsg.append( "AVIERR_BADHANDLE" );
break;
case AVIERR_BADPARAM :
errormsg.append( "AVIERR_BADPARAM" );
break;
case AVIERR_BADSIZE :
errormsg.append( "AVIERR_BADSIZE" );
break;
case AVIERR_BUFFERTOOSMALL :
errormsg.append( "AVIERR_BUFFERTOOSMALL" );
break;
case AVIERR_CANTCOMPRESS :
errormsg.append( "AVIERR_CANTCOMPRESS" );
break;
case AVIERR_COMPRESSOR :
errormsg.append( "AVIERR_COMPRESSOR" );
break;
case AVIERR_NOCOMPRESSOR :
errormsg.append( "AVIERR_NOCOMPRESSOR" );
break;
case AVIERR_NODATA :
errormsg.append( "AVIERR_NODATA" );
break;
case AVIERR_FILEOPEN :
errormsg.append( "AVIERR_FILEOPEN" );
break;
case AVIERR_FILEREAD :
errormsg.append( "AVIERR_FILEREAD" );
break;
case AVIERR_FILEWRITE :
errormsg.append( "AVIERR_FILEWRITE" );
break;
case AVIERR_INTERNAL :
errormsg.append( "AVIERR_INTERNAL" );
break;
case AVIERR_MEMORY :
errormsg.append( "AVIERR_MEMORY" );
break;
case AVIERR_READONLY :
errormsg.append( "AVIERR_READONLY" );
break;
case AVIERR_UNSUPPORTED :
errormsg.append( "AVIERR_UNSUPPORTED" );
break;
case AVIERR_USERABORT :
errormsg.append( "AVIERR_USERABORT" );
break;
case REGDB_E_CLASSNOTREG :
errormsg.append( "REGDB_E_CLASSNOTREG" );
break;
default:
return "Unrecognized error";
}
return( errormsg.append( "' occurred" ) );
}
//----------------------------------------------------------------------------------------
/*!
\brief Builds a test image.
\param pData Pointer to the memory in which to build the test image.
\param width The width of the test image.
\param height The height of the test image.
\param bytespp The bytes per pixel of the test image.
This function is only needed for testing purposes. It builds a moving vertical
grey ramp in the memory pointed to by \e pData. In each new image will move one
pixel to the right in order to simulate movement.
*/
void BuildTestImage( unsigned char* pData, int width, int height, int bytespp )
//----------------------------------------------------------------------------------------
{
static int count = 0;
unsigned char* p = pData;
for( int i = 0; i < height; i++ )
{
for( int j = 0; j < width; j++ )
{
for( int x = 0; x < bytespp; x++ )
{
p[x] = static_cast<unsigned char>( j + count % 256 );
}
p += bytespp;
}
}
++count;
}
//----------------------------------------------------------------------------------------
/*!
\brief Convertes a user selected codec into the corresponding 4 character code
\param codec The codec to be converted.
*/
DWORD CodecToFourccCode( CODEC_T codec )
//----------------------------------------------------------------------------------------
{
switch( codec )
{
case codecNoCompression:
return mmioFOURCC( 'D', 'I', 'B', ' ' );
case codecMorganMjpg:
return mmioFOURCC( 'M', 'J', 'P', 'G' );
case codecMorganMjpg2000:
return mmioFOURCC( 'M', 'J', '2', 'C' );
case codecIntelJpg:
return mmioFOURCC( 'M', 'J', 'P', 'G' );
case codecHuffYUV:
return mmioFOURCC( 'H', 'F', 'Y', 'U' );
case codecDivx5:
return mmioFOURCC( 'd', 'i', 'v', 'x' );
case codec3ivx:
return mmioFOURCC( '3', 'i', 'v', '2' );
case codecMjpg2:
return mmioFOURCC( 'e', 'm', '2', 'v' );
case codecPicVideoWavelet:
return mmioFOURCC( 'p', 'v', 'w', '2' );
case codecPicVideoMjpg:
return mmioFOURCC( 'm', 'j', 'p', 'x' );
case codecPicVideoLossLessJpg:
return mmioFOURCC( 'p', 'i', 'm', 'j' );
case codecMSVideo:
return mmioFOURCC( 'm', 's', 'v', 'c' );
case codecMSRle:
return mmioFOURCC( 'm', 'r', 'l', 'e' );
case codecMSH263:
return mmioFOURCC( 'm', '2', '6', '3' );
case codecMSH261:
return mmioFOURCC( 'm', '2', '6', '1' );
case codecIntelVidR32:
return mmioFOURCC( 'i', 'v', '3', '2' );
case codecIntelIndeo510:
return mmioFOURCC( 'i', 'v', '5', '0' );
case codecDivxMjpg4lm:
return mmioFOURCC( 'd', 'i', 'v', '3' );
case codecDivxMjpg4fm:
return mmioFOURCC( 'd', 'i', 'v', '4' );
case codecCinepack:
return mmioFOURCC( 'c', 'v', 'i', 'd' );
case codecMSMpeg4:
return mmioFOURCC( 'm', 'p', 'g', '4' );
case codecMax:
return mmioFOURCC( 'D', 'I', 'B', ' ' );
default:
break;
}
throw AEUnsupportedCodec();
}

@ -0,0 +1,45 @@
//----------------------------------------------------------------------------------------
#ifndef avihelperH
#define avihelperH avihelperH
//----------------------------------------------------------------------------------------
#include <windows.h>
#include <Vfw.h>
#include "aviexception.h"
//----------------------------------------------------------------------------------------
/*!
\brief The codecs recognized by the \b AVIWrapper class.
*/
typedef enum
{
codecNoCompression = 0,
codecMorganMjpg = 1,
codecMorganMjpg2000 = 2,
codecIntelJpg = 3,
codecHuffYUV = 4,
codecDivx5 = 5,
codec3ivx = 6,
codecMjpg2 = 7,
codecPicVideoWavelet = 8,
codecPicVideoMjpg = 9,
codecPicVideoLossLessJpg = 10,
codecMSVideo = 11,
codecMSRle = 12,
codecMSH263 = 13,
codecMSH261 = 14,
codecIntelVidR32 = 15,
codecIntelIndeo510 = 16,
codecDivxMjpg4lm = 17,
codecDivxMjpg4fm = 18,
codecCinepack = 19,
codecMSMpeg4 = 20,
codecMax
} CODEC_T;
//----------------------------------------------------------------------------------------
std::string AVIErrorToString( HRESULT error );
void BuildTestImage( unsigned char* pData, int width, int height, int bytespp );
DWORD CodecToFourccCode( CODEC_T codec );
//----------------------------------------------------------------------------------------
#endif // avihelperH

@ -0,0 +1,293 @@
//----------------------------------------------------------------------------------------
#include "aviwrapper.h"
#include <cassert>
#include <common/crt/mvstring.h>
//----------------------------------------------------------------------------------------
/*!
\class AVIWrapper
\brief Provides an easy way to create and use *.avi-files.
This class is meant to provide easy access to the AVI file functions. It can be used to generate
an AVI stream with only a few lines of code.
Three general methods are supported:
- Creation of an AVI stream using the standard Windows compression options dialog (interactively)
- Creation of an AVI stream specifying a codec handler, quality settings and image dimensions
(not interactively)
- Creation of an AVI stream from images which are already in jpeg format.
*/
unsigned int AVIWrapper::m_usageCount = 0;
//----------------------------------------------------------------------------------------
/*!
\brief Constructs a new \b AVIWrapper object.
\param filename The filename of the AVI file to be created or \e 0 if no file shall be
created.
\param mode The access mode for this file.
Opens and creates an AVI file in the mode specified by the \e mode parameter if
a filename has been specified. See MSDN for details about the available modes.
*/
AVIWrapper::AVIWrapper( const char* pFilename /* = 0 */, UINT mode /* = OF_READ */ ) :
m_AVIStreamFrameCounter( 0 ), m_pAVIFile( 0 ), m_pAVIStream( 0 ), m_pAVIStreamCompressed( 0 ),
m_codec( CodecToFourccCode( codecNoCompression ) )
//----------------------------------------------------------------------------------------
{
if( m_usageCount == 0 )
{
AVIFileInit();
}
++m_usageCount;
if( pFilename )
{
HRESULT result = AVIFileOpen( &m_pAVIFile, pFilename, mode, 0 );
if( result == AVIERR_OK )
{
result = AVIFileGetStream( m_pAVIFile, &m_pAVIStream, streamtypeVIDEO, 0 );
}
if( result != AVIERR_OK )
{
AVIFileExit();
throw AVIWrapperException( AVIErrorToString( result ).c_str() );
}
}
}
//----------------------------------------------------------------------------------------
AVIWrapper::~AVIWrapper( void )
//----------------------------------------------------------------------------------------
{
if( m_pAVIFile )
{
CloseStreamsAndFiles();
}
--m_usageCount;
if( m_usageCount == 0 )
{
AVIFileExit();
}
}
//----------------------------------------------------------------------------------------
/*!
\brief Closes the AVI file again.
Closes all open streams and the AVI file itself. At the moment only one stream can be opened
at the same time.
*/
void AVIWrapper::CloseAVIFile( void )
//----------------------------------------------------------------------------------------
{
if( !m_pAVIFile )
{
throw AVIWrapperException( "CloseAVIFile: No file has been opened so far" );
}
CloseStreamsAndFiles();
}
//----------------------------------------------------------------------------------------
/*!
\brief Closes all open stream and the AVI file itself.
*/
void AVIWrapper::CloseStreamsAndFiles( void )
//----------------------------------------------------------------------------------------
{
if( m_pAVIStream )
{
AVIStreamRelease( m_pAVIStream );
}
if( m_pAVIStreamCompressed )
{
AVIStreamRelease( m_pAVIStreamCompressed );
}
if( m_pAVIFile )
{
AVIFileRelease( m_pAVIFile );
}
m_pAVIStream = 0;
m_pAVIStreamCompressed = 0;
m_pAVIFile = 0;
m_AVIStreamFrameCounter = 0;
}
//----------------------------------------------------------------------------------------
/*!
\brief Creates an AVI stream from DIB images.
\param w The width of the images to be stored in the stream
\param h The height of the images to be stored in the stream
\param sampleRate The frames per second entry in the AVI header
\param quality The JPEG quality (from 0 - 10000)
\param name The name of the stream in the file
\param codec The codec to be used for the compression of the DIB data. Pass \e codecMax if
you want to select a codec from the standard Windows compression dialog or
a valid codec from the \b CODEC_T enumeration.
Use this function to create a compressed or uncompressed AVI stream from images in DIB/Bitmap
format. The images can be stored in a compressed format defined by the specified compression
handler.
If your images are already in JPEG format use the function <b>AVIWrapper::CreateAVIStreamFromJPEGs()</b>
instead.
*/
void AVIWrapper::CreateAVIStreamFromDIBs( int w, int h, int bitcount, DWORD sampleRate, DWORD quality, const char* pName /*= "default"*/, CODEC_T codec /*= codecMax*/ )
//----------------------------------------------------------------------------------------
{
BITMAPINFOHEADER BmpHeader;
SetupStreamStructs( BmpHeader, w, h, bitcount, sampleRate, quality, pName, codec );
BmpHeader.biCompression = BI_RGB;
AVICOMPRESSOPTIONS* opts[1] = {&m_AVICompressionOptions};
memset( &m_AVICompressionOptions, 0, sizeof( AVICOMPRESSOPTIONS ) );
PAVISTREAM streams[1] = {m_pAVIStream};
if( codec == codecMax )
{
// show windows compression handler dialog
AVISaveOptions( 0, 0, 1, ( PAVISTREAM* )&streams, ( LPAVICOMPRESSOPTIONS* )&opts );
}
else // fill AVICOMPRESSOPTIONS with user parameters
{
m_codec = codec;
opts[0]->fccType = streamtypeVIDEO;
opts[0]->fccHandler = CodecToFourccCode( codec );
opts[0]->dwQuality = quality;
opts[0]->dwFlags = AVICOMPRESSF_VALID;
}
m_codec = opts[0]->fccHandler;
HRESULT result = AVIMakeCompressedStream( &m_pAVIStreamCompressed, m_pAVIStream, &m_AVICompressionOptions, NULL );
if( result == AVIERR_OK )
{
result = AVIStreamSetFormat( m_pAVIStreamCompressed, 0, &BmpHeader, sizeof( BITMAPINFOHEADER ) );
}
if( result != AVIERR_OK )
{
CloseStreamsAndFiles();
throw AVIWrapperException( AVIErrorToString( result ).c_str() );
}
}
//----------------------------------------------------------------------------------------
/*!
\brief Creates an AVI stream from JPEG images.
\param w The width of the images to be stored in the stream
\param h The height of the images to be stored in the stream
\param sampleRate The frames per second entry in the AVI header
\param quality The JPEG quality (from 0 - 10000)
\param name The name of the stream in the file
Use this function to create a MJPEG stream from images which are already in JPEG format.
To create an AVI stream from images in DIB format use the function
<b>AVIWrapper::CreateAVIStreamFromDIBs()</b> instead.
*/
void AVIWrapper::CreateAVIStreamFromJPEGs( int w, int h, int bitcount, DWORD sampleRate, DWORD quality, const char* pName /*= "default"*/ )
//----------------------------------------------------------------------------------------
{
// no 'handler' compression! This section works for already compressed images
BITMAPINFOHEADER BmpHeader;
SetupStreamStructs( BmpHeader, w, h, bitcount, sampleRate, quality, pName, codecMorganMjpg );
BmpHeader.biCompression = CodecToFourccCode( codecMorganMjpg );
const HRESULT result = AVIStreamSetFormat( m_pAVIStream, 0, &BmpHeader, sizeof( BITMAPINFOHEADER ) );
if( result != AVIERR_OK )
{
CloseStreamsAndFiles();
throw AVIWrapperException( AVIErrorToString( result ).c_str() );
}
}
//----------------------------------------------------------------------------------------
/*!
\brief Opens an AVI file.
\param filename The name of the file to be created/opened/used.
\param mode The access mode for this file.
Opens and creates an AVI file in the mode specified by the \e mode parameter
See MSDN for details about the available modes.
*/
void AVIWrapper::OpenAVIFile( const char* pFilename, UINT mode /* = OF_READ */ )
//----------------------------------------------------------------------------------------
{
if( m_pAVIFile )
{
throw AVIWrapperException( "OpenAVIFile: Another file has been opened already" );
}
if( !pFilename )
{
throw AVIWrapperException( "OpenAVIFile: No valid filename has been specified" );
}
const HRESULT result = AVIFileOpen( &m_pAVIFile, pFilename, mode, 0 );
if( result != AVIERR_OK )
{
throw AVIWrapperException( AVIErrorToString( result ).c_str() );
}
}
//----------------------------------------------------------------------------------------
/*!
\brief Stores one image in the AVI stream
\param data Pointer to the image data
\param size Size (in bytes) of the memory block pointed to by \e data
This function stores one image in the specified stream.
*/
void AVIWrapper::SaveDataToAVIStream( unsigned char* pData, int size )
//----------------------------------------------------------------------------------------
{
PAVISTREAM pAVIStream = ( m_pAVIStreamCompressed ) ? m_pAVIStreamCompressed : m_pAVIStream;
if( !pAVIStream )
{
throw AVIWrapperException( "SaveDataToAVIStream: Stream pointer invalid" );
}
const HRESULT result = AVIStreamWrite( pAVIStream, m_AVIStreamFrameCounter++, 1, pData, size, AVIIF_KEYFRAME, 0, 0 );
if( result != AVIERR_OK )
{
throw AVIWrapperException( AVIErrorToString( result ).c_str() );
}
}
//----------------------------------------------------------------------------------------
void AVIWrapper::SetupStreamStructs( BITMAPINFOHEADER& BmpHeader, int w, int h, int bitcount, DWORD sampleRate, DWORD quality, const char* pName /*= "default"*/, CODEC_T codec /*= codecMax*/ )
//----------------------------------------------------------------------------------------
{
if( !m_pAVIFile )
{
throw AVIWrapperException( "CreateNewAVIStream: No file has been opened so far" );
}
if( strlen( pName ) > sizeof( m_AVIStreamInfo.szName ) )
{
throw AVIWrapperException( "CreateNewAVIStream: stream name too long" );
}
if( m_pAVIStream || m_pAVIStreamCompressed )
{
throw AVIWrapperException( "CreateNewAVIStream: There is already an open stream" );
}
// setup AVISTREAMINFO structure
memset( &m_AVIStreamInfo, 0, sizeof( AVISTREAMINFO ) );
m_AVIStreamInfo.fccType = streamtypeVIDEO;
m_AVIStreamInfo.fccHandler = CodecToFourccCode( codec );
m_AVIStreamInfo.wPriority = 10;
m_AVIStreamInfo.dwScale = 1;
m_AVIStreamInfo.dwRate = sampleRate;
m_AVIStreamInfo.dwQuality = quality;
m_AVIStreamInfo.rcFrame.right = w;
m_AVIStreamInfo.rcFrame.bottom = h;
mv_strncpy_s( m_AVIStreamInfo.szName, pName, sizeof( m_AVIStreamInfo.szName ) );
const HRESULT result = AVIFileCreateStream( m_pAVIFile, &m_pAVIStream, &m_AVIStreamInfo );
if( result != AVIERR_OK )
{
throw AVIWrapperException( AVIErrorToString( result ).c_str() );
}
// setup BITMAPINFOHEADER structure
memset( &BmpHeader, 0, sizeof( BITMAPINFOHEADER ) );
BmpHeader.biSize = sizeof( BITMAPINFOHEADER );
BmpHeader.biWidth = w;
BmpHeader.biHeight = h;
BmpHeader.biPlanes = 1;
BmpHeader.biBitCount = static_cast<WORD>( bitcount );
// setup internals
m_AVIStreamFrameCounter = 0;
}

@ -0,0 +1,54 @@
//----------------------------------------------------------------------------------------
#ifndef aviwrapperH
#define aviwrapperH aviwrapperH
//----------------------------------------------------------------------------------------
#include "avihelper.h"
//----------------------------------------------------------------------------------------
class AVIWrapper
//----------------------------------------------------------------------------------------
{
// member data
/// Keeps track about the number of images stored in the actual stream
int m_AVIStreamFrameCounter;
/// pointer to the structure describing the AVI-file
PAVIFILE m_pAVIFile;
/// pointer to an uncompressed AVI stream
PAVISTREAM m_pAVIStream;
/// pointer to a compressed AVI stream (this is used when a compression handler is used)
PAVISTREAM m_pAVIStreamCompressed;
/// A structure containing information about the AVI stream
AVISTREAMINFO m_AVIStreamInfo;
/// A structure for storing the compression options of the AVI stream
AVICOMPRESSOPTIONS m_AVICompressionOptions;
/// The used codec
DWORD m_codec;
/// Usage count for this class
static unsigned int m_usageCount;
// functions
void CloseStreamsAndFiles( void );
void SetupStreamStructs( BITMAPINFOHEADER& BmpHeader, int w, int h, int bitcount, DWORD sampleRate, DWORD quality, const char* pName = "default", CODEC_T codec = codecMax );
/// Do not allow copy construction
AVIWrapper( const AVIWrapper& scr );
public:
// construction/destruction
explicit AVIWrapper( const char* pFilename = 0, UINT mode = OF_READ );
~AVIWrapper( void );
// user interface
void CloseAVIFile( void );
void CreateAVIStreamFromDIBs( int w, int h, int bitcount, DWORD sampleRate, DWORD quality, const char* pName = "default", CODEC_T codec = codecMax );
void CreateAVIStreamFromJPEGs( int w, int h, int bitcount, DWORD sampleRate, DWORD quality, const char* pName = "default" );
const char* GetStreamName( void ) const
{
return m_AVIStreamInfo.szName;
}
bool UsesCompressionHandler( void ) const
{
return m_codec != CodecToFourccCode( codecNoCompression );
}
void OpenAVIFile( const char* pFilename, UINT mode = OF_READ );
void SaveDataToAVIStream( unsigned char* pData, int size );
};
#endif // aviwrapperH

@ -0,0 +1,545 @@
//-----------------------------------------------------------------------------
#ifndef exampleHelperH
#define exampleHelperH exampleHelperH
//-----------------------------------------------------------------------------
#include <algorithm>
#include <iostream>
#include <set>
#include <string>
#include <mvIMPACT_CPP/mvIMPACT_acquire.h>
//-----------------------------------------------------------------------------
template<class _Ty>
class DisplayDictEntry
//-----------------------------------------------------------------------------
{
public:
void operator()( const std::pair<std::string, _Ty>& data ) const
{
std::cout << " [" << data.second << "]: " << data.first << std::endl;
}
};
//-----------------------------------------------------------------------------
class DisplayComponent
//-----------------------------------------------------------------------------
{
public:
void operator()( const Component& data ) const
{
if( data.isValid() )
{
std::cout << " " << data.name() << "(" << data.typeAsString() << ")" << std::endl;
}
}
};
//-----------------------------------------------------------------------------
class DisplayProperty
//-----------------------------------------------------------------------------
{
public:
void operator()( const std::pair<std::string, mvIMPACT::acquire::Property>& data ) const
{
if( data.second.isValid() )
{
std::cout << data.first << ": " << data.second.readSArray() << "(" << data.second.flagsAsString() << ")" << std::endl;
}
}
};
//-----------------------------------------------------------------------------
template<class _Ty>
void DisplayPropertyDictionary( const mvIMPACT::acquire::Property& p )
//-----------------------------------------------------------------------------
{
_Ty prop( p );
#if defined(_MSC_VER) && (_MSC_VER < 1300) // is 'old' VC 6 Microsoft compiler?
std::vector<std::pair<std::string, _Ty::value_type> > dict;
prop.getTranslationDict( dict );
std::for_each( dict.begin(), dict.end(), DisplayDictEntry<_Ty::value_type>() );
#else
std::vector<std::pair<std::string, typename _Ty::value_type> > dict;
prop.getTranslationDict( dict );
std::for_each( dict.begin(), dict.end(), DisplayDictEntry<typename _Ty::value_type>() );
#endif // #ifdef _MSC_VER
}
//-----------------------------------------------------------------------------
/// \brief Checks is a certain value for property is supported.
template<class _Tx>
bool supportsEnumStringValue( const _Tx& prop, const std::string& value )
//-----------------------------------------------------------------------------
{
if( prop.hasDict() )
{
typename std::vector<std::string> sequence;
prop.getTranslationDictStrings( sequence );
return std::find( sequence.begin(), sequence.end(), value ) != sequence.end();
}
return false;
}
//-----------------------------------------------------------------------------
/// \brief Checks is a certain value for property is supported.
template<class _Tx, typename _Ty>
bool supportsValue( const _Tx& prop, const _Ty& value )
//-----------------------------------------------------------------------------
{
if( prop.hasDict() )
{
typename std::vector<_Ty> sequence;
prop.getTranslationDictValues( sequence );
return std::find( sequence.begin(), sequence.end(), value ) != sequence.end();
}
if( prop.hasMinValue() && ( prop.getMinValue() > value ) )
{
return false;
}
if( prop.hasMaxValue() && ( prop.getMaxValue() < value ) )
{
return false;
}
return true;
}
//-----------------------------------------------------------------------------
/// \brief Sets a property to a certain value if this value is supported.
template<typename _Ty, typename _Tx>
void conditionalSetProperty( const _Ty& prop, const _Tx& value, bool boSilent = false )
//-----------------------------------------------------------------------------
{
if( prop.isValid() && prop.isWriteable() && supportsValue( prop, value ) )
{
prop.write( value );
if( !boSilent )
{
std::cout << "Property '" << prop.name() << "' set to '" << prop.readS() << "'." << std::endl;
}
}
}
//-----------------------------------------------------------------------------
/// \brief Sets a property to a certain value if this value is supported.
template<typename _Ty>
void conditionalSetEnumPropertyByString( const _Ty& prop, const std::string& value, bool boSilent = false )
//-----------------------------------------------------------------------------
{
if( prop.isValid() && prop.isWriteable() && supportsEnumStringValue( prop, value ) )
{
prop.writeS( value );
if( !boSilent )
{
std::cout << "Property '" << prop.name() << "' set to '" << prop.readS() << "'." << std::endl;
}
}
}
//-----------------------------------------------------------------------------
/// This function makes heavy use of strings. In real world applications
/// this can be avoided if optimal performance is crucial. All properties can be modified
/// via strings, but most properties can also be modified with numerical (int / double )
/// values, which is much faster, but not as descriptive for a sample application
inline void displayPropertyData( const mvIMPACT::acquire::Property& prop )
//-----------------------------------------------------------------------------
{
const std::string name( prop.name() );
std::cout << std::endl
<< "Property '" << name << "'(display name: '" << prop.displayName() << "', type: " << prop.typeAsString() << ") currently specifies the following flags: " << prop.flagsAsString() << std::endl
<< std::endl;
const std::string doc( prop.docString() );
if( !doc.empty() )
{
std::cout << "The following documentation has been reported by the driver for this feature: " << std::endl
<< doc << std::endl
<< std::endl;
}
if( prop.selectedFeatureCount() > 0 )
{
std::vector<Component> selectedFeatureList;
prop.selectedFeatures( selectedFeatureList );
std::cout << "The following features are selected by this feature(Whenever the current feature is modified, all selected features might change):" << std::endl;
std::for_each( selectedFeatureList.begin(), selectedFeatureList.end(), DisplayComponent() );
std::cout << std::endl;
}
if( prop.selectingFeatureCount() > 0 )
{
std::vector<Component> selectingFeatureList;
prop.selectingFeatures( selectingFeatureList );
std::cout << "The following features select this feature(Whenever a selecting features is modified, a selected one might change):" << std::endl;
std::for_each( selectingFeatureList.begin(), selectingFeatureList.end(), DisplayComponent() );
std::cout << std::endl;
}
if( prop.hasMinValue() )
{
std::cout << "The minimum value of '" << name << "' is " << prop.readS( mvIMPACT::acquire::plMinValue ) << std::endl;
}
if( prop.hasMaxValue() )
{
std::cout << "The maximum value of '" << name << "' is " << prop.readS( mvIMPACT::acquire::plMaxValue ) << std::endl;
}
if( prop.hasStepWidth() )
{
std::cout << "The increment of '" << name << "' is " << prop.readS( mvIMPACT::acquire::plStepWidth ) << std::endl;
}
if( prop.hasDict() )
{
std::cout << "'" << name << "' defines a dictionary. Valid values are: " << std::endl;
mvIMPACT::acquire::TComponentType type = prop.type();
if( type == mvIMPACT::acquire::ctPropInt )
{
DisplayPropertyDictionary<mvIMPACT::acquire::PropertyI>( prop );
}
else if( type == mvIMPACT::acquire::ctPropInt64 )
{
DisplayPropertyDictionary<mvIMPACT::acquire::PropertyI64>( prop );
}
else if( type == mvIMPACT::acquire::ctPropFloat )
{
DisplayPropertyDictionary<mvIMPACT::acquire::PropertyF>( prop );
}
else
{
std::cout << "Error! Unhandled enum prop type: " << prop.typeAsString() << std::endl;
}
}
std::cout << "The current value of '" << name << "' is: '" << prop.readS() << "'" << std::endl;
}
//-----------------------------------------------------------------------------
inline bool displayPropertyDataWithValidation( const mvIMPACT::acquire::Property& prop, const std::string& name )
//-----------------------------------------------------------------------------
{
if( !prop.isValid() )
{
std::cout << "Property '" << name << "' is not supported/available." << std::endl;
return false;
}
displayPropertyData( prop );
return true;
}
//-----------------------------------------------------------------------------
// Start the acquisition manually if this was requested(this is to prepare the driver for data capture and tell the device to start streaming data)
inline void manuallyStartAcquisitionIfNeeded( mvIMPACT::acquire::Device* pDev, const mvIMPACT::acquire::FunctionInterface& fi )
//-----------------------------------------------------------------------------
{
if( pDev->acquisitionStartStopBehaviour.read() == mvIMPACT::acquire::assbUser )
{
const mvIMPACT::acquire::TDMR_ERROR result = static_cast<mvIMPACT::acquire::TDMR_ERROR>( fi.acquisitionStart() );
if( result != mvIMPACT::acquire::DMR_NO_ERROR )
{
std::cout << "'FunctionInterface.acquisitionStart' returned with an unexpected result: " << result
<< "(" << mvIMPACT::acquire::ImpactAcquireException::getErrorCodeAsString( result ) << ")" << std::endl;
}
}
}
//-----------------------------------------------------------------------------
// Stop the acquisition manually if this was requested
inline void manuallyStopAcquisitionIfNeeded( mvIMPACT::acquire::Device* pDev, const mvIMPACT::acquire::FunctionInterface& fi )
//-----------------------------------------------------------------------------
{
if( pDev->acquisitionStartStopBehaviour.read() == mvIMPACT::acquire::assbUser )
{
const mvIMPACT::acquire::TDMR_ERROR result = static_cast<mvIMPACT::acquire::TDMR_ERROR>( fi.acquisitionStop() );
if( result != mvIMPACT::acquire::DMR_NO_ERROR )
{
std::cout << "'FunctionInterface.acquisitionStop' returned with an unexpected result: " << result
<< "(" << mvIMPACT::acquire::ImpactAcquireException::getErrorCodeAsString( result ) << ")" << std::endl;
}
}
}
//-----------------------------------------------------------------------------
/// This function makes heavy use of strings. In real world applications
/// this can be avoided if optimal performance is crucial. All properties can be modified
/// via strings, but most properties can also be modified with numerical (int / double )
/// values, which is much faster, but not as descriptive for a sample application
inline void modifyPropertyValue( const mvIMPACT::acquire::Property& prop, const std::string& param = "", const std::string& index = "" )
//-----------------------------------------------------------------------------
{
try
{
const std::string name( prop.name() );
if( prop.isWriteable() )
{
int valIndex = 0;
if( param.empty() )
{
std::cout << "Enter the new value for '" << name << "': ";
std::string val;
std::cin >> val;
// remove the '\n' from the stream
std::cin.get();
if( prop.valCount() > 1 )
{
std::cout << "'" << name << "' defines " << prop.valCount() << " values. Enter the index (zero-based) of the value to modify: ";
std::cin >> valIndex;
// remove the '\n' from the stream
std::cin.get();
}
prop.writeS( val, valIndex );
}
else
{
if( !index.empty() )
{
valIndex = atoi( index.c_str() );
}
prop.writeS( param, valIndex );
}
}
else
{
std::cout << "'" << name << "' is read-only, thus can't be modified." << std::endl;
}
}
catch( const mvIMPACT::acquire::ImpactAcquireException& e )
{
std::cout << "An exception occurred: " << e.getErrorString() << "(error code: " << e.getErrorCodeAsString() << ")" << std::endl;
}
}
//-----------------------------------------------------------------------------
inline void displayAndModifyPropertyDataWithValidation( const mvIMPACT::acquire::Property& prop, const std::string& name )
//-----------------------------------------------------------------------------
{
if( displayPropertyDataWithValidation( prop, name ) )
{
modifyPropertyValue( prop );
}
std::cout << std::endl;
}
//-----------------------------------------------------------------------------
inline std::ostream& operator<<( std::ostream& out, const mvIMPACT::acquire::Property& prop )
//-----------------------------------------------------------------------------
{
out << prop.name() << ": " << prop.readS();
return out;
}
//-----------------------------------------------------------------------------
/// \brief Allows string comparison with a defined character to ignore
/**
* This function allows a tolerant string compare. If \a candidate ends with \a wildcard
* \a candidate can be shorter then \a searchString as the rest of the string will be
* ignored. This is a helper function used internally by <b>DeviceManager</b> objects.
*
* Examples:
*
* \code
* wildcard = '*'
* s1 = "blablabla"
* match( s1, "bl*bl*bla", '*' ); // will return 0
* // will return 0 ('*' is the default value for parameter 3 )
* match( s1, "bl*" );
* // the next call will return -1 as the first character MUST
* // be either a 'b' or the wildcard character.
* match( s1, "a*" );
* \endcode
* \return
* - 0 if successful
* - -1 otherwise
*/
template<class _Elem, class _Traits, class _Ax>
int match( const std::basic_string<_Elem, _Traits, _Ax>& searchString, const std::basic_string<_Elem, _Traits, _Ax>& candidate, _Elem wildcard )
//-----------------------------------------------------------------------------
{
typename std::basic_string<_Elem, _Traits, _Ax>::size_type searchLength = searchString.length();
// determine search length
if( candidate.length() < searchString.length() )
{
if( candidate.empty() )
{
return -1;
}
if( candidate[candidate.length() - 1] != wildcard )
{
return -1;
}
searchLength = candidate.length() - 1;
}
// search
for( typename std::basic_string<_Elem, _Traits, _Ax>::size_type i = 0; i < searchLength; i++ )
{
if( ( candidate[i] != searchString[i] ) && ( candidate[i] != wildcard ) )
{
return -1;
}
}
return 0;
}
typedef bool( *SUPPORTED_DEVICE_CHECK )( const mvIMPACT::acquire::Device* const );
//-----------------------------------------------------------------------------
inline mvIMPACT::acquire::Device* getDeviceFromUserInput( const mvIMPACT::acquire::DeviceManager& devMgr, SUPPORTED_DEVICE_CHECK pSupportedDeviceCheckFn = 0, bool boSilent = false, bool boAutomaticallyUseGenICamInterface = true )
//-----------------------------------------------------------------------------
{
const unsigned int devCnt = devMgr.deviceCount();
if( devCnt == 0 )
{
std::cout << "No compliant device found!" << std::endl;
return 0;
}
std::set<unsigned int> validDeviceNumbers;
// display every device detected that matches
for( unsigned int i = 0; i < devCnt; i++ )
{
Device* pDev = devMgr[i];
if( pDev )
{
if( !pSupportedDeviceCheckFn || pSupportedDeviceCheckFn( pDev ) )
{
std::cout << "[" << i << "]: " << pDev->serial.read() << " (" << pDev->product.read() << ", " << pDev->family.read();
if( pDev->interfaceLayout.isValid() )
{
if( boAutomaticallyUseGenICamInterface )
{
// if this device offers the 'GenICam' interface switch it on, as this will
// allow are better control over GenICam compliant devices
conditionalSetProperty( pDev->interfaceLayout, dilGenICam, true );
}
std::cout << ", interface layout: " << pDev->interfaceLayout.readS();
}
if( pDev->acquisitionStartStopBehaviour.isValid() )
{
// if this device offers a user defined acquisition start/stop behaviour
// enable it as this allows finer control about the streaming behaviour
conditionalSetProperty( pDev->acquisitionStartStopBehaviour, assbUser, true );
std::cout << ", acquisition start/stop behaviour: " << pDev->acquisitionStartStopBehaviour.readS();
}
if( pDev->interfaceLayout.isValid() && !pDev->interfaceLayout.isWriteable() )
{
if( pDev->isInUse() )
{
std::cout << ", !!!ALREADY IN USE!!!";
}
}
std::cout << ")" << std::endl;
validDeviceNumbers.insert( i );
}
}
}
if( validDeviceNumbers.empty() )
{
std::cout << devMgr.deviceCount() << " devices have been detected:" << std::endl;
for( unsigned int i = 0; i < devCnt; i++ )
{
Device* pDev = devMgr[i];
if( pDev )
{
std::cout << " [" << i << "]: " << pDev->serial.read() << " (" << pDev->product.read() << ", " << pDev->family.read() << ")" << std::endl;
}
}
std::cout << "However none of these devices seems to be supported by this sample." << std::endl << std::endl;
return 0;
}
// get user input
std::cout << std::endl << "Please enter the number in front of the listed device followed by [ENTER] to open it: ";
unsigned int devNr = 0;
std::cin >> devNr;
// remove the '\n' from the stream
std::cin.get();
if( validDeviceNumbers.find( devNr ) == validDeviceNumbers.end() )
{
std::cout << "Invalid selection!" << std::endl;
return 0;
}
if( !boSilent )
{
std::cout << "Using device number " << devNr << "." << std::endl;
}
return devMgr[devNr];
}
//-----------------------------------------------------------------------------
inline std::vector<mvIMPACT::acquire::Device*>::size_type getValidDevices( const mvIMPACT::acquire::DeviceManager& devMgr, std::vector<mvIMPACT::acquire::Device*>& v, SUPPORTED_DEVICE_CHECK pSupportedDeviceCheckFn = 0 )
//-----------------------------------------------------------------------------
{
const unsigned int devCnt = devMgr.deviceCount();
// display every device detected that matches
for( unsigned int i = 0; i < devCnt; i++ )
{
Device* pDev = devMgr[i];
if( pDev )
{
if( !pSupportedDeviceCheckFn || pSupportedDeviceCheckFn( pDev ) )
{
v.push_back( pDev );
}
}
}
return v.size();
}
#if defined(linux) || defined(__linux) || defined(__linux__)
# include <fcntl.h>
# include <stdio.h>
# include <sys/types.h>
# include <termios.h>
# include <unistd.h>
//-----------------------------------------------------------------------------
/// \brief Checks if something was written to a certain file descriptor
/** \return
* - 0 if timeout did elapse
* - 1 otherwise
*/
inline unsigned waitForInput( int maxWait_sec, int fd )
//-----------------------------------------------------------------------------
{
fd_set rfds;
struct timeval tv;
FD_ZERO( &rfds );
#ifndef __clang_analyzer__ // See https://bugs.llvm.org/show_bug.cgi?id=8920
FD_SET( fd, &rfds );
#endif // #ifndef __clang_analyzer__
tv.tv_sec = maxWait_sec;
tv.tv_usec = 0;
return select( fd + 1, &rfds, NULL, NULL, &tv );
}
//-----------------------------------------------------------------------------
/** \return
* - 1 if a key has been pressed since the last call to this function
* - 0 otherwise
*/
inline int checkKeyboardInput( void )
//-----------------------------------------------------------------------------
{
struct termios oldt, newt;
tcgetattr( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr( STDIN_FILENO, TCSANOW, &newt );
const int oldf = fcntl( STDIN_FILENO, F_GETFL, 0 );
fcntl( STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK );
const int ch = getchar();
tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
fcntl( STDIN_FILENO, F_SETFL, oldf );
if( ch != EOF )
{
// ungetc(ch, stdin);
return 1;
}
return 0;
}
#endif // #if defined(linux) || defined(__linux) || defined(__linux__)
#endif // exampleHelperH

@ -0,0 +1,595 @@
//-----------------------------------------------------------------------------
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "exampleHelper_C.h"
#define BUF_SIZE (32)
#define BUF_SIZE_LARGE (256)
//-----------------------------------------------------------------------------
int getIntValFromSTDIn( void )
//-----------------------------------------------------------------------------
{
int value;
int conversionResult = 0;
#if defined(_MSC_VER) && (_MSC_VER >= 1400) // is at least VC 2005 compiler?
conversionResult = scanf_s( "%d", &value );
#else
conversionResult = scanf( "%d", &value );
#endif // #if defined(_MSC_VER) && (_MSC_VER >= 1400) // is at least VC 2005 compiler?
if( conversionResult != 1 )
{
printf( "Conversion error: Expected: 1, conversion result: %d.\n", conversionResult );
}
return value;
}
//-----------------------------------------------------------------------------
int getPropI( HOBJ hProp, int index )
//-----------------------------------------------------------------------------
{
int value = 0;
TPROPHANDLING_ERROR result = PROPHANDLING_NO_ERROR;
if( ( result = OBJ_GetI( hProp, &value, index ) ) != PROPHANDLING_NO_ERROR )
{
printf( "getPropI: Failed to read property value(%s).\n", DMR_ErrorCodeToString( result ) );
exit( 42 );
}
return value;
}
//-----------------------------------------------------------------------------
void setPropI( HOBJ hProp, int value, int index )
//-----------------------------------------------------------------------------
{
TPROPHANDLING_ERROR result = PROPHANDLING_NO_ERROR;
if( ( result = OBJ_SetI( hProp, value, index ) ) != PROPHANDLING_NO_ERROR )
{
printf( "setPropI: Failed to write property value(%s).\n", DMR_ErrorCodeToString( result ) );
exit( 42 );
}
}
//-----------------------------------------------------------------------------
int64_type getPropI64( HOBJ hProp, int index )
//-----------------------------------------------------------------------------
{
int64_type value = 0;
TPROPHANDLING_ERROR result = PROPHANDLING_NO_ERROR;
if( ( result = OBJ_GetI64( hProp, &value, index ) ) != PROPHANDLING_NO_ERROR )
{
printf( "getPropI: Failed to read property value(%s).\n", DMR_ErrorCodeToString( result ) );
exit( 42 );
}
return value;
}
//-----------------------------------------------------------------------------
void setPropI64( HOBJ hProp, int64_type value, int index )
//-----------------------------------------------------------------------------
{
TPROPHANDLING_ERROR result = PROPHANDLING_NO_ERROR;
if( ( result = OBJ_SetI64( hProp, value, index ) ) != PROPHANDLING_NO_ERROR )
{
printf( "setPropI: Failed to write property value(%s).\n", DMR_ErrorCodeToString( result ) );
exit( 42 );
}
}
//-----------------------------------------------------------------------------
void* getPropP( HOBJ hProp, int index )
//-----------------------------------------------------------------------------
{
void* value = 0;
TPROPHANDLING_ERROR result = PROPHANDLING_NO_ERROR;
if( ( result = OBJ_GetP( hProp, &value, index ) ) != PROPHANDLING_NO_ERROR )
{
printf( "getPropP: Failed to read property value(%s).\n", DMR_ErrorCodeToString( result ) );
exit( 42 );
}
return value;
}
//-----------------------------------------------------------------------------
void setPropP( HOBJ hProp, void* value, int index )
//-----------------------------------------------------------------------------
{
TPROPHANDLING_ERROR result = PROPHANDLING_NO_ERROR;
if( ( result = OBJ_SetP( hProp, value, index ) ) != PROPHANDLING_NO_ERROR )
{
printf( "setPropP: Failed to write property value(%s).\n", DMR_ErrorCodeToString( result ) );
exit( 42 );
}
}
//-----------------------------------------------------------------------------
void setPropS( HOBJ hProp, const char* pVal, int index )
//-----------------------------------------------------------------------------
{
TPROPHANDLING_ERROR result = PROPHANDLING_NO_ERROR;
if( ( result = OBJ_SetS( hProp, pVal, index ) ) != PROPHANDLING_NO_ERROR )
{
printf( "setPropS: Failed to write property value %s :%s.\n", pVal, DMR_ErrorCodeToString( result ) );
exit( 42 );
}
}
//-----------------------------------------------------------------------------
// This function will try to obtain the handle to a certain driver feature
HOBJ getDriverFeature( HDRV hDrv, const char* pFeatureName, const char* pFeatureType, const char* pAddListName, TDMR_ListType type, unsigned int searchMode )
//-----------------------------------------------------------------------------
{
TDMR_ERROR dmrResult = DMR_NO_ERROR;
HOBJ hObj = INVALID_ID;
HLIST baseList = INVALID_ID;
// try to locate the base list for these property
if( ( dmrResult = DMR_FindList( hDrv, pAddListName, type, 0, &baseList ) ) == DMR_NO_ERROR )
{
// try to locate the property
TPROPHANDLING_ERROR objResult;
if( ( objResult = OBJ_GetHandleEx( baseList, pFeatureName, &hObj, searchMode, INT_MAX ) ) != PROPHANDLING_NO_ERROR )
{
printf( "OBJ_GetHandleEx for '%s' failed: %d Handle: %d. This %s might not be supported by this device\n", pFeatureName, objResult, hObj, pFeatureType );
}
}
else
{
printf( "DMR_FindList failed: %d. Lists of type %d are not available for this device\n", dmrResult, type );
}
return hObj;
}
//-----------------------------------------------------------------------------
// This function will try to obtain the handle to a certain driver feature list
HOBJ getDriverList( HDRV hDrv, const char* pListName, const char* pAddListName, TDMR_ListType type )
//-----------------------------------------------------------------------------
{
return getDriverFeature( hDrv, pListName, "list", pAddListName, type, smIgnoreProperties | smIgnoreMethods );
}
//-----------------------------------------------------------------------------
// This function will try to obtain the handle to a certain driver property
HOBJ getDriverProperty( HDRV hDrv, const char* pPropName, const char* pAddListName, TDMR_ListType type )
//-----------------------------------------------------------------------------
{
return getDriverFeature( hDrv, pPropName, "property", pAddListName, type, smIgnoreLists | smIgnoreMethods );
}
//-----------------------------------------------------------------------------
// This function will try to obtain the handle to a certain driver property
HOBJ getDriverMethod( HDRV hDrv, const char* pPropName, const char* pAddListName, TDMR_ListType type )
//-----------------------------------------------------------------------------
{
return getDriverFeature( hDrv, pPropName, "method", pAddListName, type, smIgnoreProperties | smIgnoreLists );
}
//-----------------------------------------------------------------------------
HOBJ getDeviceProp( HDEV hDev, const char* pPropName )
//-----------------------------------------------------------------------------
{
TPROPHANDLING_ERROR objResult;
HOBJ hProp = INVALID_ID;
// try to locate the property
if( ( objResult = OBJ_GetHandleEx( hDev, pPropName, &hProp, 0, -1 ) ) != PROPHANDLING_NO_ERROR )
{
printf( "OBJ_GetHandleEx failed for property '%s': %d Handle: %d\n", pPropName, objResult, hProp );
}
return hProp;
}
//-----------------------------------------------------------------------------
HOBJ getInfoProp( HDRV hDrv, const char* pPropName )
//-----------------------------------------------------------------------------
{
return getDriverProperty( hDrv, pPropName, 0, dmltInfo );
}
//-----------------------------------------------------------------------------
HOBJ getIOSubSystemProp( HDRV hDrv, const char* pPropName )
//-----------------------------------------------------------------------------
{
return getDriverProperty( hDrv, pPropName, 0, dmltIOSubSystem );
}
//-----------------------------------------------------------------------------
HOBJ getRequestCtrlProp( HDRV hDrv, const char* pRequestCtrlName, const char* pPropName )
//-----------------------------------------------------------------------------
{
return getDriverProperty( hDrv, pPropName, pRequestCtrlName, dmltRequestCtrl );
}
//-----------------------------------------------------------------------------
HOBJ getRequestProp( HDRV hDrv, int requestNr, const char* pPropName )
//-----------------------------------------------------------------------------
{
char buf[BUF_SIZE];
#if defined(_MSC_VER) && (_MSC_VER >= 1400) // is at least VC 2005 compiler?
sprintf_s( buf, BUF_SIZE, "Entry %d", requestNr );
#else
sprintf( buf, "Entry %d", requestNr );
#endif // #if defined(_MSC_VER) && (_MSC_VER >= 1400) // is at least VC 2005 compiler?
return getDriverProperty( hDrv, pPropName, buf, dmltRequest );
}
//-----------------------------------------------------------------------------
HOBJ getSettingProp( HDRV hDrv, const char* pSettingName, const char* pPropName )
//-----------------------------------------------------------------------------
{
return getDriverProperty( hDrv, pPropName, pSettingName, dmltSetting );
}
//-----------------------------------------------------------------------------
HOBJ getSettingMethod( HDRV hDrv, const char* pSettingName, const char* pMethodName )
//-----------------------------------------------------------------------------
{
return getDriverMethod( hDrv, pMethodName, pSettingName, dmltSetting );
}
//-----------------------------------------------------------------------------
HOBJ getStatisticProp( HDRV hDrv, const char* pPropName )
//-----------------------------------------------------------------------------
{
return getDriverProperty( hDrv, pPropName, 0, dmltStatistics );
}
//-----------------------------------------------------------------------------
HOBJ getSystemSettingProp( HDRV hDrv, const char* pPropName )
//-----------------------------------------------------------------------------
{
return getDriverProperty( hDrv, pPropName, 0, dmltSystemSettings );
}
//-----------------------------------------------------------------------------
TPROPHANDLING_ERROR getStringValue( HOBJ hObj, char** pBuf, int index )
//-----------------------------------------------------------------------------
{
size_t bufSize = DEFAULT_STRING_SIZE_LIMIT;
TPROPHANDLING_ERROR result = PROPHANDLING_NO_ERROR;
static const int BUFFER_INCREMENT_FACTOR = 2;
*pBuf = ( char* )calloc( 1, bufSize );
while( ( result = OBJ_GetS( hObj, *pBuf, bufSize, index ) ) == PROPHANDLING_INPUT_BUFFER_TOO_SMALL )
{
bufSize *= BUFFER_INCREMENT_FACTOR;
*pBuf = ( char* )realloc( *pBuf, bufSize );
}
if( result != PROPHANDLING_NO_ERROR )
{
printf( "Error while reading string property value: Error code: %d(%s).\n", result, DMR_ErrorCodeToString( result ) );
}
return result;
}
//-----------------------------------------------------------------------------
TPROPHANDLING_ERROR getValueAsString( HOBJ hObj, const char* pFormat, char** pBuf, int index )
//-----------------------------------------------------------------------------
{
size_t bufSize = DEFAULT_STRING_SIZE_LIMIT;
TPROPHANDLING_ERROR result = PROPHANDLING_NO_ERROR;
*pBuf = ( char* )calloc( 1, bufSize );
while( ( result = OBJ_GetSFormattedEx( hObj, *pBuf, &bufSize, pFormat, index ) ) == PROPHANDLING_INPUT_BUFFER_TOO_SMALL )
{
*pBuf = ( char* )realloc( *pBuf, bufSize );
}
if( result != PROPHANDLING_NO_ERROR )
{
printf( "Error while reading string property value: Error code: %d(%s).\n", result, DMR_ErrorCodeToString( result ) );
}
return result;
}
//-----------------------------------------------------------------------------
// Start the acquisition manually if this was requested(this is to prepare the driver for data capture and tell the device to start streaming data)
// Whether this is needed or not depends on the property 'AcquisitionStartStopBehaviour' in the list referenced by 'HDEV'.
void manuallyStartAcquisitionIfNeeded( HDRV hDrv )
//-----------------------------------------------------------------------------
{
const TDMR_ERROR result = DMR_AcquisitionStart( hDrv );
if( ( result != DMR_NO_ERROR ) &&
( result != DMR_FEATURE_NOT_AVAILABLE ) )
{
printf( "DMR_AcquisitionStart: Unexpected error(code: %d(%s))\n", result, DMR_ErrorCodeToString( result ) );
}
}
//-----------------------------------------------------------------------------
// Stop the acquisition manually if this was requested.
// Whether this is needed or not depends on the property 'AcquisitionStartStopBehaviour' in the list referenced by 'HDEV'.
void manuallyStopAcquisitionIfNeeded( HDRV hDrv )
//-----------------------------------------------------------------------------
{
const TDMR_ERROR result = DMR_AcquisitionStop( hDrv );
if( ( result != DMR_NO_ERROR ) &&
( result != DMR_FEATURE_NOT_AVAILABLE ) )
{
printf( "DMR_AcquisitionStop: Unexpected error(code: %d(%s))\n", result, DMR_ErrorCodeToString( result ) );
}
}
//-----------------------------------------------------------------------------
void modifyEnumPropertyI( HDRV hDrv, const char* pSettingName, const char* pPropName )
//-----------------------------------------------------------------------------
{
HOBJ hProp = INVALID_ID;
unsigned int dictValCount = 0;
int* dictVals = NULL;
TPROPHANDLING_ERROR result = PROPHANDLING_NO_ERROR;
printf( "Trying to modify property %s:\n", pPropName );
if( ( hProp = getSettingProp( hDrv, pSettingName, pPropName ) ) != INVALID_ID )
{
if( ( result = readTranslationDictValuesI( hProp, &dictVals, &dictValCount, 0 ) ) == PROPHANDLING_NO_ERROR )
{
int value = 0;
printf( "Please select one of the values listed above: " );
value = getIntValFromSTDIn();
free( dictVals );
// set the new trigger mode
if( ( result = OBJ_SetI( hProp, value, 0 ) ) != PROPHANDLING_NO_ERROR )
{
printf( "Failed to set new value for %s. Error code: %d(%s).\n", pPropName, result, DMR_ErrorCodeToString( result ) );
}
}
}
}
//-----------------------------------------------------------------------------
TPROPHANDLING_ERROR readTranslationDictValuesI( HOBJ hObj, int** pDictValues, unsigned int* pDictValCnt, unsigned int silent )
//-----------------------------------------------------------------------------
{
TPROPHANDLING_ERROR funcResult = PROPHANDLING_NO_ERROR;
char** ppBuf = 0;
unsigned int i = 0;
size_t bufSize = 0;
const size_t BUFFER_INCREMENT_FACTOR = 6;
if( ( funcResult = OBJ_GetDictSize( hObj, pDictValCnt ) ) != PROPHANDLING_NO_ERROR )
{
return funcResult;
}
*pDictValues = ( int* )calloc( *pDictValCnt, sizeof( int ) );
if( !( *pDictValues ) )
{
printf( "Failed to allocate memory for integer dictionary!\n" );
return PROPHANDLING_INPUT_BUFFER_TOO_SMALL;
}
ppBuf = ( char** )calloc( *pDictValCnt, sizeof( char* ) );
if( !ppBuf )
{
free( *pDictValues );
printf( "Failed to allocate memory for string dictionary!\n" );
return PROPHANDLING_INPUT_BUFFER_TOO_SMALL;
}
bufSize = DEFAULT_STRING_SIZE_LIMIT;
for( i = 0; i < *pDictValCnt; i++ )
{
ppBuf[i] = ( char* )calloc( 1, bufSize );
}
while( ( funcResult = OBJ_GetIDictEntries( hObj, ppBuf, bufSize, *pDictValues, ( size_t ) * pDictValCnt ) ) == PROPHANDLING_INPUT_BUFFER_TOO_SMALL )
{
bufSize *= BUFFER_INCREMENT_FACTOR;
for( i = 0; i < *pDictValCnt; i++ )
{
ppBuf[i] = ( char* )realloc( ppBuf[i], bufSize );
}
}
if( ( funcResult == PROPHANDLING_NO_ERROR ) &&
( silent == 0 ) )
{
printf( "Got the following dictionary:\n" );
for( i = 0; i < *pDictValCnt; i++ )
{
printf( "[%d]: %s(numerical rep: %d)\n", i, ppBuf[i] ? ppBuf[i] : "!NO MEMORY!", ( *pDictValues )[i] );
}
}
// free memory again
for( i = 0; i < *pDictValCnt; i++ )
{
free( ppBuf[i] );
}
free( ppBuf );
return funcResult;
}
//-----------------------------------------------------------------------------
void conditionalSetPropI( HOBJ hProp, int value, unsigned int silent )
//-----------------------------------------------------------------------------
{
unsigned int dictValCount = 0;
size_t i = 0;
int* dictVals = NULL;
TPROPHANDLING_ERROR result = PROPHANDLING_NO_ERROR;
char bufName[BUF_SIZE_LARGE];
char* pBufValue = 0;
if( ( result = readTranslationDictValuesI( hProp, &dictVals, &dictValCount, silent ) ) == PROPHANDLING_NO_ERROR )
{
for( i = 0; i < dictValCount; i++ )
{
if( dictVals[i] == value )
{
setPropI( hProp, value, 0 );
memset( bufName, '\0', BUF_SIZE_LARGE );
OBJ_GetName( hProp, bufName, BUF_SIZE_LARGE );
getValueAsString( hProp, 0, &pBufValue, 0 );
if( silent == 0 )
{
printf( "Property '%s' set to '%s'.\n", bufName, pBufValue );
}
free( pBufValue );
break;
}
}
free( dictVals );
}
else
{
printf( "Failed to read translation dictionary from property. Error code: %d(%s).\n", result, DMR_ErrorCodeToString( result ) );
}
}
//-----------------------------------------------------------------------------
int getDeviceFromUserInput( HDEV* phDevice, SUPPORTED_DEVICE_CHECK pSupportedDeviceCheckFn, unsigned int automaticallyUseGenICamInterface )
//-----------------------------------------------------------------------------
{
TDMR_ERROR result = DMR_NO_ERROR;
unsigned int i = 0;
unsigned int deviceCount = 0;
unsigned int deviceNumber = 0;
HOBJ hPropSerial = INVALID_ID;
HOBJ hPropProduct = INVALID_ID;
HOBJ hPropInterfaceLayout = INVALID_ID;
HOBJ hPropAcquisitionStartStopBehaviour = INVALID_ID;
char* pSerialStringBuffer = NULL;
char* pProductStringBuffer = NULL;
if( ( result = DMR_GetDeviceCount( &deviceCount ) ) != DMR_NO_ERROR )
{
printf( "DMR_GetDeviceCount failed (code: %d(%s))\n", result, DMR_ErrorCodeToString( result ) );
END_APPLICATION;
}
if( deviceCount == 0 )
{
printf( "No compliant device detected.\n" );
END_APPLICATION;
}
printf( "%d compliant devices detected.\n", deviceCount );
for( i = 0; i < deviceCount; i++ )
{
// try to get access to the device
if( ( result = DMR_GetDevice( phDevice, dmdsmSerial, "*", i, '*' ) ) != DMR_NO_ERROR )
{
printf( "DMR_GetDevice(%d) failed (code: %d(%s))\n", i, result, DMR_ErrorCodeToString( result ) );
END_APPLICATION;
}
if( ( hPropSerial = getDeviceProp( *phDevice, "Serial" ) ) == INVALID_ID )
{
continue;
}
getStringValue( hPropSerial, &pSerialStringBuffer, 0 );
if( !pSupportedDeviceCheckFn || pSupportedDeviceCheckFn( *phDevice ) )
{
if( ( hPropProduct = getDeviceProp( *phDevice, "Product" ) ) == INVALID_ID )
{
continue;
}
getStringValue( hPropProduct, &pProductStringBuffer, 0 );
printf( "[%d] %s (%s", i, pSerialStringBuffer, pProductStringBuffer );
if( ( hPropInterfaceLayout = getDeviceProp( *phDevice, "InterfaceLayout" ) ) != INVALID_ID )
{
char* pStringBuffer = NULL;
getValueAsString( hPropInterfaceLayout, NULL, &pStringBuffer, 0 );
if( automaticallyUseGenICamInterface != 0 )
{
conditionalSetPropI( hPropInterfaceLayout, dilGenICam, 1 );
}
printf( ", interface layout: %s", pStringBuffer );
free( pStringBuffer );
}
if( ( hPropAcquisitionStartStopBehaviour = getDeviceProp( *phDevice, "AcquisitionStartStopBehaviour" ) ) != INVALID_ID )
{
char* pStringBuffer = NULL;
conditionalSetPropI( hPropAcquisitionStartStopBehaviour, assbUser, 1 );
getValueAsString( hPropAcquisitionStartStopBehaviour, NULL, &pStringBuffer, 0 );
printf( ", acquisition start/stop behaviour: %s", pStringBuffer );
free( pStringBuffer );
}
printf( ")\n" );
free( pProductStringBuffer );
}
else
{
printf( "%s is not supported by this application.\n", pSerialStringBuffer );
}
free( pSerialStringBuffer );
}
printf( "Please enter the number in brackets followed by [ENTER] to open it: " );
deviceNumber = getIntValFromSTDIn();
// remove the '\n' from the stream
fgetc( stdin );
// try to get access to the selected device
if( ( result = DMR_GetDevice( phDevice, dmdsmSerial, "*", deviceNumber, '*' ) ) != DMR_NO_ERROR )
{
printf( "DMR_GetDevice(%d) failed (code: %d(%s))\n", deviceNumber, result, DMR_ErrorCodeToString( result ) );
printf( "DMR_Close: %d\n", DMR_Close() );
END_APPLICATION;
}
return 0;
}
//-----------------------------------------------------------------------------
static unsigned int isFeatureFlagSet( HOBJ hObj, TComponentFlag flag )
//-----------------------------------------------------------------------------
{
TComponentFlag flags;
if( ( hObj == INVALID_ID ) ||
( OBJ_GetFlags( hObj, &flags ) != PROPHANDLING_NO_ERROR ) )
{
return 0;
}
return ( ( flags & flag ) != 0 );
}
//-----------------------------------------------------------------------------
unsigned int isFeatureReadable( HOBJ hObj )
//-----------------------------------------------------------------------------
{
return isFeatureFlagSet( hObj, cfReadAccess );
}
//-----------------------------------------------------------------------------
unsigned int isFeatureWriteable( HOBJ hObj )
//-----------------------------------------------------------------------------
{
return isFeatureFlagSet( hObj, cfWriteAccess );
}
#if defined(linux) || defined(__linux) || defined(__linux__)
# include <sys/types.h>
# include <unistd.h>
//-----------------------------------------------------------------------------
// returns 0 if timeout, else 1
unsigned waitForInput( int maxWait_sec, int fd )
//-----------------------------------------------------------------------------
{
fd_set rfds;
struct timeval tv;
FD_ZERO( &rfds );
FD_SET( fd, &rfds );
tv.tv_sec = maxWait_sec ;
tv.tv_usec = 0;
return select( fd + 1, &rfds, NULL, NULL, &tv );
}
#endif // #if defined(linux) || defined(__linux) || defined(__linux__)

@ -0,0 +1,71 @@
//-----------------------------------------------------------------------------
#ifndef exampleHelper_CH
#define exampleHelper_CH exampleHelper_CH
//-----------------------------------------------------------------------------
#include <mvDeviceManager/Include/mvDeviceManager.h>
#define END_APPLICATION \
printf( "Press [ENTER] to end the application.\n" ); \
return getchar() == EOF ? 2 : 1;
#if defined(linux) || defined(__linux) || defined(__linux__)
unsigned waitForInput( int maxWait_sec, int fd );
#endif // #if defined(linux) || defined(__linux) || defined(__linux__)
int getIntValFromSTDIn( void );
int getPropI( HOBJ hProp, int index );
void setPropI( HOBJ hProp, int value, int index );
int64_type getPropI64( HOBJ hProp, int index );
void setPropI64( HOBJ hProp, int64_type value, int index );
void* getPropP( HOBJ hProp, int index );
void setPropP( HOBJ hProp, void* value, int index );
void setPropS( HOBJ hProp, const char* pVal, int index );
HOBJ getDriverList( HDRV hDrv, const char* pListName, const char* pAddListName, TDMR_ListType type );
HOBJ getDriverProperty( HDRV hDrv, const char* pPropName, const char* pAddListName, TDMR_ListType type );
HOBJ getDriverMethod( HDRV hDrv, const char* pMethodName, const char* pAddListName, TDMR_ListType type );
HOBJ getDeviceProp( HDEV hDev, const char* pPropName );
HOBJ getInfoProp( HDRV hDrv, const char* pPropName );
HOBJ getIOSubSystemProp( HDRV hDrv, const char* pPropName );
HOBJ getRequestCtrlProp( HDRV hDrv, const char* pRequestCtrlName, const char* pPropName );
HOBJ getRequestProp( HDRV hDrv, int requestNr, const char* pPropName );
HOBJ getSettingProp( HDRV hDrv, const char* pSettingName, const char* pPropName );
HOBJ getSettingMethod( HDRV hDrv, const char* pSettingName, const char* pMethodName );
HOBJ getStatisticProp( HDRV hDrv, const char* pPropName );
HOBJ getSystemSettingProp( HDRV hDrv, const char* pPropName );
unsigned int isFeatureReadable( HOBJ hObj );
unsigned int isFeatureWriteable( HOBJ hObj );
typedef unsigned int( *SUPPORTED_DEVICE_CHECK )( const HDEV );
int getDeviceFromUserInput( HDEV* phDevice, SUPPORTED_DEVICE_CHECK pSupportedDeviceCheckFn, unsigned int automaticallyUseGenICamInterface );
/// \brief Reads the value of a feature as a string
/// \note
/// pBuf must be freed by the caller
TPROPHANDLING_ERROR getStringValue( HOBJ hObj, char** pBuf, int index );
/// \brief Reads the value of a feature as a string
/// \note
/// pBuf must be freed by the caller
TPROPHANDLING_ERROR getValueAsString( HOBJ hObj, const char* pFormat, char** pBuf, int index );
void modifyEnumPropertyI( HDRV hDrv, const char* pSettingName, const char* pPropName );
/// \brief Shows how to read the translation dictionary of an integer property and returns all the
/// integer values in the dictionary.
///
/// \note
/// \a pDictValues must be freed by the caller.
TPROPHANDLING_ERROR readTranslationDictValuesI( HOBJ hObj, int** pDictValues, unsigned int* pDictValCnt, unsigned int silent );
/// \brief Sets an enumerated integer property to a certain value if this value is supported by
/// the property.
void conditionalSetPropI( HOBJ hObj, int value, unsigned int silent );
/// \brief Start the acquisition manually if this was requested(this is to prepare the driver for data capture and tell the device to start streaming data)
///
/// Whether this is needed or not depends on the property 'AcquisitionStartStopBehaviour' in the list referenced by 'HDEV'.
void manuallyStartAcquisitionIfNeeded( HDRV hDrv );
/// \brief Stop the acquisition manually if this was requested.
///
/// Whether this is needed or not depends on the property 'AcquisitionStartStopBehaviour' in the list referenced by 'HDEV'.
void manuallyStopAcquisitionIfNeeded( HDRV hDrv );
#endif // exampleHelper_CH

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

@ -0,0 +1,296 @@
//-----------------------------------------------------------------------------
#ifndef MV_ICON_XPM
#define MV_ICON_XPM MV_ICON_XPM
//-----------------------------------------------------------------------------
static const char* mvIcon_xpm[] = {
"32 32 255 2",
" c #000100",
". c #030005",
"+ c #01000D",
"@ c #000206",
"# c #03011D",
"$ c #000407",
"% c #000222",
"& c #010315",
"* c #000319",
"= c #000225",
"- c #000509",
"; c #01070B",
"> c #050803",
", c #000912",
"' c #010929",
") c #000B18",
"! c #080B07",
"~ c #05092E",
"{ c #020B2A",
"] c #000C29",
"^ c #020C3A",
"/ c #080D1E",
"( c #000E30",
"_ c #000F2C",
": c #020E36",
"< c #0F1315",
"[ c #05143B",
"} c #001743",
"| c #00193A",
"1 c #021844",
"2 c #071839",
"3 c #14181A",
"4 c #0B1840",
"5 c #001B4C",
"6 c #001D48",
"7 c #021E55",
"8 c #191C1E",
"9 c #081E45",
"0 c #05213D",
"a c #101F32",
"b c #062153",
"c c #002742",
"d c #1C2128",
"e c #172231",
"f c #00265D",
"g c #11253D",
"h c #08274E",
"i c #1B2338",
"j c #002955",
"k c #102648",
"l c #0F2945",
"m c #092B4C",
"n c #072B5D",
"o c #22282E",
"p c #0A2E4A",
"q c #0D2D4E",
"r c #003061",
"s c #013067",
"t c #162D3F",
"u c #142D4A",
"v c #1F2B3A",
"w c #073057",
"x c #0B2F5C",
"y c #113052",
"z c #053466",
"A c #063651",
"B c #00375D",
"C c #00366C",
"D c #242F3E",
"E c #0E345B",
"F c #053762",
"G c #003970",
"H c #0D3758",
"I c #12365D",
"J c #2E3133",
"K c #0D3769",
"L c #003B6C",
"M c #10366F",
"N c #0A3965",
"O c #153663",
"P c #0E386B",
"Q c #2B333E",
"R c #043B72",
"S c #143860",
"T c #23354E",
"U c #353337",
"V c #113A6C",
"W c #073D74",
"X c #0B3F59",
"Y c #133B6D",
"Z c #153A72",
"` c #323638",
" . c #0E3E64",
".. c #35383A",
"+. c #2E3949",
"@. c #1A4061",
"#. c #17406D",
"$. c #154269",
"%. c #124465",
"&. c #264058",
"*. c #084963",
"=. c #3E3C3F",
"-. c #333E59",
";. c #2C4260",
">. c #294467",
",. c #3E4244",
"'. c #104E6E",
"). c #3E444B",
"!. c #44434C",
"~. c #00566F",
"{. c #175066",
"]. c #324867",
"^. c #3E4752",
"/. c #464755",
"(. c #324C70",
"_. c #0D5878",
":. c #484C4E",
"<. c #424D5E",
"[. c #37506A",
"}. c #474D54",
"|. c #00607F",
"1. c #165B6F",
"2. c #00637B",
"3. c #4E504D",
"4. c #3E5373",
"5. c #475263",
"6. c #455369",
"7. c #50524F",
"8. c #0A6483",
"9. c #4E545C",
"0. c #3A5877",
"a. c #505456",
"b. c #126578",
"c. c #006B89",
"d. c #405A73",
"e. c #505965",
"f. c #4A5C6C",
"g. c #565A5C",
"h. c #0A6F81",
"i. c #4E5D73",
"j. c #515D6E",
"k. c #555D6A",
"l. c #176F88",
"m. c #456282",
"n. c #0F7391",
"o. c #4F6272",
"p. c #5D6163",
"q. c #45668B",
"r. c #62616A",
"s. c #007C99",
"t. c #596476",
"u. c #52687D",
"v. c #0C7D8E",
"w. c #516A85",
"x. c #61676F",
"y. c #576A7A",
"z. c #207A8C",
"A. c #1A7E96",
"B. c #606C7E",
"C. c #526F8F",
"D. c #008898",
"E. c #636C78",
"F. c #5F7283",
"G. c #68717D",
"H. c #25849C",
"I. c #188AA1",
"J. c #0095A4",
"K. c #647A90",
"L. c #2F8B97",
"M. c #75797C",
"N. c #747B82",
"O. c #338EA6",
"P. c #2497A7",
"Q. c #06A1B6",
"R. c #6C85A1",
"S. c #7F827F",
"T. c #199FAE",
"U. c #3D96A2",
"V. c #3D96AF",
"W. c #758899",
"X. c #838991",
"Y. c #808E94",
"Z. c #858F9C",
"`. c #579EA6",
" + c #589EB3",
".+ c #949296",
"++ c #8F959D",
"@+ c #3BADB6",
"#+ c #919598",
"$+ c #35AFBE",
"%+ c #60A7BB",
"&+ c #919AA7",
"*+ c #6AA7B1",
"=+ c #999C98",
"-+ c #92A3AF",
";+ c #75ADBE",
">+ c #92A6B8",
",+ c #57B9C4",
"'+ c #7EAFB5",
")+ c #85B5C7",
"!+ c #A8ADAF",
"~+ c #A1AFB6",
"{+ c #8DB6BD",
"]+ c #73C4CA",
"^+ c #6FC5D1",
"/+ c #90BCC9",
"(+ c #B2B6B9",
"_+ c #9FBDC0",
":+ c #B1B8C1",
"<+ c #9DC1CF",
"[+ c #B0BEC5",
"}+ c #BABCB9",
"|+ c #B4BDCB",
"1+ c #B7BEC6",
"2+ c #ACC2C7",
"3+ c #BABFC1",
"4+ c #86CED6",
"5+ c #B1C3CF",
"6+ c #AAC6D6",
"7+ c #BFC6CE",
"8+ c #B3CACE",
"9+ c #AFCBDB",
"0+ c #C4C9CC",
"a+ c #C1CDCE",
"b+ c #BCCEDA",
"c+ c #9BD9E3",
"d+ c #9ED9DD",
"e+ c #BED0DC",
"f+ c #C7CED6",
"g+ c #C6CFDE",
"h+ c #CBCFD2",
"i+ c #C6D3D3",
"j+ c #D0D5D7",
"k+ c #D2D5D1",
"l+ c #D1D8E1",
"m+ c #D3D8DA",
"n+ c #B0E3E9",
"o+ c #D7DBDE",
"p+ c #DEE0DD",
"q+ c #DCE3EB",
"r+ c #C2ECF3",
"s+ c #C5ECED",
"t+ c #E1E6E9",
"u+ c #E8ECEF",
"v+ c #D4F3F6",
"w+ c #EEF2F5",
"x+ c #E2F9FE",
"y+ c #F3F8FA",
"z+ c #F6F8F5",
"A+ c #E8FDFC",
"B+ c #F7FBFE",
"C+ c #F2FEFF",
"D+ c #FBFDFA",
"E+ c #FAFFFF",
"F+ c #FDFFFC",
": : [ 4 9 h w H %.'._.8.l.A.I.P.Q.$+,+^+4+c+n+r+v+x+A+E+F+F+F+F+",
"{ ( ( 2 | 0 c p A X *.{.1.b.h.v.v.L.U.`.*+'+{+_+2+8+a+i+j+k+k+j+",
"$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ > > > > $ > > > > - > > > ",
" ",
" ",
" ",
"$ $ $ $ $ $ $ $ $ $ > 8 8 ; $ $ ",
"$ $ $ $ $ $ $ $ $ ` S.(+p+z+u+j+(+S.U $ $ $ $ $ $ $ $ $ ",
"$ $ $ $ $ $ $ 7.(+F+F+F+F+F+F+F+F+F+B+(+3. $ $ $ $ $ $ $ ",
"$ $ $ $ $ $ =.}+F+F+F+!+:.8 3 ,.=+z+F+F+F+F+(+.. $ $ $ $ $ $ ",
", , , . g.D+F+F+t+,. 3 8 J o+F+F+F+F+B+p. . $ $ $ ",
", , }.:.$ t+F+F+j+< p.o+F+F+B+M. ! o+F+F+F+F+w+- J }. $ , ",
") !.y+:.d F+F+B+J #+F+F+0+.+0+F+!+ !.F+F+F+F+F+..o B+a. , ",
" !.B+F+) ).F+F+#+ x.F+F+p. r.F+9. h+F+F+F+F+r.. w+F+9. ",
").w+F+u+) 9.F+D+Q & u+F+++ ^.D !+0+ ++F+F+F+F+x.+ m+F+B+}.",
"o+F+F+y+e +.F+t+& <.F+F+D +.E.^.~++ N.o+ ++F+F+F+F+e./ u+F+F+w+",
"5.z+F+F+<.a F+j+& G.F+D+a f.X.i N.* h+Y. 3+F+F+F+D+t v B+F+F+k.",
"# <.z+F+Z.+ h+t+# y.F+F+t.* [+++/.0+j+& T B+F+F+F+h+& B.F+F+j.* ",
"l % 6.D+u+# y.F+0 &.F+F+o+] _ -+1+&+{ ] f+F+F+F+F+F.+ j+F+o.% g ",
"u q ( [.z+W.% o+W.= 7+F+F+f+-.= = = -.l+F+F+F+F+o+% u.F+i.{ l u ",
"q y y : ].7+;.[.7+[ ].F+F+F+E+:+&+1+F+F+F+F+F+y+;.k |+d.: q y q ",
"E E E E 6 @.w.1 m.w.^ K.F+F+F+F+F+F+F+F+F+F+u+4.^ 0.>.6 E E w E ",
"F F F F S j x I j $.F 5 C.t+F+F+F+F+F+F+F+|+(.5 I x j S E E E E ",
"O O O O O O z F O x F F 5 N R.5+q+q+l+>+q.b b F F O F F F F F F ",
"P P P P P P P P P P P L L n 7 r #.#.L f 7 z L K K K K K K K K K ",
"V V V V V V V V V V V V V V P C s s C K V V V V V V V V V V V V ",
"Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y R R R Y Y Y Y Y Y Y Y Y Y Y Y Y ",
"R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R ",
"W W W W W W R R R R R R R G G G G G M G G G M M C C M M M M M M ",
"W W W W W W W R R R R R R R Z G Z Z G G G M M M M G G G G G G M ",
"} 1 6 6 h h w B .%.'._.|.c.n.s.H.O.V. +%+;+)+/+<+6+9+b+e+g+g+g+",
"~ ~ : [ 2 k m H X *.~.2.l.z.D.J.T.@+,+]+4+d+n+s+v+A+C+E+F+F+F+F+"};
#endif // MV_ICON_XPM

@ -0,0 +1,3 @@
#if defined(_MSC_VER) && (_MSC_VER >= 1400) // is at least VC 2005 compiler?
# pragma warning( pop )
#endif

@ -0,0 +1,7 @@
#if defined(_MSC_VER) && (_MSC_VER >= 1400) // is at least VC 2005 compiler?
# pragma warning( push )
# pragma warning( disable : 4127 ) // 'conditional expression is constant'
# pragma warning( disable : 4244 ) // 'conversion from 'Bla' to 'Blub', possible loss of data
# pragma warning( disable : 4251 ) // 'class 'Bla' needs to have dll-interface to be used by clients of class 'Blub''
# pragma warning( disable : 4800 ) // 'int' : forcing value to bool 'true' or 'false' (performance warning)
#endif

@ -0,0 +1,409 @@
#include "ProxyResolver.h"
#if _WIN32_WINNT < 0x0602 // This stuff became available with Windows 8
# define WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE 0x01000000
# define WINHTTP_CALLBACK_FLAG_GETPROXYFORURL_COMPLETE WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE
# define API_GET_PROXY_FOR_URL (6)
#endif // #if _WIN32_WINNT < _WIN32_WINNT_WIN8
PFNWINHTTPGETPROXYFORURLEX ProxyResolver::s_pfnWinhttpGetProxyForUrlEx = NULL;
PFNWINHTTPFREEPROXYLIST ProxyResolver::s_pfnWinhttpFreeProxyList = NULL;
PFNWINHTTPCREATEPROXYRESOLVER ProxyResolver::s_pfnWinhttpCreateProxyResolver = NULL;
PFNWINHTTPGETPROXYRESULT ProxyResolver::s_pfnWinhttpGetProxyResult = NULL;
//-----------------------------------------------------------------------------
ProxyResolver::ProxyResolver() : m_fInit( FALSE ), m_fExtendedAPI( FALSE ), m_dwError( ERROR_SUCCESS ), m_hEvent( 0 )
//-----------------------------------------------------------------------------
{
ZeroMemory( &m_wprProxyResult, sizeof( WINHTTP_PROXY_RESULT ) );
ZeroMemory( &m_wpiProxyInfo, sizeof( WINHTTP_PROXY_INFO ) );
HMODULE hWinhttp = GetModuleHandle( L"winhttp.dll" );
if( hWinhttp != NULL )
{
s_pfnWinhttpGetProxyForUrlEx = ( PFNWINHTTPGETPROXYFORURLEX )GetProcAddress( hWinhttp, "WinHttpGetProxyForUrlEx" );
s_pfnWinhttpFreeProxyList = ( PFNWINHTTPFREEPROXYLIST )GetProcAddress( hWinhttp, "WinHttpFreeProxyResult" );
s_pfnWinhttpCreateProxyResolver = ( PFNWINHTTPCREATEPROXYRESOLVER )GetProcAddress( hWinhttp, "WinHttpCreateProxyResolver" );
s_pfnWinhttpGetProxyResult = ( PFNWINHTTPGETPROXYRESULT )GetProcAddress( hWinhttp, "WinHttpGetProxyResult" );
}
m_fExtendedAPI = s_pfnWinhttpGetProxyForUrlEx && s_pfnWinhttpFreeProxyList && s_pfnWinhttpCreateProxyResolver && s_pfnWinhttpGetProxyResult;
}
//-----------------------------------------------------------------------------
ProxyResolver::~ProxyResolver()
//-----------------------------------------------------------------------------
{
if( m_wpiProxyInfo.lpszProxy != NULL )
{
GlobalFree( m_wpiProxyInfo.lpszProxy );
}
if( m_wpiProxyInfo.lpszProxyBypass != NULL )
{
GlobalFree( m_wpiProxyInfo.lpszProxyBypass );
}
if( m_fExtendedAPI )
{
s_pfnWinhttpFreeProxyList( &m_wprProxyResult );
}
if( m_hEvent != NULL )
{
CloseHandle( m_hEvent );
}
}
//-----------------------------------------------------------------------------
BOOL ProxyResolver::IsRecoverableAutoProxyError( _In_ DWORD dwError )
//-----------------------------------------------------------------------------
{
switch( dwError )
{
case ERROR_SUCCESS:
case ERROR_INVALID_PARAMETER:
case ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR:
case ERROR_WINHTTP_AUTODETECTION_FAILED:
case ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT:
case ERROR_WINHTTP_LOGIN_FAILURE:
case ERROR_WINHTTP_OPERATION_CANCELLED:
case ERROR_WINHTTP_TIMEOUT:
case ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT:
case ERROR_WINHTTP_UNRECOGNIZED_SCHEME:
return TRUE;
default:
break;
}
return FALSE;
}
//-----------------------------------------------------------------------------
VOID CALLBACK ProxyResolver::GetProxyCallBack( _In_ HINTERNET hResolver, _In_ DWORD_PTR dwContext, _In_ DWORD dwInternetStatus, _In_ PVOID pvStatusInformation, _In_ DWORD /*dwStatusInformationLength*/ )
//-----------------------------------------------------------------------------
{
ProxyResolver* pProxyResolver = ( ProxyResolver* )dwContext;
if( ( dwInternetStatus != WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE &&
dwInternetStatus != WINHTTP_CALLBACK_STATUS_REQUEST_ERROR ) ||
pProxyResolver == NULL )
{
return;
}
if( dwInternetStatus == WINHTTP_CALLBACK_STATUS_REQUEST_ERROR )
{
WINHTTP_ASYNC_RESULT* pAsyncResult = ( WINHTTP_ASYNC_RESULT* )pvStatusInformation;
if( pAsyncResult->dwResult != API_GET_PROXY_FOR_URL )
{
return;
}
pProxyResolver->m_dwError = pAsyncResult->dwError;
}
else if( dwInternetStatus == WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE )
{
pProxyResolver->m_dwError = s_pfnWinhttpGetProxyResult( hResolver, &pProxyResolver->m_wprProxyResult );
}
if( hResolver != NULL )
{
WinHttpCloseHandle( hResolver );
hResolver = NULL;
}
SetEvent( pProxyResolver->m_hEvent );
}
#define CLOSE_RESOLVER_HANDLE_AND_RETURN_ERROR_CODE(HRESOLVER, ERROR_CODE) \
if( HRESOLVER != NULL ) \
{ \
WinHttpCloseHandle( HRESOLVER ); \
} \
return ERROR_CODE
//-----------------------------------------------------------------------------
DWORD ProxyResolver::GetProxyForUrlEx( _In_ HINTERNET hSession, _In_z_ PCWSTR pwszUrl, _In_ WINHTTP_AUTOPROXY_OPTIONS* pAutoProxyOptions )
//-----------------------------------------------------------------------------
{
// Create proxy resolver handle. It's best to close the handle during call back.
HINTERNET hResolver = NULL;
DWORD dwError = s_pfnWinhttpCreateProxyResolver( hSession, &hResolver );
if( dwError != ERROR_SUCCESS )
{
CLOSE_RESOLVER_HANDLE_AND_RETURN_ERROR_CODE( hResolver, dwError );
}
// Sets up a callback function that WinHTTP can call as proxy results are resolved.
WINHTTP_STATUS_CALLBACK wscCallback = WinHttpSetStatusCallback( hResolver, GetProxyCallBack, WINHTTP_CALLBACK_FLAG_REQUEST_ERROR | WINHTTP_CALLBACK_FLAG_GETPROXYFORURL_COMPLETE, 0 );
if( wscCallback == WINHTTP_INVALID_STATUS_CALLBACK )
{
dwError = GetLastError();
CLOSE_RESOLVER_HANDLE_AND_RETURN_ERROR_CODE( hResolver, dwError );
}
// The extended API works in asynchronous mode, therefore wait until the
// results are set in the call back function.
dwError = s_pfnWinhttpGetProxyForUrlEx( hResolver, pwszUrl, pAutoProxyOptions, ( DWORD_PTR )this );
if( dwError != ERROR_IO_PENDING )
{
CLOSE_RESOLVER_HANDLE_AND_RETURN_ERROR_CODE( hResolver, dwError );
}
// The resolver handle will get closed in the callback and cannot be used any longer.
hResolver = NULL;
dwError = WaitForSingleObjectEx( m_hEvent, INFINITE, FALSE );
if( dwError != WAIT_OBJECT_0 )
{
return GetLastError();
}
return m_dwError;
}
//-----------------------------------------------------------------------------
_Success_( return == ERROR_SUCCESS ) DWORD ProxyResolver::GetProxyForAutoSettings( _In_ HINTERNET hSession, _In_z_ PCWSTR pwszUrl, _In_opt_z_ PCWSTR pwszAutoConfigUrl, _Outptr_result_maybenull_ PWSTR* ppwszProxy, _Outptr_result_maybenull_ PWSTR* ppwszProxyBypass )
//-----------------------------------------------------------------------------
{
DWORD dwError = ERROR_SUCCESS;
WINHTTP_AUTOPROXY_OPTIONS waoOptions = {};
WINHTTP_PROXY_INFO wpiProxyInfo = {};
*ppwszProxy = NULL;
*ppwszProxyBypass = NULL;
if( pwszAutoConfigUrl )
{
waoOptions.dwFlags = WINHTTP_AUTOPROXY_CONFIG_URL;
waoOptions.lpszAutoConfigUrl = pwszAutoConfigUrl;
}
else
{
waoOptions.dwFlags = WINHTTP_AUTOPROXY_AUTO_DETECT;
waoOptions.dwAutoDetectFlags = WINHTTP_AUTO_DETECT_TYPE_DHCP | WINHTTP_AUTO_DETECT_TYPE_DNS_A;
}
// First call with no autologon. Autologon prevents the
// session (in proc) or autoproxy service (out of proc) from caching
// the proxy script. This causes repetitive network traffic, so it is
// best not to do autologon unless it is required according to the
// result of WinHttpGetProxyForUrl.
// This applies to both WinHttpGetProxyForUrl and WinhttpGetProxyForUrlEx.
if( m_fExtendedAPI )
{
m_hEvent = CreateEventEx( NULL, NULL, 0, EVENT_ALL_ACCESS );
if( m_hEvent == NULL )
{
dwError = GetLastError();
goto quit;
}
dwError = GetProxyForUrlEx( hSession, pwszUrl, &waoOptions );
if( dwError != ERROR_WINHTTP_LOGIN_FAILURE )
{
// Unless we need to retry with auto-logon exit the function with the
// result, on success the proxy list will be stored in m_wprProxyResult
// by GetProxyCallBack.
goto quit;
}
// Enable autologon if challenged.
waoOptions.fAutoLogonIfChallenged = TRUE;
dwError = GetProxyForUrlEx( hSession, pwszUrl, &waoOptions );
goto quit;
}
if( !WinHttpGetProxyForUrl( hSession, pwszUrl, &waoOptions, &wpiProxyInfo ) )
{
dwError = GetLastError();
if( dwError != ERROR_WINHTTP_LOGIN_FAILURE )
{
goto quit;
}
// Enable autologon if challenged.
dwError = ERROR_SUCCESS;
waoOptions.fAutoLogonIfChallenged = TRUE;
if( !WinHttpGetProxyForUrl( hSession, pwszUrl, &waoOptions, &wpiProxyInfo ) )
{
dwError = GetLastError();
goto quit;
}
}
*ppwszProxy = wpiProxyInfo.lpszProxy;
wpiProxyInfo.lpszProxy = NULL;
*ppwszProxyBypass = wpiProxyInfo.lpszProxyBypass;
wpiProxyInfo.lpszProxyBypass = NULL;
quit:
if( wpiProxyInfo.lpszProxy )
{
GlobalFree( wpiProxyInfo.lpszProxy );
wpiProxyInfo.lpszProxy = NULL;
}
if( wpiProxyInfo.lpszProxyBypass )
{
GlobalFree( wpiProxyInfo.lpszProxyBypass );
wpiProxyInfo.lpszProxyBypass = NULL;
}
return dwError;
}
//-----------------------------------------------------------------------------
DWORD ProxyResolver::ResolveProxy( _In_ HINTERNET hSession, _In_z_ PCWSTR pwszUrl )
//-----------------------------------------------------------------------------
{
DWORD dwError = ERROR_SUCCESS;
WINHTTP_CURRENT_USER_IE_PROXY_CONFIG ProxyConfig = {};
PWSTR pwszProxy = NULL;
PWSTR pwszProxyBypass = NULL;
BOOL fFailOverValid = FALSE;
if( m_fInit )
{
dwError = ERROR_INVALID_OPERATION;
goto quit;
}
if( !WinHttpGetIEProxyConfigForCurrentUser( &ProxyConfig ) )
{
dwError = GetLastError();
if( dwError != ERROR_FILE_NOT_FOUND )
{
goto quit;
}
// No IE proxy settings found, just do autodetect.
ProxyConfig.fAutoDetect = TRUE;
dwError = ERROR_SUCCESS;
}
// Begin processing the proxy settings in the following order:
// 1) Auto-Detect if configured.
// 2) Auto-Config URL if configured.
// 3) Static Proxy Settings if configured.
//
// Once any of these methods succeed in finding a proxy we are finished.
// In the event one mechanism fails with an expected error code it is
// required to fall back to the next mechanism. If the request fails
// after exhausting all detected proxies, there should be no attempt
// to discover additional proxies.
if( ProxyConfig.fAutoDetect )
{
fFailOverValid = TRUE;
// Detect Proxy Settings.
dwError = GetProxyForAutoSettings( hSession, pwszUrl, NULL, &pwszProxy, &pwszProxyBypass );
if( dwError == ERROR_SUCCESS )
{
goto commit;
}
if( !IsRecoverableAutoProxyError( dwError ) )
{
goto quit;
}
// Fall back to Autoconfig URL or Static settings. An application can
// optionally take some action such as logging, or creating a mechanism
// to expose multiple error codes in the class.
dwError = ERROR_SUCCESS;
}
if( ProxyConfig.lpszAutoConfigUrl )
{
fFailOverValid = TRUE;
// Run autoproxy with AutoConfig URL.
dwError = GetProxyForAutoSettings( hSession, pwszUrl, ProxyConfig.lpszAutoConfigUrl, &pwszProxy, &pwszProxyBypass );
if( dwError == ERROR_SUCCESS )
{
goto commit;
}
if( !IsRecoverableAutoProxyError( dwError ) )
{
goto quit;
}
// Fall back to Static Settings. An application can optionally take some
// action such as logging, or creating a mechanism to to expose multiple
// error codes in the class.
dwError = ERROR_SUCCESS;
}
fFailOverValid = FALSE;
// Static Proxy Config. Failover is not valid for static proxy since
// it is always either a single proxy or a list containing protocol
// specific proxies such as "proxy" or http=httpproxy;https=sslproxy
pwszProxy = ProxyConfig.lpszProxy;
ProxyConfig.lpszProxy = NULL;
pwszProxyBypass = ProxyConfig.lpszProxyBypass;
ProxyConfig.lpszProxyBypass = NULL;
commit:
if( pwszProxy == NULL )
{
m_wpiProxyInfo.dwAccessType = WINHTTP_ACCESS_TYPE_NO_PROXY;
}
else
{
m_wpiProxyInfo.dwAccessType = WINHTTP_ACCESS_TYPE_NAMED_PROXY;
}
m_wpiProxyInfo.lpszProxy = pwszProxy;
pwszProxy = NULL;
m_wpiProxyInfo.lpszProxyBypass = pwszProxyBypass;
pwszProxyBypass = NULL;
m_fInit = TRUE;
quit:
if( pwszProxy != NULL )
{
GlobalFree( pwszProxy );
pwszProxy = NULL;
}
if( pwszProxyBypass != NULL )
{
GlobalFree( pwszProxyBypass );
pwszProxyBypass = NULL;
}
if( ProxyConfig.lpszAutoConfigUrl != NULL )
{
GlobalFree( ProxyConfig.lpszAutoConfigUrl );
ProxyConfig.lpszAutoConfigUrl = NULL;
}
if( ProxyConfig.lpszProxy != NULL )
{
GlobalFree( ProxyConfig.lpszProxy );
ProxyConfig.lpszProxy = NULL;
}
if( ProxyConfig.lpszProxyBypass != NULL )
{
GlobalFree( ProxyConfig.lpszProxyBypass );
ProxyConfig.lpszProxyBypass = NULL;
}
return dwError;
}
//-----------------------------------------------------------------------------
const WINHTTP_PROXY_RESULT_ENTRY* ProxyResolver::GetProxySetting( const DWORD index ) const
//-----------------------------------------------------------------------------
{
if( index < m_wprProxyResult.cEntries )
{
return &m_wprProxyResult.pEntries[index];
}
return 0;
}

@ -0,0 +1,52 @@
#pragma once
#include <windows.h>
#include <winhttp.h>
#if _WIN32_WINNT < 0x0602 // This stuff became available with Windows 8
typedef struct _WINHTTP_PROXY_RESULT_ENTRY
{
BOOL fProxy; // Is this a proxy or DIRECT?
BOOL fBypass; // If DIRECT, is it bypassing a proxy (intranet) or is all traffic DIRECT (internet)
INTERNET_SCHEME ProxyScheme; // The scheme of the proxy, SOCKS, HTTP (CERN Proxy), HTTPS (SSL through Proxy)
PWSTR pwszProxy; // Hostname of the proxy.
INTERNET_PORT ProxyPort; // Port of the proxy.
} WINHTTP_PROXY_RESULT_ENTRY;
typedef struct _WINHTTP_PROXY_RESULT
{
DWORD cEntries;
WINHTTP_PROXY_RESULT_ENTRY* pEntries;
} WINHTTP_PROXY_RESULT;
#endif // #if _WIN32_WINNT < 0x0602
typedef DWORD ( WINAPI* PFNWINHTTPGETPROXYFORURLEX )( HINTERNET, PCWSTR, WINHTTP_AUTOPROXY_OPTIONS*, DWORD_PTR );
typedef DWORD ( WINAPI* PFNWINHTTPFREEPROXYLIST )( WINHTTP_PROXY_RESULT* );
typedef DWORD ( WINAPI* PFNWINHTTPCREATEPROXYRESOLVER )( HINTERNET, HINTERNET* );
typedef DWORD ( WINAPI* PFNWINHTTPGETPROXYRESULT )( HINTERNET, WINHTTP_PROXY_RESULT* );
class ProxyResolver
{
BOOL m_fInit;
BOOL m_fExtendedAPI;
DWORD m_dwError;
HANDLE m_hEvent;
WINHTTP_PROXY_INFO m_wpiProxyInfo;
WINHTTP_PROXY_RESULT m_wprProxyResult;
BOOL IsRecoverableAutoProxyError( _In_ DWORD dwError );
VOID static CALLBACK GetProxyCallBack( _In_ HINTERNET hResolver, _In_ DWORD_PTR dwContext, _In_ DWORD dwInternetStatus, _In_ PVOID pvStatusInformation, _In_ DWORD dwStatusInformationLength );
DWORD GetProxyForUrlEx( _In_ HINTERNET hSession, _In_z_ PCWSTR pwszUrl, _In_ WINHTTP_AUTOPROXY_OPTIONS* pAutoProxyOptions );
_Success_( return == ERROR_SUCCESS ) DWORD GetProxyForAutoSettings( _In_ HINTERNET hSession, _In_z_ PCWSTR pwszUrl, _In_opt_z_ PCWSTR pwszAutoConfigUrl, _Outptr_result_maybenull_ PWSTR* ppwszProxy, _Outptr_result_maybenull_ PWSTR* ppwszProxyBypass );
static PFNWINHTTPGETPROXYFORURLEX s_pfnWinhttpGetProxyForUrlEx;
static PFNWINHTTPFREEPROXYLIST s_pfnWinhttpFreeProxyList;
static PFNWINHTTPCREATEPROXYRESOLVER s_pfnWinhttpCreateProxyResolver;
static PFNWINHTTPGETPROXYRESULT s_pfnWinhttpGetProxyResult;
public:
ProxyResolver();
~ProxyResolver();
DWORD ResolveProxy( _In_ HINTERNET hSession, _In_z_ PCWSTR pwszUrl );
const WINHTTP_PROXY_RESULT_ENTRY* GetProxySetting( const DWORD index ) const;
};

@ -0,0 +1,232 @@
//-----------------------------------------------------------------------------
#include "../ProxyResolverContext.h"
#include "ProxyResolver.h"
#include <lmcons.h>
using namespace std;
//=============================================================================
//================= Implementation ProxyResolverContextImpl ===================
//=============================================================================
//-----------------------------------------------------------------------------
struct ProxyResolverContextImpl
//-----------------------------------------------------------------------------
{
HINTERNET hProxyResolveSession;
ProxyResolver* pProxyResolver;
explicit ProxyResolverContextImpl( const wstring& userAgent ) : hProxyResolveSession( 0 ), pProxyResolver( 0 )
{
hProxyResolveSession = WinHttpOpen( userAgent.c_str(), WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, WINHTTP_FLAG_ASYNC );
if( hProxyResolveSession )
{
pProxyResolver = new ProxyResolver();
}
}
~ProxyResolverContextImpl()
{
delete pProxyResolver;
if( hProxyResolveSession )
{
WinHttpCloseHandle( hProxyResolveSession );
}
}
};
//=============================================================================
//================= Implementation ProxyResolverContext =======================
//=============================================================================
//-----------------------------------------------------------------------------
ProxyResolverContext::ProxyResolverContext( const wstring& userAgent, const wstring& url ) : pImpl_( new ProxyResolverContextImpl( userAgent ) )
//-----------------------------------------------------------------------------
{
if( pImpl_->pProxyResolver )
{
pImpl_->pProxyResolver->ResolveProxy( pImpl_->hProxyResolveSession, url.c_str() );
}
}
//-----------------------------------------------------------------------------
ProxyResolverContext::~ProxyResolverContext()
//-----------------------------------------------------------------------------
{
delete pImpl_;
}
//-----------------------------------------------------------------------------
wstring ProxyResolverContext::GetProxy( unsigned int index ) const
//-----------------------------------------------------------------------------
{
const WINHTTP_PROXY_RESULT_ENTRY* pProxyData = pImpl_->pProxyResolver->GetProxySetting( index );
return ( pProxyData && pProxyData->pwszProxy ) ? wstring( pProxyData->pwszProxy ) : wstring();
}
//-----------------------------------------------------------------------------
unsigned int ProxyResolverContext::GetProxyPort( unsigned int index ) const
//-----------------------------------------------------------------------------
{
const WINHTTP_PROXY_RESULT_ENTRY* pProxyData = pImpl_->pProxyResolver->GetProxySetting( index );
return pProxyData ? pProxyData->ProxyPort : 0;
}
//=============================================================================
//================= Implementation helper functions ===========================
//=============================================================================
//-----------------------------------------------------------------------------
/// \brief This function checks the token of the calling thread to see if the caller
/// belongs to the Administrators group.
/**
* \return
- true if the caller is an administrator on the local machine.
- false otherwise
*/
bool IsCurrentUserLocalAdministrator( void )
//-----------------------------------------------------------------------------
{
BOOL fReturn = FALSE;
PACL pACL = NULL;
PSID psidAdmin = NULL;
HANDLE hToken = NULL;
HANDLE hImpersonationToken = NULL;
PSECURITY_DESCRIPTOR psdAdmin = NULL;
// Determine if the current thread is running as a user that is a member of
// the local admins group. To do this, create a security descriptor that
// has a DACL which has an ACE that allows only local administrators access.
// Then, call AccessCheck with the current thread's token and the security
// descriptor. It will say whether the user could access an object if it
// had that security descriptor. Note: you do not need to actually create
// the object. Just checking access against the security descriptor alone
// will be sufficient.
const DWORD ACCESS_READ = 1;
const DWORD ACCESS_WRITE = 2;
__try
{
// AccessCheck() requires an impersonation token. We first get a primary
// token and then create a duplicate impersonation token. The
// impersonation token is not actually assigned to the thread, but is
// used in the call to AccessCheck. Thus, this function itself never
// impersonates, but does use the identity of the thread. If the thread
// was impersonating already, this function uses that impersonation context.
if( !OpenThreadToken( GetCurrentThread(), TOKEN_DUPLICATE | TOKEN_QUERY, TRUE, &hToken ) )
{
if( GetLastError() != ERROR_NO_TOKEN )
{
__leave;
}
if( !OpenProcessToken( GetCurrentProcess(), TOKEN_DUPLICATE | TOKEN_QUERY, &hToken ) )
{
__leave;
}
}
if( !DuplicateToken ( hToken, SecurityImpersonation, &hImpersonationToken ) )
{
__leave;
}
// Create the binary representation of the well-known SID that
// represents the local administrators group. Then create the security
// descriptor and DACL with an ACE that allows only local admins access.
// After that, perform the access check. This will determine whether
// the current user is a local admin.
SID_IDENTIFIER_AUTHORITY SystemSidAuthority = SECURITY_NT_AUTHORITY;
if( !AllocateAndInitializeSid( &SystemSidAuthority, 2,
SECURITY_BUILTIN_DOMAIN_RID,
DOMAIN_ALIAS_RID_ADMINS,
0, 0, 0, 0, 0, 0, &psidAdmin ) )
{
__leave;
}
psdAdmin = LocalAlloc( LPTR, SECURITY_DESCRIPTOR_MIN_LENGTH );
if( psdAdmin == NULL )
{
__leave;
}
if( !InitializeSecurityDescriptor( psdAdmin, SECURITY_DESCRIPTOR_REVISION ) )
{
__leave;
}
// Compute size needed for the ACL.
const DWORD dwACLSize = sizeof( ACL ) + sizeof( ACCESS_ALLOWED_ACE ) + GetLengthSid( psidAdmin ) - sizeof( DWORD );
pACL = ( PACL )LocalAlloc( LPTR, dwACLSize );
if( pACL == NULL )
{
__leave;
}
if( !InitializeAcl( pACL, dwACLSize, ACL_REVISION2 ) )
{
__leave;
}
if( !AddAccessAllowedAce( pACL, ACL_REVISION2, ACCESS_READ | ACCESS_WRITE, psidAdmin ) )
{
__leave;
}
if( !SetSecurityDescriptorDacl( psdAdmin, TRUE, pACL, FALSE ) )
{
__leave;
}
// AccessCheck validates a security descriptor somewhat; set the group
// and owner so that enough of the security descriptor is filled out to
// make AccessCheck happy.
SetSecurityDescriptorGroup( psdAdmin, psidAdmin, FALSE );
SetSecurityDescriptorOwner( psdAdmin, psidAdmin, FALSE );
if( !IsValidSecurityDescriptor( psdAdmin ) )
{
__leave;
}
// Initialize GenericMapping structure even though you do not use generic rights.
GENERIC_MAPPING GenericMapping;
GenericMapping.GenericRead = ACCESS_READ;
GenericMapping.GenericWrite = ACCESS_WRITE;
GenericMapping.GenericExecute = 0;
GenericMapping.GenericAll = ACCESS_READ | ACCESS_WRITE;
DWORD dwStructureSize = sizeof( PRIVILEGE_SET );
DWORD dwStatus;
PRIVILEGE_SET ps;
if( !AccessCheck( psdAdmin, hImpersonationToken, ACCESS_READ,
&GenericMapping, &ps, &dwStructureSize, &dwStatus,
&fReturn ) )
{
fReturn = FALSE;
__leave;
}
}
__finally
{
if( pACL )
{
LocalFree( pACL );
}
if( psdAdmin )
{
LocalFree( psdAdmin );
}
if( psidAdmin )
{
FreeSid( psidAdmin );
}
if( hImpersonationToken )
{
CloseHandle ( hImpersonationToken );
}
if( hToken )
{
CloseHandle ( hToken );
}
}
return fReturn != FALSE;
}

@ -0,0 +1,651 @@
//-----------------------------------------------------------------------------
#ifndef wxAbstractionH
#define wxAbstractionH wxAbstractionH
//-----------------------------------------------------------------------------
#include <apps/Common/Info.h>
#include <apps/Common/mvIcon.xpm>
#include <string>
#include <vector>
#include "wxIncludePrologue.h"
#include <wx/button.h>
#include <wx/combobox.h>
#include <wx/config.h>
#include <wx/dialog.h>
#include <wx/dynlib.h>
#include <wx/hyperlink.h>
#include <wx/listctrl.h>
#include <wx/log.h>
#include <wx/notebook.h>
#include <wx/settings.h>
#include <wx/sizer.h>
#include <wx/splash.h>
#include <wx/socket.h>
#include <wx/stattext.h>
#include <wx/string.h>
#include <wx/textctrl.h>
#include <wx/timer.h>
#include <wx/window.h>
#include "wxIncludeEpilogue.h"
//-----------------------------------------------------------------------------
struct ConvertedString : wxString
//-----------------------------------------------------------------------------
{
#if wxUSE_UNICODE
ConvertedString( const char* s ) :
wxString( s, wxConvUTF8 ) {}
ConvertedString( const std::string& s ) :
wxString( s.c_str(), wxConvUTF8 ) {}
ConvertedString( const wxString& s ) :
# if wxCHECK_VERSION(2,9,0)
wxString( s.mb_str(), wxConvUTF8 ) {}
# else
wxString( s.c_str(), wxConvUTF8 ) {}
# endif
#else
ConvertedString( const char* s ) :
wxString( s ) {}
ConvertedString( const std::string& s ) :
wxString( s.c_str() ) {}
ConvertedString( const wxString& s ) :
# if wxCHECK_VERSION(2,9,0)
wxString( s.mb_str() ) {}
# else
wxString( s.c_str() ) {}
# endif
#endif
};
#if ( wxMINOR_VERSION > 6 ) && ( wxMAJOR_VERSION < 3 ) && !WXWIN_COMPATIBILITY_2_6
#include <wx/filedlg.h>
enum
{
wxOPEN = wxFD_OPEN,
wxSAVE = wxFD_SAVE,
wxOVERWRITE_PROMPT = wxFD_OVERWRITE_PROMPT,
wxFILE_MUST_EXIST = wxFD_FILE_MUST_EXIST,
wxMULTIPLE = wxFD_MULTIPLE,
wxCHANGE_DIR = wxFD_CHANGE_DIR
};
#endif
//-----------------------------------------------------------------------------
enum TApplicationColors
//-----------------------------------------------------------------------------
{
acRedPastel = ( 200 << 16 ) | ( 200 << 8 ) | 255,
acYellowPastel = ( 180 << 16 ) | ( 255 << 8 ) | 255,
acBluePastel = ( 255 << 16 ) | ( 220 << 8 ) | 200,
acDarkBluePastel = ( 255 << 16 ) | ( 100 << 8 ) | 80,
acGreenPastel = ( 200 << 16 ) | ( 255 << 8 ) | 200,
acGreyPastel = ( 200 << 16 ) | ( 200 << 8 ) | 200,
acDarkGrey = ( 100 << 16 ) | ( 100 << 8 ) | 100
};
//=============================================================================
//================= Implementation FramePositionStorage =======================
//=============================================================================
//-----------------------------------------------------------------------------
class FramePositionStorage
//-----------------------------------------------------------------------------
{
wxWindow* m_pWin;
public:
FramePositionStorage( wxWindow* pWin ) : m_pWin( pWin ) {}
void Save( void ) const
{
Save( m_pWin );
}
static void Save( wxWindow* pWin, const wxString& windowName = wxT( "MainFrame" ) )
{
wxConfigBase* pConfig( wxConfigBase::Get() );
int Height, Width, XPos, YPos;
pWin->GetSize( &Width, &Height );
pWin->GetPosition( &XPos, &YPos );
// when we e.g. try to write config stuff on a read-only file system the result can
// be an annoying message box. Therefore we switch off logging during the storage operation.
wxLogNull logSuspendScope;
pConfig->Write( wxString::Format( wxT( "/%s/h" ), windowName.c_str() ), Height );
pConfig->Write( wxString::Format( wxT( "/%s/w" ), windowName.c_str() ), Width );
pConfig->Write( wxString::Format( wxT( "/%s/x" ), windowName.c_str() ), XPos );
pConfig->Write( wxString::Format( wxT( "/%s/y" ), windowName.c_str() ), YPos );
if( dynamic_cast<wxTopLevelWindow*>( pWin ) )
{
pConfig->Write( wxString::Format( wxT( "/%s/maximized" ), windowName.c_str() ), dynamic_cast<wxTopLevelWindow*>( pWin )->IsMaximized() );
}
pConfig->Flush();
}
static wxRect Load( const wxRect& defaultDimensions, bool& boMaximized, const wxString& windowName = wxT( "MainFrame" ) )
{
wxConfigBase* pConfig( wxConfigBase::Get() );
wxRect rect;
rect.height = pConfig->Read( wxString::Format( wxT( "/%s/h" ), windowName.c_str() ), defaultDimensions.height );
rect.width = pConfig->Read( wxString::Format( wxT( "/%s/w" ), windowName.c_str() ), defaultDimensions.width );
rect.x = pConfig->Read( wxString::Format( wxT( "/%s/x" ), windowName.c_str() ), defaultDimensions.x );
rect.y = pConfig->Read( wxString::Format( wxT( "/%s/y" ), windowName.c_str() ), defaultDimensions.y );
boMaximized = pConfig->Read( wxString::Format( wxT( "/%s/maximized" ), windowName.c_str() ), 1l ) != 0;
int displayWidth = 0;
int displayHeight = 0;
wxDisplaySize( &displayWidth, &displayHeight );
if( ( rect.x >= displayWidth ) || ( ( rect.x + rect.width ) < 0 ) )
{
rect.x = 0;
}
if( ( rect.y >= displayHeight ) || ( ( rect.y + rect.height ) < 0 ) )
{
rect.y = 0;
}
return rect;
}
};
//=============================================================================
//================= Implementation SplashScreenScope ==========================
//=============================================================================
//-----------------------------------------------------------------------------
class SplashScreenScope
//-----------------------------------------------------------------------------
{
wxSplashScreen* pSplash_;
wxStopWatch stopWatch_;
public:
explicit SplashScreenScope( const wxBitmap& bmp ) : pSplash_( 0 ), stopWatch_()
{
pSplash_ = new wxSplashScreen( ( wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_SMALL ) ? wxBitmap( mvIcon_xpm ) : bmp, wxSPLASH_CENTRE_ON_SCREEN | wxSPLASH_NO_TIMEOUT, 0, NULL, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER );
pSplash_->Update();
}
virtual ~SplashScreenScope()
{
const unsigned long startupTime_ms = static_cast<unsigned long>( stopWatch_.Time() );
const unsigned long minSplashDisplayTime_ms = 3000;
if( startupTime_ms < minSplashDisplayTime_ms )
{
wxMilliSleep( minSplashDisplayTime_ms - startupTime_ms );
}
delete pSplash_;
}
};
//=============================================================================
//================= Implementation SocketInitializeScope ======================
//=============================================================================
//-----------------------------------------------------------------------------
class SocketInitializeScope
//-----------------------------------------------------------------------------
{
public:
explicit SocketInitializeScope()
{
// This has to be called in order to be able to initialize sockets outside of
// the main thread ( http://www.litwindow.com/Knowhow/wxSocket/wxsocket.html )
wxSocketBase::Initialize();
}
~SocketInitializeScope()
{
// Must apparently be done since we called wxSocketBase::Initialize(),
// otherwise memory leaks occur when closing the application.
wxSocketBase::Shutdown();
}
};
//=============================================================================
//================= Implementation miscellaneous helper functions =============
//=============================================================================
//-----------------------------------------------------------------------------
inline wxString LoadGenTLProducer( wxDynamicLibrary& lib )
//-----------------------------------------------------------------------------
{
#ifdef _WIN32
const wxString libName( wxT( "mvGenTLProducer.cti" ) );
#else
const wxString libName( wxT( "libmvGenTLProducer.so" ) );
#endif
const wxString GenTLPathVariable( ( sizeof( void* ) == 8 ) ? wxT( "GENICAM_GENTL64_PATH" ) : wxT( "GENICAM_GENTL32_PATH" ) );
#if defined(linux) || defined(__linux) || defined(__linux__)
const wxChar PATH_SEPARATOR( wxT( ':' ) );
#elif defined(_WIN32) || defined(WIN32) || defined(__WIN32__)
const wxChar PATH_SEPARATOR( wxT( ';' ) );
#else
# error Unsupported target platform
#endif
wxString GenTLPath;
wxArrayString potentialLocations;
if( ::wxGetEnv( GenTLPathVariable, &GenTLPath ) )
{
potentialLocations = wxSplit( GenTLPath, PATH_SEPARATOR );
}
wxString message;
// when we e.g. trying to load a shared library that cannot be found the result can
// be an annoying message box. Therefore we switch off logging during the load attempts.
wxLogNull logSuspendScope;
const size_t potentialLocationCount = potentialLocations.Count();
for( size_t i = 0; i < potentialLocationCount; i++ )
{
lib.Load( potentialLocations[i] + wxT( "/" ) + libName, wxDL_VERBATIM );
if( lib.IsLoaded() )
{
break;
}
}
if( !lib.IsLoaded() )
{
lib.Load( libName, wxDL_VERBATIM );
}
if( !lib.IsLoaded() )
{
message = wxString::Format( wxT( "Could not connect to '%s'. Check your installation.\n\n" ), libName.c_str() );
}
return message;
}
//-----------------------------------------------------------------------------
inline void AddSourceInfo( wxWindow* pParent, wxSizer* pParentSizer )
//-----------------------------------------------------------------------------
{
wxBoxSizer* pSizer = new wxBoxSizer( wxHORIZONTAL );
pSizer->Add( new wxStaticText( pParent, wxID_ANY, wxT( "The complete source code belonging to this application can be obtained by contacting " ) ) );
pSizer->Add( new wxHyperlinkCtrl( pParent, wxID_ANY, COMPANY_NAME, COMPANY_WEBSITE ) );
pParentSizer->Add( pSizer, 0, wxALL | wxALIGN_CENTER, 5 );
}
//-----------------------------------------------------------------------------
inline void AddSupportInfo( wxWindow* pParent, wxSizer* pParentSizer )
//-----------------------------------------------------------------------------
{
wxBoxSizer* pSizer = new wxBoxSizer( wxHORIZONTAL );
pSizer->Add( new wxStaticText( pParent, wxID_ANY, wxT( "Support contact: " ) ) );
pSizer->Add( new wxHyperlinkCtrl( pParent, wxID_ANY, COMPANY_SUPPORT_MAIL, COMPANY_SUPPORT_MAIL ) );
pParentSizer->Add( pSizer, 0, wxALL | wxALIGN_CENTER, 5 );
}
//-----------------------------------------------------------------------------
inline void AddwxWidgetsInfo( wxWindow* pParent, wxSizer* pParentSizer )
//-----------------------------------------------------------------------------
{
wxBoxSizer* pSizer = new wxBoxSizer( wxHORIZONTAL );
pSizer->Add( new wxStaticText( pParent, wxID_ANY, wxT( "This tool has been written using " ) ) );
pSizer->Add( new wxHyperlinkCtrl( pParent, wxID_ANY, wxT( "wxWidgets" ), wxT( "http://www.wxwidgets.org" ) ) );
pSizer->Add( new wxStaticText( pParent, wxID_ANY, wxString::Format( wxT( " %d.%d.%d." ), wxMAJOR_VERSION, wxMINOR_VERSION, wxRELEASE_NUMBER ) ) );
pParentSizer->Add( pSizer, 0, wxALL | wxALIGN_CENTER, 5 );
}
//-----------------------------------------------------------------------------
inline void AddIconInfo( wxWindow* pParent, wxSizer* pParentSizer )
//-----------------------------------------------------------------------------
{
wxBoxSizer* pSizer = new wxBoxSizer( wxHORIZONTAL );
pSizer->Add( new wxStaticText( pParent, wxID_ANY, wxT( "This tool uses modified icons downloaded from here " ) ) );
pSizer->Add( new wxHyperlinkCtrl( pParent, wxID_ANY, wxT( "icons8" ), wxT( "https://icons8.com/" ) ) );
pSizer->Add( new wxStaticText( pParent, wxID_ANY, wxT( " and here " ) ) );
pSizer->Add( new wxHyperlinkCtrl( pParent, wxID_ANY, wxT( "Freepik" ), wxT( "http://www.freepik.com" ) ) );
pSizer->Add( new wxStaticText( pParent, wxID_ANY, wxT( ". The " ) ) );
pSizer->Add( new wxHyperlinkCtrl( pParent, wxID_ANY, wxT( "Material Design" ), wxT( "https://material.io/resources/icons/?style=outline" ) ) );
pSizer->Add( new wxStaticText( pParent, wxID_ANY, wxT( " icons are published under " ) ) );
pSizer->Add( new wxHyperlinkCtrl( pParent, wxID_ANY, wxT( "Apache 2.0 license." ), wxT( "https://www.apache.org/licenses/LICENSE-2.0.html" ) ) );
pParentSizer->Add( pSizer, 0, wxALL | wxALIGN_CENTER, 5 );
}
//-----------------------------------------------------------------------------
inline void AddListControlToAboutNotebook( wxNotebook* pNotebook, const wxString& pageTitle, bool boSelectPage, const wxString& col0, const wxString& col1, const std::vector<std::pair<wxString, wxString> >& v )
//-----------------------------------------------------------------------------
{
wxListCtrl* pListCtrl = new wxListCtrl( pNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT | wxLC_SINGLE_SEL | wxBORDER_NONE );
pListCtrl->InsertColumn( 0, col0 );
pListCtrl->InsertColumn( 1, col1 );
const unsigned long cnt = static_cast<unsigned long>( v.size() );
for( unsigned long i = 0; i < cnt; i++ )
{
long index = pListCtrl->InsertItem( i, v[i].first, i );
pListCtrl->SetItem( index, 1, v[i].second );
}
for( unsigned int i = 0; i < 2; i++ )
{
pListCtrl->SetColumnWidth( i, wxLIST_AUTOSIZE );
}
pNotebook->AddPage( pListCtrl, pageTitle, boSelectPage );
}
//-----------------------------------------------------------------------------
inline void AppendPathSeparatorIfNeeded( wxString& path )
//-----------------------------------------------------------------------------
{
if( !path.EndsWith( wxT( "/" ) ) && !path.EndsWith( wxT( "\\" ) ) )
{
path.append( wxT( "/" ) );
}
}
//-----------------------------------------------------------------------------
inline void WriteToTextCtrl( wxTextCtrl* pTextCtrl, const wxString& msg, const wxTextAttr& style = wxTextAttr( *wxBLACK ) )
//-----------------------------------------------------------------------------
{
if( pTextCtrl )
{
// If you want the control to show the last line of text at the bottom, you can add "ScrollLines(1)"
// right after the AppendText call. AppendText will ensure the new line is visible, and ScrollLines
// will ensure the scroll bar is at the real end of the range, not further.
long posBefore = pTextCtrl->GetLastPosition();
pTextCtrl->AppendText( msg );
long posAfter = pTextCtrl->GetLastPosition();
pTextCtrl->SetStyle( posBefore, posAfter, style );
pTextCtrl->ScrollLines( 1 );
pTextCtrl->ShowPosition( pTextCtrl->GetLastPosition() ); // ensure that this position is really visible
}
}
//-----------------------------------------------------------------------------
struct AboutDialogInformation
//-----------------------------------------------------------------------------
{
wxWindow* pParent_;
wxString applicationName_;
wxString briefDescription_;
unsigned int yearOfInitialRelease_;
std::vector<std::pair<wxString, wxTextAttr> > usageHints_;
std::vector<std::pair<wxString, wxString> > keyboardShortcuts_;
std::vector<std::pair<wxString, wxString> > availableCommandLineOptions_;
bool boAddIconInfo_;
bool boAddExpatInfo_;
bool boAddFFmpegInfo_;
explicit AboutDialogInformation( wxWindow* pParent = 0 ) : pParent_( pParent ), applicationName_(),
briefDescription_(), yearOfInitialRelease_( 2005 ), usageHints_(), keyboardShortcuts_(),
availableCommandLineOptions_(), boAddIconInfo_( false ), boAddExpatInfo_( false ), boAddFFmpegInfo_( false ) {}
};
//-----------------------------------------------------------------------------
inline void DisplayCommandLineProcessingInformation( wxTextCtrl* pTextCtrl, const wxString& processedCommandLineParameters, const wxString& parserErrors, const wxTextAttr& style )
//-----------------------------------------------------------------------------
{
WriteToTextCtrl( pTextCtrl, wxT( "\n" ) );
WriteToTextCtrl( pTextCtrl, wxT( "Press 'F1' for help.\n" ), style );
WriteToTextCtrl( pTextCtrl, wxT( "\n" ) );
const wxString none( wxT( "none" ) );
WriteToTextCtrl( pTextCtrl, wxString::Format( wxT( "Processed command line parameters: %s\n" ), ( processedCommandLineParameters.length() > 0 ) ? processedCommandLineParameters.c_str() : none.c_str() ), style );
WriteToTextCtrl( pTextCtrl, wxT( "\n" ) );
if( !parserErrors.IsEmpty() )
{
WriteToTextCtrl( pTextCtrl, parserErrors, wxTextAttr( *wxRED ) );
WriteToTextCtrl( pTextCtrl, wxT( "\n" ) );
}
}
//-----------------------------------------------------------------------------
inline void DisplayCommonAboutDialog( const AboutDialogInformation& info )
//-----------------------------------------------------------------------------
{
wxBoxSizer* pTopDownSizer;
wxDialog dlg( info.pParent_, wxID_ANY, wxString( wxString::Format( wxT( "About %s" ), info.applicationName_.c_str() ) ), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxMAXIMIZE_BOX | wxMINIMIZE_BOX );
wxIcon icon( mvIcon_xpm );
dlg.SetIcon( icon );
pTopDownSizer = new wxBoxSizer( wxVERTICAL );
wxStaticText* pText = new wxStaticText( &dlg, wxID_ANY, info.briefDescription_ );
pTopDownSizer->Add( pText, 0, wxALL | wxALIGN_CENTER, 5 );
pText = new wxStaticText( &dlg, wxID_ANY, wxString::Format( wxT( "(C) %u - %s by %s" ), info.yearOfInitialRelease_, CURRENT_YEAR, COMPANY_NAME ) );
pTopDownSizer->Add( pText, 0, wxALL | wxALIGN_CENTER, 5 );
pText = new wxStaticText( &dlg, wxID_ANY, wxString::Format( wxT( "Version %s" ), VERSION_STRING ) );
pTopDownSizer->Add( pText, 0, wxALL | wxALIGN_CENTER, 5 );
AddSupportInfo( &dlg, pTopDownSizer );
AddwxWidgetsInfo( &dlg, pTopDownSizer );
if( info.boAddIconInfo_ )
{
AddIconInfo( &dlg, pTopDownSizer );
}
if( info.boAddExpatInfo_ )
{
pText = new wxStaticText( &dlg, wxID_ANY, wxT( "The expat wrapper class used internally has been written by Descartes Systems Sciences, Inc." ) );
pTopDownSizer->Add( pText, 0, wxALL | wxALIGN_CENTER, 5 );
}
if( info.boAddFFmpegInfo_ )
{
wxBoxSizer* pSizer = new wxBoxSizer( wxHORIZONTAL );
pSizer->Add( new wxStaticText( &dlg, wxID_ANY, wxT( "The video recording functionality of this application requires libraries from the " ) ) );
pSizer->Add( new wxHyperlinkCtrl( &dlg, wxID_ANY, wxT( "FFmpeg" ), wxT( "https://www.ffmpeg.org/" ) ) );
pSizer->Add( new wxStaticText( &dlg, wxID_ANY, wxT( " project under the LGPLv2.1. These must be installed separately" ) ) );
pTopDownSizer->Add( pSizer, 0, wxALL | wxALIGN_CENTER, 5 );
}
AddSourceInfo( &dlg, pTopDownSizer );
wxNotebook* pNotebook = new wxNotebook( &dlg, wxID_ANY, wxDefaultPosition, wxDefaultSize );
wxTextCtrl* pUsageHints = new wxTextCtrl( pNotebook, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE | wxBORDER_NONE | wxTE_RICH | wxTE_READONLY );
pNotebook->AddPage( pUsageHints, wxT( "Usage Hints" ), true );
std::vector<std::pair<wxTextAttr, wxString> >::size_type usageHintStringCount = info.usageHints_.size();
for( std::vector<std::pair<wxString, wxTextAttr> >::size_type i = 0; i < usageHintStringCount; i++ )
{
WriteToTextCtrl( pUsageHints, info.usageHints_[i].first, info.usageHints_[i].second );
}
pUsageHints->ScrollLines( -( 256 * 256 ) ); // make sure the text control always shows the beginning of the help text
if( !info.keyboardShortcuts_.empty() )
{
AddListControlToAboutNotebook( pNotebook, wxT( "Keyboard Shortcuts" ), false, wxT( "Shortcut" ), wxT( "Command" ), info.keyboardShortcuts_ );
}
if( !info.availableCommandLineOptions_.empty() )
{
AddListControlToAboutNotebook( pNotebook, wxT( "Available Command Line Options" ), false, wxT( "Command" ), wxT( "Description" ), info.availableCommandLineOptions_ );
}
pTopDownSizer->AddSpacer( 10 );
pTopDownSizer->Add( pNotebook, wxSizerFlags( 5 ).Expand() );
pTopDownSizer->AddSpacer( 10 );
wxButton* pBtnOK = new wxButton( &dlg, wxID_OK, wxT( "OK" ) );
pBtnOK->SetDefault();
pTopDownSizer->Add( pBtnOK, 0, wxALL | wxALIGN_RIGHT, 15 );
dlg.SetSizer( pTopDownSizer );
dlg.SetSizeHints( 720, 500 );
dlg.SetSize( -1, -1, 800, 500 );
dlg.ShowModal();
}
//-----------------------------------------------------------------------------
inline wxTextAttr GetCommonTextStyle( const bool boBold, const bool boUnderlined, wxTextCtrl*
#if wxCHECK_VERSION(2, 9, 5)
#else
pParent
#endif // #if wxCHECK_VERSION(2, 9, 5)
)
//-----------------------------------------------------------------------------
{
wxTextAttr theStyle;
#if wxCHECK_VERSION(2, 9, 5)
wxFontInfo fontInfo( 10 );
if( boBold )
{
fontInfo.Bold();
}
if( boUnderlined )
{
fontInfo.Underlined();
}
wxFont theFont( fontInfo );
#else
pParent->GetStyle( pParent->GetLastPosition(), theStyle );
wxFont theFont( theStyle.GetFont() );
if( boBold )
{
theFont.SetWeight( wxFONTWEIGHT_BOLD );
}
theFont.SetPointSize( 10 );
if( boUnderlined )
{
theFont.SetUnderlined( true );
}
#endif // #if wxCHECK_VERSION(2, 9, 5)
theStyle.SetFont( theFont );
return theStyle;
}
//-----------------------------------------------------------------------------
inline wxTextAttr GetBoldStyle( wxTextCtrl* pParent )
//-----------------------------------------------------------------------------
{
return GetCommonTextStyle( true, false, pParent );
}
//-----------------------------------------------------------------------------
inline wxTextAttr GetBoldUnderlinedStyle( wxTextCtrl* pParent )
//-----------------------------------------------------------------------------
{
return GetCommonTextStyle( true, true, pParent );
}
//-----------------------------------------------------------------------------
inline wxTextAttr GetDefaultStyle( wxTextCtrl* pParent )
//-----------------------------------------------------------------------------
{
return GetCommonTextStyle( false, false, pParent );
}
//-----------------------------------------------------------------------------
inline wxTextAttr GetUnderlinedStyle( wxTextCtrl* pParent )
//-----------------------------------------------------------------------------
{
return GetCommonTextStyle( false, true, pParent );
}
//-----------------------------------------------------------------------------
inline bool IsListOfChoicesEmpty( wxComboBox* pCB )
//-----------------------------------------------------------------------------
{
#if wxCHECK_VERSION(2, 9, 3)
return pCB->IsListEmpty();
#else
return pCB->IsEmpty();
#endif // #if wxCHECK_VERSION(2, 9, 3)
}
//-----------------------------------------------------------------------------
inline void StopTimer( wxTimer& timer )
//-----------------------------------------------------------------------------
{
if( timer.IsRunning() )
{
timer.Stop();
}
}
//=============================================================================
//===================== Implementation Version helper functions ===============
//=============================================================================
//-----------------------------------------------------------------------------
struct Version
//-----------------------------------------------------------------------------
{
long major_;
long minor_;
long subMinor_;
long release_;
explicit Version() : major_( -1 ), minor_( -1 ), subMinor_( -1 ), release_( 0 ) {}
explicit Version( long ma, long mi, long smi, long re ) : major_( ma ), minor_( mi ), subMinor_( smi ), release_( re ) {}
};
//-----------------------------------------------------------------------------
inline bool operator<( const Version& a, const Version& b )
//-----------------------------------------------------------------------------
{
if( a.major_ < b.major_ )
{
return true;
}
else if( a.major_ == b.major_ )
{
if( a.minor_ < b.minor_ )
{
return true;
}
else if( a.minor_ == b.minor_ )
{
if( a.subMinor_ < b.subMinor_ )
{
return true;
}
else if( a.subMinor_ == b.subMinor_ )
{
if( a.release_ < b.release_ )
{
return true;
}
}
}
}
return false;
}
//-----------------------------------------------------------------------------
inline bool operator==( const Version& a, const Version& b )
//-----------------------------------------------------------------------------
{
return ( ( a.major_ == b.major_ ) && ( a.minor_ == b.minor_ ) && ( a.subMinor_ == b.subMinor_ ) && ( a.release_ == b.release_ ) );
}
//-----------------------------------------------------------------------------
inline bool operator!=( const Version& a, const Version& b )
//-----------------------------------------------------------------------------
{
return ( ( a.major_ != b.major_ ) || ( a.minor_ != b.minor_ ) || ( a.subMinor_ != b.subMinor_ ) || ( a.release_ != b.release_ ) );
}
//-----------------------------------------------------------------------------
inline bool operator>( const Version& a, const Version& b )
//-----------------------------------------------------------------------------
{
return ( !( a < b ) && !( a == b ) );
}
//-----------------------------------------------------------------------------
inline bool operator>=( const Version& a, const Version& b )
//-----------------------------------------------------------------------------
{
return ( a > b ) || ( a == b );
}
//-----------------------------------------------------------------------------
inline bool GetNextVersionNumber( wxString& str, long& number )
//-----------------------------------------------------------------------------
{
wxString numberString = str.BeforeFirst( wxT( '.' ) );
str = str.AfterFirst( wxT( '.' ) );
return numberString.ToLong( &number );
}
//-----------------------------------------------------------------------------
inline Version VersionFromString( const wxString& versionAsString )
//-----------------------------------------------------------------------------
{
Version version;
wxString tmp( versionAsString );
GetNextVersionNumber( tmp, version.major_ );
if( !tmp.empty() )
{
GetNextVersionNumber( tmp, version.minor_ );
if( !tmp.empty() )
{
GetNextVersionNumber( tmp, version.subMinor_ );
if( !tmp.empty() )
{
GetNextVersionNumber( tmp, version.release_ );
}
}
}
return version;
}
//-----------------------------------------------------------------------------
inline bool IsVersionWithinRange( const Version& version, const Version& minVersion, const Version& maxVersion )
//-----------------------------------------------------------------------------
{
if( version < minVersion )
{
return false;
}
if( version > maxVersion )
{
return false;
}
return true;
}
#endif // wxAbstractionH

@ -0,0 +1,5 @@
#if defined(__clang__)
# pragma clang diagnostic pop
#elif defined(_MSC_VER) && (_MSC_VER >= 1400) // is at least VC 2005 compiler?
# pragma warning( pop )
#endif

@ -0,0 +1,10 @@
#if defined(__clang__)
# pragma clang diagnostic push
# pragma clang diagnostic ignored "-Wdeprecated-declarations"
# pragma clang diagnostic ignored "-Wunused-local-typedef"
#elif defined(_MSC_VER) && (_MSC_VER >= 1400) // is at least VC 2005 compiler?
# pragma warning( push )
# pragma warning( disable : 4127 ) // 'conditional expression is constant'
# pragma warning( disable : 4512 ) // 'class XYZ': assignment operator could not be generated'
# pragma warning( disable : 4996 ) // ''function XYZ': was declared deprecated'
#endif

@ -0,0 +1,9 @@
//-----------------------------------------------------------------------------
#ifndef wxIncluderH
#define wxIncluderH wxIncluderH
//-----------------------------------------------------------------------------
#include <apps/Common/wxIncludePrologue.h>
#include "wx/wx.h"
#include <apps/Common/wxIncludeEpilogue.h>
#endif // wxIncluderH

@ -0,0 +1,13 @@
#pragma once
typedef enum _EncMethod {
Device = 0,
License = 1
}EncMethod;
extern "C" bool GenerateDeviceID(void);
extern "C" bool GenerateLicenseData(const char* flag, const char* suffix);
extern "C" bool VerifyLicense(void);
extern "C" bool AddParaForLicenseData(char* flag, char* suffix);
extern "C" bool DeleteParaForLicenseData(char* flag);
extern "C" bool AnalysisLicense(const char* flag);

@ -0,0 +1,75 @@
#pragma once
#include "exportData.h"
#include "QtCore\qfile.h"
#include "QtCore\qtextstream.h"
#include <QUrl>
#include <QFile>
#include <QObject>
#include <QByteArray>
#include <QNetworkAccessManager>
#include <QtNetwork/QNetworkReply>
class FtpManager
{
private:
QUrl url;
QNetworkAccessManager manager;
public:
FtpManager() {
/* 设置通讯协议 */
url.setScheme("ftp");
/* 设置用户名 */
url.setUserName("FTP2");
/* 设置密码 */
url.setPassword("123");
/* 设置主机,也可以是域名 */
url.setHost("192.168.1.170");
/* 设置端口号一般为21 */
url.setPort(666);
}
void uploadSingleFile(QString filePath, QString remotePath) {
// 设置路径
url.setPath(remotePath);
qDebug() << "uploadSingleFile path " << url.path();
// 装载本地文件
QFile file(filePath);
bool isopen = false;
isopen = file.open(QIODevice::ReadOnly);
qDebug() << "Open file " << isopen;
if (isopen) {
// 读取本地文件数据
QByteArray data = file.readAll();
file.close();
// 上传数据,上传成功后会在远端创建文件
manager.setNetworkAccessible(QNetworkAccessManager::Accessible);
QNetworkReply* reply = manager.put(QNetworkRequest(url), data);
QEventLoop eventLoop;
//QObject::connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
//// 进入等待,但事件循环依然进行 */
//eventLoop.exec();
//QObject::connect(reply, &QNetworkReply::finished, [&]() {
// if (reply->error() == QNetworkReply::NoError) {
// // 读取响应数据
// QByteArray responseData = reply->readAll();
// // 处理响应数据
// qDebug() << "Received response:" << responseData;
// }
// else {
// // 处理错误
// qDebug() << "Error occurred:" << reply->errorString();
// }
// // 清理资源
// reply->deleteLater();
// });
}
}
};

@ -0,0 +1,203 @@
/****************************************************************************
** Meta object code from reading C++ file 'CaptureThread.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../CaptureThread.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'CaptureThread.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_CaptureThread_t {
QByteArrayData data[11];
char stringdata0[92];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_CaptureThread_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_CaptureThread_t qt_meta_stringdata_CaptureThread = {
{
QT_MOC_LITERAL(0, 0, 13), // "CaptureThread"
QT_MOC_LITERAL(1, 14, 5), // "error"
QT_MOC_LITERAL(2, 20, 0), // ""
QT_MOC_LITERAL(3, 21, 3), // "err"
QT_MOC_LITERAL(4, 25, 8), // "finished"
QT_MOC_LITERAL(5, 34, 12), // "requestReady"
QT_MOC_LITERAL(6, 47, 16), // "updateStatistics"
QT_MOC_LITERAL(7, 64, 4), // "data"
QT_MOC_LITERAL(8, 69, 3), // "Num"
QT_MOC_LITERAL(9, 73, 7), // "process"
QT_MOC_LITERAL(10, 81, 10) // "fpsTimeout"
},
"CaptureThread\0error\0\0err\0finished\0"
"requestReady\0updateStatistics\0data\0"
"Num\0process\0fpsTimeout"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_CaptureThread[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
6, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
4, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 44, 2, 0x06 /* Public */,
4, 0, 47, 2, 0x06 /* Public */,
5, 0, 48, 2, 0x06 /* Public */,
6, 2, 49, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
9, 0, 54, 2, 0x08 /* Private */,
10, 0, 55, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::QString, QMetaType::Int, 7, 8,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void CaptureThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<CaptureThread *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->error((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 1: _t->finished(); break;
case 2: _t->requestReady(); break;
case 3: _t->updateStatistics((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
case 4: _t->process(); break;
case 5: _t->fpsTimeout(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (CaptureThread::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThread::error)) {
*result = 0;
return;
}
}
{
using _t = void (CaptureThread::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThread::finished)) {
*result = 1;
return;
}
}
{
using _t = void (CaptureThread::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThread::requestReady)) {
*result = 2;
return;
}
}
{
using _t = void (CaptureThread::*)(const QString & , int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThread::updateStatistics)) {
*result = 3;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject CaptureThread::staticMetaObject = { {
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
qt_meta_stringdata_CaptureThread.data,
qt_meta_data_CaptureThread,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *CaptureThread::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *CaptureThread::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_CaptureThread.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int CaptureThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 6)
qt_static_metacall(this, _c, _id, _a);
_id -= 6;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 6)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 6;
}
return _id;
}
// SIGNAL 0
void CaptureThread::error(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void CaptureThread::finished()
{
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
}
// SIGNAL 2
void CaptureThread::requestReady()
{
QMetaObject::activate(this, &staticMetaObject, 2, nullptr);
}
// SIGNAL 3
void CaptureThread::updateStatistics(const QString & _t1, int _t2)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,207 @@
/****************************************************************************
** Meta object code from reading C++ file 'CaptureThreadBasler.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../CaptureThreadBasler.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'CaptureThreadBasler.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_CaptureThreadBasler_t {
QByteArrayData data[12];
char stringdata0[108];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_CaptureThreadBasler_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_CaptureThreadBasler_t qt_meta_stringdata_CaptureThreadBasler = {
{
QT_MOC_LITERAL(0, 0, 19), // "CaptureThreadBasler"
QT_MOC_LITERAL(1, 20, 5), // "error"
QT_MOC_LITERAL(2, 26, 0), // ""
QT_MOC_LITERAL(3, 27, 3), // "err"
QT_MOC_LITERAL(4, 31, 8), // "finished"
QT_MOC_LITERAL(5, 40, 12), // "requestReady"
QT_MOC_LITERAL(6, 53, 16), // "updateStatistics"
QT_MOC_LITERAL(7, 70, 4), // "data"
QT_MOC_LITERAL(8, 75, 3), // "Num"
QT_MOC_LITERAL(9, 79, 7), // "process"
QT_MOC_LITERAL(10, 87, 10), // "fpsTimeout"
QT_MOC_LITERAL(11, 98, 9) // "ioTimeout"
},
"CaptureThreadBasler\0error\0\0err\0finished\0"
"requestReady\0updateStatistics\0data\0"
"Num\0process\0fpsTimeout\0ioTimeout"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_CaptureThreadBasler[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
7, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
4, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 49, 2, 0x06 /* Public */,
4, 0, 52, 2, 0x06 /* Public */,
5, 0, 53, 2, 0x06 /* Public */,
6, 2, 54, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
9, 0, 59, 2, 0x08 /* Private */,
10, 0, 60, 2, 0x08 /* Private */,
11, 0, 61, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::QString, QMetaType::Int, 7, 8,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void CaptureThreadBasler::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<CaptureThreadBasler *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->error((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 1: _t->finished(); break;
case 2: _t->requestReady(); break;
case 3: _t->updateStatistics((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
case 4: _t->process(); break;
case 5: _t->fpsTimeout(); break;
case 6: _t->ioTimeout(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (CaptureThreadBasler::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThreadBasler::error)) {
*result = 0;
return;
}
}
{
using _t = void (CaptureThreadBasler::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThreadBasler::finished)) {
*result = 1;
return;
}
}
{
using _t = void (CaptureThreadBasler::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThreadBasler::requestReady)) {
*result = 2;
return;
}
}
{
using _t = void (CaptureThreadBasler::*)(const QString & , int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThreadBasler::updateStatistics)) {
*result = 3;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject CaptureThreadBasler::staticMetaObject = { {
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
qt_meta_stringdata_CaptureThreadBasler.data,
qt_meta_data_CaptureThreadBasler,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *CaptureThreadBasler::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *CaptureThreadBasler::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_CaptureThreadBasler.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int CaptureThreadBasler::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 7)
qt_static_metacall(this, _c, _id, _a);
_id -= 7;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 7)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 7;
}
return _id;
}
// SIGNAL 0
void CaptureThreadBasler::error(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void CaptureThreadBasler::finished()
{
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
}
// SIGNAL 2
void CaptureThreadBasler::requestReady()
{
QMetaObject::activate(this, &staticMetaObject, 2, nullptr);
}
// SIGNAL 3
void CaptureThreadBasler::updateStatistics(const QString & _t1, int _t2)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,203 @@
/****************************************************************************
** Meta object code from reading C++ file 'CaptureThreadHIK.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../CaptureThreadHIK.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'CaptureThreadHIK.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_CaptureThreadHIK_t {
QByteArrayData data[11];
char stringdata0[95];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_CaptureThreadHIK_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_CaptureThreadHIK_t qt_meta_stringdata_CaptureThreadHIK = {
{
QT_MOC_LITERAL(0, 0, 16), // "CaptureThreadHIK"
QT_MOC_LITERAL(1, 17, 5), // "error"
QT_MOC_LITERAL(2, 23, 0), // ""
QT_MOC_LITERAL(3, 24, 3), // "err"
QT_MOC_LITERAL(4, 28, 8), // "finished"
QT_MOC_LITERAL(5, 37, 12), // "requestReady"
QT_MOC_LITERAL(6, 50, 16), // "updateStatistics"
QT_MOC_LITERAL(7, 67, 4), // "data"
QT_MOC_LITERAL(8, 72, 3), // "Num"
QT_MOC_LITERAL(9, 76, 7), // "process"
QT_MOC_LITERAL(10, 84, 10) // "fpsTimeout"
},
"CaptureThreadHIK\0error\0\0err\0finished\0"
"requestReady\0updateStatistics\0data\0"
"Num\0process\0fpsTimeout"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_CaptureThreadHIK[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
6, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
4, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 44, 2, 0x06 /* Public */,
4, 0, 47, 2, 0x06 /* Public */,
5, 0, 48, 2, 0x06 /* Public */,
6, 2, 49, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
9, 0, 54, 2, 0x08 /* Private */,
10, 0, 55, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::QString, QMetaType::Int, 7, 8,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void CaptureThreadHIK::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<CaptureThreadHIK *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->error((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 1: _t->finished(); break;
case 2: _t->requestReady(); break;
case 3: _t->updateStatistics((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
case 4: _t->process(); break;
case 5: _t->fpsTimeout(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (CaptureThreadHIK::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThreadHIK::error)) {
*result = 0;
return;
}
}
{
using _t = void (CaptureThreadHIK::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThreadHIK::finished)) {
*result = 1;
return;
}
}
{
using _t = void (CaptureThreadHIK::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThreadHIK::requestReady)) {
*result = 2;
return;
}
}
{
using _t = void (CaptureThreadHIK::*)(const QString & , int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThreadHIK::updateStatistics)) {
*result = 3;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject CaptureThreadHIK::staticMetaObject = { {
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
qt_meta_stringdata_CaptureThreadHIK.data,
qt_meta_data_CaptureThreadHIK,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *CaptureThreadHIK::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *CaptureThreadHIK::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_CaptureThreadHIK.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int CaptureThreadHIK::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 6)
qt_static_metacall(this, _c, _id, _a);
_id -= 6;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 6)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 6;
}
return _id;
}
// SIGNAL 0
void CaptureThreadHIK::error(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void CaptureThreadHIK::finished()
{
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
}
// SIGNAL 2
void CaptureThreadHIK::requestReady()
{
QMetaObject::activate(this, &staticMetaObject, 2, nullptr);
}
// SIGNAL 3
void CaptureThreadHIK::updateStatistics(const QString & _t1, int _t2)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,194 @@
/****************************************************************************
** Meta object code from reading C++ file 'Cleanthread.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../Cleanthread.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'Cleanthread.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_CleanWorkThread_t {
QByteArrayData data[10];
char stringdata0[103];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_CleanWorkThread_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_CleanWorkThread_t qt_meta_stringdata_CleanWorkThread = {
{
QT_MOC_LITERAL(0, 0, 15), // "CleanWorkThread"
QT_MOC_LITERAL(1, 16, 12), // "workFinished"
QT_MOC_LITERAL(2, 29, 0), // ""
QT_MOC_LITERAL(3, 30, 9), // "workStart"
QT_MOC_LITERAL(4, 40, 13), // "workStartAuto"
QT_MOC_LITERAL(5, 54, 9), // "startWork"
QT_MOC_LITERAL(6, 64, 13), // "startWorkAuto"
QT_MOC_LITERAL(7, 78, 6), // "doWork"
QT_MOC_LITERAL(8, 85, 10), // "setSelAuto"
QT_MOC_LITERAL(9, 96, 6) // "setSel"
},
"CleanWorkThread\0workFinished\0\0workStart\0"
"workStartAuto\0startWork\0startWorkAuto\0"
"doWork\0setSelAuto\0setSel"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_CleanWorkThread[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
8, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
3, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 54, 2, 0x06 /* Public */,
3, 0, 55, 2, 0x06 /* Public */,
4, 0, 56, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
5, 0, 57, 2, 0x0a /* Public */,
6, 0, 58, 2, 0x0a /* Public */,
7, 0, 59, 2, 0x0a /* Public */,
8, 0, 60, 2, 0x0a /* Public */,
9, 0, 61, 2, 0x0a /* Public */,
// signals: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void CleanWorkThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<CleanWorkThread *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->workFinished(); break;
case 1: _t->workStart(); break;
case 2: _t->workStartAuto(); break;
case 3: _t->startWork(); break;
case 4: _t->startWorkAuto(); break;
case 5: _t->doWork(); break;
case 6: _t->setSelAuto(); break;
case 7: _t->setSel(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (CleanWorkThread::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CleanWorkThread::workFinished)) {
*result = 0;
return;
}
}
{
using _t = void (CleanWorkThread::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CleanWorkThread::workStart)) {
*result = 1;
return;
}
}
{
using _t = void (CleanWorkThread::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CleanWorkThread::workStartAuto)) {
*result = 2;
return;
}
}
}
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject CleanWorkThread::staticMetaObject = { {
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
qt_meta_stringdata_CleanWorkThread.data,
qt_meta_data_CleanWorkThread,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *CleanWorkThread::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *CleanWorkThread::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_CleanWorkThread.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int CleanWorkThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 8)
qt_static_metacall(this, _c, _id, _a);
_id -= 8;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 8)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 8;
}
return _id;
}
// SIGNAL 0
void CleanWorkThread::workFinished()
{
QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
}
// SIGNAL 1
void CleanWorkThread::workStart()
{
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
}
// SIGNAL 2
void CleanWorkThread::workStartAuto()
{
QMetaObject::activate(this, &staticMetaObject, 2, nullptr);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,151 @@
/****************************************************************************
** Meta object code from reading C++ file 'Logthread.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../Logthread.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'Logthread.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_CLog_t {
QByteArrayData data[16];
char stringdata0[149];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_CLog_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_CLog_t qt_meta_stringdata_CLog = {
{
QT_MOC_LITERAL(0, 0, 4), // "CLog"
QT_MOC_LITERAL(1, 5, 19), // "recMegFromCigarette"
QT_MOC_LITERAL(2, 25, 0), // ""
QT_MOC_LITERAL(3, 26, 9), // "CLOG_TYPE"
QT_MOC_LITERAL(4, 36, 8), // "STARTAPP"
QT_MOC_LITERAL(5, 45, 9), // "STARTWORK"
QT_MOC_LITERAL(6, 55, 9), // "PAUSEWORK"
QT_MOC_LITERAL(7, 65, 6), // "UNLOCK"
QT_MOC_LITERAL(8, 72, 9), // "DEBUGMODE"
QT_MOC_LITERAL(9, 82, 10), // "UNKICKMODE"
QT_MOC_LITERAL(10, 93, 7), // "SETTING"
QT_MOC_LITERAL(11, 101, 8), // "CLEANPIC"
QT_MOC_LITERAL(12, 110, 11), // "DOUBLECLICK"
QT_MOC_LITERAL(13, 122, 9), // "ROTATEPIC"
QT_MOC_LITERAL(14, 132, 10), // "PLCSETTING"
QT_MOC_LITERAL(15, 143, 5) // "ALARM"
},
"CLog\0recMegFromCigarette\0\0CLOG_TYPE\0"
"STARTAPP\0STARTWORK\0PAUSEWORK\0UNLOCK\0"
"DEBUGMODE\0UNKICKMODE\0SETTING\0CLEANPIC\0"
"DOUBLECLICK\0ROTATEPIC\0PLCSETTING\0ALARM"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_CLog[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
1, 22, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 1, 19, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void, QMetaType::QString, 2,
// enums: name, alias, flags, count, data
3, 3, 0x0, 12, 27,
// enum data: key, value
4, uint(CLog::STARTAPP),
5, uint(CLog::STARTWORK),
6, uint(CLog::PAUSEWORK),
7, uint(CLog::UNLOCK),
8, uint(CLog::DEBUGMODE),
9, uint(CLog::UNKICKMODE),
10, uint(CLog::SETTING),
11, uint(CLog::CLEANPIC),
12, uint(CLog::DOUBLECLICK),
13, uint(CLog::ROTATEPIC),
14, uint(CLog::PLCSETTING),
15, uint(CLog::ALARM),
0 // eod
};
void CLog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<CLog *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->recMegFromCigarette((*reinterpret_cast< QString(*)>(_a[1]))); break;
default: ;
}
}
}
QT_INIT_METAOBJECT const QMetaObject CLog::staticMetaObject = { {
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
qt_meta_stringdata_CLog.data,
qt_meta_data_CLog,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *CLog::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *CLog::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_CLog.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int CLog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,95 @@
/****************************************************************************
** Meta object code from reading C++ file 'SyncWorkThread.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../SyncWorkThread.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'SyncWorkThread.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_SyncWorkThread_t {
QByteArrayData data[1];
char stringdata0[15];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_SyncWorkThread_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_SyncWorkThread_t qt_meta_stringdata_SyncWorkThread = {
{
QT_MOC_LITERAL(0, 0, 14) // "SyncWorkThread"
},
"SyncWorkThread"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_SyncWorkThread[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void SyncWorkThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject SyncWorkThread::staticMetaObject = { {
QMetaObject::SuperData::link<QThread::staticMetaObject>(),
qt_meta_stringdata_SyncWorkThread.data,
qt_meta_data_SyncWorkThread,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *SyncWorkThread::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *SyncWorkThread::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_SyncWorkThread.stringdata0))
return static_cast<void*>(this);
return QThread::qt_metacast(_clname);
}
int SyncWorkThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QThread::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,124 @@
/****************************************************************************
** Meta object code from reading C++ file 'alarmdialog.hpp'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../alarmdialog.hpp"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'alarmdialog.hpp' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_AlarmDialog_t {
QByteArrayData data[4];
char stringdata0[71];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_AlarmDialog_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_AlarmDialog_t qt_meta_stringdata_AlarmDialog = {
{
QT_MOC_LITERAL(0, 0, 11), // "AlarmDialog"
QT_MOC_LITERAL(1, 12, 28), // "on_pushButton_close_released"
QT_MOC_LITERAL(2, 41, 0), // ""
QT_MOC_LITERAL(3, 42, 28) // "on_pushButton_clear_released"
},
"AlarmDialog\0on_pushButton_close_released\0"
"\0on_pushButton_clear_released"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_AlarmDialog[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
2, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 24, 2, 0x08 /* Private */,
3, 0, 25, 2, 0x08 /* Private */,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void AlarmDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<AlarmDialog *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->on_pushButton_close_released(); break;
case 1: _t->on_pushButton_clear_released(); break;
default: ;
}
}
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject AlarmDialog::staticMetaObject = { {
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
qt_meta_stringdata_AlarmDialog.data,
qt_meta_data_AlarmDialog,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *AlarmDialog::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *AlarmDialog::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_AlarmDialog.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int AlarmDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 2)
qt_static_metacall(this, _c, _id, _a);
_id -= 2;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 2)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 2;
}
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,150 @@
/****************************************************************************
** Meta object code from reading C++ file 'camera_glue.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../camera_glue.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'camera_glue.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_camera_glue_t {
QByteArrayData data[7];
char stringdata0[97];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_camera_glue_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_camera_glue_t qt_meta_stringdata_camera_glue = {
{
QT_MOC_LITERAL(0, 0, 11), // "camera_glue"
QT_MOC_LITERAL(1, 12, 20), // "sendMsgToDialogSetup"
QT_MOC_LITERAL(2, 33, 0), // ""
QT_MOC_LITERAL(3, 34, 8), // "int[][3]"
QT_MOC_LITERAL(4, 43, 3), // "ptr"
QT_MOC_LITERAL(5, 47, 21), // "recMsgFromDialogSetup"
QT_MOC_LITERAL(6, 69, 27) // "on_pushButton_take_released"
},
"camera_glue\0sendMsgToDialogSetup\0\0"
"int[][3]\0ptr\0recMsgFromDialogSetup\0"
"on_pushButton_take_released"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_camera_glue[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
3, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 29, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
5, 1, 32, 2, 0x0a /* Public */,
6, 0, 35, 2, 0x0a /* Public */,
// signals: parameters
QMetaType::Void, 0x80000000 | 3, 4,
// slots: parameters
QMetaType::Void, 0x80000000 | 3, 4,
QMetaType::Void,
0 // eod
};
void camera_glue::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<camera_glue *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->sendMsgToDialogSetup((*reinterpret_cast< int(*)[][3]>(_a[1]))); break;
case 1: _t->recMsgFromDialogSetup((*reinterpret_cast< int(*)[][3]>(_a[1]))); break;
case 2: _t->on_pushButton_take_released(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (camera_glue::*)(int [][3]);
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&camera_glue::sendMsgToDialogSetup)) {
*result = 0;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject camera_glue::staticMetaObject = { {
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
qt_meta_stringdata_camera_glue.data,
qt_meta_data_camera_glue,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *camera_glue::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *camera_glue::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_camera_glue.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int camera_glue::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 3)
qt_static_metacall(this, _c, _id, _a);
_id -= 3;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 3)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 3;
}
return _id;
}
// SIGNAL 0
void camera_glue::sendMsgToDialogSetup(int _t1[][3])
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,151 @@
/****************************************************************************
** Meta object code from reading C++ file 'change_shift.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../change_shift.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'change_shift.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_change_shift_t {
QByteArrayData data[8];
char stringdata0[104];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_change_shift_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_change_shift_t qt_meta_stringdata_change_shift = {
{
QT_MOC_LITERAL(0, 0, 12), // "change_shift"
QT_MOC_LITERAL(1, 13, 20), // "sendMsgToDialogSetup"
QT_MOC_LITERAL(2, 34, 0), // ""
QT_MOC_LITERAL(3, 35, 5), // "timeA"
QT_MOC_LITERAL(4, 41, 5), // "timeB"
QT_MOC_LITERAL(5, 47, 5), // "timeC"
QT_MOC_LITERAL(6, 53, 28), // "on_pushButton_apply_released"
QT_MOC_LITERAL(7, 82, 21) // "recMsgFromDialogSetup"
},
"change_shift\0sendMsgToDialogSetup\0\0"
"timeA\0timeB\0timeC\0on_pushButton_apply_released\0"
"recMsgFromDialogSetup"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_change_shift[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
3, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 3, 29, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
6, 0, 36, 2, 0x08 /* Private */,
7, 3, 37, 2, 0x0a /* Public */,
// signals: parameters
QMetaType::Void, QMetaType::QTime, QMetaType::QTime, QMetaType::QTime, 3, 4, 5,
// slots: parameters
QMetaType::Void,
QMetaType::Void, QMetaType::QTime, QMetaType::QTime, QMetaType::QTime, 3, 4, 5,
0 // eod
};
void change_shift::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<change_shift *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->sendMsgToDialogSetup((*reinterpret_cast< QTime(*)>(_a[1])),(*reinterpret_cast< QTime(*)>(_a[2])),(*reinterpret_cast< QTime(*)>(_a[3]))); break;
case 1: _t->on_pushButton_apply_released(); break;
case 2: _t->recMsgFromDialogSetup((*reinterpret_cast< QTime(*)>(_a[1])),(*reinterpret_cast< QTime(*)>(_a[2])),(*reinterpret_cast< QTime(*)>(_a[3]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (change_shift::*)(QTime , QTime , QTime );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&change_shift::sendMsgToDialogSetup)) {
*result = 0;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject change_shift::staticMetaObject = { {
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
qt_meta_stringdata_change_shift.data,
qt_meta_data_change_shift,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *change_shift::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *change_shift::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_change_shift.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int change_shift::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 3)
qt_static_metacall(this, _c, _id, _a);
_id -= 3;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 3)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 3;
}
return _id;
}
// SIGNAL 0
void change_shift::sendMsgToDialogSetup(QTime _t1, QTime _t2, QTime _t3)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t3))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,349 @@
/****************************************************************************
** Meta object code from reading C++ file 'cigarette.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../cigarette.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'cigarette.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_Cigarette_t {
QByteArrayData data[57];
char stringdata0[830];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_Cigarette_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_Cigarette_t qt_meta_stringdata_Cigarette = {
{
QT_MOC_LITERAL(0, 0, 9), // "Cigarette"
QT_MOC_LITERAL(1, 10, 13), // "sengMsgToClog"
QT_MOC_LITERAL(2, 24, 0), // ""
QT_MOC_LITERAL(3, 25, 19), // "sendMsgToExportData"
QT_MOC_LITERAL(4, 45, 21), // "on_btn_start_released"
QT_MOC_LITERAL(5, 67, 21), // "on_btn_pause_released"
QT_MOC_LITERAL(6, 89, 20), // "on_btn_lock_released"
QT_MOC_LITERAL(7, 110, 21), // "on_btn_setup_released"
QT_MOC_LITERAL(8, 132, 25), // "on_checkBox_debug_clicked"
QT_MOC_LITERAL(9, 158, 7), // "checked"
QT_MOC_LITERAL(10, 166, 26), // "on_checkBox_unkick_clicked"
QT_MOC_LITERAL(11, 193, 28), // "on_pushButton_wintab_clicked"
QT_MOC_LITERAL(12, 222, 26), // "on_toolButton_plc_released"
QT_MOC_LITERAL(13, 249, 28), // "on_toolButton_alarm_released"
QT_MOC_LITERAL(14, 278, 28), // "on_pushButton_clear_released"
QT_MOC_LITERAL(15, 307, 12), // "enable_shift"
QT_MOC_LITERAL(16, 320, 11), // "OnNotifyHub"
QT_MOC_LITERAL(17, 332, 3), // "Num"
QT_MOC_LITERAL(18, 336, 3), // "Cnt"
QT_MOC_LITERAL(19, 340, 7), // "cv::Mat"
QT_MOC_LITERAL(20, 348, 1), // "m"
QT_MOC_LITERAL(21, 350, 20), // "OnDisplayTimeCostHub"
QT_MOC_LITERAL(22, 371, 2), // "ms"
QT_MOC_LITERAL(23, 374, 23), // "OnDisplayCheckNumberHub"
QT_MOC_LITERAL(24, 398, 2), // "no"
QT_MOC_LITERAL(25, 401, 16), // "OnDisplayJdNoHub"
QT_MOC_LITERAL(26, 418, 5), // "jd_no"
QT_MOC_LITERAL(27, 424, 7), // "OnOKHub"
QT_MOC_LITERAL(28, 432, 7), // "OnNGHub"
QT_MOC_LITERAL(29, 440, 19), // "updateStatisticsHub"
QT_MOC_LITERAL(30, 460, 15), // "statisticalData"
QT_MOC_LITERAL(31, 476, 19), // "OnRotateReleasedHub"
QT_MOC_LITERAL(32, 496, 26), // "OnToolButtonCamReleasedHub"
QT_MOC_LITERAL(33, 523, 17), // "OpenCamTimeoutHub"
QT_MOC_LITERAL(34, 541, 12), // "OnDBClickHub"
QT_MOC_LITERAL(35, 554, 7), // "Num_Cnt"
QT_MOC_LITERAL(36, 562, 13), // "DrawRect_init"
QT_MOC_LITERAL(37, 576, 12), // "OnTPClickHub"
QT_MOC_LITERAL(38, 589, 14), // "OnDBClickNGHub"
QT_MOC_LITERAL(39, 604, 15), // "ReconnectCamHub"
QT_MOC_LITERAL(40, 620, 7), // "OnMouse"
QT_MOC_LITERAL(41, 628, 12), // "QMouseEvent*"
QT_MOC_LITERAL(42, 641, 5), // "event"
QT_MOC_LITERAL(43, 647, 5), // "OnKey"
QT_MOC_LITERAL(44, 653, 10), // "QKeyEvent*"
QT_MOC_LITERAL(45, 664, 13), // "handleTimeout"
QT_MOC_LITERAL(46, 678, 10), // "op_timeout"
QT_MOC_LITERAL(47, 689, 13), // "admin_timeout"
QT_MOC_LITERAL(48, 703, 15), // "EnableDebugMode"
QT_MOC_LITERAL(49, 719, 16), // "DisableDebugMode"
QT_MOC_LITERAL(50, 736, 13), // "OnCancelAlarm"
QT_MOC_LITERAL(51, 750, 28), // "on_pushButton_reset_released"
QT_MOC_LITERAL(52, 779, 4), // "OnOp"
QT_MOC_LITERAL(53, 784, 6), // "OnExit"
QT_MOC_LITERAL(54, 791, 9), // "OnRestart"
QT_MOC_LITERAL(55, 801, 7), // "OnAdmin"
QT_MOC_LITERAL(56, 809, 20) // "CleanThreadStartAuto"
},
"Cigarette\0sengMsgToClog\0\0sendMsgToExportData\0"
"on_btn_start_released\0on_btn_pause_released\0"
"on_btn_lock_released\0on_btn_setup_released\0"
"on_checkBox_debug_clicked\0checked\0"
"on_checkBox_unkick_clicked\0"
"on_pushButton_wintab_clicked\0"
"on_toolButton_plc_released\0"
"on_toolButton_alarm_released\0"
"on_pushButton_clear_released\0enable_shift\0"
"OnNotifyHub\0Num\0Cnt\0cv::Mat\0m\0"
"OnDisplayTimeCostHub\0ms\0OnDisplayCheckNumberHub\0"
"no\0OnDisplayJdNoHub\0jd_no\0OnOKHub\0"
"OnNGHub\0updateStatisticsHub\0statisticalData\0"
"OnRotateReleasedHub\0OnToolButtonCamReleasedHub\0"
"OpenCamTimeoutHub\0OnDBClickHub\0Num_Cnt\0"
"DrawRect_init\0OnTPClickHub\0OnDBClickNGHub\0"
"ReconnectCamHub\0OnMouse\0QMouseEvent*\0"
"event\0OnKey\0QKeyEvent*\0handleTimeout\0"
"op_timeout\0admin_timeout\0EnableDebugMode\0"
"DisableDebugMode\0OnCancelAlarm\0"
"on_pushButton_reset_released\0OnOp\0"
"OnExit\0OnRestart\0OnAdmin\0CleanThreadStartAuto"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_Cigarette[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
42, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
2, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 224, 2, 0x06 /* Public */,
3, 0, 227, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
4, 0, 228, 2, 0x08 /* Private */,
5, 0, 229, 2, 0x08 /* Private */,
6, 0, 230, 2, 0x08 /* Private */,
7, 0, 231, 2, 0x08 /* Private */,
8, 1, 232, 2, 0x08 /* Private */,
10, 1, 235, 2, 0x08 /* Private */,
11, 1, 238, 2, 0x08 /* Private */,
12, 0, 241, 2, 0x08 /* Private */,
13, 0, 242, 2, 0x08 /* Private */,
14, 0, 243, 2, 0x08 /* Private */,
15, 0, 244, 2, 0x08 /* Private */,
16, 3, 245, 2, 0x08 /* Private */,
21, 2, 252, 2, 0x08 /* Private */,
23, 2, 257, 2, 0x08 /* Private */,
25, 2, 262, 2, 0x08 /* Private */,
27, 1, 267, 2, 0x08 /* Private */,
28, 1, 270, 2, 0x08 /* Private */,
29, 2, 273, 2, 0x08 /* Private */,
31, 1, 278, 2, 0x08 /* Private */,
32, 1, 281, 2, 0x08 /* Private */,
33, 1, 284, 2, 0x08 /* Private */,
34, 1, 287, 2, 0x08 /* Private */,
36, 1, 290, 2, 0x08 /* Private */,
37, 1, 293, 2, 0x08 /* Private */,
38, 1, 296, 2, 0x08 /* Private */,
39, 1, 299, 2, 0x08 /* Private */,
40, 1, 302, 2, 0x08 /* Private */,
43, 1, 305, 2, 0x08 /* Private */,
45, 0, 308, 2, 0x08 /* Private */,
46, 0, 309, 2, 0x08 /* Private */,
47, 0, 310, 2, 0x08 /* Private */,
48, 0, 311, 2, 0x08 /* Private */,
49, 0, 312, 2, 0x08 /* Private */,
50, 0, 313, 2, 0x08 /* Private */,
51, 0, 314, 2, 0x08 /* Private */,
52, 0, 315, 2, 0x08 /* Private */,
53, 0, 316, 2, 0x08 /* Private */,
54, 0, 317, 2, 0x08 /* Private */,
55, 0, 318, 2, 0x08 /* Private */,
56, 0, 319, 2, 0x0a /* Public */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 2,
QMetaType::Void,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::Bool, 9,
QMetaType::Void, QMetaType::Bool, 9,
QMetaType::Void, QMetaType::Bool, 9,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::Int, QMetaType::Int, 0x80000000 | 19, 17, 18, 20,
QMetaType::Void, QMetaType::Int, QMetaType::Int, 17, 22,
QMetaType::Void, QMetaType::Int, QMetaType::Long, 17, 24,
QMetaType::Void, QMetaType::Int, QMetaType::QString, 17, 26,
QMetaType::Void, QMetaType::Int, 17,
QMetaType::Void, QMetaType::Int, 17,
QMetaType::Void, QMetaType::QString, QMetaType::Int, 30, 17,
QMetaType::Void, QMetaType::Int, 17,
QMetaType::Void, QMetaType::Int, 17,
QMetaType::Void, QMetaType::Int, 17,
QMetaType::Void, QMetaType::Int, 35,
QMetaType::Void, QMetaType::Int, 35,
QMetaType::Void, QMetaType::Int, 35,
QMetaType::Void, QMetaType::Int, 17,
QMetaType::Void, QMetaType::Int, 17,
QMetaType::Void, 0x80000000 | 41, 42,
QMetaType::Void, 0x80000000 | 44, 42,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void Cigarette::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<Cigarette *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->sengMsgToClog((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 1: _t->sendMsgToExportData(); break;
case 2: _t->on_btn_start_released(); break;
case 3: _t->on_btn_pause_released(); break;
case 4: _t->on_btn_lock_released(); break;
case 5: _t->on_btn_setup_released(); break;
case 6: _t->on_checkBox_debug_clicked((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 7: _t->on_checkBox_unkick_clicked((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 8: _t->on_pushButton_wintab_clicked((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 9: _t->on_toolButton_plc_released(); break;
case 10: _t->on_toolButton_alarm_released(); break;
case 11: _t->on_pushButton_clear_released(); break;
case 12: _t->enable_shift(); break;
case 13: _t->OnNotifyHub((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< cv::Mat(*)>(_a[3]))); break;
case 14: _t->OnDisplayTimeCostHub((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
case 15: _t->OnDisplayCheckNumberHub((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< long(*)>(_a[2]))); break;
case 16: _t->OnDisplayJdNoHub((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
case 17: _t->OnOKHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 18: _t->OnNGHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 19: _t->updateStatisticsHub((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
case 20: _t->OnRotateReleasedHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 21: _t->OnToolButtonCamReleasedHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 22: _t->OpenCamTimeoutHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 23: _t->OnDBClickHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 24: _t->DrawRect_init((*reinterpret_cast< int(*)>(_a[1]))); break;
case 25: _t->OnTPClickHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 26: _t->OnDBClickNGHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 27: _t->ReconnectCamHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 28: _t->OnMouse((*reinterpret_cast< QMouseEvent*(*)>(_a[1]))); break;
case 29: _t->OnKey((*reinterpret_cast< QKeyEvent*(*)>(_a[1]))); break;
case 30: _t->handleTimeout(); break;
case 31: _t->op_timeout(); break;
case 32: _t->admin_timeout(); break;
case 33: _t->EnableDebugMode(); break;
case 34: _t->DisableDebugMode(); break;
case 35: _t->OnCancelAlarm(); break;
case 36: _t->on_pushButton_reset_released(); break;
case 37: _t->OnOp(); break;
case 38: _t->OnExit(); break;
case 39: _t->OnRestart(); break;
case 40: _t->OnAdmin(); break;
case 41: _t->CleanThreadStartAuto(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (Cigarette::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Cigarette::sengMsgToClog)) {
*result = 0;
return;
}
}
{
using _t = void (Cigarette::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Cigarette::sendMsgToExportData)) {
*result = 1;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject Cigarette::staticMetaObject = { {
QMetaObject::SuperData::link<QMainWindow::staticMetaObject>(),
qt_meta_stringdata_Cigarette.data,
qt_meta_data_Cigarette,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *Cigarette::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *Cigarette::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_Cigarette.stringdata0))
return static_cast<void*>(this);
return QMainWindow::qt_metacast(_clname);
}
int Cigarette::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QMainWindow::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 42)
qt_static_metacall(this, _c, _id, _a);
_id -= 42;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 42)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 42;
}
return _id;
}
// SIGNAL 0
void Cigarette::sengMsgToClog(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void Cigarette::sendMsgToExportData()
{
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,273 @@
/****************************************************************************
** Meta object code from reading C++ file 'db_label.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../db_label.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'db_label.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_db_label_t {
QByteArrayData data[14];
char stringdata0[219];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_db_label_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_db_label_t qt_meta_stringdata_db_label = {
{
QT_MOC_LITERAL(0, 0, 8), // "db_label"
QT_MOC_LITERAL(1, 9, 11), // "QlabelClick"
QT_MOC_LITERAL(2, 21, 0), // ""
QT_MOC_LITERAL(3, 22, 17), // "QlabelDoubleClick"
QT_MOC_LITERAL(4, 40, 17), // "QlabelTripleClick"
QT_MOC_LITERAL(5, 58, 27), // "SignalmouseDoubleClickEvent"
QT_MOC_LITERAL(6, 86, 12), // "QMouseEvent*"
QT_MOC_LITERAL(7, 99, 5), // "event"
QT_MOC_LITERAL(8, 105, 21), // "SignalmousePressEvent"
QT_MOC_LITERAL(9, 127, 23), // "SignalmouseReleaseEvent"
QT_MOC_LITERAL(10, 151, 20), // "SignalmouseMoveEvent"
QT_MOC_LITERAL(11, 172, 21), // "SignalkeyReleaseEvent"
QT_MOC_LITERAL(12, 194, 10), // "QKeyEvent*"
QT_MOC_LITERAL(13, 205, 13) // "TimeOutNotify"
},
"db_label\0QlabelClick\0\0QlabelDoubleClick\0"
"QlabelTripleClick\0SignalmouseDoubleClickEvent\0"
"QMouseEvent*\0event\0SignalmousePressEvent\0"
"SignalmouseReleaseEvent\0SignalmouseMoveEvent\0"
"SignalkeyReleaseEvent\0QKeyEvent*\0"
"TimeOutNotify"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_db_label[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
9, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
8, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 59, 2, 0x06 /* Public */,
3, 0, 60, 2, 0x06 /* Public */,
4, 0, 61, 2, 0x06 /* Public */,
5, 1, 62, 2, 0x06 /* Public */,
8, 1, 65, 2, 0x06 /* Public */,
9, 1, 68, 2, 0x06 /* Public */,
10, 1, 71, 2, 0x06 /* Public */,
11, 1, 74, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
13, 0, 77, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, 0x80000000 | 6, 7,
QMetaType::Void, 0x80000000 | 6, 7,
QMetaType::Void, 0x80000000 | 6, 7,
QMetaType::Void, 0x80000000 | 6, 7,
QMetaType::Void, 0x80000000 | 12, 7,
// slots: parameters
QMetaType::Void,
0 // eod
};
void db_label::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<db_label *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->QlabelClick(); break;
case 1: _t->QlabelDoubleClick(); break;
case 2: _t->QlabelTripleClick(); break;
case 3: _t->SignalmouseDoubleClickEvent((*reinterpret_cast< QMouseEvent*(*)>(_a[1]))); break;
case 4: _t->SignalmousePressEvent((*reinterpret_cast< QMouseEvent*(*)>(_a[1]))); break;
case 5: _t->SignalmouseReleaseEvent((*reinterpret_cast< QMouseEvent*(*)>(_a[1]))); break;
case 6: _t->SignalmouseMoveEvent((*reinterpret_cast< QMouseEvent*(*)>(_a[1]))); break;
case 7: _t->SignalkeyReleaseEvent((*reinterpret_cast< QKeyEvent*(*)>(_a[1]))); break;
case 8: _t->TimeOutNotify(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (db_label::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&db_label::QlabelClick)) {
*result = 0;
return;
}
}
{
using _t = void (db_label::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&db_label::QlabelDoubleClick)) {
*result = 1;
return;
}
}
{
using _t = void (db_label::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&db_label::QlabelTripleClick)) {
*result = 2;
return;
}
}
{
using _t = void (db_label::*)(QMouseEvent * );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&db_label::SignalmouseDoubleClickEvent)) {
*result = 3;
return;
}
}
{
using _t = void (db_label::*)(QMouseEvent * );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&db_label::SignalmousePressEvent)) {
*result = 4;
return;
}
}
{
using _t = void (db_label::*)(QMouseEvent * );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&db_label::SignalmouseReleaseEvent)) {
*result = 5;
return;
}
}
{
using _t = void (db_label::*)(QMouseEvent * );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&db_label::SignalmouseMoveEvent)) {
*result = 6;
return;
}
}
{
using _t = void (db_label::*)(QKeyEvent * );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&db_label::SignalkeyReleaseEvent)) {
*result = 7;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject db_label::staticMetaObject = { {
QMetaObject::SuperData::link<QLabel::staticMetaObject>(),
qt_meta_stringdata_db_label.data,
qt_meta_data_db_label,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *db_label::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *db_label::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_db_label.stringdata0))
return static_cast<void*>(this);
return QLabel::qt_metacast(_clname);
}
int db_label::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QLabel::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 9)
qt_static_metacall(this, _c, _id, _a);
_id -= 9;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 9)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 9;
}
return _id;
}
// SIGNAL 0
void db_label::QlabelClick()
{
QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
}
// SIGNAL 1
void db_label::QlabelDoubleClick()
{
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
}
// SIGNAL 2
void db_label::QlabelTripleClick()
{
QMetaObject::activate(this, &staticMetaObject, 2, nullptr);
}
// SIGNAL 3
void db_label::SignalmouseDoubleClickEvent(QMouseEvent * _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
// SIGNAL 4
void db_label::SignalmousePressEvent(QMouseEvent * _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 4, _a);
}
// SIGNAL 5
void db_label::SignalmouseReleaseEvent(QMouseEvent * _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 5, _a);
}
// SIGNAL 6
void db_label::SignalmouseMoveEvent(QMouseEvent * _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 6, _a);
}
// SIGNAL 7
void db_label::SignalkeyReleaseEvent(QKeyEvent * _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 7, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,137 @@
/****************************************************************************
** Meta object code from reading C++ file 'debugthread.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../debugthread.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'debugthread.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_DebugThread_t {
QByteArrayData data[6];
char stringdata0[36];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_DebugThread_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_DebugThread_t qt_meta_stringdata_DebugThread = {
{
QT_MOC_LITERAL(0, 0, 11), // "DebugThread"
QT_MOC_LITERAL(1, 12, 6), // "notify"
QT_MOC_LITERAL(2, 19, 0), // ""
QT_MOC_LITERAL(3, 20, 3), // "Num"
QT_MOC_LITERAL(4, 24, 3), // "Cnt"
QT_MOC_LITERAL(5, 28, 7) // "cv::Mat"
},
"DebugThread\0notify\0\0Num\0Cnt\0cv::Mat"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_DebugThread[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 3, 19, 2, 0x06 /* Public */,
// signals: parameters
QMetaType::Void, QMetaType::Int, QMetaType::Int, 0x80000000 | 5, 3, 4, 2,
0 // eod
};
void DebugThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<DebugThread *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->notify((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< cv::Mat(*)>(_a[3]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (DebugThread::*)(int , int , cv::Mat );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&DebugThread::notify)) {
*result = 0;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject DebugThread::staticMetaObject = { {
QMetaObject::SuperData::link<QThread::staticMetaObject>(),
qt_meta_stringdata_DebugThread.data,
qt_meta_data_DebugThread,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *DebugThread::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *DebugThread::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_DebugThread.stringdata0))
return static_cast<void*>(this);
return QThread::qt_metacast(_clname);
}
int DebugThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QThread::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
// SIGNAL 0
void DebugThread::notify(int _t1, int _t2, cv::Mat _t3)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t3))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,202 @@
/****************************************************************************
** Meta object code from reading C++ file 'dialogin.hpp'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../dialogin.hpp"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'dialogin.hpp' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_Dialogin_t {
QByteArrayData data[16];
char stringdata0[351];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_Dialogin_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_Dialogin_t qt_meta_stringdata_Dialogin = {
{
QT_MOC_LITERAL(0, 0, 8), // "Dialogin"
QT_MOC_LITERAL(1, 9, 8), // "enter_op"
QT_MOC_LITERAL(2, 18, 0), // ""
QT_MOC_LITERAL(3, 19, 28), // "on_pushButton_close_released"
QT_MOC_LITERAL(4, 48, 26), // "on_pushButton_clr_released"
QT_MOC_LITERAL(5, 75, 25), // "on_pushButton_ok_released"
QT_MOC_LITERAL(6, 101, 24), // "on_pushButton_0_released"
QT_MOC_LITERAL(7, 126, 24), // "on_pushButton_1_released"
QT_MOC_LITERAL(8, 151, 24), // "on_pushButton_2_released"
QT_MOC_LITERAL(9, 176, 24), // "on_pushButton_3_released"
QT_MOC_LITERAL(10, 201, 24), // "on_pushButton_4_released"
QT_MOC_LITERAL(11, 226, 24), // "on_pushButton_5_released"
QT_MOC_LITERAL(12, 251, 24), // "on_pushButton_6_released"
QT_MOC_LITERAL(13, 276, 24), // "on_pushButton_7_released"
QT_MOC_LITERAL(14, 301, 24), // "on_pushButton_8_released"
QT_MOC_LITERAL(15, 326, 24) // "on_pushButton_9_released"
},
"Dialogin\0enter_op\0\0on_pushButton_close_released\0"
"on_pushButton_clr_released\0"
"on_pushButton_ok_released\0"
"on_pushButton_0_released\0"
"on_pushButton_1_released\0"
"on_pushButton_2_released\0"
"on_pushButton_3_released\0"
"on_pushButton_4_released\0"
"on_pushButton_5_released\0"
"on_pushButton_6_released\0"
"on_pushButton_7_released\0"
"on_pushButton_8_released\0"
"on_pushButton_9_released"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_Dialogin[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
14, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 84, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
3, 0, 85, 2, 0x08 /* Private */,
4, 0, 86, 2, 0x08 /* Private */,
5, 0, 87, 2, 0x08 /* Private */,
6, 0, 88, 2, 0x08 /* Private */,
7, 0, 89, 2, 0x08 /* Private */,
8, 0, 90, 2, 0x08 /* Private */,
9, 0, 91, 2, 0x08 /* Private */,
10, 0, 92, 2, 0x08 /* Private */,
11, 0, 93, 2, 0x08 /* Private */,
12, 0, 94, 2, 0x08 /* Private */,
13, 0, 95, 2, 0x08 /* Private */,
14, 0, 96, 2, 0x08 /* Private */,
15, 0, 97, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void Dialogin::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<Dialogin *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->enter_op(); break;
case 1: _t->on_pushButton_close_released(); break;
case 2: _t->on_pushButton_clr_released(); break;
case 3: _t->on_pushButton_ok_released(); break;
case 4: _t->on_pushButton_0_released(); break;
case 5: _t->on_pushButton_1_released(); break;
case 6: _t->on_pushButton_2_released(); break;
case 7: _t->on_pushButton_3_released(); break;
case 8: _t->on_pushButton_4_released(); break;
case 9: _t->on_pushButton_5_released(); break;
case 10: _t->on_pushButton_6_released(); break;
case 11: _t->on_pushButton_7_released(); break;
case 12: _t->on_pushButton_8_released(); break;
case 13: _t->on_pushButton_9_released(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (Dialogin::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Dialogin::enter_op)) {
*result = 0;
return;
}
}
}
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject Dialogin::staticMetaObject = { {
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
qt_meta_stringdata_Dialogin.data,
qt_meta_data_Dialogin,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *Dialogin::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *Dialogin::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_Dialogin.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int Dialogin::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 14)
qt_static_metacall(this, _c, _id, _a);
_id -= 14;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 14)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 14;
}
return _id;
}
// SIGNAL 0
void Dialogin::enter_op()
{
QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,322 @@
/****************************************************************************
** Meta object code from reading C++ file 'dialogsetup.hpp'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../dialogsetup.hpp"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'dialogsetup.hpp' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_DialogSetup_t {
QByteArrayData data[38];
char stringdata0[872];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_DialogSetup_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_DialogSetup_t qt_meta_stringdata_DialogSetup = {
{
QT_MOC_LITERAL(0, 0, 11), // "DialogSetup"
QT_MOC_LITERAL(1, 12, 11), // "system_exit"
QT_MOC_LITERAL(2, 24, 0), // ""
QT_MOC_LITERAL(3, 25, 14), // "sendMsgToShift"
QT_MOC_LITERAL(4, 40, 5), // "timeA"
QT_MOC_LITERAL(5, 46, 5), // "timeB"
QT_MOC_LITERAL(6, 52, 5), // "timeC"
QT_MOC_LITERAL(7, 58, 15), // "sendMsgToOutput"
QT_MOC_LITERAL(8, 74, 15), // "sendMsgToConfig"
QT_MOC_LITERAL(9, 90, 8), // "int[][3]"
QT_MOC_LITERAL(10, 99, 3), // "ptr"
QT_MOC_LITERAL(11, 103, 31), // "on_toolButton_keyboard_released"
QT_MOC_LITERAL(12, 135, 27), // "on_pushButton_exit_released"
QT_MOC_LITERAL(13, 163, 27), // "on_pushButton_save_released"
QT_MOC_LITERAL(14, 191, 28), // "on_pushButton_close_released"
QT_MOC_LITERAL(15, 220, 41), // "on_toolButton_choose_config_p..."
QT_MOC_LITERAL(16, 262, 40), // "on_toolButton_choose_model_pa..."
QT_MOC_LITERAL(17, 303, 38), // "on_toolButton_choose_path_jpg..."
QT_MOC_LITERAL(18, 342, 44), // "on_toolButton_choose_save_pic..."
QT_MOC_LITERAL(19, 387, 30), // "on_pushButton_desktop_released"
QT_MOC_LITERAL(20, 418, 28), // "on_pushButton_image_released"
QT_MOC_LITERAL(21, 447, 27), // "on_pushButton_pswd_released"
QT_MOC_LITERAL(22, 475, 30), // "on_pushButton_pswd_op_released"
QT_MOC_LITERAL(23, 506, 27), // "on_pushButton_expo_released"
QT_MOC_LITERAL(24, 534, 29), // "on_pushButton_filter_released"
QT_MOC_LITERAL(25, 564, 32), // "on_pushButton_clear_pic_released"
QT_MOC_LITERAL(26, 597, 29), // "on_pushButton_config_released"
QT_MOC_LITERAL(27, 627, 29), // "on_pushButton_change_released"
QT_MOC_LITERAL(28, 657, 32), // "on_pushButton_statistic_released"
QT_MOC_LITERAL(29, 690, 29), // "on_checkBox_auto_open_clicked"
QT_MOC_LITERAL(30, 720, 7), // "checked"
QT_MOC_LITERAL(31, 728, 29), // "on_checkBox_auto_work_clicked"
QT_MOC_LITERAL(32, 758, 22), // "recMsgFromDialogConfig"
QT_MOC_LITERAL(33, 781, 21), // "recMsgFromChangeShift"
QT_MOC_LITERAL(34, 803, 16), // "onComboBoxSelect"
QT_MOC_LITERAL(35, 820, 5), // "index"
QT_MOC_LITERAL(36, 826, 20), // "onComboBoxConfSelect"
QT_MOC_LITERAL(37, 847, 24) // "onComboBoxPicsPathSelect"
},
"DialogSetup\0system_exit\0\0sendMsgToShift\0"
"timeA\0timeB\0timeC\0sendMsgToOutput\0"
"sendMsgToConfig\0int[][3]\0ptr\0"
"on_toolButton_keyboard_released\0"
"on_pushButton_exit_released\0"
"on_pushButton_save_released\0"
"on_pushButton_close_released\0"
"on_toolButton_choose_config_path_released\0"
"on_toolButton_choose_model_path_released\0"
"on_toolButton_choose_path_jpg_released\0"
"on_toolButton_choose_save_pics_path_released\0"
"on_pushButton_desktop_released\0"
"on_pushButton_image_released\0"
"on_pushButton_pswd_released\0"
"on_pushButton_pswd_op_released\0"
"on_pushButton_expo_released\0"
"on_pushButton_filter_released\0"
"on_pushButton_clear_pic_released\0"
"on_pushButton_config_released\0"
"on_pushButton_change_released\0"
"on_pushButton_statistic_released\0"
"on_checkBox_auto_open_clicked\0checked\0"
"on_checkBox_auto_work_clicked\0"
"recMsgFromDialogConfig\0recMsgFromChangeShift\0"
"onComboBoxSelect\0index\0onComboBoxConfSelect\0"
"onComboBoxPicsPathSelect"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_DialogSetup[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
29, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
4, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 159, 2, 0x06 /* Public */,
3, 3, 160, 2, 0x06 /* Public */,
7, 0, 167, 2, 0x06 /* Public */,
8, 1, 168, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
11, 0, 171, 2, 0x08 /* Private */,
12, 0, 172, 2, 0x08 /* Private */,
13, 0, 173, 2, 0x08 /* Private */,
14, 0, 174, 2, 0x08 /* Private */,
15, 0, 175, 2, 0x08 /* Private */,
16, 0, 176, 2, 0x08 /* Private */,
17, 0, 177, 2, 0x08 /* Private */,
18, 0, 178, 2, 0x08 /* Private */,
19, 0, 179, 2, 0x08 /* Private */,
20, 0, 180, 2, 0x08 /* Private */,
21, 0, 181, 2, 0x08 /* Private */,
22, 0, 182, 2, 0x08 /* Private */,
23, 0, 183, 2, 0x08 /* Private */,
24, 0, 184, 2, 0x08 /* Private */,
25, 0, 185, 2, 0x08 /* Private */,
26, 0, 186, 2, 0x08 /* Private */,
27, 0, 187, 2, 0x08 /* Private */,
28, 0, 188, 2, 0x08 /* Private */,
29, 1, 189, 2, 0x08 /* Private */,
31, 1, 192, 2, 0x08 /* Private */,
32, 1, 195, 2, 0x08 /* Private */,
33, 3, 198, 2, 0x08 /* Private */,
34, 1, 205, 2, 0x08 /* Private */,
36, 1, 208, 2, 0x08 /* Private */,
37, 1, 211, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void,
QMetaType::Void, QMetaType::QTime, QMetaType::QTime, QMetaType::QTime, 4, 5, 6,
QMetaType::Void,
QMetaType::Void, 0x80000000 | 9, 10,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::Bool, 30,
QMetaType::Void, QMetaType::Bool, 30,
QMetaType::Void, 0x80000000 | 9, 10,
QMetaType::Void, QMetaType::QTime, QMetaType::QTime, QMetaType::QTime, 4, 5, 6,
QMetaType::Void, QMetaType::Int, 35,
QMetaType::Void, QMetaType::Int, 35,
QMetaType::Void, QMetaType::Int, 35,
0 // eod
};
void DialogSetup::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<DialogSetup *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->system_exit(); break;
case 1: _t->sendMsgToShift((*reinterpret_cast< QTime(*)>(_a[1])),(*reinterpret_cast< QTime(*)>(_a[2])),(*reinterpret_cast< QTime(*)>(_a[3]))); break;
case 2: _t->sendMsgToOutput(); break;
case 3: _t->sendMsgToConfig((*reinterpret_cast< int(*)[][3]>(_a[1]))); break;
case 4: _t->on_toolButton_keyboard_released(); break;
case 5: _t->on_pushButton_exit_released(); break;
case 6: _t->on_pushButton_save_released(); break;
case 7: _t->on_pushButton_close_released(); break;
case 8: _t->on_toolButton_choose_config_path_released(); break;
case 9: _t->on_toolButton_choose_model_path_released(); break;
case 10: _t->on_toolButton_choose_path_jpg_released(); break;
case 11: _t->on_toolButton_choose_save_pics_path_released(); break;
case 12: _t->on_pushButton_desktop_released(); break;
case 13: _t->on_pushButton_image_released(); break;
case 14: _t->on_pushButton_pswd_released(); break;
case 15: _t->on_pushButton_pswd_op_released(); break;
case 16: _t->on_pushButton_expo_released(); break;
case 17: _t->on_pushButton_filter_released(); break;
case 18: _t->on_pushButton_clear_pic_released(); break;
case 19: _t->on_pushButton_config_released(); break;
case 20: _t->on_pushButton_change_released(); break;
case 21: _t->on_pushButton_statistic_released(); break;
case 22: _t->on_checkBox_auto_open_clicked((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 23: _t->on_checkBox_auto_work_clicked((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 24: _t->recMsgFromDialogConfig((*reinterpret_cast< int(*)[][3]>(_a[1]))); break;
case 25: _t->recMsgFromChangeShift((*reinterpret_cast< QTime(*)>(_a[1])),(*reinterpret_cast< QTime(*)>(_a[2])),(*reinterpret_cast< QTime(*)>(_a[3]))); break;
case 26: _t->onComboBoxSelect((*reinterpret_cast< int(*)>(_a[1]))); break;
case 27: _t->onComboBoxConfSelect((*reinterpret_cast< int(*)>(_a[1]))); break;
case 28: _t->onComboBoxPicsPathSelect((*reinterpret_cast< int(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (DialogSetup::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&DialogSetup::system_exit)) {
*result = 0;
return;
}
}
{
using _t = void (DialogSetup::*)(QTime , QTime , QTime );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&DialogSetup::sendMsgToShift)) {
*result = 1;
return;
}
}
{
using _t = void (DialogSetup::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&DialogSetup::sendMsgToOutput)) {
*result = 2;
return;
}
}
{
using _t = void (DialogSetup::*)(int [][3]);
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&DialogSetup::sendMsgToConfig)) {
*result = 3;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject DialogSetup::staticMetaObject = { {
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
qt_meta_stringdata_DialogSetup.data,
qt_meta_data_DialogSetup,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *DialogSetup::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *DialogSetup::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_DialogSetup.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int DialogSetup::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 29)
qt_static_metacall(this, _c, _id, _a);
_id -= 29;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 29)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 29;
}
return _id;
}
// SIGNAL 0
void DialogSetup::system_exit()
{
QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
}
// SIGNAL 1
void DialogSetup::sendMsgToShift(QTime _t1, QTime _t2, QTime _t3)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t3))) };
QMetaObject::activate(this, &staticMetaObject, 1, _a);
}
// SIGNAL 2
void DialogSetup::sendMsgToOutput()
{
QMetaObject::activate(this, &staticMetaObject, 2, nullptr);
}
// SIGNAL 3
void DialogSetup::sendMsgToConfig(int _t1[][3])
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,203 @@
/****************************************************************************
** Meta object code from reading C++ file 'dialogsetuppasswd.hpp'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../dialogsetuppasswd.hpp"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'dialogsetuppasswd.hpp' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_DialogSetupPasswd_t {
QByteArrayData data[16];
char stringdata0[363];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_DialogSetupPasswd_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_DialogSetupPasswd_t qt_meta_stringdata_DialogSetupPasswd = {
{
QT_MOC_LITERAL(0, 0, 17), // "DialogSetupPasswd"
QT_MOC_LITERAL(1, 18, 11), // "enter_admin"
QT_MOC_LITERAL(2, 30, 0), // ""
QT_MOC_LITERAL(3, 31, 28), // "on_pushButton_close_released"
QT_MOC_LITERAL(4, 60, 26), // "on_pushButton_clr_released"
QT_MOC_LITERAL(5, 87, 25), // "on_pushButton_ok_released"
QT_MOC_LITERAL(6, 113, 24), // "on_pushButton_0_released"
QT_MOC_LITERAL(7, 138, 24), // "on_pushButton_1_released"
QT_MOC_LITERAL(8, 163, 24), // "on_pushButton_2_released"
QT_MOC_LITERAL(9, 188, 24), // "on_pushButton_3_released"
QT_MOC_LITERAL(10, 213, 24), // "on_pushButton_4_released"
QT_MOC_LITERAL(11, 238, 24), // "on_pushButton_5_released"
QT_MOC_LITERAL(12, 263, 24), // "on_pushButton_6_released"
QT_MOC_LITERAL(13, 288, 24), // "on_pushButton_7_released"
QT_MOC_LITERAL(14, 313, 24), // "on_pushButton_8_released"
QT_MOC_LITERAL(15, 338, 24) // "on_pushButton_9_released"
},
"DialogSetupPasswd\0enter_admin\0\0"
"on_pushButton_close_released\0"
"on_pushButton_clr_released\0"
"on_pushButton_ok_released\0"
"on_pushButton_0_released\0"
"on_pushButton_1_released\0"
"on_pushButton_2_released\0"
"on_pushButton_3_released\0"
"on_pushButton_4_released\0"
"on_pushButton_5_released\0"
"on_pushButton_6_released\0"
"on_pushButton_7_released\0"
"on_pushButton_8_released\0"
"on_pushButton_9_released"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_DialogSetupPasswd[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
14, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 84, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
3, 0, 85, 2, 0x08 /* Private */,
4, 0, 86, 2, 0x08 /* Private */,
5, 0, 87, 2, 0x08 /* Private */,
6, 0, 88, 2, 0x08 /* Private */,
7, 0, 89, 2, 0x08 /* Private */,
8, 0, 90, 2, 0x08 /* Private */,
9, 0, 91, 2, 0x08 /* Private */,
10, 0, 92, 2, 0x08 /* Private */,
11, 0, 93, 2, 0x08 /* Private */,
12, 0, 94, 2, 0x08 /* Private */,
13, 0, 95, 2, 0x08 /* Private */,
14, 0, 96, 2, 0x08 /* Private */,
15, 0, 97, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void DialogSetupPasswd::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<DialogSetupPasswd *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->enter_admin(); break;
case 1: _t->on_pushButton_close_released(); break;
case 2: _t->on_pushButton_clr_released(); break;
case 3: _t->on_pushButton_ok_released(); break;
case 4: _t->on_pushButton_0_released(); break;
case 5: _t->on_pushButton_1_released(); break;
case 6: _t->on_pushButton_2_released(); break;
case 7: _t->on_pushButton_3_released(); break;
case 8: _t->on_pushButton_4_released(); break;
case 9: _t->on_pushButton_5_released(); break;
case 10: _t->on_pushButton_6_released(); break;
case 11: _t->on_pushButton_7_released(); break;
case 12: _t->on_pushButton_8_released(); break;
case 13: _t->on_pushButton_9_released(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (DialogSetupPasswd::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&DialogSetupPasswd::enter_admin)) {
*result = 0;
return;
}
}
}
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject DialogSetupPasswd::staticMetaObject = { {
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
qt_meta_stringdata_DialogSetupPasswd.data,
qt_meta_data_DialogSetupPasswd,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *DialogSetupPasswd::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *DialogSetupPasswd::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_DialogSetupPasswd.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int DialogSetupPasswd::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 14)
qt_static_metacall(this, _c, _id, _a);
_id -= 14;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 14)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 14;
}
return _id;
}
// SIGNAL 0
void DialogSetupPasswd::enter_admin()
{
QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,124 @@
/****************************************************************************
** Meta object code from reading C++ file 'exportData.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../exportData.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'exportData.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_ExportDataThread_t {
QByteArrayData data[5];
char stringdata0[71];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_ExportDataThread_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_ExportDataThread_t qt_meta_stringdata_ExportDataThread = {
{
QT_MOC_LITERAL(0, 0, 16), // "ExportDataThread"
QT_MOC_LITERAL(1, 17, 21), // "EDrecMsgFromCigarette"
QT_MOC_LITERAL(2, 39, 0), // ""
QT_MOC_LITERAL(3, 40, 21), // "GetDataFromSaveThread"
QT_MOC_LITERAL(4, 62, 8) // "filePath"
},
"ExportDataThread\0EDrecMsgFromCigarette\0"
"\0GetDataFromSaveThread\0filePath"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_ExportDataThread[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
2, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 24, 2, 0x0a /* Public */,
3, 1, 25, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void,
QMetaType::Void, QMetaType::QString, 4,
0 // eod
};
void ExportDataThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<ExportDataThread *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->EDrecMsgFromCigarette(); break;
case 1: _t->GetDataFromSaveThread((*reinterpret_cast< QString(*)>(_a[1]))); break;
default: ;
}
}
}
QT_INIT_METAOBJECT const QMetaObject ExportDataThread::staticMetaObject = { {
QMetaObject::SuperData::link<QThread::staticMetaObject>(),
qt_meta_stringdata_ExportDataThread.data,
qt_meta_data_ExportDataThread,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *ExportDataThread::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *ExportDataThread::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_ExportDataThread.stringdata0))
return static_cast<void*>(this);
return QThread::qt_metacast(_clname);
}
int ExportDataThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QThread::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 2)
qt_static_metacall(this, _c, _id, _a);
_id -= 2;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 2)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 2;
}
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,120 @@
/****************************************************************************
** Meta object code from reading C++ file 'output_statistic.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../output_statistic.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'output_statistic.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_output_statistic_t {
QByteArrayData data[3];
char stringdata0[40];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_output_statistic_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_output_statistic_t qt_meta_stringdata_output_statistic = {
{
QT_MOC_LITERAL(0, 0, 16), // "output_statistic"
QT_MOC_LITERAL(1, 17, 21), // "recMsgFromDialogSetup"
QT_MOC_LITERAL(2, 39, 0) // ""
},
"output_statistic\0recMsgFromDialogSetup\0"
""
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_output_statistic[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 19, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void,
0 // eod
};
void output_statistic::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<output_statistic *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->recMsgFromDialogSetup(); break;
default: ;
}
}
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject output_statistic::staticMetaObject = { {
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
qt_meta_stringdata_output_statistic.data,
qt_meta_data_output_statistic,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *output_statistic::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *output_statistic::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_output_statistic.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int output_statistic::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,146 @@
/****************************************************************************
** Meta object code from reading C++ file 'plcsetup.hpp'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../plcsetup.hpp"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'plcsetup.hpp' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_PlcSetup_t {
QByteArrayData data[9];
char stringdata0[153];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_PlcSetup_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_PlcSetup_t qt_meta_stringdata_PlcSetup = {
{
QT_MOC_LITERAL(0, 0, 8), // "PlcSetup"
QT_MOC_LITERAL(1, 9, 10), // "click_read"
QT_MOC_LITERAL(2, 20, 0), // ""
QT_MOC_LITERAL(3, 21, 11), // "click_write"
QT_MOC_LITERAL(4, 33, 10), // "click_save"
QT_MOC_LITERAL(5, 44, 33), // "on_toolButton_batch_read_rele..."
QT_MOC_LITERAL(6, 78, 31), // "on_toolButton_keyboard_released"
QT_MOC_LITERAL(7, 110, 28), // "on_toolButton_close_released"
QT_MOC_LITERAL(8, 139, 13) // "handleTimeout"
},
"PlcSetup\0click_read\0\0click_write\0"
"click_save\0on_toolButton_batch_read_released\0"
"on_toolButton_keyboard_released\0"
"on_toolButton_close_released\0handleTimeout"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_PlcSetup[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
7, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 49, 2, 0x08 /* Private */,
3, 0, 50, 2, 0x08 /* Private */,
4, 0, 51, 2, 0x08 /* Private */,
5, 0, 52, 2, 0x08 /* Private */,
6, 0, 53, 2, 0x08 /* Private */,
7, 0, 54, 2, 0x08 /* Private */,
8, 0, 55, 2, 0x08 /* Private */,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void PlcSetup::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<PlcSetup *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->click_read(); break;
case 1: _t->click_write(); break;
case 2: _t->click_save(); break;
case 3: _t->on_toolButton_batch_read_released(); break;
case 4: _t->on_toolButton_keyboard_released(); break;
case 5: _t->on_toolButton_close_released(); break;
case 6: _t->handleTimeout(); break;
default: ;
}
}
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject PlcSetup::staticMetaObject = { {
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
qt_meta_stringdata_PlcSetup.data,
qt_meta_data_PlcSetup,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *PlcSetup::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *PlcSetup::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_PlcSetup.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int PlcSetup::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 7)
qt_static_metacall(this, _c, _id, _a);
_id -= 7;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 7)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 7;
}
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,135 @@
/****************************************************************************
** Meta object code from reading C++ file 'savethread.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../savethread.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'savethread.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_SaveThread_t {
QByteArrayData data[4];
char stringdata0[38];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_SaveThread_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_SaveThread_t qt_meta_stringdata_SaveThread = {
{
QT_MOC_LITERAL(0, 0, 10), // "SaveThread"
QT_MOC_LITERAL(1, 11, 16), // "sendDataToExport"
QT_MOC_LITERAL(2, 28, 0), // ""
QT_MOC_LITERAL(3, 29, 8) // "filePath"
},
"SaveThread\0sendDataToExport\0\0filePath"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_SaveThread[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 19, 2, 0x06 /* Public */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 3,
0 // eod
};
void SaveThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<SaveThread *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->sendDataToExport((*reinterpret_cast< QString(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (SaveThread::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SaveThread::sendDataToExport)) {
*result = 0;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject SaveThread::staticMetaObject = { {
QMetaObject::SuperData::link<QThread::staticMetaObject>(),
qt_meta_stringdata_SaveThread.data,
qt_meta_data_SaveThread,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *SaveThread::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *SaveThread::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_SaveThread.stringdata0))
return static_cast<void*>(this);
return QThread::qt_metacast(_clname);
}
int SaveThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QThread::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
// SIGNAL 0
void SaveThread::sendDataToExport(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,149 @@
/****************************************************************************
** Meta object code from reading C++ file 'threadReceive.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../threadReceive.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'threadReceive.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_threadReceive_t {
QByteArrayData data[6];
char stringdata0[88];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_threadReceive_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_threadReceive_t qt_meta_stringdata_threadReceive = {
{
QT_MOC_LITERAL(0, 0, 13), // "threadReceive"
QT_MOC_LITERAL(1, 14, 17), // "sendMsgToCigratte"
QT_MOC_LITERAL(2, 32, 0), // ""
QT_MOC_LITERAL(3, 33, 4), // "data"
QT_MOC_LITERAL(4, 38, 22), // "processPendingDatagram"
QT_MOC_LITERAL(5, 61, 26) // "fileprocessPendingDatagram"
},
"threadReceive\0sendMsgToCigratte\0\0data\0"
"processPendingDatagram\0"
"fileprocessPendingDatagram"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_threadReceive[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
3, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 29, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
4, 0, 32, 2, 0x08 /* Private */,
5, 0, 33, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 3,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void threadReceive::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<threadReceive *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->sendMsgToCigratte((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 1: _t->processPendingDatagram(); break;
case 2: _t->fileprocessPendingDatagram(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (threadReceive::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&threadReceive::sendMsgToCigratte)) {
*result = 0;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject threadReceive::staticMetaObject = { {
QMetaObject::SuperData::link<QThread::staticMetaObject>(),
qt_meta_stringdata_threadReceive.data,
qt_meta_data_threadReceive,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *threadReceive::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *threadReceive::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_threadReceive.stringdata0))
return static_cast<void*>(this);
return QThread::qt_metacast(_clname);
}
int threadReceive::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QThread::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 3)
qt_static_metacall(this, _c, _id, _a);
_id -= 3;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 3)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 3;
}
return _id;
}
// SIGNAL 0
void threadReceive::sendMsgToCigratte(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,233 @@
/****************************************************************************
** Meta object code from reading C++ file 'workthread.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../workthread.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'workthread.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_WorkThread_t {
QByteArrayData data[14];
char stringdata0[116];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_WorkThread_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_WorkThread_t qt_meta_stringdata_WorkThread = {
{
QT_MOC_LITERAL(0, 0, 10), // "WorkThread"
QT_MOC_LITERAL(1, 11, 6), // "notify"
QT_MOC_LITERAL(2, 18, 0), // ""
QT_MOC_LITERAL(3, 19, 3), // "Num"
QT_MOC_LITERAL(4, 23, 3), // "Cnt"
QT_MOC_LITERAL(5, 27, 7), // "cv::Mat"
QT_MOC_LITERAL(6, 35, 16), // "display_timecost"
QT_MOC_LITERAL(7, 52, 2), // "ms"
QT_MOC_LITERAL(8, 55, 19), // "display_check_total"
QT_MOC_LITERAL(9, 75, 2), // "no"
QT_MOC_LITERAL(10, 78, 13), // "display_jd_no"
QT_MOC_LITERAL(11, 92, 5), // "jd_no"
QT_MOC_LITERAL(12, 98, 8), // "event_ok"
QT_MOC_LITERAL(13, 107, 8) // "event_ng"
},
"WorkThread\0notify\0\0Num\0Cnt\0cv::Mat\0"
"display_timecost\0ms\0display_check_total\0"
"no\0display_jd_no\0jd_no\0event_ok\0"
"event_ng"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_WorkThread[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
6, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
6, // signalCount
// signals: name, argc, parameters, tag, flags
1, 3, 44, 2, 0x06 /* Public */,
6, 2, 51, 2, 0x06 /* Public */,
8, 2, 56, 2, 0x06 /* Public */,
10, 2, 61, 2, 0x06 /* Public */,
12, 1, 66, 2, 0x06 /* Public */,
13, 1, 69, 2, 0x06 /* Public */,
// signals: parameters
QMetaType::Void, QMetaType::Int, QMetaType::Int, 0x80000000 | 5, 3, 4, 2,
QMetaType::Void, QMetaType::Int, QMetaType::Int, 3, 7,
QMetaType::Void, QMetaType::Int, QMetaType::Long, 3, 9,
QMetaType::Void, QMetaType::Int, QMetaType::QString, 3, 11,
QMetaType::Void, QMetaType::Int, 3,
QMetaType::Void, QMetaType::Int, 3,
0 // eod
};
void WorkThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<WorkThread *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->notify((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< cv::Mat(*)>(_a[3]))); break;
case 1: _t->display_timecost((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
case 2: _t->display_check_total((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< long(*)>(_a[2]))); break;
case 3: _t->display_jd_no((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
case 4: _t->event_ok((*reinterpret_cast< int(*)>(_a[1]))); break;
case 5: _t->event_ng((*reinterpret_cast< int(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (WorkThread::*)(int , int , cv::Mat );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&WorkThread::notify)) {
*result = 0;
return;
}
}
{
using _t = void (WorkThread::*)(int , int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&WorkThread::display_timecost)) {
*result = 1;
return;
}
}
{
using _t = void (WorkThread::*)(int , long );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&WorkThread::display_check_total)) {
*result = 2;
return;
}
}
{
using _t = void (WorkThread::*)(int , QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&WorkThread::display_jd_no)) {
*result = 3;
return;
}
}
{
using _t = void (WorkThread::*)(int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&WorkThread::event_ok)) {
*result = 4;
return;
}
}
{
using _t = void (WorkThread::*)(int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&WorkThread::event_ng)) {
*result = 5;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject WorkThread::staticMetaObject = { {
QMetaObject::SuperData::link<QThread::staticMetaObject>(),
qt_meta_stringdata_WorkThread.data,
qt_meta_data_WorkThread,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *WorkThread::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *WorkThread::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_WorkThread.stringdata0))
return static_cast<void*>(this);
return QThread::qt_metacast(_clname);
}
int WorkThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QThread::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 6)
qt_static_metacall(this, _c, _id, _a);
_id -= 6;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 6)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 6;
}
return _id;
}
// SIGNAL 0
void WorkThread::notify(int _t1, int _t2, cv::Mat _t3)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t3))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void WorkThread::display_timecost(int _t1, int _t2)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
QMetaObject::activate(this, &staticMetaObject, 1, _a);
}
// SIGNAL 2
void WorkThread::display_check_total(int _t1, long _t2)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
QMetaObject::activate(this, &staticMetaObject, 2, _a);
}
// SIGNAL 3
void WorkThread::display_jd_no(int _t1, QString _t2)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
// SIGNAL 4
void WorkThread::event_ok(int _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 4, _a);
}
// SIGNAL 5
void WorkThread::event_ng(int _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 5, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,203 @@
/****************************************************************************
** Meta object code from reading C++ file 'CaptureThread.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../CaptureThread.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'CaptureThread.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_CaptureThread_t {
QByteArrayData data[11];
char stringdata0[92];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_CaptureThread_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_CaptureThread_t qt_meta_stringdata_CaptureThread = {
{
QT_MOC_LITERAL(0, 0, 13), // "CaptureThread"
QT_MOC_LITERAL(1, 14, 5), // "error"
QT_MOC_LITERAL(2, 20, 0), // ""
QT_MOC_LITERAL(3, 21, 3), // "err"
QT_MOC_LITERAL(4, 25, 8), // "finished"
QT_MOC_LITERAL(5, 34, 12), // "requestReady"
QT_MOC_LITERAL(6, 47, 16), // "updateStatistics"
QT_MOC_LITERAL(7, 64, 4), // "data"
QT_MOC_LITERAL(8, 69, 3), // "Num"
QT_MOC_LITERAL(9, 73, 7), // "process"
QT_MOC_LITERAL(10, 81, 10) // "fpsTimeout"
},
"CaptureThread\0error\0\0err\0finished\0"
"requestReady\0updateStatistics\0data\0"
"Num\0process\0fpsTimeout"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_CaptureThread[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
6, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
4, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 44, 2, 0x06 /* Public */,
4, 0, 47, 2, 0x06 /* Public */,
5, 0, 48, 2, 0x06 /* Public */,
6, 2, 49, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
9, 0, 54, 2, 0x08 /* Private */,
10, 0, 55, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::QString, QMetaType::Int, 7, 8,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void CaptureThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<CaptureThread *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->error((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 1: _t->finished(); break;
case 2: _t->requestReady(); break;
case 3: _t->updateStatistics((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
case 4: _t->process(); break;
case 5: _t->fpsTimeout(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (CaptureThread::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThread::error)) {
*result = 0;
return;
}
}
{
using _t = void (CaptureThread::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThread::finished)) {
*result = 1;
return;
}
}
{
using _t = void (CaptureThread::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThread::requestReady)) {
*result = 2;
return;
}
}
{
using _t = void (CaptureThread::*)(const QString & , int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThread::updateStatistics)) {
*result = 3;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject CaptureThread::staticMetaObject = { {
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
qt_meta_stringdata_CaptureThread.data,
qt_meta_data_CaptureThread,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *CaptureThread::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *CaptureThread::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_CaptureThread.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int CaptureThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 6)
qt_static_metacall(this, _c, _id, _a);
_id -= 6;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 6)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 6;
}
return _id;
}
// SIGNAL 0
void CaptureThread::error(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void CaptureThread::finished()
{
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
}
// SIGNAL 2
void CaptureThread::requestReady()
{
QMetaObject::activate(this, &staticMetaObject, 2, nullptr);
}
// SIGNAL 3
void CaptureThread::updateStatistics(const QString & _t1, int _t2)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,207 @@
/****************************************************************************
** Meta object code from reading C++ file 'CaptureThreadBasler.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../CaptureThreadBasler.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'CaptureThreadBasler.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_CaptureThreadBasler_t {
QByteArrayData data[12];
char stringdata0[108];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_CaptureThreadBasler_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_CaptureThreadBasler_t qt_meta_stringdata_CaptureThreadBasler = {
{
QT_MOC_LITERAL(0, 0, 19), // "CaptureThreadBasler"
QT_MOC_LITERAL(1, 20, 5), // "error"
QT_MOC_LITERAL(2, 26, 0), // ""
QT_MOC_LITERAL(3, 27, 3), // "err"
QT_MOC_LITERAL(4, 31, 8), // "finished"
QT_MOC_LITERAL(5, 40, 12), // "requestReady"
QT_MOC_LITERAL(6, 53, 16), // "updateStatistics"
QT_MOC_LITERAL(7, 70, 4), // "data"
QT_MOC_LITERAL(8, 75, 3), // "Num"
QT_MOC_LITERAL(9, 79, 7), // "process"
QT_MOC_LITERAL(10, 87, 10), // "fpsTimeout"
QT_MOC_LITERAL(11, 98, 9) // "ioTimeout"
},
"CaptureThreadBasler\0error\0\0err\0finished\0"
"requestReady\0updateStatistics\0data\0"
"Num\0process\0fpsTimeout\0ioTimeout"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_CaptureThreadBasler[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
7, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
4, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 49, 2, 0x06 /* Public */,
4, 0, 52, 2, 0x06 /* Public */,
5, 0, 53, 2, 0x06 /* Public */,
6, 2, 54, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
9, 0, 59, 2, 0x08 /* Private */,
10, 0, 60, 2, 0x08 /* Private */,
11, 0, 61, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::QString, QMetaType::Int, 7, 8,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void CaptureThreadBasler::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<CaptureThreadBasler *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->error((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 1: _t->finished(); break;
case 2: _t->requestReady(); break;
case 3: _t->updateStatistics((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
case 4: _t->process(); break;
case 5: _t->fpsTimeout(); break;
case 6: _t->ioTimeout(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (CaptureThreadBasler::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThreadBasler::error)) {
*result = 0;
return;
}
}
{
using _t = void (CaptureThreadBasler::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThreadBasler::finished)) {
*result = 1;
return;
}
}
{
using _t = void (CaptureThreadBasler::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThreadBasler::requestReady)) {
*result = 2;
return;
}
}
{
using _t = void (CaptureThreadBasler::*)(const QString & , int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThreadBasler::updateStatistics)) {
*result = 3;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject CaptureThreadBasler::staticMetaObject = { {
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
qt_meta_stringdata_CaptureThreadBasler.data,
qt_meta_data_CaptureThreadBasler,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *CaptureThreadBasler::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *CaptureThreadBasler::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_CaptureThreadBasler.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int CaptureThreadBasler::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 7)
qt_static_metacall(this, _c, _id, _a);
_id -= 7;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 7)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 7;
}
return _id;
}
// SIGNAL 0
void CaptureThreadBasler::error(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void CaptureThreadBasler::finished()
{
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
}
// SIGNAL 2
void CaptureThreadBasler::requestReady()
{
QMetaObject::activate(this, &staticMetaObject, 2, nullptr);
}
// SIGNAL 3
void CaptureThreadBasler::updateStatistics(const QString & _t1, int _t2)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,203 @@
/****************************************************************************
** Meta object code from reading C++ file 'CaptureThreadHIK.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../CaptureThreadHIK.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'CaptureThreadHIK.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_CaptureThreadHIK_t {
QByteArrayData data[11];
char stringdata0[95];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_CaptureThreadHIK_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_CaptureThreadHIK_t qt_meta_stringdata_CaptureThreadHIK = {
{
QT_MOC_LITERAL(0, 0, 16), // "CaptureThreadHIK"
QT_MOC_LITERAL(1, 17, 5), // "error"
QT_MOC_LITERAL(2, 23, 0), // ""
QT_MOC_LITERAL(3, 24, 3), // "err"
QT_MOC_LITERAL(4, 28, 8), // "finished"
QT_MOC_LITERAL(5, 37, 12), // "requestReady"
QT_MOC_LITERAL(6, 50, 16), // "updateStatistics"
QT_MOC_LITERAL(7, 67, 4), // "data"
QT_MOC_LITERAL(8, 72, 3), // "Num"
QT_MOC_LITERAL(9, 76, 7), // "process"
QT_MOC_LITERAL(10, 84, 10) // "fpsTimeout"
},
"CaptureThreadHIK\0error\0\0err\0finished\0"
"requestReady\0updateStatistics\0data\0"
"Num\0process\0fpsTimeout"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_CaptureThreadHIK[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
6, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
4, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 44, 2, 0x06 /* Public */,
4, 0, 47, 2, 0x06 /* Public */,
5, 0, 48, 2, 0x06 /* Public */,
6, 2, 49, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
9, 0, 54, 2, 0x08 /* Private */,
10, 0, 55, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::QString, QMetaType::Int, 7, 8,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void CaptureThreadHIK::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<CaptureThreadHIK *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->error((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 1: _t->finished(); break;
case 2: _t->requestReady(); break;
case 3: _t->updateStatistics((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
case 4: _t->process(); break;
case 5: _t->fpsTimeout(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (CaptureThreadHIK::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThreadHIK::error)) {
*result = 0;
return;
}
}
{
using _t = void (CaptureThreadHIK::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThreadHIK::finished)) {
*result = 1;
return;
}
}
{
using _t = void (CaptureThreadHIK::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThreadHIK::requestReady)) {
*result = 2;
return;
}
}
{
using _t = void (CaptureThreadHIK::*)(const QString & , int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CaptureThreadHIK::updateStatistics)) {
*result = 3;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject CaptureThreadHIK::staticMetaObject = { {
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
qt_meta_stringdata_CaptureThreadHIK.data,
qt_meta_data_CaptureThreadHIK,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *CaptureThreadHIK::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *CaptureThreadHIK::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_CaptureThreadHIK.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int CaptureThreadHIK::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 6)
qt_static_metacall(this, _c, _id, _a);
_id -= 6;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 6)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 6;
}
return _id;
}
// SIGNAL 0
void CaptureThreadHIK::error(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void CaptureThreadHIK::finished()
{
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
}
// SIGNAL 2
void CaptureThreadHIK::requestReady()
{
QMetaObject::activate(this, &staticMetaObject, 2, nullptr);
}
// SIGNAL 3
void CaptureThreadHIK::updateStatistics(const QString & _t1, int _t2)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,194 @@
/****************************************************************************
** Meta object code from reading C++ file 'Cleanthread.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../Cleanthread.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'Cleanthread.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_CleanWorkThread_t {
QByteArrayData data[10];
char stringdata0[103];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_CleanWorkThread_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_CleanWorkThread_t qt_meta_stringdata_CleanWorkThread = {
{
QT_MOC_LITERAL(0, 0, 15), // "CleanWorkThread"
QT_MOC_LITERAL(1, 16, 12), // "workFinished"
QT_MOC_LITERAL(2, 29, 0), // ""
QT_MOC_LITERAL(3, 30, 9), // "workStart"
QT_MOC_LITERAL(4, 40, 13), // "workStartAuto"
QT_MOC_LITERAL(5, 54, 9), // "startWork"
QT_MOC_LITERAL(6, 64, 13), // "startWorkAuto"
QT_MOC_LITERAL(7, 78, 6), // "doWork"
QT_MOC_LITERAL(8, 85, 10), // "setSelAuto"
QT_MOC_LITERAL(9, 96, 6) // "setSel"
},
"CleanWorkThread\0workFinished\0\0workStart\0"
"workStartAuto\0startWork\0startWorkAuto\0"
"doWork\0setSelAuto\0setSel"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_CleanWorkThread[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
8, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
3, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 54, 2, 0x06 /* Public */,
3, 0, 55, 2, 0x06 /* Public */,
4, 0, 56, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
5, 0, 57, 2, 0x0a /* Public */,
6, 0, 58, 2, 0x0a /* Public */,
7, 0, 59, 2, 0x0a /* Public */,
8, 0, 60, 2, 0x0a /* Public */,
9, 0, 61, 2, 0x0a /* Public */,
// signals: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void CleanWorkThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<CleanWorkThread *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->workFinished(); break;
case 1: _t->workStart(); break;
case 2: _t->workStartAuto(); break;
case 3: _t->startWork(); break;
case 4: _t->startWorkAuto(); break;
case 5: _t->doWork(); break;
case 6: _t->setSelAuto(); break;
case 7: _t->setSel(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (CleanWorkThread::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CleanWorkThread::workFinished)) {
*result = 0;
return;
}
}
{
using _t = void (CleanWorkThread::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CleanWorkThread::workStart)) {
*result = 1;
return;
}
}
{
using _t = void (CleanWorkThread::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CleanWorkThread::workStartAuto)) {
*result = 2;
return;
}
}
}
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject CleanWorkThread::staticMetaObject = { {
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
qt_meta_stringdata_CleanWorkThread.data,
qt_meta_data_CleanWorkThread,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *CleanWorkThread::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *CleanWorkThread::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_CleanWorkThread.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int CleanWorkThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 8)
qt_static_metacall(this, _c, _id, _a);
_id -= 8;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 8)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 8;
}
return _id;
}
// SIGNAL 0
void CleanWorkThread::workFinished()
{
QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
}
// SIGNAL 1
void CleanWorkThread::workStart()
{
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
}
// SIGNAL 2
void CleanWorkThread::workStartAuto()
{
QMetaObject::activate(this, &staticMetaObject, 2, nullptr);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,151 @@
/****************************************************************************
** Meta object code from reading C++ file 'Logthread.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../Logthread.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'Logthread.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_CLog_t {
QByteArrayData data[16];
char stringdata0[149];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_CLog_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_CLog_t qt_meta_stringdata_CLog = {
{
QT_MOC_LITERAL(0, 0, 4), // "CLog"
QT_MOC_LITERAL(1, 5, 19), // "recMegFromCigarette"
QT_MOC_LITERAL(2, 25, 0), // ""
QT_MOC_LITERAL(3, 26, 9), // "CLOG_TYPE"
QT_MOC_LITERAL(4, 36, 8), // "STARTAPP"
QT_MOC_LITERAL(5, 45, 9), // "STARTWORK"
QT_MOC_LITERAL(6, 55, 9), // "PAUSEWORK"
QT_MOC_LITERAL(7, 65, 6), // "UNLOCK"
QT_MOC_LITERAL(8, 72, 9), // "DEBUGMODE"
QT_MOC_LITERAL(9, 82, 10), // "UNKICKMODE"
QT_MOC_LITERAL(10, 93, 7), // "SETTING"
QT_MOC_LITERAL(11, 101, 8), // "CLEANPIC"
QT_MOC_LITERAL(12, 110, 11), // "DOUBLECLICK"
QT_MOC_LITERAL(13, 122, 9), // "ROTATEPIC"
QT_MOC_LITERAL(14, 132, 10), // "PLCSETTING"
QT_MOC_LITERAL(15, 143, 5) // "ALARM"
},
"CLog\0recMegFromCigarette\0\0CLOG_TYPE\0"
"STARTAPP\0STARTWORK\0PAUSEWORK\0UNLOCK\0"
"DEBUGMODE\0UNKICKMODE\0SETTING\0CLEANPIC\0"
"DOUBLECLICK\0ROTATEPIC\0PLCSETTING\0ALARM"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_CLog[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
1, 22, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 1, 19, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void, QMetaType::QString, 2,
// enums: name, alias, flags, count, data
3, 3, 0x0, 12, 27,
// enum data: key, value
4, uint(CLog::STARTAPP),
5, uint(CLog::STARTWORK),
6, uint(CLog::PAUSEWORK),
7, uint(CLog::UNLOCK),
8, uint(CLog::DEBUGMODE),
9, uint(CLog::UNKICKMODE),
10, uint(CLog::SETTING),
11, uint(CLog::CLEANPIC),
12, uint(CLog::DOUBLECLICK),
13, uint(CLog::ROTATEPIC),
14, uint(CLog::PLCSETTING),
15, uint(CLog::ALARM),
0 // eod
};
void CLog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<CLog *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->recMegFromCigarette((*reinterpret_cast< QString(*)>(_a[1]))); break;
default: ;
}
}
}
QT_INIT_METAOBJECT const QMetaObject CLog::staticMetaObject = { {
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
qt_meta_stringdata_CLog.data,
qt_meta_data_CLog,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *CLog::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *CLog::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_CLog.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int CLog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,95 @@
/****************************************************************************
** Meta object code from reading C++ file 'SyncWorkThread.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../SyncWorkThread.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'SyncWorkThread.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_SyncWorkThread_t {
QByteArrayData data[1];
char stringdata0[15];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_SyncWorkThread_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_SyncWorkThread_t qt_meta_stringdata_SyncWorkThread = {
{
QT_MOC_LITERAL(0, 0, 14) // "SyncWorkThread"
},
"SyncWorkThread"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_SyncWorkThread[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void SyncWorkThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject SyncWorkThread::staticMetaObject = { {
QMetaObject::SuperData::link<QThread::staticMetaObject>(),
qt_meta_stringdata_SyncWorkThread.data,
qt_meta_data_SyncWorkThread,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *SyncWorkThread::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *SyncWorkThread::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_SyncWorkThread.stringdata0))
return static_cast<void*>(this);
return QThread::qt_metacast(_clname);
}
int SyncWorkThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QThread::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,124 @@
/****************************************************************************
** Meta object code from reading C++ file 'alarmdialog.hpp'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../alarmdialog.hpp"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'alarmdialog.hpp' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_AlarmDialog_t {
QByteArrayData data[4];
char stringdata0[71];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_AlarmDialog_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_AlarmDialog_t qt_meta_stringdata_AlarmDialog = {
{
QT_MOC_LITERAL(0, 0, 11), // "AlarmDialog"
QT_MOC_LITERAL(1, 12, 28), // "on_pushButton_close_released"
QT_MOC_LITERAL(2, 41, 0), // ""
QT_MOC_LITERAL(3, 42, 28) // "on_pushButton_clear_released"
},
"AlarmDialog\0on_pushButton_close_released\0"
"\0on_pushButton_clear_released"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_AlarmDialog[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
2, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 24, 2, 0x08 /* Private */,
3, 0, 25, 2, 0x08 /* Private */,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void AlarmDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<AlarmDialog *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->on_pushButton_close_released(); break;
case 1: _t->on_pushButton_clear_released(); break;
default: ;
}
}
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject AlarmDialog::staticMetaObject = { {
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
qt_meta_stringdata_AlarmDialog.data,
qt_meta_data_AlarmDialog,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *AlarmDialog::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *AlarmDialog::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_AlarmDialog.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int AlarmDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 2)
qt_static_metacall(this, _c, _id, _a);
_id -= 2;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 2)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 2;
}
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,150 @@
/****************************************************************************
** Meta object code from reading C++ file 'camera_glue.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../camera_glue.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'camera_glue.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_camera_glue_t {
QByteArrayData data[7];
char stringdata0[97];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_camera_glue_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_camera_glue_t qt_meta_stringdata_camera_glue = {
{
QT_MOC_LITERAL(0, 0, 11), // "camera_glue"
QT_MOC_LITERAL(1, 12, 20), // "sendMsgToDialogSetup"
QT_MOC_LITERAL(2, 33, 0), // ""
QT_MOC_LITERAL(3, 34, 8), // "int[][3]"
QT_MOC_LITERAL(4, 43, 3), // "ptr"
QT_MOC_LITERAL(5, 47, 21), // "recMsgFromDialogSetup"
QT_MOC_LITERAL(6, 69, 27) // "on_pushButton_take_released"
},
"camera_glue\0sendMsgToDialogSetup\0\0"
"int[][3]\0ptr\0recMsgFromDialogSetup\0"
"on_pushButton_take_released"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_camera_glue[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
3, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 29, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
5, 1, 32, 2, 0x0a /* Public */,
6, 0, 35, 2, 0x0a /* Public */,
// signals: parameters
QMetaType::Void, 0x80000000 | 3, 4,
// slots: parameters
QMetaType::Void, 0x80000000 | 3, 4,
QMetaType::Void,
0 // eod
};
void camera_glue::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<camera_glue *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->sendMsgToDialogSetup((*reinterpret_cast< int(*)[][3]>(_a[1]))); break;
case 1: _t->recMsgFromDialogSetup((*reinterpret_cast< int(*)[][3]>(_a[1]))); break;
case 2: _t->on_pushButton_take_released(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (camera_glue::*)(int [][3]);
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&camera_glue::sendMsgToDialogSetup)) {
*result = 0;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject camera_glue::staticMetaObject = { {
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
qt_meta_stringdata_camera_glue.data,
qt_meta_data_camera_glue,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *camera_glue::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *camera_glue::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_camera_glue.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int camera_glue::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 3)
qt_static_metacall(this, _c, _id, _a);
_id -= 3;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 3)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 3;
}
return _id;
}
// SIGNAL 0
void camera_glue::sendMsgToDialogSetup(int _t1[][3])
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,151 @@
/****************************************************************************
** Meta object code from reading C++ file 'change_shift.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../change_shift.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'change_shift.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_change_shift_t {
QByteArrayData data[8];
char stringdata0[104];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_change_shift_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_change_shift_t qt_meta_stringdata_change_shift = {
{
QT_MOC_LITERAL(0, 0, 12), // "change_shift"
QT_MOC_LITERAL(1, 13, 20), // "sendMsgToDialogSetup"
QT_MOC_LITERAL(2, 34, 0), // ""
QT_MOC_LITERAL(3, 35, 5), // "timeA"
QT_MOC_LITERAL(4, 41, 5), // "timeB"
QT_MOC_LITERAL(5, 47, 5), // "timeC"
QT_MOC_LITERAL(6, 53, 28), // "on_pushButton_apply_released"
QT_MOC_LITERAL(7, 82, 21) // "recMsgFromDialogSetup"
},
"change_shift\0sendMsgToDialogSetup\0\0"
"timeA\0timeB\0timeC\0on_pushButton_apply_released\0"
"recMsgFromDialogSetup"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_change_shift[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
3, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 3, 29, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
6, 0, 36, 2, 0x08 /* Private */,
7, 3, 37, 2, 0x0a /* Public */,
// signals: parameters
QMetaType::Void, QMetaType::QTime, QMetaType::QTime, QMetaType::QTime, 3, 4, 5,
// slots: parameters
QMetaType::Void,
QMetaType::Void, QMetaType::QTime, QMetaType::QTime, QMetaType::QTime, 3, 4, 5,
0 // eod
};
void change_shift::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<change_shift *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->sendMsgToDialogSetup((*reinterpret_cast< QTime(*)>(_a[1])),(*reinterpret_cast< QTime(*)>(_a[2])),(*reinterpret_cast< QTime(*)>(_a[3]))); break;
case 1: _t->on_pushButton_apply_released(); break;
case 2: _t->recMsgFromDialogSetup((*reinterpret_cast< QTime(*)>(_a[1])),(*reinterpret_cast< QTime(*)>(_a[2])),(*reinterpret_cast< QTime(*)>(_a[3]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (change_shift::*)(QTime , QTime , QTime );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&change_shift::sendMsgToDialogSetup)) {
*result = 0;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject change_shift::staticMetaObject = { {
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
qt_meta_stringdata_change_shift.data,
qt_meta_data_change_shift,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *change_shift::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *change_shift::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_change_shift.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int change_shift::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 3)
qt_static_metacall(this, _c, _id, _a);
_id -= 3;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 3)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 3;
}
return _id;
}
// SIGNAL 0
void change_shift::sendMsgToDialogSetup(QTime _t1, QTime _t2, QTime _t3)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t3))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,349 @@
/****************************************************************************
** Meta object code from reading C++ file 'cigarette.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../cigarette.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'cigarette.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_Cigarette_t {
QByteArrayData data[57];
char stringdata0[830];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_Cigarette_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_Cigarette_t qt_meta_stringdata_Cigarette = {
{
QT_MOC_LITERAL(0, 0, 9), // "Cigarette"
QT_MOC_LITERAL(1, 10, 13), // "sengMsgToClog"
QT_MOC_LITERAL(2, 24, 0), // ""
QT_MOC_LITERAL(3, 25, 19), // "sendMsgToExportData"
QT_MOC_LITERAL(4, 45, 21), // "on_btn_start_released"
QT_MOC_LITERAL(5, 67, 21), // "on_btn_pause_released"
QT_MOC_LITERAL(6, 89, 20), // "on_btn_lock_released"
QT_MOC_LITERAL(7, 110, 21), // "on_btn_setup_released"
QT_MOC_LITERAL(8, 132, 25), // "on_checkBox_debug_clicked"
QT_MOC_LITERAL(9, 158, 7), // "checked"
QT_MOC_LITERAL(10, 166, 26), // "on_checkBox_unkick_clicked"
QT_MOC_LITERAL(11, 193, 28), // "on_pushButton_wintab_clicked"
QT_MOC_LITERAL(12, 222, 26), // "on_toolButton_plc_released"
QT_MOC_LITERAL(13, 249, 28), // "on_toolButton_alarm_released"
QT_MOC_LITERAL(14, 278, 28), // "on_pushButton_clear_released"
QT_MOC_LITERAL(15, 307, 12), // "enable_shift"
QT_MOC_LITERAL(16, 320, 11), // "OnNotifyHub"
QT_MOC_LITERAL(17, 332, 3), // "Num"
QT_MOC_LITERAL(18, 336, 3), // "Cnt"
QT_MOC_LITERAL(19, 340, 7), // "cv::Mat"
QT_MOC_LITERAL(20, 348, 1), // "m"
QT_MOC_LITERAL(21, 350, 20), // "OnDisplayTimeCostHub"
QT_MOC_LITERAL(22, 371, 2), // "ms"
QT_MOC_LITERAL(23, 374, 23), // "OnDisplayCheckNumberHub"
QT_MOC_LITERAL(24, 398, 2), // "no"
QT_MOC_LITERAL(25, 401, 16), // "OnDisplayJdNoHub"
QT_MOC_LITERAL(26, 418, 5), // "jd_no"
QT_MOC_LITERAL(27, 424, 7), // "OnOKHub"
QT_MOC_LITERAL(28, 432, 7), // "OnNGHub"
QT_MOC_LITERAL(29, 440, 19), // "updateStatisticsHub"
QT_MOC_LITERAL(30, 460, 15), // "statisticalData"
QT_MOC_LITERAL(31, 476, 19), // "OnRotateReleasedHub"
QT_MOC_LITERAL(32, 496, 26), // "OnToolButtonCamReleasedHub"
QT_MOC_LITERAL(33, 523, 17), // "OpenCamTimeoutHub"
QT_MOC_LITERAL(34, 541, 12), // "OnDBClickHub"
QT_MOC_LITERAL(35, 554, 7), // "Num_Cnt"
QT_MOC_LITERAL(36, 562, 13), // "DrawRect_init"
QT_MOC_LITERAL(37, 576, 12), // "OnTPClickHub"
QT_MOC_LITERAL(38, 589, 14), // "OnDBClickNGHub"
QT_MOC_LITERAL(39, 604, 15), // "ReconnectCamHub"
QT_MOC_LITERAL(40, 620, 7), // "OnMouse"
QT_MOC_LITERAL(41, 628, 12), // "QMouseEvent*"
QT_MOC_LITERAL(42, 641, 5), // "event"
QT_MOC_LITERAL(43, 647, 5), // "OnKey"
QT_MOC_LITERAL(44, 653, 10), // "QKeyEvent*"
QT_MOC_LITERAL(45, 664, 13), // "handleTimeout"
QT_MOC_LITERAL(46, 678, 10), // "op_timeout"
QT_MOC_LITERAL(47, 689, 13), // "admin_timeout"
QT_MOC_LITERAL(48, 703, 15), // "EnableDebugMode"
QT_MOC_LITERAL(49, 719, 16), // "DisableDebugMode"
QT_MOC_LITERAL(50, 736, 13), // "OnCancelAlarm"
QT_MOC_LITERAL(51, 750, 28), // "on_pushButton_reset_released"
QT_MOC_LITERAL(52, 779, 4), // "OnOp"
QT_MOC_LITERAL(53, 784, 6), // "OnExit"
QT_MOC_LITERAL(54, 791, 9), // "OnRestart"
QT_MOC_LITERAL(55, 801, 7), // "OnAdmin"
QT_MOC_LITERAL(56, 809, 20) // "CleanThreadStartAuto"
},
"Cigarette\0sengMsgToClog\0\0sendMsgToExportData\0"
"on_btn_start_released\0on_btn_pause_released\0"
"on_btn_lock_released\0on_btn_setup_released\0"
"on_checkBox_debug_clicked\0checked\0"
"on_checkBox_unkick_clicked\0"
"on_pushButton_wintab_clicked\0"
"on_toolButton_plc_released\0"
"on_toolButton_alarm_released\0"
"on_pushButton_clear_released\0enable_shift\0"
"OnNotifyHub\0Num\0Cnt\0cv::Mat\0m\0"
"OnDisplayTimeCostHub\0ms\0OnDisplayCheckNumberHub\0"
"no\0OnDisplayJdNoHub\0jd_no\0OnOKHub\0"
"OnNGHub\0updateStatisticsHub\0statisticalData\0"
"OnRotateReleasedHub\0OnToolButtonCamReleasedHub\0"
"OpenCamTimeoutHub\0OnDBClickHub\0Num_Cnt\0"
"DrawRect_init\0OnTPClickHub\0OnDBClickNGHub\0"
"ReconnectCamHub\0OnMouse\0QMouseEvent*\0"
"event\0OnKey\0QKeyEvent*\0handleTimeout\0"
"op_timeout\0admin_timeout\0EnableDebugMode\0"
"DisableDebugMode\0OnCancelAlarm\0"
"on_pushButton_reset_released\0OnOp\0"
"OnExit\0OnRestart\0OnAdmin\0CleanThreadStartAuto"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_Cigarette[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
42, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
2, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 224, 2, 0x06 /* Public */,
3, 0, 227, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
4, 0, 228, 2, 0x08 /* Private */,
5, 0, 229, 2, 0x08 /* Private */,
6, 0, 230, 2, 0x08 /* Private */,
7, 0, 231, 2, 0x08 /* Private */,
8, 1, 232, 2, 0x08 /* Private */,
10, 1, 235, 2, 0x08 /* Private */,
11, 1, 238, 2, 0x08 /* Private */,
12, 0, 241, 2, 0x08 /* Private */,
13, 0, 242, 2, 0x08 /* Private */,
14, 0, 243, 2, 0x08 /* Private */,
15, 0, 244, 2, 0x08 /* Private */,
16, 3, 245, 2, 0x08 /* Private */,
21, 2, 252, 2, 0x08 /* Private */,
23, 2, 257, 2, 0x08 /* Private */,
25, 2, 262, 2, 0x08 /* Private */,
27, 1, 267, 2, 0x08 /* Private */,
28, 1, 270, 2, 0x08 /* Private */,
29, 2, 273, 2, 0x08 /* Private */,
31, 1, 278, 2, 0x08 /* Private */,
32, 1, 281, 2, 0x08 /* Private */,
33, 1, 284, 2, 0x08 /* Private */,
34, 1, 287, 2, 0x08 /* Private */,
36, 1, 290, 2, 0x08 /* Private */,
37, 1, 293, 2, 0x08 /* Private */,
38, 1, 296, 2, 0x08 /* Private */,
39, 1, 299, 2, 0x08 /* Private */,
40, 1, 302, 2, 0x08 /* Private */,
43, 1, 305, 2, 0x08 /* Private */,
45, 0, 308, 2, 0x08 /* Private */,
46, 0, 309, 2, 0x08 /* Private */,
47, 0, 310, 2, 0x08 /* Private */,
48, 0, 311, 2, 0x08 /* Private */,
49, 0, 312, 2, 0x08 /* Private */,
50, 0, 313, 2, 0x08 /* Private */,
51, 0, 314, 2, 0x08 /* Private */,
52, 0, 315, 2, 0x08 /* Private */,
53, 0, 316, 2, 0x08 /* Private */,
54, 0, 317, 2, 0x08 /* Private */,
55, 0, 318, 2, 0x08 /* Private */,
56, 0, 319, 2, 0x0a /* Public */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 2,
QMetaType::Void,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::Bool, 9,
QMetaType::Void, QMetaType::Bool, 9,
QMetaType::Void, QMetaType::Bool, 9,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::Int, QMetaType::Int, 0x80000000 | 19, 17, 18, 20,
QMetaType::Void, QMetaType::Int, QMetaType::Int, 17, 22,
QMetaType::Void, QMetaType::Int, QMetaType::Long, 17, 24,
QMetaType::Void, QMetaType::Int, QMetaType::QString, 17, 26,
QMetaType::Void, QMetaType::Int, 17,
QMetaType::Void, QMetaType::Int, 17,
QMetaType::Void, QMetaType::QString, QMetaType::Int, 30, 17,
QMetaType::Void, QMetaType::Int, 17,
QMetaType::Void, QMetaType::Int, 17,
QMetaType::Void, QMetaType::Int, 17,
QMetaType::Void, QMetaType::Int, 35,
QMetaType::Void, QMetaType::Int, 35,
QMetaType::Void, QMetaType::Int, 35,
QMetaType::Void, QMetaType::Int, 17,
QMetaType::Void, QMetaType::Int, 17,
QMetaType::Void, 0x80000000 | 41, 42,
QMetaType::Void, 0x80000000 | 44, 42,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void Cigarette::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<Cigarette *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->sengMsgToClog((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 1: _t->sendMsgToExportData(); break;
case 2: _t->on_btn_start_released(); break;
case 3: _t->on_btn_pause_released(); break;
case 4: _t->on_btn_lock_released(); break;
case 5: _t->on_btn_setup_released(); break;
case 6: _t->on_checkBox_debug_clicked((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 7: _t->on_checkBox_unkick_clicked((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 8: _t->on_pushButton_wintab_clicked((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 9: _t->on_toolButton_plc_released(); break;
case 10: _t->on_toolButton_alarm_released(); break;
case 11: _t->on_pushButton_clear_released(); break;
case 12: _t->enable_shift(); break;
case 13: _t->OnNotifyHub((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< cv::Mat(*)>(_a[3]))); break;
case 14: _t->OnDisplayTimeCostHub((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
case 15: _t->OnDisplayCheckNumberHub((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< long(*)>(_a[2]))); break;
case 16: _t->OnDisplayJdNoHub((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
case 17: _t->OnOKHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 18: _t->OnNGHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 19: _t->updateStatisticsHub((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
case 20: _t->OnRotateReleasedHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 21: _t->OnToolButtonCamReleasedHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 22: _t->OpenCamTimeoutHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 23: _t->OnDBClickHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 24: _t->DrawRect_init((*reinterpret_cast< int(*)>(_a[1]))); break;
case 25: _t->OnTPClickHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 26: _t->OnDBClickNGHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 27: _t->ReconnectCamHub((*reinterpret_cast< int(*)>(_a[1]))); break;
case 28: _t->OnMouse((*reinterpret_cast< QMouseEvent*(*)>(_a[1]))); break;
case 29: _t->OnKey((*reinterpret_cast< QKeyEvent*(*)>(_a[1]))); break;
case 30: _t->handleTimeout(); break;
case 31: _t->op_timeout(); break;
case 32: _t->admin_timeout(); break;
case 33: _t->EnableDebugMode(); break;
case 34: _t->DisableDebugMode(); break;
case 35: _t->OnCancelAlarm(); break;
case 36: _t->on_pushButton_reset_released(); break;
case 37: _t->OnOp(); break;
case 38: _t->OnExit(); break;
case 39: _t->OnRestart(); break;
case 40: _t->OnAdmin(); break;
case 41: _t->CleanThreadStartAuto(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (Cigarette::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Cigarette::sengMsgToClog)) {
*result = 0;
return;
}
}
{
using _t = void (Cigarette::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Cigarette::sendMsgToExportData)) {
*result = 1;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject Cigarette::staticMetaObject = { {
QMetaObject::SuperData::link<QMainWindow::staticMetaObject>(),
qt_meta_stringdata_Cigarette.data,
qt_meta_data_Cigarette,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *Cigarette::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *Cigarette::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_Cigarette.stringdata0))
return static_cast<void*>(this);
return QMainWindow::qt_metacast(_clname);
}
int Cigarette::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QMainWindow::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 42)
qt_static_metacall(this, _c, _id, _a);
_id -= 42;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 42)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 42;
}
return _id;
}
// SIGNAL 0
void Cigarette::sengMsgToClog(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void Cigarette::sendMsgToExportData()
{
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,273 @@
/****************************************************************************
** Meta object code from reading C++ file 'db_label.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../db_label.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'db_label.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_db_label_t {
QByteArrayData data[14];
char stringdata0[219];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_db_label_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_db_label_t qt_meta_stringdata_db_label = {
{
QT_MOC_LITERAL(0, 0, 8), // "db_label"
QT_MOC_LITERAL(1, 9, 11), // "QlabelClick"
QT_MOC_LITERAL(2, 21, 0), // ""
QT_MOC_LITERAL(3, 22, 17), // "QlabelDoubleClick"
QT_MOC_LITERAL(4, 40, 17), // "QlabelTripleClick"
QT_MOC_LITERAL(5, 58, 27), // "SignalmouseDoubleClickEvent"
QT_MOC_LITERAL(6, 86, 12), // "QMouseEvent*"
QT_MOC_LITERAL(7, 99, 5), // "event"
QT_MOC_LITERAL(8, 105, 21), // "SignalmousePressEvent"
QT_MOC_LITERAL(9, 127, 23), // "SignalmouseReleaseEvent"
QT_MOC_LITERAL(10, 151, 20), // "SignalmouseMoveEvent"
QT_MOC_LITERAL(11, 172, 21), // "SignalkeyReleaseEvent"
QT_MOC_LITERAL(12, 194, 10), // "QKeyEvent*"
QT_MOC_LITERAL(13, 205, 13) // "TimeOutNotify"
},
"db_label\0QlabelClick\0\0QlabelDoubleClick\0"
"QlabelTripleClick\0SignalmouseDoubleClickEvent\0"
"QMouseEvent*\0event\0SignalmousePressEvent\0"
"SignalmouseReleaseEvent\0SignalmouseMoveEvent\0"
"SignalkeyReleaseEvent\0QKeyEvent*\0"
"TimeOutNotify"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_db_label[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
9, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
8, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 59, 2, 0x06 /* Public */,
3, 0, 60, 2, 0x06 /* Public */,
4, 0, 61, 2, 0x06 /* Public */,
5, 1, 62, 2, 0x06 /* Public */,
8, 1, 65, 2, 0x06 /* Public */,
9, 1, 68, 2, 0x06 /* Public */,
10, 1, 71, 2, 0x06 /* Public */,
11, 1, 74, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
13, 0, 77, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, 0x80000000 | 6, 7,
QMetaType::Void, 0x80000000 | 6, 7,
QMetaType::Void, 0x80000000 | 6, 7,
QMetaType::Void, 0x80000000 | 6, 7,
QMetaType::Void, 0x80000000 | 12, 7,
// slots: parameters
QMetaType::Void,
0 // eod
};
void db_label::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<db_label *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->QlabelClick(); break;
case 1: _t->QlabelDoubleClick(); break;
case 2: _t->QlabelTripleClick(); break;
case 3: _t->SignalmouseDoubleClickEvent((*reinterpret_cast< QMouseEvent*(*)>(_a[1]))); break;
case 4: _t->SignalmousePressEvent((*reinterpret_cast< QMouseEvent*(*)>(_a[1]))); break;
case 5: _t->SignalmouseReleaseEvent((*reinterpret_cast< QMouseEvent*(*)>(_a[1]))); break;
case 6: _t->SignalmouseMoveEvent((*reinterpret_cast< QMouseEvent*(*)>(_a[1]))); break;
case 7: _t->SignalkeyReleaseEvent((*reinterpret_cast< QKeyEvent*(*)>(_a[1]))); break;
case 8: _t->TimeOutNotify(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (db_label::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&db_label::QlabelClick)) {
*result = 0;
return;
}
}
{
using _t = void (db_label::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&db_label::QlabelDoubleClick)) {
*result = 1;
return;
}
}
{
using _t = void (db_label::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&db_label::QlabelTripleClick)) {
*result = 2;
return;
}
}
{
using _t = void (db_label::*)(QMouseEvent * );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&db_label::SignalmouseDoubleClickEvent)) {
*result = 3;
return;
}
}
{
using _t = void (db_label::*)(QMouseEvent * );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&db_label::SignalmousePressEvent)) {
*result = 4;
return;
}
}
{
using _t = void (db_label::*)(QMouseEvent * );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&db_label::SignalmouseReleaseEvent)) {
*result = 5;
return;
}
}
{
using _t = void (db_label::*)(QMouseEvent * );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&db_label::SignalmouseMoveEvent)) {
*result = 6;
return;
}
}
{
using _t = void (db_label::*)(QKeyEvent * );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&db_label::SignalkeyReleaseEvent)) {
*result = 7;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject db_label::staticMetaObject = { {
QMetaObject::SuperData::link<QLabel::staticMetaObject>(),
qt_meta_stringdata_db_label.data,
qt_meta_data_db_label,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *db_label::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *db_label::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_db_label.stringdata0))
return static_cast<void*>(this);
return QLabel::qt_metacast(_clname);
}
int db_label::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QLabel::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 9)
qt_static_metacall(this, _c, _id, _a);
_id -= 9;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 9)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 9;
}
return _id;
}
// SIGNAL 0
void db_label::QlabelClick()
{
QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
}
// SIGNAL 1
void db_label::QlabelDoubleClick()
{
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
}
// SIGNAL 2
void db_label::QlabelTripleClick()
{
QMetaObject::activate(this, &staticMetaObject, 2, nullptr);
}
// SIGNAL 3
void db_label::SignalmouseDoubleClickEvent(QMouseEvent * _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
// SIGNAL 4
void db_label::SignalmousePressEvent(QMouseEvent * _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 4, _a);
}
// SIGNAL 5
void db_label::SignalmouseReleaseEvent(QMouseEvent * _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 5, _a);
}
// SIGNAL 6
void db_label::SignalmouseMoveEvent(QMouseEvent * _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 6, _a);
}
// SIGNAL 7
void db_label::SignalkeyReleaseEvent(QKeyEvent * _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 7, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,137 @@
/****************************************************************************
** Meta object code from reading C++ file 'debugthread.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../debugthread.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'debugthread.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_DebugThread_t {
QByteArrayData data[6];
char stringdata0[36];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_DebugThread_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_DebugThread_t qt_meta_stringdata_DebugThread = {
{
QT_MOC_LITERAL(0, 0, 11), // "DebugThread"
QT_MOC_LITERAL(1, 12, 6), // "notify"
QT_MOC_LITERAL(2, 19, 0), // ""
QT_MOC_LITERAL(3, 20, 3), // "Num"
QT_MOC_LITERAL(4, 24, 3), // "Cnt"
QT_MOC_LITERAL(5, 28, 7) // "cv::Mat"
},
"DebugThread\0notify\0\0Num\0Cnt\0cv::Mat"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_DebugThread[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 3, 19, 2, 0x06 /* Public */,
// signals: parameters
QMetaType::Void, QMetaType::Int, QMetaType::Int, 0x80000000 | 5, 3, 4, 2,
0 // eod
};
void DebugThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<DebugThread *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->notify((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< cv::Mat(*)>(_a[3]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (DebugThread::*)(int , int , cv::Mat );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&DebugThread::notify)) {
*result = 0;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject DebugThread::staticMetaObject = { {
QMetaObject::SuperData::link<QThread::staticMetaObject>(),
qt_meta_stringdata_DebugThread.data,
qt_meta_data_DebugThread,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *DebugThread::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *DebugThread::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_DebugThread.stringdata0))
return static_cast<void*>(this);
return QThread::qt_metacast(_clname);
}
int DebugThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QThread::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
// SIGNAL 0
void DebugThread::notify(int _t1, int _t2, cv::Mat _t3)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t3))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,202 @@
/****************************************************************************
** Meta object code from reading C++ file 'dialogin.hpp'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../dialogin.hpp"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'dialogin.hpp' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_Dialogin_t {
QByteArrayData data[16];
char stringdata0[351];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_Dialogin_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_Dialogin_t qt_meta_stringdata_Dialogin = {
{
QT_MOC_LITERAL(0, 0, 8), // "Dialogin"
QT_MOC_LITERAL(1, 9, 8), // "enter_op"
QT_MOC_LITERAL(2, 18, 0), // ""
QT_MOC_LITERAL(3, 19, 28), // "on_pushButton_close_released"
QT_MOC_LITERAL(4, 48, 26), // "on_pushButton_clr_released"
QT_MOC_LITERAL(5, 75, 25), // "on_pushButton_ok_released"
QT_MOC_LITERAL(6, 101, 24), // "on_pushButton_0_released"
QT_MOC_LITERAL(7, 126, 24), // "on_pushButton_1_released"
QT_MOC_LITERAL(8, 151, 24), // "on_pushButton_2_released"
QT_MOC_LITERAL(9, 176, 24), // "on_pushButton_3_released"
QT_MOC_LITERAL(10, 201, 24), // "on_pushButton_4_released"
QT_MOC_LITERAL(11, 226, 24), // "on_pushButton_5_released"
QT_MOC_LITERAL(12, 251, 24), // "on_pushButton_6_released"
QT_MOC_LITERAL(13, 276, 24), // "on_pushButton_7_released"
QT_MOC_LITERAL(14, 301, 24), // "on_pushButton_8_released"
QT_MOC_LITERAL(15, 326, 24) // "on_pushButton_9_released"
},
"Dialogin\0enter_op\0\0on_pushButton_close_released\0"
"on_pushButton_clr_released\0"
"on_pushButton_ok_released\0"
"on_pushButton_0_released\0"
"on_pushButton_1_released\0"
"on_pushButton_2_released\0"
"on_pushButton_3_released\0"
"on_pushButton_4_released\0"
"on_pushButton_5_released\0"
"on_pushButton_6_released\0"
"on_pushButton_7_released\0"
"on_pushButton_8_released\0"
"on_pushButton_9_released"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_Dialogin[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
14, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 84, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
3, 0, 85, 2, 0x08 /* Private */,
4, 0, 86, 2, 0x08 /* Private */,
5, 0, 87, 2, 0x08 /* Private */,
6, 0, 88, 2, 0x08 /* Private */,
7, 0, 89, 2, 0x08 /* Private */,
8, 0, 90, 2, 0x08 /* Private */,
9, 0, 91, 2, 0x08 /* Private */,
10, 0, 92, 2, 0x08 /* Private */,
11, 0, 93, 2, 0x08 /* Private */,
12, 0, 94, 2, 0x08 /* Private */,
13, 0, 95, 2, 0x08 /* Private */,
14, 0, 96, 2, 0x08 /* Private */,
15, 0, 97, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void Dialogin::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<Dialogin *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->enter_op(); break;
case 1: _t->on_pushButton_close_released(); break;
case 2: _t->on_pushButton_clr_released(); break;
case 3: _t->on_pushButton_ok_released(); break;
case 4: _t->on_pushButton_0_released(); break;
case 5: _t->on_pushButton_1_released(); break;
case 6: _t->on_pushButton_2_released(); break;
case 7: _t->on_pushButton_3_released(); break;
case 8: _t->on_pushButton_4_released(); break;
case 9: _t->on_pushButton_5_released(); break;
case 10: _t->on_pushButton_6_released(); break;
case 11: _t->on_pushButton_7_released(); break;
case 12: _t->on_pushButton_8_released(); break;
case 13: _t->on_pushButton_9_released(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (Dialogin::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Dialogin::enter_op)) {
*result = 0;
return;
}
}
}
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject Dialogin::staticMetaObject = { {
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
qt_meta_stringdata_Dialogin.data,
qt_meta_data_Dialogin,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *Dialogin::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *Dialogin::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_Dialogin.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int Dialogin::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 14)
qt_static_metacall(this, _c, _id, _a);
_id -= 14;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 14)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 14;
}
return _id;
}
// SIGNAL 0
void Dialogin::enter_op()
{
QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,322 @@
/****************************************************************************
** Meta object code from reading C++ file 'dialogsetup.hpp'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../dialogsetup.hpp"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'dialogsetup.hpp' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_DialogSetup_t {
QByteArrayData data[38];
char stringdata0[872];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_DialogSetup_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_DialogSetup_t qt_meta_stringdata_DialogSetup = {
{
QT_MOC_LITERAL(0, 0, 11), // "DialogSetup"
QT_MOC_LITERAL(1, 12, 11), // "system_exit"
QT_MOC_LITERAL(2, 24, 0), // ""
QT_MOC_LITERAL(3, 25, 14), // "sendMsgToShift"
QT_MOC_LITERAL(4, 40, 5), // "timeA"
QT_MOC_LITERAL(5, 46, 5), // "timeB"
QT_MOC_LITERAL(6, 52, 5), // "timeC"
QT_MOC_LITERAL(7, 58, 15), // "sendMsgToOutput"
QT_MOC_LITERAL(8, 74, 15), // "sendMsgToConfig"
QT_MOC_LITERAL(9, 90, 8), // "int[][3]"
QT_MOC_LITERAL(10, 99, 3), // "ptr"
QT_MOC_LITERAL(11, 103, 31), // "on_toolButton_keyboard_released"
QT_MOC_LITERAL(12, 135, 27), // "on_pushButton_exit_released"
QT_MOC_LITERAL(13, 163, 27), // "on_pushButton_save_released"
QT_MOC_LITERAL(14, 191, 28), // "on_pushButton_close_released"
QT_MOC_LITERAL(15, 220, 41), // "on_toolButton_choose_config_p..."
QT_MOC_LITERAL(16, 262, 40), // "on_toolButton_choose_model_pa..."
QT_MOC_LITERAL(17, 303, 38), // "on_toolButton_choose_path_jpg..."
QT_MOC_LITERAL(18, 342, 44), // "on_toolButton_choose_save_pic..."
QT_MOC_LITERAL(19, 387, 30), // "on_pushButton_desktop_released"
QT_MOC_LITERAL(20, 418, 28), // "on_pushButton_image_released"
QT_MOC_LITERAL(21, 447, 27), // "on_pushButton_pswd_released"
QT_MOC_LITERAL(22, 475, 30), // "on_pushButton_pswd_op_released"
QT_MOC_LITERAL(23, 506, 27), // "on_pushButton_expo_released"
QT_MOC_LITERAL(24, 534, 29), // "on_pushButton_filter_released"
QT_MOC_LITERAL(25, 564, 32), // "on_pushButton_clear_pic_released"
QT_MOC_LITERAL(26, 597, 29), // "on_pushButton_config_released"
QT_MOC_LITERAL(27, 627, 29), // "on_pushButton_change_released"
QT_MOC_LITERAL(28, 657, 32), // "on_pushButton_statistic_released"
QT_MOC_LITERAL(29, 690, 29), // "on_checkBox_auto_open_clicked"
QT_MOC_LITERAL(30, 720, 7), // "checked"
QT_MOC_LITERAL(31, 728, 29), // "on_checkBox_auto_work_clicked"
QT_MOC_LITERAL(32, 758, 22), // "recMsgFromDialogConfig"
QT_MOC_LITERAL(33, 781, 21), // "recMsgFromChangeShift"
QT_MOC_LITERAL(34, 803, 16), // "onComboBoxSelect"
QT_MOC_LITERAL(35, 820, 5), // "index"
QT_MOC_LITERAL(36, 826, 20), // "onComboBoxConfSelect"
QT_MOC_LITERAL(37, 847, 24) // "onComboBoxPicsPathSelect"
},
"DialogSetup\0system_exit\0\0sendMsgToShift\0"
"timeA\0timeB\0timeC\0sendMsgToOutput\0"
"sendMsgToConfig\0int[][3]\0ptr\0"
"on_toolButton_keyboard_released\0"
"on_pushButton_exit_released\0"
"on_pushButton_save_released\0"
"on_pushButton_close_released\0"
"on_toolButton_choose_config_path_released\0"
"on_toolButton_choose_model_path_released\0"
"on_toolButton_choose_path_jpg_released\0"
"on_toolButton_choose_save_pics_path_released\0"
"on_pushButton_desktop_released\0"
"on_pushButton_image_released\0"
"on_pushButton_pswd_released\0"
"on_pushButton_pswd_op_released\0"
"on_pushButton_expo_released\0"
"on_pushButton_filter_released\0"
"on_pushButton_clear_pic_released\0"
"on_pushButton_config_released\0"
"on_pushButton_change_released\0"
"on_pushButton_statistic_released\0"
"on_checkBox_auto_open_clicked\0checked\0"
"on_checkBox_auto_work_clicked\0"
"recMsgFromDialogConfig\0recMsgFromChangeShift\0"
"onComboBoxSelect\0index\0onComboBoxConfSelect\0"
"onComboBoxPicsPathSelect"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_DialogSetup[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
29, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
4, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 159, 2, 0x06 /* Public */,
3, 3, 160, 2, 0x06 /* Public */,
7, 0, 167, 2, 0x06 /* Public */,
8, 1, 168, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
11, 0, 171, 2, 0x08 /* Private */,
12, 0, 172, 2, 0x08 /* Private */,
13, 0, 173, 2, 0x08 /* Private */,
14, 0, 174, 2, 0x08 /* Private */,
15, 0, 175, 2, 0x08 /* Private */,
16, 0, 176, 2, 0x08 /* Private */,
17, 0, 177, 2, 0x08 /* Private */,
18, 0, 178, 2, 0x08 /* Private */,
19, 0, 179, 2, 0x08 /* Private */,
20, 0, 180, 2, 0x08 /* Private */,
21, 0, 181, 2, 0x08 /* Private */,
22, 0, 182, 2, 0x08 /* Private */,
23, 0, 183, 2, 0x08 /* Private */,
24, 0, 184, 2, 0x08 /* Private */,
25, 0, 185, 2, 0x08 /* Private */,
26, 0, 186, 2, 0x08 /* Private */,
27, 0, 187, 2, 0x08 /* Private */,
28, 0, 188, 2, 0x08 /* Private */,
29, 1, 189, 2, 0x08 /* Private */,
31, 1, 192, 2, 0x08 /* Private */,
32, 1, 195, 2, 0x08 /* Private */,
33, 3, 198, 2, 0x08 /* Private */,
34, 1, 205, 2, 0x08 /* Private */,
36, 1, 208, 2, 0x08 /* Private */,
37, 1, 211, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void,
QMetaType::Void, QMetaType::QTime, QMetaType::QTime, QMetaType::QTime, 4, 5, 6,
QMetaType::Void,
QMetaType::Void, 0x80000000 | 9, 10,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::Bool, 30,
QMetaType::Void, QMetaType::Bool, 30,
QMetaType::Void, 0x80000000 | 9, 10,
QMetaType::Void, QMetaType::QTime, QMetaType::QTime, QMetaType::QTime, 4, 5, 6,
QMetaType::Void, QMetaType::Int, 35,
QMetaType::Void, QMetaType::Int, 35,
QMetaType::Void, QMetaType::Int, 35,
0 // eod
};
void DialogSetup::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<DialogSetup *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->system_exit(); break;
case 1: _t->sendMsgToShift((*reinterpret_cast< QTime(*)>(_a[1])),(*reinterpret_cast< QTime(*)>(_a[2])),(*reinterpret_cast< QTime(*)>(_a[3]))); break;
case 2: _t->sendMsgToOutput(); break;
case 3: _t->sendMsgToConfig((*reinterpret_cast< int(*)[][3]>(_a[1]))); break;
case 4: _t->on_toolButton_keyboard_released(); break;
case 5: _t->on_pushButton_exit_released(); break;
case 6: _t->on_pushButton_save_released(); break;
case 7: _t->on_pushButton_close_released(); break;
case 8: _t->on_toolButton_choose_config_path_released(); break;
case 9: _t->on_toolButton_choose_model_path_released(); break;
case 10: _t->on_toolButton_choose_path_jpg_released(); break;
case 11: _t->on_toolButton_choose_save_pics_path_released(); break;
case 12: _t->on_pushButton_desktop_released(); break;
case 13: _t->on_pushButton_image_released(); break;
case 14: _t->on_pushButton_pswd_released(); break;
case 15: _t->on_pushButton_pswd_op_released(); break;
case 16: _t->on_pushButton_expo_released(); break;
case 17: _t->on_pushButton_filter_released(); break;
case 18: _t->on_pushButton_clear_pic_released(); break;
case 19: _t->on_pushButton_config_released(); break;
case 20: _t->on_pushButton_change_released(); break;
case 21: _t->on_pushButton_statistic_released(); break;
case 22: _t->on_checkBox_auto_open_clicked((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 23: _t->on_checkBox_auto_work_clicked((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 24: _t->recMsgFromDialogConfig((*reinterpret_cast< int(*)[][3]>(_a[1]))); break;
case 25: _t->recMsgFromChangeShift((*reinterpret_cast< QTime(*)>(_a[1])),(*reinterpret_cast< QTime(*)>(_a[2])),(*reinterpret_cast< QTime(*)>(_a[3]))); break;
case 26: _t->onComboBoxSelect((*reinterpret_cast< int(*)>(_a[1]))); break;
case 27: _t->onComboBoxConfSelect((*reinterpret_cast< int(*)>(_a[1]))); break;
case 28: _t->onComboBoxPicsPathSelect((*reinterpret_cast< int(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (DialogSetup::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&DialogSetup::system_exit)) {
*result = 0;
return;
}
}
{
using _t = void (DialogSetup::*)(QTime , QTime , QTime );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&DialogSetup::sendMsgToShift)) {
*result = 1;
return;
}
}
{
using _t = void (DialogSetup::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&DialogSetup::sendMsgToOutput)) {
*result = 2;
return;
}
}
{
using _t = void (DialogSetup::*)(int [][3]);
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&DialogSetup::sendMsgToConfig)) {
*result = 3;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject DialogSetup::staticMetaObject = { {
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
qt_meta_stringdata_DialogSetup.data,
qt_meta_data_DialogSetup,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *DialogSetup::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *DialogSetup::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_DialogSetup.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int DialogSetup::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 29)
qt_static_metacall(this, _c, _id, _a);
_id -= 29;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 29)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 29;
}
return _id;
}
// SIGNAL 0
void DialogSetup::system_exit()
{
QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
}
// SIGNAL 1
void DialogSetup::sendMsgToShift(QTime _t1, QTime _t2, QTime _t3)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t3))) };
QMetaObject::activate(this, &staticMetaObject, 1, _a);
}
// SIGNAL 2
void DialogSetup::sendMsgToOutput()
{
QMetaObject::activate(this, &staticMetaObject, 2, nullptr);
}
// SIGNAL 3
void DialogSetup::sendMsgToConfig(int _t1[][3])
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,203 @@
/****************************************************************************
** Meta object code from reading C++ file 'dialogsetuppasswd.hpp'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../dialogsetuppasswd.hpp"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'dialogsetuppasswd.hpp' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_DialogSetupPasswd_t {
QByteArrayData data[16];
char stringdata0[363];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_DialogSetupPasswd_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_DialogSetupPasswd_t qt_meta_stringdata_DialogSetupPasswd = {
{
QT_MOC_LITERAL(0, 0, 17), // "DialogSetupPasswd"
QT_MOC_LITERAL(1, 18, 11), // "enter_admin"
QT_MOC_LITERAL(2, 30, 0), // ""
QT_MOC_LITERAL(3, 31, 28), // "on_pushButton_close_released"
QT_MOC_LITERAL(4, 60, 26), // "on_pushButton_clr_released"
QT_MOC_LITERAL(5, 87, 25), // "on_pushButton_ok_released"
QT_MOC_LITERAL(6, 113, 24), // "on_pushButton_0_released"
QT_MOC_LITERAL(7, 138, 24), // "on_pushButton_1_released"
QT_MOC_LITERAL(8, 163, 24), // "on_pushButton_2_released"
QT_MOC_LITERAL(9, 188, 24), // "on_pushButton_3_released"
QT_MOC_LITERAL(10, 213, 24), // "on_pushButton_4_released"
QT_MOC_LITERAL(11, 238, 24), // "on_pushButton_5_released"
QT_MOC_LITERAL(12, 263, 24), // "on_pushButton_6_released"
QT_MOC_LITERAL(13, 288, 24), // "on_pushButton_7_released"
QT_MOC_LITERAL(14, 313, 24), // "on_pushButton_8_released"
QT_MOC_LITERAL(15, 338, 24) // "on_pushButton_9_released"
},
"DialogSetupPasswd\0enter_admin\0\0"
"on_pushButton_close_released\0"
"on_pushButton_clr_released\0"
"on_pushButton_ok_released\0"
"on_pushButton_0_released\0"
"on_pushButton_1_released\0"
"on_pushButton_2_released\0"
"on_pushButton_3_released\0"
"on_pushButton_4_released\0"
"on_pushButton_5_released\0"
"on_pushButton_6_released\0"
"on_pushButton_7_released\0"
"on_pushButton_8_released\0"
"on_pushButton_9_released"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_DialogSetupPasswd[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
14, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 84, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
3, 0, 85, 2, 0x08 /* Private */,
4, 0, 86, 2, 0x08 /* Private */,
5, 0, 87, 2, 0x08 /* Private */,
6, 0, 88, 2, 0x08 /* Private */,
7, 0, 89, 2, 0x08 /* Private */,
8, 0, 90, 2, 0x08 /* Private */,
9, 0, 91, 2, 0x08 /* Private */,
10, 0, 92, 2, 0x08 /* Private */,
11, 0, 93, 2, 0x08 /* Private */,
12, 0, 94, 2, 0x08 /* Private */,
13, 0, 95, 2, 0x08 /* Private */,
14, 0, 96, 2, 0x08 /* Private */,
15, 0, 97, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void DialogSetupPasswd::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<DialogSetupPasswd *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->enter_admin(); break;
case 1: _t->on_pushButton_close_released(); break;
case 2: _t->on_pushButton_clr_released(); break;
case 3: _t->on_pushButton_ok_released(); break;
case 4: _t->on_pushButton_0_released(); break;
case 5: _t->on_pushButton_1_released(); break;
case 6: _t->on_pushButton_2_released(); break;
case 7: _t->on_pushButton_3_released(); break;
case 8: _t->on_pushButton_4_released(); break;
case 9: _t->on_pushButton_5_released(); break;
case 10: _t->on_pushButton_6_released(); break;
case 11: _t->on_pushButton_7_released(); break;
case 12: _t->on_pushButton_8_released(); break;
case 13: _t->on_pushButton_9_released(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (DialogSetupPasswd::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&DialogSetupPasswd::enter_admin)) {
*result = 0;
return;
}
}
}
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject DialogSetupPasswd::staticMetaObject = { {
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
qt_meta_stringdata_DialogSetupPasswd.data,
qt_meta_data_DialogSetupPasswd,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *DialogSetupPasswd::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *DialogSetupPasswd::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_DialogSetupPasswd.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int DialogSetupPasswd::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 14)
qt_static_metacall(this, _c, _id, _a);
_id -= 14;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 14)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 14;
}
return _id;
}
// SIGNAL 0
void DialogSetupPasswd::enter_admin()
{
QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,124 @@
/****************************************************************************
** Meta object code from reading C++ file 'exportData.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../exportData.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'exportData.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_ExportDataThread_t {
QByteArrayData data[5];
char stringdata0[71];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_ExportDataThread_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_ExportDataThread_t qt_meta_stringdata_ExportDataThread = {
{
QT_MOC_LITERAL(0, 0, 16), // "ExportDataThread"
QT_MOC_LITERAL(1, 17, 21), // "EDrecMsgFromCigarette"
QT_MOC_LITERAL(2, 39, 0), // ""
QT_MOC_LITERAL(3, 40, 21), // "GetDataFromSaveThread"
QT_MOC_LITERAL(4, 62, 8) // "filePath"
},
"ExportDataThread\0EDrecMsgFromCigarette\0"
"\0GetDataFromSaveThread\0filePath"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_ExportDataThread[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
2, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 24, 2, 0x0a /* Public */,
3, 1, 25, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void,
QMetaType::Void, QMetaType::QString, 4,
0 // eod
};
void ExportDataThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<ExportDataThread *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->EDrecMsgFromCigarette(); break;
case 1: _t->GetDataFromSaveThread((*reinterpret_cast< QString(*)>(_a[1]))); break;
default: ;
}
}
}
QT_INIT_METAOBJECT const QMetaObject ExportDataThread::staticMetaObject = { {
QMetaObject::SuperData::link<QThread::staticMetaObject>(),
qt_meta_stringdata_ExportDataThread.data,
qt_meta_data_ExportDataThread,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *ExportDataThread::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *ExportDataThread::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_ExportDataThread.stringdata0))
return static_cast<void*>(this);
return QThread::qt_metacast(_clname);
}
int ExportDataThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QThread::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 2)
qt_static_metacall(this, _c, _id, _a);
_id -= 2;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 2)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 2;
}
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,120 @@
/****************************************************************************
** Meta object code from reading C++ file 'output_statistic.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../output_statistic.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'output_statistic.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_output_statistic_t {
QByteArrayData data[3];
char stringdata0[40];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_output_statistic_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_output_statistic_t qt_meta_stringdata_output_statistic = {
{
QT_MOC_LITERAL(0, 0, 16), // "output_statistic"
QT_MOC_LITERAL(1, 17, 21), // "recMsgFromDialogSetup"
QT_MOC_LITERAL(2, 39, 0) // ""
},
"output_statistic\0recMsgFromDialogSetup\0"
""
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_output_statistic[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 19, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void,
0 // eod
};
void output_statistic::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<output_statistic *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->recMsgFromDialogSetup(); break;
default: ;
}
}
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject output_statistic::staticMetaObject = { {
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
qt_meta_stringdata_output_statistic.data,
qt_meta_data_output_statistic,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *output_statistic::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *output_statistic::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_output_statistic.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int output_statistic::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,146 @@
/****************************************************************************
** Meta object code from reading C++ file 'plcsetup.hpp'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../plcsetup.hpp"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'plcsetup.hpp' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_PlcSetup_t {
QByteArrayData data[9];
char stringdata0[153];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_PlcSetup_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_PlcSetup_t qt_meta_stringdata_PlcSetup = {
{
QT_MOC_LITERAL(0, 0, 8), // "PlcSetup"
QT_MOC_LITERAL(1, 9, 10), // "click_read"
QT_MOC_LITERAL(2, 20, 0), // ""
QT_MOC_LITERAL(3, 21, 11), // "click_write"
QT_MOC_LITERAL(4, 33, 10), // "click_save"
QT_MOC_LITERAL(5, 44, 33), // "on_toolButton_batch_read_rele..."
QT_MOC_LITERAL(6, 78, 31), // "on_toolButton_keyboard_released"
QT_MOC_LITERAL(7, 110, 28), // "on_toolButton_close_released"
QT_MOC_LITERAL(8, 139, 13) // "handleTimeout"
},
"PlcSetup\0click_read\0\0click_write\0"
"click_save\0on_toolButton_batch_read_released\0"
"on_toolButton_keyboard_released\0"
"on_toolButton_close_released\0handleTimeout"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_PlcSetup[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
7, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 49, 2, 0x08 /* Private */,
3, 0, 50, 2, 0x08 /* Private */,
4, 0, 51, 2, 0x08 /* Private */,
5, 0, 52, 2, 0x08 /* Private */,
6, 0, 53, 2, 0x08 /* Private */,
7, 0, 54, 2, 0x08 /* Private */,
8, 0, 55, 2, 0x08 /* Private */,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void PlcSetup::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<PlcSetup *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->click_read(); break;
case 1: _t->click_write(); break;
case 2: _t->click_save(); break;
case 3: _t->on_toolButton_batch_read_released(); break;
case 4: _t->on_toolButton_keyboard_released(); break;
case 5: _t->on_toolButton_close_released(); break;
case 6: _t->handleTimeout(); break;
default: ;
}
}
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject PlcSetup::staticMetaObject = { {
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
qt_meta_stringdata_PlcSetup.data,
qt_meta_data_PlcSetup,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *PlcSetup::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *PlcSetup::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_PlcSetup.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int PlcSetup::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 7)
qt_static_metacall(this, _c, _id, _a);
_id -= 7;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 7)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 7;
}
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,135 @@
/****************************************************************************
** Meta object code from reading C++ file 'savethread.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../savethread.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'savethread.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_SaveThread_t {
QByteArrayData data[4];
char stringdata0[38];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_SaveThread_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_SaveThread_t qt_meta_stringdata_SaveThread = {
{
QT_MOC_LITERAL(0, 0, 10), // "SaveThread"
QT_MOC_LITERAL(1, 11, 16), // "sendDataToExport"
QT_MOC_LITERAL(2, 28, 0), // ""
QT_MOC_LITERAL(3, 29, 8) // "filePath"
},
"SaveThread\0sendDataToExport\0\0filePath"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_SaveThread[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 19, 2, 0x06 /* Public */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 3,
0 // eod
};
void SaveThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<SaveThread *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->sendDataToExport((*reinterpret_cast< QString(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (SaveThread::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SaveThread::sendDataToExport)) {
*result = 0;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject SaveThread::staticMetaObject = { {
QMetaObject::SuperData::link<QThread::staticMetaObject>(),
qt_meta_stringdata_SaveThread.data,
qt_meta_data_SaveThread,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *SaveThread::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *SaveThread::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_SaveThread.stringdata0))
return static_cast<void*>(this);
return QThread::qt_metacast(_clname);
}
int SaveThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QThread::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
// SIGNAL 0
void SaveThread::sendDataToExport(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,149 @@
/****************************************************************************
** Meta object code from reading C++ file 'threadReceive.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../threadReceive.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'threadReceive.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_threadReceive_t {
QByteArrayData data[6];
char stringdata0[88];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_threadReceive_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_threadReceive_t qt_meta_stringdata_threadReceive = {
{
QT_MOC_LITERAL(0, 0, 13), // "threadReceive"
QT_MOC_LITERAL(1, 14, 17), // "sendMsgToCigratte"
QT_MOC_LITERAL(2, 32, 0), // ""
QT_MOC_LITERAL(3, 33, 4), // "data"
QT_MOC_LITERAL(4, 38, 22), // "processPendingDatagram"
QT_MOC_LITERAL(5, 61, 26) // "fileprocessPendingDatagram"
},
"threadReceive\0sendMsgToCigratte\0\0data\0"
"processPendingDatagram\0"
"fileprocessPendingDatagram"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_threadReceive[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
3, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 29, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
4, 0, 32, 2, 0x08 /* Private */,
5, 0, 33, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 3,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void threadReceive::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<threadReceive *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->sendMsgToCigratte((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 1: _t->processPendingDatagram(); break;
case 2: _t->fileprocessPendingDatagram(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (threadReceive::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&threadReceive::sendMsgToCigratte)) {
*result = 0;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject threadReceive::staticMetaObject = { {
QMetaObject::SuperData::link<QThread::staticMetaObject>(),
qt_meta_stringdata_threadReceive.data,
qt_meta_data_threadReceive,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *threadReceive::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *threadReceive::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_threadReceive.stringdata0))
return static_cast<void*>(this);
return QThread::qt_metacast(_clname);
}
int threadReceive::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QThread::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 3)
qt_static_metacall(this, _c, _id, _a);
_id -= 3;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 3)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 3;
}
return _id;
}
// SIGNAL 0
void threadReceive::sendMsgToCigratte(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -0,0 +1,233 @@
/****************************************************************************
** Meta object code from reading C++ file 'workthread.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../workthread.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'workthread.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_WorkThread_t {
QByteArrayData data[14];
char stringdata0[116];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_WorkThread_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_WorkThread_t qt_meta_stringdata_WorkThread = {
{
QT_MOC_LITERAL(0, 0, 10), // "WorkThread"
QT_MOC_LITERAL(1, 11, 6), // "notify"
QT_MOC_LITERAL(2, 18, 0), // ""
QT_MOC_LITERAL(3, 19, 3), // "Num"
QT_MOC_LITERAL(4, 23, 3), // "Cnt"
QT_MOC_LITERAL(5, 27, 7), // "cv::Mat"
QT_MOC_LITERAL(6, 35, 16), // "display_timecost"
QT_MOC_LITERAL(7, 52, 2), // "ms"
QT_MOC_LITERAL(8, 55, 19), // "display_check_total"
QT_MOC_LITERAL(9, 75, 2), // "no"
QT_MOC_LITERAL(10, 78, 13), // "display_jd_no"
QT_MOC_LITERAL(11, 92, 5), // "jd_no"
QT_MOC_LITERAL(12, 98, 8), // "event_ok"
QT_MOC_LITERAL(13, 107, 8) // "event_ng"
},
"WorkThread\0notify\0\0Num\0Cnt\0cv::Mat\0"
"display_timecost\0ms\0display_check_total\0"
"no\0display_jd_no\0jd_no\0event_ok\0"
"event_ng"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_WorkThread[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
6, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
6, // signalCount
// signals: name, argc, parameters, tag, flags
1, 3, 44, 2, 0x06 /* Public */,
6, 2, 51, 2, 0x06 /* Public */,
8, 2, 56, 2, 0x06 /* Public */,
10, 2, 61, 2, 0x06 /* Public */,
12, 1, 66, 2, 0x06 /* Public */,
13, 1, 69, 2, 0x06 /* Public */,
// signals: parameters
QMetaType::Void, QMetaType::Int, QMetaType::Int, 0x80000000 | 5, 3, 4, 2,
QMetaType::Void, QMetaType::Int, QMetaType::Int, 3, 7,
QMetaType::Void, QMetaType::Int, QMetaType::Long, 3, 9,
QMetaType::Void, QMetaType::Int, QMetaType::QString, 3, 11,
QMetaType::Void, QMetaType::Int, 3,
QMetaType::Void, QMetaType::Int, 3,
0 // eod
};
void WorkThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<WorkThread *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->notify((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< cv::Mat(*)>(_a[3]))); break;
case 1: _t->display_timecost((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
case 2: _t->display_check_total((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< long(*)>(_a[2]))); break;
case 3: _t->display_jd_no((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
case 4: _t->event_ok((*reinterpret_cast< int(*)>(_a[1]))); break;
case 5: _t->event_ng((*reinterpret_cast< int(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (WorkThread::*)(int , int , cv::Mat );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&WorkThread::notify)) {
*result = 0;
return;
}
}
{
using _t = void (WorkThread::*)(int , int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&WorkThread::display_timecost)) {
*result = 1;
return;
}
}
{
using _t = void (WorkThread::*)(int , long );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&WorkThread::display_check_total)) {
*result = 2;
return;
}
}
{
using _t = void (WorkThread::*)(int , QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&WorkThread::display_jd_no)) {
*result = 3;
return;
}
}
{
using _t = void (WorkThread::*)(int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&WorkThread::event_ok)) {
*result = 4;
return;
}
}
{
using _t = void (WorkThread::*)(int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&WorkThread::event_ng)) {
*result = 5;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject WorkThread::staticMetaObject = { {
QMetaObject::SuperData::link<QThread::staticMetaObject>(),
qt_meta_stringdata_WorkThread.data,
qt_meta_data_WorkThread,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *WorkThread::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *WorkThread::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_WorkThread.stringdata0))
return static_cast<void*>(this);
return QThread::qt_metacast(_clname);
}
int WorkThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QThread::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 6)
qt_static_metacall(this, _c, _id, _a);
_id -= 6;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 6)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 6;
}
return _id;
}
// SIGNAL 0
void WorkThread::notify(int _t1, int _t2, cv::Mat _t3)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t3))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void WorkThread::display_timecost(int _t1, int _t2)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
QMetaObject::activate(this, &staticMetaObject, 1, _a);
}
// SIGNAL 2
void WorkThread::display_check_total(int _t1, long _t2)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
QMetaObject::activate(this, &staticMetaObject, 2, _a);
}
// SIGNAL 3
void WorkThread::display_jd_no(int _t1, QString _t2)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
// SIGNAL 4
void WorkThread::event_ok(int _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 4, _a);
}
// SIGNAL 5
void WorkThread::event_ng(int _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 5, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

File diff suppressed because it is too large Load Diff

@ -0,0 +1,83 @@
/********************************************************************************
** Form generated from reading UI file 'alarmdialog.ui'
**
** Created by: Qt User Interface Compiler version 5.15.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_ALARMDIALOG_H
#define UI_ALARMDIALOG_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QTableWidget>
QT_BEGIN_NAMESPACE
class Ui_AlarmDialog
{
public:
QTableWidget *tableWidget;
QLabel *label;
QPushButton *pushButton_close;
QPushButton *pushButton_clear;
void setupUi(QDialog *AlarmDialog)
{
if (AlarmDialog->objectName().isEmpty())
AlarmDialog->setObjectName(QString::fromUtf8("AlarmDialog"));
AlarmDialog->resize(800, 600);
AlarmDialog->setStyleSheet(QString::fromUtf8("background-color: rgb(240, 240, 240);"));
tableWidget = new QTableWidget(AlarmDialog);
tableWidget->setObjectName(QString::fromUtf8("tableWidget"));
tableWidget->setGeometry(QRect(10, 60, 781, 531));
label = new QLabel(AlarmDialog);
label->setObjectName(QString::fromUtf8("label"));
label->setGeometry(QRect(40, 10, 101, 41));
QFont font;
font.setFamily(QString::fromUtf8("\345\276\256\350\275\257\351\233\205\351\273\221"));
font.setPointSize(14);
font.setBold(true);
font.setWeight(75);
label->setFont(font);
pushButton_close = new QPushButton(AlarmDialog);
pushButton_close->setObjectName(QString::fromUtf8("pushButton_close"));
pushButton_close->setGeometry(QRect(640, 10, 111, 41));
QFont font1;
font1.setFamily(QString::fromUtf8("\345\276\256\350\275\257\351\233\205\351\273\221"));
font1.setPointSize(12);
font1.setBold(true);
font1.setWeight(75);
pushButton_close->setFont(font1);
pushButton_clear = new QPushButton(AlarmDialog);
pushButton_clear->setObjectName(QString::fromUtf8("pushButton_clear"));
pushButton_clear->setGeometry(QRect(500, 10, 111, 41));
pushButton_clear->setFont(font1);
retranslateUi(AlarmDialog);
QMetaObject::connectSlotsByName(AlarmDialog);
} // setupUi
void retranslateUi(QDialog *AlarmDialog)
{
AlarmDialog->setWindowTitle(QCoreApplication::translate("AlarmDialog", "\346\212\245\350\255\246\345\216\206\345\217\262", nullptr));
label->setText(QCoreApplication::translate("AlarmDialog", "\346\212\245\350\255\246\345\216\206\345\217\262\357\274\232", nullptr));
pushButton_close->setText(QCoreApplication::translate("AlarmDialog", "\345\205\263\351\227\255\347\252\227\345\217\243", nullptr));
pushButton_clear->setText(QCoreApplication::translate("AlarmDialog", "\346\270\205\347\251\272\346\212\245\350\255\246", nullptr));
} // retranslateUi
};
namespace Ui {
class AlarmDialog: public Ui_AlarmDialog {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_ALARMDIALOG_H

@ -0,0 +1,303 @@
/********************************************************************************
** Form generated from reading UI file 'camera_glue.ui'
**
** Created by: Qt User Interface Compiler version 5.15.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_CAMERA_GLUE_H
#define UI_CAMERA_GLUE_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QDialog>
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpinBox>
QT_BEGIN_NAMESPACE
class Ui_camera_glue
{
public:
QSpinBox *spinBox_21;
QSpinBox *spinBox_31;
QSpinBox *spinBox_41;
QSpinBox *spinBox_32;
QSpinBox *spinBox_22;
QSpinBox *spinBox_42;
QSpinBox *spinBox_33;
QSpinBox *spinBox_23;
QSpinBox *spinBox_43;
QSpinBox *spinBox_12;
QSpinBox *spinBox_11;
QSpinBox *spinBox_13;
QLabel *label_first;
QLabel *label_second;
QLabel *label_third;
QLabel *label_1;
QLabel *label_2;
QLabel *label_3;
QLabel *label_4;
QLabel *label_hint;
QPushButton *pushButton_take;
QSpinBox *spinBox_53;
QLabel *label_5;
QSpinBox *spinBox_52;
QSpinBox *spinBox_51;
QSpinBox *spinBox_63;
QLabel *label_6;
QSpinBox *spinBox_62;
QSpinBox *spinBox_61;
QSpinBox *spinBox_73;
QLabel *label_7;
QSpinBox *spinBox_72;
QSpinBox *spinBox_71;
QSpinBox *spinBox_83;
QLabel *label_8;
QSpinBox *spinBox_82;
QSpinBox *spinBox_81;
void setupUi(QDialog *camera_glue)
{
if (camera_glue->objectName().isEmpty())
camera_glue->setObjectName(QString::fromUtf8("camera_glue"));
camera_glue->resize(433, 262);
spinBox_21 = new QSpinBox(camera_glue);
spinBox_21->setObjectName(QString::fromUtf8("spinBox_21"));
spinBox_21->setGeometry(QRect(220, 50, 70, 30));
QFont font;
font.setFamily(QString::fromUtf8("\345\276\256\350\275\257\351\233\205\351\273\221"));
font.setPointSize(12);
font.setBold(true);
font.setWeight(75);
spinBox_21->setFont(font);
spinBox_21->setWrapping(true);
spinBox_21->setMaximum(10);
spinBox_31 = new QSpinBox(camera_glue);
spinBox_31->setObjectName(QString::fromUtf8("spinBox_31"));
spinBox_31->setGeometry(QRect(320, 50, 70, 30));
spinBox_31->setFont(font);
spinBox_31->setWrapping(true);
spinBox_31->setMaximum(10);
spinBox_41 = new QSpinBox(camera_glue);
spinBox_41->setObjectName(QString::fromUtf8("spinBox_41"));
spinBox_41->setGeometry(QRect(390, 1850, 70, 30));
spinBox_41->setFont(font);
spinBox_41->setWrapping(true);
spinBox_41->setMaximum(10);
spinBox_32 = new QSpinBox(camera_glue);
spinBox_32->setObjectName(QString::fromUtf8("spinBox_32"));
spinBox_32->setGeometry(QRect(320, 100, 70, 30));
spinBox_32->setFont(font);
spinBox_32->setWrapping(true);
spinBox_32->setMaximum(10);
spinBox_22 = new QSpinBox(camera_glue);
spinBox_22->setObjectName(QString::fromUtf8("spinBox_22"));
spinBox_22->setGeometry(QRect(220, 100, 70, 30));
spinBox_22->setFont(font);
spinBox_22->setWrapping(true);
spinBox_22->setMaximum(10);
spinBox_42 = new QSpinBox(camera_glue);
spinBox_42->setObjectName(QString::fromUtf8("spinBox_42"));
spinBox_42->setGeometry(QRect(390, 1900, 70, 30));
spinBox_42->setFont(font);
spinBox_42->setWrapping(true);
spinBox_42->setMaximum(10);
spinBox_33 = new QSpinBox(camera_glue);
spinBox_33->setObjectName(QString::fromUtf8("spinBox_33"));
spinBox_33->setGeometry(QRect(320, 150, 70, 30));
spinBox_33->setFont(font);
spinBox_33->setWrapping(true);
spinBox_33->setMaximum(10);
spinBox_23 = new QSpinBox(camera_glue);
spinBox_23->setObjectName(QString::fromUtf8("spinBox_23"));
spinBox_23->setGeometry(QRect(220, 150, 70, 30));
spinBox_23->setFont(font);
spinBox_23->setWrapping(true);
spinBox_23->setMaximum(10);
spinBox_43 = new QSpinBox(camera_glue);
spinBox_43->setObjectName(QString::fromUtf8("spinBox_43"));
spinBox_43->setGeometry(QRect(390, 1950, 70, 30));
spinBox_43->setFont(font);
spinBox_43->setWrapping(true);
spinBox_43->setMaximum(10);
spinBox_12 = new QSpinBox(camera_glue);
spinBox_12->setObjectName(QString::fromUtf8("spinBox_12"));
spinBox_12->setGeometry(QRect(120, 100, 70, 30));
spinBox_12->setFont(font);
spinBox_12->setWrapping(true);
spinBox_12->setMaximum(10);
spinBox_11 = new QSpinBox(camera_glue);
spinBox_11->setObjectName(QString::fromUtf8("spinBox_11"));
spinBox_11->setGeometry(QRect(120, 50, 70, 30));
spinBox_11->setFont(font);
spinBox_11->setWrapping(true);
spinBox_11->setMaximum(10);
spinBox_13 = new QSpinBox(camera_glue);
spinBox_13->setObjectName(QString::fromUtf8("spinBox_13"));
spinBox_13->setGeometry(QRect(120, 150, 70, 30));
spinBox_13->setFont(font);
spinBox_13->setWrapping(true);
spinBox_13->setMaximum(10);
label_first = new QLabel(camera_glue);
label_first->setObjectName(QString::fromUtf8("label_first"));
label_first->setGeometry(QRect(40, 53, 61, 21));
label_first->setFont(font);
label_second = new QLabel(camera_glue);
label_second->setObjectName(QString::fromUtf8("label_second"));
label_second->setGeometry(QRect(40, 105, 61, 21));
label_second->setFont(font);
label_third = new QLabel(camera_glue);
label_third->setObjectName(QString::fromUtf8("label_third"));
label_third->setGeometry(QRect(40, 155, 61, 21));
label_third->setFont(font);
label_1 = new QLabel(camera_glue);
label_1->setObjectName(QString::fromUtf8("label_1"));
label_1->setGeometry(QRect(120, 20, 70, 20));
label_1->setFont(font);
label_2 = new QLabel(camera_glue);
label_2->setObjectName(QString::fromUtf8("label_2"));
label_2->setGeometry(QRect(220, 20, 70, 20));
label_2->setFont(font);
label_3 = new QLabel(camera_glue);
label_3->setObjectName(QString::fromUtf8("label_3"));
label_3->setGeometry(QRect(320, 20, 70, 20));
label_3->setFont(font);
label_4 = new QLabel(camera_glue);
label_4->setObjectName(QString::fromUtf8("label_4"));
label_4->setGeometry(QRect(390, 1820, 70, 20));
label_4->setFont(font);
label_hint = new QLabel(camera_glue);
label_hint->setObjectName(QString::fromUtf8("label_hint"));
label_hint->setGeometry(QRect(140, 190, 285, 25));
QFont font1;
font1.setFamily(QString::fromUtf8("\345\276\256\350\275\257\351\233\205\351\273\221"));
font1.setPointSize(10);
label_hint->setFont(font1);
pushButton_take = new QPushButton(camera_glue);
pushButton_take->setObjectName(QString::fromUtf8("pushButton_take"));
pushButton_take->setGeometry(QRect(140, 220, 141, 31));
pushButton_take->setFont(font);
spinBox_53 = new QSpinBox(camera_glue);
spinBox_53->setObjectName(QString::fromUtf8("spinBox_53"));
spinBox_53->setGeometry(QRect(490, 1950, 70, 30));
spinBox_53->setFont(font);
spinBox_53->setWrapping(true);
spinBox_53->setMaximum(10);
label_5 = new QLabel(camera_glue);
label_5->setObjectName(QString::fromUtf8("label_5"));
label_5->setGeometry(QRect(490, 1820, 70, 20));
label_5->setFont(font);
spinBox_52 = new QSpinBox(camera_glue);
spinBox_52->setObjectName(QString::fromUtf8("spinBox_52"));
spinBox_52->setGeometry(QRect(490, 1900, 70, 30));
spinBox_52->setFont(font);
spinBox_52->setWrapping(true);
spinBox_52->setMaximum(10);
spinBox_51 = new QSpinBox(camera_glue);
spinBox_51->setObjectName(QString::fromUtf8("spinBox_51"));
spinBox_51->setGeometry(QRect(490, 1850, 70, 30));
spinBox_51->setFont(font);
spinBox_51->setWrapping(true);
spinBox_51->setMaximum(10);
spinBox_63 = new QSpinBox(camera_glue);
spinBox_63->setObjectName(QString::fromUtf8("spinBox_63"));
spinBox_63->setGeometry(QRect(590, 1950, 70, 30));
spinBox_63->setFont(font);
spinBox_63->setWrapping(true);
spinBox_63->setMaximum(10);
label_6 = new QLabel(camera_glue);
label_6->setObjectName(QString::fromUtf8("label_6"));
label_6->setGeometry(QRect(590, 1820, 70, 20));
label_6->setFont(font);
spinBox_62 = new QSpinBox(camera_glue);
spinBox_62->setObjectName(QString::fromUtf8("spinBox_62"));
spinBox_62->setGeometry(QRect(590, 1900, 70, 30));
spinBox_62->setFont(font);
spinBox_62->setWrapping(true);
spinBox_62->setMaximum(10);
spinBox_61 = new QSpinBox(camera_glue);
spinBox_61->setObjectName(QString::fromUtf8("spinBox_61"));
spinBox_61->setGeometry(QRect(590, 1850, 70, 30));
spinBox_61->setFont(font);
spinBox_61->setWrapping(true);
spinBox_61->setMaximum(10);
spinBox_73 = new QSpinBox(camera_glue);
spinBox_73->setObjectName(QString::fromUtf8("spinBox_73"));
spinBox_73->setGeometry(QRect(690, 1950, 70, 30));
spinBox_73->setFont(font);
spinBox_73->setWrapping(true);
spinBox_73->setMaximum(10);
label_7 = new QLabel(camera_glue);
label_7->setObjectName(QString::fromUtf8("label_7"));
label_7->setGeometry(QRect(690, 1820, 70, 20));
label_7->setFont(font);
spinBox_72 = new QSpinBox(camera_glue);
spinBox_72->setObjectName(QString::fromUtf8("spinBox_72"));
spinBox_72->setGeometry(QRect(690, 1900, 70, 30));
spinBox_72->setFont(font);
spinBox_72->setWrapping(true);
spinBox_72->setMaximum(10);
spinBox_71 = new QSpinBox(camera_glue);
spinBox_71->setObjectName(QString::fromUtf8("spinBox_71"));
spinBox_71->setGeometry(QRect(690, 1850, 70, 30));
spinBox_71->setFont(font);
spinBox_71->setWrapping(true);
spinBox_71->setMaximum(10);
spinBox_83 = new QSpinBox(camera_glue);
spinBox_83->setObjectName(QString::fromUtf8("spinBox_83"));
spinBox_83->setGeometry(QRect(790, 1950, 70, 30));
spinBox_83->setFont(font);
spinBox_83->setWrapping(true);
spinBox_83->setMaximum(10);
label_8 = new QLabel(camera_glue);
label_8->setObjectName(QString::fromUtf8("label_8"));
label_8->setGeometry(QRect(790, 1820, 70, 20));
label_8->setFont(font);
spinBox_82 = new QSpinBox(camera_glue);
spinBox_82->setObjectName(QString::fromUtf8("spinBox_82"));
spinBox_82->setGeometry(QRect(790, 1900, 70, 30));
spinBox_82->setFont(font);
spinBox_82->setWrapping(true);
spinBox_82->setMaximum(10);
spinBox_81 = new QSpinBox(camera_glue);
spinBox_81->setObjectName(QString::fromUtf8("spinBox_81"));
spinBox_81->setGeometry(QRect(790, 1850, 70, 30));
spinBox_81->setFont(font);
spinBox_81->setWrapping(true);
spinBox_81->setMaximum(10);
retranslateUi(camera_glue);
QMetaObject::connectSlotsByName(camera_glue);
} // setupUi
void retranslateUi(QDialog *camera_glue)
{
camera_glue->setWindowTitle(QCoreApplication::translate("camera_glue", "\351\205\215\346\226\271\350\256\276\347\275\256", nullptr));
label_first->setText(QCoreApplication::translate("camera_glue", "\347\254\254\344\270\200\345\274\240", nullptr));
label_second->setText(QCoreApplication::translate("camera_glue", "\347\254\254\344\272\214\345\274\240", nullptr));
label_third->setText(QCoreApplication::translate("camera_glue", "\347\254\254\344\270\211\345\274\240", nullptr));
label_1->setText(QCoreApplication::translate("camera_glue", "1\345\217\267\347\233\270\346\234\272", nullptr));
label_2->setText(QCoreApplication::translate("camera_glue", "2\345\217\267\347\233\270\346\234\272", nullptr));
label_3->setText(QCoreApplication::translate("camera_glue", "3\345\217\267\347\233\270\346\234\272", nullptr));
label_4->setText(QCoreApplication::translate("camera_glue", "4\345\217\267\347\233\270\346\234\272", nullptr));
label_hint->setText(QCoreApplication::translate("camera_glue", "\350\213\245\350\246\201\344\277\235\345\255\230\345\217\202\346\225\260\350\257\267\350\277\224\345\233\236\344\270\212\344\270\200\347\272\247\347\202\271\345\207\273\344\277\235\345\255\230", nullptr));
pushButton_take->setText(QCoreApplication::translate("camera_glue", "\345\272\224\347\224\250", nullptr));
label_5->setText(QCoreApplication::translate("camera_glue", "5\345\217\267\347\233\270\346\234\272", nullptr));
label_6->setText(QCoreApplication::translate("camera_glue", "6\345\217\267\347\233\270\346\234\272", nullptr));
label_7->setText(QCoreApplication::translate("camera_glue", "7\345\217\267\347\233\270\346\234\272", nullptr));
label_8->setText(QCoreApplication::translate("camera_glue", "8\345\217\267\347\233\270\346\234\272", nullptr));
} // retranslateUi
};
namespace Ui {
class camera_glue: public Ui_camera_glue {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_CAMERA_GLUE_H

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save