#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) { if (!m_ConfigAll.loadFile((m_strConfigPath).c_str())) { Fatal( "Load configuration file failed!!! \n"); return false; } try{ m_Configurations = m_ConfigAll["CONFIGURATION"]; printf("m_Configurations:\n %s\n", m_Configurations.encode()); //解析config int nAcqMode = 0; char sstream[10] = { 0 }; //用于转换值 DeviceConf.strDeviceName = (string)m_Configurations[DetectorDescription]; DeviceConf.strPanelSerial = (string)m_Configurations[DetectorSerialNumber]; DeviceConf.strDetectorModel = (string)m_Configurations[DetectorModel]; DeviceConf.nClinicalApplicationMode = (int)m_Configurations["ClinicalApplicationMode"]; DeviceConf.nFilterMode = (int)m_Configurations["FilterMode"]; //DeviceConf.nOffsetMode = (int)m_Configurations["OffsetMode"]; Info("Current Clinical Application Mode: {$}", DeviceConf.nClinicalApplicationMode); Info("Current Filter Mode: {$}", DeviceConf.nFilterMode); int nModeCount = (int)m_Configurations["ModeTable"].GetKeyCount("DetectorMode"); Info("Mode number: {$}", nModeCount); for (int i = 0; i < nModeCount; i++) { DeviceConf.nRawWidth = m_Configurations["ModeTable"][i]["RawImgWidth"]; DeviceConf.nRawHeight = m_Configurations["ModeTable"][i]["RawImgHeight"]; DeviceConf.nFullImageWidth = m_Configurations["ModeTable"][i]["ImageWidth"]; DeviceConf.nFullImageHeight = m_Configurations["ModeTable"][i]["ImageHeight"]; DeviceConf.nImageLeftOffset = m_Configurations["ModeTable"][i]["WidthOffset"]; DeviceConf.nImageTopffset = m_Configurations["ModeTable"][i]["HeightOffset"]; DeviceConf.nImageBottomOffset = m_Configurations["ModeTable"][i]["BottomOffset"]; DeviceConf.nPixelSpace = m_Configurations["ModeTable"][i]["PixelPitch"]; DeviceConf.nPreviewWidth = m_Configurations["ModeTable"][i]["PreviewWidth"]; DeviceConf.nPreviewHeight = m_Configurations["ModeTable"][i]["PreviewHeight"]; DeviceConf.nImageBits = (int)m_Configurations["ModeTable"][i]["PhySizeInfoBit"]; DeviceConf.bPreviewEnable = (bool)m_Configurations["ModeTable"][i]["PreviewEnable"]; DeviceConf.nDoseOfEXI = (int)m_Configurations["ModeTable"][i]["Sensitivity"]; DeviceConf.nSyncMode = (int)m_Configurations["ModeTable"][i]["SyncType"]; DeviceConf.nWorkstation = (int)m_Configurations["ModeTable"][i]["WorkStation"]; /*ResDataObject mode; int temp = (int)m_Configurations["ModeTable"][i]["LogicMode"]; mode.add(CcosAcqModeIdx, temp); temp = (int)m_Configurations["ModeTable"][i]["OperationMode"]; mode.add(CcosAcqModeName, temp); temp = (int)m_Configurations["ModeTable"][i]["ImageWidth"]; mode.add(CcosImageWidth, temp); temp = (int)m_Configurations["ModeTable"][i]["ImageHeight"]; mode.add(CcosImageHeight, temp); temp = (int)m_Configurations["ModeTable"][i]["PhySizeInfoBit"]; mode.add(CcosImageBits, temp); temp = (int)m_Configurations["ModeTable"][i]["GainValue"]; mode.add(CcosGainTitle, temp); temp = (int)m_Configurations["ModeTable"][i]["BinningDx"]; mode.add(CcosBinningX, temp); temp = (int)m_Configurations["ModeTable"][i]["BinningDy"]; mode.add(CcosBinningY, temp); temp = (int)m_Configurations["ModeTable"][i]["Frequency"]; mode.add(CcosFrameRate, temp); temp = (int)m_Configurations["ModeTable"][i]["PixelPitch"]; mode.add(CcosImagePixelSpacing, temp); temp = (int)m_Configurations["ModeTable"][i]["Sensitivity"]; mode.add(CcosImageFPDSensitivity, temp); sprintf_s(sstream, "%d", nAcqMode); ACQMODElist.add(sstream, mode);*/ ResDataObject mode; int temp = (int)m_Configurations["ModeTable"][i]["LogicMode"]; ACQMODElist.add(CcosAcqModeIdx, temp); temp = (int)m_Configurations["ModeTable"][i]["OperationMode"]; ACQMODElist.add(CcosAcqModeName, temp); temp = (int)m_Configurations["ModeTable"][i]["ImageWidth"]; ACQMODElist.add(CcosImageWidth, temp); temp = (int)m_Configurations["ModeTable"][i]["ImageHeight"]; ACQMODElist.add(CcosImageHeight, temp); temp = (int)m_Configurations["ModeTable"][i]["PhySizeInfoBit"]; ACQMODElist.add(CcosImageBits, temp); temp = (int)m_Configurations["ModeTable"][i]["GainValue"]; ACQMODElist.add(CcosGainTitle, temp); temp = (int)m_Configurations["ModeTable"][i]["BinningDx"]; ACQMODElist.add(CcosBinningX, temp); temp = (int)m_Configurations["ModeTable"][i]["BinningDy"]; ACQMODElist.add(CcosBinningY, temp); temp = (int)m_Configurations["ModeTable"][i]["Frequency"]; ACQMODElist.add(CcosFrameRate, temp); temp = (int)m_Configurations["ModeTable"][i]["FrameCount"]; ACQMODElist.add("FrameCount", temp); temp = (int)m_Configurations["ModeTable"][i]["PixelPitch"]; ACQMODElist.add(CcosImagePixelSpacing, temp); temp = (int)m_Configurations["ModeTable"][i]["Sensitivity"]; ACQMODElist.add(CcosImageFPDSensitivity, temp); //sprintf_s(sstream, "%d", nAcqMode); //ACQMODElist.add(sstream, mode); //nAcqMode++; //printf("ACQMODElist.add %d\n",nAcqMode); } //connections DeviceConf.strIPAddress = (string)m_Configurations["connections"]["WirelessIP"]; DeviceConf.bActived = (bool)m_Configurations[CcosDetectorAttachedFlag]; DeviceConf.nSaturationValue = (int)m_Configurations["SaturationValue"]; DeviceConf.nCalibDueSetting = (int)m_Configurations["CalibrationDue"]; DeviceConf.strFirmware = (string)m_Configurations["FirmwarePath"]; DeviceConf.nTemperCheckTimeConf = (int)m_Configurations["TemperatureQueueLen"]; DeviceConf.fTemperatureMin = (float)m_Configurations["TemperatureMin"]; DeviceConf.fTemperatureMax = (float)m_Configurations["TemperatureMax"]; DeviceConf.fGradientMean = (float)m_Configurations["TemperatureGradientMean"]; DeviceConf.fGradientStdDev = (float)m_Configurations["TemperatureGradientStdDev"]; 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"]; //m_nExtendPixel = (int)m_Configurations["ExtendPixel"]; //m_nOrthoExtendPixel = (int)m_Configurations["OrthoExtendPixel"]; DeviceConf.fLTEthreshold = (float)m_Configurations["LTEthreshold"]; DeviceConf.nSaveRaw = (int)m_Configurations["SaveRaw"]; 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"]; int nModulePollEnable = (int)m_Configurations["ModulePollEnable"]; if (nModulePollEnable > 0) { DeviceConf.bModuleEnable = true; } else { DeviceConf.bModuleEnable = false; } } catch (...) { return false; } return true; } bool DetectorConfiguration::SaveConfig() { try{ m_ConfigAll["CONFIGURATION"] = m_Configurations; } catch (...) { return false; } return m_ConfigAll.SaveFile((m_strConfigPath).c_str()); }