DIOSBoardProtocolParser.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #pragma once
  2. using namespace DIOS::Dev::Communication::Detail;
  3. namespace DIOS::Dev::Detail::MachineryECOM
  4. {
  5. enum PacketClass
  6. {
  7. PC_NAN = -1,
  8. PC_NOTIFY,
  9. };
  10. enum PacketNotifyType
  11. {
  12. PNT_NAN = -1,
  13. PNT_HANDSWITCH_FIRST_PRESSED,
  14. PNT_HANDSWITCH_FIRST_RELEASE,
  15. PNT_HANDSWITCH_SECOND_PRESSED,
  16. PNT_HANDSWITCH_SECOND_RELEASE,
  17. PNT_PWM_OFFSET,
  18. PNT_XRAY_ON,
  19. PNT_XRAY_OFF,
  20. PNT_TUBE_HEIGHT_AD,
  21. PNT_TUBE_ANGLE_LOW_LIMIT,
  22. PNT_TUBE_ANGLE_LEAVE_LOW_LIMIT,
  23. PNT_TUBE_ANGLE_HIGH_LIMIT,
  24. PNT_TUBE_ANGLE_LEAVE_HIGH_LIMIT,
  25. PNT_TUBE_ANGLE_ENCODER,
  26. PNT_TUBE_ANGLE_ENCODER_Z_CLEAR,
  27. PNT_TUBE_HEIGHT_ENCODER,
  28. PNT_TUBE_HEIGHT_ENCODER_Z_CLEAR,
  29. PNT_TUBE_HEIGHT_LOW_LIMIT,
  30. PNT_TUBE_HEIGHT_HIGH_LIMIT,
  31. PNT_TUBE_HEIGHT_LEAVE_LOW_LIMIT,
  32. PNT_TUBE_HEIGHT_LEAVE_HIGH_LIMIT,
  33. PNT_TUBE_HORIZONTAL_ENCODER,
  34. PNT_TUBE_HORIZONTAL_ENCODER_Z_CLEAR,
  35. PNT_TUBE_HORIZONTAL_LEFT_LIMIT,
  36. PNT_TUBE_HORIZONTAL_RIGHT_LIMIT,
  37. PNT_TUBE_HORIZONTAL_LEAVE_LEFT_LIMIT,
  38. PNT_TUBE_HORIZONTAL_LEAVE_RIGHT_LIMIT,
  39. PNT_SYSTEM_RESET_START,
  40. PNT_SYSTEM_RESET_STOP,
  41. PNT_CAN,
  42. PNT_SYSTEM_RESET_SWING_START,
  43. PNT_SYSTEM_RESET_SWING_STOP,
  44. PNT_SYSTEM_RESET_CIRCULAR_START,
  45. PNT_SYSTEM_RESET_CIRCULAR_STOP,
  46. PNT_TUBE_HEIGHT_CONTROLLER_DIRECTION_1_START,
  47. PNT_TUBE_HEIGHT_CONTROLLER_DIRECTION_1_STOP,
  48. PNT_TUBE_HEIGHT_CONTROLLER_DIRECTION_2_START,
  49. PNT_TUBE_HEIGHT_CONTROLLER_DIRECTION_2_STOP,
  50. PNT_TUBE_ANGLE_CONTROLLER_DIRECTION_1_START,
  51. PNT_TUBE_ANGLE_CONTROLLER_DIRECTION_1_STOP,
  52. PNT_TUBE_ANGLE_CONTROLLER_DIRECTION_2_START,
  53. PNT_TUBE_ANGLE_CONTROLLER_DIRECTION_2_STOP,
  54. PNT_CARM_SCANNING_SWITCH_CIRCULAR,
  55. PNT_CARM_SCANNING_SWITCH_SWING,
  56. PNT_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_1_START,
  57. PNT_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_1_STOP,
  58. PNT_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_2_START,
  59. PNT_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_2_STOP,
  60. };
  61. struct PWMOffsetPacket;
  62. struct TubeLineADPacket;
  63. struct EncoderPacket;
  64. struct CanDeviceData;
  65. class DIOSBoardProtocolParser
  66. {
  67. public:
  68. static PacketClass IdentifyPacketClass(SCFPacket *packet);
  69. static PacketNotifyType IdentifyPacketNotifyType(SCFPacket *packet);
  70. static bool ParsePWMOffsetPacket(SCFPacket *packet, PWMOffsetPacket *outpacket);
  71. static bool ParseTubeHeightADPacket(SCFPacket *packet, TubeLineADPacket *outpacket);
  72. static bool ParseEncoderPacket(SCFPacket *packet, EncoderPacket *outpacket);
  73. static bool ParseCanPacket(SCFPacket *packet, CanDeviceData *outpacket);
  74. };
  75. }