增加线程转换类

master
bobpan 5 years ago
parent 50df55bcaf
commit aca0dea267

@ -8,7 +8,7 @@
#include "lpCameraConfig.h" #include "lpCameraConfig.h"
#include "lpCoreConfig.h" #include "lpCoreConfig.h"
#include "ImageObject.h" #include "ImageObject.h"
#include "QFunctionTransfer.h"
TPCORECTRL_API ICoreCtrl* Lib_CoreCtrl_Init(void) TPCORECTRL_API ICoreCtrl* Lib_CoreCtrl_Init(void)
{ {
CCoreCtrl* gpCoreCtrl = nullptr; CCoreCtrl* gpCoreCtrl = nullptr;
@ -33,6 +33,7 @@ CCoreCtrl::CCoreCtrl(void)
{ {
lpCoreConfig::instance()->readConfig(); lpCoreConfig::instance()->readConfig();
lpCameraConfig::instance(); lpCameraConfig::instance();
QFunctionTransfer::Instance();
m_camDevManager = new CCameraPool();//相机管理 m_camDevManager = new CCameraPool();//相机管理
((CCameraPool*)m_camDevManager)->InitPool(); ((CCameraPool*)m_camDevManager)->InitPool();

@ -2,6 +2,7 @@
#include "CoreCtrl.h" #include "CoreCtrl.h"
#include "zfunctions.h" #include "zfunctions.h"
#include "callbackFunc.h" #include "callbackFunc.h"
#include "QFunctionTransfer.h"
CImageObject::CImageObject(class CCoreCtrl* pCoreCtrl) CImageObject::CImageObject(class CCoreCtrl* pCoreCtrl)
: m_pCoreCtrl(pCoreCtrl) : m_pCoreCtrl(pCoreCtrl)
@ -237,11 +238,14 @@ IAlgorithmShared* CImageObject::IGetShared()
void CImageObject::IVariantMapToUI(const QVariantMap& vMap) void CImageObject::IVariantMapToUI(const QVariantMap& vMap)
{ {
QString strSerial = m_pCamImg->Serial();
if (lpCallBackFunc::instance()->m_ResultCallBackFunc) QFunctionTransfer::Instance()->execInMain([this, strSerial, vMap]() {
{ if (lpCallBackFunc::instance()->m_ResultCallBackFunc)
lpCallBackFunc::instance()->m_ResultCallBackFunc(m_pCamImg->Serial(), vMap); {
} lpCallBackFunc::instance()->m_ResultCallBackFunc(strSerial, vMap);
}
});
} }
const ZStringA& CImageObject::ICameraSerial() const ZStringA& CImageObject::ICameraSerial()

@ -2,6 +2,7 @@
#include <QDebug> #include <QDebug>
#include "callbackFunc.h" #include "callbackFunc.h"
#include "lpCameraConfig.h" #include "lpCameraConfig.h"
#include "QFunctionTransfer.h"
CCameraPool::CCameraPool(void) CCameraPool::CCameraPool(void)
: m_libs("") : m_libs("")
@ -649,10 +650,15 @@ int CCameraPool::IPushCameraData(ICameraObject* pCamObj)
// } // }
// else // else
{ {
if (lpCallBackFunc::instance()->m_ImageCallBackFunc) QString strSerial = pImage->Serial();
{ QImage showImg = pImage->ToQImage();
lpCallBackFunc::instance()->m_ImageCallBackFunc(pImage->Serial(), pImage->ToQImage()); QFunctionTransfer::Instance()->execInMain([this, strSerial, showImg]() {
} if (lpCallBackFunc::instance()->m_ImageCallBackFunc)
{
lpCallBackFunc::instance()->m_ImageCallBackFunc(strSerial, showImg);
}
});
try { try {
//获取算法参数 绑定到图像 //获取算法参数 绑定到图像
if (lpCallBackFunc::instance()->m_GetVariantCallBackFunc) if (lpCallBackFunc::instance()->m_GetVariantCallBackFunc)

@ -0,0 +1,32 @@
#ifndef _H_QFUNCTIONTRANSFER_H_
#define _H_QFUNCTIONTRANSFER_H_
#include <QObject>
#include <functional>
class QFunctionTransfer : public QObject
{
Q_OBJECT
public:
explicit QFunctionTransfer(QObject *parent = 0) {
qRegisterMetaType<std::tr1::function<void()>>("std::tr1::function<void()>");
connect(this, &QFunctionTransfer::comming, this, &QFunctionTransfer::exec, Qt::QueuedConnection);
};
void execInMain(std::tr1::function<void()> f) {
emit this->comming(f);
};
static QFunctionTransfer* Instance() {
static QFunctionTransfer ins;
return &ins;
}
signals:
void comming(std::tr1::function<void()> f);
public slots:
void exec(std::tr1::function<void()> f)
{
f();
};
};
#endif

@ -26,14 +26,30 @@
<ClCompile Include="GeneratedFiles\Debug\moc_CThread.cpp"> <ClCompile Include="GeneratedFiles\Debug\moc_CThread.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile> </ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_QFunctionTransfer.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_CThread.cpp"> <ClCompile Include="GeneratedFiles\Release\moc_CThread.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile> </ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_QFunctionTransfer.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="lpCoreConfig.cpp" /> <ClCompile Include="lpCoreConfig.cpp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\..\src\lpCoreCtrl\callbackFunc.h" /> <ClInclude Include="..\..\src\lpCoreCtrl\callbackFunc.h" />
<ClInclude Include="..\..\src\lpCoreCtrl\CoreCtrl.h" /> <ClInclude Include="..\..\src\lpCoreCtrl\CoreCtrl.h" />
<CustomBuild Include="QFunctionTransfer.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_UNICODE -DWIN32 -DWIN64 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_SERIALPORT_LIB -DQT_SQL_LIB -DTPCORECTRL_LIB -DTPCORECTRL_EXPORTS -D%(PreprocessorDefinitions) "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtNetwork" "-I$(QTDIR)\include\QtSerialPort" "-I$(QTDIR)\include\QtSql" "-I.\..\..\src\lpCoreCtrl" "-I.\..\..\src\lpCoreCtrl\tpCamera" "-I.\..\..\src\lpCoreCtrl\tpImgProc" "-I.\..\..\3part\libzkq\include" "-I.\..\..\3part\openssl\include" "-I.\..\..\3part\tadpole\include\tpBase"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_UNICODE -DWIN32 -DWIN64 -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_SERIALPORT_LIB -DQT_SQL_LIB -DTPCORECTRL_LIB -DTPCORECTRL_EXPORTS -D%(PreprocessorDefinitions) "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtNetwork" "-I$(QTDIR)\include\QtSerialPort" "-I$(QTDIR)\include\QtSql" "-I.\..\..\src\lpCoreCtrl" "-I.\..\..\src\lpCoreCtrl\tpCamera" "-I.\..\..\src\lpCoreCtrl\tpImgProc" "-I.\..\..\3part\libzkq\include" "-I.\..\..\3part\openssl\include" "-I.\..\..\3part\tadpole\include\tpBase"</Command>
</CustomBuild>
<CustomBuild Include="..\..\src\lpCoreCtrl\CThread.h"> <CustomBuild Include="..\..\src\lpCoreCtrl\CThread.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Identity)...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Identity)...</Message>
@ -57,6 +73,10 @@
<ClInclude Include="..\..\src\lpCoreCtrl\lpCameraImage.h" /> <ClInclude Include="..\..\src\lpCoreCtrl\lpCameraImage.h" />
<ClInclude Include="lpCoreConfig.h" /> <ClInclude Include="lpCoreConfig.h" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="GeneratedFiles\Debug\CoreCtrl.moc" />
<None Include="GeneratedFiles\Release\CoreCtrl.moc" />
</ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<ProjectGuid>{784071A9-BF94-4D27-B62E-588ACD7E0633}</ProjectGuid> <ProjectGuid>{784071A9-BF94-4D27-B62E-588ACD7E0633}</ProjectGuid>
<Keyword>Qt4VSv1.0</Keyword> <Keyword>Qt4VSv1.0</Keyword>

@ -80,6 +80,12 @@
<ClCompile Include="GeneratedFiles\Release\moc_CThread.cpp"> <ClCompile Include="GeneratedFiles\Release\moc_CThread.cpp">
<Filter>Generated Files</Filter> <Filter>Generated Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_QFunctionTransfer.cpp">
<Filter>Generated Files</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_QFunctionTransfer.cpp">
<Filter>Generated Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\..\src\lpCoreCtrl\tpImgProc\ImgProc.h"> <ClInclude Include="..\..\src\lpCoreCtrl\tpImgProc\ImgProc.h">
@ -129,5 +135,16 @@
<CustomBuild Include="..\..\src\lpCoreCtrl\CThread.h"> <CustomBuild Include="..\..\src\lpCoreCtrl\CThread.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</CustomBuild> </CustomBuild>
<CustomBuild Include="QFunctionTransfer.h">
<Filter>Header Files</Filter>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<None Include="GeneratedFiles\Debug\CoreCtrl.moc">
<Filter>Generated Files</Filter>
</None>
<None Include="GeneratedFiles\Release\CoreCtrl.moc">
<Filter>Generated Files</Filter>
</None>
</ItemGroup> </ItemGroup>
</Project> </Project>
Loading…
Cancel
Save