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.

101 lines
2.2 KiB

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_ble_master_start_scan = 50, // process by ble master ble_master_start_scan
  20. kproto_cmd_ble_master_enter_dfu = 51, // process by ble master ble_master_enter_dfu
  21. kproto_cmd_ble_master_reset = 52, // process by ble master
  22. kproto_report_key_event = 101, // key_event
  23. kproto_report_connected_event = 102, // generater by ble master and slave
  24. kproto_report_heart = 104, //
  25. } hand_acid_ble_proto_cmd_t;
  26. typedef enum {
  27. khand_acid_m_unset_mode = 0, // unset_mode
  28. khand_acid_m_jog_mode = 1, // jog_mode
  29. khand_acid_m_continuous_mode = 2, // continuous_mode
  30. } hand_acid_mode_t;
  31. typedef enum {
  32. khand_acid_pump_is_idle = 0, //
  33. khand_acid_pump_is_working = 1, //
  34. } hand_pump_working_state_t;
  35. typedef enum {
  36. kkey_short_press_event = 0, //
  37. kkey_long_press_event = 1, //
  38. } key_event_t;
  39. typedef enum {
  40. kkey_id_mode_and_action_butt,
  41. kkey_id_liquid_reflux_butt,
  42. } key_id_t;
  43. #pragma pack(1)
  44. typedef struct {
  45. uint8_t frame_type;
  46. uint8_t frame_index;
  47. uint8_t cmd;
  48. union {
  49. struct {
  50. uint8_t hand_acid_mode; // hand_acid_mode_t
  51. uint8_t hand_pump_working_state; // hand_pump_working_state_t
  52. } set_state;
  53. //
  54. struct {
  55. uint8_t scanid[20]; // scan id
  56. } ble_master_start_scan;
  57. struct {
  58. uint8_t keyid; // key_id_t
  59. uint8_t keyevent; // key_event_t
  60. } key_event;
  61. struct {
  62. uint8_t connected;
  63. uint8_t from_ble_master;
  64. } connected_event;
  65. struct {
  66. uint8_t powerlevel;
  67. } heart;
  68. struct {
  69. uint32_t longkeydelay;
  70. } setlong_key_delayms;
  71. struct {
  72. int32_t ecode;
  73. } errreceipt;
  74. struct {
  75. int32_t power;
  76. }read_power;
  77. } data;
  78. } hand_acid_ble_proto_t;
  79. #pragma pack()
  80. #ifdef __cplusplus
  81. }
  82. #endif