CCOS.Dev.CollimatorMoudle.hpp 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #pragma once
  2. #include <string>
  3. #include "ResDataObject.h"
  4. #include "CCOS.Dev.IODevice.hpp"
  5. #include "CCOS.Dev.IODevice.Detail.hpp"
  6. namespace CCOS::Dev::Detail::Collimator
  7. {
  8. //-----------------------------------------------------------------------------
  9. // Collimator
  10. //-----------------------------------------------------------------------------
  11. namespace nsDev = CCOS::Dev;
  12. static const char* CollimatorUnitType = "{566EC9F1-CE5A-4B31-9D2A-E9E80B4CA0CC}";
  13. class CollimatorDevice : public IODeviceDetail
  14. {
  15. using super = IODeviceDetail;
  16. unsigned short m_nXSize;
  17. unsigned short m_nYSize;
  18. unsigned short m_nFilter;
  19. unsigned short m_nSID;
  20. unsigned short m_nAngle;
  21. unsigned short m_nMode;
  22. void FireNotify(string key, unsigned short value);
  23. protected:
  24. std::shared_ptr <CCOS::Dev::IOEventCenter> m_EventCenter;
  25. public:
  26. CollimatorDevice(std::shared_ptr <CCOS::Dev::IOEventCenter> EventCenter);
  27. ~CollimatorDevice();
  28. virtual std::string GetGUID() const override;
  29. virtual bool Prepare();
  30. virtual void Register();
  31. RET_STATUS JSSetStudyInfo(std::string in, std::string& out);
  32. RET_STATUS JSSetTechParamsInfo(std::string in, std::string& out);
  33. RET_STATUS JSSetCollimatorSize(std::string in, std::string& out);
  34. RET_STATUS JSSetCollimatorSID(std::string in, std::string& out);
  35. RET_STATUS JSSetCollimatorFilter(std::string in, std::string& out);
  36. RET_STATUS JSSetCollimatorAngle(std::string in, std::string& out);
  37. RET_STATUS JSSetCollimatorMode(std::string in, std::string& out);
  38. RET_STATUS JSGetCollimatorXSize(std::string& out);
  39. RET_STATUS JSGetCollimatorYSize(std::string& out);
  40. RET_STATUS JSGetCollimatorSID(std::string& out);
  41. RET_STATUS JSGetCollimatorFilter(std::string& out);
  42. RET_STATUS JSGetCollimatorAngle(std::string& out);
  43. RET_STATUS JSGetCollimatorMode(std::string& out);
  44. virtual RET_STATUS SetStudyInfo(ResDataObject& pParam);
  45. virtual RET_STATUS SetTechParamsInfo(ResDataObject& pParam);
  46. virtual RET_STATUS SetCollimatorSize(unsigned short xsize, unsigned short ysize);
  47. virtual RET_STATUS SetCollimatorSID(unsigned short sid);
  48. virtual RET_STATUS SetCollimatorFilter(unsigned short pParams);
  49. virtual RET_STATUS SetCollimatorAngle(unsigned short pParams);
  50. virtual RET_STATUS SetCollimatorMode(unsigned short pParams);
  51. RET_STATUS UpdateCollimatorXSize(unsigned short Param);
  52. RET_STATUS UpdateCollimatorYSize(unsigned short Param);
  53. RET_STATUS UpdateCollimatorSID(unsigned short Param);
  54. RET_STATUS UpdateCollimatorAngle(unsigned short Param);
  55. RET_STATUS UpdateCollimatorFilter(unsigned short Param);
  56. RET_STATUS UpdateCollimatorMode(unsigned short Param);
  57. };
  58. }