DIOSBoardProtocolParser.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #pragma once
  2. namespace DiosCtrlBox
  3. {
  4. enum PacketClass
  5. {
  6. PC_NAN = -1,
  7. PC_NOTIFY,
  8. };
  9. enum PacketNotifyType
  10. {
  11. PNT_NAN = -1,
  12. PNT_HANDSWITCH_FIRST_PRESSED,
  13. PNT_HANDSWITCH_FIRST_RELEASE,
  14. PNT_HANDSWITCH_SECOND_PRESSED,
  15. PNT_HANDSWITCH_SECOND_RELEASE,
  16. PNT_PWM_OFFSET,
  17. PNT_XRAY_ON,
  18. PNT_XRAY_OFF,
  19. PNT_TUBE_HEIGHT_AD,
  20. PNT_TUBE_ANGLE_LOW_LIMIT,
  21. PNT_TUBE_ANGLE_LEAVE_LOW_LIMIT,
  22. PNT_TUBE_ANGLE_HIGH_LIMIT,
  23. PNT_TUBE_ANGLE_LEAVE_HIGH_LIMIT,
  24. PNT_TUBE_ANGLE_ENCODER,
  25. PNT_TUBE_ANGLE_ENCODER_Z_CLEAR,
  26. PNT_TUBE_HEIGHT_ENCODER,
  27. PNT_TUBE_HEIGHT_ENCODER_Z_CLEAR,
  28. PNT_TUBE_HEIGHT_LOW_LIMIT,
  29. PNT_TUBE_HEIGHT_HIGH_LIMIT,
  30. PNT_TUBE_HEIGHT_LEAVE_LOW_LIMIT,
  31. PNT_TUBE_HEIGHT_LEAVE_HIGH_LIMIT,
  32. PNT_SYSTEM_RESET_START,
  33. PNT_SYSTEM_RESET_STOP,
  34. PNT_CAN,
  35. };
  36. struct PWMOffsetPacket;
  37. struct TubeHeightADPacket;
  38. struct EncoderPacket;
  39. struct CanDeviceData;
  40. class DIOSBoardProtocolParser
  41. {
  42. public:
  43. static PacketClass IdentifyPacketClass(SCFPacket *packet);
  44. static PacketNotifyType IdentifyPacketNotifyType(SCFPacket *packet);
  45. static bool ParsePWMOffsetPacket(SCFPacket *packet, PWMOffsetPacket *outpacket);
  46. static bool ParseTubeHeightADPacket(SCFPacket *packet, TubeHeightADPacket *outpacket);
  47. static bool ParseEncoderPacket(SCFPacket *packet, EncoderPacket *outpacket);
  48. static bool ParseCanPacket(SCFPacket *packet, CanDeviceData *outpacket);
  49. };
  50. }