DetectorConfiguration.cpp 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. #include "stdafx.h"
  2. #include "DetectorConfiguration.h"
  3. #include "common_api.h"
  4. extern Log4CPP::Logger* gLogger;
  5. DetectorConfiguration::DetectorConfiguration(string ConfigPath)
  6. {
  7. m_strConfigPath = ConfigPath;
  8. }
  9. DetectorConfiguration::~DetectorConfiguration()
  10. {
  11. }
  12. bool DetectorConfiguration::LoadConfigurations(DeviceIndexStruct& DeviceConf, ResDataObject& ACQMODElist, std::vector<AcqModeInfo>& vAcqModeInfoList)
  13. {
  14. FINFO("LoadConfigurations m_strConfigPath:{$}", m_strConfigPath);
  15. if (!m_ConfigAll.loadFile((m_strConfigPath).c_str()))
  16. {
  17. return false;
  18. }
  19. try
  20. {
  21. m_Configurations = m_ConfigAll["CONFIGURATION"];
  22. TransferModuleJosnConfig2DriverConfig(m_Configurations);
  23. DeviceConf.strDeviceName = (string)m_Configurations[DetectorDescription];
  24. DeviceConf.strPanelSerial = (string)m_Configurations["SerialNumber"];
  25. DeviceConf.nOffsetInterval = (int)m_Configurations["OffsetInterval"];
  26. DeviceConf.nDetectorWidth = (int)m_Configurations["DetectorWidth"];
  27. DeviceConf.nDetectorHeight = (int)m_Configurations["DetectorHeight"];
  28. DeviceConf.bSupportDDR = (int)m_Configurations[SupportDDR];
  29. //增加温度电量wifi警告和阈值的读取
  30. DeviceConf.fTemperatureErrorMax = (float)m_Configurations["TempMaxLimit"];
  31. DeviceConf.fTemperatureWarnMax = (float)m_Configurations["TempUpperLimit"];
  32. DeviceConf.fTemperatureWarnMin = (float)m_Configurations["TempLowerLimit"];
  33. DeviceConf.fTemperatureErrorMin = (float)m_Configurations["TempMinLimit"];
  34. DeviceConf.nBatteryWarning = (int)m_Configurations["BatLowerLimit"];
  35. DeviceConf.nBatteryLimit = (int)m_Configurations["BatMiniLimit"];
  36. DeviceConf.nWifiWarning = (int)m_Configurations["WifiLowerLimit"];
  37. DeviceConf.nWifiLimit = (int)m_Configurations["WifiMiniLimit"];
  38. FINFO("ModeInRunning:{$}", m_Configurations["ModeInRunning"].encode());
  39. size_t nSize = m_Configurations["ModeInRunning"].size();
  40. for (size_t i = 0; i < nSize; i++)
  41. {
  42. int nModeID = (int)m_Configurations["ModeInRunning"][i]["ModeID"];
  43. string strFrequency = (string)m_Configurations["ModeInRunning"][i]["Frequency"];
  44. float fFrequency = stof(strFrequency);
  45. AcqModeInfo acqModeInfo;
  46. acqModeInfo.nModeID = nModeID;
  47. acqModeInfo.fFrequency = fFrequency;
  48. vAcqModeInfoList.push_back(acqModeInfo);
  49. }
  50. }
  51. catch (ResDataObjectExption &e)
  52. {
  53. FERROR("Get config error, reason:{$}", e.what());
  54. return false;
  55. }
  56. return true;
  57. }
  58. bool DetectorConfiguration::SaveConfig()
  59. {
  60. try
  61. {
  62. m_ConfigAll["CONFIGURATION"] = m_Configurations;
  63. }
  64. catch (...)
  65. {
  66. return false;
  67. }
  68. return m_ConfigAll.SaveFile((m_strConfigPath).c_str());
  69. }
  70. bool DetectorConfiguration::LoadCalibrationDose(string& strWorkPath, ResDataObject& CalibDoseList)
  71. {
  72. ResDataObject RdoCalibDoseList;
  73. try
  74. {
  75. //FINFO("Before Load Got config {$}", m_Configurations.encode());
  76. string strCalibDosePath = strWorkPath + (string)m_Configurations["CalibrationDosePath"] + "\\CalibrationDose_CareRay.xml";
  77. FINFO("start load calib dose file: {$}", strCalibDosePath);
  78. struct stat buffer;
  79. if (stat(strCalibDosePath.c_str(), &buffer) == 0)
  80. {
  81. RdoCalibDoseList.loadFile(strCalibDosePath.c_str());
  82. CalibDoseList = RdoCalibDoseList["List"];
  83. FINFO("CalibDoseList: {$} ", CalibDoseList.encode());
  84. for (int i = 0; i < CalibDoseList.size(); i++)
  85. {
  86. ResDataObject temp = CalibDoseList[i];
  87. }
  88. }
  89. else
  90. {
  91. FERROR("{$} file not exist!", strCalibDosePath);
  92. return false;
  93. }
  94. }
  95. catch (exception e)
  96. {
  97. FERROR("Get calibDose error: {$}", e.what());
  98. return false;
  99. }
  100. return true;
  101. }
  102. bool DetectorConfiguration::LoadDetectorMode(string& strWorkPath, ResDataObject& DetectorModeList)
  103. {
  104. ResDataObject RdoDetectorModeList;
  105. try
  106. {
  107. string strDetectorModePath = strWorkPath + (string)m_Configurations["DetectorModePath"] + "\\DetectorModes" + (string)m_Configurations["ProductID"] + ".xml";
  108. FINFO("start load detector mode file: {$}", strDetectorModePath);
  109. struct stat buffer;
  110. if (stat(strDetectorModePath.c_str(), &buffer) == 0)
  111. {
  112. RdoDetectorModeList.loadFile(strDetectorModePath.c_str());
  113. DetectorModeList = RdoDetectorModeList["List"];
  114. FINFO("DetectorModeList: {$} ", DetectorModeList.encode());
  115. }
  116. else
  117. {
  118. FERROR("{$} file not exist!", strDetectorModePath);
  119. return false;
  120. }
  121. }
  122. catch (exception e)
  123. {
  124. FERROR("load detector mode error: {$}", e.what());
  125. return false;
  126. }
  127. return true;
  128. }