ProtocolUSBEnums.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. // // ******************************************************************
  2. // // /\ /| @File ProtocolUSBEnums.h
  3. // // \ V/ @Brief
  4. // // | "") @Author lijinwen, ghz005@uni-trend.com.cn
  5. // // / | @Creation 2024-1-3
  6. // // / \\ @Modified 2024-1-15
  7. // // *(__\_\
  8. // // ******************************************************************
  9. #pragma once
  10. #include <cstdint>
  11. namespace Protocol
  12. {
  13. class Enums
  14. {
  15. public:
  16. enum class USBFieldType
  17. {
  18. NoDefine = 0,
  19. SOP,
  20. SYNC,
  21. PID,
  22. ADDR,
  23. FRAME,
  24. DATA,
  25. CRC
  26. };
  27. enum class USBPacketType
  28. {
  29. NoDefine = 0,
  30. Token,
  31. Data,
  32. HandShake,
  33. Special,
  34. };
  35. enum class Condition
  36. {
  37. Sync,
  38. Reset,
  39. Pause,
  40. Resume,
  41. PackageEnd,
  42. TokenPackage,
  43. HandshakePackage,
  44. DataPackage,
  45. // Sof,
  46. Special,
  47. Error,
  48. };
  49. enum class SignalRate
  50. {
  51. LowRate,
  52. FullRate,
  53. HighRate,
  54. };
  55. enum class TokenPackageType : uint8_t
  56. {
  57. Out = 0b0001,
  58. SOF = 0b0101,
  59. IN = 0b1001,
  60. SETUP = 0b1101,
  61. };
  62. enum class SpecialPacketType : uint8_t
  63. {
  64. // Pre = 0b1100,
  65. Err = 0b1100,
  66. Split = 0b1000,
  67. Ping = 0b0100,
  68. Remain = 0b000,
  69. };
  70. enum class HandshakePackageType : uint8_t
  71. {
  72. ACK = 0b0010,
  73. NAK = 0b1010,
  74. STALL = 0b1110,
  75. Nyet = 0b0110,
  76. };
  77. enum class DataPackageType : uint8_t
  78. {
  79. Data0 = 0b0011,
  80. Data1 = 0b1011,
  81. Data2 = 0b0111,
  82. MData = 0b1111,
  83. };
  84. enum class ErrorPackageType
  85. {
  86. PIDCRC,
  87. CRC5,
  88. CRC16,
  89. BitFill,
  90. };
  91. enum class DataRelation
  92. {
  93. Lt,
  94. Gt,
  95. Lteq,
  96. Gteq,
  97. Eq,
  98. Neq,
  99. In,
  100. Out,
  101. };
  102. };
  103. }