#pragma once // 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 GENERATORDRIVER_EXPORTS // 符号编译的。在使用此 DLL 的 // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将 // GENERATORDRIVER_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的 // 符号视为是被导出的。 #ifndef GENERATORDRIVER_EXPORTS #ifdef _WIN64 #ifdef _DEBUG #pragma comment(lib, "GeneratorDriverX64D.lib") #else #pragma comment(lib, "GeneratorDriverX64.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "GeneratorDriverD.lib") #else #pragma comment(lib, "GeneratorDriver.lib") #endif #endif #endif #include "LogicDriver.h" #include "Generator_Model_Def.h" #ifdef GENERATORDRIVER_EXPORTS #define GENERATORDRIVER_API __declspec(dllexport) #define GENERATORDRIVER_C_API extern "C" __declspec(dllexport) #else #define GENERATORDRIVER_API __declspec(dllimport) #define GENERATORDRIVER_C_API extern "C" __declspec(dllimport) #endif // 此类是从 GeneratorDriver.dll 导出的 class GENERATORDRIVER_API GeneratorDriver :public LogicDriver { //ExamModeList GenExamModeInfoListEx *m_pExamModeList; //Cur Exam Mode ResDataObject *m_pCurrentExamMode; //Generator Status ResDataObject *m_pGeneratorStatus; ResDataObject *m_pGenExpStatus; public: GeneratorDriver(void); virtual ~GeneratorDriver(void); ConfigInfo *m_pGenVender; ConfigInfo *m_pGenModel; ConfigInfo *m_pGenSyncType; ConfigInfo *m_pGenSCFType; ConfigInfo *m_pGenSCFPort; ConfigInfo *m_pGenSCFBaudrate; ConfigInfo *m_pGenSCFBytesize; ConfigInfo *m_pGenSCFParity; ConfigInfo *m_pGenSCFStopbits; ConfigInfo *m_pGenWSTable; ConfigInfo *m_pGenWSWall; ConfigInfo *m_pGenWSFree; ConfigInfo *m_pGenWSTomo; ConfigInfo *m_pGenWSConventional; ConfigInfo *m_pGenSynTable; ConfigInfo *m_pGenSynWall; ConfigInfo *m_pGenSynFree; ConfigInfo *m_pGenSynTomo; ConfigInfo *m_pGenSynConventional; ConfigInfo *m_pGenConsoleRole; ConfigInfo *m_pGenIsConnect; ResDataObject* m_pDeviceConfig; BaseJsonDataObject *m_nTotalExposureNumber; BaseJsonDataObject *m_nTotalAcqTimes; BaseJsonDataObject *m_nTubeCoolWaitTime; BaseJsonDataObject *m_nTubeOverLoadNumber; BaseJsonDataObject *m_nCurrentExposureNumber; //基本接口 virtual bool SYSTEM_CALL GetDeviceType(GUID &DevType); //get device resource virtual RET_STATUS SYSTEM_CALL GetDeviceResource(ResDataObject PARAM_OUT *pDeviceResource); virtual RET_STATUS SYSTEM_CALL GetSEQResource(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 bool SYSTEM_CALL DriverEntry(ResDataObject& PARAM_IN Configuration); //Actions virtual RET_STATUS DATA_ACTION DelExamMode(const char *pExamKey); virtual RET_STATUS DATA_ACTION SelectExamMode(const char *pExamKey); virtual RET_STATUS DATA_ACTION AddExamMode(const char *pExamKey, DWORD WSIndex, WORD SYNCMode, WORD BUCKYIndex, WORD AECChannel); virtual RET_STATUS DATA_ACTION UpdateExamMode(const char *pExamKey, DWORD WSIndex, WORD SYNCMode, WORD BUCKYIndex, WORD AECChannel); virtual RET_STATUS DATA_ACTION GetDeviceConfig(ResDataObject PARAM_OUT *pDeviceConfig); virtual RET_STATUS DATA_ACTION SetDeviceConfig(ResDataObject PARAM_IN *DeviceConfig); virtual RET_STATUS SYSTEM_CALL EnterExam(); virtual RET_STATUS SYSTEM_CALL ExitExam(); virtual RET_STATUS DATA_ACTION SetExpEnable(); virtual RET_STATUS DATA_ACTION SetExpDisable(); virtual RET_STATUS SetTotalExposureNumber(unsigned int num); virtual RET_STATUS GetTotalExposureNumber(unsigned int &num); virtual RET_STATUS SetTotalAcqTimes(unsigned int value); virtual RET_STATUS GetTotalAcqTimes(unsigned int &value); virtual RET_STATUS SetTubeCoolWaitTime(unsigned int value); virtual RET_STATUS GetTubeCoolWaitTime(unsigned int &value); virtual RET_STATUS SetTubeOverLoadNumber(unsigned int value); virtual RET_STATUS GetTubeOverLoadNumber(unsigned int &value); virtual RET_STATUS SetCurrentExposureNumber(unsigned int value); virtual RET_STATUS GetCurrentExposureNumber(unsigned int &value); virtual GENERATOR_STATUS OEM_IF GetGeneratorStatus(); virtual RET_STATUS OEM_IF SetGeneratorStatus(GENERATOR_STATUS status); };