From 49681b305408ff0896cae172709521f6f9c486ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Tue, 6 May 2025 09:26:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iflytop/gd/app/cmd/debug/DebugPumpSet.java | 47 ++++++++++++++++++++++ .../iflytop/gd/app/cmd/debug/DebugPumpStop.java | 45 +++++++++++++++++++++ .../gd/hardware/controller/ServoController.java | 20 ++++----- .../hardware/controller/StepMotorController.java | 28 ++++++------- src/main/resources/sql/init.sql | 25 ++++++------ 5 files changed, 129 insertions(+), 36 deletions(-) create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/DebugPumpSet.java create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/DebugPumpStop.java diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/DebugPumpSet.java b/src/main/java/com/iflytop/gd/app/cmd/debug/DebugPumpSet.java new file mode 100644 index 0000000..5d54b14 --- /dev/null +++ b/src/main/java/com/iflytop/gd/app/cmd/debug/DebugPumpSet.java @@ -0,0 +1,47 @@ +package com.iflytop.gd.app.cmd.debug; + +import com.iflytop.gd.app.core.BaseCommandHandler; +import com.iflytop.gd.app.model.dto.CmdDTO; +import com.iflytop.gd.app.service.DeviceCommandService; +import com.iflytop.gd.common.annotation.CommandMapping; +import com.iflytop.gd.common.cmd.CommandFuture; +import com.iflytop.gd.common.cmd.DeviceCommand; +import com.iflytop.gd.common.cmd.DeviceCommandGenerator; +import com.iflytop.gd.common.enums.cmd.CmdDevice; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 加液泵 设置加液泵 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("debug_pump_set") +public class DebugPumpSet extends BaseCommandHandler { + private final DeviceCommandService deviceCommandService; + + @Override + public void handle(CmdDTO cmdDTO) throws Exception { + String pumpId = cmdDTO.getStringParam("pumpId"); + Integer current = cmdDTO.getIntegerParam("current"); + Double speed = cmdDTO.getDoubleParam("speed"); + Double innerDiameter = cmdDTO.getDoubleParam("innerDiameter"); + CmdDevice pumpDevice = CmdDevice.valueOf(pumpId); + DeviceCommand deviceCommand; + switch (pumpDevice) { + case CmdDevice.acid_pump_1 -> deviceCommand = DeviceCommandGenerator.acidPump1Set(current, speed); + case CmdDevice.acid_pump_2 -> deviceCommand = DeviceCommandGenerator.acidPump2Set(current, speed); + case CmdDevice.acid_pump_3 -> deviceCommand = DeviceCommandGenerator.acidPump3Set(current, speed); + case CmdDevice.acid_pump_4 -> deviceCommand = DeviceCommandGenerator.acidPump4Set(current, speed); + case CmdDevice.acid_pump_5 -> deviceCommand = DeviceCommandGenerator.acidPump5Set(current, speed); + case CmdDevice.acid_pump_6 -> deviceCommand = DeviceCommandGenerator.acidPump6Set(current, speed); + case CmdDevice.acid_pump_7 -> deviceCommand = DeviceCommandGenerator.acidPump7Set(current, speed); + case CmdDevice.acid_pump_8 -> deviceCommand = DeviceCommandGenerator.acidPump8Set(current, speed); + default -> throw new RuntimeException("pumpId 未找到"); + } + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); + commandWait(deviceCommandFuture); + } +} diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/DebugPumpStop.java b/src/main/java/com/iflytop/gd/app/cmd/debug/DebugPumpStop.java new file mode 100644 index 0000000..61f475e --- /dev/null +++ b/src/main/java/com/iflytop/gd/app/cmd/debug/DebugPumpStop.java @@ -0,0 +1,45 @@ +package com.iflytop.gd.app.cmd.debug; + +import com.iflytop.gd.app.core.BaseCommandHandler; +import com.iflytop.gd.app.model.dto.CmdDTO; +import com.iflytop.gd.app.service.DeviceCommandService; +import com.iflytop.gd.common.annotation.CommandMapping; +import com.iflytop.gd.common.cmd.CommandFuture; +import com.iflytop.gd.common.cmd.DeviceCommand; +import com.iflytop.gd.common.cmd.DeviceCommandGenerator; +import com.iflytop.gd.common.enums.cmd.CmdDevice; +import com.iflytop.gd.common.enums.cmd.CmdDirection; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 加液泵 停止加液泵 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("debug_pump_stop") +public class DebugPumpStop extends BaseCommandHandler { + private final DeviceCommandService deviceCommandService; + + @Override + public void handle(CmdDTO cmdDTO) throws Exception { + String pumpId = cmdDTO.getStringParam("pumpId"); + CmdDevice pumpDevice = CmdDevice.valueOf(pumpId); + DeviceCommand deviceCommand; + switch (pumpDevice) { + case CmdDevice.acid_pump_1 -> deviceCommand = DeviceCommandGenerator.acidPump1Stop(); + case CmdDevice.acid_pump_2 -> deviceCommand = DeviceCommandGenerator.acidPump2Stop(); + case CmdDevice.acid_pump_3 -> deviceCommand = DeviceCommandGenerator.acidPump3Stop(); + case CmdDevice.acid_pump_4 -> deviceCommand = DeviceCommandGenerator.acidPump4Stop(); + case CmdDevice.acid_pump_5 -> deviceCommand = DeviceCommandGenerator.acidPump5Stop(); + case CmdDevice.acid_pump_6 -> deviceCommand = DeviceCommandGenerator.acidPump6Stop(); + case CmdDevice.acid_pump_7 -> deviceCommand = DeviceCommandGenerator.acidPump7Stop(); + case CmdDevice.acid_pump_8 -> deviceCommand = DeviceCommandGenerator.acidPump8Stop(); + default -> throw new RuntimeException("pumpId 未找到"); + } + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); + commandWait(deviceCommandFuture); + } +} diff --git a/src/main/java/com/iflytop/gd/hardware/controller/ServoController.java b/src/main/java/com/iflytop/gd/hardware/controller/ServoController.java index 30698a7..c2a2da6 100644 --- a/src/main/java/com/iflytop/gd/hardware/controller/ServoController.java +++ b/src/main/java/com/iflytop/gd/hardware/controller/ServoController.java @@ -39,38 +39,38 @@ public class ServoController { servoService.stop(deviceId); } - @PostMapping("/move_to") + @PostMapping("/move-to") @Operation(summary = "移动(绝对)") public void moveTo(@RequestParam DeviceServoId deviceId, @RequestParam Integer pos) throws HardwareException { servoService.moveTo(deviceId, pos); } - @PostMapping("/rotate_forward") + @PostMapping("/rotate-forward") @Operation(summary = "正转") - public void rotate_forward(@RequestParam DeviceServoId deviceId) throws HardwareException { + public void rotateForward(@RequestParam DeviceServoId deviceId) throws HardwareException { servoService.rotate(deviceId, 1); } - @PostMapping("/rotate_backward") + @PostMapping("/rotate-backward") @Operation(summary = "反转") - public void rotate_backward(@RequestParam DeviceServoId deviceId) throws HardwareException { + public void rotateBackward(@RequestParam DeviceServoId deviceId) throws HardwareException { servoService.rotate(deviceId, 0); } - @PostMapping("/rotate_with_torque") + @PostMapping("/rotate-with-torque") @Operation(summary = "旋转(力矩)") public void rotateWithTorque(@RequestParam DeviceServoId deviceId, @RequestParam Integer pos) throws HardwareException { servoService.rotateWithTorque(deviceId, pos); } - @PostMapping("/move_to_zero") + @PostMapping("/move-to-zero") @Operation(summary = "回Home") public void moveToZero(@RequestParam DeviceServoId deviceId) throws HardwareException { servoService.moveToZero(deviceId); } // 寄存器操作 - @PostMapping("/limit_velocity") + @PostMapping("/limit-velocity") @Operation(summary = "设置限速") public void setLimitVelocity( @RequestParam DeviceServoId deviceId, @@ -78,7 +78,7 @@ public class ServoController { servoService.setLimitVelocity(deviceId, val); } - @PostMapping("/limit_torque") + @PostMapping("/limit-torque") @Operation(summary = "设置限力矩") public void setLimitTorque( @RequestParam DeviceServoId deviceId, @@ -86,7 +86,7 @@ public class ServoController { servoService.setLimitTorque(deviceId, val); } - @PostMapping("/protective_torque") + @PostMapping("/protective-torque") @Operation(summary = "设置保护力矩") public void setProtectiveTorque( @RequestParam DeviceServoId deviceId, diff --git a/src/main/java/com/iflytop/gd/hardware/controller/StepMotorController.java b/src/main/java/com/iflytop/gd/hardware/controller/StepMotorController.java index 44100d8..e63120c 100644 --- a/src/main/java/com/iflytop/gd/hardware/controller/StepMotorController.java +++ b/src/main/java/com/iflytop/gd/hardware/controller/StepMotorController.java @@ -13,14 +13,14 @@ import java.util.Map; @Tag(name = "步进电机控制") @RestController -@RequestMapping("/api/step_motor") +@RequestMapping("/api/step-motor") @RequiredArgsConstructor @Slf4j public class StepMotorController { private final StepMotorService stepMotorService; // 基础设置 - @PostMapping("/speed_level") + @PostMapping("/speed-level") @Operation(summary = "设置速度等级") public void setStepMotorSpeedLevel(@RequestParam StepMotorSpeedLevel speedLevel) { stepMotorService.setStepMotorSpeedLevel(speedLevel); @@ -39,13 +39,13 @@ public class StepMotorController { stepMotorService.disableMotor(deviceId); } - @PostMapping("/move_to_zero") + @PostMapping("/move-to-zero") @Operation(summary = "回Home") public void stepMotorEasyMoveToZero(@RequestParam DeviceStepMotorId deviceId) throws HardwareException { stepMotorService.stepMotorEasyMoveToZero(deviceId); } - @PostMapping("/move_to_zero_quick") + @PostMapping("/move-to-zero-quick") @Operation(summary = "快速回Home") public void stepMotorEasyMoveToZeroPointQuickBlock(@RequestParam DeviceStepMotorId deviceId) throws HardwareException { stepMotorService.stepMotorEasyMoveToZeroPointQuickBlock(deviceId); @@ -58,7 +58,7 @@ public class StepMotorController { } // 相对移动 - @PostMapping("/move_by_forward") + @PostMapping("/move-by-forward") @Operation(summary = "正向点动") public void stepMotorEasyMoveByForward( @RequestParam DeviceStepMotorId deviceId, @@ -66,7 +66,7 @@ public class StepMotorController { stepMotorService.stepMotorEasyMoveByForward(deviceId, dpos); } - @PostMapping("/move_by_backward") + @PostMapping("/move-by-backward") @Operation(summary = "反向点动") public void stepMotorEasyMoveByBackward( @RequestParam DeviceStepMotorId deviceId, @@ -75,7 +75,7 @@ public class StepMotorController { } // 绝对移动 - @PostMapping("/move_to") + @PostMapping("/move-to") @Operation(summary = "移动(绝对)") public void stepMotorEasyMoveTo( @RequestParam DeviceStepMotorId deviceId, @@ -84,13 +84,13 @@ public class StepMotorController { } // 旋转 - @PostMapping("/rotate_forward") + @PostMapping("/rotate-forward") @Operation(summary = "正转") public void rotateForward(@RequestParam DeviceStepMotorId deviceId) throws HardwareException { stepMotorService.rotateForward(deviceId); } - @PostMapping("/rotate_backward") + @PostMapping("/rotate-backward") @Operation(summary = "反转") public void rotateBackward(@RequestParam DeviceStepMotorId deviceId) throws HardwareException { stepMotorService.rotateBackward(deviceId); @@ -121,7 +121,7 @@ public class StepMotorController { stepMotorService.setIHOLD(deviceId, ihold); } - @PostMapping("/start_stop_vel") + @PostMapping("/start-stop-vel") @Operation(summary = "设置起停速度") public void setStartAndStopVel( @RequestParam DeviceStepMotorId deviceId, @@ -145,7 +145,7 @@ public class StepMotorController { stepMotorService.setA1AndD1(deviceId, acc); } - @PostMapping("/max_acceleration") + @PostMapping("/max-acceleration") @Operation(summary = "设置最大加速度") public void setAmaxAndDmax( @RequestParam DeviceStepMotorId deviceId, @@ -153,7 +153,7 @@ public class StepMotorController { stepMotorService.setAmaxAndDmax(deviceId, acc); } - @PostMapping("/default_velocity") + @PostMapping("/default-velocity") @Operation(summary = "设置默认速度") public void setDefaultVel( @RequestParam DeviceStepMotorId deviceId, @@ -171,7 +171,7 @@ public class StepMotorController { stepMotorService.setSpeed(deviceId, low, mid, high); } - @PostMapping("/one_circle_pulse") + @PostMapping("/one-circle-pulse") @Operation(summary = "设置一圈脉冲数") public void setOneCirclePulse( @RequestParam DeviceStepMotorId deviceId, @@ -218,7 +218,7 @@ public class StepMotorController { return stepMotorService.readPos(deviceId); } - @GetMapping("/encoder_position") + @GetMapping("/encoder-position") @Operation(summary = "读取编码器位置") public Integer readEncPos(@RequestParam DeviceStepMotorId deviceId) throws HardwareException { return stepMotorService.readEncPos(deviceId); diff --git a/src/main/resources/sql/init.sql b/src/main/resources/sql/init.sql index 8e8eaed..e5ed07e 100644 --- a/src/main/resources/sql/init.sql +++ b/src/main/resources/sql/init.sql @@ -43,8 +43,8 @@ CREATE TABLE IF NOT EXISTS container ( pump_id TEXT, capacity_total INTEGER, capacity_used INTEGER, - create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); INSERT OR IGNORE INTO container (id, type, solution_id, pump_id, capacity_total, capacity_used) @@ -78,21 +78,22 @@ VALUES (6, '磷酸', '2025-02-18 02:46:43', '2025-02-18 02:46:43'), (7, '纯水', '2025-02-18 02:46:50', '2025-02-18 02:46:50'); --- 设备参数配置 表 -CREATE TABLE IF NOT EXISTS device_param_config ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - mid TEXT, - reg_index TEXT, - reg_val INTEGER, - create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP +-- 设备配置 表 +CREATE TABLE IF NOT EXISTS device_config ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + device TEXT, + regIndex TEXT, + valueType TEXT, + value TEXT, + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 系统配置 表 CREATE TABLE IF NOT EXISTS system_config ( id INTEGER PRIMARY KEY AUTOINCREMENT, - key TEXT NOT NULL UNIQUE, - value TEXT, + key TEXT NOT NULL UNIQUE, + value TEXT, create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); \ No newline at end of file