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.

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