DapModel.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #pragma once
  2. #include "LogicDevice.h"
  3. #include "ResDataObject.h"
  4. #ifndef DAPMODEL_EXPORTS
  5. #ifdef _WIN64
  6. #ifdef _DEBUG
  7. #pragma comment(lib, "DapModelX64D.lib")
  8. #else
  9. #pragma comment(lib, "DapModelX64.lib")
  10. #endif
  11. #else
  12. #ifdef _DEBUG
  13. #pragma comment(lib, "DapModelD.lib")
  14. #else
  15. #pragma comment(lib, "DapModel.lib")
  16. #endif
  17. #endif
  18. #endif
  19. #ifdef DAPMODEL_EXPORTS
  20. #define DAPMODEL_API __declspec(dllexport)
  21. #define DAPMODEL_C_API extern "C" __declspec(dllexport)
  22. #else
  23. #define DAPMODEL_API __declspec(dllimport)
  24. #define DAPMODEL_C_API extern "C" __declspec(dllimport)
  25. #endif
  26. // 此类是从 DapModelUnitLogic.dll 导出的
  27. class DAPMODEL_API DapModelUnitLogic : public LogicDevice
  28. {
  29. protected:
  30. BaseJsonDataObject<float> *m_KV;//KV
  31. BaseJsonDataObject<float> *m_MA;//mA
  32. BaseJsonDataObject<float> *m_MS;//MS
  33. BaseJsonDataObject<float> *m_MAS;//MAS
  34. BaseJsonDataObject<float> *m_PostMS;//PostMS
  35. BaseJsonDataObject<float> *m_PostMAS;//PostMAS
  36. BaseJsonDataObject<float> *m_DAP;//Dap
  37. BaseJsonDataObject<float> *m_DapRate;//DapRate
  38. BaseJsonDataObject<unsigned int>* m_ExamMode;
  39. BaseJsonDataObject<unsigned int>* m_DAPUnitMode;
  40. BaseJsonDataObject<float>* m_ReferenceAirKerma;
  41. public:
  42. DapModelUnitLogic(void);
  43. virtual ~DapModelUnitLogic(void);
  44. //get device type
  45. virtual bool SYSTEM_CALL GetDeviceType(GUID &DevType);
  46. //get device resource
  47. virtual RET_STATUS SYSTEM_CALL GetDeviceResource(ResDataObject PARAM_OUT *pDeviceResource);
  48. //ResourceCommand Request In and Response Out
  49. virtual RET_STATUS SYSTEM_CALL Request(ResDataObject PARAM_IN *pRequest, ResDataObject PARAM_OUT *pResponse);
  50. //notify to lower layer
  51. virtual RET_STATUS SYSTEM_CALL CmdToLogicDev(ResDataObject PARAM_IN *pCmd);
  52. virtual RET_STATUS DATA_ACTION GetSEQResource(ResDataObject PARAM_OUT *pDeviceResource);
  53. RET_STATUS SetExamMode(unsigned int ExamMode);
  54. //只考虑V2的对应(mostly RAD)
  55. //状态机相关
  56. virtual RET_STATUS DATA_ACTION FramePrep();//清除DAP
  57. virtual RET_STATUS DATA_ACTION FrameReady();
  58. virtual RET_STATUS DATA_ACTION FrameOut();//每次曝光后读取
  59. virtual RET_STATUS DATA_ACTION FrameEnd();//读取Dap
  60. virtual RET_STATUS DATA_ACTION FramePost();
  61. //3个全局退出&错误Action
  62. virtual RET_STATUS DATA_ACTION SeqError();
  63. virtual RET_STATUS DATA_ACTION SeqEnd();
  64. virtual RET_STATUS DATA_ACTION FrameError();
  65. //1个Recover
  66. virtual RET_STATUS DATA_ACTION FrameRecover();
  67. virtual RET_STATUS DATA_ACTION SeqRecover();
  68. virtual int DATA_ACTION GetValue(FLOAT PARAM_OUT &Value, int PARAM_IN ParamType);
  69. virtual int DATA_ACTION SetValue(FLOAT PARAM_IN Value, int PARAM_IN ParamType);
  70. virtual int SetValue_ReferenceAirKerma(FLOAT PARAM_IN Value);
  71. //0:uGym2 1:mGycm2
  72. virtual int DATA_ACTION SetDAPUnitMode(int PARAM_IN mode);
  73. };