constants.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. /**
  2. * 艾灸椅 BLE 协议常量
  3. * 协议帧: [0x24 开始符][功能码][数据域...][0x23 结束符]
  4. */
  5. // ================ 帧定界 ================
  6. export const FRAME_HEAD = 0x24
  7. export const FRAME_TAIL = 0x23
  8. // ================ 功能码 (APP -> 主控板) ================
  9. export const CMD = {
  10. BASIC: 0x01, // 基本功能
  11. MODE_PARAM_1: 0x02, // 模式参数设置1 (步骤 1-7)
  12. MODE_PARAM_2: 0x03, // 模式参数设置2 (步骤 8-14)
  13. MODE_PARAM_5: 0x05 // 穴位坐标下发
  14. }
  15. // ================ 功能码 (主控板 -> APP) ================
  16. export const REPORT = {
  17. GROUP_1: 0x01, // 参数组1: 电源/状态/耗材等
  18. GROUP_2: 0x02 // 参数组2: 预热/点火/当前步骤/温度等
  19. }
  20. // ================ 业务枚举 ================
  21. export const POWER = { OFF: 0x00, ON: 0x01 }
  22. export const MOXI_STATE = {
  23. DONE: 0x00,
  24. START: 0x01,
  25. PAUSE: 0x02
  26. }
  27. export const RUNTIME_STATE = {
  28. DONE: 0x00,
  29. PREHEAT: 0x01,
  30. IGNITE: 0x02,
  31. MOXI: 0x03,
  32. EXTINGUISH: 0x04,
  33. PAUSE: 0x05
  34. }
  35. export const MUTE = { OFF: 0x00, ON: 0x01 }
  36. export const MODE = {
  37. LEISURE: 0x01, // 休闲
  38. BASIC: 0x02, // 基础
  39. PROFESSIONAL: 0x03, // 专业
  40. PERSONAL: 0x04, // 个性
  41. EXPERT: 0x05 // 专家
  42. }
  43. export const SUB_MODE = {
  44. SUB_1: 0x01,
  45. SUB_2: 0x02,
  46. SUB_3: 0x03,
  47. SUB_4: 0x04,
  48. SUB_5: 0x05
  49. }
  50. export const TEMPERATURE = { LOW: 0x01, MID: 0x02, HIGH: 0x03 }
  51. export const CHAIR_ANGLE = {
  52. OFF: 0x00,
  53. LEVEL_1: 0x01,
  54. LEVEL_2: 0x02,
  55. LEVEL_3: 0x03,
  56. LEVEL_4: 0x04,
  57. LEVEL_5: 0x05
  58. }
  59. // 自动上艾和点火状态
  60. export const AUTO_IGNITE_STATUS = {
  61. LOAD_DONE: 0x01,
  62. IGNITE_DONE: 0x02,
  63. STICK_ERROR: 0x10,
  64. LOAD_FAIL: 0x11,
  65. IGNITE_FAIL: 0x12
  66. }
  67. // ================ 异常错误码 ================
  68. export const BLE_ERROR = {
  69. NOT_SUPPORT: 'BLE_NOT_SUPPORT',
  70. ADAPTER_OFF: 'BLE_ADAPTER_OFF',
  71. PERMISSION_DENIED: 'BLE_PERMISSION_DENIED',
  72. LOCATION_OFF: 'BLE_LOCATION_OFF',
  73. SCAN_FAIL: 'BLE_SCAN_FAIL',
  74. CONNECT_FAIL: 'BLE_CONNECT_FAIL',
  75. CONNECT_TIMEOUT: 'BLE_CONNECT_TIMEOUT',
  76. DISCONNECTED: 'BLE_DISCONNECTED',
  77. SERVICE_NOT_FOUND: 'BLE_SERVICE_NOT_FOUND',
  78. CHAR_NOT_FOUND: 'BLE_CHAR_NOT_FOUND',
  79. WRITE_FAIL: 'BLE_WRITE_FAIL',
  80. FRAME_INVALID: 'BLE_FRAME_INVALID',
  81. BUSY: 'BLE_BUSY'
  82. }
  83. // ================ BLE 连接相关状态机 ================
  84. export const BLE_STATE = {
  85. IDLE: 'IDLE', // 未初始化
  86. READY: 'READY', // 适配器已就绪
  87. SCANNING: 'SCANNING', // 扫描中
  88. CONNECTING: 'CONNECTING', // 连接中
  89. CONNECTED: 'CONNECTED', // 已连接(未完成服务发现)
  90. READY_COMM: 'READY_COMM', // 已完成服务发现,可以通信
  91. DISCONNECTED:'DISCONNECTED' // 主动或异常断开
  92. }
  93. // ================ 默认配置(UUID 已按真机调试结果填入:BT-BLEXXXX 模组) ================
  94. // 真机扫描到的服务/特征:
  95. // Service: 0000FFF0-... (主服务)
  96. // Char FFF1: WRITE + NOTIFY (默认写指令通道)
  97. // Char FFF2: NOTIFY + READ (默认通知接收通道)
  98. // Char F003: WRITE (备用写通道)
  99. // 如发指令后收不到回包,可按 FAQ 在 FFF1 / FFF2 / F003 间互换写/通知特征再试。
  100. export const DEFAULT_CONFIG = {
  101. // 目标设备名称前缀(扫描过滤,空字符串表示不过滤)
  102. deviceNamePrefix: '',
  103. // 主服务 UUID
  104. serviceId: '0000FFF0-0000-1000-8000-00805F9B34FB',
  105. // 写特征(APP -> 设备)
  106. writeCharId: '0000FFF1-0000-1000-8000-00805F9B34FB',
  107. // 通知特征(设备 -> APP)
  108. notifyCharId: '0000FFF2-0000-1000-8000-00805F9B34FB',
  109. // 扫描超时
  110. scanTimeout: 10000,
  111. // 连接超时
  112. connectTimeout: 10000,
  113. // 自动重连
  114. autoReconnect: true,
  115. // 最大重连次数
  116. maxReconnect: 3,
  117. // 是否打印日志
  118. debug: true
  119. }