DetectorConfiguration.cpp 4.3 KB

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