#include "CamParamConfig.h" #include "EntityCamera.h" CamParamConfig::CamParamConfig(EntityCamera* cam ) : m_pCamera( cam ) { } CamParamConfig::~CamParamConfig(void) { } /*--------ICamParamConfig-----*/ /// 配置参数 bool CamParamConfig::configParam( const QString configXML ) { bool bret = true; // bret = mGrabber->loadDeviceStateFromFile( (LPCTSTR)configXML ); bret = false; return bret; } /// 设置曝光值 bool CamParamConfig::setExposure( double val ) { bool bret = true; CInstantCamera* camera = m_pCamera->cameraCtrl(); INodeMap& nodemap = camera->GetNodeMap(); CIntegerPtr ptrExposureTimeRaw(nodemap.GetNode("ExposureTimeRaw")); ptrExposureTimeRaw->SetValue(val); return bret; } /// 获取曝光值 0.000001 ~ 30.000000 sec double CamParamConfig::getExposure() { double dval = 0.00; CInstantCamera* camera = m_pCamera->cameraCtrl(); INodeMap& nodemap = camera->GetNodeMap(); CIntegerPtr ptrExposureTimeRaw(nodemap.GetNode("ExposureTimeRaw")); if (true == IsReadable(ptrExposureTimeRaw)) { int64_t exposureTimeRaw = ptrExposureTimeRaw->GetValue(); dval = (double)exposureTimeRaw; } return dval; } /// 设置曝光值自动 bool CamParamConfig::setExposureAuto( bool b) { bool bret = true; CInstantCamera* camera = m_pCamera->cameraCtrl(); INodeMap& nodemap = camera->GetNodeMap(); CEnumerationPtr ptrExposureAuto(nodemap.GetNode("ExposureAuto")); bret = IsWritable(ptrExposureAuto); if (true == bret) { if (true == b) { ptrExposureAuto->FromString("Continuous"); ptrExposureAuto->SetIntValue(2); } else { ptrExposureAuto->FromString("Off"); ptrExposureAuto->SetIntValue(0); } } return bret; } /// 曝光是否自动 bool CamParamConfig::isExposureAuto( ) { bool bret = true; CInstantCamera* camera = m_pCamera->cameraCtrl(); INodeMap& nodemap = camera->GetNodeMap(); CEnumerationPtr ptrExposureAuto(nodemap.GetNode("ExposureAuto")); int64_t exposureAuto = ptrExposureAuto->GetIntValue(); bret = ((0 == exposureAuto) ? false : true); return bret; } /// 设置增益值 bool CamParamConfig::setGain( int val ) { bool bret = true; // CInstantCamera* camera = m_pCamera->cameraCtrl(); // INodeMap& nodemap = camera->GetNodeMap(); // CIntegerPtr PtrgainRaw(nodemap.GetNode("GainRaw")); // bret = IsWritable(PtrgainRaw); // if (true == bret) // { // double dval = ((95.0 / 100.0) * (float)val) + 0.5; // PtrgainRaw->SetValue(dval); // } return bret; } /// 获取增益值 int CamParamConfig::getGain() { int val = -1; CInstantCamera* camera = m_pCamera->cameraCtrl(); INodeMap& nodemap = camera->GetNodeMap(); CIntegerPtr PtrgainRaw(nodemap.GetNode("GainRaw")); int64_t gainRaw = PtrgainRaw->GetValue(); val = int(((100.0 / 95.0) * (float)gainRaw) + 0.5); return val; } /// 设置增益值自动 bool CamParamConfig::setGainAuto( bool b ) { bool bret = true; CInstantCamera* camera = m_pCamera->cameraCtrl(); INodeMap& nodemap = camera->GetNodeMap(); CEnumerationPtr PtrgainAuto(nodemap.GetNode("GainAuto")); bret = IsWritable(PtrgainAuto); if (true == bret) { if (true == b) { PtrgainAuto->FromString("Continuous"); PtrgainAuto->SetIntValue(2); } else { PtrgainAuto->FromString("Off"); PtrgainAuto->SetIntValue(0); } } return bret; } /// 增益是否自动 bool CamParamConfig::isGainAuto( ) { bool bret = true; CInstantCamera* camera = m_pCamera->cameraCtrl(); INodeMap& nodemap = camera->GetNodeMap(); CEnumerationPtr PtrgainAuto(nodemap.GetNode("GainAuto")); int64_t gainAuto = PtrgainAuto->GetIntValue(); bret = ((0 == gainAuto) ? false : true); return bret; } /// 设置白平衡 参数值范围:0~255 bool CamParamConfig::setWhiteBalance( colourRgb rgb, int val ) { bool bret = true; bret = false; return bret; } /// 获取白平衡值 int CamParamConfig::getWhiteBalance( colourRgb rgb ) { int val = 10; return val; } /// 设置白平衡自动 bool CamParamConfig::setWhiteBalanceAuto( bool b ) { bool bret = true; return bret; } /// 白平衡是否自动 bool CamParamConfig::isWhiteBalanceAuto( ) { bool bret = true; bret = false; return bret; } /////////////////////////////// /*--------CamParamConfig-----*/ /// 获取亮度值 -10~30 int CamParamConfig::brightnes() { long val = -1; long values = 10; return values; } /// 获取对比度值 -10~30 int CamParamConfig::contrast() { long val = -1; long values = 10; return values; } /// 获取清晰度值 0~14 int CamParamConfig::distinct() { long val = -1; val = 10; return val; } /// 获取伽马校正因子 int CamParamConfig::gammaFactor() { long val = -1; long values = 10; return values; } /// 设置亮度值-10~30 bool CamParamConfig::setBrightnes( int val ) { bool bret = true; return bret; } /// 设置对比度值-10~30 bool CamParamConfig::setContrast( int val ) { bool bret = true; return bret; } /// 设置清晰度值 bool CamParamConfig::setDistinct( int val ) { bool bret = true; return bret; } /// 设置伽马校正因子 bool CamParamConfig::setGammaFactor( int val ) { bool bret = true; return bret; }