修复堡盟相机软触发没有图像的问题,增加相机打开初始化参数设置

master
bobpan 5 years ago
parent d7a3058ec6
commit 6ff677c6ba

@ -108,7 +108,7 @@ void CCameraBaumer::BufferReady(BGAPI2::Buffer * pBuffer)
m_nImageHeight = pBuffer->GetHeight(); m_nImageHeight = pBuffer->GetHeight();
//m_funcFreeBuffer = NULL; //myImageCleanupFunc; //m_funcFreeBuffer = NULL; //myImageCleanupFunc;
m_nFrameNum = pBuffer->GetFrameID();//++;// = pFrame->frameID + 1; m_nFrameNum = pBuffer->GetFrameID();//++;// = pFrame->frameID + 1;
m_pCb->IPushCameraData2(this); m_pCb->IPushCameraData(this);
pImage->Release(); pImage->Release();
pTranImage->Release(); pTranImage->Release();
pBuffer->QueueBuffer(); pBuffer->QueueBuffer();
@ -129,7 +129,7 @@ void CCameraBaumer::BufferReady(BGAPI2::Buffer * pBuffer)
//m_nImageHeight = pBuffer->GetHeight(); //m_nImageHeight = pBuffer->GetHeight();
//m_funcFreeBuffer = NULL; //myImageCleanupFunc; //m_funcFreeBuffer = NULL; //myImageCleanupFunc;
m_nFrameNum = pBuffer->GetFrameID();//++;// = pFrame->frameID + 1; m_nFrameNum = pBuffer->GetFrameID();//++;// = pFrame->frameID + 1;
m_pCb->IPushCameraData2(this); m_pCb->IPushCameraData(this);
//pImage->Release(); //pImage->Release();
//pTranImage->Release(); //pTranImage->Release();
pBuffer->QueueBuffer(); pBuffer->QueueBuffer();
@ -292,6 +292,37 @@ void CCameraBaumer::IStopCamera()
m_bStarted = false; m_bStarted = false;
} }
void CCameraBaumer::InitProperty()
{
if (m_pDevice != nullptr&&m_pCamOpt != nullptr)
{
long iShutter, iMaxShutter, iMinShutter;
//set exposure
{
if (m_pDevice->GetRemoteNodeList()->GetNodePresent("ExposureTime"))
{
m_pDevice->GetRemoteNode("ExposureTime")->SetDouble(m_pCamOpt->exposure);
}
else if (m_pDevice->GetRemoteNodeList()->GetNodePresent("ExposureTimeAbs"))
{
//iShutter = (long)m_pDevice->GetRemoteNode("ExposureTimeAbs")->GetDouble();
iMinShutter = (long)m_pDevice->GetRemoteNode("ExposureTimeAbs")->GetDoubleMin();
iMaxShutter = (long)m_pDevice->GetRemoteNode("ExposureTimeAbs")->GetDoubleMax();
if (m_pCamOpt->exposure < iMinShutter || m_pCamOpt->exposure > iMaxShutter) {
qWarning() << QString("Invalid exposure time value:%1.").arg(m_pCamOpt->exposure)
<< " - " << __FUNCTION__;
return;
}
m_pDevice->GetRemoteNode("ExposureTimeAbs")->SetDouble(m_pCamOpt->exposure);
qDebug() << QString("Set exposure time value:%1 successfully.").arg(m_pCamOpt->exposure)
<< " - " << __FUNCTION__;
}
}
}
}
int CCameraBaumer::ISendSoftTrigger() int CCameraBaumer::ISendSoftTrigger()
{ {
if (NULL == m_pDevice) if (NULL == m_pDevice)

@ -3,8 +3,6 @@
#include "iCameraObject.h" #include "iCameraObject.h"
#include "bgapi2_genicam.hpp" #include "bgapi2_genicam.hpp"
//#include "QZkMutexMap.h"
//#include "LogBySpider.h"
class CCameraBaumer : public ICameraObject class CCameraBaumer : public ICameraObject
{ {
@ -23,6 +21,7 @@ protected:
virtual void IStartPush() {} virtual void IStartPush() {}
virtual void IPausePush() {} virtual void IPausePush() {}
virtual void InitProperty();
virtual int ISendSoftTrigger(); virtual int ISendSoftTrigger();
virtual void ISnapCamera(); virtual void ISnapCamera();
virtual QList<QString> IEnumAvailableCameras(); virtual QList<QString> IEnumAvailableCameras();

@ -753,6 +753,10 @@ bool CCameraPool::ISetWidth(const QString& strSerial, int& width)
TP_CAMERA_PROPERTY nProperty; TP_CAMERA_PROPERTY nProperty;
nProperty.property = TP_CAM_PROPERTY_IMAGE_WIDTH; nProperty.property = TP_CAM_PROPERTY_IMAGE_WIDTH;
nProperty.value = width; nProperty.value = width;
TP_CAMERA_OPTION* opt = lpCameraConfig::instance()->getCameraOption(strSerial);
if (opt) {
opt->width = width;
}
return pCam->ISetProperty(&nProperty); return pCam->ISetProperty(&nProperty);
} }
return false; return false;
@ -780,6 +784,10 @@ bool CCameraPool::ISetHeight(const QString& strSerial, int& height)
TP_CAMERA_PROPERTY nProperty; TP_CAMERA_PROPERTY nProperty;
nProperty.property = TP_CAM_PROPERTY_IMAGE_HEIGHT; nProperty.property = TP_CAM_PROPERTY_IMAGE_HEIGHT;
nProperty.value = height; nProperty.value = height;
TP_CAMERA_OPTION* opt = lpCameraConfig::instance()->getCameraOption(strSerial);
if (opt) {
opt->height = height;
}
return pCam->ISetProperty(&nProperty); return pCam->ISetProperty(&nProperty);
} }
return false; return false;

@ -15,7 +15,7 @@ public:
lpCameraConfig(); lpCameraConfig();
~lpCameraConfig(); ~lpCameraConfig();
bool getCameraOption(const QString& serials, TP_CAMERA_OPTION& camOpt); bool getCameraOption(const QString& serials, TP_CAMERA_OPTION& camOpt);
bool CameraOptionByKey(const QString& sKey, TP_CAMERA_OPTION& camOpt); bool CameraOptionByKey(const QString& sKey, TP_CAMERA_OPTION& camOpt);
bool SetCameraOption(const QString& sKey, const TP_CAMERA_OPTION& camOpt); bool SetCameraOption(const QString& sKey, const TP_CAMERA_OPTION& camOpt);
TP_CAMERA_OPTION* getCameraOption(const QString& serials); TP_CAMERA_OPTION* getCameraOption(const QString& serials);
QList<QString> CameraKeys() { QList<QString> CameraKeys() {

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Loading…
Cancel
Save