DynBoxDevice.hpp 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #pragma once
  2. #include "IODeviceWithSCF.tlh"
  3. #include "IODeviceWithSCF.tli"
  4. #include "DIOS.Dev.SYNBOX.Mould.hpp"
  5. #include "DIOS.Dev.MSGMould.hpp"
  6. namespace DIOS::Dev::Detail::SYNBOX
  7. {
  8. typedef struct Sync_Element_s
  9. {
  10. string strIO;
  11. string strSyncName;
  12. string pFun;
  13. int EnableState;
  14. int DisableState;
  15. }Sync_Element_t;
  16. typedef struct DYNHeader_s
  17. {
  18. map<string, bool> m_MapChannelState;
  19. map<string, Sync_Element_t>m_SyncList;
  20. }DYNHeader_t;
  21. //-----------------------------------------------------------------------------
  22. // DynBoxDevice
  23. //-----------------------------------------------------------------------------
  24. namespace nDev = DIOS::Dev;
  25. namespace nsDetail = DIOS::Dev::Detail;
  26. class DynBoxDevice : public SYNBOXMould
  27. {
  28. using superGen = SYNBOXMould;
  29. public:
  30. DynBoxDevice(std::shared_ptr <IOEventCenter> center, nsSCF::SCF SCF);
  31. ~DynBoxDevice();
  32. ResDataObject ResDYNConfig;
  33. // GENERATOR_RAD_OFF,
  34. // GENERATOR_RAD_PREPARE,
  35. // GENERATOR_RAD_READY,
  36. // GENERATOR_RAD_XRAYON,
  37. // GENERATOR_RAD_XRAYOFF,
  38. bool m_bSendRadOff{ true };
  39. bool m_bSendRadPrepare{ true };
  40. bool m_bSendRadReady{ true };
  41. bool m_bSendRadXrayOn{ true };
  42. bool m_bSendRadXrayOff{ true };
  43. bool m_bSendXwindowOn{ true };
  44. bool m_bSendXwindowOff{ true };
  45. protected:
  46. virtual RET_STATUS SetWS(std::string value) override;
  47. virtual RET_STATUS SetExpMode(std::string value) override;
  48. virtual RET_STATUS SetGeneratortoSyncStatus(int state) override;
  49. virtual RET_STATUS SetExpEnable() override;
  50. virtual RET_STATUS SetExpDisable() override;
  51. virtual RET_STATUS PrepareAcquisition() override;
  52. virtual RET_STATUS StartWindowRequest() override;
  53. virtual RET_STATUS SetExposureTimes(int nNum) override;
  54. virtual RET_STATUS StopWindowRequest() override;
  55. virtual RET_STATUS SetFrameRate(FLOAT frameRate) override;
  56. virtual RET_STATUS SetGenAECSignal(int signal) override;
  57. virtual RET_STATUS SimulateFootSwitchSignal(int signal) override;
  58. virtual RET_STATUS SetValue_PPS(FLOAT fluframerate) override;
  59. private:
  60. std::unique_ptr<nsDetail::MSGUnit> m_MSGUnit;
  61. private:
  62. //int ChartoInt(char uc);
  63. //int CalChecksum(const char* cCmd, int nCmdSize);
  64. //bool FormatCmd(char* cCmd, int& nSize);
  65. //bool CmdtoString(const char* cCmd, int nCmdSize, string& strCmd);
  66. RET_STATUS SendBySCF(const char* chChannelID, bool bStatus);
  67. //RET_STATUS SendSPSBySCF(const char* chChannelID, int nCycle, int nPulse, int nWaitTime);
  68. //RET_STATUS SendSPEBySCF(const char* chChannelID, UCHAR cMode, UCHAR cEnable, int nWaitTime);
  69. //RET_STATUS SendSMSBySCF(const char* cExpMode, const char* cExpCount, int nWaitTime);
  70. int DealReceiveData(string sCmdID, const char* pData, int Datalen);
  71. int NotifySignal(const char* name, int state);
  72. void ClearSignal();
  73. int SetSignal(const char* name, int state);
  74. //int SetPWMState(bool state);
  75. int SetPWM(float fpps);
  76. //int SetAreaType();
  77. int m_nCurrentExpTimes{ 0 };
  78. DYNHeader_t m_DYNMap;
  79. bool m_bINEEnable{ false };
  80. int m_nExpTimes{ -1 };
  81. std::string m_strSYNMode{"SYN0"};
  82. bool m_nInExpState{ false };
  83. DWORD m_wStartEXPTime;
  84. bool m_bClear{ false };
  85. nsSCF::SCF m_SCF;
  86. std::shared_ptr <IOEventCenter> EventCenter;
  87. public:
  88. void Register(Dispatch* Dispatch);
  89. void OnCallBack();
  90. int DealtheSignal(const char* channel, int state);
  91. private:
  92. void FireNotify(std::string key, std::string context);
  93. void RefreshSignal();
  94. void ResetPanelPreSignal(void);
  95. void ResetPanelReqSignal(void);
  96. void ResetGenExpSignal(void);
  97. };
  98. }