You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
2.5 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. #pragma once
  2. #include <stdint.h>
  3. #include "errorcode.h"
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #define HAND_ACID_BLE_BASE_SIZE 3
  8. typedef enum {
  9. kproto_cmd = 1,
  10. kproto_cmd_receipt = 2,
  11. kproto_report = 3,
  12. kproto_error_receipt = 4,
  13. } hand_acid_ble_proto_packet_type_t;
  14. typedef enum {
  15. kproto_cmd_set_state = 1, // set_state
  16. kproto_cmd_reset = 2, //
  17. kproto_cmd_setlong_key_delayms = 3, //
  18. kproto_cmd_read_power = 4, //
  19. kproto_cmd_read_version = 5, //
  20. kproto_cmd_ble_master_start_scan = 50, // process by ble master ble_master_start_scan
  21. kproto_cmd_ble_master_enter_dfu = 51, // process by ble master ble_master_enter_dfu
  22. kproto_cmd_ble_master_reset = 52, // process by ble master
  23. kproto_cmd_ble_master_read_version = 53, // process by ble master
  24. kproto_report_key_event = 101, // key_event
  25. kproto_report_connected_event = 102, // generater by ble master and slave
  26. kproto_report_heart = 104, //
  27. } hand_acid_ble_proto_cmd_t;
  28. typedef enum {
  29. khand_acid_m_unset_mode = 0, // unset_mode
  30. khand_acid_m_jog_mode = 1, // jog_mode
  31. khand_acid_m_continuous_mode = 2, // continuous_mode
  32. } hand_acid_mode_t;
  33. typedef enum {
  34. khand_acid_pump_is_idle = 0, //
  35. khand_acid_pump_is_working = 1, //
  36. } hand_pump_working_state_t;
  37. typedef enum {
  38. kkey_short_press_event = 0, //
  39. kkey_long_press_event = 1, //
  40. } key_event_t;
  41. typedef enum {
  42. kkey_id_mode_and_action_butt,
  43. kkey_id_liquid_reflux_butt,
  44. } key_id_t;
  45. #pragma pack(1)
  46. typedef struct {
  47. uint8_t frame_type;
  48. uint8_t frame_index;
  49. uint8_t cmd;
  50. union {
  51. struct {
  52. uint8_t hand_acid_mode; // hand_acid_mode_t
  53. uint8_t hand_pump_working_state; // hand_pump_working_state_t
  54. } set_state;
  55. //
  56. struct {
  57. uint8_t scanid[20]; // scan id
  58. } ble_master_start_scan;
  59. struct {
  60. uint8_t keyid; // key_id_t
  61. uint8_t keyevent; // key_event_t
  62. } key_event;
  63. struct {
  64. uint8_t connected;
  65. uint8_t from_ble_master;
  66. } connected_event;
  67. struct {
  68. uint8_t powerlevel;
  69. } heart;
  70. struct {
  71. uint32_t longkeydelay;
  72. } setlong_key_delayms;
  73. struct {
  74. int32_t ecode;
  75. } errreceipt;
  76. struct {
  77. int32_t power;
  78. } read_power;
  79. struct {
  80. int32_t firmware_version;
  81. int32_t blestack_version;
  82. int32_t bootloader_version;
  83. int32_t hardware_version;
  84. } read_version;
  85. } data;
  86. } hand_acid_ble_proto_t;
  87. #pragma pack()
  88. #ifdef __cplusplus
  89. }
  90. #endif