#include "stdafx.h" #include "DetectorConfiguration.h" #include "Detector_Model_Def.h" DetectorConfiguration::DetectorConfiguration(string ConfigPath) { m_strConfigPath = ConfigPath; } DetectorConfiguration::~DetectorConfiguration() { } bool DetectorConfiguration::LoadConfigurations(DeviceIndexStruct & DeviceConf, ResDataObject & ACQMODElist) { printf("LoadConfigurations config path:%s\n", m_strConfigPath.c_str()); FINFO("LoadConfigurations config path:{$}", m_strConfigPath.c_str()); if (!m_ConfigAll.loadFile(m_strConfigPath.c_str())) { printf( "Load configuration file failed!!! \n"); FERROR("Load configuration file failed!!!"); return false; } try { m_Configurations = m_ConfigAll["CONFIGURATION"]; int nTempX, nTempY; DeviceConf.strDeviceName = (string)m_Configurations[DetectorDescription]; DeviceConf.strPanelSerial = (string)m_Configurations[DetectorSerialNumber]; int nModeCount = (int)m_Configurations["ModeTable"].GetKeyCount("DetectorMode"); for (int i = 0; i < nModeCount; i++) { nTempX = DeviceConf.nRawWidth = m_Configurations["ModeTable"][i]["RawImgWidth"]; nTempY = DeviceConf.nRawHeight = m_Configurations["ModeTable"][i]["RawImgHeight"]; DeviceConf.nImageBits = (int)m_Configurations["ModeTable"][i]["PhySizeInfoBit"]; DeviceConf.nPixelSpace = m_Configurations["ModeTable"][i]["PixelPitch"]; //最大图像大小影响着共享内存设置的大小 if (nTempX * nTempY > DeviceConf.nMaxImgWidth * DeviceConf.nMaxImgHeight) { DeviceConf.nMaxImgWidth = nTempX; DeviceConf.nMaxImgHeight = nTempY; } } DeviceConf.nDoseOfEXI = (int)m_Configurations["Sensitivity"];//敏感度 DeviceConf.nCalibMode = (int)m_Configurations["CalibMode"];//校正方式0-ZSKK 1-OTHER DeviceConf.fTemperMaxLimit = (float)m_Configurations["TempMaxLimit"]; DeviceConf.fTemperWarning = (float)m_Configurations["TempUpperLimit"]; DeviceConf.fTemperLowLimit = (float)m_Configurations["TempLowerLimit"]; DeviceConf.fTemperMinLimit = (float)m_Configurations["TempMinLimit"]; DeviceConf.nBatteryWarning = (int)m_Configurations["BatLowerLimit"]; DeviceConf.nBatteryLimit = (int)m_Configurations["BatMiniLimit"]; DeviceConf.nWifiWarning = (int)m_Configurations["WifiLowerLimit"]; DeviceConf.nWifiLimit = (int)m_Configurations["WifiMiniLimit"]; } catch (ResDataObjectExption &e) { printf("Get config error: %s \r\n", e.what()); FERROR("Get config error: {$}", e.what()); return false; } return true; } bool DetectorConfiguration::SaveConfig() { try { m_ConfigAll["CONFIGURATION"] = m_Configurations; } catch (...) { return false; } return m_ConfigAll.SaveFile((m_strConfigPath).c_str()); }