#pragma once #include #include #include "ResDataObject.h" #include "DIOS.Dev.IODevice.hpp" #include "DIOS.Dev.IODevice.Detail.hpp" namespace DIOS::Dev::Detail::Collimator { //----------------------------------------------------------------------------- // Collimator //----------------------------------------------------------------------------- namespace nsDev = DIOS::Dev; static const char* CollimatorUnitType = "{566EC9F1-CE5A-4B31-9D2A-E9E80B4CA0CC}"; class CollimatorDevice : public IODeviceDetail { using super = IODeviceDetail; void FireNotify(string key, WORD value); protected: std::shared_ptr m_EventCenter; WORD m_nXSize; WORD m_nYSize; WORD m_nFilter; WORD m_nSID; WORD m_nAngle; WORD m_nMode; public: CollimatorDevice(std::shared_ptr EventCenter); ~CollimatorDevice(); virtual std::string GetGUID() const override; virtual bool Prepare(); virtual void Register(); nsDev::RET_STATUS JSSetStudyInfo(std::string in, std::string& out); nsDev::RET_STATUS JSSetTechParamsInfo(std::string in, std::string& out); nsDev::RET_STATUS JSSetCollimatorSize(std::string in, std::string& out); nsDev::RET_STATUS JSSetCollimatorSID(std::string in, std::string& out); nsDev::RET_STATUS JSSetCollimatorFilter(std::string in, std::string& out); nsDev::RET_STATUS JSSetCollimatorAngle(std::string in, std::string& out); nsDev::RET_STATUS JSSetCollimatorMode(std::string in, std::string& out); nsDev::RET_STATUS JSSetCollimatorLight(std::string in, std::string& out); nsDev::RET_STATUS JSGetCollimatorXSize(std::string& out); nsDev::RET_STATUS JSGetCollimatorYSize(std::string& out); nsDev::RET_STATUS JSGetCollimatorSID(std::string& out); nsDev::RET_STATUS JSGetCollimatorFilter(std::string& out); nsDev::RET_STATUS JSGetCollimatorAngle(std::string& out); nsDev::RET_STATUS JSGetCollimatorMode(std::string& out); //nsDev::RET_STATUS JSGetCollimatorLight(std::string& out); virtual RET_STATUS SetStudyInfo(ResDataObject& pParam); virtual RET_STATUS SetTechParamsInfo(ResDataObject& pParam); virtual RET_STATUS SetCollimatorSize(WORD xsize, WORD ysize); virtual RET_STATUS SetCollimatorSID(WORD sid); virtual RET_STATUS SetCollimatorFilter(WORD pParams); virtual RET_STATUS SetCollimatorAngle(WORD pParams); virtual RET_STATUS SetCollimatorMode(WORD pParams); virtual RET_STATUS SetCollimatorLight(WORD pParams); RET_STATUS UpdateCollimatorXSize(WORD Param); RET_STATUS UpdateCollimatorYSize(WORD Param); RET_STATUS UpdateCollimatorSID(WORD Param); RET_STATUS UpdateCollimatorAngle(WORD Param); RET_STATUS UpdateCollimatorFilter(WORD Param); RET_STATUS UpdateCollimatorMode(WORD Param); }; }