protocol_usb_enums.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. // // ******************************************************************
  2. // // /\ /| @File protocol_Usb_enums.h
  3. // // \ V/ @Brief
  4. // // | "") @Author lijinwen, ghz005@uni-trend.com.cn
  5. // // / | @Creation 2024-05-17
  6. // // / \\ @Modified 2024-06-24
  7. // // *(__\_\
  8. // // ******************************************************************
  9. #pragma once
  10. #include <cstdint>
  11. namespace Protocol
  12. {
  13. class UsbEnums
  14. {
  15. public:
  16. enum class EventInfoTitles
  17. {
  18. UNKNOW,
  19. INDEX,
  20. START_TIME,
  21. SYNC,
  22. SOF,
  23. SETUP,
  24. PID,
  25. DATA0,
  26. DATA1,
  27. DATA2,
  28. MDATA,
  29. ADDR,
  30. ACK,
  31. //IN,关键字
  32. TIN,
  33. //OUT,关键字
  34. TOUT,
  35. NAK,
  36. STALL,
  37. NYET,
  38. FNUM,
  39. CRC5,
  40. CRC16,
  41. EOP,
  42. //ERROR, 关键字
  43. ERR,
  44. };
  45. enum class UsbSpeed
  46. {
  47. LOW_SPEED = 0,
  48. FULL_SPEED = 1,
  49. HIGH_SPEED = 2,
  50. };
  51. enum class UsbFieldType
  52. {
  53. NO_DEFINE = 0,
  54. SOP,
  55. SYNC,
  56. PID,
  57. ADDR,
  58. FRAME,
  59. DATA,
  60. CRC
  61. };
  62. enum class UsbPacketType
  63. {
  64. NO_DEFINE = 0,
  65. TOKEN,
  66. DATA,
  67. HAND_SHAKE,
  68. SPECIAL,
  69. };
  70. enum class Condition
  71. {
  72. SYNC,
  73. RESET,
  74. PAUSE,
  75. RESUME,
  76. PACKAGE_END,
  77. TOKEN_PACKAGE,
  78. HANDSHAKE_PACKAGE,
  79. DATA_PACKAGE,
  80. SPECIAL,
  81. ERR,//ERROR是常量 ljw
  82. };
  83. enum class SignalRate
  84. {
  85. LOW_RATE,
  86. FULL_RATE,
  87. HIGH_RATE,
  88. };
  89. enum class TokenPackageType //: uint8_t
  90. {
  91. OUT_TYPE = 0b0001,//1 // OUT 是常量 ljw
  92. SOF = 0b0101, //5
  93. IN_TYPE = 0b1001, //9 // IN 是常量 ljw
  94. SETUP = 0b1101,//13
  95. };
  96. enum class SpecialPacketType //: uint8_t
  97. {
  98. // Pre = 0b1100,
  99. ERR = 0b1100,
  100. SPLIT = 0b1000,
  101. PING = 0b0100,
  102. REMAIN = 0b000,
  103. };
  104. enum class HandshakePackageType //: uint8_t
  105. {
  106. ACK = 0b0010, //2
  107. NAK = 0b1010, //10
  108. STALL = 0b1110, //14
  109. NYET = 0b0110, //6
  110. };
  111. enum class DataPackageType //: uint8_t
  112. {
  113. DATA0 = 0b0011, //3
  114. DATA1 = 0b1011, //11
  115. DATA2 = 0b0111, //7
  116. M_DATA = 0b1111, //15
  117. };
  118. enum class ErrorPackageType
  119. {
  120. PIDCRC,
  121. CRC5,
  122. CRC16,
  123. BIT_FILL,
  124. };
  125. enum class DataRelation
  126. {
  127. LT,
  128. GT,
  129. LTEQ,
  130. GTEQ,
  131. EQ,
  132. NEQ,
  133. IN_TYPE,// IN是常量 ljw
  134. OUT_TYPE,// OUT是常量 ljw
  135. };
  136. };
  137. }