#pragma once #include "LogicDevice.h" #include "ResDataObject.h" #ifndef DAPMODEL_EXPORTS #ifdef _WIN64 #ifdef _DEBUG #pragma comment(lib, "DapModelX64D.lib") #else #pragma comment(lib, "DapModelX64.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "DapModelD.lib") #else #pragma comment(lib, "DapModel.lib") #endif #endif #endif #ifdef DAPMODEL_EXPORTS #define DAPMODEL_API __declspec(dllexport) #define DAPMODEL_C_API extern "C" __declspec(dllexport) #else #define DAPMODEL_API __declspec(dllimport) #define DAPMODEL_C_API extern "C" __declspec(dllimport) #endif // 此类是从 DapModelUnitLogic.dll 导出的 class DAPMODEL_API DapModelUnitLogic : public LogicDevice { protected: BaseJsonDataObject *m_KV;//KV BaseJsonDataObject *m_MA;//mA BaseJsonDataObject *m_MS;//MS BaseJsonDataObject *m_MAS;//MAS BaseJsonDataObject *m_PostMS;//PostMS BaseJsonDataObject *m_PostMAS;//PostMAS BaseJsonDataObject *m_DAP;//Dap BaseJsonDataObject *m_DapRate;//DapRate BaseJsonDataObject* m_ExamMode; BaseJsonDataObject* m_DAPUnitMode; BaseJsonDataObject* m_ReferenceAirKerma; public: DapModelUnitLogic(void); virtual ~DapModelUnitLogic(void); //get device type virtual bool SYSTEM_CALL GetDeviceType(GUID &DevType); //get device resource virtual RET_STATUS SYSTEM_CALL GetDeviceResource(ResDataObject PARAM_OUT *pDeviceResource); //ResourceCommand Request In and Response Out virtual RET_STATUS SYSTEM_CALL Request(ResDataObject PARAM_IN *pRequest, ResDataObject PARAM_OUT *pResponse); //notify to lower layer virtual RET_STATUS SYSTEM_CALL CmdToLogicDev(ResDataObject PARAM_IN *pCmd); virtual RET_STATUS DATA_ACTION GetSEQResource(ResDataObject PARAM_OUT *pDeviceResource); RET_STATUS SetExamMode(unsigned int ExamMode); //只考虑V2的对应(mostly RAD) //状态机相关 virtual RET_STATUS DATA_ACTION FramePrep();//清除DAP virtual RET_STATUS DATA_ACTION FrameReady(); virtual RET_STATUS DATA_ACTION FrameOut();//每次曝光后读取 virtual RET_STATUS DATA_ACTION FrameEnd();//读取Dap virtual RET_STATUS DATA_ACTION FramePost(); //3个全局退出&错误Action virtual RET_STATUS DATA_ACTION SeqError(); virtual RET_STATUS DATA_ACTION SeqEnd(); virtual RET_STATUS DATA_ACTION FrameError(); //1个Recover virtual RET_STATUS DATA_ACTION FrameRecover(); virtual RET_STATUS DATA_ACTION SeqRecover(); virtual int DATA_ACTION GetValue(FLOAT PARAM_OUT &Value, int PARAM_IN ParamType); virtual int DATA_ACTION SetValue(FLOAT PARAM_IN Value, int PARAM_IN ParamType); virtual int SetValue_ReferenceAirKerma(FLOAT PARAM_IN Value); //0:uGym2 1:mGycm2 virtual int DATA_ACTION SetDAPUnitMode(int PARAM_IN mode); };