#pragma once #include "IODeviceWithSCF.tlh" #include "IODeviceWithSCF.tli" #include "DIOS.Dev.Collimator.Mould.hpp" namespace DIOS::Dev::Detail::SYNBOX { namespace nsCol = DIOS::Dev::Detail::Collimator; class CollimatorDevice : public nsCol::ColliamtorMould { public: using super = ColliamtorMould; CollimatorDevice(std::shared_ptr center, nsSCF::SCF SCF); ~CollimatorDevice(); public: void Register(Dispatch* Dispatch); void OnCallback(); ResDataObject ResDYNConfig; int DealReceiveData(string sCmdID, const char* pData, int Datalen); protected: virtual RET_STATUS SetCollimatorMode(int pParams) override; virtual RET_STATUS SetCollimatorSize(float xproportion, float yproportion) override; virtual RET_STATUS SetCollimatorSID(int sid) override; virtual RET_STATUS SetCollimatorFilter(int pParams) override; virtual RET_STATUS SetCollimatorAngle(float pParams) override; virtual RET_STATUS SetCollimatorLight(int pParams) override; private: nsSCF::SCF m_SCF; std::shared_ptr EventCenter; void FireNotify(std::string key, std::string context); bool SendCANBySCF(int cmdID, unsigned char* cmd, int cmdlen); }; }