123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- #include "stdafx.h"
- #include "DetectorConfiguration.h"
- #include "Detector_Model_Def.h"
- #include "common_api.h"
- DetectorConfiguration::DetectorConfiguration(string ConfigPath)
- : m_strConfigPath(ConfigPath)
- , m_nDetModeNum(0)
- , m_pDetModeList(nullptr)
- {
- }
- DetectorConfiguration::~DetectorConfiguration()
- {
- if (m_pDetModeList)
- {
- delete[] m_pDetModeList;
- m_pDetModeList = nullptr;
- }
- }
- 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"];
- //printf("m_Configurations:\n %s\n", m_Configurations.encode());
- if (m_strConfigPath.find(".json") != std::string::npos)
- {
- TransferModuleJosnConfig2DriverConfig(m_Configurations);
- m_nDetModeNum = (int)m_Configurations["ModeTable"].size();
- }
- else if (m_strConfigPath.find(".xml") != std::string::npos)
- {
- m_nDetModeNum = (int)m_Configurations["ModeTable"].GetKeyCount("DetectorMode");
- }
- //解析config
- DeviceConf.strDeviceName = (string)m_Configurations["Description"];
- DeviceConf.strPanelSerial = (string)m_Configurations["SerialNumber"];
- DeviceConf.strDetectorModel = (string)m_Configurations["DetectorModel"];
- printf("\n DetectorMode number: %d \n", m_nDetModeNum);
- m_pDetModeList = new DetModeInfo[m_nDetModeNum];
- for (int i = 0; i < m_nDetModeNum; i++)
- {
- m_pDetModeList[i].nLogicMode = (int)m_Configurations["ModeTable"][i]["LogicMode"];
- m_pDetModeList[i].strExamType = (string)m_Configurations["ModeTable"][i]["ExamType"];
- m_pDetModeList[i].nOperationMode = (int)m_Configurations["ModeTable"][i]["OperationMode"];
- m_pDetModeList[i].nRawImgWidth = (int)m_Configurations["ModeTable"][i]["RawImgWidth"];
- m_pDetModeList[i].nRawImgHeight = (int)m_Configurations["ModeTable"][i]["RawImgHeight"];
- m_pDetModeList[i].nImageWidth = (int)m_Configurations["ModeTable"][i]["ImageWidth"];
- m_pDetModeList[i].nImageHeight = (int)m_Configurations["ModeTable"][i]["ImageHeight"];
- m_pDetModeList[i].nPhySizeInfoBit = (int)m_Configurations["ModeTable"][i]["PhySizeInfoBit"];
- m_pDetModeList[i].nImageLeftOffset = (int)m_Configurations["ModeTable"][i]["LeftOffset"];
- m_pDetModeList[i].nImageTopOffset = (int)m_Configurations["ModeTable"][i]["TopOffset"];
- m_pDetModeList[i].nImageRightOffset = (int)m_Configurations["ModeTable"][i]["RightOffset"];
- m_pDetModeList[i].nImageBottomOffset = (int)m_Configurations["ModeTable"][i]["BottomOffset"];
- m_pDetModeList[i].nPixelPitch = (int)m_Configurations["ModeTable"][i]["PixelPitch"];
- m_pDetModeList[i].bPreviewEnable = ((int)m_Configurations["ModeTable"][i]["PreviewEnable"] != 0) ? true : false;
- m_pDetModeList[i].nPreviewWidth = (int)m_Configurations["ModeTable"][i]["PreviewWidth"];
- m_pDetModeList[i].nPreviewHeight = (int)m_Configurations["ModeTable"][i]["PreviewHeight"];
- m_pDetModeList[i].nSyncType = (int)m_Configurations["ModeTable"][i]["SyncType"];
- m_pDetModeList[i].nCorrectionType = (int)m_Configurations["ModeTable"][i]["CorrectionType"];
- m_pDetModeList[i].nBinningMode = (int)m_Configurations["ModeTable"][i]["BinningMode"];
- m_pDetModeList[i].nZoomMode = (int)m_Configurations["ModeTable"][i]["ZoomMode"];
- m_pDetModeList[i].nGainValue = (int)m_Configurations["ModeTable"][i]["GainValue"];
- m_pDetModeList[i].nFrequency = (int)m_Configurations["ModeTable"][i]["Frequency"];
- m_pDetModeList[i].nXwindow = (int)m_Configurations["ModeTable"][i]["Xwindow"];
- m_pDetModeList[i].nReadoutTime = (int)m_Configurations["ModeTable"][i]["ReadoutTime"];
- m_pDetModeList[i].nFrameCount = (int)m_Configurations["ModeTable"][i]["FrameCount"];
- m_pDetModeList[i].nTriggerType = (int)m_Configurations["ModeTable"][i]["TriggerType"];
- m_pDetModeList[i].nWorkStation = (int)m_Configurations["ModeTable"][i]["WorkStation"];
- m_pDetModeList[i].nSensitivity = (int)m_Configurations["ModeTable"][i]["Sensitivity"];
- m_pDetModeList[i].nExiThreshold = (int)m_Configurations["ModeTable"][i]["ExiThreshold"];
- m_pDetModeList[i].nRotateAngle = (int)m_Configurations["ModeTable"][i]["RotateAngle"];
- m_pDetModeList[i].bOffsetEnable = ((int)m_Configurations["ModeTable"][i]["OffsetEnable"] != 0) ? true : false;
- m_pDetModeList[i].bSaveRawEnable = ((int)m_Configurations["ModeTable"][i]["SaveRawEnable"] != 0) ? true : false;
- }
- DeviceConf.AcqModeInfo = m_pDetModeList[0]; //默认取第一个
- //connections
- DeviceConf.strIPAddress = (string)m_Configurations["DetectorWiredIP"];
- DeviceConf.strWiredIP = (string)m_Configurations["DetectorWiredIP"];
- DeviceConf.strWirelessIP = (string)m_Configurations["DetectorWirelessIP"];
- DeviceConf.strLocalIP = (string)m_Configurations["LocalIP"];
- DeviceConf.nOffsetMode = (int)m_Configurations["OffsetMode"];
- DeviceConf.nDoseOfEXI = (int)m_Configurations["Sensitivity"];
- DeviceConf.nWorkstation = (int)m_Configurations["WorkStation"];
- DeviceConf.nSaturationValue = (int)m_Configurations["SaturationValue"];
- DeviceConf.nCalibDueSetting = (int)m_Configurations["CalibrationDue"];
- 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());
- }
- /***
- * 根据nMode,获取对应的ModeInfo
- * nMode: 采集模式
- ***/
- bool DetectorConfiguration::GetDetModeInfo(int nMode, DetModeInfo& AcqModeInfo)
- {
- bool bFind = false;
- for (int i = 0; i < m_nDetModeNum; i++)
- {
- DetModeInfo stTemp = m_pDetModeList[i];
- if (nMode == stTemp.nLogicMode)
- {
- AcqModeInfo = m_pDetModeList[i];
- bFind = true;
- break;
- }
- }
- return bFind;
- }
|