DetectorConfiguration.cpp 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. #include "stdafx.h"
  2. #include "DetectorConfiguration.h"
  3. #include "Detector_Model_Def.h"
  4. DetectorConfiguration::DetectorConfiguration(string ConfigPath)
  5. {
  6. m_strConfigPath = ConfigPath;
  7. }
  8. DetectorConfiguration::~DetectorConfiguration()
  9. {
  10. }
  11. void TransferModuleJosnConfig2DriverConfig(ResDataObject& config)
  12. {
  13. for (int x = 0; x < config.size(); x++)
  14. {
  15. //Èç¹ûÓÐValue
  16. if (config[x].GetKeyCount("Value") > 0)
  17. {
  18. ////mLog::FINFO("TRY COVERT [{$}] VALUE {$}", config.GetKey(x), config[x]["Value"].size() > 0 ? config[x]["Value"].encode() : (const char*)config[x]["Value"]);
  19. if (config[x]["Value"].size() <= 0)
  20. {
  21. string va = (const char*)config[x]["Value"];
  22. config[x] = va.c_str();
  23. }
  24. else
  25. {
  26. ResDataObject rest = config[x]["Value"];
  27. config[x] = rest;
  28. ////mLog::FINFO("convert object [{$}], object {$}", config.GetKey(x), rest.encode());
  29. }
  30. }
  31. ////mLog::FINFO("After Convert {$}", config.encode());
  32. }
  33. }
  34. bool DetectorConfiguration::LoadConfigurations(DeviceIndexStruct & DeviceConf)
  35. {
  36. if (!m_ConfigAll.loadFile(m_strConfigPath.c_str()))
  37. {
  38. printf("Load configuration file failed!!! \n");
  39. return false;
  40. }
  41. try
  42. {
  43. m_Configurations = m_ConfigAll["CONFIGURATION"];
  44. if (m_strConfigPath.find(".json") != std::string::npos)
  45. {
  46. TransferModuleJosnConfig2DriverConfig(m_Configurations);
  47. }
  48. //½âÎöconfig
  49. DeviceConf.strDeviceName = (string)m_Configurations["Description"];
  50. DeviceConf.strPanelSerial = (string)m_Configurations["SerialNumber"];
  51. DeviceConf.strDetectorModel = (string)m_Configurations["DetectorModel"];
  52. int nModeCount = (int)m_Configurations["ModeTable"].GetKeyCount("DetectorMode");
  53. for (int i = 0; i < nModeCount; i++)
  54. {
  55. DeviceConf.nFullImageWidth = m_Configurations["ModeTable"][i]["ImageWidth"];
  56. DeviceConf.nFullImageHeight = m_Configurations["ModeTable"][i]["ImageHeight"];
  57. DeviceConf.nRawWidth = m_Configurations["ModeTable"][i]["RawImgWidth"];
  58. DeviceConf.nRawHeight = m_Configurations["ModeTable"][i]["RawImgHeight"];
  59. DeviceConf.nImageBits = (int)m_Configurations["ModeTable"][i]["PhySizeInfoBit"];
  60. DeviceConf.nImageLeftOffset = m_Configurations["ModeTable"][i]["LeftOffset"];
  61. DeviceConf.nImageTopOffset = m_Configurations["ModeTable"][i]["TopOffset"];
  62. DeviceConf.nImageRightOffset = m_Configurations["ModeTable"][i]["RightOffset"];
  63. DeviceConf.nImageBottomOffset = m_Configurations["ModeTable"][i]["BottomOffset"];
  64. DeviceConf.nPixelSpace = m_Configurations["ModeTable"][i]["PixelPitch"];
  65. DeviceConf.bPreviewEnable = ((int)m_Configurations["ModeTable"][i]["PreviewEnable"] != 0) ? true : false;
  66. DeviceConf.nPreviewWidth = m_Configurations["ModeTable"][i]["PreviewWidth"];
  67. DeviceConf.nPreviewHeight = m_Configurations["ModeTable"][i]["PreviewHeight"];
  68. DeviceConf.nSyncMode = (int)m_Configurations["ModeTable"][i]["SyncType"];
  69. }
  70. //ÆØ¹â´°¿Ú
  71. DeviceConf.nExpWindowMode = (int)m_Configurations["ExpWindowMode"];
  72. string strXWindowMode = "XWindow" + std::to_string(DeviceConf.nExpWindowMode);
  73. DeviceConf.nXWindow = (int)m_Configurations["ExpWindow"][strXWindowMode.c_str()];
  74. //connections
  75. DeviceConf.strIPAddress = (string)m_Configurations["DetectorWirelessIP"];
  76. DeviceConf.strWiredIP = (string)m_Configurations["DetectorWiredIP"];
  77. DeviceConf.strWirelessIP = (string)m_Configurations["DetectorWirelessIP"];
  78. DeviceConf.strLocalIP = (string)m_Configurations["LocalIP"];
  79. DeviceConf.bActived = (bool)m_Configurations["Attached"];
  80. DeviceConf.nDoseOfEXI = (int)m_Configurations["Sensitivity"];
  81. string strWorkStation = (string)m_Configurations["WorkStation"];
  82. if (strWorkStation.find("Table") != std::string::npos)
  83. {
  84. DeviceConf.nWorkstation = 0;
  85. }
  86. else if (strWorkStation.find("Wall") != std::string::npos)
  87. {
  88. DeviceConf.nWorkstation = 1;
  89. }
  90. else if (strWorkStation.find("Free") != std::string::npos)
  91. {
  92. DeviceConf.nWorkstation = 3;
  93. }
  94. else
  95. {
  96. DeviceConf.nWorkstation = 0;
  97. }
  98. DeviceConf.nSaturationValue = (int)m_Configurations["SaturationValue"];
  99. DeviceConf.nCalibDueSetting = (int)m_Configurations["CalibrationDue"];
  100. DeviceConf.nMaxShockNumber = (int)m_Configurations["MaxShockNumber"];
  101. DeviceConf.nForceGridSuppress = (int)m_Configurations["ForceGridSuppress"];
  102. DeviceConf.nGridSuppressed = (int)m_Configurations["GridSuppressed"];
  103. DeviceConf.fGridSuppressParam1 = (float)m_Configurations["GridSuppressFilterType"];
  104. DeviceConf.fGridSuppressParam2 = (float)m_Configurations["GridSuppressParam2"];
  105. DeviceConf.fGridSuppressParam3 = (float)m_Configurations["GridSuppressParam3"];
  106. DeviceConf.fGridSuppressParam4 = (float)m_Configurations["GridSuppressParam4"];
  107. DeviceConf.fGridSuppressParam5 = (float)m_Configurations["GridSuppressParam5"];
  108. DeviceConf.fGridSuppressParam6 = (float)m_Configurations["GridSuppressParam6"];
  109. DeviceConf.fGridSuppressParam7 = (float)m_Configurations["GridSuppressParam7"];
  110. DeviceConf.fGridSuppressParam8 = (float)m_Configurations["GridSuppressParam8"];
  111. DeviceConf.fGridSuppressParam9 = (float)m_Configurations["GridSuppressParam9"];
  112. DeviceConf.nConnectTimeout = (int)m_Configurations["ConnectTimeout"];
  113. DeviceConf.bSDKSaveLog = ((int)m_Configurations["SDKSaveLog"] != 0) ? true : false;
  114. DeviceConf.strSDKSaveLogPath = (string)m_Configurations["SDKSaveLogPath"];
  115. DeviceConf.bSDKSaveRaw = ((int)m_Configurations["SDKSaveRaw"] != 0) ? true : false;
  116. DeviceConf.strSDKSaveRawPath = (string)m_Configurations["SDKSaveRawPath"];
  117. DeviceConf.strCalibrationDate = (string)m_Configurations["DateofLastDetectorCalibration"];
  118. DeviceConf.strCalibrationTime = (string)m_Configurations["TimeofLastDetectorCalibration"];
  119. DeviceConf.bStatusPollEnable = ((int)m_Configurations["StatusPollEnable"] != 0) ? true : false;
  120. DeviceConf.nSaveRaw = (int)m_Configurations["IsSaveRaw"];
  121. DeviceConf.bTemperatureEnable = ((int)m_Configurations["TemperatureEnable"] != 0) ? true : false;
  122. DeviceConf.fTemperMaxLimit = (float)m_Configurations["TempMaxLimit"];
  123. DeviceConf.fTemperUpLimit = (float)m_Configurations["TempUpperLimit"];
  124. DeviceConf.fTemperLowLimit = (float)m_Configurations["TempLowerLimit"];
  125. DeviceConf.fTemperMinLimit = (float)m_Configurations["TempMinLimit"];
  126. DeviceConf.fCalibTemperUp = (float)m_Configurations["CalibTemperUp"];
  127. DeviceConf.fCalibTemperLow = (float)m_Configurations["CalibTemperLow"];
  128. DeviceConf.bBatteryEnable = ((int)m_Configurations["BatteryEnable"] != 0) ? true : false;
  129. DeviceConf.nBatteryWarning = (int)m_Configurations["BatLowerLimit"];
  130. DeviceConf.nBatteryLimit = (int)m_Configurations["BatMiniLimit"];
  131. DeviceConf.bWifiEnable = ((int)m_Configurations["WifiEnable"] != 0) ? true : false;
  132. DeviceConf.nWifiWarning = (int)m_Configurations["WifiLowerLimit"];
  133. DeviceConf.nWifiLimit = (int)m_Configurations["WifiMiniLimit"];
  134. }
  135. catch (...)
  136. {
  137. printf("Load configuration item failed, exception!!!");
  138. return false;
  139. }
  140. return true;
  141. }
  142. bool DetectorConfiguration::SaveConfig()
  143. {
  144. try
  145. {
  146. m_ConfigAll["CONFIGURATION"] = m_Configurations;
  147. }
  148. catch (...)
  149. {
  150. return false;
  151. }
  152. return m_ConfigAll.SaveFile((m_strConfigPath).c_str());
  153. }