HidReport.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. /********************************** (C) COPYRIGHT ******************************
  2. * File Name :HidReport.h
  3. * Author : DL
  4. * Version : V1.1
  5. * Date : 2018/10/21
  6. * Description : A demo for USB compound device created by CH552, support
  7. touch panel , and HID-compliant device.
  8. ********************************************************************************/
  9. #ifndef __HID_REPORT_H__
  10. #define __HID_REPORT_H__
  11. #include "TouchCommon.h"
  12. #include "typedef.h"
  13. typedef enum _EN_COMMAND_TYPE {
  14. I2C_READ = 0,
  15. I2C_WRITE = 1,
  16. I2C_READ_BLOCK = 2,
  17. GET_VERSION = 3,
  18. RESET_TOUCH_IC = 4,
  19. REBOOT_FROM_SRAM = 5,
  20. ENTRY_DEBUG_MODE = 6,
  21. QUIT_DEBUG_MODE = 7,
  22. HID_RECONNECT = 8,
  23. HID_DISCONNECT = 9,
  24. CHECK_HID_CONNECTION = 10,
  25. CHECK_TOUCH_IC_CONNECTION = 11,
  26. WRITE_ASYNC = 12,
  27. READ_ASYNC = 13,
  28. S818X_ENTER_UPDATE_MODE = 14,
  29. NULL_COMMAND = 15,
  30. NO_OPERATE = 16,
  31. ENABLE_DIGITER_INTERFACE = 17,
  32. DISABLE_DIGITER_INTERFACE =18,
  33. CHECK_I2C_CONNECT = 19,
  34. CHECK_BLE_CONNECT = 20,
  35. DEBUG_PIPE = 21,
  36. SYS_PIPE = 22,
  37. START_SCAN_DEVICE = 23,
  38. STOP_SCAN_DEVICE = 24,
  39. ERASE_BONDING = 25,
  40. BONDING = 26,
  41. GET_BONDING_MAC = 27,
  42. GET_DEVICE_MAC = 28,
  43. DEVICE_ADDR = 29,
  44. DEVICE_NAME = 30,
  45. DEVICE_RSSI = 31,
  46. STOP_PRINT_LOG = 32,
  47. NOTIFY = 33,
  48. FORCE_TEMINATE_BLE_AND_ADV = 34,
  49. RESET_USB_DEVICE = 35,
  50. GTXXX_ENTER_UPDATE_MODE = 36,
  51. BLE_RF_TEST = 37,
  52. GET_TOUCH_CHIP_INFO = 38,
  53. COOR_PIPE = 39,
  54. ENABLE_INT_IRQ = 40,
  55. DISABLE_INT_IRQ = 41,
  56. ENABLE_ESD_CHECK = 42,
  57. DISABLE_ESD_CHECK = 43,
  58. FIRST_PACKAGE = 44,
  59. SUBSEQUENT_PACKAGE = 45,
  60. LAST_PACKAGE = 46,
  61. CET_TOUCH_CHIP_TYPE = 47,
  62. GET_CONFIG = 48,
  63. SET_CONFIG = 49,
  64. GET_TEST_STATE = 59,
  65. SET_TEST_RESULT = 60,
  66. } COMMAND_TYPE;
  67. typedef enum _BUFF_STATE {
  68. BUFF_FREE,
  69. BUFF_DATA_READY,
  70. } BUFF_STATE;
  71. typedef struct _PACKAGE_INFO {
  72. COMMAND_TYPE command;
  73. COMMAND_TYPE sub_command;
  74. UINT32 address;
  75. UINT8 buf[128];
  76. UINT16 len;
  77. UINT16 offset;
  78. } PACKAGE_INFO;
  79. #define COMMAND_HEARD_LEN 7
  80. /*******************************************************************************/
  81. /* Macro Definition */
  82. // HID Report IDs for the service
  83. #define HID_RPT_ID_TOUCH_IN 13 // Mouse input report ID
  84. #define HID_RPT_ID_FEATURE 7 // Feature report ID
  85. #define HID_RPT_ID_KEY_IN 3 // Keyboard input report ID
  86. #define HID_RPT_ID_KEY_IN1 4 // Keyboard input report ID
  87. #define HID_RPT_ID_ABS_MOUSE_IN 5 // Mouse input report ID
  88. #define HID_RPT_ID_MOUSE_IN 11 // Mouse input report ID
  89. #define HID_RPT_ID_KEY_IN2 1 // LED output report ID
  90. #define HID_RPT_ID_MOUSE_IN2 8 // Feature report ID
  91. #define HID_RPT_ID_MOUSE_FEATURE 9 // Feature report ID
  92. #define HID_RPT_ID_APPLESTYLUS_IN 10
  93. #define HID_RPT_ID_STYLUS_IN 6
  94. #define HID_RPT_ID_APPLE_IN 14
  95. #define HID_RPT_ID_APPLE_IN1 15
  96. #define HID_RPT_ID_APPLE_IN2 16
  97. #define HID_RPT_ID_APPLE_IN3 17
  98. #define HID_RPT_ID_APPLE_IN4 18
  99. #define HID_BUTTOM_TYPE_FEATRUE 12
  100. #define HID_DEVICE_IDENTIFIER_FEATRUE 33
  101. #define HID_NUM_REPORTS 20
  102. #define EDP2_INPUT_REPORT_ID 2
  103. #define EDP2_OUTPUT_REPORT_ID0 3
  104. #define EDP2_OUTPUT_REPORT_ID1 4
  105. #define EDP2_ACK_REPORT_ID 5
  106. #define REPORTID_EXT_INFO 11
  107. #define REPORTID_EXT_INFO_SWITCH 12
  108. #define REPORTID_USB_BUS_TEST 0
  109. #define EXT_INFO_BEEP 0x01
  110. //#define REPORTID_PEN 8
  111. #define PEN_TIP 0x01
  112. #define PEN_BARREL 0x02
  113. #define PEN_INVERT 0x04
  114. #define PEN_ERASER 0x08
  115. #define PEN_HOVER 0x20
  116. void SoftResetChip();
  117. extern BOOL Ep2ReporteParse(UINT8* buf);
  118. extern UINT8 Absolute_Up_Pack( POINTER * pTP);
  119. extern UINT8 Append_Up_Pack( void );
  120. extern void CommandHandle( void );
  121. extern void Ep2OutputReport( void );
  122. extern void Ep2InputReport( void );
  123. extern void ReportInit( void );
  124. extern void ReportMousePos(POINTER * pTP);
  125. //extern void ReportToApple( POINTER * pTP);
  126. #if (defined S558 || defined S538 || defined S518 || defined S528F)
  127. extern UINT8 ProcessUSBCommand(COMMAND_TYPE cmd, PUINT8 buf);
  128. #endif
  129. #define TOUCH_RELEASE_TIMES 5
  130. #define USB_COMMAND_EVT 0x0001
  131. extern BOOL IsDebugMode;
  132. extern BOOL DisableDigiterInterface;
  133. extern BOOL OutDebugMode;
  134. extern BOOL ReportExtInfoEn;
  135. #endif
  136. /**************************** END *************************************/