#pragma once #include #include "DriverConfigInfo.hpp" #include "DIOS.Dev.IODevice.hpp" #include "DIOS.Dev.IODevice.Detail.hpp" #include "Generator.BasicMoulds.hpp" #include "Logger.temp.h" namespace nsDetail = DIOS::Dev::Detail; #ifndef DIOSDEVGENDEVICEMOULD_EXPORTS #ifdef _WIN64 #ifdef _DEBUG #pragma comment(lib, "DIOS.Dev.Generator.Mould64D.lib") #else #pragma comment(lib, "DIOS.Dev.Generator.Mould64.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "DIOS.Dev.Generator.MouldD.lib") #else #pragma comment(lib, "DIOS.Dev.Generator.MouldD.lib") #endif #endif #endif #ifdef DIOSDEVGENDEVICEMOULD_EXPORTS #define _DIOSDEVGENDEVICEMOULD_API __declspec(dllexport) #else #define _DIOSDEVGENDEVICEMOULD_API __declspec(dllimport) #endif #pragma warning (disable:4251) // warning C4251: class “DIOS::Dev::Detail::Generator::DoseUnit”需要有 dll 接口由 class“DIOS::Dev::Detail::Generator::GeneratorMould”的客户端使用 namespace DIOS::Dev::Detail::Generator { //----------------------------------------------------------------------------- // DoseUnit //----------------------------------------------------------------------------- class _DIOSDEVGENDEVICEMOULD_API DoseUnit : public IOLogicUnit { public: DoseUnit() {}; virtual ~DoseUnit() {}; public: std::unique_ptr m_KV; std::unique_ptr m_MA; std::unique_ptr m_MS; std::unique_ptr m_MAS; std::unique_ptr m_Techmode; std::unique_ptr m_WS; std::unique_ptr m_Focus; std::unique_ptr m_AECField; std::unique_ptr m_AECFilm; std::unique_ptr m_AECDensity; std::unique_ptr m_HE; std::unique_ptr m_PostKV; std::unique_ptr m_PostMA; std::unique_ptr m_PostMS; std::unique_ptr m_PostMAS; std::unique_ptr m_GenSynState; std::unique_ptr m_GenState; std::unique_ptr m_GenTotalExpNumber; std::unique_ptr m_GenTotalAcqTimes; std::unique_ptr m_GenTubeCoolWaitTimes; std::unique_ptr m_GenTubeOverLoadNumber; std::unique_ptr m_GenCurrentExpNumber; std::unique_ptr m_ExpMode; std::unique_ptr m_FrameRate; std::unique_ptr m_Modality; std::unique_ptr m_BatteryChargeState; std::unique_ptr m_ReferenceAirKerma; std::unique_ptr m_KVList; std::unique_ptr m_mAsList; }; //----------------------------------------------------------------------------- // GeneratorMould //----------------------------------------------------------------------------- namespace nDev = DIOS::Dev; class _DIOSDEVGENDEVICEMOULD_API GeneratorMould { public: GeneratorMould (); ~GeneratorMould (); protected: virtual void Register(Dispatch* Dispatch); virtual void RegisterKV (Dispatch* Dispatch); // 子类可能希望注册更多的 virtual void RegisterMA(Dispatch* Dispatch); virtual void RegisterMS(Dispatch* Dispatch); virtual void RegisterMAS(Dispatch* Dispatch); virtual void RegisterFOCUS(Dispatch* Dispatch); virtual void RegisterTECHMODE(Dispatch* Dispatch); virtual void RegisterAEC(Dispatch* Dispatch); virtual void RegisterExpEnable(Dispatch* Dispatch); virtual void RegisterGeneratortoSyncStatus(Dispatch* Dispatch); private: //caoxue nDev::RET_STATUS JSIncKV (std::string in, std::string& out); nDev::RET_STATUS JSDecKV (std::string in, std::string& out); nDev::RET_STATUS JSGetKV (std::string& out); nDev::RET_STATUS JSSetKV (std::string in, std::string& out); nDev::RET_STATUS JSIncMA(std::string in, std::string& out); nDev::RET_STATUS JSDecMA(std::string in, std::string& out); nDev::RET_STATUS JSGetMA(std::string& out); nDev::RET_STATUS JSSetMA(std::string in, std::string& out); nDev::RET_STATUS JSIncMS(std::string in, std::string& out); nDev::RET_STATUS JSDecMS(std::string in, std::string& out); nDev::RET_STATUS JSGetMS(std::string& out); nDev::RET_STATUS JSSetMS(std::string in, std::string& out); nDev::RET_STATUS JSIncMAS(std::string in, std::string& out); nDev::RET_STATUS JSDecMAS(std::string in, std::string& out); nDev::RET_STATUS JSGetMAS(std::string& out); nDev::RET_STATUS JSSetMAS(std::string in, std::string& out); nDev::RET_STATUS JSGetTECHMODE(std::string& out); nDev::RET_STATUS JSSetTECHMODE(std::string in, std::string& out); nDev::RET_STATUS JSGetFOCUS(std::string& out); nDev::RET_STATUS JSSetFOCUS(std::string in, std::string& out); nDev::RET_STATUS JSGetAECDENSITY(std::string& out); nDev::RET_STATUS JSSetAECDENSITY(std::string in, std::string& out); nDev::RET_STATUS JSGetAECFIELD(std::string& out); nDev::RET_STATUS JSSetAECFIELD(std::string in, std::string& out); nDev::RET_STATUS JSGetAECFILM(std::string& out); nDev::RET_STATUS JSSetAECFILM(std::string in, std::string& out); nDev::RET_STATUS JSGetWORKSTATION(std::string& out); nDev::RET_STATUS JSSetWORKSTATION(std::string in, std::string& out); nDev::RET_STATUS JSGetHE(std::string& out); nDev::RET_STATUS JSQueryHE(std::string in, std::string& out); nDev::RET_STATUS JSGetPOSTKV(std::string& out); nDev::RET_STATUS JSObtainPOSTKV(std::string in, std::string& out); nDev::RET_STATUS JSGetPOSTMA(std::string& out); nDev::RET_STATUS JSObtainPOSTMA(std::string in, std::string& out); nDev::RET_STATUS JSGetPOSTMS(std::string& out); nDev::RET_STATUS JSObtainPOSTMS(std::string in, std::string& out); nDev::RET_STATUS JSGetPOSTMAS(std::string& out); nDev::RET_STATUS JSObtainPOSTMAS(std::string in, std::string& out); nDev::RET_STATUS JSSetAPR (std::string in, std::string& out); nDev::RET_STATUS JSGetGeneratortoSyncStatus(std::string& out); nDev::RET_STATUS JSSetGeneratortoSyncStatus(std::string in, std::string& out); nDev::RET_STATUS JSGetGeneratortoStatus(std::string& out); nDev::RET_STATUS JSGetGenTotalExpNumber(std::string& out); nDev::RET_STATUS JSGetGenTotalAcqTimes(std::string& out); nDev::RET_STATUS JSGetGenTubeCoolWaitTimes(std::string& out); nDev::RET_STATUS JSGetGenTubeOverLoadNumber(std::string& out); nDev::RET_STATUS JSGetGenCurrentExpNumber(std::string& out); nDev::RET_STATUS JSGetGeneratorBatteryChargState(std::string& out); nDev::RET_STATUS JSGetGeneratorReferenceAirKerma(std::string& out); nDev::RET_STATUS JSGetGeneratorKVList(std::string& out); nDev::RET_STATUS JSGetGeneratormAsList(std::string& out); nDev::RET_STATUS JSSetExpEnable(std::string in, std::string& out); nDev::RET_STATUS JSSetExpDisable(std::string in, std::string& out); nDev::RET_STATUS JSReset(std::string in, std::string& out); nDev::RET_STATUS JSSetExpMode(std::string in, std::string& out); nDev::RET_STATUS JSSetFrameRate(std::string in, std::string& out); nDev::RET_STATUS JSSetModality(std::string in, std::string& out); protected: virtual nDev::RET_STATUS IncKV () = 0; virtual nDev::RET_STATUS DecKV () = 0; virtual float GetKV (); virtual nDev::RET_STATUS SetKV (float value) = 0; virtual nDev::RET_STATUS IncMA () = 0; virtual nDev::RET_STATUS DecMA () = 0; virtual float GetMA (); virtual nDev::RET_STATUS SetMA (float value) = 0; virtual nDev::RET_STATUS IncMS () = 0; virtual nDev::RET_STATUS DecMS () = 0; virtual float GetMS (); virtual nDev::RET_STATUS SetMS (float value) = 0; virtual nDev::RET_STATUS IncMAS () = 0; virtual nDev::RET_STATUS DecMAS () = 0; virtual float GetMAS (); virtual nDev::RET_STATUS SetMAS (float value) = 0; virtual int GetTechmode (); virtual nDev::RET_STATUS SetTechmode (int value) = 0; virtual int GetFocus (); virtual nDev::RET_STATUS SetFocus (int value) = 0; virtual int GetAECDensity (); virtual nDev::RET_STATUS SetAECDensity (int value) = 0; virtual int GetAECField (); virtual nDev::RET_STATUS SetAECField (int value) = 0; virtual int GetAECFilm (); virtual nDev::RET_STATUS SetAECFilm (int value) = 0; virtual int GetWS (); virtual nDev::RET_STATUS SetWS (const std::string value) = 0; virtual int GetHE(); virtual nDev::RET_STATUS QueryHE(int& value) = 0; virtual float GetPostKV(); virtual nDev::RET_STATUS QueryPostKV(float& value) = 0; virtual float GetPostMA(); virtual nDev::RET_STATUS QueryPostMA(float& value) = 0; virtual float GetPostMS(); virtual nDev::RET_STATUS QueryPostMS(float& value) = 0; virtual float GetPostMAS(); virtual nDev::RET_STATUS QueryPostMAS(float& value) = 0; virtual int GetGenSynState(); virtual nDev::RET_STATUS SetGenSynState(int value) = 0; virtual int GetGenState(); virtual nDev::RET_STATUS SetGenState(int value) = 0; virtual int GetGenTotalExpNumber(); virtual int GetGenTotalAcqTimes(); virtual int GetGenTubeCoolWaitTimes(); virtual int GetGenTubeOverLoadNumber(); virtual int GetGenCurrentExpNumber(); virtual int GetGeneratorBatteryChargState(); virtual int GetGeneratorReferenceAirKerma(); virtual string GetGeneratorKVList(); virtual string GetGeneratormAsList(); virtual nDev::RET_STATUS SetAPR (const _tAPRArgs & t) = 0; virtual nDev::RET_STATUS SetExpEnable() = 0; virtual nDev::RET_STATUS SetExpDisable() = 0; virtual nDev::RET_STATUS Reset()=0; virtual nDev::RET_STATUS SetExpMode(std::string value) = 0; virtual nDev::RET_STATUS SetFrameRate(FLOAT frameRate) = 0; protected: DoseUnit m_DoseUnit; }; } namespace DIOS::Dev::Detail::Generator { class _DIOSDEVGENDEVICEMOULD_API DriverMould : public DIOS::Dev::IODriver { public: DriverMould (); ~DriverMould (); virtual std::string GetGUID () const; protected: std::list m_ConfigInfo; }; }