Browse Source

Merge remote-tracking branch 'origin/master'

master
HSZ_HeSongZhen 3 months ago
parent
commit
6c55611d8a
  1. 4
      src/main/java/com/iflytop/gd/hardware/controller/IOController.java
  2. 37
      src/main/java/com/iflytop/gd/hardware/controller/ServoController.java
  3. 70
      src/main/java/com/iflytop/gd/hardware/controller/StepMotorController.java

4
src/main/java/com/iflytop/gd/hardware/controller/IOController.java

@ -1,5 +1,6 @@
package com.iflytop.gd.hardware.controller; package com.iflytop.gd.hardware.controller;
import com.iflytop.gd.common.result.Result;
import com.iflytop.gd.hardware.drivers.DODriver.OutputIOCtrlDriver; import com.iflytop.gd.hardware.drivers.DODriver.OutputIOCtrlDriver;
import com.iflytop.gd.hardware.type.IO.OutputIOMId; import com.iflytop.gd.hardware.type.IO.OutputIOMId;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@ -19,12 +20,13 @@ public class IOController {
private final OutputIOCtrlDriver driver; private final OutputIOCtrlDriver driver;
@PostMapping("/set-output") @PostMapping("/set-output")
public void setOutput(@RequestParam OutputIOMId index, @RequestParam boolean state) {
public Result<?> setOutput(@RequestParam OutputIOMId index, @RequestParam boolean state) {
log.info("Setting IO output at index: {} to state: {}", index, state); log.info("Setting IO output at index: {} to state: {}", index, state);
try { try {
driver.setIOState(index, state); driver.setIOState(index, state);
} catch (Exception e) { } catch (Exception e) {
log.error("Failed to set IO output: {}", e.getMessage()); log.error("Failed to set IO output: {}", e.getMessage());
} }
return Result.success();
} }
} }

37
src/main/java/com/iflytop/gd/hardware/controller/ServoController.java

@ -1,5 +1,6 @@
package com.iflytop.gd.hardware.controller; package com.iflytop.gd.hardware.controller;
import com.iflytop.gd.common.result.Result;
import com.iflytop.gd.hardware.type.Servo.DeviceServoId; import com.iflytop.gd.hardware.type.Servo.DeviceServoId;
import com.iflytop.gd.hardware.type.Servo.MiniServoRegIndex; import com.iflytop.gd.hardware.type.Servo.MiniServoRegIndex;
import com.iflytop.gd.hardware.exception.HardwareException; import com.iflytop.gd.hardware.exception.HardwareException;
@ -48,84 +49,96 @@ public class ServoController {
// 基础操作 // 基础操作
@PostMapping("/enable") @PostMapping("/enable")
@Operation(summary = "电源开启") @Operation(summary = "电源开启")
public void enable(@RequestParam DeviceServoId deviceId) throws HardwareException {
public Result<?> enable(@RequestParam DeviceServoId deviceId) throws HardwareException {
servoService.enable(deviceId, true); servoService.enable(deviceId, true);
return Result.success();
} }
@PostMapping("/disable") @PostMapping("/disable")
@Operation(summary = "电源关闭") @Operation(summary = "电源关闭")
public void disable(@RequestParam DeviceServoId deviceId) throws HardwareException {
public Result<?> disable(@RequestParam DeviceServoId deviceId) throws HardwareException {
servoService.enable(deviceId, false); servoService.enable(deviceId, false);
return Result.success();
} }
@PostMapping("/stop") @PostMapping("/stop")
@Operation(summary = "停止") @Operation(summary = "停止")
public void stop(@RequestParam DeviceServoId deviceId) throws HardwareException {
public Result<?> stop(@RequestParam DeviceServoId deviceId) throws HardwareException {
servoService.stop(deviceId); servoService.stop(deviceId);
return Result.success();
} }
@PostMapping("/move-to") @PostMapping("/move-to")
@Operation(summary = "移动(绝对)") @Operation(summary = "移动(绝对)")
public void moveTo(@RequestParam DeviceServoId deviceId, @RequestParam Integer pos) throws HardwareException {
public Result<?> moveTo(@RequestParam DeviceServoId deviceId, @RequestParam Integer pos) throws HardwareException {
servoService.moveTo(deviceId, pos); servoService.moveTo(deviceId, pos);
return Result.success();
} }
@PostMapping("/rotate-forward") @PostMapping("/rotate-forward")
@Operation(summary = "正转") @Operation(summary = "正转")
public void rotateForward(@RequestParam DeviceServoId deviceId) throws HardwareException {
public Result<?> rotateForward(@RequestParam DeviceServoId deviceId) throws HardwareException {
servoService.rotate(deviceId, 1); servoService.rotate(deviceId, 1);
return Result.success();
} }
@PostMapping("/rotate-backward") @PostMapping("/rotate-backward")
@Operation(summary = "反转") @Operation(summary = "反转")
public void rotateBackward(@RequestParam DeviceServoId deviceId) throws HardwareException {
public Result<?> rotateBackward(@RequestParam DeviceServoId deviceId) throws HardwareException {
servoService.rotate(deviceId, 0); servoService.rotate(deviceId, 0);
return Result.success();
} }
@PostMapping("/rotate-with-torque") @PostMapping("/rotate-with-torque")
@Operation(summary = "旋转(力矩)") @Operation(summary = "旋转(力矩)")
public void rotateWithTorque(@RequestParam DeviceServoId deviceId, @RequestParam Integer pos) throws HardwareException {
public Result<?> rotateWithTorque(@RequestParam DeviceServoId deviceId, @RequestParam Integer pos) throws HardwareException {
servoService.rotateWithTorque(deviceId, pos); servoService.rotateWithTorque(deviceId, pos);
return Result.success();
} }
@PostMapping("/move-to-zero") @PostMapping("/move-to-zero")
@Operation(summary = "回Home") @Operation(summary = "回Home")
public void moveToZero(@RequestParam DeviceServoId deviceId) throws HardwareException {
public Result<?> moveToZero(@RequestParam DeviceServoId deviceId) throws HardwareException {
servoService.moveToZero(deviceId); servoService.moveToZero(deviceId);
return Result.success();
} }
// 寄存器操作 // 寄存器操作
@PostMapping("/limit-velocity") @PostMapping("/limit-velocity")
@Operation(summary = "设置限速") @Operation(summary = "设置限速")
public void setLimitVelocity(
public Result<?> setLimitVelocity(
@RequestParam DeviceServoId deviceId, @RequestParam DeviceServoId deviceId,
@RequestParam Integer val) throws HardwareException { @RequestParam Integer val) throws HardwareException {
servoService.setLimitVelocity(deviceId, val); servoService.setLimitVelocity(deviceId, val);
return Result.success();
} }
@PostMapping("/limit-torque") @PostMapping("/limit-torque")
@Operation(summary = "设置限力矩") @Operation(summary = "设置限力矩")
public void setLimitTorque(
public Result<?> setLimitTorque(
@RequestParam DeviceServoId deviceId, @RequestParam DeviceServoId deviceId,
@RequestParam Integer val) throws HardwareException { @RequestParam Integer val) throws HardwareException {
servoService.setLimitTorque(deviceId, val); servoService.setLimitTorque(deviceId, val);
return Result.success();
} }
@PostMapping("/protective-torque") @PostMapping("/protective-torque")
@Operation(summary = "设置保护力矩") @Operation(summary = "设置保护力矩")
public void setProtectiveTorque(
public Result<?> setProtectiveTorque(
@RequestParam DeviceServoId deviceId, @RequestParam DeviceServoId deviceId,
@RequestParam Integer val) throws HardwareException { @RequestParam Integer val) throws HardwareException {
servoService.setProtectiveTorque(deviceId, val); servoService.setProtectiveTorque(deviceId, val);
return Result.success();
} }
@PostMapping("/reg") @PostMapping("/reg")
@Operation(summary = "设置寄存器") @Operation(summary = "设置寄存器")
public void setReg(
public Result<?> setReg(
@RequestParam DeviceServoId deviceId, @RequestParam DeviceServoId deviceId,
@RequestParam MiniServoRegIndex reg, @RequestParam MiniServoRegIndex reg,
@RequestParam Integer val) throws HardwareException { @RequestParam Integer val) throws HardwareException {
servoService.setReg(deviceId, reg, val); servoService.setReg(deviceId, reg, val);
return Result.success();
} }
// 状态查询 // 状态查询

70
src/main/java/com/iflytop/gd/hardware/controller/StepMotorController.java

@ -1,5 +1,6 @@
package com.iflytop.gd.hardware.controller; package com.iflytop.gd.hardware.controller;
import com.iflytop.gd.common.result.Result;
import com.iflytop.gd.hardware.exception.HardwareException; import com.iflytop.gd.hardware.exception.HardwareException;
import com.iflytop.gd.hardware.service.StepMotorService; import com.iflytop.gd.hardware.service.StepMotorService;
import com.iflytop.gd.hardware.type.StepMotor.DeviceStepMotorId; import com.iflytop.gd.hardware.type.StepMotor.DeviceStepMotorId;
@ -49,170 +50,192 @@ public class StepMotorController {
// 基础设置 // 基础设置
@PostMapping("/speed-level") @PostMapping("/speed-level")
@Operation(summary = "设置速度等级") @Operation(summary = "设置速度等级")
public void setStepMotorSpeedLevel(@RequestParam StepMotorSpeedLevel speedLevel) {
public Result<?> setStepMotorSpeedLevel(@RequestParam StepMotorSpeedLevel speedLevel) {
stepMotorService.setStepMotorSpeedLevel(speedLevel); stepMotorService.setStepMotorSpeedLevel(speedLevel);
return Result.success();
} }
// 基础操作 // 基础操作
@PostMapping("/enable") @PostMapping("/enable")
@Operation(summary = "电源开启") @Operation(summary = "电源开启")
public void enableMotor(@RequestParam DeviceStepMotorId deviceId) throws HardwareException {
public Result<?> enableMotor(@RequestParam DeviceStepMotorId deviceId) throws HardwareException {
stepMotorService.enableMotor(deviceId); stepMotorService.enableMotor(deviceId);
return Result.success();
} }
@PostMapping("/disable") @PostMapping("/disable")
@Operation(summary = "电源关闭") @Operation(summary = "电源关闭")
public void disableMotor(@RequestParam DeviceStepMotorId deviceId) throws HardwareException {
public Result<?> disableMotor(@RequestParam DeviceStepMotorId deviceId) throws HardwareException {
stepMotorService.disableMotor(deviceId); stepMotorService.disableMotor(deviceId);
return Result.success();
} }
@PostMapping("/move-to-zero") @PostMapping("/move-to-zero")
@Operation(summary = "回Home") @Operation(summary = "回Home")
public void stepMotorEasyMoveToZero(@RequestParam DeviceStepMotorId deviceId) throws HardwareException {
public Result<?> stepMotorEasyMoveToZero(@RequestParam DeviceStepMotorId deviceId) throws HardwareException {
stepMotorService.stepMotorEasyMoveToZero(deviceId); stepMotorService.stepMotorEasyMoveToZero(deviceId);
return Result.success();
} }
@PostMapping("/move-to-zero-quick") @PostMapping("/move-to-zero-quick")
@Operation(summary = "快速回Home") @Operation(summary = "快速回Home")
public void stepMotorEasyMoveToZeroPointQuickBlock(@RequestParam DeviceStepMotorId deviceId) throws HardwareException {
public Result<?> stepMotorEasyMoveToZeroPointQuickBlock(@RequestParam DeviceStepMotorId deviceId) throws HardwareException {
stepMotorService.stepMotorEasyMoveToZeroPointQuickBlock(deviceId); stepMotorService.stepMotorEasyMoveToZeroPointQuickBlock(deviceId);
return Result.success();
} }
@PostMapping("/stop") @PostMapping("/stop")
@Operation(summary = "停止") @Operation(summary = "停止")
public void stepMotorStop(@RequestParam DeviceStepMotorId deviceId) throws HardwareException {
public Result<?> stepMotorStop(@RequestParam DeviceStepMotorId deviceId) throws HardwareException {
stepMotorService.stepMotorStop(deviceId); stepMotorService.stepMotorStop(deviceId);
return Result.success();
} }
// 相对移动 // 相对移动
@PostMapping("/move-by-forward") @PostMapping("/move-by-forward")
@Operation(summary = "正向点动") @Operation(summary = "正向点动")
public void stepMotorEasyMoveByForward(
public Result<?> stepMotorEasyMoveByForward(
@RequestParam DeviceStepMotorId deviceId, @RequestParam DeviceStepMotorId deviceId,
@RequestParam Integer dpos) throws HardwareException { @RequestParam Integer dpos) throws HardwareException {
stepMotorService.stepMotorEasyMoveByForward(deviceId, dpos); stepMotorService.stepMotorEasyMoveByForward(deviceId, dpos);
return Result.success();
} }
@PostMapping("/move-by-backward") @PostMapping("/move-by-backward")
@Operation(summary = "反向点动") @Operation(summary = "反向点动")
public void stepMotorEasyMoveByBackward(
public Result<?> stepMotorEasyMoveByBackward(
@RequestParam DeviceStepMotorId deviceId, @RequestParam DeviceStepMotorId deviceId,
@RequestParam Integer dpos) throws HardwareException { @RequestParam Integer dpos) throws HardwareException {
stepMotorService.stepMotorEasyMoveByBackward(deviceId, dpos); stepMotorService.stepMotorEasyMoveByBackward(deviceId, dpos);
return Result.success();
} }
// 绝对移动 // 绝对移动
@PostMapping("/move-to") @PostMapping("/move-to")
@Operation(summary = "移动(绝对)") @Operation(summary = "移动(绝对)")
public void stepMotorEasyMoveTo(
public Result<?> stepMotorEasyMoveTo(
@RequestParam DeviceStepMotorId deviceId, @RequestParam DeviceStepMotorId deviceId,
@RequestParam Integer pos) throws HardwareException { @RequestParam Integer pos) throws HardwareException {
stepMotorService.stepMotorEasyMoveTo(deviceId, pos); stepMotorService.stepMotorEasyMoveTo(deviceId, pos);
return Result.success();
} }
// 旋转 // 旋转
@PostMapping("/rotate-forward") @PostMapping("/rotate-forward")
@Operation(summary = "正转") @Operation(summary = "正转")
public void rotateForward(@RequestParam DeviceStepMotorId deviceId) throws HardwareException {
public Result<?> rotateForward(@RequestParam DeviceStepMotorId deviceId) throws HardwareException {
stepMotorService.rotateForward(deviceId); stepMotorService.rotateForward(deviceId);
return Result.success();
} }
@PostMapping("/rotate-backward") @PostMapping("/rotate-backward")
@Operation(summary = "反转") @Operation(summary = "反转")
public void rotateBackward(@RequestParam DeviceStepMotorId deviceId) throws HardwareException {
public Result<?> rotateBackward(@RequestParam DeviceStepMotorId deviceId) throws HardwareException {
stepMotorService.rotateBackward(deviceId); stepMotorService.rotateBackward(deviceId);
return Result.success();
} }
// 寄存器配置 // 寄存器配置
@PostMapping("/mres") @PostMapping("/mres")
@Operation(summary = "设置细分") @Operation(summary = "设置细分")
public void setMres(
public Result<?> setMres(
@RequestParam DeviceStepMotorId deviceId, @RequestParam DeviceStepMotorId deviceId,
@RequestParam Integer mres) throws HardwareException { @RequestParam Integer mres) throws HardwareException {
stepMotorService.setMres(deviceId, mres); stepMotorService.setMres(deviceId, mres);
return Result.success();
} }
@PostMapping("/irun") @PostMapping("/irun")
@Operation(summary = "设置IRUN") @Operation(summary = "设置IRUN")
public void setIRUN(
public Result<?> setIRUN(
@RequestParam DeviceStepMotorId deviceId, @RequestParam DeviceStepMotorId deviceId,
@RequestParam Integer irun) throws HardwareException { @RequestParam Integer irun) throws HardwareException {
stepMotorService.setIRUN(deviceId, irun); stepMotorService.setIRUN(deviceId, irun);
return Result.success();
} }
@PostMapping("/ihold") @PostMapping("/ihold")
@Operation(summary = "设置IHOLD") @Operation(summary = "设置IHOLD")
public void setIHOLD(
public Result<?> setIHOLD(
@RequestParam DeviceStepMotorId deviceId, @RequestParam DeviceStepMotorId deviceId,
@RequestParam Integer ihold) throws HardwareException { @RequestParam Integer ihold) throws HardwareException {
stepMotorService.setIHOLD(deviceId, ihold); stepMotorService.setIHOLD(deviceId, ihold);
return Result.success();
} }
@PostMapping("/start-stop-vel") @PostMapping("/start-stop-vel")
@Operation(summary = "设置起停速度") @Operation(summary = "设置起停速度")
public void setStartAndStopVel(
public Result<?> setStartAndStopVel(
@RequestParam DeviceStepMotorId deviceId, @RequestParam DeviceStepMotorId deviceId,
@RequestParam Integer v) throws HardwareException { @RequestParam Integer v) throws HardwareException {
stepMotorService.setStartAndStopVel(deviceId, v); stepMotorService.setStartAndStopVel(deviceId, v);
return Result.success();
} }
@PostMapping("/v1") @PostMapping("/v1")
@Operation(summary = "设置V1") @Operation(summary = "设置V1")
public void setV1(
public Result<?> setV1(
@RequestParam DeviceStepMotorId deviceId, @RequestParam DeviceStepMotorId deviceId,
@RequestParam Integer v) throws HardwareException { @RequestParam Integer v) throws HardwareException {
stepMotorService.setV1(deviceId, v); stepMotorService.setV1(deviceId, v);
return Result.success();
} }
@PostMapping("/acceleration") @PostMapping("/acceleration")
@Operation(summary = "设置加速度") @Operation(summary = "设置加速度")
public void setA1AndD1(
public Result<?> setA1AndD1(
@RequestParam DeviceStepMotorId deviceId, @RequestParam DeviceStepMotorId deviceId,
@RequestParam Integer acc) throws HardwareException { @RequestParam Integer acc) throws HardwareException {
stepMotorService.setA1AndD1(deviceId, acc); stepMotorService.setA1AndD1(deviceId, acc);
return Result.success();
} }
@PostMapping("/max-acceleration") @PostMapping("/max-acceleration")
@Operation(summary = "设置最大加速度") @Operation(summary = "设置最大加速度")
public void setAmaxAndDmax(
public Result<?> setAmaxAndDmax(
@RequestParam DeviceStepMotorId deviceId, @RequestParam DeviceStepMotorId deviceId,
@RequestParam Integer acc) throws HardwareException { @RequestParam Integer acc) throws HardwareException {
stepMotorService.setAmaxAndDmax(deviceId, acc); stepMotorService.setAmaxAndDmax(deviceId, acc);
return Result.success();
} }
@PostMapping("/default-velocity") @PostMapping("/default-velocity")
@Operation(summary = "设置默认速度") @Operation(summary = "设置默认速度")
public void setDefaultVel(
public Result<?> setDefaultVel(
@RequestParam DeviceStepMotorId deviceId, @RequestParam DeviceStepMotorId deviceId,
@RequestParam Integer v) throws HardwareException { @RequestParam Integer v) throws HardwareException {
stepMotorService.setDefaultVel(deviceId, v); stepMotorService.setDefaultVel(deviceId, v);
return Result.success();
} }
@PostMapping("/speed") @PostMapping("/speed")
@Operation(summary = "设置速度") @Operation(summary = "设置速度")
public void setSpeed(
public Result<?> setSpeed(
@RequestParam DeviceStepMotorId deviceId, @RequestParam DeviceStepMotorId deviceId,
@RequestParam Integer low, @RequestParam Integer low,
@RequestParam Integer mid, @RequestParam Integer mid,
@RequestParam Integer high) throws HardwareException { @RequestParam Integer high) throws HardwareException {
stepMotorService.setSpeed(deviceId, low, mid, high); stepMotorService.setSpeed(deviceId, low, mid, high);
return Result.success();
} }
@PostMapping("/one-circle-pulse") @PostMapping("/one-circle-pulse")
@Operation(summary = "设置一圈脉冲数") @Operation(summary = "设置一圈脉冲数")
public void setOneCirclePulse(
public Result<?> setOneCirclePulse(
@RequestParam DeviceStepMotorId deviceId, @RequestParam DeviceStepMotorId deviceId,
@RequestParam Integer pulse, @RequestParam Integer pulse,
@RequestParam Integer denominator) throws HardwareException { @RequestParam Integer denominator) throws HardwareException {
stepMotorService.setOneCirclePulse(deviceId, pulse, denominator); stepMotorService.setOneCirclePulse(deviceId, pulse, denominator);
return Result.success();
} }
@PostMapping("/dzero") @PostMapping("/dzero")
@Operation(summary = "设置DZero") @Operation(summary = "设置DZero")
public void setDZero(
public Result<?> setDZero(
@RequestParam DeviceStepMotorId deviceId, @RequestParam DeviceStepMotorId deviceId,
@RequestParam Integer dzero) throws HardwareException { @RequestParam Integer dzero) throws HardwareException {
stepMotorService.setDZero(deviceId, dzero); stepMotorService.setDZero(deviceId, dzero);
return Result.success();
} }
@GetMapping("/reg") @GetMapping("/reg")
@ -225,11 +248,12 @@ public class StepMotorController {
@PostMapping("/reg") @PostMapping("/reg")
@Operation(summary = "设置寄存器") @Operation(summary = "设置寄存器")
public void setReg(
public Result<?> setReg(
@RequestParam DeviceStepMotorId deviceId, @RequestParam DeviceStepMotorId deviceId,
@RequestParam StepMotorRegIndex reg, @RequestParam StepMotorRegIndex reg,
@RequestParam Integer val) throws HardwareException { @RequestParam Integer val) throws HardwareException {
stepMotorService.setReg(deviceId, reg, val); stepMotorService.setReg(deviceId, reg, val);
return Result.success();
} }
// 状态查询 // 状态查询

Loading…
Cancel
Save