DetectorConfiguration.cpp 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  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. printf( "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 = 1;
  23. char sstream[10] = { 0 }; //用于转换值
  24. int nTempX, nTempY;
  25. DeviceConf.strDeviceName = (string)m_Configurations[DetectorDescription];
  26. int nModeCount = (int)m_Configurations["ModeTable"].GetKeyCount("DetectorMode");
  27. for (int i = 0; i < nModeCount; i++)
  28. {
  29. nTempX = DeviceConf.nRawWidth = m_Configurations["ModeTable"][i]["RawImgWidth"];
  30. nTempY = DeviceConf.nRawHeight = m_Configurations["ModeTable"][i]["RawImgHeight"];
  31. DeviceConf.nFullImageWidth = m_Configurations["ModeTable"][i]["ImageWidth"];
  32. DeviceConf.nFullImageHeight = m_Configurations["ModeTable"][i]["ImageHeight"];
  33. //DeviceConf.nImageLeftOffset = m_Configurations["ModeTable"][i]["WidthOffset"];
  34. //DeviceConf.nImageTopffset = m_Configurations["ModeTable"][i]["HeightOffset"];
  35. DeviceConf.fPixelSpace = m_Configurations["ModeTable"][i]["PixelPitch"];
  36. //DeviceConf.nPreviewWidth = m_Configurations["ModeTable"][i]["PreviewWidth"];
  37. //DeviceConf.nPreviewHeight = m_Configurations["ModeTable"][i]["PreviewHeight"];
  38. DeviceConf.nImageBits = (int)m_Configurations["ModeTable"][i]["PhySizeInfoBit"];
  39. //DeviceConf.bPreviewEnable = (bool)m_Configurations["ModeTable"][i]["PreviewEnable"];
  40. DeviceConf.nDoseOfEXI = (int)m_Configurations["ModeTable"][i]["Sensitivity"];
  41. //DeviceConf.nSyncMode = (int)m_Configurations["ModeTable"][i]["SyncType"];
  42. //DeviceConf.nWorkstation = (int)m_Configurations["ModeTable"][i]["WorkStation"];
  43. //ResDataObject mode;
  44. //int temp = (int)m_Configurations["ModeTable"][i]["LogicMode"];
  45. //ACQMODElist.add(CcosAcqModeIdx, temp);
  46. //temp = (int)m_Configurations["ModeTable"][i]["OperationMode"];
  47. //ACQMODElist.add(CcosAcqModeName, temp);
  48. //temp = (int)m_Configurations["ModeTable"][i]["ImageWidth"];
  49. //ACQMODElist.add(CcosImageWidth, temp);
  50. //temp = (int)m_Configurations["ModeTable"][i]["ImageHeight"];
  51. //ACQMODElist.add(CcosImageHeight, temp);
  52. //temp = (int)m_Configurations["ModeTable"][i]["PhySizeInfoBit"];
  53. //ACQMODElist.add(CcosImageBits, temp);
  54. //temp = (int)m_Configurations["ModeTable"][i]["GainValue"];
  55. //ACQMODElist.add(CcosGainTitle, temp);
  56. //temp = (int)m_Configurations["ModeTable"][i]["BinningDx"];
  57. //ACQMODElist.add(CcosBinningX, temp);
  58. //temp = (int)m_Configurations["ModeTable"][i]["BinningDy"];
  59. //ACQMODElist.add(CcosBinningY, temp);
  60. //temp = (int)m_Configurations["ModeTable"][i]["Frequency"];
  61. //ACQMODElist.add(CcosFrameRate, temp);
  62. //temp = (int)m_Configurations["ModeTable"][i]["PixelPitch"];
  63. //ACQMODElist.add(CcosImagePixelSpacing, temp);
  64. //temp = (int)m_Configurations["ModeTable"][i]["Sensitivity"];
  65. //ACQMODElist.add(CcosImageFPDCoef, temp);
  66. if (nTempX * nTempY > DeviceConf.nMaxImgWidth * DeviceConf.nMaxImgHeight)
  67. {
  68. DeviceConf.nMaxImgWidth = nTempX;
  69. DeviceConf.nMaxImgHeight = nTempY;
  70. }
  71. }
  72. //DeviceConf.nSaturationValue = (int)m_Configurations["SaturationValue"];
  73. //DeviceConf.nCalibDueSetting = (int)m_Configurations["CalibrationDue"];
  74. //DeviceConf.strFirmware = (string)m_Configurations["FirmwarePath"];
  75. //DeviceConf.nTemperCheckTimeConf = (int)m_Configurations["TemperatureQueueLen"];
  76. //DeviceConf.fTemperatureMin = (float)m_Configurations["TemperatureMin"];
  77. //DeviceConf.fTemperatureMax = (float)m_Configurations["TemperatureMax"];
  78. //DeviceConf.fGradientMean = (float)m_Configurations["TemperatureGradientMean"];
  79. //DeviceConf.fGradientStdDev = (float)m_Configurations["TemperatureGradientStdDev"];
  80. //DeviceConf.nMaxShockNumber = (int)m_Configurations["MaxShockNumber"];
  81. //DeviceConf.nForceGridSuppress = (int)m_Configurations["ForceGridSuppress"];
  82. //DeviceConf.nGridSuppressed = (int)m_Configurations["GridSuppressed"];
  83. //DeviceConf.fGridSuppressParam1 = (float)m_Configurations["GridSuppressFilterType"];
  84. //DeviceConf.fGridSuppressParam2 = (float)m_Configurations["GridSuppressParam2"];
  85. //DeviceConf.fGridSuppressParam3 = (float)m_Configurations["GridSuppressParam3"];
  86. //DeviceConf.fGridSuppressParam4 = (float)m_Configurations["GridSuppressParam4"];
  87. //DeviceConf.fGridSuppressParam5 = (float)m_Configurations["GridSuppressParam5"];
  88. //DeviceConf.fGridSuppressParam6 = (float)m_Configurations["GridSuppressParam6"];
  89. //DeviceConf.fGridSuppressParam7 = (float)m_Configurations["GridSuppressParam7"];
  90. //DeviceConf.fGridSuppressParam8 = (float)m_Configurations["GridSuppressParam8"];
  91. //DeviceConf.fGridSuppressParam9 = (float)m_Configurations["GridSuppressParam9"];
  92. ////m_nExtendPixel = (int)m_Configurations["ExtendPixel"];
  93. ////m_nOrthoExtendPixel = (int)m_Configurations["OrthoExtendPixel"];
  94. //DeviceConf.fLTEthreshold = (float)m_Configurations["LTEthreshold"];
  95. //DeviceConf.nSaveRaw = (int)m_Configurations["IsSaveRaw"];
  96. //DeviceConf.fTemperMaxLimit = (float)m_Configurations["TempMaxLimit"];
  97. //DeviceConf.fTemperWarning = (float)m_Configurations["TempUpperLimit"];
  98. //DeviceConf.fTemperLowLimit = (float)m_Configurations["TempLowerLimit"];
  99. //DeviceConf.fTemperMinLimit = (float)m_Configurations["TempMinLimit"];
  100. //DeviceConf.nBatteryWarning = (int)m_Configurations["BatLowerLimit"];
  101. //DeviceConf.nBatteryLimit = (int)m_Configurations["BatMiniLimit"];
  102. //DeviceConf.nWifiWarning = (int)m_Configurations["WifiLowerLimit"];
  103. //DeviceConf.nWifiLimit = (int)m_Configurations["WifiMiniLimit"];
  104. //int nModulePollEnable = (int)m_Configurations["ModulePollEnable"];
  105. //if (nModulePollEnable > 0)
  106. //{
  107. // DeviceConf.bModuleEnable = true;
  108. //}
  109. //else
  110. //{
  111. // DeviceConf.bModuleEnable = false;
  112. //}
  113. }
  114. catch (ResDataObjectExption &e)
  115. {
  116. printf("Get config error: %s \r\n", e.what());
  117. return false;
  118. }
  119. return true;
  120. }
  121. bool DetectorConfiguration::SaveConfig()
  122. {
  123. try{
  124. m_ConfigAll["CONFIGURATION"] = m_Configurations;
  125. }
  126. catch (...)
  127. {
  128. return false;
  129. }
  130. return m_ConfigAll.SaveFile((m_strConfigPath).c_str());
  131. }