DetectorConfiguration.cpp 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  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. bool DetectorConfiguration::LoadConfigurations(DeviceIndexStruct & DeviceConf, ResDataObject & ACQMODElist)
  12. {
  13. if (!m_ConfigAll.loadFile((m_strConfigPath).c_str()))
  14. {
  15. Fatal( "Load configuration file failed!!! \n");
  16. return false;
  17. }
  18. try{
  19. m_Configurations = m_ConfigAll["CONFIGURATION"];
  20. printf("m_Configurations:\n %s\n", m_Configurations.encode());
  21. //½âÎöconfig
  22. int nAcqMode = 0;
  23. char sstream[10] = { 0 }; //ÓÃÓÚת»»Öµ
  24. DeviceConf.strDeviceName = (string)m_Configurations[DetectorDescription];
  25. DeviceConf.strPanelSerial = (string)m_Configurations[DetectorSerialNumber];
  26. DeviceConf.strDetectorModel = (string)m_Configurations[DetectorModel];
  27. DeviceConf.nClinicalApplicationMode = (int)m_Configurations["ClinicalApplicationMode"];
  28. DeviceConf.nFilterMode = (int)m_Configurations["FilterMode"];
  29. //DeviceConf.nOffsetMode = (int)m_Configurations["OffsetMode"];
  30. Info("Current Clinical Application Mode: {$}", DeviceConf.nClinicalApplicationMode);
  31. Info("Current Filter Mode: {$}", DeviceConf.nFilterMode);
  32. int nModeCount = (int)m_Configurations["ModeTable"].GetKeyCount("DetectorMode");
  33. Info("Mode number: {$}", nModeCount);
  34. for (int i = 0; i < nModeCount; i++)
  35. {
  36. DeviceConf.nRawWidth = m_Configurations["ModeTable"][i]["RawImgWidth"];
  37. DeviceConf.nRawHeight = m_Configurations["ModeTable"][i]["RawImgHeight"];
  38. DeviceConf.nFullImageWidth = m_Configurations["ModeTable"][i]["ImageWidth"];
  39. DeviceConf.nFullImageHeight = m_Configurations["ModeTable"][i]["ImageHeight"];
  40. DeviceConf.nImageLeftOffset = m_Configurations["ModeTable"][i]["WidthOffset"];
  41. DeviceConf.nImageTopffset = m_Configurations["ModeTable"][i]["HeightOffset"];
  42. DeviceConf.nImageBottomOffset = m_Configurations["ModeTable"][i]["BottomOffset"];
  43. DeviceConf.nPixelSpace = m_Configurations["ModeTable"][i]["PixelPitch"];
  44. DeviceConf.nPreviewWidth = m_Configurations["ModeTable"][i]["PreviewWidth"];
  45. DeviceConf.nPreviewHeight = m_Configurations["ModeTable"][i]["PreviewHeight"];
  46. DeviceConf.nImageBits = (int)m_Configurations["ModeTable"][i]["PhySizeInfoBit"];
  47. DeviceConf.bPreviewEnable = (bool)m_Configurations["ModeTable"][i]["PreviewEnable"];
  48. DeviceConf.nDoseOfEXI = (int)m_Configurations["ModeTable"][i]["Sensitivity"];
  49. DeviceConf.nSyncMode = (int)m_Configurations["ModeTable"][i]["SyncType"];
  50. DeviceConf.nWorkstation = (int)m_Configurations["ModeTable"][i]["WorkStation"];
  51. /*ResDataObject mode;
  52. int temp = (int)m_Configurations["ModeTable"][i]["LogicMode"];
  53. mode.add(CcosAcqModeIdx, temp);
  54. temp = (int)m_Configurations["ModeTable"][i]["OperationMode"];
  55. mode.add(CcosAcqModeName, temp);
  56. temp = (int)m_Configurations["ModeTable"][i]["ImageWidth"];
  57. mode.add(CcosImageWidth, temp);
  58. temp = (int)m_Configurations["ModeTable"][i]["ImageHeight"];
  59. mode.add(CcosImageHeight, temp);
  60. temp = (int)m_Configurations["ModeTable"][i]["PhySizeInfoBit"];
  61. mode.add(CcosImageBits, temp);
  62. temp = (int)m_Configurations["ModeTable"][i]["GainValue"];
  63. mode.add(CcosGainTitle, temp);
  64. temp = (int)m_Configurations["ModeTable"][i]["BinningDx"];
  65. mode.add(CcosBinningX, temp);
  66. temp = (int)m_Configurations["ModeTable"][i]["BinningDy"];
  67. mode.add(CcosBinningY, temp);
  68. temp = (int)m_Configurations["ModeTable"][i]["Frequency"];
  69. mode.add(CcosFrameRate, temp);
  70. temp = (int)m_Configurations["ModeTable"][i]["PixelPitch"];
  71. mode.add(CcosImagePixelSpacing, temp);
  72. temp = (int)m_Configurations["ModeTable"][i]["Sensitivity"];
  73. mode.add(CcosImageFPDSensitivity, temp);
  74. sprintf_s(sstream, "%d", nAcqMode);
  75. ACQMODElist.add(sstream, mode);*/
  76. ResDataObject mode;
  77. int temp = (int)m_Configurations["ModeTable"][i]["LogicMode"];
  78. ACQMODElist.add(CcosAcqModeIdx, temp);
  79. temp = (int)m_Configurations["ModeTable"][i]["OperationMode"];
  80. ACQMODElist.add(CcosAcqModeName, temp);
  81. temp = (int)m_Configurations["ModeTable"][i]["ImageWidth"];
  82. ACQMODElist.add(CcosImageWidth, temp);
  83. temp = (int)m_Configurations["ModeTable"][i]["ImageHeight"];
  84. ACQMODElist.add(CcosImageHeight, temp);
  85. temp = (int)m_Configurations["ModeTable"][i]["PhySizeInfoBit"];
  86. ACQMODElist.add(CcosImageBits, temp);
  87. temp = (int)m_Configurations["ModeTable"][i]["GainValue"];
  88. ACQMODElist.add(CcosGainTitle, temp);
  89. temp = (int)m_Configurations["ModeTable"][i]["BinningDx"];
  90. ACQMODElist.add(CcosBinningX, temp);
  91. temp = (int)m_Configurations["ModeTable"][i]["BinningDy"];
  92. ACQMODElist.add(CcosBinningY, temp);
  93. temp = (int)m_Configurations["ModeTable"][i]["Frequency"];
  94. ACQMODElist.add(CcosFrameRate, temp);
  95. temp = (int)m_Configurations["ModeTable"][i]["FrameCount"];
  96. ACQMODElist.add("FrameCount", temp);
  97. temp = (int)m_Configurations["ModeTable"][i]["PixelPitch"];
  98. ACQMODElist.add(CcosImagePixelSpacing, temp);
  99. temp = (int)m_Configurations["ModeTable"][i]["Sensitivity"];
  100. ACQMODElist.add(CcosImageFPDSensitivity, temp);
  101. //sprintf_s(sstream, "%d", nAcqMode);
  102. //ACQMODElist.add(sstream, mode);
  103. //nAcqMode++;
  104. //printf("ACQMODElist.add %d\n",nAcqMode);
  105. }
  106. //connections
  107. DeviceConf.strIPAddress = (string)m_Configurations["connections"]["WirelessIP"];
  108. DeviceConf.bActived = (bool)m_Configurations[CcosDetectorAttachedFlag];
  109. DeviceConf.nSaturationValue = (int)m_Configurations["SaturationValue"];
  110. DeviceConf.nCalibDueSetting = (int)m_Configurations["CalibrationDue"];
  111. DeviceConf.strFirmware = (string)m_Configurations["FirmwarePath"];
  112. DeviceConf.nTemperCheckTimeConf = (int)m_Configurations["TemperatureQueueLen"];
  113. DeviceConf.fTemperatureMin = (float)m_Configurations["TemperatureMin"];
  114. DeviceConf.fTemperatureMax = (float)m_Configurations["TemperatureMax"];
  115. DeviceConf.fGradientMean = (float)m_Configurations["TemperatureGradientMean"];
  116. DeviceConf.fGradientStdDev = (float)m_Configurations["TemperatureGradientStdDev"];
  117. DeviceConf.nMaxShockNumber = (int)m_Configurations["MaxShockNumber"];
  118. DeviceConf.nForceGridSuppress = (int)m_Configurations["ForceGridSuppress"];
  119. DeviceConf.nGridSuppressed = (int)m_Configurations["GridSuppressed"];
  120. DeviceConf.fGridSuppressParam1 = (float)m_Configurations["GridSuppressFilterType"];
  121. DeviceConf.fGridSuppressParam2 = (float)m_Configurations["GridSuppressParam2"];
  122. DeviceConf.fGridSuppressParam3 = (float)m_Configurations["GridSuppressParam3"];
  123. DeviceConf.fGridSuppressParam4 = (float)m_Configurations["GridSuppressParam4"];
  124. DeviceConf.fGridSuppressParam5 = (float)m_Configurations["GridSuppressParam5"];
  125. DeviceConf.fGridSuppressParam6 = (float)m_Configurations["GridSuppressParam6"];
  126. DeviceConf.fGridSuppressParam7 = (float)m_Configurations["GridSuppressParam7"];
  127. DeviceConf.fGridSuppressParam8 = (float)m_Configurations["GridSuppressParam8"];
  128. DeviceConf.fGridSuppressParam9 = (float)m_Configurations["GridSuppressParam9"];
  129. //m_nExtendPixel = (int)m_Configurations["ExtendPixel"];
  130. //m_nOrthoExtendPixel = (int)m_Configurations["OrthoExtendPixel"];
  131. DeviceConf.fLTEthreshold = (float)m_Configurations["LTEthreshold"];
  132. DeviceConf.nSaveRaw = (int)m_Configurations["SaveRaw"];
  133. DeviceConf.fTemperMaxLimit = (float)m_Configurations["TempMaxLimit"];
  134. DeviceConf.fTemperWarning = (float)m_Configurations["TempUpperLimit"];
  135. DeviceConf.fTemperLowLimit = (float)m_Configurations["TempLowerLimit"];
  136. DeviceConf.fTemperMinLimit = (float)m_Configurations["TempMinLimit"];
  137. DeviceConf.nBatteryWarning = (int)m_Configurations["BatLowerLimit"];
  138. DeviceConf.nBatteryLimit = (int)m_Configurations["BatMiniLimit"];
  139. DeviceConf.nWifiWarning = (int)m_Configurations["WifiLowerLimit"];
  140. DeviceConf.nWifiLimit = (int)m_Configurations["WifiMiniLimit"];
  141. int nModulePollEnable = (int)m_Configurations["ModulePollEnable"];
  142. if (nModulePollEnable > 0)
  143. {
  144. DeviceConf.bModuleEnable = true;
  145. }
  146. else
  147. {
  148. DeviceConf.bModuleEnable = false;
  149. }
  150. }
  151. catch (...)
  152. {
  153. return false;
  154. }
  155. return true;
  156. }
  157. bool DetectorConfiguration::SaveConfig()
  158. {
  159. try{
  160. m_ConfigAll["CONFIGURATION"] = m_Configurations;
  161. }
  162. catch (...)
  163. {
  164. return false;
  165. }
  166. return m_ConfigAll.SaveFile((m_strConfigPath).c_str());
  167. }