ICommunicate.h 5.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #pragma once
  2. #include "IOInterfaceMapper.h"
  3. namespace DIOS::Dev::Detail::MachineryECOM
  4. {
  5. class ICommunicateEntity;
  6. class ICommunicate
  7. {
  8. public:
  9. ICommunicate();
  10. virtual ~ICommunicate();
  11. public:
  12. virtual void OnCommunicationEstablished(ICommunicateEntity *communicate) = 0;
  13. virtual void LoadCommunicationInterfaceIDs(std::map<string, int> &interfaceIds);
  14. virtual void AttachCommunicateID(int interfaceID);
  15. virtual int GetInterfaceID(const std::string &key);
  16. protected:
  17. int m_communicateInterfaceID;
  18. std::map<string, int> m_functionIds;
  19. };
  20. //以下定义通信接口 ID 与功能键映射的键值
  21. const std::string ID_TUBE_HEIGHT_SERVO_ON = "ID_TUBE_HEIGHT_SERVO_ON";
  22. const std::string ID_TUBE_ANGLE_SERVO_ON = "ID_TUBE_ANGLE_SERVO_ON";
  23. const std::string ID_COMMUNICATE_INTERFACE = "ID_COMMUNICATE_INTERFACE";
  24. const std::string ID_HAND_SWITCH_GEAR_FIRST = "ID_HAND_SWITCH_GEAR_FIRST"; //一级手闸
  25. const std::string ID_HAND_SWITCH_GEAR_SECOND = "ID_HAND_SWITCH_GEAR_SECOND"; //二级手闸
  26. const std::string ID_TUBE_HEIGHT_PULSE = "ID_TUBE_HEIGHT_PULSE"; //球管垂直运动脉冲
  27. const std::string ID_TUBE_HEIGHT_DIRECTION = "ID_TUBE_HEIGHT_DIRECTION"; //球管垂直运动方向
  28. const std::string ID_TUBE_HEIGHT_AD = "ID_TUBE_HEIGHT_AD"; //球管高度AD数据
  29. const std::string ID_TUBE_ANGLE_AD = "ID_TUBE_ANGLE_AD"; //球管角度AD数据
  30. const std::string ID_TUBE_HEIGHT_ENCODER_AXIS_A = "ID_TUBE_HEIGHT_ENCODER_AXIS_A"; //球管高度编码器A轴
  31. const std::string ID_TUBE_HEIGHT_ENCODER_AXIS_B = "ID_TUBE_HEIGHT_ENCODER_AXIS_B"; //球管高度编码器B轴
  32. const std::string ID_TUBE_HEIGHT_ENCODER_AXIS_Z = "ID_TUBE_HEIGHT_ENCODER_AXIS_Z"; //球管高度编码器Z轴
  33. const std::string ID_TUBE_ANGLE_HIGH_LIMIT = "ID_TUBE_ANGLE_HIGH_LIMIT"; //球管旋转上限位
  34. const std::string ID_TUBE_ANGLE_LOW_LIMIT = "ID_TUBE_ANGLE_LOW_LIMIT"; //球管旋转下限位
  35. const std::string ID_TUBE_ANGLE_ENCODER_AXIS_A = "ID_TUBE_ANGLE_ENCODER_AXIS_A"; //球管旋转编码器A轴
  36. const std::string ID_TUBE_ANGLE_ENCODER_AXIS_B = "ID_TUBE_ANGLE_ENCODER_AXIS_B"; //球管旋转编码器B轴
  37. const std::string ID_TUBE_ANGLE_ENCODER_AXIS_Z = "ID_TUBE_ANGLE_ENCODER_AXIS_Z"; //球管旋转编码器Z轴
  38. const std::string ID_TUBE_ANGLE_DIRECTION = "ID_TUBE_ANGLE_DIRECTION"; //球管角度方向
  39. const std::string ID_TUBE_ANGLE_PULSE = "ID_TUBE_ANGLE_PULSE"; //球管角度脉冲
  40. const std::string ID_XRAYON_NOTIFY = "ID_XRAYON_NOTIFY"; //发生器射线指示
  41. const std::string ID_POWER = "ID_POWER"; //5V电源
  42. const std::string ID_DETECTOR_HEIGHT_AD = "ID_DETECTOR_HEIGHT_AD"; //探测器高度AD数据
  43. const std::string ID_TUBE_HEIGHT_ENCODER = "ID_TUBE_HEIGHT_ENCODER"; //球管高度编码器
  44. const std::string ID_TUBE_ANGLE_ENCODER = "ID_TUBE_ANGLE_ENCODER"; //球管角度编码器
  45. const std::string ID_DETECTOR_HEIGHT_ENCODER = "ID_DETECTOR_HEIGHT_ENCODER"; //探测器高度编码器
  46. const std::string ID_SOFTWARE_CHAIN_INTERFACE_A = "ID_SOFTWARE_CHAIN_INTERFACE_A"; //连锁器接口A
  47. const std::string ID_SOFTWARE_CHAIN_INTERFACE_B = "ID_SOFTWARE_CHAIN_INTERFACE_B"; //连锁器接口B
  48. const std::string ID_EXPOSURE_TRIGGER = "ID_EXPOSURE_TRIGGER"; //同步盒信号端口触发
  49. const std::string ID_MCU = "ID_MCU"; //MCU
  50. const std::string ID_RS232 = "ID_RS232"; //RS232/485
  51. const std::string ID_TUBE_HEIGHT_HIGH_LIMIT = "ID_TUBE_HEIGHT_HIGH_LIMIT"; //球管高度上限位
  52. const std::string ID_TUBE_HEIGHT_LOW_LIMIT = "ID_TUBE_HEIGHT_LOW_LIMIT"; //球管高度下限位
  53. const std::string ID_CAN = "ID_CAN"; //can
  54. const std::string ID_TUBE_ANGLE_BRAKE = "ID_TUBE_ANGLE_BRAKE"; //球管旋转刹车信号
  55. const std::string ID_TUBE_HEIGHT_BRAKE = "ID_TUBE_HEIGHT_BRAKE"; //球管垂直刹车信号
  56. const std::string ID_TUBE_HORIZONTAL_BRAKE = "ID_TUBE_HORIZONTAL_BRAKE"; //球管水平刹车信号
  57. const std::string ID_FLUORO_SWITCH_OUT = "ID_FLUORO_SWITCH_OUT"; //脚闸信号输出
  58. const std::string ID_TUBE_LINE_MOTION_SWITCH_OUT = "ID_TUBE_LINE_MOTION_SWITCH_OUT";//球管水平和垂直运动切换开关
  59. const std::string ID_TUBE_HORIZONTAL_SERVO_ON = "ID_TUBE_HORIZONTAL_SERVO_ON"; //球管水平Servo On
  60. const std::string ID_TUBE_HORIZONTAL_PULSE = "ID_TUBE_HORIZONTAL_PULSE"; //球管水平运动脉冲
  61. const std::string ID_TUBE_HORIZONTAL_DIRECTION = "ID_TUBE_HORIZONTAL_DIRECTION"; //球管水平运动方向
  62. const std::string ID_TUBE_HORIZONTAL_AD = "ID_TUBE_HORIZONTAL_AD"; //球管水平A/D
  63. const std::string ID_TUBE_HORIZONTAL_ENCODER_AXIS_A = "ID_TUBE_HORIZONTAL_ENCODER_AXIS_A"; //球管水平编码器A轴
  64. const std::string ID_TUBE_HORIZONTAL_ENCODER_AXIS_B = "ID_TUBE_HORIZONTAL_ENCODER_AXIS_B"; //球管水平编码器B轴
  65. const std::string ID_TUBE_HORIZONTAL_ENCODER_AXIS_Z = "ID_TUBE_HORIZONTAL_ENCODER_AXIS_Z"; //球管水平编码器Z轴
  66. const std::string ID_TUBE_HORIZONTAL_ENCODER = "ID_TUBE_HORIZONTAL_ENCODER"; //球管水平编码器
  67. const std::string ID_TUBE_HORIZONTAL_LEFT_LIMIT = "ID_TUBE_HORIZONTAL_LEFT_LIMIT"; //球管水平左限位
  68. const std::string ID_TUBE_HORIZONTAL_RIGHT_LIMIT = "ID_TUBE_HORIZONTAL_RIGHT_LIMIT"; //球管水平右限位
  69. const std::string ID_DETECTOR_HORIZONTAL_AD = "ID_DETECTOR_HORIZONTAL_AD"; //探测器高度AD数据
  70. const std::string ID_DETECTOR_HORIZONTAL_ENCODER = "ID_DETECTOR_HORIZONTAL_ENCODER"; //探测器高度AD数据
  71. }