SyncGenUnitLogic.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #pragma once
  2. #ifndef SYNCGENUNITLOGIC_EXPORTS
  3. #ifdef _WIN64
  4. #ifdef _DEBUG
  5. #pragma comment(lib, "SyncGenUnitLogicX64D.lib")
  6. #else
  7. #pragma comment(lib, "SyncGenUnitLogicX64.lib")
  8. #endif
  9. #else
  10. #ifdef _DEBUG
  11. #pragma comment(lib, "SyncGenUnitLogicD.lib")
  12. #else
  13. #pragma comment(lib, "SyncGenUnitLogic.lib")
  14. #endif
  15. #endif
  16. #endif
  17. #ifdef SYNCGENUNITLOGIC_EXPORTS
  18. #define SYNGENUNITLOGIC_API __declspec(dllexport)
  19. #else
  20. #define SYNGENUNITLOGIC_API __declspec(dllimport)
  21. #endif
  22. #include "LogicDevice.h"
  23. typedef enum _SyncGenStatus {
  24. SYNCGEN_ERROR = -1,
  25. SYNCGEN_DISABLEEXP,
  26. SYNCGEN_ENABLEEXP,
  27. SYNCGEN_ENABLEXRAY,
  28. SYNCGEN_XRAYON,
  29. SYNCGEN_MAX
  30. }SYNCGENSTATUS;
  31. class SYNGENUNITLOGIC_API SyncGen_LogicDevice : public LogicDevice
  32. {
  33. public:
  34. SyncGen_LogicDevice(void);
  35. virtual ~SyncGen_LogicDevice(void);
  36. //get device type
  37. virtual bool SYSTEM_CALL GetDeviceType(GUID &DevType);
  38. //get device resource
  39. virtual RET_STATUS SYSTEM_CALL GetDeviceResource(ResDataObject PARAM_OUT *pDeviceResource);
  40. //ResourceCommand Request In and Response Out
  41. virtual RET_STATUS SYSTEM_CALL Request(ResDataObject PARAM_IN *pRequest, ResDataObject PARAM_OUT *pResponse);
  42. //notify to lower layer
  43. virtual RET_STATUS SYSTEM_CALL CmdToLogicDev(ResDataObject PARAM_IN *pCmd);
  44. //errors,warnings
  45. void SetErrorInfo(int errCode, char *pErrInfo);
  46. void SetWarningInfo(int warningCode, char *pWarningInfo);
  47. public:
  48. //以下三种状态应该合并成一个状态,基于RSNA时间不够,这个暂时保留为3个状态
  49. //ex:曝光使能状态
  50. BaseJsonDataObject<bool>* m_bExposeEnableStatus;
  51. //ex:出线使能状态
  52. BaseJsonDataObject<bool>* m_bXrayEnableStatus;
  53. //ex:出线状态
  54. BaseJsonDataObject<bool>* m_bXrayStatus;
  55. public:
  56. //fpd actions
  57. virtual RET_STATUS SetApplicationMode(int nApplicationMode); //RAD FLU
  58. virtual RET_STATUS SetExamMode(int nExposeMode);
  59. virtual RET_STATUS GetSEQResource(ResDataObject PARAM_OUT *pDeviceResource);
  60. //for the RSNA,暂时将就一下
  61. void GetStatus(SYNCGENSTATUS &Status);//0:DisableExp,1:EnableExp,2:EnableXray,3:XrayOn
  62. //Gen actions
  63. virtual RET_STATUS ExposePrepare(); //曝光使能
  64. virtual RET_STATUS StopExpose(); //曝光禁用
  65. virtual RET_STATUS ExposeReady(bool bResult); //曝光使能的反馈
  66. virtual RET_STATUS InvokeXray();
  67. virtual RET_STATUS XrayOnNotify();
  68. virtual RET_STATUS XrayOffNotify();
  69. virtual RET_STATUS StopXray();
  70. virtual RET_STATUS StopXrayResult(bool bResult);
  71. virtual RET_STATUS ErrorState(bool bResult);
  72. //we need check each action resource is Support or not
  73. //return yes or no inside of OEM module
  74. virtual RET_STATUS Support_SetApplicationMode();
  75. virtual RET_STATUS Support_SetExamMode();
  76. virtual RET_STATUS Support_ExposePrepare();
  77. virtual RET_STATUS Support_StopExpose();
  78. virtual RET_STATUS Support_InvokeXray();
  79. virtual RET_STATUS Support_XrayOnNotify();
  80. virtual RET_STATUS Support_XrayOffNotify();
  81. virtual RET_STATUS Support_StopXray();
  82. };