#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())) { printf( "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 = 1; char sstream[10] = { 0 }; //用于转换值 int nTempX, nTempY; DeviceConf.strDeviceName = (string)m_Configurations[DetectorDescription]; 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.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.fPixelSpace = 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"]; //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]["PixelPitch"]; //ACQMODElist.add(CcosImagePixelSpacing, temp); //temp = (int)m_Configurations["ModeTable"][i]["Sensitivity"]; //ACQMODElist.add(CcosImageFPDCoef, temp); if (nTempX * nTempY > DeviceConf.nMaxImgWidth * DeviceConf.nMaxImgHeight) { DeviceConf.nMaxImgWidth = nTempX; DeviceConf.nMaxImgHeight = nTempY; } } //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["IsSaveRaw"]; //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 (ResDataObjectExption &e) { printf("Get config error: %s \r\n", 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()); }