#include "stdafx.h" #include "DetectorConfiguration.h" #include "Detector_Model_Def.h" DetectorConfiguration::DetectorConfiguration(string ConfigPath) { m_strConfigPath = ConfigPath; } DetectorConfiguration::~DetectorConfiguration() { } void TransferModuleJosnConfig2DriverConfig(ResDataObject& config) { for (int x = 0; x < config.size(); x++) { //如果有Value if (config[x].GetKeyCount("Value") > 0) { //FINFO("TRY COVERT [{$}] VALUE {$}", config.GetKey(x), config[x]["Value"].size() > 0 ? config[x]["Value"].encode() : (const char*)config[x]["Value"]); if (config[x]["Value"].size() <= 0) { string va = (const char*)config[x]["Value"]; config[x] = va.c_str(); } else { ResDataObject rest = config[x]["Value"]; config[x] = rest; //FINFO("convert object [{$}], object {$}", config.GetKey(x), rest.encode()); } } //FINFO("After Convert {$}", config.encode()); } } bool DetectorConfiguration::LoadConfigurations(DeviceIndexStruct & DeviceConf) { if (!m_ConfigAll.loadFile(m_strConfigPath.c_str())) { printf("Load configuration file failed!!! \n"); return false; } try { m_Configurations = m_ConfigAll["CONFIGURATION"]; if (m_strConfigPath.find(".json") != std::string::npos) { TransferModuleJosnConfig2DriverConfig(m_Configurations); } //解析config DeviceConf.strDeviceName = (string)m_Configurations["Description"]; DeviceConf.strPanelSerial = (string)m_Configurations["SerialNumber"]; DeviceConf.strDetectorModel = (string)m_Configurations["DetectorModel"]; int nModeCount = (int)m_Configurations["ModeTable"].GetKeyCount("DetectorMode"); for (int i = 0; i < nModeCount; i++) { DeviceConf.nFullImageWidth = m_Configurations["ModeTable"][i]["ImageWidth"]; DeviceConf.nFullImageHeight = m_Configurations["ModeTable"][i]["ImageHeight"]; DeviceConf.nRawWidth = m_Configurations["ModeTable"][i]["RawImgWidth"]; DeviceConf.nRawHeight = m_Configurations["ModeTable"][i]["RawImgHeight"]; DeviceConf.nImageBits = (int)m_Configurations["ModeTable"][i]["PhySizeInfoBit"]; DeviceConf.nImageLeftOffset = m_Configurations["ModeTable"][i]["LeftOffset"]; DeviceConf.nImageTopOffset = m_Configurations["ModeTable"][i]["TopOffset"]; DeviceConf.nImageRightOffset = m_Configurations["ModeTable"][i]["RightOffset"]; DeviceConf.nImageBottomOffset = m_Configurations["ModeTable"][i]["BottomOffset"]; DeviceConf.nPixelSpace = m_Configurations["ModeTable"][i]["PixelPitch"]; DeviceConf.bPreviewEnable = ((int)m_Configurations["ModeTable"][i]["PreviewEnable"] != 0) ? true : false; DeviceConf.nPreviewWidth = m_Configurations["ModeTable"][i]["PreviewWidth"]; DeviceConf.nPreviewHeight = m_Configurations["ModeTable"][i]["PreviewHeight"]; DeviceConf.nSyncMode = (int)m_Configurations["ModeTable"][i]["SyncType"]; } //曝光窗口 DeviceConf.nExpWindowMode = (int)m_Configurations["ExpWindowMode"]; string strXWindowMode = "XWindow" + std::to_string(DeviceConf.nExpWindowMode); DeviceConf.nXWindow = (int)m_Configurations["ExpWindow"][strXWindowMode.c_str()]; //connections DeviceConf.strIPAddress = (string)m_Configurations["DetectorWirelessIP"]; DeviceConf.strWiredIP = (string)m_Configurations["DetectorWiredIP"]; DeviceConf.strWirelessIP = (string)m_Configurations["DetectorWirelessIP"]; DeviceConf.strLocalIP = (string)m_Configurations["LocalIP"]; DeviceConf.bActived = (bool)m_Configurations["Attached"]; DeviceConf.nDoseOfEXI = (int)m_Configurations["Sensitivity"]; string strWorkStation = (string)m_Configurations["WorkStation"]; if (strWorkStation.find("Table") != std::string::npos) { DeviceConf.nWorkstation = 0; } else if (strWorkStation.find("Wall") != std::string::npos) { DeviceConf.nWorkstation = 1; } else if (strWorkStation.find("Free") != std::string::npos) { DeviceConf.nWorkstation = 3; } else { DeviceConf.nWorkstation = 0; } DeviceConf.nSaturationValue = (int)m_Configurations["SaturationValue"]; DeviceConf.nCalibDueSetting = (int)m_Configurations["CalibrationDue"]; DeviceConf.nMaxShockNumber = (int)m_Configurations["MaxShockNumber"]; DeviceConf.nForceGridSuppress = (int)m_Configurations["ForceGridSuppress"]; DeviceConf.nGridSuppressed = (int)m_Configurations["GridSuppressed"]; DeviceConf.fGridSuppressParam1 = (float)m_Configurations["GridSuppressFilterType"]; DeviceConf.fGridSuppressParam2 = (float)m_Configurations["GridSuppressParam2"]; DeviceConf.fGridSuppressParam3 = (float)m_Configurations["GridSuppressParam3"]; DeviceConf.fGridSuppressParam4 = (float)m_Configurations["GridSuppressParam4"]; DeviceConf.fGridSuppressParam5 = (float)m_Configurations["GridSuppressParam5"]; DeviceConf.fGridSuppressParam6 = (float)m_Configurations["GridSuppressParam6"]; DeviceConf.fGridSuppressParam7 = (float)m_Configurations["GridSuppressParam7"]; DeviceConf.fGridSuppressParam8 = (float)m_Configurations["GridSuppressParam8"]; DeviceConf.fGridSuppressParam9 = (float)m_Configurations["GridSuppressParam9"]; DeviceConf.nConnectTimeout = (int)m_Configurations["ConnectTimeout"]; DeviceConf.bSDKSaveLog = ((int)m_Configurations["SDKSaveLog"] != 0) ? true : false; DeviceConf.strSDKSaveLogPath = (string)m_Configurations["SDKSaveLogPath"]; DeviceConf.bSDKSaveRaw = ((int)m_Configurations["SDKSaveRaw"] != 0) ? true : false; DeviceConf.strSDKSaveRawPath = (string)m_Configurations["SDKSaveRawPath"]; DeviceConf.strCalibrationDate = (string)m_Configurations["DateofLastDetectorCalibration"]; DeviceConf.strCalibrationTime = (string)m_Configurations["TimeofLastDetectorCalibration"]; DeviceConf.bStatusPollEnable = ((int)m_Configurations["StatusPollEnable"] != 0) ? true : false; DeviceConf.nSaveRaw = (int)m_Configurations["IsSaveRaw"]; DeviceConf.bTemperatureEnable = ((int)m_Configurations["TemperatureEnable"] != 0) ? true : false; DeviceConf.fTemperMaxLimit = (float)m_Configurations["TempMaxLimit"]; DeviceConf.fTemperUpLimit = (float)m_Configurations["TempUpperLimit"]; DeviceConf.fTemperLowLimit = (float)m_Configurations["TempLowerLimit"]; DeviceConf.fTemperMinLimit = (float)m_Configurations["TempMinLimit"]; DeviceConf.fCalibTemperUp = (float)m_Configurations["CalibTemperUp"]; DeviceConf.fCalibTemperLow = (float)m_Configurations["CalibTemperLow"]; DeviceConf.bBatteryEnable = ((int)m_Configurations["BatteryEnable"] != 0) ? true : false; DeviceConf.nBatteryWarning = (int)m_Configurations["BatLowerLimit"]; DeviceConf.nBatteryLimit = (int)m_Configurations["BatMiniLimit"]; DeviceConf.bWifiEnable = ((int)m_Configurations["WifiEnable"] != 0) ? true : false; DeviceConf.nWifiWarning = (int)m_Configurations["WifiLowerLimit"]; DeviceConf.nWifiLimit = (int)m_Configurations["WifiMiniLimit"]; } catch (...) { printf("Load configuration item failed, exception!!!"); return false; } return true; } bool DetectorConfiguration::SaveConfig() { try { m_ConfigAll["CONFIGURATION"] = m_Configurations; } catch (...) { return false; } return m_ConfigAll.SaveFile((m_strConfigPath).c_str()); }