DetectorConfiguration.cpp 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. printf("LoadConfigurations config path:%s\n", m_strConfigPath.c_str());
  14. FINFO("LoadConfigurations config path:{$}", m_strConfigPath.c_str());
  15. if (!m_ConfigAll.loadFile(m_strConfigPath.c_str()))
  16. {
  17. printf( "Load configuration file failed!!! \n");
  18. FERROR("Load configuration file failed!!!");
  19. return false;
  20. }
  21. try
  22. {
  23. m_Configurations = m_ConfigAll["CONFIGURATION"];
  24. int nTempX, nTempY;
  25. DeviceConf.strDeviceName = (string)m_Configurations[DetectorDescription];
  26. DeviceConf.strPanelSerial = (string)m_Configurations[DetectorSerialNumber];
  27. int nModeCount = (int)m_Configurations["ModeTable"].GetKeyCount("DetectorMode");
  28. for (int i = 0; i < nModeCount; i++)
  29. {
  30. nTempX = DeviceConf.nRawWidth = m_Configurations["ModeTable"][i]["RawImgWidth"];
  31. nTempY = DeviceConf.nRawHeight = m_Configurations["ModeTable"][i]["RawImgHeight"];
  32. DeviceConf.nImageBits = (int)m_Configurations["ModeTable"][i]["PhySizeInfoBit"];
  33. DeviceConf.nPixelSpace = m_Configurations["ModeTable"][i]["PixelPitch"];
  34. //最大图像大小影响着共享内存设置的大小
  35. if (nTempX * nTempY > DeviceConf.nMaxImgWidth * DeviceConf.nMaxImgHeight)
  36. {
  37. DeviceConf.nMaxImgWidth = nTempX;
  38. DeviceConf.nMaxImgHeight = nTempY;
  39. }
  40. }
  41. DeviceConf.nDoseOfEXI = (int)m_Configurations["Sensitivity"];//敏感度
  42. DeviceConf.nCalibMode = (int)m_Configurations["CalibMode"];//校正方式0-ZSKK 1-OTHER
  43. DeviceConf.fTemperMaxLimit = (float)m_Configurations["TempMaxLimit"];
  44. DeviceConf.fTemperWarning = (float)m_Configurations["TempUpperLimit"];
  45. DeviceConf.fTemperLowLimit = (float)m_Configurations["TempLowerLimit"];
  46. DeviceConf.fTemperMinLimit = (float)m_Configurations["TempMinLimit"];
  47. DeviceConf.nBatteryWarning = (int)m_Configurations["BatLowerLimit"];
  48. DeviceConf.nBatteryLimit = (int)m_Configurations["BatMiniLimit"];
  49. DeviceConf.nWifiWarning = (int)m_Configurations["WifiLowerLimit"];
  50. DeviceConf.nWifiLimit = (int)m_Configurations["WifiMiniLimit"];
  51. }
  52. catch (ResDataObjectExption &e)
  53. {
  54. printf("Get config error: %s \r\n", e.what());
  55. FERROR("Get config error: {$}", e.what());
  56. return false;
  57. }
  58. return true;
  59. }
  60. bool DetectorConfiguration::SaveConfig()
  61. {
  62. try
  63. {
  64. m_ConfigAll["CONFIGURATION"] = m_Configurations;
  65. }
  66. catch (...)
  67. {
  68. return false;
  69. }
  70. return m_ConfigAll.SaveFile((m_strConfigPath).c_str());
  71. }