From 7b041596f904e74bac65545fc0aed0623f46351b Mon Sep 17 00:00:00 2001 From: bobpan Date: Tue, 3 Nov 2020 14:01:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96lpcorectrl=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E7=A7=BB=E9=99=A4=E5=A4=A7=E9=83=A8=E5=88=86=E4=B8=8D?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E7=9A=84=E6=8E=A5=E5=8F=A3=E5=92=8C=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 3part/tadpole/include/tpBase/baseConstant.h | 15 +- 3part/tadpole/include/tpBase/baseDefine.h | 16 +-- 3part/tadpole/include/tpBase/baseStruct.h | 73 ---------- 3part/tadpole/include/tpBase/iAlgorithm.h | 13 +- 3part/tadpole/include/tpBase/iCoreCtrl.h | 26 +--- 3part/tadpole/include/tpBase/iImgProc.h | 17 +-- 3part/tadpole/include/tpBase/icamera.h | 29 ++-- src/lpCoreCtrl/AlgorithmResult.cpp | 48 ------- src/lpCoreCtrl/AlgorithmResult.h | 22 --- src/lpCoreCtrl/CoreCtrl.cpp | 129 +++++++++++------- src/lpCoreCtrl/CoreCtrl.h | 14 +- src/lpCoreCtrl/GlobalDataBase.cpp | 53 ------- src/lpCoreCtrl/GlobalDataBase.h | 20 --- src/lpCoreCtrl/ImageObject.cpp | 19 ++- src/lpCoreCtrl/ImageObject.h | 6 +- src/lpCoreCtrl/ModulesManager.cpp | 95 ------------- src/lpCoreCtrl/ModulesManager.h | 22 --- src/lpCoreCtrl/QZkShowImage.cpp | 31 ----- src/lpCoreCtrl/QZkShowImage.h | 22 --- src/lpCoreCtrl/ZkImage.cpp | 65 --------- src/lpCoreCtrl/ZkImage.h | 33 ----- src/lpCoreCtrl/globalCoreCtrl.cpp | 36 ----- src/lpCoreCtrl/globalCoreCtrl.h | 58 -------- src/lpCoreCtrl/iCameraObject.h | 2 +- .../{ZkCameraImage.cpp => lpCameraImage.cpp} | 24 ++-- .../{ZkCameraImage.h => lpCameraImage.h} | 7 +- src/lpCoreCtrl/lpThread.cpp | 54 ++++++++ .../{qtpthreadbase.h => lpThread.h} | 11 +- src/lpCoreCtrl/qtpthreadbase.cpp | 47 ------- src/lpCoreCtrl/qtpthreadimage.cpp | 69 ---------- src/lpCoreCtrl/qtpthreadimage.h | 21 --- src/lpCoreCtrl/tpCamera/CameraPool.cpp | 52 +++---- src/lpCoreCtrl/tpCamera/CameraPool.h | 12 +- .../{globalCamera.cpp => lpCameraConfig.cpp} | 107 +++------------ .../{globalCamera.h => lpCameraConfig.h} | 21 +-- src/lpCoreCtrl/tpCamera/tpCamera.cpp | 51 ------- src/lpCoreCtrl/tpCamera/triggerthread.cpp | 7 +- src/lpCoreCtrl/tpCamera/triggerthread.h | 6 +- src/lpCoreCtrl/tpCoreCtrl.cpp | 54 -------- src/lpCoreCtrl/tpImgProc/ImgProc.cpp | 15 +- src/lpCoreCtrl/tpImgProc/ImgProc.h | 13 +- src/lpCoreCtrl/tpImgProc/tpImgProc.cpp | 35 ----- src/lpCoreCtrl/tpJsonConfig.h | 29 ---- src/lpMain/CoreCtrl/CDllCoreCtrl.cpp | 43 ++---- src/lpMain/CoreCtrl/CDllCoreCtrl.h | 3 +- tpvs17/lpCoreCtrl/lpCoreConfig.cpp | 16 +++ tpvs17/lpCoreCtrl/lpCoreConfig.h | 25 ++++ tpvs17/lpCoreCtrl/lpCoreCtrl.vcxproj | 31 ++--- tpvs17/lpCoreCtrl/lpCoreCtrl.vcxproj.filters | 93 ++++--------- tpvs17/lpMain/CMainWin.cpp | 2 +- 50 files changed, 356 insertions(+), 1356 deletions(-) delete mode 100644 src/lpCoreCtrl/AlgorithmResult.cpp delete mode 100644 src/lpCoreCtrl/AlgorithmResult.h delete mode 100644 src/lpCoreCtrl/GlobalDataBase.cpp delete mode 100644 src/lpCoreCtrl/GlobalDataBase.h delete mode 100644 src/lpCoreCtrl/ModulesManager.cpp delete mode 100644 src/lpCoreCtrl/ModulesManager.h delete mode 100644 src/lpCoreCtrl/QZkShowImage.cpp delete mode 100644 src/lpCoreCtrl/QZkShowImage.h delete mode 100644 src/lpCoreCtrl/ZkImage.cpp delete mode 100644 src/lpCoreCtrl/ZkImage.h delete mode 100644 src/lpCoreCtrl/globalCoreCtrl.cpp delete mode 100644 src/lpCoreCtrl/globalCoreCtrl.h rename src/lpCoreCtrl/{ZkCameraImage.cpp => lpCameraImage.cpp} (91%) rename src/lpCoreCtrl/{ZkCameraImage.h => lpCameraImage.h} (97%) create mode 100644 src/lpCoreCtrl/lpThread.cpp rename src/lpCoreCtrl/{qtpthreadbase.h => lpThread.h} (59%) delete mode 100644 src/lpCoreCtrl/qtpthreadbase.cpp delete mode 100644 src/lpCoreCtrl/qtpthreadimage.cpp delete mode 100644 src/lpCoreCtrl/qtpthreadimage.h rename src/lpCoreCtrl/tpCamera/{globalCamera.cpp => lpCameraConfig.cpp} (70%) rename src/lpCoreCtrl/tpCamera/{globalCamera.h => lpCameraConfig.h} (70%) delete mode 100644 src/lpCoreCtrl/tpCamera/tpCamera.cpp delete mode 100644 src/lpCoreCtrl/tpCoreCtrl.cpp delete mode 100644 src/lpCoreCtrl/tpImgProc/tpImgProc.cpp delete mode 100644 src/lpCoreCtrl/tpJsonConfig.h create mode 100644 tpvs17/lpCoreCtrl/lpCoreConfig.cpp create mode 100644 tpvs17/lpCoreCtrl/lpCoreConfig.h diff --git a/3part/tadpole/include/tpBase/baseConstant.h b/3part/tadpole/include/tpBase/baseConstant.h index 684394d..45eb109 100644 --- a/3part/tadpole/include/tpBase/baseConstant.h +++ b/3part/tadpole/include/tpBase/baseConstant.h @@ -1,20 +1,9 @@ -/****************************************************************************** - Copyright(C):2015~2018 hzleaper - FileName:baseConstant.h - Author:zhikun wu - Email:zk.wu@hzleaper.com - Tools:vs2010 pc on company - Created:2015/04/08 - History:8:4:2015 12:55 - *******************************************************************************/ -#ifndef __BASE_CONSTNAT_H_20150608 -#define __BASE_CONSTNAT_H_20150608 +#ifndef __BASE_CONSTNAT_H_ +#define __BASE_CONSTNAT_H_ namespace TP_STR{ const char cszJsonSuffix[] = ".json"; const char cszDatSuffix[] = ".dat"; -// const char cszCfgFolder[] = "config\\"; -// const char cszMainCfg[] = "main"; } #endif \ No newline at end of file diff --git a/3part/tadpole/include/tpBase/baseDefine.h b/3part/tadpole/include/tpBase/baseDefine.h index 550fbfe..d14d1a4 100644 --- a/3part/tadpole/include/tpBase/baseDefine.h +++ b/3part/tadpole/include/tpBase/baseDefine.h @@ -1,14 +1,5 @@ -/****************************************************************************** - Copyright(C):2015~2018 hzleaper - FileName:baseDefine.h - Author:zhikun wu - Email:zk.wu@hzleaper.com - Tools:vs2010 pc on company - Created:2015/04/07 - History:7:4:2015 9:13 - *******************************************************************************/ -#ifndef __BASE_DEFINE_H_20150407 -#define __BASE_DEFINE_H_20150407 +#ifndef __BASE_DEFINE_H_ +#define __BASE_DEFINE_H_ #include "sysInclude.h" @@ -21,9 +12,6 @@ typedef unsigned short WORD; #ifndef DWORD typedef unsigned long DWORD; #endif -//#ifndef size_t -//typedef unsigned int size_t; -//#endif #define MAX(a, b) (a) > (b) ? (a) : (b) #define MIN(a, b) (a) > (b) ? (b) : (a) diff --git a/3part/tadpole/include/tpBase/baseStruct.h b/3part/tadpole/include/tpBase/baseStruct.h index 7355a86..07b7f1a 100644 --- a/3part/tadpole/include/tpBase/baseStruct.h +++ b/3part/tadpole/include/tpBase/baseStruct.h @@ -9,32 +9,6 @@ #define BASE_MAX_FOLDER_NAME_SIZE 64 #define BASE_MAX_FILE_NAME_SIZE 64 -enum emTpFolderNameList { - TP_FOLDER_NAME_CONFIG = 0, - TP_FOLDER_NAME_PICTURE = 1, - TP_FOLDER_NAME_UI = 2, - TP_FOLDER_NAME_MAX_NUM = 32, -}; -typedef struct tagTP_GLOBAL_DATA{ - char tgdMainPath[BASE_MAX_FILE_PATH]; - char tgdUserPath[BASE_MAX_FILE_PATH]; - char tgdDllPath[BASE_MAX_FILE_PATH]; - char tgdFolderNames[TP_FOLDER_NAME_MAX_NUM][BASE_MAX_FOLDER_NAME_SIZE]; - void* tgdpDllPaths;//pointer to a stringlist -}TP_GLOBAL_DATA; - -inline ZStringA TPConfigFileWholePath(const TP_GLOBAL_DATA* pGlobal, const char* szFile) { - ZStringA szFileName(pGlobal->tgdMainPath); - szFileName.append(pGlobal->tgdFolderNames[TP_FOLDER_NAME_CONFIG]).append(szFile).append(TP_STR::cszJsonSuffix); - return szFileName; -} - -enum emTpImageShowType { - TP_IMAGE_SHOW_NO = 0, - TP_IMAGE_SHOW_EVERY = 1, - TP_IMAGE_SHOW_NEW = 2, -}; - typedef struct tagTP_CORE_SETTING{ int threadsCount; int imageShowType; @@ -193,53 +167,6 @@ typedef struct tagTP_CAMERAPOOL_OPTION { int fixedFrames; }TP_CAMERAPOOL_OPTION; -// typedef struct tagTP_CAMERA_WIN { -// tagTP_CAMERA_WIN() -// :images(1), buffers(2), -// bitsPerPixel(32), index(0), -// bufferW(0), bufferH(0), mirror(0), -// bCacheOriginImage(false), bNeedRgbSwapped(false) -// {} -// QString key;//widget name -// QString device;//camera key -// quint8 images; -// quint8 buffers; -// quint8 bitsPerPixel; -// quint8 index; -// int bufferW; -// int bufferH; -// int mirror;//0:no, 1:horizontal, 2:vertical, 3: both -// bool bCacheOriginImage; -// bool bNeedRgbSwapped; -// -// bool operator==(const tagTP_CAMERA_WIN& rhs) -// { -// return (key == rhs.key) && (device == rhs.device) && -// (images == rhs.images) && (buffers == rhs.buffers) && -// (bitsPerPixel == rhs.bitsPerPixel) && -// (index == rhs.index) && -// (bufferW == rhs.bufferW) && (bufferH == rhs.bufferH) && -// (mirror == rhs.mirror) && -// (bCacheOriginImage == rhs.bCacheOriginImage) && -// (bNeedRgbSwapped == rhs.bNeedRgbSwapped); -// } -// }TP_CAMERA_WIN; - -// enum emTpUiDataType { -// TP_UI_DATA_FROM_CORECTRL = 0, -// TP_UI_DATA_FROM_ALGORITHM = 0x10000, -// TP_UI_DATA_FROM_CAMERA = 0x20000, -// TP_UI_DATA_FROM_COMMUNICATE = 0x30000, -// }; - -//Q_DECLARE_METATYPE(emTpUiDataType) - -// typedef struct tagTP_IO_OUT_CONTROL { -// BYTE index; -// BYTE state;//0 or 1 -// WORD mSecToSwitch;//0 for no Switch; -// }TP_IO_OUT_CONTROL; - static const QMap gColorNameMap = { { TP_COLOR_NONE, "None" }, { TP_COLOR_Y800, "GRAY8" }, diff --git a/3part/tadpole/include/tpBase/iAlgorithm.h b/3part/tadpole/include/tpBase/iAlgorithm.h index 83b932f..a16388d 100644 --- a/3part/tadpole/include/tpBase/iAlgorithm.h +++ b/3part/tadpole/include/tpBase/iAlgorithm.h @@ -1,13 +1,4 @@ -/****************************************************************************** - Copyright(C):2015~2018 hzleaper - FileName:tpAlgorithm.h - Author:zhikun wu - Email:zk.wu@hzleaper.com - Tools:vs2010 pc on company - Created:2015/05/15 - History:15:5:2015 17:51 - *******************************************************************************/ -#ifndef __TP_ALGORITHM_H +#ifndef __TP_ALGORITHM_H #define __TP_ALGORITHM_H #include "baseDefine.h" @@ -16,7 +7,6 @@ #include #include #include -//#include "baseStruct.h" #define ALG_SHARED_GLOBAL_KEY_APP_STATUS "app_status" #define ALG_SHARED_GLOBAL_KEY_APP_CHECKED "app_checked_status" @@ -35,7 +25,6 @@ public: virtual int IGetInt(const QString& key, int nDef = 0) = 0; }; - ///////////////////////////////////////////////////////////////////////////////////////////// #define ALG_OPTION_GLOBAL_KEY_SAMPLING_OBJECT "sampling_object" diff --git a/3part/tadpole/include/tpBase/iCoreCtrl.h b/3part/tadpole/include/tpBase/iCoreCtrl.h index 1a90664..7d11c63 100644 --- a/3part/tadpole/include/tpBase/iCoreCtrl.h +++ b/3part/tadpole/include/tpBase/iCoreCtrl.h @@ -5,15 +5,6 @@ #include #include -//the parameter for the CoreCtrl module -typedef struct tagCORE_CTRL_IN_PARAM -{ - class IGuiCallback* pGuiCb; - TP_GLOBAL_DATA* pGlobalData; - TP_CORE_SETTING* pCoreSetting; -}CORE_CTRL_IN_PARAM; - -/**/ class IAlgorithmResult { public: @@ -73,16 +64,13 @@ public://private: //use private when the old main is discarded; virtual void IEndImageProcess() = 0; }; -//callback interface from gui -class IGuiCallback -{ -public: - IGuiCallback() {} - virtual ~IGuiCallback() {} - virtual void INewCameraImage(const QVariantMap& vMap) = 0; - virtual void IVariantMapToUI(const QString& camKey, const QVariantMap& vMap) = 0; - virtual QVariant IGetVariantById(int id) = 0; -}; +#ifdef TPCORECTRL_EXPORTS +#define TPCORECTRL_API extern "C" __declspec(dllexport) +#else +#define TPCORECTRL_API extern "C" +#endif +extern "C" TPCORECTRL_API ICoreCtrl* Lib_CoreCtrl_Init(void); +extern "C" TPCORECTRL_API void Lib_CoreCtrl_Free(ICoreCtrl* ptr); #endif \ No newline at end of file diff --git a/3part/tadpole/include/tpBase/iImgProc.h b/3part/tadpole/include/tpBase/iImgProc.h index aca89a7..64f4896 100644 --- a/3part/tadpole/include/tpBase/iImgProc.h +++ b/3part/tadpole/include/tpBase/iImgProc.h @@ -1,21 +1,12 @@ -/****************************************************************************** - Copyright(C):2015~2018 hzleaper - FileName:iImgProc.h - Author:zhikun wu - Email:zk.wu@hzleaper.com - Tools:vs2010 pc on company - Created:2015/03/26 - History:26:3:2015 17:58 - *******************************************************************************/ -#ifndef __I_IMG_PROC_H_20150326 +#ifndef __I_IMG_PROC_H_20150326 #define __I_IMG_PROC_H_20150326 #include "baseDefine.h" #include "baseStruct.h" -typedef struct tagIMGPROC_IN_PARAM{ - TP_GLOBAL_DATA* pGlobalData; -}IMGPROC_IN_PARAM; +// typedef struct tagIMGPROC_IN_PARAM{ +// TP_GLOBAL_DATA* pGlobalData; +// }IMGPROC_IN_PARAM; class IImgProc { diff --git a/3part/tadpole/include/tpBase/icamera.h b/3part/tadpole/include/tpBase/icamera.h index 46b30c8..8ff7a54 100644 --- a/3part/tadpole/include/tpBase/icamera.h +++ b/3part/tadpole/include/tpBase/icamera.h @@ -2,12 +2,11 @@ #define __TP_I_CAMERA_H #include "baseInclude.h" -#include "ZkCameraImage.h" +#include "lpCameraImage.h" -typedef struct tagCAMERA_IN_PARAM { - class ICameraCallback* pCallback; - TP_GLOBAL_DATA* pGlobalData; -}CAMERA_IN_PARAM; +// typedef struct tagCAMERA_IN_PARAM { +// class ICameraCallback* pCallback; +// }CAMERA_IN_PARAM; class ICameraPool @@ -47,8 +46,8 @@ public: virtual void IManualTrigger( emTpTriggerDirection nDirection = TRIGGER_DIRECT_FOREWARD) = 0; virtual void ISnapImage(const QStringList& camKeys) = 0; virtual void ISendSoftTrigger(const QStringList& camKeys) = 0; - virtual CZkCameraImage* IPopCameraImage() = 0; - virtual void IFreeCameraImage(CZkCameraImage *pCamImg) = 0; + virtual lpCameraImage* IPopCameraImage() = 0; + virtual void IFreeCameraImage(lpCameraImage *pCamImg) = 0; //@camera: NULL means setting every camera virtual void ISetCameraProperty(const QString& camera, emTpCameraProperty property, long nValue) = 0; virtual void ISetCameraProperty(const QString& camera, TP_CAMERA_PROPERTY& property) = 0; @@ -67,13 +66,13 @@ public: virtual bool ICamsPausePush() = 0; }; -class ICameraCallback -{ -public: - ICameraCallback() {} - virtual ~ICameraCallback() {} - virtual QVariant IGetVariantById(int nId) = 0; - virtual void INewCameraImage(const QVariantMap& vmap) = 0; -}; +// class ICameraCallback +// { +// public: +// ICameraCallback() {} +// virtual ~ICameraCallback() {} +// virtual QVariant IGetVariantById(int nId) = 0; +// virtual void INewCameraImage(const QVariantMap& vmap) = 0; +// }; #endif \ No newline at end of file diff --git a/src/lpCoreCtrl/AlgorithmResult.cpp b/src/lpCoreCtrl/AlgorithmResult.cpp deleted file mode 100644 index 580b455..0000000 --- a/src/lpCoreCtrl/AlgorithmResult.cpp +++ /dev/null @@ -1,48 +0,0 @@ -#include "AlgorithmResult.h" - -CAlgorithmResult::CAlgorithmResult() -{ - -} - -CAlgorithmResult::~CAlgorithmResult() -{ - -} - -QVariantMap CAlgorithmResult::ToVariantMap() -{ - QReadLocker locker(&m_lock); - return m_json.toVariantMap(); -} - -void CAlgorithmResult::SetResult(const QString& key, QVariant& val) -{ - QWriteLocker locker(&m_lock); - m_json.insert(key, QJsonValue::fromVariant(val)); -} -bool CAlgorithmResult::AccumulateResult(const QString& key, QVariant& val) -{ - QWriteLocker locker(&m_lock); - QJsonValue jval = m_json.value(key); - if (jval.isUndefined()) - { - m_json.insert(key, QJsonValue::fromVariant(val)); - } - else - { - if (!jval.isDouble()) - { - return false; - } - bool bOk; - double fv = val.toDouble(&bOk); - if (!bOk) - { - return false; - } - fv += jval.toDouble(); - m_json.insert(key, fv); - } - return true; -} \ No newline at end of file diff --git a/src/lpCoreCtrl/AlgorithmResult.h b/src/lpCoreCtrl/AlgorithmResult.h deleted file mode 100644 index ea4c86c..0000000 --- a/src/lpCoreCtrl/AlgorithmResult.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef CALGORITHMRESULT_H -#define CALGORITHMRESULT_H - -#include "iCoreCtrl.h" -#include -#include - -class CAlgorithmResult : public IAlgorithmResult -{ -public: - CAlgorithmResult(); - virtual ~CAlgorithmResult(); - virtual QVariantMap ToVariantMap(); - void SetResult(const QString& key, QVariant& val); - bool AccumulateResult(const QString& key, QVariant& val); -private: - QJsonObject m_json; - QReadWriteLock m_lock; - //friend class CImageObject; -}; - -#endif // CALGORITHMRESULT_H diff --git a/src/lpCoreCtrl/CoreCtrl.cpp b/src/lpCoreCtrl/CoreCtrl.cpp index 2b13875..8cb6d4f 100644 --- a/src/lpCoreCtrl/CoreCtrl.cpp +++ b/src/lpCoreCtrl/CoreCtrl.cpp @@ -1,43 +1,50 @@ #include "CoreCtrl.h" -#include "globalCoreCtrl.h" #include "baseFunction.h" #include "QZkJsonParser.h" #include #include #include "callbackFunc.h" #include "CameraPool.h" -#include "globalCamera.h" +#include "lpCameraConfig.h" +#include "lpCoreConfig.h" +#include "ImageObject.h" -CCoreCtrl::CCoreCtrl(void) +TPCORECTRL_API ICoreCtrl* Lib_CoreCtrl_Init(void) { - + CCoreCtrl* gpCoreCtrl = nullptr; + if (NULL == gpCoreCtrl) + { + gpCoreCtrl = new CCoreCtrl(); + } + return gpCoreCtrl; } -CCoreCtrl::CCoreCtrl(void* inParam) +TPCORECTRL_API void Lib_CoreCtrl_Free(ICoreCtrl* ptr) { - CORE_CTRL_IN_PARAM* pCciParam = (CORE_CTRL_IN_PARAM*)inParam; - m_gpData = new CGlobalCoreCtrl(pCciParam); - + if (NULL != ptr) { - CAMERA_IN_PARAM camInParam; - camInParam.pCallback = m_gpData; - camInParam.pGlobalData = nullptr; + ptr->IFreeCore(); + delete ptr; + ptr = nullptr; + } +} - m_gpGlobalCameraZZZ = new CGlobalCamera(&camInParam); - m_gpCameraPool = new CCameraPool(); - ((CCameraPool*)m_gpCameraPool)->InitPool(); +CCoreCtrl::CCoreCtrl(void) +{ + lpCoreConfig::instance()->readConfig(); + lpCameraConfig::instance(); - IMGPROC_IN_PARAM imgprocInParam; - imgprocInParam.pGlobalData = m_gpGlobalCameraZZZ->m_pGlobalData; - m_gpImgProc = new CImgProc(&imgprocInParam); - ((CImgProc*)m_gpImgProc)->InitProc(); - - } + m_gpCameraPool = new CCameraPool(); + ((CCameraPool*)m_gpCameraPool)->InitPool(); + + m_gpImgProc = new CImgProc(); + ((CImgProc*)m_gpImgProc)->InitProc(); } CCoreCtrl::~CCoreCtrl(void) { + IFreeCore(); if (m_gpImgProc) { ((CImgProc*)m_gpImgProc)->FreeProc(); @@ -51,26 +58,14 @@ CCoreCtrl::~CCoreCtrl(void) delete m_gpCameraPool; m_gpCameraPool = nullptr; } - if (m_gpData) - { - delete m_gpData; - m_gpData = nullptr; - } - if (m_gpGlobalCameraZZZ) - { - delete m_gpGlobalCameraZZZ; - m_gpGlobalCameraZZZ = nullptr; - } - - - IFreeCore(); } int CCoreCtrl::IInitCore(class IDetectorEngine* pDE /*= NULL*/) { + m_pDE = pDE; int nRet = 0; //create threads - int nCount = 4;// gCoreSetting.threadsCount; + int nCount = lpCoreConfig::instance()->m_CoreSetting.threadsCount; if (nCount <= 0) { nCount = SYS_F::GetCpus();//获取系统cpu线程数量 @@ -78,7 +73,8 @@ int CCoreCtrl::IInitCore(class IDetectorEngine* pDE /*= NULL*/) /*创建图片处理线程*/ for (int i = 0; i < nCount; ++i) { - QTpThreadImage *pThd = new QTpThreadImage(this, pDE); + TaskFunc func = std::bind(&CCoreCtrl::onTaskFunc, this); + lpThread *pThd = new lpThread(func); if( NULL == pThd ) { break; @@ -105,7 +101,7 @@ void CCoreCtrl::IFreeCore() //删除图片处理线程 while( !m_imgThdPool.isEmpty() ) { - QTpThreadImage* pThd = m_imgThdPool.takeLast(); + lpThread* pThd = m_imgThdPool.takeLast(); pThd->EndThread(); delete pThd; } @@ -132,21 +128,6 @@ void CCoreCtrl::IEndImageProcess() } } -void CCoreCtrl::ISetResult(const QString& key, QVariant& val) -{ - m_algResult.SetResult(key, val); - //callback to ui - //glpGuiCallback->IAlgorithmResult(m_algResult.ToVariantMap()); -} - -void CCoreCtrl::AccumulateResult(const QString& key, QVariant& val) -{ - if (m_algResult.AccumulateResult(key, val)) - { - //glpGuiCallback->IAlgorithmResult(m_algResult.ToVariantMap()); - } -} - QList CCoreCtrl::ICameraKeys() { return m_gpCameraPool->ICameraKeys(); @@ -311,3 +292,49 @@ bool CCoreCtrl::IRegisterResultCallBack(FuncCallBack_StrMap callback) else return false; } + +bool CCoreCtrl::onTaskFunc() +{ + QTime timespan; + timespan.start(); + lpCameraImage* pCamImage = m_gpCameraPool->IPopCameraImage(); + int span = timespan.elapsed(); + if (span > 100) + { + qWarning() << "Pop image from poll cost " << span << " MSecs" + << " - " __FUNCTION__; + } + + if (NULL != pCamImage) + { + { + // send image to UI + timespan.restart(); + //TODO show Image +// m_pCoreCtrl->ShowCameraImage(pCamImage->Serial() +// , pCamImage->FrameNumber() +// , pCamImage->ToQImage() +// , pCamImage->Stamp() +// , 0 +// , QString::fromUtf8(pCamImage->FileName()));//(pCamImage); +// +// qDebug() << "Show camera image to UI cost " << timespan.elapsed() << " MSecs" +// << " - " __FUNCTION__; + } + CImageObject m_objImage(this); + { + // Algorithm process image + timespan.restart(); + m_objImage.SetCameraImage(pCamImage); + m_gpImgProc->IImageProcess(&m_objImage, m_pDE); + qDebug() << "Process Image(ID:" << pCamImage->FrameNumber() + << ") cost " << timespan.elapsed() << " MSecs" + << " - " __FUNCTION__; + } + //release CameraImage + m_objImage.SetCameraImage(NULL); + m_gpCameraPool->IFreeCameraImage(pCamImage); + return true; + } + return false; +} \ No newline at end of file diff --git a/src/lpCoreCtrl/CoreCtrl.h b/src/lpCoreCtrl/CoreCtrl.h index f2771b3..37d236b 100644 --- a/src/lpCoreCtrl/CoreCtrl.h +++ b/src/lpCoreCtrl/CoreCtrl.h @@ -2,18 +2,15 @@ #define __CORE_CTRL_H #include "iCoreCtrl.h" -#include "qtpthreadimage.h" +#include "lpThread.h" #include "QZkMutexMap.h" -#include "AlgorithmResult.h" #include "ImgProc.h" -#include "globalCamera.h" #include "CameraPool.h" class CCoreCtrl : public ICoreCtrl { public: CCoreCtrl(void); - CCoreCtrl(void* inParam); virtual ~CCoreCtrl(void); //初始化CoreCtrl virtual int IInitCore(class IDetectorEngine* pDE = NULL); @@ -22,8 +19,6 @@ public: //开始执行算法处理 virtual void IStartImageProcess(); virtual void IEndImageProcess(); - void AccumulateResult(const QString& key, QVariant& val); - virtual void ISetResult(const QString& key, QVariant& val); private: virtual QList ICameraKeys(); virtual QList ICameraKeysOrderByIds(); @@ -59,17 +54,16 @@ private: virtual bool IRegisterGetVariant(FuncCallBack_VarInt func); virtual bool IRegisterImageCallBack(FuncCallBack_VarMap callback); //获取相机图像回调接口 virtual bool IRegisterResultCallBack(FuncCallBack_StrMap callback); //获取算法结果回调接口 + bool onTaskFunc(); private: - QList m_imgThdPool; - CAlgorithmResult m_algResult; + QList m_imgThdPool; int m_nCoreCount; friend class CImageObject; friend class QTpThreadImage; private: - CGlobalCoreCtrl* m_gpData{ nullptr }; - CGlobalCamera* m_gpGlobalCameraZZZ{ nullptr }; ICameraPool* m_gpCameraPool{ nullptr }; IImgProc* m_gpImgProc{nullptr}; + class IDetectorEngine* m_pDE{ nullptr }; }; #endif \ No newline at end of file diff --git a/src/lpCoreCtrl/GlobalDataBase.cpp b/src/lpCoreCtrl/GlobalDataBase.cpp deleted file mode 100644 index 8189be5..0000000 --- a/src/lpCoreCtrl/GlobalDataBase.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include "GlobalDataBase.h" - -CGlobalDataBase::CGlobalDataBase(char *szExePath) -{ - int i = 0; - if( NULL != szExePath ) - { - i = std::strlen(szExePath); - if( i >= BASE_MAX_FILE_PATH ) - { - i = BASE_MAX_FILE_PATH - 1; - } - } - --i; - while( i > 0 ) - { - if( szExePath[i] == '\\' ) - { - break; - } - --i; - } - if ( i >= 0 ) - { - std::strncpy(tgdMainPath, szExePath, i+1); - tgdMainPath[i+1] = '\0'; - } - else - { - std::strcpy(tgdMainPath, ".\\"); - } - std::strcpy(tgdUserPath, tgdMainPath); - std::strcpy(tgdFolderNames[TP_FOLDER_NAME_CONFIG], "config\\"); - std::strcpy(tgdFolderNames[TP_FOLDER_NAME_PICTURE], "pic\\"); - - std::memset(&m_coreSetting, 0, sizeof(m_coreSetting)); -} - -CGlobalDataBase::~CGlobalDataBase() -{ - -} - -bool CGlobalDataBase::CoreSettingFromJson(QJsonObject& jsonObj) -{ - if( jsonObj.isEmpty() ) - { - return false; - } - m_coreSetting.threadsCount = jsonObj.value("image_threads").toInt(0); - m_coreSetting.imageShowType = jsonObj.value("show_type").toInt(TP_IMAGE_SHOW_NEW); - return true; -} \ No newline at end of file diff --git a/src/lpCoreCtrl/GlobalDataBase.h b/src/lpCoreCtrl/GlobalDataBase.h deleted file mode 100644 index f44c5a0..0000000 --- a/src/lpCoreCtrl/GlobalDataBase.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef GLOBALDATABASE_H -#define GLOBALDATABASE_H - -#include "baseInclude.h" -#include - -class CGlobalDataBase : public TP_GLOBAL_DATA -{ -public: - CGlobalDataBase(char *szExePath); - ~CGlobalDataBase(); - - bool CoreSettingFromJson(QJsonObject& jsonObj); -public: - tagTP_CORE_SETTING m_coreSetting; -private: - -}; - -#endif // GLOBALDATABASE_H diff --git a/src/lpCoreCtrl/ImageObject.cpp b/src/lpCoreCtrl/ImageObject.cpp index 2b120bc..7812c19 100644 --- a/src/lpCoreCtrl/ImageObject.cpp +++ b/src/lpCoreCtrl/ImageObject.cpp @@ -14,7 +14,7 @@ CImageObject::~CImageObject() } -bool CImageObject::SetCameraImage(CZkCameraImage* pCamImage) +bool CImageObject::SetCameraImage(lpCameraImage* pCamImage) { m_pCamImg = pCamImage; return true; @@ -197,18 +197,18 @@ const ZStringA& CImageObject::IDllSuffix() void CImageObject::ISetResult(const QString& key, QVariant& val) { - if (NULL != m_pCoreCtrl) - { - m_pCoreCtrl->ISetResult(key, val); - } +// if (NULL != m_pCoreCtrl) +// { +// m_pCoreCtrl->ISetResult(key, val); +// } } void CImageObject::IAccumulateResult(const QString& key, QVariant& val) { - if (NULL != m_pCoreCtrl) - { - m_pCoreCtrl->AccumulateResult(key, val); - } +// if (NULL != m_pCoreCtrl) +// { +// m_pCoreCtrl->AccumulateResult(key, val); +// } } void CImageObject::IMoveToFolder(const QString& szFolder) @@ -242,7 +242,6 @@ void CImageObject::IVariantMapToUI(const QVariantMap& vMap) { lpCallBackFunc::instance()->m_ResultCallBackFunc(m_pCamImg->Serial(), vMap); } - //glpGuiCallback->IVariantMapToUI(m_pCamImg->Serial(), vMap); } const ZStringA& CImageObject::ICameraSerial() diff --git a/src/lpCoreCtrl/ImageObject.h b/src/lpCoreCtrl/ImageObject.h index 3e49539..b7aa9d6 100644 --- a/src/lpCoreCtrl/ImageObject.h +++ b/src/lpCoreCtrl/ImageObject.h @@ -1,16 +1,16 @@ #ifndef IMAGEOBJECT_H #define IMAGEOBJECT_H -#include "globalCoreCtrl.h" #include #include "iAlgorithm.h" +#include "lpCameraImage.h" class CImageObject : public IImageObject { public: CImageObject(class CCoreCtrl* pCoreCtrl); ~CImageObject(); - bool SetCameraImage(CZkCameraImage* pCamImage); + bool SetCameraImage(lpCameraImage* pCamImage); private: virtual emTpColorFormat IColorFormat(); //@nBytesPerLine: 0 means there is no valid value @@ -42,7 +42,7 @@ private: } virtual void IDataToComm(DATA_TO_COMM_HEAD& head, char* pData, int nLen) {}; private: - CZkCameraImage* m_pCamImg; + lpCameraImage* m_pCamImg; class CCoreCtrl* m_pCoreCtrl; }; diff --git a/src/lpCoreCtrl/ModulesManager.cpp b/src/lpCoreCtrl/ModulesManager.cpp deleted file mode 100644 index c27214f..0000000 --- a/src/lpCoreCtrl/ModulesManager.cpp +++ /dev/null @@ -1,95 +0,0 @@ -// #include "ModulesManager.h" -// #include "LoadModule.h" -// #include "globalCoreCtrl.h" -// -// #define EXTERN_LIB_FUNC(lib_name) \ -// extern "C" void* lib_name##_Init(void* inParam);\ -// extern "C" void lib_name##_Free(); -// -// #ifndef MDL_CAMERA_USE_DLL -// EXTERN_LIB_FUNC(Lib_Camera) -// #endif -// -// #ifndef MDL_IMGPROC_USE_DLL -// EXTERN_LIB_FUNC(Lib_ImgProc) -// #endif -// -// #ifndef MDL_COMMUNICATE_USE_DLL -// EXTERN_LIB_FUNC(Lib_Communicate) -// #endif -// -// inline void* CModulesManager::getModule(const char* szLib, const char* szInit, const char* szFree, void* pInitParam /* = NULL */) -// { -// delModule(szLib); -// CLoadModule* pLib = new CLoadModule(szLib, szInit, szFree, gpGlobalData->tgdDllPath); -// return pLib->ModuleInit(pInitParam); -// } -// -// inline void CModulesManager::delModule(const char* szLib) -// { -// CLoadModule* pLib = m_mapLibs.value(szLib, NULL); -// if( NULL != pLib ) -// { -// pLib->ModuleFree(); -// delete pLib; -// m_mapLibs.remove(szLib); -// } -// } -// -// CModulesManager::CModulesManager(void) -// { -// } -// -// -// CModulesManager::~CModulesManager(void) -// { -// } -// -// int CModulesManager::LoadModules() -// { -// int nRet = 0; -// //load "tpCamera" modules -// void *pReturn = NULL; -// //Load camera library -// CAMERA_IN_PARAM camInParam; -// camInParam.pCallback = gpCoreCtrlGlobal; -// camInParam.pGlobalData = gpGlobalData; -// -// pReturn = Lib_Camera_Init(&camInParam); -// -// if( NULL == pReturn ) -// { -// return (-nRet); -// } -// -// glpCameralPool = (ICameraPool*)pReturn; -// ++nRet; -// //Load imgproc library -// IMGPROC_IN_PARAM imgprocInParam; -// imgprocInParam.pGlobalData = gpGlobalData; -// -// pReturn = Lib_ImgProc_Init(&imgprocInParam); -// -// if( NULL == pReturn ) -// { -// return (-nRet); -// } -// glpImgProc = (IImgProc*)pReturn; -// ++nRet; -// -// return nRet; -// } -// -// void CModulesManager::FreeModules() -// { -// #ifdef MDL_IMGPROC_USE_DLL -// delModule("tpImgProc"); -// #else -// Lib_ImgProc_Free(); -// #endif -// #ifdef MDL_CAMERA_USE_DLL -// delModule("tpCamera"); -// #else -// Lib_Camera_Free(); -// #endif -// } \ No newline at end of file diff --git a/src/lpCoreCtrl/ModulesManager.h b/src/lpCoreCtrl/ModulesManager.h deleted file mode 100644 index aaf1d65..0000000 --- a/src/lpCoreCtrl/ModulesManager.h +++ /dev/null @@ -1,22 +0,0 @@ -// #ifndef __MODULES_MANAGER_H -// #define __MODULES_MANAGER_H -// -// #include "icamera.h" -// #include "iCoreCtrl.h" -// #include -// -// class CModulesManager -// { -// public: -// CModulesManager(void); -// ~CModulesManager(void); -// int LoadModules(); -// void FreeModules(); -// private: -// inline void* getModule(const char* szLib, const char* szInit, const char* szFree, void* pInitParam = NULL); -// inline void delModule(const char* szLib); -// private: -// QMap m_mapLibs; -// }; -// -// #endif \ No newline at end of file diff --git a/src/lpCoreCtrl/QZkShowImage.cpp b/src/lpCoreCtrl/QZkShowImage.cpp deleted file mode 100644 index 3c6ce35..0000000 --- a/src/lpCoreCtrl/QZkShowImage.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include "QZkShowImage.h" -#include "ZkCameraImage.h" - -QZkShowImage::QZkShowImage() -{ - -} - -QZkShowImage::~QZkShowImage() -{ - -} - -void QZkShowImage::SetShowImage(class CZkCameraImage* pImg) -{ - m_showImage = pImg->ToShowImage(); - //test -// int depts = m_showImage.depth(); - // - m_nFrameNum = pImg->FrameNumber(); -} - -void QZkShowImage::DrawToPainter(QPainter *painter, QRect* rt) -{ -#ifdef USE_PIXMAP_AS_SHOW - painter->drawPixmap(*rt, m_showImage); -#else ZShowImage == QImage - painter->drawImage(*rt, m_showImage); -#endif - painter->drawText(25, 25, QString::number(m_nFrameNum)); -} \ No newline at end of file diff --git a/src/lpCoreCtrl/QZkShowImage.h b/src/lpCoreCtrl/QZkShowImage.h deleted file mode 100644 index a5bde5a..0000000 --- a/src/lpCoreCtrl/QZkShowImage.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef QZKSHOWIMAGE_H -#define QZKSHOWIMAGE_H - -#include -#include -#include "baseDefine.h" - -class QZkShowImage -{ -public: - QZkShowImage(); - ~QZkShowImage(); - - void SetShowImage(class CZkCameraImage* pImg); - void DrawToPainter(QPainter *painter, QRect* rt); - -private: - ZShowImage m_showImage; - long m_nFrameNum; -}; - -#endif // QZKSHOWIMAGE_H diff --git a/src/lpCoreCtrl/ZkImage.cpp b/src/lpCoreCtrl/ZkImage.cpp deleted file mode 100644 index 860274b..0000000 --- a/src/lpCoreCtrl/ZkImage.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "ZkImage.h" - -CZkImage::CZkImage() -{ - m_pColorBuffer = NULL; - m_nbuffLen = 0; - m_nWidth = 0; - m_nHeight = 0; -} - -CZkImage::CZkImage(int nW, int nH, int nBits) -{ - CZkImage(); - allocBuffer(nW, nH, nBits); -} - -CZkImage::~CZkImage() -{ - freeBuffer(); -} - -bool CZkImage::allocBuffer(int nW, int nH, int nBits) -{ - SELF_ABS(nW); - SELF_ABS(nH); - SELF_ABS(nBits); - int nLen = (nW * nH * nBits + 7) / 8; - if( 0 == nLen ) - { - return false; - } - if( NULL == m_pColorBuffer || nLen != m_nbuffLen ) - { - freeBuffer(); - m_pColorBuffer = new BYTE[nLen]; - if( NULL == m_pColorBuffer ) - { - return false; - } - m_nbuffLen = nLen; - } - m_nWidth = nW; - m_nHeight = nH; - m_nBitsPerPixel = nBits; - return true; -} - -void CZkImage::freeBuffer() -{ - if( NULL != m_pColorBuffer ) - { - delete m_pColorBuffer; - m_pColorBuffer = NULL; - } -} - -bool CZkImage::Copy(const BYTE* pData, int nW, int nH, int nBits) -{ - if( !allocBuffer(nW, nH, nBits) ) - { - return false; - } - std::memcpy(m_pColorBuffer, pData, m_nbuffLen); - return true; -} \ No newline at end of file diff --git a/src/lpCoreCtrl/ZkImage.h b/src/lpCoreCtrl/ZkImage.h deleted file mode 100644 index a544353..0000000 --- a/src/lpCoreCtrl/ZkImage.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef ZKIMAGE_H -#define ZKIMAGE_H - -#include "baseDefine.h" - -class CZkImage -{ -public: - CZkImage(); - CZkImage(int nW, int nH, int nBits); - virtual ~CZkImage(); - - bool Copy(const BYTE* pData, int nW, int nH, int nBits); - int width() { return m_nWidth; } - int height() { return m_nHeight; } - int bitsPerPixle() { - return m_nBitsPerPixel; - } - BYTE* bits() { return m_pColorBuffer; } - int buffLen() { return m_nbuffLen; } -private: - bool allocBuffer(int nW, int nH, int nBits); - void freeBuffer(); - -private: - BYTE* m_pColorBuffer; - int m_nbuffLen; - int m_nWidth; - int m_nHeight; - int m_nBitsPerPixel; -}; - -#endif // ZKIMAGE_H diff --git a/src/lpCoreCtrl/globalCoreCtrl.cpp b/src/lpCoreCtrl/globalCoreCtrl.cpp deleted file mode 100644 index 8d9770a..0000000 --- a/src/lpCoreCtrl/globalCoreCtrl.cpp +++ /dev/null @@ -1,36 +0,0 @@ -#include "globalCoreCtrl.h" -#include "QZkJsonParser.h" - -void CGlobalCoreCtrl::readCoreCtrlCfg() -{ - //read config from ".json" file - QString szFileName(m_pGlobalData->tgdMainPath); - szFileName.append(m_pGlobalData->tgdFolderNames[TP_FOLDER_NAME_CONFIG]).append("corectrl").append(TP_STR::cszJsonSuffix); - QJsonObject objJson = QZkJsonParser::ReadJsonObject(szFileName); - if (objJson.isEmpty()) - { - return; - } - //core_setting - QJsonObject objTmp = objJson["core_setting"].toObject(); - m_coreSetting.threadsCount = objTmp.value("image_threads").toInt(0); - m_coreSetting.imageShowType = objTmp.value("show_type").toInt(TP_IMAGE_SHOW_NO); -} - -QVariant CGlobalCoreCtrl::IGetVariantById(int nId) -{ - if (!m_pGuiCallback){ - qCritical("m_pGuiCallback is null in CGlobalCoreCtrl::IGetVariantById."); - return QVariant(); - } - return m_pGuiCallback->IGetVariantById(nId); -} - -void CGlobalCoreCtrl::INewCameraImage(const QVariantMap& vmap) -{ - if (!m_pGuiCallback){ - qCritical("m_pGuiCallback is null in CGlobalCoreCtrl::IGetVariantById."); - return; - } - m_pGuiCallback->INewCameraImage(vmap); -} \ No newline at end of file diff --git a/src/lpCoreCtrl/globalCoreCtrl.h b/src/lpCoreCtrl/globalCoreCtrl.h deleted file mode 100644 index 4e5f1a6..0000000 --- a/src/lpCoreCtrl/globalCoreCtrl.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef __GLOBAL_CORE_CTRL_H -#define __GLOBAL_CORE_CTRL_H - -#include "baseInclude.h" -#include "icamera.h" -#include "iCoreCtrl.h" -#include "iImgProc.h" -#include "GlobalDataBase.h" - - -#ifdef _USE_SPIDER_LOG -#include "logSpider.h" -#define CORE_CTRL_INIT(a, b) SPIDER_LOG_INIT(a, b) -#define CORE_CTRL_LOG(value) SPIDER_LOG_STRING("corectrl", value) -#define CORE_CTRL_FREE() SPIDER_LOG_FREE() -#else -#define CORE_CTRL_INIT(a, b) -#define CORE_CTRL_LOG(value) tpDebugOut(value) -#define CORE_CTRL_FREE() -#endif - -class CGlobalCoreCtrl : public ICameraCallback -{ -public: - CGlobalCoreCtrl(const CORE_CTRL_IN_PARAM* pParam){ - m_pCameraPool = NULL; - m_pImageProc = NULL; - m_pGlobalData = pParam->pGlobalData; - readCoreCtrlCfg(); - } - ~CGlobalCoreCtrl() {} - void AddCameraPool(ICameraPool* pCameraPool) { m_pCameraPool = pCameraPool; } -private: - void readCoreCtrlCfg(); - virtual QVariant IGetVariantById(int nId); - virtual void INewCameraImage(const QVariantMap& vmap); -public: - TP_GLOBAL_DATA* m_pGlobalData; - TP_CORE_SETTING m_coreSetting; - ICameraPool* m_pCameraPool; - IImgProc* m_pImageProc; -}; - -// extern CGlobalCoreCtrl* gpData; -// -// #define gpCoreCtrlGlobal gpData -// -// #define gpGlobalData ((TP_GLOBAL_DATA*)(gpData->m_pGlobalData)) -// #define gCoreSetting gpData->m_coreSetting -// #define glpCameralPool gpData->m_pCameraPool -// #define glpGuiCallback gpData->m_pGuiCallback -// #define gfcbGuiSetImage(...) if( NULL != glpGuiCallback ) glpGuiCallback->ISetCameraImage(__VA_ARGS__) -// #define gGuiCallback_FuncCall(fun, ...) if( NULL != glpGuiCallback ) glpGuiCallback->##fun##(__VA_ARGS__) -// -// #define glpImgProc gpData->m_pImageProc - - -#endif \ No newline at end of file diff --git a/src/lpCoreCtrl/iCameraObject.h b/src/lpCoreCtrl/iCameraObject.h index 2a99251..d4fe319 100644 --- a/src/lpCoreCtrl/iCameraObject.h +++ b/src/lpCoreCtrl/iCameraObject.h @@ -266,7 +266,7 @@ private: ICameraObject* m_pRelyOnCam; QZkMutexList m_listReliedBy; bool m_bIsCallback; - friend class CZkCameraImage; + friend class lpCameraImage; friend class CCameraPool; friend class CLibCameraes; }; diff --git a/src/lpCoreCtrl/ZkCameraImage.cpp b/src/lpCoreCtrl/lpCameraImage.cpp similarity index 91% rename from src/lpCoreCtrl/ZkCameraImage.cpp rename to src/lpCoreCtrl/lpCameraImage.cpp index 8ed28ec..54b8112 100644 --- a/src/lpCoreCtrl/ZkCameraImage.cpp +++ b/src/lpCoreCtrl/lpCameraImage.cpp @@ -1,6 +1,6 @@ -#include "ZkCameraImage.h" +#include "lpCameraImage.h" -CZkCameraImage::CZkCameraImage() +lpCameraImage::lpCameraImage() { m_nId = 0; m_nFrameNum = 0; @@ -12,7 +12,7 @@ CZkCameraImage::CZkCameraImage() m_nTimeStamp = QDateTime::currentDateTime().toMSecsSinceEpoch(); } -CZkCameraImage::~CZkCameraImage() +lpCameraImage::~lpCameraImage() { if (NULL != m_pImage) { @@ -20,7 +20,7 @@ CZkCameraImage::~CZkCameraImage() } } -int CZkCameraImage::CopyCameraObject(ICameraObject* pCamObj) +int lpCameraImage::CopyCameraObject(ICameraObject* pCamObj) { // SetColorFormat(pCamObj->ColorFormat()); if (NULL == pCamObj || NULL == pCamObj->m_pCamOpt) @@ -73,7 +73,7 @@ int CZkCameraImage::CopyCameraObject(ICameraObject* pCamObj) } } -int CZkCameraImage::CopyCameraObject2(ICameraObject* pCamObj) +int lpCameraImage::CopyCameraObject2(ICameraObject* pCamObj) { if (NULL == pCamObj || NULL == pCamObj->m_pCamOpt) { @@ -135,7 +135,7 @@ bool CZkCameraImage::CopyQImage(const QImage& image) } */ -ZShowImage CZkCameraImage::ToShowImage(int nShowW /* = 0 */, int nShowH /* = 0 */) +ZShowImage lpCameraImage::ToShowImage(int nShowW /* = 0 */, int nShowH /* = 0 */) { if (NULL == m_pImage) { @@ -181,7 +181,7 @@ ZShowImage CZkCameraImage::ToShowImage(int nShowW /* = 0 */, int nShowH /* = 0 * #endif } -QImage CZkCameraImage::ToQImage() +QImage lpCameraImage::ToQImage() { if (NULL == m_pImage) { @@ -202,7 +202,7 @@ colorFmt.append(clr1.rgb()); return *m_pImage; } -QImage::Format CZkCameraImage::ToQImageFormat(emTpColorFormat colorFormat) +QImage::Format lpCameraImage::ToQImageFormat(emTpColorFormat colorFormat) { if (TP_COLOR_RGB32 == colorFormat || TP_COLOR_BGR32 == colorFormat) @@ -232,7 +232,7 @@ QImage::Format CZkCameraImage::ToQImageFormat(emTpColorFormat colorFormat) } } -emTpColorFormat CZkCameraImage::FromQImageFormat(const QImage &image) +emTpColorFormat lpCameraImage::FromQImageFormat(const QImage &image) { if (QImage::Format_RGB32 == image.format()) { @@ -256,7 +256,7 @@ emTpColorFormat CZkCameraImage::FromQImageFormat(const QImage &image) } } -emTpColorFormat CZkCameraImage::FromString(const QString& strColor) +emTpColorFormat lpCameraImage::FromString(const QString& strColor) { if ("RGB32" == strColor) { @@ -289,7 +289,7 @@ emTpColorFormat CZkCameraImage::FromString(const QString& strColor) } -BYTE* CZkCameraImage::ImageData(int& nOutW, int& nOutH, int& nOutBitsPerPixel, int& nOutBytesPerLine) +BYTE* lpCameraImage::ImageData(int& nOutW, int& nOutH, int& nOutBitsPerPixel, int& nOutBytesPerLine) { if (!m_pImage || m_pImage->isNull()) { return NULL; @@ -309,7 +309,7 @@ BYTE* CZkCameraImage::ImageData(int& nOutW, int& nOutH, int& nOutBitsPerPixel, i return m_pImage->bits(); } -bool CZkCameraImage::SaveToFile() +bool lpCameraImage::SaveToFile() { if (NULL != m_pImage) { diff --git a/src/lpCoreCtrl/ZkCameraImage.h b/src/lpCoreCtrl/lpCameraImage.h similarity index 97% rename from src/lpCoreCtrl/ZkCameraImage.h rename to src/lpCoreCtrl/lpCameraImage.h index 70cddaf..45ed38a 100644 --- a/src/lpCoreCtrl/ZkCameraImage.h +++ b/src/lpCoreCtrl/lpCameraImage.h @@ -3,17 +3,16 @@ #include "baseDefine.h" #include "baseStruct.h" -#include "ZkImage.h" #include "iCameraObject.h" #define QIMAGE_FUNC_KEY "bool_func" #define QIMAGE_FUNC_VALUE "func_true" -class CZkCameraImage +class lpCameraImage { public: - CZkCameraImage(); - ~CZkCameraImage(); + lpCameraImage(); + ~lpCameraImage(); int CopyCameraObject(ICameraObject* pCamObj); int CopyCameraObject2(ICameraObject* pCamObj);//no combine and maybe use QImage diff --git a/src/lpCoreCtrl/lpThread.cpp b/src/lpCoreCtrl/lpThread.cpp new file mode 100644 index 0000000..d3e4114 --- /dev/null +++ b/src/lpCoreCtrl/lpThread.cpp @@ -0,0 +1,54 @@ +#include "lpThread.h" + +lpThread::lpThread(QObject *parent) : QThread(parent) +{ + +} + +lpThread::lpThread(TaskFunc func, QObject *parent /*= nullptr*/): QThread(parent) +{ + _func = func; + m_bIsRunning = false; + m_bRunSignal = false; +} + +lpThread::~lpThread() +{ + +} + +void lpThread::StartThread() +{ + if( !m_bIsRunning ) + { + m_bRunSignal = true; + m_bIsRunning = true; + start(); + } +} + +void lpThread::EndThread() +{ + m_bRunSignal = false; + wait(); +// quit(); +// while(m_bIsRunning ) +// { +// QThread::msleep(25); +// } +} + +void lpThread::run() +{ + m_bIsRunning = true; + while( m_bRunSignal ) + { + bool bFlag = false; + if (_func) + bFlag = _func(); + if (bFlag == false) + msleep(25); + //... wait signal or condition + } + m_bIsRunning = false; +} \ No newline at end of file diff --git a/src/lpCoreCtrl/qtpthreadbase.h b/src/lpCoreCtrl/lpThread.h similarity index 59% rename from src/lpCoreCtrl/qtpthreadbase.h rename to src/lpCoreCtrl/lpThread.h index cdad542..eddd8ce 100644 --- a/src/lpCoreCtrl/qtpthreadbase.h +++ b/src/lpCoreCtrl/lpThread.h @@ -4,11 +4,14 @@ #include "baseInclude.h" #include -class QTpThreadBase : public QThread +#include +typedef std::function TaskFunc; +class lpThread : public QThread { public: - QTpThreadBase(QObject *parent); - ~QTpThreadBase(); + lpThread(QObject *parent = nullptr); + lpThread(TaskFunc func,QObject *parent = nullptr); + ~lpThread(); void StartThread(); void EndThread(); @@ -19,6 +22,8 @@ private: private: bool m_bRunSignal; bool m_bIsRunning; +private: + TaskFunc _func; }; #endif // QTPTHREADBASE_H diff --git a/src/lpCoreCtrl/qtpthreadbase.cpp b/src/lpCoreCtrl/qtpthreadbase.cpp deleted file mode 100644 index c5a5749..0000000 --- a/src/lpCoreCtrl/qtpthreadbase.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include "qtpthreadbase.h" - -QTpThreadBase::QTpThreadBase(QObject *parent) - : QThread(parent) -{ - m_bIsRunning = false; - m_bRunSignal = false; -} - -QTpThreadBase::~QTpThreadBase() -{ - -} - - -void QTpThreadBase::StartThread() -{ - if( !m_bIsRunning ) - { - m_bRunSignal = true; - m_bIsRunning = true; - start(); - } -} - -void QTpThreadBase::EndThread() -{ - m_bRunSignal = false; - while(m_bIsRunning ) - { - QThread::msleep(25); - } -} - -void QTpThreadBase::run() -{ - m_bIsRunning = true; - while( m_bRunSignal ) - { - if( !loop() ) - { - break; - } - //... wait signal or condition - } - m_bIsRunning = false; -} \ No newline at end of file diff --git a/src/lpCoreCtrl/qtpthreadimage.cpp b/src/lpCoreCtrl/qtpthreadimage.cpp deleted file mode 100644 index a4dc8b4..0000000 --- a/src/lpCoreCtrl/qtpthreadimage.cpp +++ /dev/null @@ -1,69 +0,0 @@ -#include "qtpthreadimage.h" -#include "globalCoreCtrl.h" -#include "CoreCtrl.h" -#include - -QTpThreadImage::QTpThreadImage(class CCoreCtrl* pCtrl, class IDetectorEngine* pDE /*= NULL*/,QObject *parent /* = NULL */) - : QTpThreadBase(parent) - , m_pCoreCtrl(pCtrl) - , m_objImage(pCtrl) - , m_pDE(pDE) -{ - -} - -QTpThreadImage::~QTpThreadImage() -{ - LOG_SPIDER::FreeLog(); -} - -bool QTpThreadImage::loop() -{ - QTime timespan; - - timespan.start(); - CZkCameraImage* pCamImage = m_pCoreCtrl->m_gpCameraPool->IPopCameraImage(); - int span = timespan.elapsed(); - if (span > 100) - { - qWarning() << "Pop image from poll cost " << span << " MSecs" - << " - " __FUNCTION__; - } - - if( NULL != pCamImage ) - { - { - // send image to UI - timespan.restart(); - //TODO show Image -// m_pCoreCtrl->ShowCameraImage(pCamImage->Serial() -// , pCamImage->FrameNumber() -// , pCamImage->ToQImage() -// , pCamImage->Stamp() -// , 0 -// , QString::fromUtf8(pCamImage->FileName()));//(pCamImage); -// -// qDebug() << "Show camera image to UI cost " << timespan.elapsed() << " MSecs" -// << " - " __FUNCTION__; - } - - { - // Algorithm process image - timespan.restart(); - m_objImage.SetCameraImage(pCamImage); - m_pCoreCtrl->m_gpImgProc->IImageProcess(&m_objImage, m_pDE); - qDebug() << "Process Image(ID:" << pCamImage->FrameNumber() - << ") cost " << timespan.elapsed() << " MSecs" - << " - " __FUNCTION__; - } - //release CameraImage - m_objImage.SetCameraImage(NULL); - m_pCoreCtrl->m_gpCameraPool->IFreeCameraImage(pCamImage); - } - else - { - QTpThreadBase::loop(); - } - - return true; -} \ No newline at end of file diff --git a/src/lpCoreCtrl/qtpthreadimage.h b/src/lpCoreCtrl/qtpthreadimage.h deleted file mode 100644 index aced8b5..0000000 --- a/src/lpCoreCtrl/qtpthreadimage.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef QTPTHREADIMAGE_H -#define QTPTHREADIMAGE_H - -#include "qtpthreadbase.h" -#include "ImageObject.h" -#include "LogBySpider.h" - -class QTpThreadImage : public QTpThreadBase -{ -public: - QTpThreadImage(class CCoreCtrl* pCtrl, class IDetectorEngine* pDE = NULL ,QObject *parent = NULL); - ~QTpThreadImage(); -private: - virtual bool loop(); -private: - class CCoreCtrl* m_pCoreCtrl; - class IDetectorEngine* m_pDE; - CImageObject m_objImage; -}; - -#endif // QTPTHREADIMAGE_H diff --git a/src/lpCoreCtrl/tpCamera/CameraPool.cpp b/src/lpCoreCtrl/tpCamera/CameraPool.cpp index 12c4106..7fb7a45 100644 --- a/src/lpCoreCtrl/tpCamera/CameraPool.cpp +++ b/src/lpCoreCtrl/tpCamera/CameraPool.cpp @@ -1,10 +1,10 @@ #include "CameraPool.h" #include #include "callbackFunc.h" +#include "lpCameraConfig.h" CCameraPool::CCameraPool(void) - : m_thdTrigger(this) - , m_libs("") + : m_libs("") { m_nTriggerMode = DEV_TRIGGER_MODE_STOP; m_nFrameRate = 0; @@ -19,27 +19,27 @@ CCameraPool::~CCameraPool(void) int CCameraPool::InitPool() { int nRet = 0;//IOpenDevices(true); - m_thdTrigger.StartTrigger(); +// m_thdTrigger.StartTrigger(); return nRet; } void CCameraPool::FreePool() { - m_thdTrigger.EndTrigger(); +// m_thdTrigger.EndTrigger(); ICloseDevices(); IDeleteDameraes(); } int CCameraPool::ICreateCameraes() { - QList keys;// = gpGlobalCamera->CameraKeys();//cameraes.keys(); + QList keys = lpCameraConfig::instance()->CameraKeys(); for (int i = 0; i < keys.size(); ++i) { if (m_cameraes.contains(keys[i])) { continue; } - ICameraObject* pObject;// = m_libs.Create(gpGlobalCamera->CameraOption(keys[i]), this); + ICameraObject* pObject = m_libs.Create(lpCameraConfig::instance()->CameraOption(keys[i]), this); if (NULL == pObject) { continue; @@ -119,7 +119,7 @@ bool CCameraPool::IDeleteCamera(const QString& strSerial) m_libs.Delete(pCamera); } m_cameraes.remove(strSerial); - // gpGlobalCamera->delCameraOption(strSerial); + lpCameraConfig::instance()->delCameraOption(strSerial); return true; } @@ -132,10 +132,10 @@ bool CCameraPool::IAddCamera(const QString& strName, const TP_CAMERA_OPTION& cam if (!bret) return bret; } - //gpGlobalCamera->updateCameraOption(strName, camOpt); + lpCameraConfig::instance()->updateCameraOption(strName, camOpt); if (bNew){ - ICameraObject* pCamObj;// = m_libs.Create(gpGlobalCamera->CameraOption(strName), this); + ICameraObject* pCamObj = m_libs.Create(lpCameraConfig::instance()->CameraOption(strName), this); if (pCamObj) { pCamObj->m_pCamOpt->status = TP_CAMERA_STATUS_INITED; @@ -329,27 +329,27 @@ void CCameraPool::DeviceLost(const QString& strName) QList CCameraPool::ICameraKeys() { - return QList();// gpGlobalCamera->CameraKeys(); + return lpCameraConfig::instance()->CameraKeys(); } QList CCameraPool::ICameraKeysOrderByIds() { - return QList();// gpGlobalCamera->CameraKeysOrderByIds(); + return lpCameraConfig::instance()->CameraKeysOrderByIds(); } bool CCameraPool::ICameraOption(const QString& strSerial, TP_CAMERA_OPTION& camOpt) { - return false;// gpGlobalCamera->CameraOption(strSerial, camOpt); + return lpCameraConfig::instance()->CameraOption(strSerial, camOpt); } bool CCameraPool::ICameraOptionByKey(const QString& strSerial, TP_CAMERA_OPTION& camOpt) { - return false;//gpGlobalCamera->CameraOptionByKey(strSerial, camOpt); + return lpCameraConfig::instance()->CameraOptionByKey(strSerial, camOpt); } bool CCameraPool::ISetCameraOption(const QString& strSerial, const TP_CAMERA_OPTION& camOpt) { - bool bRet = false;//gpGlobalCamera->SetCameraOption(strSerial, camOpt); + bool bRet = lpCameraConfig::instance()->SetCameraOption(strSerial, camOpt); if (bRet) { ICameraObject* pCam = m_cameraes.value(strSerial, NULL); @@ -397,19 +397,19 @@ void CCameraPool::ISetTriggerMode(emTpDeviceTriggerMode mode, emTpTriggerDirecti // m_thdTrigger.LockWorked(); // m_cameraes.iterateCall(cameraSetTriggerMode, &gGlobalPoolOption); IStartDevices(); - m_thdTrigger.UnlockWorked(); +// m_thdTrigger.UnlockWorked(); //begin or end trigger's thread if( DEV_TRIGGER_MODE_AUTO != mode && DEV_TRIGGER_MODE_FIXED_AUTO != mode ) { //m_thdTrigger.EndThread(); - m_thdTrigger.SetAutoTrigger(false); +// m_thdTrigger.SetAutoTrigger(false); } else { - m_thdTrigger.SetFrame(nFrameRate); +// m_thdTrigger.SetFrame(nFrameRate); //m_thdTrigger.StartTrigger(); - m_thdTrigger.SetAutoTrigger(true); +// m_thdTrigger.SetAutoTrigger(true); } } @@ -515,7 +515,7 @@ void CCameraPool::cameraSetProperty(class ICameraObject*& pCam, void* pData) pCam->ISetProperty((TP_CAMERA_PROPERTY*)pData); } -CZkCameraImage* CCameraPool::IPopCameraImage() +lpCameraImage* CCameraPool::IPopCameraImage() { return m_imagesList.takeFirst(NULL); } @@ -523,14 +523,14 @@ CZkCameraImage* CCameraPool::IPopCameraImage() ////////////////////////////////////////////////////////////////////////////////////////////// int CCameraPool::createDeviceByOptiones() { - QList keys;// = gpGlobalCamera->CameraKeys();//cameraes.keys(); + QList keys = lpCameraConfig::instance()->CameraKeys(); for( int i = 0; i < keys.size(); ++i ) { if( m_cameraes.contains(keys[i]) ) { continue; } - ICameraObject* pObject;// = m_libs.Create(gpGlobalCamera->CameraOption(keys[i]), this); + ICameraObject* pObject = m_libs.Create(lpCameraConfig::instance()->CameraOption(keys[i]), this); if( NULL == pObject ) { continue; @@ -669,10 +669,10 @@ int CCameraPool::IPushCameraData(ICameraObject* pCamObj) // pCamObj->SaveToFile(); - CZkCameraImage *pImage = m_imagesMerging.value(pCamObj->m_pCamOpt->uniqueName, NULL); + lpCameraImage *pImage = m_imagesMerging.value(pCamObj->m_pCamOpt->uniqueName, NULL); if (NULL == pImage) { - pImage = new CZkCameraImage(); + pImage = new lpCameraImage(); } int nRet = 0; if (NULL != pImage) @@ -764,7 +764,7 @@ int CCameraPool::IPushCameraData2(ICameraObject* pCamObj) // pCamObj->SaveToFile(); // - CZkCameraImage* pImage = new CZkCameraImage(); + lpCameraImage* pImage = new lpCameraImage(); if (NULL == pImage) { return 0; @@ -794,14 +794,14 @@ char* CCameraPool::IGetMainPath() { return nullptr;// gpGlobalCamera->m_pGlobalData->tgdMainPath; } -void CCameraPool::IFreeCameraImage(CZkCameraImage *pCamImg) +void CCameraPool::IFreeCameraImage(lpCameraImage *pCamImg) { delete pCamImg; } QMap CCameraPool::IGetCamShowNames() { - return QMap();// gpGlobalCamera->GetCamShowNames(); + return lpCameraConfig::instance()->GetCamShowNames(); } void CCameraPool::ISetCameraEncode(INT64 code, INT64 rate) diff --git a/src/lpCoreCtrl/tpCamera/CameraPool.h b/src/lpCoreCtrl/tpCamera/CameraPool.h index a3269b7..e51bd8c 100644 --- a/src/lpCoreCtrl/tpCamera/CameraPool.h +++ b/src/lpCoreCtrl/tpCamera/CameraPool.h @@ -64,11 +64,11 @@ private: virtual void ISnapImage(const QStringList& camKeys); virtual void ISendSoftTrigger(const QStringList& camKeys); // virtual QList ICameraWins(); - virtual CZkCameraImage* IPopCameraImage(); + virtual lpCameraImage* IPopCameraImage(); virtual int ICameraImages() { return m_imagesList.size(); } - virtual void IFreeCameraImage(CZkCameraImage *pCamImg); + virtual void IFreeCameraImage(lpCameraImage *pCamImg); /////////////////////////////////////////////////////////////////////////////////////// virtual void ISetCameraProperty(const QString& camera, emTpCameraProperty property, long nValue); virtual void ISetCameraProperty(const QString& camera, TP_CAMERA_PROPERTY& property); @@ -86,7 +86,7 @@ private: m_imagesList.clear(iterateCallImageErase, NULL); m_imagesMerging.clear(iterateCallImageErase, NULL); } - static void iterateCallImageErase(class CZkCameraImage*& pImage, void* pData) { + static void iterateCallImageErase(class lpCameraImage*& pImage, void* pData) { delete pImage; } //using class ICameraObject @@ -114,9 +114,9 @@ private: static void camerasPausePush(class ICameraObject*& pCam, void* pData); private: //**the key is unique name, not serial number** - QZkMutexMap m_imagesMerging; - QZkMutexList m_imagesList; - CTriggerThread m_thdTrigger; + QZkMutexMap m_imagesMerging; + QZkMutexList m_imagesList; + //CTriggerThread m_thdTrigger; emTpDeviceTriggerMode m_nTriggerMode; long m_nFrameRate; ////////////////////////////////////////////////////////////// diff --git a/src/lpCoreCtrl/tpCamera/globalCamera.cpp b/src/lpCoreCtrl/tpCamera/lpCameraConfig.cpp similarity index 70% rename from src/lpCoreCtrl/tpCamera/globalCamera.cpp rename to src/lpCoreCtrl/tpCamera/lpCameraConfig.cpp index a869af0..2dab387 100644 --- a/src/lpCoreCtrl/tpCamera/globalCamera.cpp +++ b/src/lpCoreCtrl/tpCamera/lpCameraConfig.cpp @@ -1,29 +1,23 @@ #include -#include "globalCamera.h" -#include "ZkCameraImage.h" +#include "lpCameraConfig.h" #include #include - -const char CGlobalCamera::cs_szCfgName[] = "camera"; -CGlobalCamera::CGlobalCamera(const CAMERA_IN_PARAM* pInParam) - :m_mtxCam(QMutex::Recursive) +const char lpCameraConfig::cs_szCfgName[] = "camera"; +lpCameraConfig::lpCameraConfig() { - m_pCallback = pInParam->pCallback; - m_pGlobalData = pInParam->pGlobalData; readConfig(); - readSerials(); } -CGlobalCamera::~CGlobalCamera() +lpCameraConfig::~lpCameraConfig() { releaseConfig(); } -bool CGlobalCamera::CameraOption(const QString& serials, TP_CAMERA_OPTION& camOpt) +bool lpCameraConfig::CameraOption(const QString& serials, TP_CAMERA_OPTION& camOpt) { // camOpt.serials = serials; return m_cameraesOption.iterateCall(copyCameraOptionBySerial, &camOpt); } -bool CGlobalCamera::copyCameraOptionBySerial(const QString& key, TP_CAMERA_OPTION*& pCamOpt, void* pData) +bool lpCameraConfig::copyCameraOptionBySerial(const QString& key, TP_CAMERA_OPTION*& pCamOpt, void* pData) { TP_CAMERA_OPTION* pDes = (TP_CAMERA_OPTION*)pData; if (pCamOpt->uniqueName == pDes->uniqueName) @@ -34,18 +28,18 @@ bool CGlobalCamera::copyCameraOptionBySerial(const QString& key, TP_CAMERA_OPTIO return false; } -bool CGlobalCamera::CameraOptionByKey(const QString& sKey, TP_CAMERA_OPTION& camOpt) +bool lpCameraConfig::CameraOptionByKey(const QString& sKey, TP_CAMERA_OPTION& camOpt) { return m_cameraesOption.valueCall(sKey, copyCameraOptionByKey, &camOpt); } -void CGlobalCamera::copyCameraOptionByKey(const QString& key, TP_CAMERA_OPTION*& pCamOpt, void* pData) +void lpCameraConfig::copyCameraOptionByKey(const QString& key, TP_CAMERA_OPTION*& pCamOpt, void* pData) { TP_CAMERA_OPTION* pDes = (TP_CAMERA_OPTION*)pData; *pDes = *pCamOpt; } -bool CGlobalCamera::SetCameraOption(const QString& sKey, const TP_CAMERA_OPTION& camOpt) +bool lpCameraConfig::SetCameraOption(const QString& sKey, const TP_CAMERA_OPTION& camOpt) { TP_CAMERA_OPTION* pOpt = m_cameraesOption.value(sKey, NULL); if (NULL == pOpt) @@ -64,7 +58,7 @@ bool CGlobalCamera::SetCameraOption(const QString& sKey, const TP_CAMERA_OPTION& return true; } -bool CGlobalCamera::SaveCameraOption(const TP_CAMERA_OPTION& camOpt) +bool lpCameraConfig::SaveCameraOption(const TP_CAMERA_OPTION& camOpt) { QJsonObject jsonDevices = m_jsonCamera.value("devices").toObject(); if (jsonDevices.isEmpty()) @@ -84,14 +78,13 @@ bool CGlobalCamera::SaveCameraOption(const TP_CAMERA_OPTION& camOpt) return true; } -void CGlobalCamera::readConfig() +void lpCameraConfig::readConfig() { int nError; //read config from ".json" file QString szFileName(""/*m_pGlobalData->tgdMainPath*/); szFileName.append("./config/"/*m_pGlobalData->tgdFolderNames[TP_FOLDER_NAME_CONFIG]*/).append(cs_szCfgName).append(TP_STR::cszJsonSuffix); // szFileName.append(TP_STR::cszCfgFolder) - QMutexLocker locker(&m_mtxCam); QJsonObject objJson = m_jsonCamera = QZkJsonParser::ReadJsonObject(szFileName, &nError); tpDebugOut("camera.json paths: %s", szFileName.toLocal8Bit().data()); tpDebugOut("read camera.json result: %d", nError); @@ -108,13 +101,7 @@ void CGlobalCamera::readConfig() // QJsonValue value = objJson["devices"]; - QJsonObject userJson = getAppJsonUser(); - QJsonArray objEnableCameras = userJson["enable_cameras"].toArray(); - QStringList enableCamList; - for (int i = 0; i < objEnableCameras.size(); ++i) - { - enableCamList.append(objEnableCameras[i].toString()); - } + if (!value.isUndefined() && value.isObject()) { QJsonObject objDevices = value.toObject(); @@ -145,7 +132,7 @@ void CGlobalCamera::readConfig() QJsonValue tempV = objCam.value("format"); if (tempV.isString()) { - pCamOpt->format = CZkCameraImage::FromString(tempV.toString()); + pCamOpt->format = lpCameraImage::FromString(tempV.toString()); } else { @@ -188,9 +175,6 @@ void CGlobalCamera::readConfig() pCamOpt->macAddress = objCam.value("mac_address").toString(); pCamOpt->bAutoPush = objCam.value("auto_push").toInt(1); pCamOpt->bAutoOpen = objCam.value("auto_open").toBool(true); - if (!enableCamList.contains(it.key())){ - pCamOpt->bAutoOpen = false; - } pCamOpt->cameraFilePath = objCam.value("camera_file").toString(); if (objCam.value("algorithm_dll").toDouble()) @@ -209,11 +193,11 @@ void CGlobalCamera::readConfig() } } -void CGlobalCamera::checkFolder(QString& sFolder) +void lpCameraConfig::checkFolder(QString& sFolder) { if (sFolder.startsWith(".\\")) { - sFolder.replace(".\\", m_pGlobalData->tgdMainPath); + //sFolder.replace(".\\", m_pGlobalData->tgdMainPath); } if (!sFolder.endsWith('\\')) { @@ -221,18 +205,18 @@ void CGlobalCamera::checkFolder(QString& sFolder) } } -void CGlobalCamera::releaseConfig(const QString& key /* = NULL */) +void lpCameraConfig::releaseConfig(const QString& key /* = NULL */) { m_cameraesOption.clear(releaseCameraOption); } -void CGlobalCamera::releaseCameraOption(const QString& key, TP_CAMERA_OPTION*& pCamOpt, void* pData) +void lpCameraConfig::releaseCameraOption(const QString& key, TP_CAMERA_OPTION*& pCamOpt, void* pData) { delete pCamOpt; } -QList CGlobalCamera::CameraKeysOrderByIds() +QList lpCameraConfig::CameraKeysOrderByIds() { QList options = m_cameraesOption.values(); qSort(options.begin(), options.end(), optionCompare); @@ -244,12 +228,12 @@ QList CGlobalCamera::CameraKeysOrderByIds() return strList; } -bool CGlobalCamera::optionCompare(TP_CAMERA_OPTION* op1, TP_CAMERA_OPTION* op2) +bool lpCameraConfig::optionCompare(TP_CAMERA_OPTION* op1, TP_CAMERA_OPTION* op2) { return (op1->id < op2->id); } -QMap CGlobalCamera::GetCamShowNames() +QMap lpCameraConfig::GetCamShowNames() { QMap knMap; for (QZkMutexMap::iterator it = m_cameraesOption.begin(); it != m_cameraesOption.end(); ++it) @@ -259,24 +243,8 @@ QMap CGlobalCamera::GetCamShowNames() return knMap; } -void CGlobalCamera::readSerials() -{ -#ifdef _USE_CAMERA_SERIAL_ENCRYPTO - QString szFileName(m_pGlobalData->tgdMainPath); - szFileName.append("serials.dat"); - QZkSerialNumbers serials; - QList bytes = serials.AddFileName(szFileName); - for (QList::iterator it = bytes.begin(); it != bytes.end(); ++it) - { - m_serialsList.append(QString::fromUtf8(*it)); - } -#endif -} - -void CGlobalCamera::delCameraOption(const QString& serials) +void lpCameraConfig::delCameraOption(const QString& serials) { - QMutexLocker locker(&m_mtxCam); - TP_CAMERA_OPTION* pcamOpt = m_cameraesOption.value(serials); if (pcamOpt){ m_cameraesOption.remove(serials); @@ -285,11 +253,8 @@ void CGlobalCamera::delCameraOption(const QString& serials) } } -void CGlobalCamera::updateCameraOption(const QString& serials, const TP_CAMERA_OPTION& camOpt) +void lpCameraConfig::updateCameraOption(const QString& serials, const TP_CAMERA_OPTION& camOpt) { - QMutexLocker locker(&m_mtxCam); - - // update if exist, otherwise new one. if (m_cameraesOption.contains(serials)) { TP_CAMERA_OPTION* pCamOpt = m_cameraesOption.value(serials); @@ -307,31 +272,3 @@ void CGlobalCamera::updateCameraOption(const QString& serials, const TP_CAMERA_O pCamOpt->pSerials = &m_serialsList; m_cameraesOption.insert(pCamOpt->uniqueName, pCamOpt); } - -QJsonObject CGlobalCamera::getAppJsonUser() -{ - QJsonObject userJson; - - QString strUiPath(m_pGlobalData->tgdMainPath); - strUiPath.append(m_pGlobalData->tgdFolderNames[TP_FOLDER_NAME_UI]); - - QString strAppJsonPath(strUiPath); - strAppJsonPath.append(QCoreApplication::applicationName()); -#ifdef _DEBUG - if (strAppJsonPath.endsWith('d')) - { - strAppJsonPath.chop(1); - } -#endif - strAppJsonPath.append(".json"); - if (!QFile::exists(strAppJsonPath)) - { - strAppJsonPath = strUiPath + "app.json"; - } - - int nerr; - QJsonObject objJson = QZkJsonParser::ReadJsonObject(strAppJsonPath, &nerr); - - userJson = objJson["user"].toObject(); - return userJson; -} diff --git a/src/lpCoreCtrl/tpCamera/globalCamera.h b/src/lpCoreCtrl/tpCamera/lpCameraConfig.h similarity index 70% rename from src/lpCoreCtrl/tpCamera/globalCamera.h rename to src/lpCoreCtrl/tpCamera/lpCameraConfig.h index d03ada6..a63d067 100644 --- a/src/lpCoreCtrl/tpCamera/globalCamera.h +++ b/src/lpCoreCtrl/tpCamera/lpCameraConfig.h @@ -9,12 +9,14 @@ #include #include "QZkMutexMap.h" #include "QZkMutexList.h" +#include "lp_singleton_base.h" -class CGlobalCamera +/*配置相机 及相机的相关属性*/ +class lpCameraConfig:public lp_singleton_base { public: - CGlobalCamera(const CAMERA_IN_PARAM* pInParam); - ~CGlobalCamera(); + lpCameraConfig(); + ~lpCameraConfig(); bool CameraOption(const QString& serials, TP_CAMERA_OPTION& camOpt); bool CameraOptionByKey(const QString& sKey, TP_CAMERA_OPTION& camOpt); bool SetCameraOption(const QString& sKey, const TP_CAMERA_OPTION& camOpt); @@ -30,34 +32,21 @@ public: void delCameraOption(const QString& serials); void updateCameraOption(const QString& serials, const TP_CAMERA_OPTION& camOpt); public: -// TP_GLOBAL_DATA* m_pGlobalData; - ICameraCallback* m_pCallback; TP_CAMERAPOOL_OPTION m_optPool; private: void readConfig(); void releaseConfig(const QString& key = NULL); void checkFolder(QString& sFolder); - void readSerials(); - QJsonObject getAppJsonUser(); static void releaseCameraOption(const QString& key, TP_CAMERA_OPTION*& pCamOpt, void* pData); static bool copyCameraOptionBySerial(const QString& key, TP_CAMERA_OPTION*& pCamOpt, void* pData); static void copyCameraOptionByKey(const QString& key, TP_CAMERA_OPTION*& pCamOpt, void* pData); static bool optionCompare(TP_CAMERA_OPTION* op1, TP_CAMERA_OPTION* op2); private: - QMutex m_mtxCam; const static char cs_szCfgName[]; QZkMutexMap m_cameraesOption; QJsonObject m_jsonCamera; QStringList m_serialsList; }; -// extern class CGlobalCamera* gpGlobalCameraZZZ; -// -// #define gpGlobalCamera gpGlobalCameraZZZ -// -// #define gpGlobalData gpGlobalCamera->m_pGlobalData -// #define gpGlobalCamCallback gpGlobalCamera->m_pCallback -// #define callCamCallback(fc, defaultReturn, ...) (NULL != gpGlobalCamCallback) ? gpGlobalCamCallback->##fc##(__VA_ARGS__) : defaultReturn -// #define gGlobalPoolOption gpGlobalCamera->m_optPool #endif \ No newline at end of file diff --git a/src/lpCoreCtrl/tpCamera/tpCamera.cpp b/src/lpCoreCtrl/tpCamera/tpCamera.cpp deleted file mode 100644 index 8b9195a..0000000 --- a/src/lpCoreCtrl/tpCamera/tpCamera.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// #include "CameraPool.h" -// #include "globalCamera.h" -// -// #ifdef TPCAMERA_EXPORTS -// #define TPCAMERA_API extern "C" __declspec(dllexport) -// #else -// #define TPCAMERA_API extern "C" -// #endif -// -// CGlobalCamera* gpGlobalCameraZZZ = NULL; -// CCameraPool *gpCameraPool = NULL; -// -// -// //don't change the names of these global functions -// TPCAMERA_API void* Lib_Camera_Init(void* inParam) -// { -// CAMERA_IN_PARAM cinParam = {0}; -// if( NULL != inParam ) -// { -// std::memcpy(&cinParam, inParam, sizeof(CAMERA_IN_PARAM)); -// } -// if( NULL == gpGlobalCamera ) -// { -// gpGlobalCamera = new CGlobalCamera(&cinParam); -// } -// // -// if( NULL == gpCameraPool ) -// { -// gpCameraPool = new CCameraPool(); -// } -// if( NULL != gpCameraPool ) -// { -// gpCameraPool->InitPool(); -// } -// return gpCameraPool; -// } -// -// TPCAMERA_API void Lib_Camera_Free() -// { -// if( NULL != gpCameraPool ) -// { -// gpCameraPool->FreePool(); -// delete gpCameraPool; -// gpCameraPool = NULL; -// } -// if( NULL != gpGlobalCamera ) -// { -// delete gpGlobalCamera; -// gpGlobalCamera = NULL; -// } -// } diff --git a/src/lpCoreCtrl/tpCamera/triggerthread.cpp b/src/lpCoreCtrl/tpCamera/triggerthread.cpp index 13e92e0..60c98b0 100644 --- a/src/lpCoreCtrl/tpCamera/triggerthread.cpp +++ b/src/lpCoreCtrl/tpCamera/triggerthread.cpp @@ -1,9 +1,9 @@ #include "triggerthread.h" #include "CameraPool.h" -#include "globalCamera.h" + CTriggerThread::CTriggerThread(class CCameraPool* pPool, QObject *parent /* = NULL */) - : QTpThreadBase(parent) + : lpThread(parent) , m_pPool(pPool) { m_msecOfInterval = 0; @@ -29,9 +29,8 @@ void CTriggerThread::SetFrame(long nFrameRate) } void CTriggerThread::StartTrigger() { - EndThread(); m_LastTriggerTime = QTime::currentTime(); - StartThread(); + } void CTriggerThread::EndTrigger() diff --git a/src/lpCoreCtrl/tpCamera/triggerthread.h b/src/lpCoreCtrl/tpCamera/triggerthread.h index a6b4768..a8ab7e3 100644 --- a/src/lpCoreCtrl/tpCamera/triggerthread.h +++ b/src/lpCoreCtrl/tpCamera/triggerthread.h @@ -1,12 +1,10 @@ #ifndef TRIGGERTHREAD_H #define TRIGGERTHREAD_H -#include "qtpthreadbase.h" #include #include -#include "globalCamera.h" - -class CTriggerThread : public QTpThreadBase +#include "lpThread.h" +class CTriggerThread : public lpThread { public: CTriggerThread(class CCameraPool* pPool, QObject *parent = NULL); diff --git a/src/lpCoreCtrl/tpCoreCtrl.cpp b/src/lpCoreCtrl/tpCoreCtrl.cpp deleted file mode 100644 index e03cf15..0000000 --- a/src/lpCoreCtrl/tpCoreCtrl.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include "CoreCtrl.h" - -#ifdef TPCORECTRL_EXPORTS -#define TPCORECTRL_API extern "C" __declspec(dllexport) -#else -#define TPCORECTRL_API extern "C" -#endif - -#include "ModulesManager.h" -#include "globalCoreCtrl.h" -#include - -//CModulesManager gMdlesMgr; -//CGlobalCoreCtrl* gpData = NULL; - -class CCoreCtrl* gpCoreCtrl = NULL; - -TPCORECTRL_API void* Lib_CoreCtrl_Init(void* inParam) -{ -// CORE_CTRL_IN_PARAM* pCciParam = (CORE_CTRL_IN_PARAM*)inParam; -// gpData = new CGlobalCoreCtrl(pCciParam); -// if( NULL == gpData ) -// { -// return NULL; -// } - -// if( gMdlesMgr.LoadModules() <= 0 ) -// { -// return NULL; -// } - ////////////////////////////////////////////////////////////////// - if( NULL == gpCoreCtrl ) - { - gpCoreCtrl = new CCoreCtrl(inParam); - } - return gpCoreCtrl; -} - -TPCORECTRL_API void Lib_CoreCtrl_Free() -{ - if( NULL != gpCoreCtrl ) - { - gpCoreCtrl->IFreeCore(); - delete gpCoreCtrl; - gpCoreCtrl = NULL; - } - ///////////////////////////////////////////////// -// gMdlesMgr.FreeModules(); -// if( NULL != gpData ) -// { -// delete gpData; -// gpData = NULL; -// } -} diff --git a/src/lpCoreCtrl/tpImgProc/ImgProc.cpp b/src/lpCoreCtrl/tpImgProc/ImgProc.cpp index 4f69c0d..4425f12 100644 --- a/src/lpCoreCtrl/tpImgProc/ImgProc.cpp +++ b/src/lpCoreCtrl/tpImgProc/ImgProc.cpp @@ -6,11 +6,9 @@ #include "zfunctions.h" const char CImgProc::cs_strCfgName[] = "algorithm"; -TP_GLOBAL_DATA* CImgProc::s_pGlobalData = NULL; -CImgProc::CImgProc(IMGPROC_IN_PARAM* pParam) +CImgProc::CImgProc() { - s_pGlobalData = pParam->pGlobalData; m_bIsInited = false; m_nAlgorithmsUsings = 0; m_pDefAlgorithmDll = NULL; @@ -137,23 +135,12 @@ CLoadAlgorithm* CImgProc::createAlgorithmDll(const QString& k, void* pData) { return NULL; } - //TP_ALGORITHM_OPTION* pAlgOpt = (TP_ALGORITHM_OPTION*)pData; QString dllFileName; #ifdef _DEBUG dllFileName.append("tpAlgorithmd"); #else dllFileName.append("tpAlgorithm"); #endif - if (k != "0") - { - dllFileName.append("_").append(k); - } - QString dllPath(s_pGlobalData->tgdDllPath); - if (!ZKF::qtDllExit(dllPath, dllFileName)) - { - dllPath = s_pGlobalData->tgdMainPath; - } - dllFileName = dllPath + dllFileName; if (!pAlgDll->LoadAlg(dllFileName)) { delete pAlgDll; diff --git a/src/lpCoreCtrl/tpImgProc/ImgProc.h b/src/lpCoreCtrl/tpImgProc/ImgProc.h index 478a47e..ba83683 100644 --- a/src/lpCoreCtrl/tpImgProc/ImgProc.h +++ b/src/lpCoreCtrl/tpImgProc/ImgProc.h @@ -8,31 +8,22 @@ class CImgProc : public IImgProc { public: - CImgProc(IMGPROC_IN_PARAM* pParam); + CImgProc(); virtual ~CImgProc(void); - int InitProc(); void FreeProc(); private: virtual int IImageProcess(class IImageObject* pImgObj, class IDetectorEngine* pDE = NULL); virtual class IAlgorithmOption* IGetAlgorithmOption(int nAlgorithm); private: - //static CAlgorithmOption* createAlgorithmOption(const int& k, void* pData); static void releaseAlgorithm(const Qt::HANDLE& k, class IAlgorithm*& v, void* pData); - // static void releaseAlgorithmOption(const int& k, CAlgorithmOption*& v, void* pData); - //class IImageProc* m_pImgProc; public: - static TP_GLOBAL_DATA* s_pGlobalData; const static char cs_strCfgName[]; private: bool m_bIsInited; - //QSqliteAlgorithm m_dbAlg; - //QZkMutexMap m_algorithms; QAtomicInt m_nAlgorithmsUsings; - // QZkMutexMap m_algorithmOptions; - //class CLoadAlgorithm* m_pLibAlgorithm; QZkMutexMap m_algorithmDlls; - CLoadAlgorithm* m_pDefAlgorithmDll;//nAlgorithm = 0; tpAlgorithm.dll + CLoadAlgorithm* m_pDefAlgorithmDll;//nAlgorithm = 0; tpAlgorithm.dll struct tagALGORITHM_API{ class IAlgorithm* pApi; class CLoadAlgorithm* pDll; diff --git a/src/lpCoreCtrl/tpImgProc/tpImgProc.cpp b/src/lpCoreCtrl/tpImgProc/tpImgProc.cpp deleted file mode 100644 index 8929f7c..0000000 --- a/src/lpCoreCtrl/tpImgProc/tpImgProc.cpp +++ /dev/null @@ -1,35 +0,0 @@ -#include "ImgProc.h" -#include "LoadAlgorithm.h" - -#ifdef TPIMGPROC_EXPORTS -#define TPIMGPROC_API extern "C" __declspec(dllexport) -#else -#define TPIMGPROC_API extern "C" -#endif - -CImgProc* gpImgProc = NULL; - -TPIMGPROC_API void* Lib_ImgProc_Init(void* inParam) -{ - IMGPROC_IN_PARAM* pParam = (IMGPROC_IN_PARAM*)inParam; - if( NULL == gpImgProc ) - { - gpImgProc = new CImgProc((IMGPROC_IN_PARAM*)pParam); - if( NULL != gpImgProc ) - { - gpImgProc->InitProc(); - } - } - return gpImgProc; -} - -TPIMGPROC_API void Lib_ImgProc_Free() -{ - if( NULL != gpImgProc ) - { - gpImgProc->FreeProc(); - delete gpImgProc; - gpImgProc = NULL; - } - //CLoadAlgorithm::FreeAlg(); -} \ No newline at end of file diff --git a/src/lpCoreCtrl/tpJsonConfig.h b/src/lpCoreCtrl/tpJsonConfig.h deleted file mode 100644 index c66a429..0000000 --- a/src/lpCoreCtrl/tpJsonConfig.h +++ /dev/null @@ -1,29 +0,0 @@ -/****************************************************************************** - Copyright(C):2015~2018 hzleaper - FileName:$FILE_BASE$.$FILE_EXT$ - Author:zhikun wu - Email:zk.wu@hzleaper.com - Tools:vs2010 pc on company - Created:$DATE$ - History:$DAY$:$MONTH$:$YEAR$ $HOUR$:$MINUTE$ - *******************************************************************************/ -#ifndef __TP_JSON_CONFIG_H -#define __TP_JSON_CONFIG_H - -namespace CAMERA_JSON //camera.json -{ - namespace DEVICES //"devices" - { - - } - namespace POOL //"pool" - { - - } - namespace WINDOWS //"windows" - { - - } -} - -#endif//__TP_JSON_CONFIG_H diff --git a/src/lpMain/CoreCtrl/CDllCoreCtrl.cpp b/src/lpMain/CoreCtrl/CDllCoreCtrl.cpp index b529d3f..3c40f0c 100644 --- a/src/lpMain/CoreCtrl/CDllCoreCtrl.cpp +++ b/src/lpMain/CoreCtrl/CDllCoreCtrl.cpp @@ -4,39 +4,19 @@ #ifdef _USE_LIB_CORECTRL_DLL #include "DllLoader.h" #else -extern "C" void* Lib_CoreCtrl_Init(void* inParam); -extern "C" void Lib_CoreCtrl_Free(); +extern "C" ICoreCtrl* Lib_CoreCtrl_Init(); +extern "C" void Lib_CoreCtrl_Free(ICoreCtrl*); #endif #include "QZkJsonParser.h" -CDllCoreCtrl::CDllCoreCtrl(const ZStringList& szDllPaths, IGuiCallback* pGuiCb,class IDetectorEngine* pDE /*= NULL*/) +CDllCoreCtrl::CDllCoreCtrl(const ZStringList& szDllPaths,class IDetectorEngine* pDE /*= NULL*/) { m_szDllPaths = szDllPaths; - memset(&m_tpGlobal, 0, sizeof(m_tpGlobal)); - m_tpGlobal.tgdpDllPaths = &m_szDllPaths; - if (m_szDllPaths.size() > 0) - { - strncpy(m_tpGlobal.tgdMainPath, m_szDllPaths.last().toUtf8().data(), BASE_MAX_FILE_PATH - 1); - strncpy(m_tpGlobal.tgdUserPath, m_szDllPaths.first().toUtf8().data(), BASE_MAX_FILE_PATH - 1); - strcpy(m_tpGlobal.tgdDllPath, m_tpGlobal.tgdMainPath); - } - QJsonObject jsonUser; - int nerr; - QJsonObject rootBoj = QZkJsonParser::ReadJsonObject(".\\ui\\app.json", &nerr); - QString folderStr = jsonUser.value("config").toString("config\\"); - strcpy(m_tpGlobal.tgdFolderNames[TP_FOLDER_NAME_CONFIG], folderStr.toUtf8().data()); - folderStr = jsonUser.value("pic").toString("pic\\"); - strcpy(m_tpGlobal.tgdFolderNames[TP_FOLDER_NAME_PICTURE], folderStr.toUtf8().data()); - strcpy(m_tpGlobal.tgdFolderNames[TP_FOLDER_NAME_UI], "ui\\"); - CORE_CTRL_IN_PARAM inParam; - inParam.pGlobalData = &m_tpGlobal; - inParam.pCoreSetting = NULL; - inParam.pGuiCb = pGuiCb; #ifdef _USE_LIB_CORECTRL_DLL m_pLibCoreCtrl = new CDllLoaderM("lpCoreCtrl", "Lib_CoreCtrl_Init", "Lib_CoreCtrl_Free", m_szDllPaths); if (NULL != m_pLibCoreCtrl) { - m_pCoreCtrl = (ICoreCtrl*)m_pLibCoreCtrl->ModuleInit(&inParam); + m_pCoreCtrl = (ICoreCtrl*)m_pLibCoreCtrl->ModuleInit(nullptr); if (NULL != m_pCoreCtrl) { m_pCoreCtrl->IInitCore(pDE); @@ -52,7 +32,7 @@ CDllCoreCtrl::CDllCoreCtrl(const ZStringList& szDllPaths, IGuiCallback* pGuiCb,c } #else m_pLibCoreCtrl = NULL; - m_pCoreCtrl = (ICoreCtrl*)Lib_CoreCtrl_Init(&inParam); + m_pCoreCtrl = (ICoreCtrl*)Lib_CoreCtrl_Init(); #endif } @@ -60,14 +40,15 @@ CDllCoreCtrl::~CDllCoreCtrl() { if (NULL != m_pCoreCtrl) { - m_pCoreCtrl->IFreeCore(); #ifdef _USE_LIB_CORECTRL_DLL - if (NULL != m_pLibCoreCtrl) - { - m_pLibCoreCtrl->ModuleFree(); - } + m_pCoreCtrl->IFreeCore(); + delete m_pCoreCtrl; +// if (NULL != m_pLibCoreCtrl) +// { +// m_pLibCoreCtrl->ModuleFree(); +// } #else - Lib_CoreCtrl_Free(); + Lib_CoreCtrl_Free(m_pCoreCtrl); #endif m_pCoreCtrl = NULL; } diff --git a/src/lpMain/CoreCtrl/CDllCoreCtrl.h b/src/lpMain/CoreCtrl/CDllCoreCtrl.h index 6f67279..1486998 100644 --- a/src/lpMain/CoreCtrl/CDllCoreCtrl.h +++ b/src/lpMain/CoreCtrl/CDllCoreCtrl.h @@ -7,10 +7,9 @@ class CDllCoreCtrl { public: - CDllCoreCtrl(const ZStringList& szDllPaths, IGuiCallback* pGuiCb, class IDetectorEngine* pDE /*= NULL*/); + CDllCoreCtrl(const ZStringList& szDllPaths, class IDetectorEngine* pDE /*= NULL*/); ~CDllCoreCtrl(); public: - TP_GLOBAL_DATA m_tpGlobal; class CDllLoaderM* m_pLibCoreCtrl; ICoreCtrl* m_pCoreCtrl; ZStringList m_szDllPaths; diff --git a/tpvs17/lpCoreCtrl/lpCoreConfig.cpp b/tpvs17/lpCoreCtrl/lpCoreConfig.cpp new file mode 100644 index 0000000..782511d --- /dev/null +++ b/tpvs17/lpCoreCtrl/lpCoreConfig.cpp @@ -0,0 +1,16 @@ +#include "lpCoreConfig.h" +#include "QZkJsonParser.h" +void lpCoreConfig::readConfig() +{ + QString strCorePath = "./config/corectrl.json"; + QJsonObject objJson = QZkJsonParser::ReadJsonObject(strCorePath); + + QJsonObject objTmp = objJson["core_setting"].toObject(); + m_CoreSetting.threadsCount = objTmp.value("image_threads").toInt(0); + m_CoreSetting.imageShowType = objTmp.value("show_type").toInt(0); +} + +void lpCoreConfig::writeConfig() +{ + +} diff --git a/tpvs17/lpCoreCtrl/lpCoreConfig.h b/tpvs17/lpCoreCtrl/lpCoreConfig.h new file mode 100644 index 0000000..50be272 --- /dev/null +++ b/tpvs17/lpCoreCtrl/lpCoreConfig.h @@ -0,0 +1,25 @@ +#ifndef _H_LPCORECONFIG_H_ +#define _H_LPCORECONFIG_H_ + +#include "lp_singleton_base.h" +#include +#include "baseStruct.h" + +class lpCoreConfig:public lp_singleton_base +{ +public: + lpCoreConfig() {}; + ~lpCoreConfig() {}; + +public: + void readConfig(); + void writeConfig(); + +public: + std::string m_MainPath; + + TP_CORE_SETTING m_CoreSetting; +}; + +#endif + diff --git a/tpvs17/lpCoreCtrl/lpCoreCtrl.vcxproj b/tpvs17/lpCoreCtrl/lpCoreCtrl.vcxproj index f276086..8a4d7d4 100644 --- a/tpvs17/lpCoreCtrl/lpCoreCtrl.vcxproj +++ b/tpvs17/lpCoreCtrl/lpCoreCtrl.vcxproj @@ -11,49 +11,34 @@ - - - - - - - + - + - - - - - + + - - - - - - - + - + - - + + {784071A9-BF94-4D27-B62E-588ACD7E0633} diff --git a/tpvs17/lpCoreCtrl/lpCoreCtrl.vcxproj.filters b/tpvs17/lpCoreCtrl/lpCoreCtrl.vcxproj.filters index c761fff..a180de0 100644 --- a/tpvs17/lpCoreCtrl/lpCoreCtrl.vcxproj.filters +++ b/tpvs17/lpCoreCtrl/lpCoreCtrl.vcxproj.filters @@ -41,63 +41,36 @@ tpImgProc - - tpImgProc - - - tpCoreCtrl - tpCoreCtrl - - tpCoreCtrl - - - tpCoreCtrl - tpCoreCtrl tpCoreCtrl - - tpCoreCtrl - - - tpCoreCtrl - - - tpCoreCtrl - - - tpCoreCtrl - - - tpCoreCtrl - - - tpCoreCtrl - - - tpCoreCtrl - tpCamera - - tpCamera - tpCamera - - tpCamera - tpCamera + + Source Files + + + Source Files + + + tpCoreCtrl + + + tpCoreCtrl + @@ -106,18 +79,9 @@ tpImgProc - - tpCoreCtrl - tpCoreCtrl - - tpCoreCtrl - - - tpCoreCtrl - tpCoreCtrl @@ -127,30 +91,9 @@ tpCoreCtrl - - tpCoreCtrl - - - tpCoreCtrl - - - tpCoreCtrl - - - tpCoreCtrl - - - tpCoreCtrl - - - tpCoreCtrl - tpCamera - - tpCamera - tpCamera @@ -160,5 +103,17 @@ Header Files + + Header Files + + + Header Files + + + tpCoreCtrl + + + tpCoreCtrl + \ No newline at end of file diff --git a/tpvs17/lpMain/CMainWin.cpp b/tpvs17/lpMain/CMainWin.cpp index 3078c9b..711cbb0 100644 --- a/tpvs17/lpMain/CMainWin.cpp +++ b/tpvs17/lpMain/CMainWin.cpp @@ -710,7 +710,7 @@ bool CMainWin::onInitCoreCtrl() //load coretrl if (NULL == m_pDllCoreCtrl) { - m_pDllCoreCtrl = new CDllCoreCtrl(QStringList(), nullptr, m_pDetectorEngine); + m_pDllCoreCtrl = new CDllCoreCtrl(QStringList(), m_pDetectorEngine); if (NULL == m_pDllCoreCtrl) { return false;