From a77985829c2972df6bf04a8a2195431559acff75 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Thu, 26 Jun 2025 12:07:01 +0800 Subject: [PATCH] =?UTF-8?q?V7|=20=E6=B7=BB=E5=8A=A0=E6=96=B0=E8=AE=BE?= =?UTF-8?q?=E5=A4=87DT600B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- transmit_disfection_protocol.hpp | 100 ++++++++++++++++++++++----------------- 1 file changed, 57 insertions(+), 43 deletions(-) diff --git a/transmit_disfection_protocol.hpp b/transmit_disfection_protocol.hpp index 26256d3..8a084ef 100644 --- a/transmit_disfection_protocol.hpp +++ b/transmit_disfection_protocol.hpp @@ -4,9 +4,23 @@ #include "zscanprotocol/zscanprotocol.h" namespace iflytop { namespace transmit_disfection_protocol { - -#define PROTOCOL_VERSION 6 +/** + * @brief + * + * + * VERSION 7 + * 添加新设备类型和板子类型 + * DT600B + * DT600B_LC_BOARD + * DT600B_PC_BOARD + * + */ + +#define PROTOCOL_VERSION 7 #define HEART_OVERTIME (30 * 1000) +#define SWITCH_CASE_STR(key) \ + case key: \ + return #key; typedef enum { klarge_space_disinfection_machine = 1, // 大空间消毒机 @@ -14,9 +28,18 @@ typedef enum { kpipe_disinfection_machine = 3, // 管道式消毒机 kdraw_bar_disinfection_box = 4, // 手持拉杆箱消毒机 kh2o2_ext_sensor = 5, // 外部H2O2传感器 + DT600B = 6, // 大空间标准版消毒机 } ProjID_t; typedef enum { + kFixBoardId_MainBoard = 1, // 主机 + kFixBoardId_LiquidCtrl = 2, // 液路板 + kFixBoardId_PowerControl = 3, // 电源板 + kFixBoardId_ExtChSelector = 4, // 外部球阀控制板 + kFixBoardId_H2O2SensorStart = 100, // H2O2传感器板 +} BoardId_t; + +typedef enum { kLargeSpaceDMLiquidCtrlBoard = 1, // 大空间消毒机液路板 kLargeSpaceDMPowerCtrlBoard = 2, // 大空间消毒机电源板 kSmallSpaceDMLiquidCtrlBoard = 3, // 小空间消毒机液路板 @@ -27,57 +50,43 @@ typedef enum { kDrawBarDMPowerCtrlBoard = 8, // 手持拉杆箱消毒机电源板 kDrawBarDMExtChSelector = 9, // 手持拉杆箱消毒机外部球阀控制板 kH2O2SensorBoard = 10, // H2O2传感器板 -} BoardTypeId_t; -typedef enum { - kFixBoardId_MainBoard = 1, // 主机 - kFixBoardId_LiquidCtrl = 2, // 液路板 - kFixBoardId_PowerControl = 3, // 电源板 - kFixBoardId_ExtChSelector = 4, // 外部球阀控制板 - kFixBoardId_H2O2SensorStart = 100, // H2O2传感器板 -} BoardId_t; + // 小空间经济版 + DT600B_LC_BOARD = DT600B * 16 + 1, // 大空间标准版消毒机-液路板 + DT600B_PC_BOARD = DT600B * 16 + 2, // 大空间标准版消毒机-电源板 +} BoardTypeId_t; static inline const char* BoardTypeId2Str(uint32_t id) { switch (id) { - case kLargeSpaceDMLiquidCtrlBoard: - return "LargeSpaceDMLiquidCtrlBoard"; - case kLargeSpaceDMPowerCtrlBoard: - return "LargeSpaceDMPowerCtrlBoard"; - case kSmallSpaceDMLiquidCtrlBoard: - return "SmallSpaceDMLiquidCtrlBoard"; - case kSmallSpaceDMPowerCtrlBoard: - return "SmallSpaceDMPowerCtrlBoard"; - case kPipeDMLiquidCtrlBoard: - return "PipeDMLiquidCtrlBoard"; - case kPipeDMPowerCtrlBoard: - return "PipeDMPowerCtrlBoard"; - case kDrawBarDMLiquidCtrlBoard: - return "DrawBarDMLiquidCtrlBoard"; - case kDrawBarDMPowerCtrlBoard: - return "DrawBarDMPowerCtrlBoard"; - case kDrawBarDMExtChSelector: - return "kDrawBarDMExtChSelector"; - case kH2O2SensorBoard: - return "H2O2SensorBoard"; + SWITCH_CASE_STR(kLargeSpaceDMLiquidCtrlBoard) + SWITCH_CASE_STR(kLargeSpaceDMPowerCtrlBoard) + SWITCH_CASE_STR(kSmallSpaceDMLiquidCtrlBoard) + SWITCH_CASE_STR(kSmallSpaceDMPowerCtrlBoard) + SWITCH_CASE_STR(kPipeDMLiquidCtrlBoard) + SWITCH_CASE_STR(kPipeDMPowerCtrlBoard) + SWITCH_CASE_STR(kDrawBarDMLiquidCtrlBoard) + SWITCH_CASE_STR(kDrawBarDMPowerCtrlBoard) + SWITCH_CASE_STR(kDrawBarDMExtChSelector) + SWITCH_CASE_STR(kH2O2SensorBoard) + + SWITCH_CASE_STR(DT600B_LC_BOARD) + SWITCH_CASE_STR(DT600B_PC_BOARD) default: - return "unkown"; + return "Unknown"; } } static inline const char* ProjectIDToString(uint32_t id) { switch (id) { - case klarge_space_disinfection_machine: - return "large_space_disinfection_machine"; - case ksmall_space_disinfection_machine: - return "small_space_disinfection_machine"; - case kpipe_disinfection_machine: - return "pipe_disinfection_machine"; - case kdraw_bar_disinfection_box: - return "draw_bar_disinfection_box"; - case kh2o2_ext_sensor: - return "h2o2_ext_sensor"; + SWITCH_CASE_STR(klarge_space_disinfection_machine) + SWITCH_CASE_STR(ksmall_space_disinfection_machine) + SWITCH_CASE_STR(kpipe_disinfection_machine) + SWITCH_CASE_STR(kdraw_bar_disinfection_box) + SWITCH_CASE_STR(kh2o2_ext_sensor) + SWITCH_CASE_STR(DT600B) + default: - return "unkown"; + return "Unknown"; } } @@ -234,7 +243,7 @@ typedef enum { kreport_pressure_data = 1350, // report:subid pressure(0.1pa) /*********************************************************************************************************************** - * 比例阀控制 * + * 正负压-比例阀控制 * ***********************************************************************************************************************/ kfn_proportional_set_valve = 1400, // 设置比例阀 {4:valveId,4:valveValue} kfn_proportional_read_pos = 1402, // @@ -262,6 +271,11 @@ typedef enum { // kfn_add_liquid_pump_air_intake_valve = 1700, // cmd: state ,true打开进气阀,false关闭进气阀门 加液进气电磁阀(打开,可以正常加液排液,关闭后加液泵倒转可以排空管路 kfn_set_add_fluid_channel_selector_valve = 1700, // cmd: state ,true打开进气阀,false关闭进气阀门 加液进气电磁阀(打开,可以正常加液排液,关闭后加液泵倒转可以排空管路 + /*********************************************************************************************************************** + * 液位状态 * + ***********************************************************************************************************************/ + kfn_liquid_level_read_io_state = 1800, // cmd ack:io_state //bit0:低液位置,bit1:中液位,bit2:高液位 + } cmd_t; #pragma pack(1)