From 312e99636ecb57a481bc9969729463d0bb0f589c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?=
Date: Tue, 29 Apr 2025 23:04:33 +0800
Subject: [PATCH] =?UTF-8?q?fix:=E8=B0=83=E6=95=B4=E9=A1=B9=E7=9B=AE?=
=?UTF-8?q?=E7=BB=93=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/iflytop/gd/app/cmd/DemoCommand.java | 21 +
.../debug/ColdTrapStartHeatingCommandHandler.java | 23 +
.../debug/ColdTrapStartRecycleCommandHandler.java | 22 +
.../ColdTrapStartRefrigerationCommandHandler.java | 22 +
.../debug/ColdTrapStopHeatingCommandHandler.java | 22 +
.../debug/ColdTrapStopRecycleCommandHandler.java | 22 +
.../ColdTrapStopRefrigerationCommandHandler.java | 22 +
.../debug/CoverElevatorLiftDownCommandHandler.java | 22 +
.../debug/CoverElevatorLiftUpCommandHandler.java | 23 +
.../debug/CoverElevatorResetCommandHandler.java | 16 +
.../cmd/debug/CoverElevatorStopCommandHandler.java | 16 +
.../gd/app/cmd/debug/DoorCloseCommandHandler.java | 21 +
.../gd/app/cmd/debug/DoorOpenCommandHandler.java | 21 +
.../gd/app/cmd/debug/DoorStopCommandHandler.java | 21 +
.../app/cmd/debug/HeaterStartCommandHandler.java | 22 +
.../HeaterStartHeatMaintainingCommandHandler.java | 22 +
.../gd/app/cmd/debug/HeaterStopCommandHandler.java | 22 +
.../debug/HeaterStopMaintainingCommandHandler.java | 22 +
.../cmd/debug/HoldingJawCloseCommandHandler.java | 22 +
.../cmd/debug/HoldingJawOpenCommandHandler.java | 22 +
.../cmd/debug/HoldingJawPauseCommandHandler.java | 22 +
.../cmd/debug/LiquidArmResetCommandHandler.java | 22 +
.../cmd/debug/LiquidArmRotateCommandHandler.java | 22 +
.../app/cmd/debug/LiquidArmStopCommandHandler.java | 22 +
.../debug/LiquidPumpPreEvacuateCommandHandler.java | 22 +
.../cmd/debug/LiquidPumpPrefillCommandHandler.java | 22 +
.../cmd/debug/LiquidPumpStartCommandHandler.java | 22 +
.../cmd/debug/LiquidPumpStopCommandHandler.java | 22 +
.../PalletElevatorLiftDownCommandHandler.java | 23 +
.../debug/PalletElevatorLiftUpCommandHandler.java | 22 +
.../debug/PalletElevatorStopCommandHandler.java | 23 +
.../app/cmd/debug/ShakerStartCommandHandler.java | 22 +
.../gd/app/cmd/debug/ShakerStopCommandHandler.java | 22 +
.../debug/TransportationArmMoveCommandHandler.java | 22 +
.../TransportationArmResetCommandHandler.java | 22 +
.../debug/TransportationArmStopCommandHandler.java | 22 +
.../iflytop/gd/app/common/enums/CraftEvents.java | 22 -
.../iflytop/gd/app/common/enums/CraftStates.java | 19 -
.../gd/app/config/CraftsStateMachineConfig.java | 4 +-
.../iflytop/gd/app/config/MybatisPlusConfig.java | 61 +++
.../com/iflytop/gd/app/config/SwaggerConfig.java | 68 +++
.../java/com/iflytop/gd/app/config/WebConfig.java | 16 +
.../com/iflytop/gd/app/config/WebSocketConfig.java | 14 +
.../com/iflytop/gd/app/config/WebSocketServer.java | 52 +++
.../iflytop/gd/app/controller/AuthController.java | 4 +-
.../iflytop/gd/app/controller/CmdController.java | 2 +-
.../gd/app/controller/CmdDebugController.java | 50 ++
.../iflytop/gd/app/controller/OresController.java | 2 +-
.../gd/app/controller/SolutionsController.java | 2 +-
.../iflytop/gd/app/controller/UserController.java | 6 +-
.../iflytop/gd/app/core/BaseCommandHandler.java | 2 +-
.../gd/app/core/CommandHandlerRegistry.java | 2 +-
.../com/iflytop/gd/app/core/CraftsContext.java | 4 +-
.../java/com/iflytop/gd/app/mapper/UserMapper.java | 13 +
.../com/iflytop/gd/app/model/bo/Notification.java | 98 ++++
.../java/com/iflytop/gd/app/model/bo/Point3D.java | 23 +
.../com/iflytop/gd/app/model/entity/Container.java | 2 +-
.../com/iflytop/gd/app/model/entity/Crafts.java | 2 +-
.../gd/app/model/entity/DeviceParamConfig.java | 2 +-
.../java/com/iflytop/gd/app/model/entity/Ores.java | 3 +-
.../com/iflytop/gd/app/model/entity/Solutions.java | 3 +-
.../iflytop/gd/app/model/entity/SystemConfig.java | 2 +-
.../java/com/iflytop/gd/app/model/entity/User.java | 45 ++
.../com/iflytop/gd/app/model/vo/CraftStatusVO.java | 2 +-
.../com/iflytop/gd/app/service/CraftsService.java | 4 +-
.../gd/app/service/DeviceParamConfigService.java | 4 +-
.../com/iflytop/gd/app/service/OresService.java | 2 +-
.../com/iflytop/gd/app/service/UserService.java | 41 ++
.../iflytop/gd/app/service/WebSocketService.java | 4 +-
.../iflytop/gd/app/service/cmd/DemoCommand.java | 30 --
.../exceptions/UnSupportCommandException.java | 25 -
.../com/iflytop/gd/common/base/BaseEntity.java | 44 ++
.../com/iflytop/gd/common/base/BasePageQuery.java | 26 ++
.../java/com/iflytop/gd/common/base/IBaseEnum.java | 84 ++++
.../com/iflytop/gd/common/cmd/CommandFuture.java | 55 +++
.../gd/common/cmd/CyclicNumberGenerator.java | 39 ++
.../com/iflytop/gd/common/cmd/DeviceCommand.java | 38 ++
.../gd/common/cmd/DeviceCommandGenerator.java | 24 +
.../gd/common/controller/BaseCmdController.java | 4 -
.../controller/NotificationWebsocketEndpoint.java | 26 --
.../iflytop/gd/common/device/CommandFuture.java | 55 ---
.../gd/common/device/CyclicNumberGenerator.java | 39 --
.../iflytop/gd/common/device/DeviceCommand.java | 38 --
.../gd/common/device/DeviceCommandGenerator.java | 501 ---------------------
.../com/iflytop/gd/common/enums/CraftEvents.java | 22 +
.../com/iflytop/gd/common/enums/CraftStates.java | 19 +
.../exception/CommandExecTimeoutException.java | 22 +
.../common/exception/HardwareErrorException.java | 22 +
.../exception/UnSupportCommandException.java | 25 +
.../gd/common/notification/Notification.java | 98 ----
.../com/iflytop/gd/common/utils/ByteArray.java | 125 +++++
.../gd/debug/controller/CmdDebugController.java | 51 ---
.../cmds/ColdTrapStartHeatingCommandHandler.java | 27 --
.../cmds/ColdTrapStartRecycleCommandHandler.java | 23 -
.../ColdTrapStartRefrigerationCommandHandler.java | 23 -
.../cmds/ColdTrapStopHeatingCommandHandler.java | 23 -
.../cmds/ColdTrapStopRecycleCommandHandler.java | 23 -
.../ColdTrapStopRefrigerationCommandHandler.java | 23 -
.../cmds/CoverElevatorLiftDownCommandHandler.java | 27 --
.../cmds/CoverElevatorLiftUpCommandHandler.java | 24 -
.../cmds/CoverElevatorResetCommandHandler.java | 17 -
.../cmds/CoverElevatorStopCommandHandler.java | 17 -
.../services/cmds/DoorCloseCommandHandler.java | 23 -
.../services/cmds/DoorOpenCommandHandler.java | 25 -
.../services/cmds/DoorStopCommandHandler.java | 23 -
.../services/cmds/HeaterStartCommandHandler.java | 23 -
.../HeaterStartHeatMaintainingCommandHandler.java | 23 -
.../services/cmds/HeaterStopCommandHandler.java | 23 -
.../cmds/HeaterStopMaintainingCommandHandler.java | 23 -
.../cmds/HoldingJawCloseCommandHandler.java | 23 -
.../cmds/HoldingJawOpenCommandHandler.java | 23 -
.../cmds/HoldingJawPauseCommandHandler.java | 23 -
.../cmds/LiquidArmResetCommandHandler.java | 23 -
.../cmds/LiquidArmRotateCommandHandler.java | 23 -
.../services/cmds/LiquidArmStopCommandHandler.java | 23 -
.../cmds/LiquidPumpPreEvacuateCommandHandler.java | 23 -
.../cmds/LiquidPumpPrefillCommandHandler.java | 23 -
.../cmds/LiquidPumpStartCommandHandler.java | 23 -
.../cmds/LiquidPumpStopCommandHandler.java | 23 -
.../cmds/PalletElevatorLiftDownCommandHandler.java | 24 -
.../cmds/PalletElevatorLiftUpCommandHandler.java | 23 -
.../cmds/PalletElevatorStopCommandHandler.java | 24 -
.../services/cmds/ShakerStartCommandHandler.java | 23 -
.../services/cmds/ShakerStopCommandHandler.java | 23 -
.../cmds/TransportationArmMoveCommandHandler.java | 23 -
.../cmds/TransportationArmResetCommandHandler.java | 23 -
.../cmds/TransportationArmStopCommandHandler.java | 23 -
.../com/iflytop/gd/hardware/comm/can/driver/d.txt | 1 +
.../iflytop/gd/hardware/comm/can/listener/d.txt | 1 +
.../iflytop/gd/hardware/comm/can/protocol/d.txt | 1 +
.../iflytop/gd/hardware/comm/rs485/driver/d.txt | 1 +
.../iflytop/gd/hardware/comm/rs485/listener/d.txt | 1 +
.../iflytop/gd/hardware/comm/rs485/protocol/d.txt | 1 +
.../com/iflytop/gd/hardware/constants/Dim.java | 5 +
.../gd/hardware/constants/DistanceUnit.java | 30 ++
.../constants/LiquidFillArmMotorIndex.java | 5 +
.../gd/hardware/constants/RotationDirection.java | 18 +
.../gd/hardware/constants/VelocityUnit.java | 28 ++
.../com/iflytop/gd/hardware/device/ColdTray.java | 34 ++
.../java/com/iflytop/gd/hardware/device/Door.java | 17 +
.../java/com/iflytop/gd/hardware/device/Fan.java | 13 +
.../com/iflytop/gd/hardware/device/HoldingJaw.java | 22 +
.../gd/hardware/device/LiquidFillingArm.java | 24 +
.../java/com/iflytop/gd/hardware/device/Pump.java | 7 +
.../java/com/iflytop/gd/hardware/device/Relay.java | 13 +
.../com/iflytop/gd/hardware/device/ServoMotor.java | 53 +++
.../com/iflytop/gd/hardware/device/StepMotor.java | 118 +++++
.../iflytop/gd/hardware/device/SwitchSensor.java | 11 +
.../gd/hardware/device/TransportationArm.java | 27 ++
.../iflytop/gd/hardware/drivers/AppErrorCode.java | 21 +
.../com/iflytop/gd/hardware/drivers/CmdId.java | 122 +++++
.../iflytop/gd/hardware/drivers/CommandBus.java | 22 +
.../com/iflytop/gd/hardware/drivers/ModuleId.java | 98 ++++
.../com/iflytop/gd/hardware/drivers/RegIndex.java | 78 ++++
.../hardware/drivers/WebSocketCommandBusImpl.java | 135 ++++++
.../com/iflytop/gd/hardware/model/DataPacket.java | 109 +++++
.../gd/infrastructure/comm/can/driver/d.txt | 1 -
.../gd/infrastructure/comm/can/listener/d.txt | 1 -
.../gd/infrastructure/comm/can/protocol/d.txt | 1 -
.../gd/infrastructure/comm/rs485/driver/d.txt | 1 -
.../gd/infrastructure/comm/rs485/listener/d.txt | 1 -
.../gd/infrastructure/comm/rs485/protocol/d.txt | 1 -
.../infrastructure/config/MybatisPlusConfig.java | 61 ---
.../gd/infrastructure/config/SwaggerConfig.java | 68 ---
.../gd/infrastructure/config/WebConfig.java | 16 -
.../gd/infrastructure/config/WebSocketConfig.java | 14 -
.../gd/infrastructure/config/WebSocketServer.java | 52 ---
.../devices/physical/PhysicalColdTray.java | 43 --
.../devices/physical/PhysicalDoor.java | 70 ---
.../devices/physical/PhysicalFan.java | 18 -
.../devices/physical/PhysicalHoldingJaw.java | 33 --
.../devices/physical/PhysicalLiquidFillingArm.java | 39 --
.../devices/physical/PhysicalPump.java | 9 -
.../devices/physical/PhysicalRelay.java | 18 -
.../devices/physical/PhysicalServoMotor.java | 65 ---
.../devices/physical/PhysicalStepMotor.java | 175 -------
.../devices/physical/PhysicalSwitchSensor.java | 14 -
.../physical/PhysicalTransportationArm.java | 47 --
.../devices/virtual/VirtualColdTray.java | 43 --
.../devices/virtual/VirtualDoor.java | 25 -
.../infrastructure/devices/virtual/VirtualFan.java | 18 -
.../devices/virtual/VirtualHeater.java | 33 --
.../devices/virtual/VirtualHoldingJaw.java | 33 --
.../devices/virtual/VirtualLiquidFillingArm.java | 26 --
.../devices/virtual/VirtualPump.java | 9 -
.../devices/virtual/VirtualRelay.java | 15 -
.../devices/virtual/VirtualServoMotor.java | 73 ---
.../devices/virtual/VirtualStepMotor.java | 194 --------
.../devices/virtual/VirtualSwitchSensor.java | 13 -
.../devices/virtual/VirtualTransportationArm.java | 87 ----
.../gd/infrastructure/drivers/AppErrorCode.java | 21 -
.../iflytop/gd/infrastructure/drivers/CmdId.java | 122 -----
.../gd/infrastructure/drivers/ModuleId.java | 98 ----
.../gd/infrastructure/drivers/RegIndex.java | 78 ----
.../drivers/WebSocketCommandBusImpl.java | 136 ------
.../iflytop/gd/infrastructure/modules/Device.java | 36 --
.../modules/WebSocketNotificationPushMgrImpl.java | 41 --
.../gd/infrastructure/modules/area/CapArea.java | 10 -
.../infrastructure/modules/area/ColdTrapArea.java | 10 -
.../gd/infrastructure/modules/area/DoorArea.java | 10 -
.../gd/infrastructure/modules/area/HeatArea.java | 36 --
.../gd/infrastructure/modules/area/LiquidArea.java | 11 -
.../infrastructure/modules/area/RailArmArea.java | 11 -
.../modules/model/bo/HeatModule.java | 67 ---
.../repository/DeviceStrategyFactory.java | 28 --
.../infrastructure/repository/base/BaseEntity.java | 44 --
.../repository/base/BasePageQuery.java | 26 --
.../infrastructure/repository/base/IBaseEnum.java | 84 ----
.../gd/infrastructure/repository/entity/User.java | 46 --
.../repository/mapper/UserMapper.java | 13 -
.../repository/service/UserService.java | 42 --
.../java/com/iflytop/gd/system/constants/Dim.java | 5 -
.../iflytop/gd/system/constants/DistanceUnit.java | 30 --
.../system/constants/LiquidFillArmMotorIndex.java | 5 -
.../gd/system/constants/RotationDirection.java | 18 -
.../iflytop/gd/system/constants/SystemMode.java | 8 -
.../iflytop/gd/system/constants/VelocityUnit.java | 28 --
.../com/iflytop/gd/system/devices/ColdTray.java | 54 ---
.../java/com/iflytop/gd/system/devices/Door.java | 18 -
.../java/com/iflytop/gd/system/devices/Fan.java | 21 -
.../java/com/iflytop/gd/system/devices/Heater.java | 32 --
.../com/iflytop/gd/system/devices/HoldingJaw.java | 36 --
.../gd/system/devices/LiquidFillingArm.java | 38 --
.../java/com/iflytop/gd/system/devices/Pump.java | 8 -
.../java/com/iflytop/gd/system/devices/Relay.java | 19 -
.../com/iflytop/gd/system/devices/ServoMotor.java | 82 ----
.../com/iflytop/gd/system/devices/StepMotor.java | 261 -----------
.../iflytop/gd/system/devices/SwitchSensor.java | 5 -
.../gd/system/devices/TransportationArm.java | 40 --
.../com/iflytop/gd/system/drivers/CommandBus.java | 23 -
.../exceptions/CommandExecTimeoutException.java | 22 -
.../system/exceptions/HardwareErrorException.java | 22 -
.../com/iflytop/gd/system/models/DataPacket.java | 109 -----
.../com/iflytop/gd/system/models/HeaterStatus.java | 13 -
.../java/com/iflytop/gd/system/models/Point3D.java | 23 -
.../iflytop/gd/system/models/ServoMotorStatus.java | 12 -
.../iflytop/gd/system/models/StepMotorStatus.java | 16 -
.../gd/system/modules/NotificationPushMgr.java | 15 -
.../java/com/iflytop/gd/system/package-info.java | 6 -
.../com/iflytop/gd/system/utils/ByteArray.java | 125 -----
.../drivers/WebSocketCommandBusImplTest.java | 14 +-
241 files changed, 2856 insertions(+), 5133 deletions(-)
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/DemoCommand.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStartHeatingCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStartRecycleCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStartRefrigerationCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStopHeatingCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStopRecycleCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStopRefrigerationCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/CoverElevatorLiftDownCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/CoverElevatorLiftUpCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/CoverElevatorResetCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/CoverElevatorStopCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/DoorCloseCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/DoorOpenCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/DoorStopCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStartCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStartHeatMaintainingCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStopCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStopMaintainingCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/HoldingJawCloseCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/HoldingJawOpenCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/HoldingJawPauseCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/LiquidArmResetCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/LiquidArmRotateCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/LiquidArmStopCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpPreEvacuateCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpPrefillCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpStartCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpStopCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorLiftDownCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorLiftUpCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorStopCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/ShakerStartCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/ShakerStopCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/TransportationArmMoveCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/TransportationArmResetCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/app/cmd/debug/TransportationArmStopCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/app/common/enums/CraftEvents.java
delete mode 100644 src/main/java/com/iflytop/gd/app/common/enums/CraftStates.java
create mode 100644 src/main/java/com/iflytop/gd/app/config/MybatisPlusConfig.java
create mode 100644 src/main/java/com/iflytop/gd/app/config/SwaggerConfig.java
create mode 100644 src/main/java/com/iflytop/gd/app/config/WebConfig.java
create mode 100644 src/main/java/com/iflytop/gd/app/config/WebSocketConfig.java
create mode 100644 src/main/java/com/iflytop/gd/app/config/WebSocketServer.java
create mode 100644 src/main/java/com/iflytop/gd/app/controller/CmdDebugController.java
create mode 100644 src/main/java/com/iflytop/gd/app/mapper/UserMapper.java
create mode 100644 src/main/java/com/iflytop/gd/app/model/bo/Notification.java
create mode 100644 src/main/java/com/iflytop/gd/app/model/bo/Point3D.java
create mode 100644 src/main/java/com/iflytop/gd/app/model/entity/User.java
create mode 100644 src/main/java/com/iflytop/gd/app/service/UserService.java
delete mode 100644 src/main/java/com/iflytop/gd/app/service/cmd/DemoCommand.java
delete mode 100644 src/main/java/com/iflytop/gd/app/service/exceptions/UnSupportCommandException.java
create mode 100644 src/main/java/com/iflytop/gd/common/base/BaseEntity.java
create mode 100644 src/main/java/com/iflytop/gd/common/base/BasePageQuery.java
create mode 100644 src/main/java/com/iflytop/gd/common/base/IBaseEnum.java
create mode 100644 src/main/java/com/iflytop/gd/common/cmd/CommandFuture.java
create mode 100644 src/main/java/com/iflytop/gd/common/cmd/CyclicNumberGenerator.java
create mode 100644 src/main/java/com/iflytop/gd/common/cmd/DeviceCommand.java
create mode 100644 src/main/java/com/iflytop/gd/common/cmd/DeviceCommandGenerator.java
delete mode 100644 src/main/java/com/iflytop/gd/common/controller/BaseCmdController.java
delete mode 100644 src/main/java/com/iflytop/gd/common/controller/NotificationWebsocketEndpoint.java
delete mode 100644 src/main/java/com/iflytop/gd/common/device/CommandFuture.java
delete mode 100644 src/main/java/com/iflytop/gd/common/device/CyclicNumberGenerator.java
delete mode 100644 src/main/java/com/iflytop/gd/common/device/DeviceCommand.java
delete mode 100644 src/main/java/com/iflytop/gd/common/device/DeviceCommandGenerator.java
create mode 100644 src/main/java/com/iflytop/gd/common/enums/CraftEvents.java
create mode 100644 src/main/java/com/iflytop/gd/common/enums/CraftStates.java
create mode 100644 src/main/java/com/iflytop/gd/common/exception/CommandExecTimeoutException.java
create mode 100644 src/main/java/com/iflytop/gd/common/exception/HardwareErrorException.java
create mode 100644 src/main/java/com/iflytop/gd/common/exception/UnSupportCommandException.java
delete mode 100644 src/main/java/com/iflytop/gd/common/notification/Notification.java
create mode 100644 src/main/java/com/iflytop/gd/common/utils/ByteArray.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/controller/CmdDebugController.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStartHeatingCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStartRecycleCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStartRefrigerationCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStopHeatingCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStopRecycleCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStopRefrigerationCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/CoverElevatorLiftDownCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/CoverElevatorLiftUpCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/CoverElevatorResetCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/CoverElevatorStopCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/DoorCloseCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/DoorOpenCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/DoorStopCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/HeaterStartCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/HeaterStartHeatMaintainingCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/HeaterStopCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/HeaterStopMaintainingCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/HoldingJawCloseCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/HoldingJawOpenCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/HoldingJawPauseCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/LiquidArmResetCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/LiquidArmRotateCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/LiquidArmStopCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/LiquidPumpPreEvacuateCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/LiquidPumpPrefillCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/LiquidPumpStartCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/LiquidPumpStopCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/PalletElevatorLiftDownCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/PalletElevatorLiftUpCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/PalletElevatorStopCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/ShakerStartCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/ShakerStopCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/TransportationArmMoveCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/TransportationArmResetCommandHandler.java
delete mode 100644 src/main/java/com/iflytop/gd/debug/services/cmds/TransportationArmStopCommandHandler.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/comm/can/driver/d.txt
create mode 100644 src/main/java/com/iflytop/gd/hardware/comm/can/listener/d.txt
create mode 100644 src/main/java/com/iflytop/gd/hardware/comm/can/protocol/d.txt
create mode 100644 src/main/java/com/iflytop/gd/hardware/comm/rs485/driver/d.txt
create mode 100644 src/main/java/com/iflytop/gd/hardware/comm/rs485/listener/d.txt
create mode 100644 src/main/java/com/iflytop/gd/hardware/comm/rs485/protocol/d.txt
create mode 100644 src/main/java/com/iflytop/gd/hardware/constants/Dim.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/constants/DistanceUnit.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/constants/LiquidFillArmMotorIndex.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/constants/RotationDirection.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/constants/VelocityUnit.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/device/ColdTray.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/device/Door.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/device/Fan.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/device/HoldingJaw.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/device/LiquidFillingArm.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/device/Pump.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/device/Relay.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/device/ServoMotor.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/device/StepMotor.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/device/SwitchSensor.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/device/TransportationArm.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/drivers/AppErrorCode.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/drivers/CmdId.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/drivers/CommandBus.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/drivers/ModuleId.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/drivers/RegIndex.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/drivers/WebSocketCommandBusImpl.java
create mode 100644 src/main/java/com/iflytop/gd/hardware/model/DataPacket.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/comm/can/driver/d.txt
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/comm/can/listener/d.txt
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/comm/can/protocol/d.txt
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/comm/rs485/driver/d.txt
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/comm/rs485/listener/d.txt
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/comm/rs485/protocol/d.txt
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/config/MybatisPlusConfig.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/config/SwaggerConfig.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/config/WebConfig.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/config/WebSocketConfig.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/config/WebSocketServer.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalColdTray.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalDoor.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalFan.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalHoldingJaw.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalLiquidFillingArm.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalPump.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalRelay.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalServoMotor.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalStepMotor.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalSwitchSensor.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalTransportationArm.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualColdTray.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualDoor.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualFan.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualHeater.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualHoldingJaw.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualLiquidFillingArm.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualPump.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualRelay.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualServoMotor.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualStepMotor.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualSwitchSensor.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualTransportationArm.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/drivers/AppErrorCode.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/drivers/CmdId.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/drivers/ModuleId.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/drivers/RegIndex.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/drivers/WebSocketCommandBusImpl.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/modules/Device.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/modules/WebSocketNotificationPushMgrImpl.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/modules/area/CapArea.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/modules/area/ColdTrapArea.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/modules/area/DoorArea.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/modules/area/HeatArea.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/modules/area/LiquidArea.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/modules/area/RailArmArea.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/modules/model/bo/HeatModule.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/repository/DeviceStrategyFactory.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/repository/base/BaseEntity.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/repository/base/BasePageQuery.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/repository/base/IBaseEnum.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/repository/entity/User.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/repository/mapper/UserMapper.java
delete mode 100644 src/main/java/com/iflytop/gd/infrastructure/repository/service/UserService.java
delete mode 100644 src/main/java/com/iflytop/gd/system/constants/Dim.java
delete mode 100644 src/main/java/com/iflytop/gd/system/constants/DistanceUnit.java
delete mode 100644 src/main/java/com/iflytop/gd/system/constants/LiquidFillArmMotorIndex.java
delete mode 100644 src/main/java/com/iflytop/gd/system/constants/RotationDirection.java
delete mode 100644 src/main/java/com/iflytop/gd/system/constants/SystemMode.java
delete mode 100644 src/main/java/com/iflytop/gd/system/constants/VelocityUnit.java
delete mode 100644 src/main/java/com/iflytop/gd/system/devices/ColdTray.java
delete mode 100644 src/main/java/com/iflytop/gd/system/devices/Door.java
delete mode 100644 src/main/java/com/iflytop/gd/system/devices/Fan.java
delete mode 100644 src/main/java/com/iflytop/gd/system/devices/Heater.java
delete mode 100644 src/main/java/com/iflytop/gd/system/devices/HoldingJaw.java
delete mode 100644 src/main/java/com/iflytop/gd/system/devices/LiquidFillingArm.java
delete mode 100644 src/main/java/com/iflytop/gd/system/devices/Pump.java
delete mode 100644 src/main/java/com/iflytop/gd/system/devices/Relay.java
delete mode 100644 src/main/java/com/iflytop/gd/system/devices/ServoMotor.java
delete mode 100644 src/main/java/com/iflytop/gd/system/devices/StepMotor.java
delete mode 100644 src/main/java/com/iflytop/gd/system/devices/SwitchSensor.java
delete mode 100644 src/main/java/com/iflytop/gd/system/devices/TransportationArm.java
delete mode 100644 src/main/java/com/iflytop/gd/system/drivers/CommandBus.java
delete mode 100644 src/main/java/com/iflytop/gd/system/exceptions/CommandExecTimeoutException.java
delete mode 100644 src/main/java/com/iflytop/gd/system/exceptions/HardwareErrorException.java
delete mode 100644 src/main/java/com/iflytop/gd/system/models/DataPacket.java
delete mode 100644 src/main/java/com/iflytop/gd/system/models/HeaterStatus.java
delete mode 100644 src/main/java/com/iflytop/gd/system/models/Point3D.java
delete mode 100644 src/main/java/com/iflytop/gd/system/models/ServoMotorStatus.java
delete mode 100644 src/main/java/com/iflytop/gd/system/models/StepMotorStatus.java
delete mode 100644 src/main/java/com/iflytop/gd/system/modules/NotificationPushMgr.java
delete mode 100644 src/main/java/com/iflytop/gd/system/package-info.java
delete mode 100644 src/main/java/com/iflytop/gd/system/utils/ByteArray.java
diff --git a/src/main/java/com/iflytop/gd/app/cmd/DemoCommand.java b/src/main/java/com/iflytop/gd/app/cmd/DemoCommand.java
new file mode 100644
index 0000000..93919b4
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/DemoCommand.java
@@ -0,0 +1,21 @@
+package com.iflytop.gd.app.cmd;
+
+import com.iflytop.gd.app.core.BaseCommandHandler;
+import com.iflytop.gd.app.model.dto.CmdDTO;
+import com.iflytop.gd.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("demo_command")//业务指令注解
+public class DemoCommand extends BaseCommandHandler {
+
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+ log.info("cmdDTO:{}", cmdDTO);
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStartHeatingCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStartHeatingCommandHandler.java
new file mode 100644
index 0000000..9950e41
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStartHeatingCommandHandler.java
@@ -0,0 +1,23 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理冷阱开启加热
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_cold_trap_start_heating")
+public class ColdTrapStartHeatingCommandHandler extends BaseCommandHandler {
+
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStartRecycleCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStartRecycleCommandHandler.java
new file mode 100644
index 0000000..d40f168
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStartRecycleCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理冷阱开启循环指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_cold_trap_start_recycle")
+public class ColdTrapStartRecycleCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStartRefrigerationCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStartRefrigerationCommandHandler.java
new file mode 100644
index 0000000..ab76de8
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStartRefrigerationCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理启动冷阱制冷指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_cold_trap_start_refrigeration")
+public class ColdTrapStartRefrigerationCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStopHeatingCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStopHeatingCommandHandler.java
new file mode 100644
index 0000000..778cb84
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStopHeatingCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理冷阱停止加热指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_cold_trap_stop_heating")
+public class ColdTrapStopHeatingCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStopRecycleCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStopRecycleCommandHandler.java
new file mode 100644
index 0000000..da603ee
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStopRecycleCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理停止冷阱循环指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_cold_trap_stop_recycle")
+public class ColdTrapStopRecycleCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStopRefrigerationCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStopRefrigerationCommandHandler.java
new file mode 100644
index 0000000..17d4958
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/ColdTrapStopRefrigerationCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理停止冷阱制冷指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_cold_trap_stop_refrigeration")
+public class ColdTrapStopRefrigerationCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/CoverElevatorLiftDownCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/CoverElevatorLiftDownCommandHandler.java
new file mode 100644
index 0000000..8b021bd
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/CoverElevatorLiftDownCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理拍子电机下降指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_cover_elevator_lift_down")
+public class CoverElevatorLiftDownCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/CoverElevatorLiftUpCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/CoverElevatorLiftUpCommandHandler.java
new file mode 100644
index 0000000..a3d6fc4
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/CoverElevatorLiftUpCommandHandler.java
@@ -0,0 +1,23 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 处理拍子电机抬升指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_cover_elevator_lift_up")
+public class CoverElevatorLiftUpCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/CoverElevatorResetCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/CoverElevatorResetCommandHandler.java
new file mode 100644
index 0000000..0a50744
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/CoverElevatorResetCommandHandler.java
@@ -0,0 +1,16 @@
+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.common.annotation.CommandMapping;
+
+/**
+ * 处理拍子抬升电机复位指令
+ */
+@CommandMapping("debug_cover_elevator_reset")
+public class CoverElevatorResetCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/CoverElevatorStopCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/CoverElevatorStopCommandHandler.java
new file mode 100644
index 0000000..64bc55a
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/CoverElevatorStopCommandHandler.java
@@ -0,0 +1,16 @@
+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.common.annotation.CommandMapping;
+
+/**
+ * 处理拍子抬升电机停止指令
+ */
+@CommandMapping("debug_cover_elevator_stop")
+public class CoverElevatorStopCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/DoorCloseCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/DoorCloseCommandHandler.java
new file mode 100644
index 0000000..bc7fe5e
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/DoorCloseCommandHandler.java
@@ -0,0 +1,21 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理关门指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_door_close")
+public class DoorCloseCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/DoorOpenCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/DoorOpenCommandHandler.java
new file mode 100644
index 0000000..d70319e
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/DoorOpenCommandHandler.java
@@ -0,0 +1,21 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理开门指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_door_open")
+public class DoorOpenCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/DoorStopCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/DoorStopCommandHandler.java
new file mode 100644
index 0000000..56fdf8e
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/DoorStopCommandHandler.java
@@ -0,0 +1,21 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理停止门运动指令处理器
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_door_stop")
+public class DoorStopCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStartCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStartCommandHandler.java
new file mode 100644
index 0000000..5f55f37
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStartCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理启动加热器指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_heater_start")
+public class HeaterStartCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStartHeatMaintainingCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStartHeatMaintainingCommandHandler.java
new file mode 100644
index 0000000..523ed25
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStartHeatMaintainingCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理启动加热器恒温指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_heater_start_heat_maintaining")
+public class HeaterStartHeatMaintainingCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStopCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStopCommandHandler.java
new file mode 100644
index 0000000..8c0bce5
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStopCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理停止加热器指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_heater_stop")
+public class HeaterStopCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStopMaintainingCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStopMaintainingCommandHandler.java
new file mode 100644
index 0000000..d8eb9cd
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStopMaintainingCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理停止恒温加热指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_heater_stop_heat_maintaining")
+public class HeaterStopMaintainingCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/HoldingJawCloseCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/HoldingJawCloseCommandHandler.java
new file mode 100644
index 0000000..0959ad3
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/HoldingJawCloseCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理夹爪闭合指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_holding_jaw_close")
+public class HoldingJawCloseCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/HoldingJawOpenCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/HoldingJawOpenCommandHandler.java
new file mode 100644
index 0000000..ea7b28e
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/HoldingJawOpenCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理打开夹爪指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_holding_jaw_open")
+public class HoldingJawOpenCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/HoldingJawPauseCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/HoldingJawPauseCommandHandler.java
new file mode 100644
index 0000000..7ec830d
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/HoldingJawPauseCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理暂停夹爪指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_holding_jaw_pause")
+public class HoldingJawPauseCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidArmResetCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidArmResetCommandHandler.java
new file mode 100644
index 0000000..e8475f8
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidArmResetCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 复位加液臂指令处理器
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_liquid_arm_reset")
+public class LiquidArmResetCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidArmRotateCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidArmRotateCommandHandler.java
new file mode 100644
index 0000000..c3bb30f
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidArmRotateCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理加液臂旋转指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_liquid_arm_rotation")
+public class LiquidArmRotateCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidArmStopCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidArmStopCommandHandler.java
new file mode 100644
index 0000000..8892153
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidArmStopCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理加液臂停止指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_liquid_arm_stop")
+public class LiquidArmStopCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpPreEvacuateCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpPreEvacuateCommandHandler.java
new file mode 100644
index 0000000..b907480
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpPreEvacuateCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理排空加液头指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_liquid_pump_pre_evacuation")
+public class LiquidPumpPreEvacuateCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpPrefillCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpPrefillCommandHandler.java
new file mode 100644
index 0000000..bc2e29c
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpPrefillCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理加液头预充指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_liquid_pump_pre_filling")
+public class LiquidPumpPrefillCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpStartCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpStartCommandHandler.java
new file mode 100644
index 0000000..03aeb22
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpStartCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理加液泵启动指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_liquid_pump_start")
+public class LiquidPumpStartCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpStopCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpStopCommandHandler.java
new file mode 100644
index 0000000..0ab86fd
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpStopCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理加液泵停止指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_liquid_pump_stop")
+public class LiquidPumpStopCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorLiftDownCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorLiftDownCommandHandler.java
new file mode 100644
index 0000000..579d93a
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorLiftDownCommandHandler.java
@@ -0,0 +1,23 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 处理降下托盘指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_pallet_elevator_lift_down")
+public class PalletElevatorLiftDownCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorLiftUpCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorLiftUpCommandHandler.java
new file mode 100644
index 0000000..58301c6
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorLiftUpCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理托盘电机上升指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_pallet_elevator_lift_up")
+public class PalletElevatorLiftUpCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorStopCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorStopCommandHandler.java
new file mode 100644
index 0000000..b9e159d
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorStopCommandHandler.java
@@ -0,0 +1,23 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 处理停止托盘抬升器指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_pallet_elevator_stop")
+public class PalletElevatorStopCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/ShakerStartCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/ShakerStartCommandHandler.java
new file mode 100644
index 0000000..9f874fa
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/ShakerStartCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理启动摇匀器指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_shaker_start")
+public class ShakerStartCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/ShakerStopCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/ShakerStopCommandHandler.java
new file mode 100644
index 0000000..c96360d
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/ShakerStopCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理停止摇匀器指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_shaker_stop")
+public class ShakerStopCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/TransportationArmMoveCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/TransportationArmMoveCommandHandler.java
new file mode 100644
index 0000000..5577165
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/TransportationArmMoveCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理移动转移机械臂指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_transportation_arm_move")
+public class TransportationArmMoveCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/TransportationArmResetCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/TransportationArmResetCommandHandler.java
new file mode 100644
index 0000000..5ae4d51
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/TransportationArmResetCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理复位转移机械臂指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_transportation_arm_reset")
+public class TransportationArmResetCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/TransportationArmStopCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/TransportationArmStopCommandHandler.java
new file mode 100644
index 0000000..60a6569
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/cmd/debug/TransportationArmStopCommandHandler.java
@@ -0,0 +1,22 @@
+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.common.annotation.CommandMapping;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 处理停止转移机械臂移动指令
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+@CommandMapping("debug_transportation_arm_stop")
+public class TransportationArmStopCommandHandler extends BaseCommandHandler {
+ @Override
+ public void handle(CmdDTO cmdDTO) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/common/enums/CraftEvents.java b/src/main/java/com/iflytop/gd/app/common/enums/CraftEvents.java
deleted file mode 100644
index fde3fd2..0000000
--- a/src/main/java/com/iflytop/gd/app/common/enums/CraftEvents.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.iflytop.gd.app.common.enums;
-
-/**
- * 工艺状态机事件枚举
- */
-public enum CraftEvents {
- /** 启动工艺 */
- START,
- /** 单步完成 */
- STEP_COMPLETE,
- /** 暂停执行 */
- PAUSE,
- /** 恢复执行 */
- RESUME,
- /** 用户手动停止 */
- STOP,
- /** 执行过程中发生错误 */
- ERROR_OCCUR,
- /** 工艺正常完成 */
- FINISH
-
-}
diff --git a/src/main/java/com/iflytop/gd/app/common/enums/CraftStates.java b/src/main/java/com/iflytop/gd/app/common/enums/CraftStates.java
deleted file mode 100644
index 3cbef12..0000000
--- a/src/main/java/com/iflytop/gd/app/common/enums/CraftStates.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.iflytop.gd.app.common.enums;
-
-/**
- * 工艺状态机状态枚举
- */
-public enum CraftStates {
- /** 初始状态,尚未启动工艺 */
- READY,
- /** 工艺正在执行中 */
- RUNNING,
- /** 工艺已暂停,等待恢复 */
- PAUSED,
- /** 工艺已被手动停止 */
- STOPPED,
- /** 工艺执行过程中发生错误 */
- ERROR,
- /** 工艺已正常执行完毕 */
- FINISHED
-}
diff --git a/src/main/java/com/iflytop/gd/app/config/CraftsStateMachineConfig.java b/src/main/java/com/iflytop/gd/app/config/CraftsStateMachineConfig.java
index b0fc658..17a980c 100644
--- a/src/main/java/com/iflytop/gd/app/config/CraftsStateMachineConfig.java
+++ b/src/main/java/com/iflytop/gd/app/config/CraftsStateMachineConfig.java
@@ -1,7 +1,7 @@
package com.iflytop.gd.app.config;
-import com.iflytop.gd.app.common.enums.CraftEvents;
-import com.iflytop.gd.app.common.enums.CraftStates;
+import com.iflytop.gd.common.enums.CraftEvents;
+import com.iflytop.gd.common.enums.CraftStates;
import org.springframework.context.annotation.Configuration;
import org.springframework.statemachine.config.EnableStateMachineFactory;
import org.springframework.statemachine.config.StateMachineConfigurerAdapter;
diff --git a/src/main/java/com/iflytop/gd/app/config/MybatisPlusConfig.java b/src/main/java/com/iflytop/gd/app/config/MybatisPlusConfig.java
new file mode 100644
index 0000000..a474d08
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/config/MybatisPlusConfig.java
@@ -0,0 +1,61 @@
+package com.iflytop.gd.app.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import com.iflytop.gd.common.handler.MyMetaObjectHandler;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ *
+ */
+@EnableTransactionManagement
+@Configuration
+public class MybatisPlusConfig {
+
+ @Bean
+ public MybatisPlusInterceptor mybatisPlusInterceptor() {
+ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+ // 乐观锁插件
+ interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor());
+ // 分页插件
+ interceptor.addInnerInterceptor(paginationInnerInterceptor());
+
+ return interceptor;
+ }
+
+ /**
+ * 分页插件,自动识别数据库类型
+ * ...
+ */
+ public PaginationInnerInterceptor paginationInnerInterceptor() {
+ PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
+ // 设置数据库类型
+ paginationInnerInterceptor.setDbType(DbType.SQLITE);
+ // 设置最大单页限制数量,默认 500 条,-1 不受限制
+ paginationInnerInterceptor.setMaxLimit(-1L);
+ return paginationInnerInterceptor;
+ }
+
+ /**
+ * 乐观锁插件
+ * ...
+ */
+ public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor() {
+ return new OptimisticLockerInnerInterceptor();
+ }
+
+ /**
+ * 自动填充数据库创建人、创建时间、更新人、更新时间
+ */
+ @Bean
+ public GlobalConfig globalConfig() {
+ GlobalConfig globalConfig = new GlobalConfig();
+ globalConfig.setMetaObjectHandler(new MyMetaObjectHandler());
+ return globalConfig;
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/config/SwaggerConfig.java b/src/main/java/com/iflytop/gd/app/config/SwaggerConfig.java
new file mode 100644
index 0000000..09706cb
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/config/SwaggerConfig.java
@@ -0,0 +1,68 @@
+package com.iflytop.gd.app.config;
+
+import cn.hutool.core.util.ArrayUtil;
+import io.swagger.v3.oas.models.Components;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.info.Info;
+import io.swagger.v3.oas.models.security.SecurityScheme;
+import org.springdoc.core.customizers.GlobalOpenApiCustomizer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpHeaders;
+import org.springframework.util.AntPathMatcher;
+
+import java.util.stream.Stream;
+
+/***
+ * 创建Swagger配置
+ */
+@Configuration
+public class SwaggerConfig {
+
+ @Bean
+ public GlobalOpenApiCustomizer orderGlobalOpenApiCustomizer() {
+ return openApi -> {
+ // 全局添加Authorization
+ if (openApi.getPaths() != null) {
+ openApi.getPaths().forEach((path, pathItem) -> {
+
+ // 忽略认证的请求无需携带 Authorization
+ String[] ignoreUrls = {"/api/auth/login"};
+ if (ArrayUtil.isNotEmpty(ignoreUrls)) {
+ // Ant 匹配忽略的路径,不添加Authorization
+ AntPathMatcher antPathMatcher = new AntPathMatcher();
+ if (Stream.of(ignoreUrls).anyMatch(ignoreUrl -> antPathMatcher.match(ignoreUrl, path))) {
+ return;
+ }
+ }
+
+ // 其他接口统一添加Authorization
+// pathItem.readOperations()
+// .forEach(operation ->
+// operation.addSecurityItem(new SecurityRequirement().addList(HttpHeaders.AUTHORIZATION))
+// );
+ });
+ }
+ };
+ }
+
+ @Bean
+ public OpenAPI customOpenAPI() {
+ return new OpenAPI()
+ .info(new Info()
+ .title("系统API")
+ .version("1.0")) // 配置全局鉴权参数-Authorize
+ .components(new Components()
+ .addSecuritySchemes(HttpHeaders.AUTHORIZATION,
+ new SecurityScheme()
+ .name(HttpHeaders.AUTHORIZATION)
+ .type(SecurityScheme.Type.APIKEY)
+ .in(SecurityScheme.In.HEADER)
+ .scheme("Bearer")
+ .bearerFormat("JWT")
+ )
+ );
+ }
+
+
+}
diff --git a/src/main/java/com/iflytop/gd/app/config/WebConfig.java b/src/main/java/com/iflytop/gd/app/config/WebConfig.java
new file mode 100644
index 0000000..52cdc05
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/config/WebConfig.java
@@ -0,0 +1,16 @@
+package com.iflytop.gd.app.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@Configuration
+public class WebConfig implements WebMvcConfigurer {
+ @Override
+ public void addCorsMappings(CorsRegistry registry) {
+ registry.addMapping("/api/**")
+ .allowedOrigins("*")
+ .allowedMethods("GET", "POST", "PUT", "DELETE")
+ .allowedHeaders("*");
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/app/config/WebSocketConfig.java b/src/main/java/com/iflytop/gd/app/config/WebSocketConfig.java
new file mode 100644
index 0000000..9b9d910
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/config/WebSocketConfig.java
@@ -0,0 +1,14 @@
+package com.iflytop.gd.app.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.socket.server.standard.ServerEndpointExporter;
+
+@Configuration
+public class WebSocketConfig {
+
+ @Bean
+ public ServerEndpointExporter serverEndpointExporter() {
+ return new ServerEndpointExporter();
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/config/WebSocketServer.java b/src/main/java/com/iflytop/gd/app/config/WebSocketServer.java
new file mode 100644
index 0000000..54f2655
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/config/WebSocketServer.java
@@ -0,0 +1,52 @@
+package com.iflytop.gd.app.config;
+
+import jakarta.websocket.*;
+import jakarta.websocket.server.ServerEndpoint;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+@Slf4j
+@ServerEndpoint("/ws")
+@Component
+public class WebSocketServer {
+
+ private static final Set sessions = Collections.synchronizedSet(new HashSet<>());
+
+ public static void sendMessageToClients(String message) {
+ synchronized (sessions) {
+ for (Session session : sessions) {
+ try {
+ session.getBasicRemote().sendText(message);
+ } catch (Exception e) {
+ log.error("发送给客户端失败 sessionId={}", session.getId(), e);
+ }
+ }
+ }
+ }
+
+ @OnOpen
+ public void onOpen(Session session) {
+ sessions.add(session);
+ log.info("新连接加入,sessionId={}", session.getId());
+ }
+
+ @OnMessage
+ public void onMessage(String message, Session session) {
+ log.info("收到消息 sessionId={},内容:{}", session.getId(), message);
+ }
+
+ @OnClose
+ public void onClose(Session session) {
+ sessions.remove(session);
+ log.info("连接已关闭,sessionId={}", session.getId());
+ }
+
+ @OnError
+ public void onError(Session session, Throwable error) {
+ log.error("发生错误,sessionId={}", session.getId(), error);
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/controller/AuthController.java b/src/main/java/com/iflytop/gd/app/controller/AuthController.java
index acb1acc..83dd60c 100644
--- a/src/main/java/com/iflytop/gd/app/controller/AuthController.java
+++ b/src/main/java/com/iflytop/gd/app/controller/AuthController.java
@@ -2,11 +2,11 @@ package com.iflytop.gd.app.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.iflytop.gd.app.model.dto.LoginDTO;
+import com.iflytop.gd.app.model.entity.User;
+import com.iflytop.gd.app.service.UserService;
import com.iflytop.gd.common.enums.Deleted;
import com.iflytop.gd.common.result.Result;
import com.iflytop.gd.common.result.ResultCode;
-import com.iflytop.gd.infrastructure.repository.entity.User;
-import com.iflytop.gd.infrastructure.repository.service.UserService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
diff --git a/src/main/java/com/iflytop/gd/app/controller/CmdController.java b/src/main/java/com/iflytop/gd/app/controller/CmdController.java
index ae70a12..e462bec 100644
--- a/src/main/java/com/iflytop/gd/app/controller/CmdController.java
+++ b/src/main/java/com/iflytop/gd/app/controller/CmdController.java
@@ -3,7 +3,7 @@ package com.iflytop.gd.app.controller;
import com.iflytop.gd.common.cmd.CommandHandler;
import com.iflytop.gd.app.core.CommandHandlerRegistry;
import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.app.service.exceptions.UnSupportCommandException;
+import com.iflytop.gd.common.exception.UnSupportCommandException;
import com.iflytop.gd.common.result.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
diff --git a/src/main/java/com/iflytop/gd/app/controller/CmdDebugController.java b/src/main/java/com/iflytop/gd/app/controller/CmdDebugController.java
new file mode 100644
index 0000000..c37b279
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/controller/CmdDebugController.java
@@ -0,0 +1,50 @@
+package com.iflytop.gd.app.controller;
+
+import com.iflytop.gd.app.model.dto.CmdDTO;
+import com.iflytop.gd.common.exception.UnSupportCommandException;
+import com.iflytop.gd.common.result.Result;
+import com.iflytop.gd.common.cmd.CommandHandler;
+import com.iflytop.gd.app.core.CommandHandlerRegistry;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.concurrent.CompletableFuture;
+
+@Tag(name = "前端调试指令")
+@RestController
+@RequestMapping("/api/debug/cmd")
+@RequiredArgsConstructor
+@Slf4j
+public class CmdDebugController {
+ private final CommandHandlerRegistry registry;
+
+ @Operation(summary = "前端调试指令")
+ @PostMapping
+ public Result> controlMethod(@Valid @RequestBody CmdDTO cmdDTO) {
+ String commandName = cmdDTO.getCommand();
+ try {
+ log.info("收到调试指令{}", commandName);
+ CommandHandler commandHandler = registry.getCommandHandler(commandName);
+ log.info("找到指令处理器{}", commandHandler.getClass().getName());
+ CompletableFuture.runAsync(() -> commandHandler.handle(cmdDTO));
+ log.info("指令处理器提交异步执行");
+ } catch (UnSupportCommandException exception) {
+ log.error("未找到对应的调试指令{}", commandName);
+ String errorMsg = "未找到对应的调试指令, commandName=" + commandName;
+ return Result.failed(errorMsg);
+ } catch (Exception e) {
+ log.error("执行调试指令发生异常: {}", cmdDTO, e);
+ return Result.failed(e.getMessage());
+ }
+ return Result.success();
+ }
+
+
+}
diff --git a/src/main/java/com/iflytop/gd/app/controller/OresController.java b/src/main/java/com/iflytop/gd/app/controller/OresController.java
index 52b1b4e..90d3fa6 100644
--- a/src/main/java/com/iflytop/gd/app/controller/OresController.java
+++ b/src/main/java/com/iflytop/gd/app/controller/OresController.java
@@ -3,7 +3,7 @@ package com.iflytop.gd.app.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.iflytop.gd.app.model.entity.Ores;
import com.iflytop.gd.app.model.vo.OresCraftsListVO;
-import com.iflytop.gd.infrastructure.repository.base.BasePageQuery;
+import com.iflytop.gd.common.base.BasePageQuery;
import com.iflytop.gd.common.result.PageResult;
import com.iflytop.gd.app.service.OresService;
import com.iflytop.gd.common.result.Result;
diff --git a/src/main/java/com/iflytop/gd/app/controller/SolutionsController.java b/src/main/java/com/iflytop/gd/app/controller/SolutionsController.java
index 5e30a40..0c318b0 100644
--- a/src/main/java/com/iflytop/gd/app/controller/SolutionsController.java
+++ b/src/main/java/com/iflytop/gd/app/controller/SolutionsController.java
@@ -7,7 +7,7 @@ import com.iflytop.gd.app.service.SolutionsService;
import com.iflytop.gd.common.result.PageResult;
import com.iflytop.gd.common.result.Result;
import com.iflytop.gd.common.result.ResultCode;
-import com.iflytop.gd.infrastructure.repository.base.BasePageQuery;
+import com.iflytop.gd.common.base.BasePageQuery;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
diff --git a/src/main/java/com/iflytop/gd/app/controller/UserController.java b/src/main/java/com/iflytop/gd/app/controller/UserController.java
index f2cdf60..0fc5ca8 100644
--- a/src/main/java/com/iflytop/gd/app/controller/UserController.java
+++ b/src/main/java/com/iflytop/gd/app/controller/UserController.java
@@ -3,12 +3,12 @@ package com.iflytop.gd.app.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.iflytop.gd.infrastructure.repository.base.BasePageQuery;
+import com.iflytop.gd.common.base.BasePageQuery;
import com.iflytop.gd.common.result.PageResult;
import com.iflytop.gd.common.result.Result;
import com.iflytop.gd.common.result.ResultCode;
-import com.iflytop.gd.infrastructure.repository.entity.User;
-import com.iflytop.gd.infrastructure.repository.service.UserService;
+import com.iflytop.gd.app.model.entity.User;
+import com.iflytop.gd.app.service.UserService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
diff --git a/src/main/java/com/iflytop/gd/app/core/BaseCommandHandler.java b/src/main/java/com/iflytop/gd/app/core/BaseCommandHandler.java
index 51a77bf..3087258 100644
--- a/src/main/java/com/iflytop/gd/app/core/BaseCommandHandler.java
+++ b/src/main/java/com/iflytop/gd/app/core/BaseCommandHandler.java
@@ -4,7 +4,7 @@ package com.iflytop.gd.app.core;
import com.iflytop.gd.common.annotation.CheckedRunnable;
import com.iflytop.gd.common.cmd.CommandHandler;
-import com.iflytop.gd.common.device.CommandFuture;
+import com.iflytop.gd.common.cmd.CommandFuture;
import com.iflytop.gd.common.utils.LambdaUtil;
import java.util.Arrays;
diff --git a/src/main/java/com/iflytop/gd/app/core/CommandHandlerRegistry.java b/src/main/java/com/iflytop/gd/app/core/CommandHandlerRegistry.java
index 65b78f7..35fa891 100644
--- a/src/main/java/com/iflytop/gd/app/core/CommandHandlerRegistry.java
+++ b/src/main/java/com/iflytop/gd/app/core/CommandHandlerRegistry.java
@@ -1,6 +1,6 @@
package com.iflytop.gd.app.core;
-import com.iflytop.gd.app.service.exceptions.UnSupportCommandException;
+import com.iflytop.gd.common.exception.UnSupportCommandException;
import com.iflytop.gd.common.annotation.CommandMapping;
import com.iflytop.gd.common.cmd.CommandHandler;
import io.micrometer.common.lang.NonNull;
diff --git a/src/main/java/com/iflytop/gd/app/core/CraftsContext.java b/src/main/java/com/iflytop/gd/app/core/CraftsContext.java
index 968f09c..6865d34 100644
--- a/src/main/java/com/iflytop/gd/app/core/CraftsContext.java
+++ b/src/main/java/com/iflytop/gd/app/core/CraftsContext.java
@@ -1,8 +1,8 @@
package com.iflytop.gd.app.core;
import cn.hutool.json.JSONUtil;
-import com.iflytop.gd.app.common.enums.CraftEvents;
-import com.iflytop.gd.app.common.enums.CraftStates;
+import com.iflytop.gd.common.enums.CraftEvents;
+import com.iflytop.gd.common.enums.CraftStates;
import com.iflytop.gd.app.model.bo.CraftsStep;
import com.iflytop.gd.app.model.entity.Crafts;
import com.iflytop.gd.app.model.entity.Ores;
diff --git a/src/main/java/com/iflytop/gd/app/mapper/UserMapper.java b/src/main/java/com/iflytop/gd/app/mapper/UserMapper.java
new file mode 100644
index 0000000..52e030d
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/mapper/UserMapper.java
@@ -0,0 +1,13 @@
+package com.iflytop.gd.app.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.iflytop.gd.app.model.entity.User;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户持久层接口
+ */
+@Mapper
+public interface UserMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/com/iflytop/gd/app/model/bo/Notification.java b/src/main/java/com/iflytop/gd/app/model/bo/Notification.java
new file mode 100644
index 0000000..5504949
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/model/bo/Notification.java
@@ -0,0 +1,98 @@
+package com.iflytop.gd.app.model.bo;
+
+import cn.hutool.core.date.DateTime;
+import com.iflytop.gd.app.model.dto.CmdDTO;
+import lombok.Getter;
+
+
+/**
+ * 向前台推送的消息类
+ */
+
+@Getter
+public class Notification {
+ private final String commandId;
+ private final String command;
+ private final String level;
+ private final String title;
+ private String content = null;
+ private final String dateTime = DateTime.now().toString("yyyy/MM/dd HH:mm:ss");
+
+ private Notification(String commandId, String command, String level, String title, String content) {
+ this.commandId = commandId;
+ this.level = level;
+ this.title = title;
+ this.content = content;
+ this.command = command;
+ }
+
+ private Notification(String commandId, String command, String level, String title) {
+ this.commandId = commandId;
+ this.level = level;
+ this.title = title;
+ this.command = command;
+ }
+
+ /**
+ * 创建Info级别通知
+ * @param content 通知内容
+ * @return 通知实例
+ */
+ public static Notification infoNotification(String commandId, String command, String title, String content) {
+ return new Notification(commandId, command, "info", title, content);
+ }
+
+ public static Notification infoNotification(String commandId, String command, String title) {
+ return new Notification(commandId, command, "info", title, "");
+ }
+
+ public static Notification infoNotification(CmdDTO cmdDTO, String title) {
+ return new Notification(cmdDTO.getCommandId(), cmdDTO.getCommand(), "info", title, "");
+ }
+
+ public static Notification infoHandleStartNotification(CmdDTO cmdDTO) {
+ String title = String.format("开始执行{}指令", cmdDTO.getCommand());
+ return new Notification(cmdDTO.getCommandId(), cmdDTO.getCommand(), "info", title, "");
+ }
+
+ public static Notification infoHandleEndNotification(CmdDTO cmdDTO) {
+ String title = String.format("{}指令执行完成", cmdDTO.getCommand());
+ return new Notification(cmdDTO.getCommandId(), cmdDTO.getCommand(), "info", title, "");
+ }
+
+
+ /**
+ * 创建Warn级别通知
+ * @param content 通知内容
+ * @return 通知实例
+ */
+ public static Notification warnNotification(String commandId, String command, String title, String content) {
+ return new Notification(commandId, command, "warn", title, content);
+ }
+
+ /**
+ * 创建Error级别通知
+ * @param content 通知内容
+ * @return 通知实例
+ */
+ public static Notification errorNotification(String commandId, String command, String title, String content) {
+ return new Notification(commandId, command, "error", title, content);
+ }
+
+ public static Notification errorNotification(CmdDTO cmdDTO, Exception e) {
+ String title = String.format("执行{}出错", cmdDTO.getCommand());
+ return new Notification(cmdDTO.getCommandId(), cmdDTO.getCommand(), "error", title, e.getMessage());
+ }
+
+
+ /**
+ * 创建Fatal级别通知
+ * @param content 通知内容
+ * @return 通知实例
+ */
+ public static Notification fatalNotification(String commandId, String command, String title, String content) {
+ return new Notification(commandId, command, "fatal", title, content);
+ }
+
+
+}
diff --git a/src/main/java/com/iflytop/gd/app/model/bo/Point3D.java b/src/main/java/com/iflytop/gd/app/model/bo/Point3D.java
new file mode 100644
index 0000000..7ab4aa7
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/model/bo/Point3D.java
@@ -0,0 +1,23 @@
+package com.iflytop.gd.app.model.bo;
+
+
+import lombok.Getter;
+
+@Getter
+public class Point3D {
+ private final Integer x;
+ private final Integer y;
+ private final Integer z;
+
+ public Point3D(Integer x, Integer y, Integer z) {
+ this.x = x;
+ this.y = y;
+ this.z = z;
+ }
+
+ public Point3D(Integer x, Integer y) {
+ this.x = x;
+ this.y = y;
+ this.z = 0;
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/model/entity/Container.java b/src/main/java/com/iflytop/gd/app/model/entity/Container.java
index 4bf4d1e..892d4e3 100644
--- a/src/main/java/com/iflytop/gd/app/model/entity/Container.java
+++ b/src/main/java/com/iflytop/gd/app/model/entity/Container.java
@@ -1,7 +1,7 @@
package com.iflytop.gd.app.model.entity;
import com.baomidou.mybatisplus.annotation.TableName;
-import com.iflytop.gd.infrastructure.repository.base.BaseEntity;
+import com.iflytop.gd.common.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.*;
import lombok.Data;
diff --git a/src/main/java/com/iflytop/gd/app/model/entity/Crafts.java b/src/main/java/com/iflytop/gd/app/model/entity/Crafts.java
index b51a4b4..730639b 100644
--- a/src/main/java/com/iflytop/gd/app/model/entity/Crafts.java
+++ b/src/main/java/com/iflytop/gd/app/model/entity/Crafts.java
@@ -1,7 +1,7 @@
package com.iflytop.gd.app.model.entity;
import com.baomidou.mybatisplus.annotation.TableName;
-import com.iflytop.gd.infrastructure.repository.base.BaseEntity;
+import com.iflytop.gd.common.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
diff --git a/src/main/java/com/iflytop/gd/app/model/entity/DeviceParamConfig.java b/src/main/java/com/iflytop/gd/app/model/entity/DeviceParamConfig.java
index 53b1804..9856f00 100644
--- a/src/main/java/com/iflytop/gd/app/model/entity/DeviceParamConfig.java
+++ b/src/main/java/com/iflytop/gd/app/model/entity/DeviceParamConfig.java
@@ -1,7 +1,7 @@
package com.iflytop.gd.app.model.entity;
import com.baomidou.mybatisplus.annotation.TableName;
-import com.iflytop.gd.infrastructure.repository.base.BaseEntity;
+import com.iflytop.gd.common.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
diff --git a/src/main/java/com/iflytop/gd/app/model/entity/Ores.java b/src/main/java/com/iflytop/gd/app/model/entity/Ores.java
index 18698a6..cfd3948 100644
--- a/src/main/java/com/iflytop/gd/app/model/entity/Ores.java
+++ b/src/main/java/com/iflytop/gd/app/model/entity/Ores.java
@@ -1,9 +1,8 @@
package com.iflytop.gd.app.model.entity;
import com.baomidou.mybatisplus.annotation.TableName;
-import com.iflytop.gd.infrastructure.repository.base.BaseEntity;
+import com.iflytop.gd.common.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/src/main/java/com/iflytop/gd/app/model/entity/Solutions.java b/src/main/java/com/iflytop/gd/app/model/entity/Solutions.java
index 00de4e7..464127e 100644
--- a/src/main/java/com/iflytop/gd/app/model/entity/Solutions.java
+++ b/src/main/java/com/iflytop/gd/app/model/entity/Solutions.java
@@ -1,9 +1,8 @@
package com.iflytop.gd.app.model.entity;
import com.baomidou.mybatisplus.annotation.TableName;
-import com.iflytop.gd.infrastructure.repository.base.BaseEntity;
+import com.iflytop.gd.common.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/src/main/java/com/iflytop/gd/app/model/entity/SystemConfig.java b/src/main/java/com/iflytop/gd/app/model/entity/SystemConfig.java
index 50ea070..8c7f204 100644
--- a/src/main/java/com/iflytop/gd/app/model/entity/SystemConfig.java
+++ b/src/main/java/com/iflytop/gd/app/model/entity/SystemConfig.java
@@ -1,7 +1,7 @@
package com.iflytop.gd.app.model.entity;
import com.baomidou.mybatisplus.annotation.TableName;
-import com.iflytop.gd.infrastructure.repository.base.BaseEntity;
+import com.iflytop.gd.common.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
diff --git a/src/main/java/com/iflytop/gd/app/model/entity/User.java b/src/main/java/com/iflytop/gd/app/model/entity/User.java
new file mode 100644
index 0000000..d06733e
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/model/entity/User.java
@@ -0,0 +1,45 @@
+package com.iflytop.gd.app.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.iflytop.gd.common.base.BaseEntity;
+import com.iflytop.gd.common.enums.Deleted;
+import com.iflytop.gd.common.enums.FixedUser;
+import com.iflytop.gd.common.enums.UsrRole;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 用户实体
+ */
+@EqualsAndHashCode(callSuper = true)
+@Schema(description = "用户")
+@TableName("user")
+@Data
+public class User extends BaseEntity {
+
+ @NotNull
+ @Schema(description = "用户名")
+ private String username;
+
+ @NotNull
+ @Schema(description = "昵称")
+ private String nickname;
+
+ @NotNull
+ @Schema(description = "密码")
+ private String password;
+
+ @NotNull
+ @Schema(description = "人员角色")
+ private UsrRole role;
+
+ @NotNull
+ @Schema(description = "是否删除(0-否 1-是)")
+ private Deleted deleted;
+
+ @Schema(description = "是否是系统固定用户")
+ private FixedUser fixedUser;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/app/model/vo/CraftStatusVO.java b/src/main/java/com/iflytop/gd/app/model/vo/CraftStatusVO.java
index 58db65a..f028f9a 100644
--- a/src/main/java/com/iflytop/gd/app/model/vo/CraftStatusVO.java
+++ b/src/main/java/com/iflytop/gd/app/model/vo/CraftStatusVO.java
@@ -1,6 +1,6 @@
package com.iflytop.gd.app.model.vo;
-import com.iflytop.gd.app.common.enums.CraftStates;
+import com.iflytop.gd.common.enums.CraftStates;
import com.iflytop.gd.app.model.bo.CraftsStep;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
diff --git a/src/main/java/com/iflytop/gd/app/service/CraftsService.java b/src/main/java/com/iflytop/gd/app/service/CraftsService.java
index 8050e62..1101eb3 100644
--- a/src/main/java/com/iflytop/gd/app/service/CraftsService.java
+++ b/src/main/java/com/iflytop/gd/app/service/CraftsService.java
@@ -2,8 +2,8 @@ package com.iflytop.gd.app.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.iflytop.gd.app.common.enums.CraftEvents;
-import com.iflytop.gd.app.common.enums.CraftStates;
+import com.iflytop.gd.common.enums.CraftEvents;
+import com.iflytop.gd.common.enums.CraftStates;
import com.iflytop.gd.app.core.CraftsContext;
import com.iflytop.gd.app.mapper.CraftsMapper;
import com.iflytop.gd.app.model.entity.Crafts;
diff --git a/src/main/java/com/iflytop/gd/app/service/DeviceParamConfigService.java b/src/main/java/com/iflytop/gd/app/service/DeviceParamConfigService.java
index 25c4a05..a9bc8c9 100644
--- a/src/main/java/com/iflytop/gd/app/service/DeviceParamConfigService.java
+++ b/src/main/java/com/iflytop/gd/app/service/DeviceParamConfigService.java
@@ -7,8 +7,8 @@ import com.iflytop.gd.app.model.entity.DeviceParamConfig;
import com.iflytop.gd.app.model.vo.DeviceParamGroupVO;
import com.iflytop.gd.app.model.vo.ModuleIdVO;
import com.iflytop.gd.app.model.vo.RegIndexVO;
-import com.iflytop.gd.infrastructure.drivers.ModuleId;
-import com.iflytop.gd.infrastructure.drivers.RegIndex;
+import com.iflytop.gd.hardware.drivers.ModuleId;
+import com.iflytop.gd.hardware.drivers.RegIndex;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
diff --git a/src/main/java/com/iflytop/gd/app/service/OresService.java b/src/main/java/com/iflytop/gd/app/service/OresService.java
index 2593cd4..86c9c68 100644
--- a/src/main/java/com/iflytop/gd/app/service/OresService.java
+++ b/src/main/java/com/iflytop/gd/app/service/OresService.java
@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iflytop.gd.app.model.vo.OresCraftsListVO;
-import com.iflytop.gd.infrastructure.repository.base.BasePageQuery;
+import com.iflytop.gd.common.base.BasePageQuery;
import com.iflytop.gd.app.mapper.CraftsMapper;
import com.iflytop.gd.app.mapper.OresMapper;
import com.iflytop.gd.app.model.entity.Crafts;
diff --git a/src/main/java/com/iflytop/gd/app/service/UserService.java b/src/main/java/com/iflytop/gd/app/service/UserService.java
new file mode 100644
index 0000000..afd8b03
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/app/service/UserService.java
@@ -0,0 +1,41 @@
+package com.iflytop.gd.app.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.iflytop.gd.common.enums.FixedUser;
+import com.iflytop.gd.app.mapper.UserMapper;
+import com.iflytop.gd.app.model.entity.User;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import lombok.Setter;
+import org.springframework.stereotype.Service;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 用户业务实现类
+ */
+@Service
+@RequiredArgsConstructor
+public class UserService extends ServiceImpl {
+ @Getter
+ @Setter
+ private User currentUser;
+
+ public boolean deleteUser(String idsStr) {
+ List ids = Arrays.stream(idsStr.split(","))
+ .map(Long::parseLong)
+ .toList();
+ for (Long id : ids) {
+ User user = this.getById(id);
+ if (user != null && user.getFixedUser() != FixedUser.ENABLE) {
+ return this.removeById(id);
+ }
+ }
+ return true;
+ }
+
+ public void clearCurrentUser() {
+ currentUser = null;
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/app/service/WebSocketService.java b/src/main/java/com/iflytop/gd/app/service/WebSocketService.java
index 9516794..34ab279 100644
--- a/src/main/java/com/iflytop/gd/app/service/WebSocketService.java
+++ b/src/main/java/com/iflytop/gd/app/service/WebSocketService.java
@@ -1,8 +1,8 @@
package com.iflytop.gd.app.service;
import cn.hutool.json.JSONUtil;
-import com.iflytop.gd.common.notification.Notification;
-import com.iflytop.gd.infrastructure.config.WebSocketServer;
+import com.iflytop.gd.app.model.bo.Notification;
+import com.iflytop.gd.app.config.WebSocketServer;
import com.iflytop.gd.app.model.dto.WebsocketResult;
import org.springframework.stereotype.Service;
diff --git a/src/main/java/com/iflytop/gd/app/service/cmd/DemoCommand.java b/src/main/java/com/iflytop/gd/app/service/cmd/DemoCommand.java
deleted file mode 100644
index 48b0a8c..0000000
--- a/src/main/java/com/iflytop/gd/app/service/cmd/DemoCommand.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.iflytop.gd.app.service.cmd;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import com.iflytop.gd.common.device.CommandFuture;
-import com.iflytop.gd.common.device.DeviceCommand;
-import com.iflytop.gd.common.device.DeviceCommandGenerator;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("demo_command")//业务指令注解
-public class DemoCommand extends BaseCommandHandler {
-
- @Override
- public void handle(CmdDTO cmdDTO) {
- log.info("cmdDTO:{}", cmdDTO);
-
- //XYZ回原点
- DeviceCommand motorXOriginCommand = DeviceCommandGenerator.motorXOrigin();
- DeviceCommand motorYOriginCommand = DeviceCommandGenerator.motorYOrigin();
- DeviceCommand motorZOriginCommand = DeviceCommandGenerator.motorZOrigin();
- }
-}
diff --git a/src/main/java/com/iflytop/gd/app/service/exceptions/UnSupportCommandException.java b/src/main/java/com/iflytop/gd/app/service/exceptions/UnSupportCommandException.java
deleted file mode 100644
index 2fabf71..0000000
--- a/src/main/java/com/iflytop/gd/app/service/exceptions/UnSupportCommandException.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.iflytop.gd.app.service.exceptions;
-
-/**
- * 不支持的命令异常
- */
-public class UnSupportCommandException extends Exception{
- public UnSupportCommandException() {
- }
-
- public UnSupportCommandException(String message) {
- super(message);
- }
-
- public UnSupportCommandException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public UnSupportCommandException(Throwable cause) {
- super(cause);
- }
-
- public UnSupportCommandException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
- super(message, cause, enableSuppression, writableStackTrace);
- }
-}
diff --git a/src/main/java/com/iflytop/gd/common/base/BaseEntity.java b/src/main/java/com/iflytop/gd/common/base/BaseEntity.java
new file mode 100644
index 0000000..717a1cb
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/common/base/BaseEntity.java
@@ -0,0 +1,44 @@
+package com.iflytop.gd.common.base;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 基础实体类
+ * 实体类的基类,包含了实体类的公共属性,如创建时间、更新时间、逻辑删除标识等
+ */
+@Data
+public class BaseEntity implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 创建时间
+ */
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+}
diff --git a/src/main/java/com/iflytop/gd/common/base/BasePageQuery.java b/src/main/java/com/iflytop/gd/common/base/BasePageQuery.java
new file mode 100644
index 0000000..b16bbd3
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/common/base/BasePageQuery.java
@@ -0,0 +1,26 @@
+package com.iflytop.gd.common.base;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 基础分页请求对象
+ */
+@Data
+@Schema
+public class BasePageQuery implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "页码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ private int pageNum = 1;
+
+ @Schema(description = "每页记录数", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
+ private int pageSize = 10;
+
+
+}
diff --git a/src/main/java/com/iflytop/gd/common/base/IBaseEnum.java b/src/main/java/com/iflytop/gd/common/base/IBaseEnum.java
new file mode 100644
index 0000000..5c26744
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/common/base/IBaseEnum.java
@@ -0,0 +1,84 @@
+package com.iflytop.gd.common.base;
+
+
+import cn.hutool.core.util.ObjectUtil;
+
+import java.util.EnumSet;
+import java.util.Objects;
+
+/**
+ * 枚举通用接口
+ */
+public interface IBaseEnum {
+
+ /**
+ * 根据值获取枚举
+ *
+ * @param value
+ * @param clazz
+ * @param 枚举
+ * @return
+ */
+ static & IBaseEnum> E getEnumByValue(Object value, Class clazz) {
+ Objects.requireNonNull(value);
+ EnumSet allEnums = EnumSet.allOf(clazz); // 获取类型下的所有枚举
+ E matchEnum = allEnums.stream()
+ .filter(e -> ObjectUtil.equal(e.getValue(), value))
+ .findFirst()
+ .orElse(null);
+ return matchEnum;
+ }
+
+ /**
+ * 根据文本标签获取值
+ *
+ * @param value
+ * @param clazz
+ * @param
+ * @return
+ */
+ static & IBaseEnum> String getLabelByValue(Object value, Class clazz) {
+ Objects.requireNonNull(value);
+ EnumSet allEnums = EnumSet.allOf(clazz); // 获取类型下的所有枚举
+ E matchEnum = allEnums.stream()
+ .filter(e -> ObjectUtil.equal(e.getValue(), value))
+ .findFirst()
+ .orElse(null);
+
+ String label = null;
+ if (matchEnum != null) {
+ label = matchEnum.getLabel();
+ }
+ return label;
+ }
+
+ /**
+ * 根据文本标签获取值
+ *
+ * @param label
+ * @param clazz
+ * @param
+ * @return
+ */
+ static & IBaseEnum> Object getValueByLabel(String label, Class clazz) {
+ Objects.requireNonNull(label);
+ EnumSet allEnums = EnumSet.allOf(clazz); // 获取类型下的所有枚举
+ String finalLabel = label;
+ E matchEnum = allEnums.stream()
+ .filter(e -> ObjectUtil.equal(e.getLabel(), finalLabel))
+ .findFirst()
+ .orElse(null);
+
+ Object value = null;
+ if (matchEnum != null) {
+ value = matchEnum.getValue();
+ }
+ return value;
+ }
+
+ T getValue();
+
+ String getLabel();
+
+
+}
diff --git a/src/main/java/com/iflytop/gd/common/cmd/CommandFuture.java b/src/main/java/com/iflytop/gd/common/cmd/CommandFuture.java
new file mode 100644
index 0000000..7c81029
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/common/cmd/CommandFuture.java
@@ -0,0 +1,55 @@
+package com.iflytop.gd.common.cmd;
+
+import cn.hutool.json.JSONObject;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+@Setter
+@Getter
+public class CommandFuture {
+ /**
+ * 用于保存response反馈
+ */
+ private CompletableFuture responseFuture = new CompletableFuture<>();
+
+ private long startSendTime;
+ private long endSendTime;
+
+ /**
+ * 业务指令id
+ */
+ private String cmdId;
+ /**
+ * 业务指令code
+ */
+ private String cmdCode;
+ /**
+ * 设备指令
+ */
+ private DeviceCommand deviceCommand;
+
+ /**
+ * 完成response
+ */
+ public void completeResponse(JSONObject result) {
+ responseFuture.complete(result);
+ }
+
+ /**
+ * 异常完成response
+ */
+ public void completeResponseExceptionally(Throwable ex) {
+ responseFuture.completeExceptionally(ex);
+ }
+
+ /**
+ * 获取response的json
+ */
+ public JSONObject getResponseResult() throws ExecutionException, InterruptedException {
+ return responseFuture.get();
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/common/cmd/CyclicNumberGenerator.java b/src/main/java/com/iflytop/gd/common/cmd/CyclicNumberGenerator.java
new file mode 100644
index 0000000..2320bdd
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/common/cmd/CyclicNumberGenerator.java
@@ -0,0 +1,39 @@
+package com.iflytop.gd.common.cmd;
+
+public class CyclicNumberGenerator {
+ // 饿汉式单例,在类加载时就创建实例
+ private static final CyclicNumberGenerator INSTANCE = new CyclicNumberGenerator();
+ // 当前生成的数字,初始值为 1
+ private int currentNumber = 1;
+
+ // 私有构造函数,防止外部实例化
+ private CyclicNumberGenerator() {
+ }
+
+ // 提供全局访问点获取单例实例
+ public static CyclicNumberGenerator getInstance() {
+ return INSTANCE;
+ }
+
+ public static void main(String[] args) {
+ CyclicNumberGenerator generator = CyclicNumberGenerator.getInstance();
+ for (int i = 0; i < 4096; i++) {
+ System.out.println(generator.generateNumber());
+ }
+ }
+
+ /**
+ * 生成 1 到 255 之间的循环整数
+ *
+ * @return 生成的整数
+ */
+ public synchronized int generateNumber() {
+ int result = currentNumber;
+ // 每次生成后将当前数字加 1
+ currentNumber++;
+ if (currentNumber > 4096) {
+ currentNumber = 1;
+ }
+ return result;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/common/cmd/DeviceCommand.java b/src/main/java/com/iflytop/gd/common/cmd/DeviceCommand.java
new file mode 100644
index 0000000..c50aa50
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/common/cmd/DeviceCommand.java
@@ -0,0 +1,38 @@
+package com.iflytop.gd.common.cmd;
+
+import lombok.Data;
+
+import java.util.Map;
+
+@Data
+public class DeviceCommand {
+ /**
+ * 指令ID
+ */
+ private Integer cmdId;
+
+ /**
+ * 指令名称
+ */
+ private String cmdName;
+
+ /**
+ * 指令代码 例如 "device_status_get"
+ */
+ private String cmdCode;
+
+ /**
+ * 目标设备
+ */
+ private String device;
+
+ /**
+ * 执行动作
+ */
+ private String action;
+
+ /**
+ * 指令参数
+ */
+ private Map param;
+}
diff --git a/src/main/java/com/iflytop/gd/common/cmd/DeviceCommandGenerator.java b/src/main/java/com/iflytop/gd/common/cmd/DeviceCommandGenerator.java
new file mode 100644
index 0000000..45ebc0a
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/common/cmd/DeviceCommandGenerator.java
@@ -0,0 +1,24 @@
+package com.iflytop.gd.common.cmd;
+
+
+import java.util.Map;
+
+/**
+ * 生成给设备发送的指令
+ */
+public class DeviceCommandGenerator {
+
+ /**
+ * 设备指令包装
+ */
+ private static DeviceCommand deviceCmd(String code, String device, String action, Map params, String commandName) {
+ DeviceCommand cmdToDevice = new DeviceCommand();
+ cmdToDevice.setCmdCode(code);
+ cmdToDevice.setDevice(device);
+ cmdToDevice.setAction(action);
+ cmdToDevice.setParam(params);
+ cmdToDevice.setCmdName(commandName);
+ return cmdToDevice;
+ }
+}
+
diff --git a/src/main/java/com/iflytop/gd/common/controller/BaseCmdController.java b/src/main/java/com/iflytop/gd/common/controller/BaseCmdController.java
deleted file mode 100644
index 3bf7d96..0000000
--- a/src/main/java/com/iflytop/gd/common/controller/BaseCmdController.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.iflytop.gd.common.controller;
-
-public class BaseCmdController {
-}
diff --git a/src/main/java/com/iflytop/gd/common/controller/NotificationWebsocketEndpoint.java b/src/main/java/com/iflytop/gd/common/controller/NotificationWebsocketEndpoint.java
deleted file mode 100644
index e2979c3..0000000
--- a/src/main/java/com/iflytop/gd/common/controller/NotificationWebsocketEndpoint.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.iflytop.gd.common.controller;
-
-import com.iflytop.gd.infrastructure.modules.WebSocketNotificationPushMgrImpl;
-import jakarta.annotation.Resource;
-import jakarta.websocket.EndpointConfig;
-import jakarta.websocket.OnOpen;
-import jakarta.websocket.Session;
-import jakarta.websocket.server.ServerEndpoint;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-@ServerEndpoint(value = "/api/v1/ws/notifications")
-@Slf4j
-@Component
-public class NotificationWebsocketEndpoint {
-
- @Resource
- private WebSocketNotificationPushMgrImpl notificationMgr;
-
- @OnOpen
- public void onOpen(Session session, EndpointConfig endpointConfig) {
- // 保存 session 到对象
- this.notificationMgr.addSession(session);
- log.info("[websocket] 新的连接:id={}", session.getId());
- }
-}
diff --git a/src/main/java/com/iflytop/gd/common/device/CommandFuture.java b/src/main/java/com/iflytop/gd/common/device/CommandFuture.java
deleted file mode 100644
index c3154c1..0000000
--- a/src/main/java/com/iflytop/gd/common/device/CommandFuture.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.iflytop.gd.common.device;
-
-import cn.hutool.json.JSONObject;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutionException;
-
-@Setter
-@Getter
-public class CommandFuture {
- /**
- * 用于保存response反馈
- */
- private CompletableFuture responseFuture = new CompletableFuture<>();
-
- private long startSendTime;
- private long endSendTime;
-
- /**
- * 业务指令id
- */
- private String cmdId;
- /**
- * 业务指令code
- */
- private String cmdCode;
- /**
- * 设备指令
- */
- private DeviceCommand deviceCommand;
-
- /**
- * 完成response
- */
- public void completeResponse(JSONObject result) {
- responseFuture.complete(result);
- }
-
- /**
- * 异常完成response
- */
- public void completeResponseExceptionally(Throwable ex) {
- responseFuture.completeExceptionally(ex);
- }
-
- /**
- * 获取response的json
- */
- public JSONObject getResponseResult() throws ExecutionException, InterruptedException {
- return responseFuture.get();
- }
-
-}
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/common/device/CyclicNumberGenerator.java b/src/main/java/com/iflytop/gd/common/device/CyclicNumberGenerator.java
deleted file mode 100644
index da0d2b8..0000000
--- a/src/main/java/com/iflytop/gd/common/device/CyclicNumberGenerator.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.iflytop.gd.common.device;
-
-public class CyclicNumberGenerator {
- // 饿汉式单例,在类加载时就创建实例
- private static final CyclicNumberGenerator INSTANCE = new CyclicNumberGenerator();
- // 当前生成的数字,初始值为 1
- private int currentNumber = 1;
-
- // 私有构造函数,防止外部实例化
- private CyclicNumberGenerator() {
- }
-
- // 提供全局访问点获取单例实例
- public static CyclicNumberGenerator getInstance() {
- return INSTANCE;
- }
-
- public static void main(String[] args) {
- CyclicNumberGenerator generator = CyclicNumberGenerator.getInstance();
- for (int i = 0; i < 4096; i++) {
- System.out.println(generator.generateNumber());
- }
- }
-
- /**
- * 生成 1 到 255 之间的循环整数
- *
- * @return 生成的整数
- */
- public synchronized int generateNumber() {
- int result = currentNumber;
- // 每次生成后将当前数字加 1
- currentNumber++;
- if (currentNumber > 4096) {
- currentNumber = 1;
- }
- return result;
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/common/device/DeviceCommand.java b/src/main/java/com/iflytop/gd/common/device/DeviceCommand.java
deleted file mode 100644
index 12d9c2d..0000000
--- a/src/main/java/com/iflytop/gd/common/device/DeviceCommand.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.iflytop.gd.common.device;
-
-import lombok.Data;
-
-import java.util.Map;
-
-@Data
-public class DeviceCommand {
- /**
- * 指令ID
- */
- private Integer cmdId;
-
- /**
- * 指令名称
- */
- private String cmdName;
-
- /**
- * 指令代码 例如 "device_status_get"
- */
- private String cmdCode;
-
- /**
- * 目标设备
- */
- private String device;
-
- /**
- * 执行动作
- */
- private String action;
-
- /**
- * 指令参数
- */
- private Map param;
-}
diff --git a/src/main/java/com/iflytop/gd/common/device/DeviceCommandGenerator.java b/src/main/java/com/iflytop/gd/common/device/DeviceCommandGenerator.java
deleted file mode 100644
index 61b0ca5..0000000
--- a/src/main/java/com/iflytop/gd/common/device/DeviceCommandGenerator.java
+++ /dev/null
@@ -1,501 +0,0 @@
-package com.iflytop.gd.common.device;
-
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 生成给设备发送的指令
- */
-public class DeviceCommandGenerator {
-
- /**
- * 全部关闭三通阀
- */
- public static DeviceCommand threeWayValveCloseAll() {
- // 上层方法直接取方法注释“全部关闭三通阀”
- return threeWayValveControl("close_all", "全部关闭三通阀");
- }
-
- /**
- * 打开三通阀喷嘴管路
- */
- public static DeviceCommand threeWayValveOpenSyringePipeline() {
- return threeWayValveControl("open_syringe", "打开三通阀喷嘴管路");
- }
-
- /**
- * 打开三通阀注射器管路
- */
- public static DeviceCommand threeWayValveOpenNozzlePipeline() {
- return threeWayValveControl("open_nozzle", "打开三通阀注射器管路");
- }
-
- /**
- * 控制三通阀
- */
- public static DeviceCommand threeWayValveControl(String action, String commandName) {
- // 调用中层 controlCmd 时,直接用方法注释固定描述"控制三通阀"
- return controlCmd("three_way_valve", action, null, commandName != null ? commandName : "控制三通阀");
- }
-
- /**
- * 关闭清洗阀
- */
- public static DeviceCommand washValveClose() {
- return washValveControl("close", "关闭清洗阀");
- }
-
- /**
- * 开启清洗阀
- */
- public static DeviceCommand washValveOpen() {
- return washValveControl("open", "开启清洗阀");
- }
-
- /**
- * 控制清洗阀
- */
- public static DeviceCommand washValveControl(String action, String commandName) {
- return controlCmd("wash_valve", action, null, commandName != null ? commandName : "控制清洗阀");
- }
-
- /**
- * 关闭喷嘴阀
- */
- public static DeviceCommand nozzleValveClose() {
- return nozzleValveControl("close", "关闭喷嘴阀");
- }
-
- /**
- * 开启喷嘴阀
- */
- public static DeviceCommand nozzleValveOpen() {
- return nozzleValveControl("open", "开启喷嘴阀");
- }
-
- /**
- * 控制喷嘴阀
- */
- public static DeviceCommand nozzleValveControl(String action, String commandName) {
- return controlCmd("nozzle_valve", action, null, commandName != null ? commandName : "控制喷嘴阀");
- }
-
- /**
- * 关闭除湿阀
- */
- public static DeviceCommand dehumidifierValveClose() {
- return dehumidifierValveControl("close", "关闭除湿阀");
- }
-
- /**
- * 开启除湿阀
- */
- public static DeviceCommand dehumidifierValveOpen() {
- return dehumidifierValveControl("open", "开启除湿阀");
- }
-
- /**
- * 控制除湿阀
- */
- public static DeviceCommand dehumidifierValveControl(String action, String commandName) {
- return controlCmd("dehumidifier_valve", action, null, commandName != null ? commandName : "控制除湿阀");
- }
-
- /**
- * 关闭照明灯板
- */
- public static DeviceCommand lightingPanelClose() {
- return controlCmd("lighting_panel", "close", null, "关闭照明灯板");
- }
-
- /**
- * 打开照明灯板
- */
- public static DeviceCommand lightingPanelOpen() {
- return controlCmd("lighting_panel", "open", null, "打开照明灯板");
- }
-
- /**
- * 控制照明灯板
- */
- public static DeviceCommand lightingPanelControl(String action, String commandName) {
- return controlCmd("lighting_panel", action, null, commandName != null ? commandName : "控制照明灯板");
- }
-
- /**
- * 关闭激光
- */
- public static DeviceCommand laserControlClose() {
- return laserControl("close", null);
- }
-
- /**
- * 打开激光
- *
- * @param power 功率[0-100]
- */
- public static DeviceCommand laserControlOpen(Double power) {
- return laserControl("open", power);
- }
-
- /**
- * 控制激光
- *
- * @param power 功率[0-100]
- */
- public static DeviceCommand laserControl(String action, Double power) {
- Map params = new HashMap<>();
- params.put("power", power);
- return controlCmd("laser", action, params, "控制激光");
- }
-
- /**
- * 关闭高压
- */
- public static DeviceCommand highVoltageClose() {
- return highVoltageControl("close", null);
- }
-
- /**
- * 开启高压
- */
- public static DeviceCommand highVoltageOpen(Double voltage) {
- return highVoltageControl("open", voltage);
- }
-
- /**
- * 控制高压
- */
- public static DeviceCommand highVoltageControl(String action, Double voltage) {
- Map params = new HashMap<>();
- params.put("voltage", voltage);
- return controlCmd("high_voltage", action, params, "控制高压");
- }
-
- /**
- * 停止推动注射泵
- */
- public static DeviceCommand syringePumpStop() {
- return controlCmd("syringe_pump", "stop", null, "停止推动注射泵");
- }
-
- /**
- * 推动移动注射泵
- *
- * @param speed 是指注射泵每分钟注射多少微升(volume 最低0.1)
- */
- public static DeviceCommand syringePumpStart(String direction, Double speed) {
- Map params = new HashMap<>();
- params.put("direction", direction);
- params.put("speed", speed);
- return controlCmd("syringe_pump", "move", params, "推动移动注射泵");
- }
-
- /**
- * 推动移动注射泵
- *
- * @param speed 是指注射泵每分钟注射多少微升(volume 最低0.1)
- */
- public static DeviceCommand syringePumpForward(Double speed) {
- Map params = new HashMap<>();
- params.put("direction", "forward");
- params.put("speed", speed);
- return controlCmd("syringe_pump", "move", params, "推动移动注射泵");
- }
-
- /**
- * 注射泵流速设置
- */
- public static DeviceCommand syringePumpVolumeSet(Double speed) {
- Map params = new HashMap<>();
- params.put("speed", speed);
- return controlCmd("syringe_pump", "set", params, "注射泵流速设置");
- }
-
- /**
- * 控制注射泵
- */
- public static DeviceCommand syringePumpControl(String action, String forward, Double volume) {
- Map params = new HashMap<>();
- params.put("current", forward);
- params.put("volume", volume);
- return controlCmd("syringe_pump", action, params, "控制注射泵");
- }
-
- /**
- * 获取设备当前湿度
- */
- public static DeviceCommand humidityGet() {
- return getInfoCmd("humidity", "获取设备当前湿度");
- }
-
- /**
- * 获取设备当前温度
- */
- public static DeviceCommand temperatureGet() {
- return getInfoCmd("temperature", "获取设备当前温度");
- }
-
- /**
- * 推入玻片托盘
- */
- public static DeviceCommand slideTrayIn(Double position, Double speed) {
- return motorYPositionSet(position, speed, "推入玻片托盘");
- }
-
- /**
- * 推出玻片托盘
- */
- public static DeviceCommand slideTrayOut(Double position, Double speed) {
- return motorYPositionSet(position, speed, "推出玻片托盘");
- }
-
- /**
- * 获得电机XYZ相对原点坐标
- */
- public static DeviceCommand motorXyzPositionGet() {
- return getInfoCmd("xyz", "获得电机XYZ相对原点坐标");
- }
-
- /**
- * x轴停止移动
- */
- public static DeviceCommand motorXStop() {
- return controlMotorCmd("x", "stop", null, null, null, null, "x轴停止移动");
- }
-
- /**
- * y轴停止移动
- */
- public static DeviceCommand motorYStop() {
- return controlMotorCmd("y", "stop", null, null, null, null, "y轴停止移动");
- }
-
- /**
- * z轴停止移动
- */
- public static DeviceCommand motorZStop() {
- return controlMotorCmd("z", "stop", null, null, null, null, "z轴停止移动");
- }
-
- /**
- * x轴回原点
- */
- public static DeviceCommand motorXOrigin() {
- return controlMotorCmd("x", "origin", null, null, null, null, "x轴回原点");
- }
-
- /**
- * y轴回原点
- */
- public static DeviceCommand motorYOrigin() {
- return controlMotorCmd("y", "origin", null, null, null, null, "y轴回原点");
- }
-
- /**
- * z轴回原点
- */
- public static DeviceCommand motorZOrigin() {
- return controlMotorCmd("z", "origin", null, null, null, null, "z轴回原点");
- }
-
- /**
- * 移动x轴到指定位置
- */
- public static DeviceCommand motorXPositionSet(Double position) {
- return motorXPositionSet(position, null, "移动x轴到指定位置");
- }
-
- /**
- * 移动y轴到指定位置
- */
- public static DeviceCommand motorYPositionSet(Double position) {
- return motorYPositionSet(position, null, "移动y轴到指定位置");
- }
-
- /**
- * 移动z轴到指定位置
- */
- public static DeviceCommand motorZPositionSet(Double position) {
- return motorZPositionSet(position, null, "移动z轴到指定位置");
- }
-
- /**
- * 移动x轴到指定位置
- */
- public static DeviceCommand motorXPositionSet(Double position, Double speed) {
- return motorXPositionSet(position, speed, "移动x轴到指定位置");
- }
-
- /**
- * 移动y轴到指定位置
- */
- public static DeviceCommand motorYPositionSet(Double position, Double speed) {
- return motorYPositionSet(position, speed, "移动y轴到指定位置");
- }
-
- /**
- * 移动z轴到指定位置
- */
- public static DeviceCommand motorZPositionSet(Double position, Double speed) {
- return motorZPositionSet(position, speed, "移动z轴到指定位置");
- }
-
- /**
- * 移动x轴到指定位置
- */
- private static DeviceCommand motorXPositionSet(Double position, Double speed, String commandName) {
- return controlMotorCmd("x", "move", null, "forward", position, speed, commandName);
- }
-
- /**
- * 移动y轴到指定位置
- */
- private static DeviceCommand motorYPositionSet(Double position, Double speed, String commandName) {
- return controlMotorCmd("y", "move", null, "forward", position, speed, commandName);
- }
-
- /**
- * 移动z轴到指定位置
- */
- private static DeviceCommand motorZPositionSet(Double position, Double speed, String commandName) {
- return controlMotorCmd("z", "move", null, "forward", position, speed, commandName);
- }
-
- /**
- * x电机方向设置
- */
- public static DeviceCommand motorXDirectionSet(String direction) {
- return controlMotorCmd("x", "set", null, direction, null, null, "x电机方向设置");
- }
-
- /**
- * y电机方向设置
- */
- public static DeviceCommand motorYDirectionSet(String direction) {
- return controlMotorCmd("y", "set", null, direction, null, null, "y电机方向设置");
- }
-
- /**
- * z电机方向设置
- */
- public static DeviceCommand motorZDirectionSet(String direction) {
- return controlMotorCmd("z", "set", null, direction, null, null, "z电机方向设置");
- }
-
- /**
- * x轴电机电流设置
- */
- public static DeviceCommand motorXCurrentSet(Double current) {
- return controlMotorCmd("x", "set", current, null, null, null, "x轴电机电流设置");
- }
-
- /**
- * y轴电机电流设置
- */
- public static DeviceCommand motorYCurrentSet(Double current) {
- return controlMotorCmd("y", "set", current, null, null, null, "y轴电机电流设置");
- }
-
- /**
- * z轴电机电流设置
- */
- public static DeviceCommand motorZCurrentSet(Double current) {
- return controlMotorCmd("z", "set", current, null, null, null, "z轴电机电流设置");
- }
-
- /**
- * x轴电机速度设置
- */
- public static DeviceCommand motorXSpeedSet(Double speed) {
- return controlMotorCmd("x", "set", null, null, null, speed, "x轴电机速度设置");
- }
-
- /**
- * y轴电机速度设置
- */
- public static DeviceCommand motorYSpeedSet(Double speed) {
- return controlMotorCmd("y", "set", null, null, null, speed, "y轴电机速度设置");
- }
-
- /**
- * z轴电机速度设置
- */
- public static DeviceCommand motorZSpeedSet(Double speed) {
- return controlMotorCmd("z", "set", null, null, null, speed, "z轴电机速度设置");
- }
-
- /**
- * x轴电机控制
- */
- public static DeviceCommand motorX(String action, Double current, String direction, Double position, Double speed) {
- return controlMotorCmd("x", action, current, direction, position, speed, "x轴电机控制");
- }
-
- /**
- * y轴电机控制
- */
- public static DeviceCommand motorY(String action, Double current, String direction, Double position, Double speed) {
- return controlMotorCmd("y", action, current, direction, position, speed, "y轴电机控制");
- }
-
- /**
- * z轴电机控制
- */
- public static DeviceCommand motorZ(String action, Double current, String direction, Double position, Double speed) {
- return controlMotorCmd("z", action, current, direction, position, speed, "z轴电机控制");
- }
-
- /**
- * 控制设备电机
- */
- public static DeviceCommand controlMotorCmd(String device, String action, Double current, String direction, Double position, Double speed, String commandName) {
- if (commandName == null) {
- commandName = "控制设备电机";
- }
- Map params = new HashMap<>();
- params.put("current", current);
- params.put("direction", direction);
- params.put("position", position);
- params.put("speed", speed);
- return deviceCmd("controlMotorCmd", device, action, params, commandName);
- }
-
- /**
- * 获取设备整体状态
- */
- public static DeviceCommand overallDeviceStatusGet() {
- return getInfoCmd("device", "获取设备整体状态");
- }
-
- /**
- * 设备控制指令包装
- */
- private static DeviceCommand controlCmd(String device, String action, Map params, String commandName) {
- return deviceCmd("controlCmd", device, action, params, commandName);
- }
-
- /**
- * 获取设备信息指令包装
- */
- private static DeviceCommand getInfoCmd(String device, String commandName) {
- return deviceCmd("getInfoCmd", device, "get", null, commandName);
- }
-
- /**
- * 设备指令包装
- */
- private static DeviceCommand deviceCmd(String code, String device, String action, Map params, String commandName) {
-// int cmdId = CyclicNumberGenerator.getInstance().generateNumber();
- DeviceCommand cmdToDevice = new DeviceCommand();
-// cmdToDevice.setCmdId(cmdId);
- cmdToDevice.setCmdCode(code);
- cmdToDevice.setDevice(device);
- cmdToDevice.setAction(action);
- cmdToDevice.setParam(params);
- cmdToDevice.setCmdName(commandName);
- return cmdToDevice;
- }
-}
-
diff --git a/src/main/java/com/iflytop/gd/common/enums/CraftEvents.java b/src/main/java/com/iflytop/gd/common/enums/CraftEvents.java
new file mode 100644
index 0000000..3b5b403
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/common/enums/CraftEvents.java
@@ -0,0 +1,22 @@
+package com.iflytop.gd.common.enums;
+
+/**
+ * 工艺状态机事件枚举
+ */
+public enum CraftEvents {
+ /** 启动工艺 */
+ START,
+ /** 单步完成 */
+ STEP_COMPLETE,
+ /** 暂停执行 */
+ PAUSE,
+ /** 恢复执行 */
+ RESUME,
+ /** 用户手动停止 */
+ STOP,
+ /** 执行过程中发生错误 */
+ ERROR_OCCUR,
+ /** 工艺正常完成 */
+ FINISH
+
+}
diff --git a/src/main/java/com/iflytop/gd/common/enums/CraftStates.java b/src/main/java/com/iflytop/gd/common/enums/CraftStates.java
new file mode 100644
index 0000000..183d2ed
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/common/enums/CraftStates.java
@@ -0,0 +1,19 @@
+package com.iflytop.gd.common.enums;
+
+/**
+ * 工艺状态机状态枚举
+ */
+public enum CraftStates {
+ /** 初始状态,尚未启动工艺 */
+ READY,
+ /** 工艺正在执行中 */
+ RUNNING,
+ /** 工艺已暂停,等待恢复 */
+ PAUSED,
+ /** 工艺已被手动停止 */
+ STOPPED,
+ /** 工艺执行过程中发生错误 */
+ ERROR,
+ /** 工艺已正常执行完毕 */
+ FINISHED
+}
diff --git a/src/main/java/com/iflytop/gd/common/exception/CommandExecTimeoutException.java b/src/main/java/com/iflytop/gd/common/exception/CommandExecTimeoutException.java
new file mode 100644
index 0000000..64f50d3
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/common/exception/CommandExecTimeoutException.java
@@ -0,0 +1,22 @@
+package com.iflytop.gd.common.exception;
+
+public class CommandExecTimeoutException extends Exception{
+ public CommandExecTimeoutException() {
+ }
+
+ public CommandExecTimeoutException(String message) {
+ super(message);
+ }
+
+ public CommandExecTimeoutException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public CommandExecTimeoutException(Throwable cause) {
+ super(cause);
+ }
+
+ public CommandExecTimeoutException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+ super(message, cause, enableSuppression, writableStackTrace);
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/common/exception/HardwareErrorException.java b/src/main/java/com/iflytop/gd/common/exception/HardwareErrorException.java
new file mode 100644
index 0000000..e5d168c
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/common/exception/HardwareErrorException.java
@@ -0,0 +1,22 @@
+package com.iflytop.gd.common.exception;
+
+public class HardwareErrorException extends Exception{
+ public HardwareErrorException() {
+ }
+
+ public HardwareErrorException(String message) {
+ super(message);
+ }
+
+ public HardwareErrorException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public HardwareErrorException(Throwable cause) {
+ super(cause);
+ }
+
+ public HardwareErrorException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+ super(message, cause, enableSuppression, writableStackTrace);
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/common/exception/UnSupportCommandException.java b/src/main/java/com/iflytop/gd/common/exception/UnSupportCommandException.java
new file mode 100644
index 0000000..998be6c
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/common/exception/UnSupportCommandException.java
@@ -0,0 +1,25 @@
+package com.iflytop.gd.common.exception;
+
+/**
+ * 不支持的命令异常
+ */
+public class UnSupportCommandException extends Exception{
+ public UnSupportCommandException() {
+ }
+
+ public UnSupportCommandException(String message) {
+ super(message);
+ }
+
+ public UnSupportCommandException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public UnSupportCommandException(Throwable cause) {
+ super(cause);
+ }
+
+ public UnSupportCommandException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+ super(message, cause, enableSuppression, writableStackTrace);
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/common/notification/Notification.java b/src/main/java/com/iflytop/gd/common/notification/Notification.java
deleted file mode 100644
index 82f3b0d..0000000
--- a/src/main/java/com/iflytop/gd/common/notification/Notification.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package com.iflytop.gd.common.notification;
-
-import cn.hutool.core.date.DateTime;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import lombok.Getter;
-
-
-/**
- * 向前台推送的消息类
- */
-
-@Getter
-public class Notification {
- private final String commandId;
- private final String command;
- private final String level;
- private final String title;
- private String content = null;
- private final String dateTime = DateTime.now().toString("yyyy/MM/dd HH:mm:ss");
-
- private Notification(String commandId, String command, String level, String title, String content) {
- this.commandId = commandId;
- this.level = level;
- this.title = title;
- this.content = content;
- this.command = command;
- }
-
- private Notification(String commandId, String command, String level, String title) {
- this.commandId = commandId;
- this.level = level;
- this.title = title;
- this.command = command;
- }
-
- /**
- * 创建Info级别通知
- * @param content 通知内容
- * @return 通知实例
- */
- public static Notification infoNotification(String commandId, String command, String title, String content) {
- return new Notification(commandId, command, "info", title, content);
- }
-
- public static Notification infoNotification(String commandId, String command, String title) {
- return new Notification(commandId, command, "info", title, "");
- }
-
- public static Notification infoNotification(CmdDTO cmdDTO, String title) {
- return new Notification(cmdDTO.getCommandId(), cmdDTO.getCommand(), "info", title, "");
- }
-
- public static Notification infoHandleStartNotification(CmdDTO cmdDTO) {
- String title = String.format("开始执行{}指令", cmdDTO.getCommand());
- return new Notification(cmdDTO.getCommandId(), cmdDTO.getCommand(), "info", title, "");
- }
-
- public static Notification infoHandleEndNotification(CmdDTO cmdDTO) {
- String title = String.format("{}指令执行完成", cmdDTO.getCommand());
- return new Notification(cmdDTO.getCommandId(), cmdDTO.getCommand(), "info", title, "");
- }
-
-
- /**
- * 创建Warn级别通知
- * @param content 通知内容
- * @return 通知实例
- */
- public static Notification warnNotification(String commandId, String command, String title, String content) {
- return new Notification(commandId, command, "warn", title, content);
- }
-
- /**
- * 创建Error级别通知
- * @param content 通知内容
- * @return 通知实例
- */
- public static Notification errorNotification(String commandId, String command, String title, String content) {
- return new Notification(commandId, command, "error", title, content);
- }
-
- public static Notification errorNotification(CmdDTO cmdDTO, Exception e) {
- String title = String.format("执行{}出错", cmdDTO.getCommand());
- return new Notification(cmdDTO.getCommandId(), cmdDTO.getCommand(), "error", title, e.getMessage());
- }
-
-
- /**
- * 创建Fatal级别通知
- * @param content 通知内容
- * @return 通知实例
- */
- public static Notification fatalNotification(String commandId, String command, String title, String content) {
- return new Notification(commandId, command, "fatal", title, content);
- }
-
-
-}
diff --git a/src/main/java/com/iflytop/gd/common/utils/ByteArray.java b/src/main/java/com/iflytop/gd/common/utils/ByteArray.java
new file mode 100644
index 0000000..d363d7a
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/common/utils/ByteArray.java
@@ -0,0 +1,125 @@
+// Source code is decompiled from a .class file using FernFlower decompiler.
+package com.iflytop.gd.common.utils;
+
+import org.springframework.lang.NonNull;
+
+public class ByteArray {
+ public ByteArray() {
+ }
+
+ public static int readU8bit(byte[] code, int index) {
+ if (index >= code.length)
+ return 0;
+ return code[index] & 255;
+ }
+
+ public static int readS8bit(byte[] code, int index) {
+ if (index >= code.length)
+ return 0;
+
+ return code[index];
+ }
+
+ public static int readU16bit(byte[] code, int index) {
+ if (index + 1 >= code.length)
+ return 0;
+ return (code[index + 1] & 255) << 8 | code[index] & 255;
+ }
+
+ public static void setU16bit(byte[] code, int index, int value) {
+ code[index + 1] = (byte) (value >> 8);
+ code[index] = (byte) value;
+ }
+
+ public static void setU8(byte[] code, int off, int value) {
+ code[off] = (byte) value;
+ }
+
+ public static int readS16bit(byte[] code, int index) {
+ if (index + 1 >= code.length)
+ return 0;
+
+ return code[index + 1] << 8 | code[index] & 255;
+ }
+
+ public static int read32bit(byte[] code, int index) {
+ if (index + 3 >= code.length)
+ return 0;
+ return code[index + 3] << 24 | (code[index + 2] & 255) << 16 | (code[index + 1] & 255) << 8 | code[index] & 255;
+ }
+
+ public static Integer[] read32bitArray(byte[] code) {
+ int count = code.length / 4;
+ Integer[] array = new Integer[count];
+ for (int i = 0; i < count; i++) {
+ array[i] = read32bit(code, i * 4);
+ }
+ return array;
+ }
+
+ public static Integer[] read16bitArray(byte[] code) {
+ int count = code.length / 2;
+ Integer[] array = new Integer[count];
+ for (int i = 0; i < count; i++) {
+ array[i] = readS16bit(code, i * 2);
+ }
+ return array;
+ }
+
+ public static Integer[] readU16bitArray(byte[] code) {
+ int count = code.length / 2;
+ Integer[] array = new Integer[count];
+ for (int i = 0; i < count; i++) {
+ array[i] = readU16bit(code, i * 2);
+ }
+ return array;
+ }
+
+
+ public static String toByteString(byte[] arrary) {
+ StringBuilder sb = new StringBuilder();
+ for (byte b : arrary) {
+ sb.append(String.format("%02X", b));
+ }
+ return sb.toString();
+ }
+
+ public static byte[] hexStringToBytes(@NonNull String str) {
+ if (str.isEmpty()) {
+ return new byte[0];
+ } else {
+ byte[] byteArray = new byte[str.length() / 2];
+ for (int i = 0; i < byteArray.length; i++) {
+ int high = Character.digit(str.charAt(i * 2), 16);
+ int low = Character.digit(str.charAt(i * 2 + 1), 16);
+ if (high == -1 || low == -1) {
+ return null;
+ }
+ byteArray[i] = (byte) (high * 16 + low);
+ }
+ return byteArray;
+ }
+ }
+
+
+ public static byte[] concat(byte[]... arrays) {
+ int length = 0;
+ for (byte[] array : arrays) {
+ length += array.length;
+ }
+
+ byte[] result = new byte[length];
+ int destPos = 0;
+ for (byte[] array : arrays) {
+ System.arraycopy(array, 0, result, destPos, array.length);
+ destPos += array.length;
+ }
+
+ return result;
+ }
+
+ // public static void main(String[] args) {
+ // byte[] bytes = new byte[]{0x01, 0x02, 0x03, 0x04};
+ // System.out.println(toByteString(bytes));
+ // }
+}
diff --git a/src/main/java/com/iflytop/gd/debug/controller/CmdDebugController.java b/src/main/java/com/iflytop/gd/debug/controller/CmdDebugController.java
deleted file mode 100644
index 7dc7b95..0000000
--- a/src/main/java/com/iflytop/gd/debug/controller/CmdDebugController.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.iflytop.gd.debug.controller;
-
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.app.service.WebSocketService;
-import com.iflytop.gd.app.service.exceptions.UnSupportCommandException;
-import com.iflytop.gd.common.result.Result;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import com.iflytop.gd.app.core.CommandHandlerRegistry;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import jakarta.validation.Valid;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.concurrent.CompletableFuture;
-
-@Tag(name = "前端调试指令")
-@RestController
-@RequestMapping("/api/debug/cmd")
-@RequiredArgsConstructor
-@Slf4j
-public class CmdDebugController {
- private final CommandHandlerRegistry registry;
-
- @Operation(summary = "前端调试指令")
- @PostMapping
- public Result> controlMethod(@Valid @RequestBody CmdDTO cmdDTO) {
- String commandName = cmdDTO.getCommand();
- try {
- log.info("收到调试指令{}", commandName);
- CommandHandler commandHandler = registry.getCommandHandler(commandName);
- log.info("找到指令处理器{}", commandHandler.getClass().getName());
- CompletableFuture.runAsync(() -> commandHandler.handle(cmdDTO));
- log.info("指令处理器提交异步执行");
- } catch (UnSupportCommandException exception) {
- log.error("未找到对应的调试指令{}", commandName);
- String errorMsg = "未找到对应的调试指令, commandName=" + commandName;
- return Result.failed(errorMsg);
- } catch (Exception e) {
- log.error("执行调试指令发生异常: {}", cmdDTO, e);
- return Result.failed(e.getMessage());
- }
- return Result.success();
- }
-
-
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStartHeatingCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStartHeatingCommandHandler.java
deleted file mode 100644
index 7460410..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStartHeatingCommandHandler.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.app.service.WebSocketService;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import com.iflytop.gd.common.notification.Notification;
-import com.iflytop.gd.system.devices.ColdTray;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理冷阱开启加热
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_cold_trap_start_heating")
-public class ColdTrapStartHeatingCommandHandler extends BaseCommandHandler {
-
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStartRecycleCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStartRecycleCommandHandler.java
deleted file mode 100644
index ebfe368..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStartRecycleCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理冷阱开启循环指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_cold_trap_start_recycle")
-public class ColdTrapStartRecycleCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStartRefrigerationCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStartRefrigerationCommandHandler.java
deleted file mode 100644
index 9e6c116..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStartRefrigerationCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理启动冷阱制冷指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_cold_trap_start_refrigeration")
-public class ColdTrapStartRefrigerationCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStopHeatingCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStopHeatingCommandHandler.java
deleted file mode 100644
index c852c02..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStopHeatingCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理冷阱停止加热指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_cold_trap_stop_heating")
-public class ColdTrapStopHeatingCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStopRecycleCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStopRecycleCommandHandler.java
deleted file mode 100644
index c722127..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStopRecycleCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理停止冷阱循环指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_cold_trap_stop_recycle")
-public class ColdTrapStopRecycleCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStopRefrigerationCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStopRefrigerationCommandHandler.java
deleted file mode 100644
index 1813b36..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/ColdTrapStopRefrigerationCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理停止冷阱制冷指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_cold_trap_stop_refrigeration")
-public class ColdTrapStopRefrigerationCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/CoverElevatorLiftDownCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/CoverElevatorLiftDownCommandHandler.java
deleted file mode 100644
index f397a2f..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/CoverElevatorLiftDownCommandHandler.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.app.service.WebSocketService;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import com.iflytop.gd.common.notification.Notification;
-import com.iflytop.gd.system.constants.VelocityUnit;
-import com.iflytop.gd.system.devices.StepMotor;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理拍子电机下降指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_cover_elevator_lift_down")
-public class CoverElevatorLiftDownCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/CoverElevatorLiftUpCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/CoverElevatorLiftUpCommandHandler.java
deleted file mode 100644
index 41a62cf..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/CoverElevatorLiftUpCommandHandler.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-
-/**
- * 处理拍子电机抬升指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_cover_elevator_lift_up")
-public class CoverElevatorLiftUpCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/CoverElevatorResetCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/CoverElevatorResetCommandHandler.java
deleted file mode 100644
index f0cc33a..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/CoverElevatorResetCommandHandler.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-
-/**
- * 处理拍子抬升电机复位指令
- */
-@CommandMapping("debug_cover_elevator_reset")
-public class CoverElevatorResetCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/CoverElevatorStopCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/CoverElevatorStopCommandHandler.java
deleted file mode 100644
index 785763b..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/CoverElevatorStopCommandHandler.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-
-/**
- * 处理拍子抬升电机停止指令
- */
-@CommandMapping("debug_cover_elevator_stop")
-public class CoverElevatorStopCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/DoorCloseCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/DoorCloseCommandHandler.java
deleted file mode 100644
index 6c8080d..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/DoorCloseCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import com.iflytop.gd.system.devices.Door;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理关门指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_door_close")
-public class DoorCloseCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/DoorOpenCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/DoorOpenCommandHandler.java
deleted file mode 100644
index 125840f..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/DoorOpenCommandHandler.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.app.service.WebSocketService;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import com.iflytop.gd.common.notification.Notification;
-import com.iflytop.gd.system.devices.Door;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理开门指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_door_open")
-public class DoorOpenCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/DoorStopCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/DoorStopCommandHandler.java
deleted file mode 100644
index c737ea7..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/DoorStopCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import com.iflytop.gd.system.devices.Door;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理停止门运动指令处理器
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_door_stop")
-public class DoorStopCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/HeaterStartCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/HeaterStartCommandHandler.java
deleted file mode 100644
index 4042e74..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/HeaterStartCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理启动加热器指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_heater_start")
-public class HeaterStartCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/HeaterStartHeatMaintainingCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/HeaterStartHeatMaintainingCommandHandler.java
deleted file mode 100644
index 94c98a7..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/HeaterStartHeatMaintainingCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理启动加热器恒温指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_heater_start_heat_maintaining")
-public class HeaterStartHeatMaintainingCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/HeaterStopCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/HeaterStopCommandHandler.java
deleted file mode 100644
index f94a27a..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/HeaterStopCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理停止加热器指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_heater_stop")
-public class HeaterStopCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/HeaterStopMaintainingCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/HeaterStopMaintainingCommandHandler.java
deleted file mode 100644
index 1edc57c..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/HeaterStopMaintainingCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理停止恒温加热指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_heater_stop_heat_maintaining")
-public class HeaterStopMaintainingCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/HoldingJawCloseCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/HoldingJawCloseCommandHandler.java
deleted file mode 100644
index 0ccd024..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/HoldingJawCloseCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理夹爪闭合指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_holding_jaw_close")
-public class HoldingJawCloseCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/HoldingJawOpenCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/HoldingJawOpenCommandHandler.java
deleted file mode 100644
index fea1549..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/HoldingJawOpenCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理打开夹爪指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_holding_jaw_open")
-public class HoldingJawOpenCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/HoldingJawPauseCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/HoldingJawPauseCommandHandler.java
deleted file mode 100644
index ae8105c..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/HoldingJawPauseCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理暂停夹爪指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_holding_jaw_pause")
-public class HoldingJawPauseCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidArmResetCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidArmResetCommandHandler.java
deleted file mode 100644
index 6d240bf..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidArmResetCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 复位加液臂指令处理器
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_liquid_arm_reset")
-public class LiquidArmResetCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidArmRotateCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidArmRotateCommandHandler.java
deleted file mode 100644
index 63cfa07..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidArmRotateCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理加液臂旋转指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_liquid_arm_rotation")
-public class LiquidArmRotateCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidArmStopCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidArmStopCommandHandler.java
deleted file mode 100644
index f302f37..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidArmStopCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理加液臂停止指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_liquid_arm_stop")
-public class LiquidArmStopCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidPumpPreEvacuateCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidPumpPreEvacuateCommandHandler.java
deleted file mode 100644
index e3b338b..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidPumpPreEvacuateCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理排空加液头指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_liquid_pump_pre_evacuation")
-public class LiquidPumpPreEvacuateCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidPumpPrefillCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidPumpPrefillCommandHandler.java
deleted file mode 100644
index 7b183ab..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidPumpPrefillCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理加液头预充指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_liquid_pump_pre_filling")
-public class LiquidPumpPrefillCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidPumpStartCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidPumpStartCommandHandler.java
deleted file mode 100644
index d6cb8b6..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidPumpStartCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理加液泵启动指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_liquid_pump_start")
-public class LiquidPumpStartCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidPumpStopCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidPumpStopCommandHandler.java
deleted file mode 100644
index a246452..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/LiquidPumpStopCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理加液泵停止指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_liquid_pump_stop")
-public class LiquidPumpStopCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/PalletElevatorLiftDownCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/PalletElevatorLiftDownCommandHandler.java
deleted file mode 100644
index d6015ff..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/PalletElevatorLiftDownCommandHandler.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-
-/**
- * 处理降下托盘指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_pallet_elevator_lift_down")
-public class PalletElevatorLiftDownCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/PalletElevatorLiftUpCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/PalletElevatorLiftUpCommandHandler.java
deleted file mode 100644
index b7fcf4b..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/PalletElevatorLiftUpCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理托盘电机上升指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_pallet_elevator_lift_up")
-public class PalletElevatorLiftUpCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/PalletElevatorStopCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/PalletElevatorStopCommandHandler.java
deleted file mode 100644
index c0b29b5..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/PalletElevatorStopCommandHandler.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-
-/**
- * 处理停止托盘抬升器指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_pallet_elevator_stop")
-public class PalletElevatorStopCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/ShakerStartCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/ShakerStartCommandHandler.java
deleted file mode 100644
index 632f17d..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/ShakerStartCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理启动摇匀器指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_shaker_start")
-public class ShakerStartCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/ShakerStopCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/ShakerStopCommandHandler.java
deleted file mode 100644
index 9d027e2..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/ShakerStopCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理停止摇匀器指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_shaker_stop")
-public class ShakerStopCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/TransportationArmMoveCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/TransportationArmMoveCommandHandler.java
deleted file mode 100644
index 3587661..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/TransportationArmMoveCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理移动转移机械臂指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_transportation_arm_move")
-public class TransportationArmMoveCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/TransportationArmResetCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/TransportationArmResetCommandHandler.java
deleted file mode 100644
index c8acd26..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/TransportationArmResetCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理复位转移机械臂指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_transportation_arm_reset")
-public class TransportationArmResetCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/TransportationArmStopCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/TransportationArmStopCommandHandler.java
deleted file mode 100644
index e6bc1d4..0000000
--- a/src/main/java/com/iflytop/gd/debug/services/cmds/TransportationArmStopCommandHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.debug.services.cmds;
-
-import com.iflytop.gd.app.core.BaseCommandHandler;
-import com.iflytop.gd.app.model.dto.CmdDTO;
-import com.iflytop.gd.common.annotation.CommandMapping;
-import com.iflytop.gd.common.cmd.CommandHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 处理停止转移机械臂移动指令
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-@CommandMapping("debug_transportation_arm_stop")
-public class TransportationArmStopCommandHandler extends BaseCommandHandler {
- @Override
- public void handle(CmdDTO cmdDTO) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/hardware/comm/can/driver/d.txt b/src/main/java/com/iflytop/gd/hardware/comm/can/driver/d.txt
new file mode 100644
index 0000000..e0817aa
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/comm/can/driver/d.txt
@@ -0,0 +1 @@
+核心驱动类(打开串口、读写接口)
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/hardware/comm/can/listener/d.txt b/src/main/java/com/iflytop/gd/hardware/comm/can/listener/d.txt
new file mode 100644
index 0000000..85a36cd
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/comm/can/listener/d.txt
@@ -0,0 +1 @@
+报文编解码(帧结构、封包/拆包)
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/hardware/comm/can/protocol/d.txt b/src/main/java/com/iflytop/gd/hardware/comm/can/protocol/d.txt
new file mode 100644
index 0000000..44dc6ef
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/comm/can/protocol/d.txt
@@ -0,0 +1 @@
+数据接收监听、事件分发
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/hardware/comm/rs485/driver/d.txt b/src/main/java/com/iflytop/gd/hardware/comm/rs485/driver/d.txt
new file mode 100644
index 0000000..e0817aa
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/comm/rs485/driver/d.txt
@@ -0,0 +1 @@
+核心驱动类(打开串口、读写接口)
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/hardware/comm/rs485/listener/d.txt b/src/main/java/com/iflytop/gd/hardware/comm/rs485/listener/d.txt
new file mode 100644
index 0000000..85a36cd
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/comm/rs485/listener/d.txt
@@ -0,0 +1 @@
+报文编解码(帧结构、封包/拆包)
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/hardware/comm/rs485/protocol/d.txt b/src/main/java/com/iflytop/gd/hardware/comm/rs485/protocol/d.txt
new file mode 100644
index 0000000..44dc6ef
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/comm/rs485/protocol/d.txt
@@ -0,0 +1 @@
+数据接收监听、事件分发
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/hardware/constants/Dim.java b/src/main/java/com/iflytop/gd/hardware/constants/Dim.java
new file mode 100644
index 0000000..cbd586b
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/constants/Dim.java
@@ -0,0 +1,5 @@
+package com.iflytop.gd.hardware.constants;
+
+public enum Dim {
+ X, Y, Z
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/constants/DistanceUnit.java b/src/main/java/com/iflytop/gd/hardware/constants/DistanceUnit.java
new file mode 100644
index 0000000..da0f33d
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/constants/DistanceUnit.java
@@ -0,0 +1,30 @@
+package com.iflytop.gd.hardware.constants;
+
+public enum DistanceUnit {
+ MM, CM;
+
+ public Integer toMM(Integer value) {
+ if (this == MM) {
+ return value;
+ }
+
+ if (this == CM) {
+ return value * 10;
+ }
+
+ return value;
+ }
+
+
+ public static DistanceUnit toDistanceUnit(String unitString) {
+ if ("mm".equals(unitString)) {
+ return MM;
+ }
+
+ if ("cm".equals(unitString)) {
+ return CM;
+ }
+
+ throw new IllegalArgumentException("Unknown distance unit " + unitString);
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/constants/LiquidFillArmMotorIndex.java b/src/main/java/com/iflytop/gd/hardware/constants/LiquidFillArmMotorIndex.java
new file mode 100644
index 0000000..693e189
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/constants/LiquidFillArmMotorIndex.java
@@ -0,0 +1,5 @@
+package com.iflytop.gd.hardware.constants;
+
+public enum LiquidFillArmMotorIndex {
+ LargeArm, SmallArm
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/constants/RotationDirection.java b/src/main/java/com/iflytop/gd/hardware/constants/RotationDirection.java
new file mode 100644
index 0000000..27c3c6d
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/constants/RotationDirection.java
@@ -0,0 +1,18 @@
+package com.iflytop.gd.hardware.constants;
+
+import lombok.Getter;
+
+/**
+ * 电机转动方向
+ */
+@Getter
+public enum RotationDirection {
+ Forward(1),Backward(-1);
+
+ private Integer value;
+
+ RotationDirection(Integer value) {
+ this.value = value;
+ }
+
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/constants/VelocityUnit.java b/src/main/java/com/iflytop/gd/hardware/constants/VelocityUnit.java
new file mode 100644
index 0000000..46705f6
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/constants/VelocityUnit.java
@@ -0,0 +1,28 @@
+package com.iflytop.gd.hardware.constants;
+
+/**
+ * 移动速度单位
+ */
+public enum VelocityUnit {
+ MM_PER_SEC, CM_PER_SEC;
+
+ public Integer toMM_PER_SEC(Integer value) {
+ if (this == VelocityUnit.CM_PER_SEC) {
+ return value * 10;
+ }
+ return value;
+ }
+
+
+ public static VelocityUnit toVelocityUnit(String unitString) {
+ if ("mm/s".equals(unitString)) {
+ return VelocityUnit.MM_PER_SEC;
+ }
+
+ if ("cm/s".equals(unitString)) {
+ return VelocityUnit.CM_PER_SEC;
+ }
+
+ throw new IllegalArgumentException("Unrecognized SpeedUnit: " + unitString);
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/device/ColdTray.java b/src/main/java/com/iflytop/gd/hardware/device/ColdTray.java
new file mode 100644
index 0000000..6e2edde
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/device/ColdTray.java
@@ -0,0 +1,34 @@
+package com.iflytop.gd.hardware.device;
+
+/**
+ * 物理冷阱
+ */
+public class ColdTray {
+ public boolean setTemperature(Double temperature) {
+ return false;
+ }
+
+ public boolean startRecycle() {
+ return false;
+ }
+
+ public boolean stopRecycle() {
+ return false;
+ }
+
+ public boolean startHeating() {
+ return false;
+ }
+
+ public boolean stopHeating() {
+ return false;
+ }
+
+ public boolean startRefrigeration() {
+ return false;
+ }
+
+ public boolean stopRefrigeration() {
+ return false;
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/device/Door.java b/src/main/java/com/iflytop/gd/hardware/device/Door.java
new file mode 100644
index 0000000..478ae9f
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/device/Door.java
@@ -0,0 +1,17 @@
+package com.iflytop.gd.hardware.device;
+
+/**
+ * 物理门
+ */
+
+public class Door {
+ public void open() {
+ }
+
+ public void close() {
+ }
+
+ public void stop() {
+ }
+
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/device/Fan.java b/src/main/java/com/iflytop/gd/hardware/device/Fan.java
new file mode 100644
index 0000000..ca09adf
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/device/Fan.java
@@ -0,0 +1,13 @@
+package com.iflytop.gd.hardware.device;
+
+/**
+ * 物理风扇
+ */
+public class Fan {
+ public boolean open() {
+ return false;
+ }
+ public boolean close() {
+ return false;
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/device/HoldingJaw.java b/src/main/java/com/iflytop/gd/hardware/device/HoldingJaw.java
new file mode 100644
index 0000000..51f5d11
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/device/HoldingJaw.java
@@ -0,0 +1,22 @@
+package com.iflytop.gd.hardware.device;
+
+/**
+ * 物理夹爪
+ */
+public class HoldingJaw{
+ public void open() {
+
+ }
+ public void close() {
+
+ }
+ public void pause() {
+
+ }
+ public void resume() {
+
+ }
+ public void setSpeed(int speed) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/device/LiquidFillingArm.java b/src/main/java/com/iflytop/gd/hardware/device/LiquidFillingArm.java
new file mode 100644
index 0000000..da0ca00
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/device/LiquidFillingArm.java
@@ -0,0 +1,24 @@
+package com.iflytop.gd.hardware.device;
+
+
+import com.iflytop.gd.hardware.constants.LiquidFillArmMotorIndex;
+import com.iflytop.gd.hardware.constants.RotationDirection;
+import com.iflytop.gd.hardware.constants.VelocityUnit;
+import com.iflytop.gd.app.model.bo.Point3D;
+
+/**
+ * 物理液体加注机械臂
+ */
+public class LiquidFillingArm {
+ public void moveTo(Point3D point) {
+
+ }
+
+ public void rotateTo(LiquidFillArmMotorIndex liquidFillArmMotorIndex, Integer angle, RotationDirection direction) {
+
+ }
+
+ public void setRotationSpeed(Integer speed, VelocityUnit speedUnit) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/device/Pump.java b/src/main/java/com/iflytop/gd/hardware/device/Pump.java
new file mode 100644
index 0000000..404f12a
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/device/Pump.java
@@ -0,0 +1,7 @@
+package com.iflytop.gd.hardware.device;
+
+/**
+ * 物理泵
+ */
+public class Pump {
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/device/Relay.java b/src/main/java/com/iflytop/gd/hardware/device/Relay.java
new file mode 100644
index 0000000..bd9663a
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/device/Relay.java
@@ -0,0 +1,13 @@
+package com.iflytop.gd.hardware.device;
+
+/**
+ * 物理继电器
+ */
+public class Relay{
+ public boolean open() {
+ return false;
+ }
+ public boolean close() {
+ return false;
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/device/ServoMotor.java b/src/main/java/com/iflytop/gd/hardware/device/ServoMotor.java
new file mode 100644
index 0000000..5235455
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/device/ServoMotor.java
@@ -0,0 +1,53 @@
+package com.iflytop.gd.hardware.device;
+
+import com.iflytop.gd.hardware.drivers.RegIndex;
+
+
+/**
+ * 物理伺服电机
+ */
+public class ServoMotor {
+ public void enable() {
+
+ }
+
+ public void disable() {
+
+ }
+
+ public void stop() {
+
+ }
+
+ public Integer getCurrentPosition() {
+ return 0;
+ }
+
+ public void moveToZero() {
+
+ }
+
+ public void moveTo(Integer position) {
+
+ }
+
+ public void setMaxVelocity(Integer maxVelocity) {
+
+ }
+
+ public void setMaxTorque(Integer maxTorque) {
+
+ }
+
+ public void setProtectiveTorque(Integer protectiveTorque) {
+
+ }
+
+ public Integer readReg(RegIndex regIndex) {
+ return 0;
+ }
+
+ public void writeReg(RegIndex regIndex, Integer value) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/device/StepMotor.java b/src/main/java/com/iflytop/gd/hardware/device/StepMotor.java
new file mode 100644
index 0000000..59936bd
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/device/StepMotor.java
@@ -0,0 +1,118 @@
+package com.iflytop.gd.hardware.device;
+
+import com.iflytop.gd.hardware.drivers.RegIndex;
+import com.iflytop.gd.hardware.constants.DistanceUnit;
+import com.iflytop.gd.hardware.constants.RotationDirection;
+
+import java.util.Map;
+
+/**
+ * 物理步进电机实现
+ */
+public class StepMotor {
+ public void easyMoveTo(Integer value, DistanceUnit unit) {
+ }
+
+ public void easyMoveBy(Integer value, DistanceUnit unit) {
+ }
+
+ public void easyMoveToZero() {
+ }
+
+ public void easyMoveToZeroPointQuick() {
+
+ }
+
+ public void enable() {
+
+ }
+
+ public void disable() {
+
+ }
+
+ public void moveForward(RotationDirection direction, Integer distance, DistanceUnit unit) {
+
+ }
+
+ public void moveBackward(RotationDirection direction, Integer distance, DistanceUnit unit) {
+
+ }
+
+ public Integer readPosition() {
+ return 0;
+ }
+
+ public Integer readEncoderPosition() {
+ return 0;
+ }
+
+ public void stop() {
+
+ }
+
+ public void rotateForward() {
+
+ }
+
+ public void rotateBackward() {
+
+ }
+
+
+ public Map readIOState() {
+ return null;
+ }
+
+
+ public void setReg(RegIndex regIndex, Integer value) {
+ }
+
+ public Integer readReg(RegIndex regIndex) {
+ return 0;
+ }
+
+ public void setMRes(Integer value) {
+
+ }
+
+ public void setIRun(Integer value) {
+
+ }
+
+ public void setIHold(Integer value) {
+
+ }
+
+ public void setStartAndStopVelocity(Integer value) {
+
+ }
+
+ public void setV1(Integer value) {
+
+ }
+
+ public void setA1AndD1(Integer value) {
+
+ }
+
+ public void setAmaxAndDmax(Integer value) {
+
+ }
+
+ public void setDefaultVelocity(Integer value) {
+
+ }
+
+ public void setVelocity(Integer low, Integer mid, Integer high) {
+
+ }
+
+ public void setOneCyclePulse(Integer pause, Integer denominator) {
+
+ }
+
+ public void setDZero(Integer value) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/device/SwitchSensor.java b/src/main/java/com/iflytop/gd/hardware/device/SwitchSensor.java
new file mode 100644
index 0000000..dd45d6f
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/device/SwitchSensor.java
@@ -0,0 +1,11 @@
+package com.iflytop.gd.hardware.device;
+
+/**
+ * 物理传感器
+ */
+
+public class SwitchSensor {
+ public boolean isOpen() {
+ return false;
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/device/TransportationArm.java b/src/main/java/com/iflytop/gd/hardware/device/TransportationArm.java
new file mode 100644
index 0000000..c243874
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/device/TransportationArm.java
@@ -0,0 +1,27 @@
+package com.iflytop.gd.hardware.device;
+
+import com.iflytop.gd.hardware.constants.Dim;
+import com.iflytop.gd.hardware.constants.DistanceUnit;
+import com.iflytop.gd.hardware.constants.VelocityUnit;
+
+/**
+ * 物理转移机械臂
+ */
+
+public class TransportationArm {
+ public void moveTo(Dim dim, Integer distance, DistanceUnit unit) {
+
+ }
+
+ public void relativelyMove(Dim dim, Integer distance, DistanceUnit unit) {
+
+ }
+
+ public void stop(Dim dim) {
+
+ }
+
+ public void setSpeed(Dim dim, Integer speed, VelocityUnit unit) {
+
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/drivers/AppErrorCode.java b/src/main/java/com/iflytop/gd/hardware/drivers/AppErrorCode.java
new file mode 100644
index 0000000..f500f3f
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/drivers/AppErrorCode.java
@@ -0,0 +1,21 @@
+package com.iflytop.gd.hardware.drivers;
+
+public enum AppErrorCode {
+ APP_OK(200, "操作成功"),
+ FAIL(500, "操作失败"),
+ PARAM_ERROR(400, "参数错误");
+
+ private int code;
+ private String msg;
+ private AppErrorCode(int code, String msg) {
+ this.code = code;
+ this.msg = msg;
+ }
+
+ public int getCode() {
+ return code;
+ }
+ public String getMsg() {
+ return msg;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/hardware/drivers/CmdId.java b/src/main/java/com/iflytop/gd/hardware/drivers/CmdId.java
new file mode 100644
index 0000000..0e8da24
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/drivers/CmdId.java
@@ -0,0 +1,122 @@
+package com.iflytop.gd.hardware.drivers;
+
+
+public enum CmdId {
+ NotSet(0xFFFF, "NOACTION"),//
+
+ board_reset(0x0000, "复位板子"),//
+ event_bus_reg_change_report(0x0064, "寄存器修改事件"),//
+ //
+
+ module_ping(0x0101, "MODULE_PING"),
+ module_stop(0x0102, "MODULE_STOP"),
+
+ module_get_error(0x0110, "MODULE_GET_ERROR"),
+ module_get_detail_error(0x0111, "MODULE_GET_DETAIL_ERROR"),
+ module_clear_error(0x0112, "MODULE_CLEAR_ERROR"),
+
+ module_set_reg(0x0120, "MODULE_SET_REG"),
+ module_get_reg(0x0121, "MODULE_GET_REG"),
+ module_reset_reg(0x0123, "MODULE_RESET_REG"),
+
+ module_get_version(0x0130, "MODULE_GET_VERSION"),
+ module_get_type(0x0131, "MODULE_GET_TYPE"),
+ module_get_status(0x0132, "MODULE_GET_STATUS"),
+
+ // 扩展板
+ extboard_read_inio(0x6701, "EXTBOARD_READ_INIO"),//
+ extboard_write_outio(0x6702, "EXTBOARD_WRITE_OUTIO"),//
+ extboard_read_muti_inio(0x6703, "EXTBOARD_READ_MUTI_INIO"),//
+ extboard_read_inio_index_in_stm32(0x6704, "EXTBOARD_READ_INIO_INDEX_IN_STM32"),//
+ extboard_read_outio_index_in_stm32(0x6705, "EXTBOARD_READ_OUTIO_INDEX_IN_STM32"),//
+ extboard_read_outio(0x6706, "EXTBOARD_READ_OUTIO"),//
+
+ // 补光灯模块
+ module_pwm_light_on(0x0204, "MODULE_PWM_LIGHT_ON"), // 补光灯 开启
+ module_pwm_light_off(0x0205, "MODULE_PWM_LIGHT_OFF"), // 补光灯
+
+ // 三色灯模块
+ module_tricolor_light_on(0x0206, "MODULE_TRICOLOR_LIGHT_ON"), // 三色灯开启
+ module_tricolor_light_off(0x0207, "MODULE_TRICOLOR_LIGHT_OFF"), // 三色灯
+
+ // IO 板卡 1
+ module_io1_read_heat_rod_current(0x0207, "MODULE_IO_READ_HEAT_ROD_CURRENT"), // 读取加热棒电流
+
+ // IO 板卡 2
+
+ // 电机通用控制
+ step_motor_enable(0x0201, "STEP_MOTOR_ENABLE"),//
+ step_motor_read_pos(0x020b, "STEP_MOTOR_READ_POS"),//
+ step_motor_read_enc_pos(0x020c, "STEP_MOTOR_READ_ENC_POS"),//
+ step_motor_easy_rotate(0x0211, "STEP_MOTOR_EASY_ROTATE"),//
+ step_motor_easy_move_by(0x0212, "STEP_MOTOR_EASY_MOVE_BY"),//
+ step_motor_easy_move_to(0x0213, "STEP_MOTOR_EASY_MOVE_TO"),//
+ step_motor_easy_move_to_zero(0x0214, "STEP_MOTOR_EASY_MOVE_TO_ZERO"),//
+ step_motor_easy_set_current_pos(0x0215, "STEP_MOTOR_EASY_SET_CURRENT_POS"),//
+ step_motor_easy_move_to_io(0x0216, "STEP_MOTOR_EASY_MOVE_TO_IO"),//
+ step_motor_stop(0x0228, "STEP_MOTOR_STOP"),//
+ step_motor_move_by(0x021d, "STEP_MOTOR_MOVE_BY"), // (dpos,speedlevel)->null speedlevel=0,1,2,3(default,low,mid,high)
+ step_motor_move_to(0x021e, "STEP_MOTOR_MOVE_TO"), // (pos,speedlevel)->null speedlevel=0,1,2,3(default,low,mid,high)
+ step_motor_move_to_zero_point_quick(0x021f, "STEP_MOTOR_MOVE_TO_ZERO_POINT_QUICK"), // (speedlevel)->null speedlevel=0,1,2,3(default,low,mid,high)
+ step_motor_rotate(0x0220, "STEP_MOTOR_ROTATE"), //
+
+ step_motor_active_cfg(0x0229, "STEP_MOTOR_ACTIVE_CFG"),//
+ step_motor_read_io_state(0x022a, "STEP_MOTOR_READ_IO_STATE"),//
+ step_motor_easy_move_to_end_point(0x022c, "STEP_MOTOR_EASY_MOVE_TO_END_POINT"),//
+ step_motor_read_tmc5130_status(0x0232, "STEP_MOTOR_READ_TMC5130_STATUS"),//
+ step_motor_read_tmc5130_state(0x0233, "STEP_MOTOR_READ_TMC5130_STATE"),//
+ step_motor_read_io_index_in_stm32(0x0238, "STEP_MOTOR_READ_IO_INDEX_IN_STM32"),//
+ step_motor_set_subdevice_reg(0x0239, "STEP_MOTOR_SET_SUBDEVICE_REG"),//
+ step_motor_get_subdevice_reg(0x023a, "STEP_MOTOR_GET_SUBDEVICE_REG"),//
+ step_motor_easy_reciprocating_motion(0x022d, "STEP_MOTOR_EASY_RECIPROCATING_MOTION"),//
+ step_motor_easy_move_to_zero_point_quick(0x022e, "STEP_MOTOR_EASY_MOVE_TO_ZERO_POINT_QUICK"),
+
+
+ ;
+
+ public final static int ATTACH_IS_BYTES = 1;
+ public final static int ATTACH_IS_INT32 = 2;
+ public final int index;
+ public final String name;
+
+ CmdId(int index, String chname) {
+ this.index = index;
+ this.name = chname;
+ }
+
+ public int toInt() {
+ return index;
+ }
+
+ public static CmdId valueOf(int val) {
+ CmdId[] values = CmdId.values();
+ for (CmdId e : values) {
+ if (e.toInt() == val)
+ return e;
+ }
+ return null;
+ }
+
+ public static String toString(int val) {
+ CmdId[] values = CmdId.values();
+ for (CmdId e : values) {
+ if (e.toInt() == val) {
+ return e.toString();
+ }
+ }
+ return "unknown(" + val + ")";
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public Boolean eq(Integer index) {
+ return this.index == index;
+ }
+
+
+ public boolean isTrace() {
+ return true;
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/drivers/CommandBus.java b/src/main/java/com/iflytop/gd/hardware/drivers/CommandBus.java
new file mode 100644
index 0000000..bbc0c0f
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/drivers/CommandBus.java
@@ -0,0 +1,22 @@
+package com.iflytop.gd.hardware.drivers;
+
+import com.iflytop.gd.common.exception.CommandExecTimeoutException;
+import com.iflytop.gd.common.exception.HardwareErrorException;
+import com.iflytop.gd.hardware.model.DataPacket;
+
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
+
+public interface CommandBus {
+
+ /**
+ * 发送命令数据包并等待响应
+ * @param commandPacket 命令数据包
+ * @param timeout 等待超时事件
+ * @param unit 超时时间单位
+ * @return 响应数据包
+ * @throws Exception
+ */
+ DataPacket waitForCommandExec(DataPacket commandPacket, Integer timeout, TimeUnit unit)
+ throws CommandExecTimeoutException, HardwareErrorException, IOException, InterruptedException;
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/drivers/ModuleId.java b/src/main/java/com/iflytop/gd/hardware/drivers/ModuleId.java
new file mode 100644
index 0000000..01770bd
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/drivers/ModuleId.java
@@ -0,0 +1,98 @@
+package com.iflytop.gd.hardware.drivers;
+
+public enum ModuleId {
+ NotSet(0, "未设置"),
+ IO1Board(10, "台面 IO 板模块"),
+ PWMLight(11, "PWM 灯"),
+ TriColorLight(12, "三色灯"),
+
+ IO2Board(30, "台下 IO 板模块"),
+
+ DoorBoard(80, "门电机板模块"),//
+ DoorM(81, "门电机"),
+
+ ShakeModBoard(90, "摇匀模组板"), //
+ ShakeModShakeM(91, "加液位摇匀电机"), //
+
+ CapStorageBoard(100, "拍子存放板模块"), //
+ CapStorageM(101, "拍子存放电机"), //
+
+ DualRobotAxis1Board(110, "双轴机械臂1轴板模块"),//
+ DualRobotAxis1M(111, "双轴机械臂1轴电机"),
+ DualRobotAxis2Board(120, "双轴机械臂2轴板模块"),//
+ DualRobotAxis2M(121, "双轴机械臂2轴电机"),
+
+ HBotXBoard(130, "X轴板模块"),//
+ HBotXM(131, "X轴电机"),
+ HBotYBoard(140, "Y轴板模块"),//
+ HBotYM(141, "Y轴电机"),
+ HBotZBoard(150, "Z轴板模块"),//
+ HBotZM(151, "Z轴电机"),
+
+ Heater1Board(160, "加热1板模块"),//
+ Heater1M(161, "加热1电机"),
+ Heater2Board(170, "加热2板模块"),//
+ Heater2M(171, "加热2电机"),
+ Heater3Board(180, "加热3板模块"),//
+ Heater3M(181, "加热3电机"),
+ Heater4Board(190, "加热4板模块"),//
+ Heater4M(191, "加热4电机"),
+ Heater5Board(200, "加热5板模块"),//
+ Heater5M(201, "加热5电机"),
+ Heater6Board(210, "加热6板模块"),//
+ Heater6M(211, "加热6电机"),
+
+ AcidPump1Board(220, "加酸泵1板模块"),//
+ AcidPump1M(221, "加酸泵1电机"),
+ AcidPump2Board(230, "加酸泵2板模块"),//
+ AcidPump2M(231, "加酸泵2电机"),
+ AcidPump3Board(240, "加酸泵3板模块"),//
+ AcidPump3M(241, "加酸泵3电机"),
+ AcidPump4Board(250, "加酸泵4板模块"),//
+ AcidPump4M(251, "加酸泵4电机"),
+ AcidPump5Board(260, "泵5板模块"),//
+ AcidPump5M(261, "泵5电机"),
+ AcidPump6Board(270, "泵6板模块"),//
+ AcidPump6M(271, "泵6电机"),
+ AcidPump7Board(280, "泵7板模块"),//
+ AcidPump7M(281, "泵7电机"),
+ AcidPump8Board(290, "泵8板模块"),//
+ AcidPump8M(291, "泵8电机"),
+ ;
+
+ final public String name;
+ final public int index;
+
+ ModuleId(int index, String name) {
+ this.name = name;
+ this.index = index;
+ }
+
+ public int toInt() {
+ return index;
+ }
+
+
+ public static ModuleId valueOf(Integer val) {
+ return valueOf(val.intValue());
+ }
+
+ public static ModuleId valueOf(int val) {
+ ModuleId[] values = ModuleId.values();
+ for (ModuleId e : values) {
+ if (e.toInt() == val)
+ return e;
+ }
+ return null;
+ }
+
+ public static String toString(int val) {
+ ModuleId[] values = ModuleId.values();
+ for (ModuleId e : values) {
+ if (e.toInt() == val) {
+ return e.toString();
+ }
+ }
+ return "unknown(" + val + ")";
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/drivers/RegIndex.java b/src/main/java/com/iflytop/gd/hardware/drivers/RegIndex.java
new file mode 100644
index 0000000..3a1079e
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/drivers/RegIndex.java
@@ -0,0 +1,78 @@
+package com.iflytop.gd.hardware.drivers;
+
+/**
+ * @brief 寄存器索引
+ */
+public enum RegIndex {
+
+ /***********************************************************************************************************************
+ * 步进电机控制器 *
+ ***********************************************************************************************************************/
+ /***********************************************************************************************************************
+ * step_motor start *
+ ***********************************************************************************************************************/
+
+ kreg_step_motor_pos(10101), // 机器人x坐标
+ kreg_step_motor_is_enable(10102), // 是否使能
+ kreg_step_motor_dpos(10103), // 执行完上一条指令后的相对位移
+ kreg_step_motor_has_move_zero(10104), // 是否回零
+ // kreg_step_motor_shift(10150), // x偏移
+ kreg_step_motor_shaft(10151), // x轴是否反转
+ kreg_step_motor_one_circle_pulse(10152), // x轴一圈脉冲数
+ kreg_step_motor_one_circle_pulse_denominator(10153), // 设置一圈脉冲数的分母
+ kreg_step_motor_default_velocity(10154), // 默认速度
+ kreg_step_motor_low_velocity(10155), // 低速
+ kreg_step_motor_mid_velocity(10156), // 中速
+ kreg_step_motor_high_velocity(10157), // 高速
+ kreg_step_motor_ihold(10158), // 步进电机电流配置
+ kreg_step_motor_irun(10159), // 步进电机电流配置
+ kreg_step_motor_iholddelay(10160), // 步进电机电流配置
+ kreg_step_motor_iglobalscaler(10161), // 步进电机电流配置
+ kreg_step_motor_mres(10162), // 电机细分
+ kreg_step_motor_run_to_zero_speed(10173), // 回零速度
+ kreg_step_motor_look_zero_edge_speed(10175), // 找零边缘速度
+ kreg_step_motor_max_d(10178), // 最大限制距离
+ kreg_step_motor_min_d(10179), // 最小限制距离
+ kreg_step_motor_in_debug_mode(10180), // 驱动器处于调试模式
+ kreg_step_motor_vstart(10181), // a1起作用的速度
+ kreg_step_motor_a1(10182), //
+ kreg_step_motor_amax(10183), //
+ kreg_step_motor_v1(10184), //
+ kreg_step_motor_dmax(10185), //
+ kreg_step_motor_d1(10186), //
+ kreg_step_motor_vstop(10187), //
+ kreg_step_motor_tzerowait(10188), //
+ kreg_step_motor_enc_resolution(10189), // 编码器分辨率 1000,1024,4000,4096,16384
+ kreg_step_motor_enable_enc(10190), //
+ kreg_step_motor_dzero_pos(10191), // 驱动器处于调试模式
+ kret_step_motor_pos_devi_tolerance(10192), // 位置偏差容忍度
+ kret_step_motor_io_trigger_append_distance(10193), // 移动到io时,附加的距离
+
+ /***********************************************************************************************************************
+ * step_motor end *
+ ***********************************************************************************************************************/
+ ;
+
+ public final int index;
+ public final Boolean trace;
+
+ RegIndex(int regIndex) {
+ this.index = regIndex;
+ this.trace = true;
+ }
+
+ RegIndex(int regIndex, Boolean trace) {
+ this.index = regIndex;
+ this.trace = trace;
+ }
+
+ public static RegIndex valueOf(int val) {
+ RegIndex[] values = RegIndex.values();
+ for (RegIndex regindex : values) {
+ if (regindex.index == val) {
+ return regindex;
+ }
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/drivers/WebSocketCommandBusImpl.java b/src/main/java/com/iflytop/gd/hardware/drivers/WebSocketCommandBusImpl.java
new file mode 100644
index 0000000..4cd9c7f
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/drivers/WebSocketCommandBusImpl.java
@@ -0,0 +1,135 @@
+package com.iflytop.gd.hardware.drivers;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.iflytop.gd.common.exception.CommandExecTimeoutException;
+import com.iflytop.gd.common.exception.HardwareErrorException;
+import com.iflytop.gd.hardware.model.DataPacket;
+import com.iflytop.gd.common.utils.ByteArray;
+import jakarta.annotation.PostConstruct;
+import jakarta.websocket.*;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.net.URI;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 使用WebSocket实现命令总线功能
+ */
+@Slf4j
+@Component
+@ClientEndpoint
+@EnableScheduling
+public class WebSocketCommandBusImpl implements CommandBus {
+ private Session session;
+ private CountDownLatch countDownLatch;
+ private DataPacket lastDataPacket;
+ private Integer packetIndex = 0;
+
+ private final String COMMAND_BUS_WEBSOCKET_URL;
+ private final Boolean commandBusEnable;
+
+ public static final int PACKET_TYPE_CMD = 0xA0;
+ public static final int PACKET_TYPE_ACK = 0xA1;
+ public static final int PACKET_TYPE_ERROR_ACK = 0xA2;
+ public static final int PACKET_TYPE_EVENT = 0xA3;
+
+ //TODO 配置硬件服务段ws链接
+ public WebSocketCommandBusImpl(@Value("${command_bus.websocket_server_url}") String websocketServerUrl, @Value("${command_bus.enable}") Boolean commandBusEnable) throws DeploymentException, IOException {
+ this.COMMAND_BUS_WEBSOCKET_URL = websocketServerUrl;
+ this.commandBusEnable = commandBusEnable;
+ }
+
+ @Scheduled(fixedRate = 5000)
+ @PostConstruct
+ public void connectToCommandBusWebSocketServer() throws DeploymentException, IOException {
+ if (commandBusEnable && (this.session == null || !this.session.isOpen())) {
+ WebSocketContainer container = ContainerProvider.getWebSocketContainer();
+ URI endpointURI = URI.create(COMMAND_BUS_WEBSOCKET_URL);
+ try {
+ this.session = container.connectToServer(this, endpointURI);
+ } catch (Exception e) {
+// log.error(e.getMessage(), e);
+ }
+ }
+
+ }
+
+ @Override
+ public synchronized DataPacket waitForCommandExec(DataPacket commandPacket, Integer timeout, TimeUnit unit)
+ throws CommandExecTimeoutException, HardwareErrorException, IOException, InterruptedException {
+ try {
+ if (!this.session.isOpen()) {
+ log.error("Session state={}", this.session.isOpen());
+ throw new IOException("Session is not open");
+ }
+ packetIndex = packetIndex + 1;
+ if (packetIndex > 30000) {
+ packetIndex = 1;
+ }
+ commandPacket.setPacketIndex(packetIndex);
+ this.countDownLatch = new CountDownLatch(1);
+ String byteString = commandPacket.toByteString();
+ log.info("ModuleId={}, CommandId={}, 数据包二进制字符内容={}", commandPacket.getModuleId(), commandPacket.getCmdId(), byteString);
+ this.session.getBasicRemote().sendText(byteString);
+ boolean isTimeout = !this.countDownLatch.await(timeout, unit);
+ // 命令返回或者超时了
+ if (isTimeout) {
+ log.error("Command exec timeout, moduleId={}, commandId={}, timeoutInMilSeconds={}",
+ commandPacket.getModuleId(), commandPacket.getCmdId(), unit.toMillis(timeout));
+ throw new CommandExecTimeoutException();
+ }
+ log.debug("收到数据包{}", this.lastDataPacket);
+ // 在指定的时间内得到了响应
+ if (this.lastDataPacket.getPacketType() == PACKET_TYPE_ERROR_ACK) {
+ log.error("moduleId={}执行command={}发送硬件错误", this.lastDataPacket.getModuleId(), this.lastDataPacket.getCmdId());
+ throw new HardwareErrorException();
+ }
+ return ObjectUtil.cloneByStream(this.lastDataPacket);
+ } catch (IOException e) {
+ log.error("发送指令发生异常", e);
+ throw e;
+ } catch (InterruptedException e) {
+ log.error("Thread: {}被中断", Thread.currentThread().getName());
+ throw e;
+ }
+ }
+
+
+ @OnOpen
+ public void onOpen(Session session) {
+ this.session = session;
+ log.info("WebSocket connection established");
+ }
+
+ @OnMessage
+ public void onMessage(String message) {
+ byte[] bytes = ByteArray.hexStringToBytes(message);
+ log.info("New packet arrived: {}", message);
+ this.lastDataPacket = new DataPacket(bytes);
+ if (this.lastDataPacket.getPacketType() == DataPacket.PACKET_TYPE_ACK ||
+ this.lastDataPacket.getPacketType() == DataPacket.PACKET_TYPE_ERROR_ACK) {
+ this.countDownLatch.countDown();
+ }
+ }
+
+
+ @OnClose
+ public void onClose() {
+ if (this.countDownLatch != null) {
+ this.countDownLatch.countDown();
+ }
+ }
+
+ @OnError
+ public void onError(Session session, Throwable throwable) {
+ if (this.countDownLatch != null) {
+ this.countDownLatch.countDown();
+ }
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/hardware/model/DataPacket.java b/src/main/java/com/iflytop/gd/hardware/model/DataPacket.java
new file mode 100644
index 0000000..7ea85f2
--- /dev/null
+++ b/src/main/java/com/iflytop/gd/hardware/model/DataPacket.java
@@ -0,0 +1,109 @@
+package com.iflytop.gd.hardware.model;
+
+import com.iflytop.gd.common.utils.ByteArray;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+
+public class DataPacket {
+ public static final int PACKET_TYPE_OFFSET = 0;
+ public static final int CMDID_OFFSET = 1;
+ public static final int MODULE_ID_OFFSET = 3;
+ public static final int INDEX_OFFSET = 4;
+ public static final int DATA_LEN_OFFSET = 6;
+ public static final int DATA_OFFSET = 7;
+
+ public static final int PACKET_MIN_LEN = 8;//
+
+ public static final int CMD_OVERTIME = 1500;
+
+
+ public static final int PACKET_TYPE_CMD = 0xA0;
+ public static final int PACKET_TYPE_ACK = 0xA1;
+ public static final int PACKET_TYPE_ERROR_ACK = 0xA2;
+ public static final int PACKET_TYPE_EVENT = 0xA3;
+
+ byte[] raw;
+
+ public DataPacket(byte[] cmd) {
+ raw = new byte[cmd.length];
+ System.arraycopy(cmd, 0, raw, 0, cmd.length);
+ }
+
+ public String toByteString() {
+ return ByteArray.toByteString(raw);
+ }
+
+ static private DataPacket createPacket(Integer moduleId, int packetType, Integer cmdId, Integer[] params) {
+ int bufferSize = DataPacket.PACKET_MIN_LEN + 4 * params.length;
+ ByteBuffer buffer = ByteBuffer.allocate(bufferSize);
+ buffer.order(ByteOrder.LITTLE_ENDIAN);
+ buffer.put((byte) (packetType & 0xff)); // packetType
+ buffer.putShort((short) (cmdId & 0xffff)); // cmdid
+ buffer.put((byte) (moduleId & 0xFF)); // moduleId
+ buffer.put((byte) 0x4C); // index
+ buffer.put((byte) 0x00); // index
+ buffer.put((byte) (params.length * 4)); // datalen
+ for (int value : params) {
+ buffer.putInt(value);
+ }
+ // int8_t checksum;
+ int checksum = 0;
+ for (int i = 0; i < bufferSize - 1; i++) {
+ checksum += buffer.get(i);
+ }
+ buffer.put((byte) checksum);
+ return new DataPacket(buffer.array());
+ }
+
+
+ public static DataPacket createCommandDataPacket(Integer moduleId, Integer cmdId, Integer... params) {
+ return createPacket(moduleId, PACKET_TYPE_CMD, cmdId, params);
+ }
+
+ public static DataPacket createAckPacket(Integer moduleId, Integer cmdId, Integer... params) {
+ return createPacket(moduleId, PACKET_TYPE_ACK, cmdId, params);
+ }
+
+ public static DataPacket createErrorAckPacket(Integer moduleId, Integer cmdId, Integer... params) {
+ return createPacket(moduleId, PACKET_TYPE_ERROR_ACK, cmdId, params);
+ }
+
+ public int getPacketIndex() {
+ return ByteArray.readU16bit(raw, INDEX_OFFSET);
+ }
+
+ public void setPacketIndex(int packetIndex) {
+ ByteArray.setU16bit(raw, INDEX_OFFSET, packetIndex);
+ int checkSum = computeCheckSum();
+ ByteArray.setU8(raw, raw.length - 1, checkSum);
+ }
+
+ public int computeCheckSum() {
+ int checkcode = 0;
+ for (int i = 0; i < raw.length - 1; i++) {
+ checkcode += raw[i];
+ }
+ return checkcode & 0xFF;
+ }
+
+ public int getCmdId() {
+ return ByteArray.readU16bit(raw, CMDID_OFFSET);
+ }
+
+ public int getPacketType() {
+ return ByteArray.readU8bit(raw, PACKET_TYPE_OFFSET);
+ }
+
+ public int getModuleId() {
+ return ByteArray.readU8bit(raw, MODULE_ID_OFFSET);
+ }
+
+ public int getDataLen() {
+ return ByteArray.readU8bit(raw, DATA_LEN_OFFSET);
+ }
+
+ public int getContentI32(int index) {
+ return ByteArray.read32bit(raw, DATA_OFFSET + index * 4);
+ }
+}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/comm/can/driver/d.txt b/src/main/java/com/iflytop/gd/infrastructure/comm/can/driver/d.txt
deleted file mode 100644
index e0817aa..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/comm/can/driver/d.txt
+++ /dev/null
@@ -1 +0,0 @@
-核心驱动类(打开串口、读写接口)
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/infrastructure/comm/can/listener/d.txt b/src/main/java/com/iflytop/gd/infrastructure/comm/can/listener/d.txt
deleted file mode 100644
index 85a36cd..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/comm/can/listener/d.txt
+++ /dev/null
@@ -1 +0,0 @@
-报文编解码(帧结构、封包/拆包)
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/infrastructure/comm/can/protocol/d.txt b/src/main/java/com/iflytop/gd/infrastructure/comm/can/protocol/d.txt
deleted file mode 100644
index 44dc6ef..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/comm/can/protocol/d.txt
+++ /dev/null
@@ -1 +0,0 @@
-数据接收监听、事件分发
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/infrastructure/comm/rs485/driver/d.txt b/src/main/java/com/iflytop/gd/infrastructure/comm/rs485/driver/d.txt
deleted file mode 100644
index e0817aa..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/comm/rs485/driver/d.txt
+++ /dev/null
@@ -1 +0,0 @@
-核心驱动类(打开串口、读写接口)
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/infrastructure/comm/rs485/listener/d.txt b/src/main/java/com/iflytop/gd/infrastructure/comm/rs485/listener/d.txt
deleted file mode 100644
index 85a36cd..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/comm/rs485/listener/d.txt
+++ /dev/null
@@ -1 +0,0 @@
-报文编解码(帧结构、封包/拆包)
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/infrastructure/comm/rs485/protocol/d.txt b/src/main/java/com/iflytop/gd/infrastructure/comm/rs485/protocol/d.txt
deleted file mode 100644
index 44dc6ef..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/comm/rs485/protocol/d.txt
+++ /dev/null
@@ -1 +0,0 @@
-数据接收监听、事件分发
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/infrastructure/config/MybatisPlusConfig.java b/src/main/java/com/iflytop/gd/infrastructure/config/MybatisPlusConfig.java
deleted file mode 100644
index 53e188c..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/config/MybatisPlusConfig.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.iflytop.gd.infrastructure.config;
-
-import com.baomidou.mybatisplus.annotation.DbType;
-import com.baomidou.mybatisplus.core.config.GlobalConfig;
-import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
-import com.iflytop.gd.common.handler.MyMetaObjectHandler;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-/**
- *
- */
-@EnableTransactionManagement
-@Configuration
-public class MybatisPlusConfig {
-
- @Bean
- public MybatisPlusInterceptor mybatisPlusInterceptor() {
- MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
- // 乐观锁插件
- interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor());
- // 分页插件
- interceptor.addInnerInterceptor(paginationInnerInterceptor());
-
- return interceptor;
- }
-
- /**
- * 分页插件,自动识别数据库类型
- * ...
- */
- public PaginationInnerInterceptor paginationInnerInterceptor() {
- PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
- // 设置数据库类型
- paginationInnerInterceptor.setDbType(DbType.SQLITE);
- // 设置最大单页限制数量,默认 500 条,-1 不受限制
- paginationInnerInterceptor.setMaxLimit(-1L);
- return paginationInnerInterceptor;
- }
-
- /**
- * 乐观锁插件
- * ...
- */
- public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor() {
- return new OptimisticLockerInnerInterceptor();
- }
-
- /**
- * 自动填充数据库创建人、创建时间、更新人、更新时间
- */
- @Bean
- public GlobalConfig globalConfig() {
- GlobalConfig globalConfig = new GlobalConfig();
- globalConfig.setMetaObjectHandler(new MyMetaObjectHandler());
- return globalConfig;
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/config/SwaggerConfig.java b/src/main/java/com/iflytop/gd/infrastructure/config/SwaggerConfig.java
deleted file mode 100644
index 25de415..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/config/SwaggerConfig.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.iflytop.gd.infrastructure.config;
-
-import cn.hutool.core.util.ArrayUtil;
-import io.swagger.v3.oas.models.Components;
-import io.swagger.v3.oas.models.OpenAPI;
-import io.swagger.v3.oas.models.info.Info;
-import io.swagger.v3.oas.models.security.SecurityScheme;
-import org.springdoc.core.customizers.GlobalOpenApiCustomizer;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.http.HttpHeaders;
-import org.springframework.util.AntPathMatcher;
-
-import java.util.stream.Stream;
-
-/***
- * 创建Swagger配置
- */
-@Configuration
-public class SwaggerConfig {
-
- @Bean
- public GlobalOpenApiCustomizer orderGlobalOpenApiCustomizer() {
- return openApi -> {
- // 全局添加Authorization
- if (openApi.getPaths() != null) {
- openApi.getPaths().forEach((path, pathItem) -> {
-
- // 忽略认证的请求无需携带 Authorization
- String[] ignoreUrls = {"/api/auth/login"};
- if (ArrayUtil.isNotEmpty(ignoreUrls)) {
- // Ant 匹配忽略的路径,不添加Authorization
- AntPathMatcher antPathMatcher = new AntPathMatcher();
- if (Stream.of(ignoreUrls).anyMatch(ignoreUrl -> antPathMatcher.match(ignoreUrl, path))) {
- return;
- }
- }
-
- // 其他接口统一添加Authorization
-// pathItem.readOperations()
-// .forEach(operation ->
-// operation.addSecurityItem(new SecurityRequirement().addList(HttpHeaders.AUTHORIZATION))
-// );
- });
- }
- };
- }
-
- @Bean
- public OpenAPI customOpenAPI() {
- return new OpenAPI()
- .info(new Info()
- .title("系统API")
- .version("1.0")) // 配置全局鉴权参数-Authorize
- .components(new Components()
- .addSecuritySchemes(HttpHeaders.AUTHORIZATION,
- new SecurityScheme()
- .name(HttpHeaders.AUTHORIZATION)
- .type(SecurityScheme.Type.APIKEY)
- .in(SecurityScheme.In.HEADER)
- .scheme("Bearer")
- .bearerFormat("JWT")
- )
- );
- }
-
-
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/config/WebConfig.java b/src/main/java/com/iflytop/gd/infrastructure/config/WebConfig.java
deleted file mode 100644
index 05999c1..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/config/WebConfig.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.iflytop.gd.infrastructure.config;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.config.annotation.CorsRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-@Configuration
-public class WebConfig implements WebMvcConfigurer {
- @Override
- public void addCorsMappings(CorsRegistry registry) {
- registry.addMapping("/api/**")
- .allowedOrigins("*")
- .allowedMethods("GET", "POST", "PUT", "DELETE")
- .allowedHeaders("*");
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/infrastructure/config/WebSocketConfig.java b/src/main/java/com/iflytop/gd/infrastructure/config/WebSocketConfig.java
deleted file mode 100644
index a3a8006..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/config/WebSocketConfig.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.iflytop.gd.infrastructure.config;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.socket.server.standard.ServerEndpointExporter;
-
-@Configuration
-public class WebSocketConfig {
-
- @Bean
- public ServerEndpointExporter serverEndpointExporter() {
- return new ServerEndpointExporter();
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/config/WebSocketServer.java b/src/main/java/com/iflytop/gd/infrastructure/config/WebSocketServer.java
deleted file mode 100644
index 9ff39eb..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/config/WebSocketServer.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.iflytop.gd.infrastructure.config;
-
-import jakarta.websocket.*;
-import jakarta.websocket.server.ServerEndpoint;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-@Slf4j
-@ServerEndpoint("/ws")
-@Component
-public class WebSocketServer {
-
- private static final Set sessions = Collections.synchronizedSet(new HashSet<>());
-
- public static void sendMessageToClients(String message) {
- synchronized (sessions) {
- for (Session session : sessions) {
- try {
- session.getBasicRemote().sendText(message);
- } catch (Exception e) {
- log.error("发送给客户端失败 sessionId={}", session.getId(), e);
- }
- }
- }
- }
-
- @OnOpen
- public void onOpen(Session session) {
- sessions.add(session);
- log.info("新连接加入,sessionId={}", session.getId());
- }
-
- @OnMessage
- public void onMessage(String message, Session session) {
- log.info("收到消息 sessionId={},内容:{}", session.getId(), message);
- }
-
- @OnClose
- public void onClose(Session session) {
- sessions.remove(session);
- log.info("连接已关闭,sessionId={}", session.getId());
- }
-
- @OnError
- public void onError(Session session, Throwable error) {
- log.error("发生错误,sessionId={}", session.getId(), error);
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalColdTray.java b/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalColdTray.java
deleted file mode 100644
index f53c01f..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalColdTray.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.physical;
-
-import com.iflytop.gd.system.devices.ColdTray;
-
-/**
- * 物理冷阱
- */
-public class PhysicalColdTray implements ColdTray {
- @Override
- public boolean setTemperature(Double temperature) {
- return false;
- }
-
- @Override
- public boolean startRecycle() {
- return false;
- }
-
- @Override
- public boolean stopRecycle() {
- return false;
- }
-
- @Override
- public boolean startHeating() {
- return false;
- }
-
- @Override
- public boolean stopHeating() {
- return false;
- }
-
- @Override
- public boolean startRefrigeration() {
- return false;
- }
-
- @Override
- public boolean stopRefrigeration() {
- return false;
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalDoor.java b/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalDoor.java
deleted file mode 100644
index a63d026..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalDoor.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.physical;
-
-import com.iflytop.gd.common.exception.AppException;
-import com.iflytop.gd.common.result.ResultCode;
-import com.iflytop.gd.infrastructure.devices.virtual.VirtualStepMotor;
-import com.iflytop.gd.infrastructure.drivers.ModuleId;
-import com.iflytop.gd.system.constants.DistanceUnit;
-import com.iflytop.gd.system.devices.Door;
-import com.iflytop.gd.system.devices.StepMotor;
-import com.iflytop.gd.system.drivers.CommandBus;
-import com.iflytop.gd.system.exceptions.CommandExecTimeoutException;
-import com.iflytop.gd.system.exceptions.HardwareErrorException;
-import org.springframework.context.annotation.Profile;
-import org.springframework.stereotype.Component;
-
-import java.io.IOException;
-
-/**
- * 物理门
- */
-
-public class PhysicalDoor implements Door {
-
- private final StepMotor doorMotor;
-
- public PhysicalDoor(CommandBus commandBus) {
- this.doorMotor = new VirtualStepMotor(ModuleId.DoorM);
- }
-
- @Override
- public void open() {
- try {
- doorMotor.easyMoveTo(100, DistanceUnit.MM);
- } catch (HardwareErrorException e) {
- throw new AppException(ResultCode.HARDWARE_ERROR);
- } catch (CommandExecTimeoutException e) {
- throw new AppException(ResultCode.COMMAND_EXEC_TIMEOUT);
- } catch (IOException | InterruptedException e) {
- throw new AppException(ResultCode.SYSTEM_ERROR);
- }
- }
-
-
- @Override
- public void close() {
- try {
- doorMotor.easyMoveToZero();
- } catch (HardwareErrorException e) {
- throw new AppException(ResultCode.HARDWARE_ERROR);
- } catch (CommandExecTimeoutException e) {
- throw new AppException(ResultCode.COMMAND_EXEC_TIMEOUT);
- } catch (IOException | InterruptedException e) {
- throw new AppException(ResultCode.SYSTEM_ERROR);
- }
- }
-
- @Override
- public void stop() {
- try {
- doorMotor.stop();
- } catch (HardwareErrorException e) {
- throw new AppException(ResultCode.HARDWARE_ERROR);
- } catch (CommandExecTimeoutException e) {
- throw new AppException(ResultCode.COMMAND_EXEC_TIMEOUT);
- } catch (IOException | InterruptedException e) {
- throw new AppException(ResultCode.SYSTEM_ERROR);
- }
- }
-
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalFan.java b/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalFan.java
deleted file mode 100644
index 611727b..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalFan.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.physical;
-
-import com.iflytop.gd.system.devices.Fan;
-
-/**
- * 物理风扇
- */
-public class PhysicalFan implements Fan {
- @Override
- public boolean open() {
- return false;
- }
-
- @Override
- public boolean close() {
- return false;
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalHoldingJaw.java b/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalHoldingJaw.java
deleted file mode 100644
index 34a3a46..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalHoldingJaw.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.physical;
-
-import com.iflytop.gd.system.devices.HoldingJaw;
-
-/**
- * 物理夹爪
- */
-public class PhysicalHoldingJaw implements HoldingJaw {
- @Override
- public void open() {
-
- }
-
- @Override
- public void close() {
-
- }
-
- @Override
- public void pause() {
-
- }
-
- @Override
- public void resume() {
-
- }
-
- @Override
- public void setSpeed(int speed) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalLiquidFillingArm.java b/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalLiquidFillingArm.java
deleted file mode 100644
index 15ef345..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalLiquidFillingArm.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.physical;
-
-
-import com.iflytop.gd.infrastructure.drivers.ModuleId;
-import com.iflytop.gd.system.constants.LiquidFillArmMotorIndex;
-import com.iflytop.gd.system.constants.RotationDirection;
-import com.iflytop.gd.system.constants.VelocityUnit;
-import com.iflytop.gd.system.devices.LiquidFillingArm;
-import com.iflytop.gd.system.devices.StepMotor;
-import com.iflytop.gd.system.drivers.CommandBus;
-import com.iflytop.gd.system.models.Point3D;
-
-/**
- * 物理液体加注机械臂
- */
-public class PhysicalLiquidFillingArm implements LiquidFillingArm {
- private final StepMotor largeArmMotor;
- private final StepMotor smallArmMotor;
-
- public PhysicalLiquidFillingArm(CommandBus commandBus) {
- this.largeArmMotor = new PhysicalStepMotor(ModuleId.DualRobotAxis1M, commandBus);
- this.smallArmMotor = new PhysicalStepMotor(ModuleId.DualRobotAxis2M, commandBus);
- }
-
- @Override
- public void moveTo(Point3D point) {
-
- }
-
- @Override
- public void rotateTo(LiquidFillArmMotorIndex liquidFillArmMotorIndex, Integer angle, RotationDirection direction) {
-
- }
-
- @Override
- public void setRotationSpeed(Integer speed, VelocityUnit speedUnit) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalPump.java b/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalPump.java
deleted file mode 100644
index 7b065e5..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalPump.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.physical;
-
-import com.iflytop.gd.system.devices.Pump;
-
-/**
- * 物理泵
- */
-public class PhysicalPump implements Pump {
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalRelay.java b/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalRelay.java
deleted file mode 100644
index 658a310..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalRelay.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.physical;
-
-import com.iflytop.gd.system.devices.Relay;
-
-/**
- * 物理继电器
- */
-public class PhysicalRelay implements Relay {
- @Override
- public boolean open() {
- return false;
- }
-
- @Override
- public boolean close() {
- return false;
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalServoMotor.java b/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalServoMotor.java
deleted file mode 100644
index e3d564f..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalServoMotor.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.physical;
-
-import com.iflytop.gd.infrastructure.drivers.RegIndex;
-import com.iflytop.gd.system.devices.ServoMotor;
-
-
-/**
- * 物理伺服电机
- */
-public class PhysicalServoMotor implements ServoMotor {
- @Override
- public void enable() {
-
- }
-
- @Override
- public void disable() {
-
- }
-
- @Override
- public void stop() {
-
- }
-
- @Override
- public Integer getCurrentPosition() {
- return 0;
- }
-
- @Override
- public void moveToZero() {
-
- }
-
- @Override
- public void moveTo(Integer position) {
-
- }
-
- @Override
- public void setMaxVelocity(Integer maxVelocity) {
-
- }
-
- @Override
- public void setMaxTorque(Integer maxTorque) {
-
- }
-
- @Override
- public void setProtectiveTorque(Integer protectiveTorque) {
-
- }
-
- @Override
- public Integer readReg(RegIndex regIndex) {
- return 0;
- }
-
- @Override
- public void writeReg(RegIndex regIndex, Integer value) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalStepMotor.java b/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalStepMotor.java
deleted file mode 100644
index b457c35..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalStepMotor.java
+++ /dev/null
@@ -1,175 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.physical;
-
-import com.iflytop.gd.infrastructure.drivers.CmdId;
-import com.iflytop.gd.infrastructure.drivers.ModuleId;
-import com.iflytop.gd.infrastructure.drivers.RegIndex;
-import com.iflytop.gd.system.constants.DistanceUnit;
-import com.iflytop.gd.system.constants.RotationDirection;
-import com.iflytop.gd.system.devices.StepMotor;
-import com.iflytop.gd.system.drivers.CommandBus;
-import com.iflytop.gd.system.exceptions.CommandExecTimeoutException;
-import com.iflytop.gd.system.exceptions.HardwareErrorException;
-import com.iflytop.gd.system.models.DataPacket;
-
-import java.io.IOException;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-/**
- * 物理步进电机实现
- */
-public class PhysicalStepMotor implements StepMotor {
- protected final ModuleId moduleId;
- protected final CommandBus commandBus;
- protected final Integer DEFAULT_COMMAND_EXEC_TIMEOUT_SECONDS = 10;
-
- public PhysicalStepMotor(ModuleId moduleId, CommandBus commandBus) {
- this.moduleId = moduleId;
- this.commandBus = commandBus;
- }
-
-
- @Override
- public void easyMoveTo(Integer value, DistanceUnit unit) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- DataPacket commandDataPacket = DataPacket.createCommandDataPacket(moduleId.index, CmdId.step_motor_easy_move_to.index, unit.toMM(value));
- commandBus.waitForCommandExec(commandDataPacket, DEFAULT_COMMAND_EXEC_TIMEOUT_SECONDS, TimeUnit.SECONDS);
- }
-
- @Override
- public void easyMoveBy(Integer value, DistanceUnit unit) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- DataPacket commandDataPacket = DataPacket.createCommandDataPacket(moduleId.index, CmdId.step_motor_easy_move_by.index, unit.toMM(value));
- commandBus.waitForCommandExec(commandDataPacket, DEFAULT_COMMAND_EXEC_TIMEOUT_SECONDS, TimeUnit.SECONDS);
- }
-
- @Override
- public void easyMoveToZero() throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- DataPacket commandDataPacket = DataPacket.createCommandDataPacket(moduleId.index, CmdId.step_motor_easy_move_to_zero.index);
- commandBus.waitForCommandExec(commandDataPacket, DEFAULT_COMMAND_EXEC_TIMEOUT_SECONDS, TimeUnit.SECONDS);
- }
-
- @Override
- public void easyMoveToZeroPointQuick() {
-
- }
-
- @Override
- public void enable() {
-
- }
-
- @Override
- public void disable() {
-
- }
-
- @Override
- public void moveForward(RotationDirection direction, Integer distance, DistanceUnit unit) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
-
- }
-
- @Override
- public void moveBackward(RotationDirection direction, Integer distance, DistanceUnit unit) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
-
- }
-
- @Override
- public Integer readPosition() {
- return 0;
- }
-
- @Override
- public Integer readEncoderPosition() {
- return 0;
- }
-
-
- @Override
- public void stop() throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
-
- }
-
- @Override
- public void rotateForward() {
-
- }
-
- @Override
- public void rotateBackward() {
-
- }
-
-
- @Override
- public Map readIOState() {
- return null;
- }
-
-
- @Override
- public void setReg(RegIndex regIndex, Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- DataPacket dataPacket = DataPacket.createCommandDataPacket(moduleId.index, CmdId.module_set_reg.index, value);
- commandBus.waitForCommandExec(dataPacket, DEFAULT_COMMAND_EXEC_TIMEOUT_SECONDS, TimeUnit.SECONDS);
- }
-
- @Override
- public Integer readReg(RegIndex regIndex) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- DataPacket commandDataPacket = DataPacket.createCommandDataPacket(moduleId.index, CmdId.module_get_reg.index);
- DataPacket ackDataPacket = commandBus.waitForCommandExec(commandDataPacket, DEFAULT_COMMAND_EXEC_TIMEOUT_SECONDS, TimeUnit.SECONDS);
- return ackDataPacket.getContentI32(0);
- }
-
- @Override
- public void setMRes(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
-
- }
-
- @Override
- public void setIRun(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
-
- }
-
- @Override
- public void setIHold(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
-
- }
-
- @Override
- public void setStartAndStopVelocity(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
-
- }
-
- @Override
- public void setV1(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
-
- }
-
- @Override
- public void setA1AndD1(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
-
- }
-
- @Override
- public void setAmaxAndDmax(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
-
- }
-
- @Override
- public void setDefaultVelocity(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
-
- }
-
- @Override
- public void setVelocity(Integer low, Integer mid, Integer high) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
-
- }
-
- @Override
- public void setOneCyclePulse(Integer pause, Integer denominator) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
-
- }
-
- @Override
- public void setDZero(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalSwitchSensor.java b/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalSwitchSensor.java
deleted file mode 100644
index 5e67827..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalSwitchSensor.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.physical;
-
-import com.iflytop.gd.system.devices.SwitchSensor;
-
-/**
- * 物理传感器
- */
-
-public class PhysicalSwitchSensor implements SwitchSensor {
- @Override
- public boolean isOpen() {
- return false;
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalTransportationArm.java b/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalTransportationArm.java
deleted file mode 100644
index 51dc2c5..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/physical/PhysicalTransportationArm.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.physical;
-
-import com.iflytop.gd.infrastructure.drivers.ModuleId;
-import com.iflytop.gd.system.constants.Dim;
-import com.iflytop.gd.system.constants.DistanceUnit;
-import com.iflytop.gd.system.constants.VelocityUnit;
-import com.iflytop.gd.system.devices.StepMotor;
-import com.iflytop.gd.system.devices.TransportationArm;
-import com.iflytop.gd.system.drivers.CommandBus;
-
-/**
- * 物理转移机械臂
- */
-
-public class PhysicalTransportationArm implements TransportationArm {
-
- private final StepMotor xDimMotor;
- private final StepMotor yDimMotor;
- private final StepMotor zDimMotor;
-
- public PhysicalTransportationArm(CommandBus commandBus) {
- this.xDimMotor = new PhysicalStepMotor(ModuleId.HBotXM, commandBus);
- this.yDimMotor = new PhysicalStepMotor(ModuleId.HBotYM, commandBus);
- this.zDimMotor = new PhysicalStepMotor(ModuleId.HBotZM, commandBus);
- }
-
- @Override
- public void moveTo(Dim dim, Integer distance, DistanceUnit unit) {
-
- }
-
- @Override
- public void relativelyMove(Dim dim, Integer distance, DistanceUnit unit) {
-
- }
-
-
- @Override
- public void stop(Dim dim) {
-
- }
-
- @Override
- public void setSpeed(Dim dim, Integer speed, VelocityUnit unit) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualColdTray.java b/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualColdTray.java
deleted file mode 100644
index f80e756..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualColdTray.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.virtual;
-
-import com.iflytop.gd.system.devices.ColdTray;
-
-/**
- * 虚拟冷阱
- */
-public class VirtualColdTray implements ColdTray {
- @Override
- public boolean setTemperature(Double temperature) {
- return false;
- }
-
- @Override
- public boolean startRecycle() {
- return false;
- }
-
- @Override
- public boolean stopRecycle() {
- return false;
- }
-
- @Override
- public boolean startHeating() {
- return false;
- }
-
- @Override
- public boolean stopHeating() {
- return false;
- }
-
- @Override
- public boolean startRefrigeration() {
- return false;
- }
-
- @Override
- public boolean stopRefrigeration() {
- return false;
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualDoor.java b/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualDoor.java
deleted file mode 100644
index d80acfd..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualDoor.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.virtual;
-
-import com.iflytop.gd.system.devices.Door;
-
-/**
- * 虚拟门
- */
-
-public class VirtualDoor implements Door {
- private boolean isOpen = false;
- @Override
- public void open() {
- this.isOpen = true;
- }
-
- @Override
- public void close() {
- this.isOpen = false;
- }
-
- @Override
- public void stop() {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualFan.java b/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualFan.java
deleted file mode 100644
index fd8036e..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualFan.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.virtual;
-
-import com.iflytop.gd.system.devices.Fan;
-
-/**
- * 虚拟风扇
- */
-public class VirtualFan implements Fan {
- @Override
- public boolean open() {
- return false;
- }
-
- @Override
- public boolean close() {
- return false;
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualHeater.java b/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualHeater.java
deleted file mode 100644
index e0c8ff8..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualHeater.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.virtual;
-
-import com.iflytop.gd.system.devices.Heater;
-import com.iflytop.gd.system.models.HeaterStatus;
-
-
-/**
- * 虚拟加热器
- */
-public class VirtualHeater implements Heater {
- private final HeaterStatus heaterStatus = new HeaterStatus();
-
-
- @Override
- public void open() {
- this.heaterStatus.setOpen(true);
- }
-
- @Override
- public void close() {
- this.heaterStatus.setOpen(false);
- }
-
- @Override
- public Double getCurrentTemperature() {
- return this.heaterStatus.getCurrentTemperature();
- }
-
- @Override
- public Double getTargetTemperature() {
- return this.heaterStatus.getTargetTemperature();
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualHoldingJaw.java b/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualHoldingJaw.java
deleted file mode 100644
index a329a67..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualHoldingJaw.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.virtual;
-
-import com.iflytop.gd.system.devices.HoldingJaw;
-
-/**
- * 虚拟夹爪
- */
-public class VirtualHoldingJaw implements HoldingJaw {
- @Override
- public void open() {
-
- }
-
- @Override
- public void close() {
-
- }
-
- @Override
- public void pause() {
-
- }
-
- @Override
- public void resume() {
-
- }
-
- @Override
- public void setSpeed(int speed) {
-
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualLiquidFillingArm.java b/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualLiquidFillingArm.java
deleted file mode 100644
index 4480ab7..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualLiquidFillingArm.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.virtual;
-
-import com.iflytop.gd.system.constants.LiquidFillArmMotorIndex;
-import com.iflytop.gd.system.constants.RotationDirection;
-import com.iflytop.gd.system.constants.VelocityUnit;
-import com.iflytop.gd.system.devices.LiquidFillingArm;
-import com.iflytop.gd.system.models.Point3D;
-
-
-/**
- * 虚拟加液机械臂
- */
-
-public class VirtualLiquidFillingArm implements LiquidFillingArm {
- @Override
- public void moveTo(Point3D point) {
- }
-
- @Override
- public void rotateTo(LiquidFillArmMotorIndex liquidFillArmMotorIndex, Integer angle, RotationDirection direction) {
- }
-
- @Override
- public void setRotationSpeed(Integer speed, VelocityUnit speedUnit) {
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualPump.java b/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualPump.java
deleted file mode 100644
index d1bbb0c..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualPump.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.virtual;
-
-import com.iflytop.gd.system.devices.Pump;
-
-/**
- * 虚拟泵
- */
-public class VirtualPump implements Pump {
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualRelay.java b/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualRelay.java
deleted file mode 100644
index e1b3820..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualRelay.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.virtual;
-
-import com.iflytop.gd.system.devices.Relay;
-
-public class VirtualRelay implements Relay {
- @Override
- public boolean open() {
- return false;
- }
-
- @Override
- public boolean close() {
- return false;
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualServoMotor.java b/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualServoMotor.java
deleted file mode 100644
index d5e7f0c..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualServoMotor.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.virtual;
-
-import com.iflytop.gd.infrastructure.drivers.RegIndex;
-import com.iflytop.gd.system.devices.ServoMotor;
-import com.iflytop.gd.system.models.ServoMotorStatus;
-import org.springframework.context.annotation.Profile;
-import org.springframework.stereotype.Component;
-
-import java.util.HashMap;
-import java.util.Map;
-
-
-/**
- * 虚拟伺服电机
- */
-public class VirtualServoMotor implements ServoMotor {
- private final ServoMotorStatus servoMotorStatus = new ServoMotorStatus();
- private final Map registers = new HashMap();
- @Override
- public void enable() {
- this.servoMotorStatus.setEnabled(true);
- }
-
- @Override
- public void disable() {
- this.servoMotorStatus.setEnabled(false);
- }
-
- @Override
- public void stop() {
- this.servoMotorStatus.setStopped(true);
- }
-
- @Override
- public Integer getCurrentPosition() {
- return this.servoMotorStatus.getCurrentPosition();
- }
-
- @Override
- public void moveToZero() {
- this.servoMotorStatus.setCurrentPosition(0);
- }
-
- @Override
- public void moveTo(Integer position) {
- this.servoMotorStatus.setCurrentPosition(position);
- }
-
- @Override
- public void setMaxVelocity(Integer maxVelocity) {
- //TODO 等待硬件给出寄存器索引
- }
-
- @Override
- public void setMaxTorque(Integer maxTorque) {
- //TODO 等待硬件给出寄存器索引
- }
-
- @Override
- public void setProtectiveTorque(Integer protectiveTorque) {
- //TODO 等待硬件给出寄存器索引
- }
-
- @Override
- public Integer readReg(RegIndex regIndex) {
- return this.registers.get(regIndex);
- }
-
- @Override
- public void writeReg(RegIndex regIndex, Integer value) {
- this.registers.put(regIndex, value);
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualStepMotor.java b/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualStepMotor.java
deleted file mode 100644
index b5a43b0..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualStepMotor.java
+++ /dev/null
@@ -1,194 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.virtual;
-
-import cn.hutool.json.JSONUtil;
-import com.iflytop.gd.infrastructure.drivers.ModuleId;
-import com.iflytop.gd.infrastructure.drivers.RegIndex;
-import com.iflytop.gd.system.constants.DistanceUnit;
-import com.iflytop.gd.system.constants.RotationDirection;
-import com.iflytop.gd.system.devices.StepMotor;
-import com.iflytop.gd.system.exceptions.CommandExecTimeoutException;
-import com.iflytop.gd.system.exceptions.HardwareErrorException;
-import com.iflytop.gd.system.models.StepMotorStatus;
-import lombok.extern.slf4j.Slf4j;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 虚拟步进电机
- */
-@Slf4j
-public class VirtualStepMotor implements StepMotor {
- private StepMotorStatus stepMotorStatus = new StepMotorStatus();
- private Map registers = new HashMap();
- private final ModuleId moduleId;
-
- public VirtualStepMotor(ModuleId moduleId) {
- this.moduleId = moduleId;
- }
-
- @Override
- public void easyMoveBy(Integer value, DistanceUnit unit) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- int position = this.stepMotorStatus.getCurrentPosition() + unit.toMM(value);
- this.stepMotorStatus.setCurrentPosition(position);
- this.stepMotorStatus.setStopped(true);
- }
-
- @Override
- public void easyMoveTo(Integer value, DistanceUnit unit) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- log.debug("Moving to {}", value);
- this.stepMotorStatus.setCurrentPosition(unit.toMM(value));
- this.stepMotorStatus.setZeroPosition(this.stepMotorStatus.getCurrentPosition() == 0);
- this.stepMotorStatus.setStopped(true);
- log.debug("MotorStatus {}", JSONUtil.toJsonStr(this.stepMotorStatus));
- }
-
- @Override
- public void easyMoveToZero() throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- log.debug("Easy move to zero.");
- this.stepMotorStatus.setCurrentPosition(0);
- this.stepMotorStatus.setZeroPosition(this.stepMotorStatus.getCurrentPosition() == 0);
- this.stepMotorStatus.setStopped(true);
- log.debug("MotorStatus {}", JSONUtil.toJsonStr(this.stepMotorStatus));
- }
-
- @Override
- public void easyMoveToZeroPointQuick() {
- log.debug("Easy move to zero quick.");
- this.stepMotorStatus.setCurrentPosition(0);
- this.stepMotorStatus.setZeroPosition(this.stepMotorStatus.getCurrentPosition() == 0);
- this.stepMotorStatus.setStopped(true);
- log.debug("MotorStatus {}", JSONUtil.toJsonStr(this.stepMotorStatus));
- }
-
- @Override
- public void enable() {
- log.debug("Enable step motor.");
- this.stepMotorStatus.setEnabled(true);
- log.debug("MotorStatus {}", JSONUtil.toJsonStr(this.stepMotorStatus));
- }
-
- @Override
- public void disable() {
- log.debug("Disable step motor.");
- this.stepMotorStatus.setEnabled(false);
- log.debug("MotorStatus {}", JSONUtil.toJsonStr(this.stepMotorStatus));
- }
-
- @Override
- public void moveForward(RotationDirection direction, Integer distance, DistanceUnit unit) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
-
- }
-
- @Override
- public void moveBackward(RotationDirection direction, Integer distance, DistanceUnit unit) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
-
- }
-
- @Override
- public void stop() throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- log.debug("Stop step motor.");
- this.stepMotorStatus.setStopped(true);
- log.debug("MotorStatus {}", JSONUtil.toJsonStr(this.stepMotorStatus));
- }
-
- @Override
- public void rotateForward() {
-
- }
-
- @Override
- public void rotateBackward() {
-
- }
-
- @Override
- public Map readIOState() {
- Map ioState = new HashMap<>();
- ioState.put("IO1", true);
- ioState.put("IO2", false);
- return ioState;
- }
-
- @Override
- public Integer readPosition() {
- return this.stepMotorStatus.getCurrentPosition();
- }
-
- @Override
- public Integer readEncoderPosition() {
- return this.stepMotorStatus.getEncoderPosition();
- }
-
- @Override
- public void setReg(RegIndex regIndex, Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- this.registers.put(regIndex, value);
- }
-
- @Override
- public Integer readReg(RegIndex regIndex) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- return this.registers.get(regIndex);
- }
-
- @Override
- public void setMRes(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- setReg(RegIndex.kreg_step_motor_mres, value);
- }
-
- @Override
- public void setIRun(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- setReg(RegIndex.kreg_step_motor_irun, value);
- }
-
- @Override
- public void setIHold(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- setReg(RegIndex.kreg_step_motor_ihold, value);
- }
-
- @Override
- public void setStartAndStopVelocity(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- setReg(RegIndex.kreg_step_motor_vstart, value);
- setReg(RegIndex.kreg_step_motor_vstop, value);
- }
-
- @Override
- public void setV1(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- setReg(RegIndex.kreg_step_motor_v1, value);
- }
-
- @Override
- public void setA1AndD1(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- setReg(RegIndex.kreg_step_motor_a1, value);
- setReg(RegIndex.kreg_step_motor_d1, value);
- }
-
- @Override
- public void setAmaxAndDmax(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- setReg(RegIndex.kreg_step_motor_amax, value);
- setReg(RegIndex.kreg_step_motor_dmax, value);
- }
-
- @Override
- public void setDefaultVelocity(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- setReg(RegIndex.kreg_step_motor_default_velocity, value);
- }
-
- @Override
- public void setVelocity(Integer low, Integer mid, Integer high) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- setReg(RegIndex.kreg_step_motor_low_velocity, low);
- setReg(RegIndex.kreg_step_motor_mid_velocity, mid);
- setReg(RegIndex.kreg_step_motor_high_velocity, high);
- }
-
- @Override
- public void setOneCyclePulse(Integer pause, Integer denominator) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- setReg(RegIndex.kreg_step_motor_one_circle_pulse, pause);
- setReg(RegIndex.kreg_step_motor_one_circle_pulse_denominator, denominator);
- }
-
- @Override
- public void setDZero(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException {
- setReg(RegIndex.kreg_step_motor_dzero_pos, value);
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualSwitchSensor.java b/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualSwitchSensor.java
deleted file mode 100644
index bf0886b..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualSwitchSensor.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.virtual;
-
-import com.iflytop.gd.system.devices.SwitchSensor;
-
-/**
- * 虚拟传感器
- */
-public class VirtualSwitchSensor implements SwitchSensor {
- @Override
- public boolean isOpen() {
- return false;
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualTransportationArm.java b/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualTransportationArm.java
deleted file mode 100644
index 3e7ac18..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/devices/virtual/VirtualTransportationArm.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package com.iflytop.gd.infrastructure.devices.virtual;
-
-import com.iflytop.gd.common.exception.AppException;
-import com.iflytop.gd.common.result.ResultCode;
-import com.iflytop.gd.infrastructure.drivers.ModuleId;
-import com.iflytop.gd.system.constants.Dim;
-import com.iflytop.gd.system.constants.DistanceUnit;
-import com.iflytop.gd.system.constants.VelocityUnit;
-import com.iflytop.gd.system.devices.StepMotor;
-import com.iflytop.gd.system.devices.TransportationArm;
-import com.iflytop.gd.system.exceptions.CommandExecTimeoutException;
-import com.iflytop.gd.system.exceptions.HardwareErrorException;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 虚拟转移机械臂
- */
-public class VirtualTransportationArm implements TransportationArm {
- private final StepMotor xDimMotor;
- private final StepMotor yDimMotor;
- private final StepMotor zDimMotor;
- private final Map stepMotors = new HashMap();
-
- public VirtualTransportationArm() {
- this.xDimMotor = new VirtualStepMotor(ModuleId.HBotXM);
- this.yDimMotor = new VirtualStepMotor(ModuleId.HBotYM);
- this.zDimMotor = new VirtualStepMotor(ModuleId.HBotZM);
- stepMotors.put(Dim.X, xDimMotor);
- stepMotors.put(Dim.Y, yDimMotor);
- stepMotors.put(Dim.Z, zDimMotor);
- }
-
- @Override
- public void moveTo(Dim dim, Integer distance, DistanceUnit unit) {
- try {
- stepMotors.get(dim).easyMoveTo(distance, unit);
- } catch (HardwareErrorException e) {
- throw new AppException(ResultCode.HARDWARE_ERROR);
- } catch (CommandExecTimeoutException e) {
- throw new AppException(ResultCode.COMMAND_EXEC_TIMEOUT);
- } catch (IOException | InterruptedException e) {
- throw new AppException(ResultCode.SYSTEM_ERROR);
- }
- }
-
- @Override
- public void relativelyMove(Dim dim, Integer distance, DistanceUnit unit) {
- try {
- stepMotors.get(dim).easyMoveBy(distance, unit);
- } catch (HardwareErrorException e) {
- throw new AppException(ResultCode.HARDWARE_ERROR);
- } catch (CommandExecTimeoutException e) {
- throw new AppException(ResultCode.COMMAND_EXEC_TIMEOUT);
- } catch (IOException | InterruptedException e) {
- throw new AppException(ResultCode.SYSTEM_ERROR);
- }
- }
-
- @Override
- public void stop(Dim dim) {
- try {
- stepMotors.get(dim).stop();
- } catch (HardwareErrorException e) {
- throw new AppException(ResultCode.HARDWARE_ERROR);
- } catch (CommandExecTimeoutException e) {
- throw new AppException(ResultCode.COMMAND_EXEC_TIMEOUT);
- } catch (IOException | InterruptedException e) {
- throw new AppException(ResultCode.SYSTEM_ERROR);
- }
- }
-
- @Override
- public void setSpeed(Dim dim, Integer speed, VelocityUnit unit) {
- try {
- stepMotors.get(dim).setDefaultVelocity(unit.toMM_PER_SEC(speed));
- } catch (HardwareErrorException e) {
- throw new AppException(ResultCode.HARDWARE_ERROR);
- } catch (CommandExecTimeoutException e) {
- throw new AppException(ResultCode.COMMAND_EXEC_TIMEOUT);
- } catch (IOException | InterruptedException e) {
- throw new AppException(ResultCode.SYSTEM_ERROR);
- }
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/drivers/AppErrorCode.java b/src/main/java/com/iflytop/gd/infrastructure/drivers/AppErrorCode.java
deleted file mode 100644
index 075c5c0..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/drivers/AppErrorCode.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.iflytop.gd.infrastructure.drivers;
-
-public enum AppErrorCode {
- APP_OK(200, "操作成功"),
- FAIL(500, "操作失败"),
- PARAM_ERROR(400, "参数错误");
-
- private int code;
- private String msg;
- private AppErrorCode(int code, String msg) {
- this.code = code;
- this.msg = msg;
- }
-
- public int getCode() {
- return code;
- }
- public String getMsg() {
- return msg;
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/infrastructure/drivers/CmdId.java b/src/main/java/com/iflytop/gd/infrastructure/drivers/CmdId.java
deleted file mode 100644
index d079a65..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/drivers/CmdId.java
+++ /dev/null
@@ -1,122 +0,0 @@
-package com.iflytop.gd.infrastructure.drivers;
-
-
-public enum CmdId {
- NotSet(0xFFFF, "NOACTION"),//
-
- board_reset(0x0000, "复位板子"),//
- event_bus_reg_change_report(0x0064, "寄存器修改事件"),//
- //
-
- module_ping(0x0101, "MODULE_PING"),
- module_stop(0x0102, "MODULE_STOP"),
-
- module_get_error(0x0110, "MODULE_GET_ERROR"),
- module_get_detail_error(0x0111, "MODULE_GET_DETAIL_ERROR"),
- module_clear_error(0x0112, "MODULE_CLEAR_ERROR"),
-
- module_set_reg(0x0120, "MODULE_SET_REG"),
- module_get_reg(0x0121, "MODULE_GET_REG"),
- module_reset_reg(0x0123, "MODULE_RESET_REG"),
-
- module_get_version(0x0130, "MODULE_GET_VERSION"),
- module_get_type(0x0131, "MODULE_GET_TYPE"),
- module_get_status(0x0132, "MODULE_GET_STATUS"),
-
- // 扩展板
- extboard_read_inio(0x6701, "EXTBOARD_READ_INIO"),//
- extboard_write_outio(0x6702, "EXTBOARD_WRITE_OUTIO"),//
- extboard_read_muti_inio(0x6703, "EXTBOARD_READ_MUTI_INIO"),//
- extboard_read_inio_index_in_stm32(0x6704, "EXTBOARD_READ_INIO_INDEX_IN_STM32"),//
- extboard_read_outio_index_in_stm32(0x6705, "EXTBOARD_READ_OUTIO_INDEX_IN_STM32"),//
- extboard_read_outio(0x6706, "EXTBOARD_READ_OUTIO"),//
-
- // 补光灯模块
- module_pwm_light_on(0x0204, "MODULE_PWM_LIGHT_ON"), // 补光灯 开启
- module_pwm_light_off(0x0205, "MODULE_PWM_LIGHT_OFF"), // 补光灯
-
- // 三色灯模块
- module_tricolor_light_on(0x0206, "MODULE_TRICOLOR_LIGHT_ON"), // 三色灯开启
- module_tricolor_light_off(0x0207, "MODULE_TRICOLOR_LIGHT_OFF"), // 三色灯
-
- // IO 板卡 1
- module_io1_read_heat_rod_current(0x0207, "MODULE_IO_READ_HEAT_ROD_CURRENT"), // 读取加热棒电流
-
- // IO 板卡 2
-
- // 电机通用控制
- step_motor_enable(0x0201, "STEP_MOTOR_ENABLE"),//
- step_motor_read_pos(0x020b, "STEP_MOTOR_READ_POS"),//
- step_motor_read_enc_pos(0x020c, "STEP_MOTOR_READ_ENC_POS"),//
- step_motor_easy_rotate(0x0211, "STEP_MOTOR_EASY_ROTATE"),//
- step_motor_easy_move_by(0x0212, "STEP_MOTOR_EASY_MOVE_BY"),//
- step_motor_easy_move_to(0x0213, "STEP_MOTOR_EASY_MOVE_TO"),//
- step_motor_easy_move_to_zero(0x0214, "STEP_MOTOR_EASY_MOVE_TO_ZERO"),//
- step_motor_easy_set_current_pos(0x0215, "STEP_MOTOR_EASY_SET_CURRENT_POS"),//
- step_motor_easy_move_to_io(0x0216, "STEP_MOTOR_EASY_MOVE_TO_IO"),//
- step_motor_stop(0x0228, "STEP_MOTOR_STOP"),//
- step_motor_move_by(0x021d, "STEP_MOTOR_MOVE_BY"), // (dpos,speedlevel)->null speedlevel=0,1,2,3(default,low,mid,high)
- step_motor_move_to(0x021e, "STEP_MOTOR_MOVE_TO"), // (pos,speedlevel)->null speedlevel=0,1,2,3(default,low,mid,high)
- step_motor_move_to_zero_point_quick(0x021f, "STEP_MOTOR_MOVE_TO_ZERO_POINT_QUICK"), // (speedlevel)->null speedlevel=0,1,2,3(default,low,mid,high)
- step_motor_rotate(0x0220, "STEP_MOTOR_ROTATE"), //
-
- step_motor_active_cfg(0x0229, "STEP_MOTOR_ACTIVE_CFG"),//
- step_motor_read_io_state(0x022a, "STEP_MOTOR_READ_IO_STATE"),//
- step_motor_easy_move_to_end_point(0x022c, "STEP_MOTOR_EASY_MOVE_TO_END_POINT"),//
- step_motor_read_tmc5130_status(0x0232, "STEP_MOTOR_READ_TMC5130_STATUS"),//
- step_motor_read_tmc5130_state(0x0233, "STEP_MOTOR_READ_TMC5130_STATE"),//
- step_motor_read_io_index_in_stm32(0x0238, "STEP_MOTOR_READ_IO_INDEX_IN_STM32"),//
- step_motor_set_subdevice_reg(0x0239, "STEP_MOTOR_SET_SUBDEVICE_REG"),//
- step_motor_get_subdevice_reg(0x023a, "STEP_MOTOR_GET_SUBDEVICE_REG"),//
- step_motor_easy_reciprocating_motion(0x022d, "STEP_MOTOR_EASY_RECIPROCATING_MOTION"),//
- step_motor_easy_move_to_zero_point_quick(0x022e, "STEP_MOTOR_EASY_MOVE_TO_ZERO_POINT_QUICK"),
-
-
- ;
-
- public final static int ATTACH_IS_BYTES = 1;
- public final static int ATTACH_IS_INT32 = 2;
- public final int index;
- public final String name;
-
- CmdId(int index, String chname) {
- this.index = index;
- this.name = chname;
- }
-
- public int toInt() {
- return index;
- }
-
- public static CmdId valueOf(int val) {
- CmdId[] values = CmdId.values();
- for (CmdId e : values) {
- if (e.toInt() == val)
- return e;
- }
- return null;
- }
-
- public static String toString(int val) {
- CmdId[] values = CmdId.values();
- for (CmdId e : values) {
- if (e.toInt() == val) {
- return e.toString();
- }
- }
- return "unknown(" + val + ")";
- }
-
- public String getName() {
- return name;
- }
-
- public Boolean eq(Integer index) {
- return this.index == index;
- }
-
-
- public boolean isTrace() {
- return true;
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/drivers/ModuleId.java b/src/main/java/com/iflytop/gd/infrastructure/drivers/ModuleId.java
deleted file mode 100644
index 34add60..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/drivers/ModuleId.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package com.iflytop.gd.infrastructure.drivers;
-
-public enum ModuleId {
- NotSet(0, "未设置"),
- IO1Board(10, "台面 IO 板模块"),
- PWMLight(11, "PWM 灯"),
- TriColorLight(12, "三色灯"),
-
- IO2Board(30, "台下 IO 板模块"),
-
- DoorBoard(80, "门电机板模块"),//
- DoorM(81, "门电机"),
-
- ShakeModBoard(90, "摇匀模组板"), //
- ShakeModShakeM(91, "加液位摇匀电机"), //
-
- CapStorageBoard(100, "拍子存放板模块"), //
- CapStorageM(101, "拍子存放电机"), //
-
- DualRobotAxis1Board(110, "双轴机械臂1轴板模块"),//
- DualRobotAxis1M(111, "双轴机械臂1轴电机"),
- DualRobotAxis2Board(120, "双轴机械臂2轴板模块"),//
- DualRobotAxis2M(121, "双轴机械臂2轴电机"),
-
- HBotXBoard(130, "X轴板模块"),//
- HBotXM(131, "X轴电机"),
- HBotYBoard(140, "Y轴板模块"),//
- HBotYM(141, "Y轴电机"),
- HBotZBoard(150, "Z轴板模块"),//
- HBotZM(151, "Z轴电机"),
-
- Heater1Board(160, "加热1板模块"),//
- Heater1M(161, "加热1电机"),
- Heater2Board(170, "加热2板模块"),//
- Heater2M(171, "加热2电机"),
- Heater3Board(180, "加热3板模块"),//
- Heater3M(181, "加热3电机"),
- Heater4Board(190, "加热4板模块"),//
- Heater4M(191, "加热4电机"),
- Heater5Board(200, "加热5板模块"),//
- Heater5M(201, "加热5电机"),
- Heater6Board(210, "加热6板模块"),//
- Heater6M(211, "加热6电机"),
-
- AcidPump1Board(220, "加酸泵1板模块"),//
- AcidPump1M(221, "加酸泵1电机"),
- AcidPump2Board(230, "加酸泵2板模块"),//
- AcidPump2M(231, "加酸泵2电机"),
- AcidPump3Board(240, "加酸泵3板模块"),//
- AcidPump3M(241, "加酸泵3电机"),
- AcidPump4Board(250, "加酸泵4板模块"),//
- AcidPump4M(251, "加酸泵4电机"),
- AcidPump5Board(260, "泵5板模块"),//
- AcidPump5M(261, "泵5电机"),
- AcidPump6Board(270, "泵6板模块"),//
- AcidPump6M(271, "泵6电机"),
- AcidPump7Board(280, "泵7板模块"),//
- AcidPump7M(281, "泵7电机"),
- AcidPump8Board(290, "泵8板模块"),//
- AcidPump8M(291, "泵8电机"),
- ;
-
- final public String name;
- final public int index;
-
- ModuleId(int index, String name) {
- this.name = name;
- this.index = index;
- }
-
- public int toInt() {
- return index;
- }
-
-
- public static ModuleId valueOf(Integer val) {
- return valueOf(val.intValue());
- }
-
- public static ModuleId valueOf(int val) {
- ModuleId[] values = ModuleId.values();
- for (ModuleId e : values) {
- if (e.toInt() == val)
- return e;
- }
- return null;
- }
-
- public static String toString(int val) {
- ModuleId[] values = ModuleId.values();
- for (ModuleId e : values) {
- if (e.toInt() == val) {
- return e.toString();
- }
- }
- return "unknown(" + val + ")";
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/drivers/RegIndex.java b/src/main/java/com/iflytop/gd/infrastructure/drivers/RegIndex.java
deleted file mode 100644
index 169919a..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/drivers/RegIndex.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package com.iflytop.gd.infrastructure.drivers;
-
-/**
- * @brief 寄存器索引
- */
-public enum RegIndex {
-
- /***********************************************************************************************************************
- * 步进电机控制器 *
- ***********************************************************************************************************************/
- /***********************************************************************************************************************
- * step_motor start *
- ***********************************************************************************************************************/
-
- kreg_step_motor_pos(10101), // 机器人x坐标
- kreg_step_motor_is_enable(10102), // 是否使能
- kreg_step_motor_dpos(10103), // 执行完上一条指令后的相对位移
- kreg_step_motor_has_move_zero(10104), // 是否回零
- // kreg_step_motor_shift(10150), // x偏移
- kreg_step_motor_shaft(10151), // x轴是否反转
- kreg_step_motor_one_circle_pulse(10152), // x轴一圈脉冲数
- kreg_step_motor_one_circle_pulse_denominator(10153), // 设置一圈脉冲数的分母
- kreg_step_motor_default_velocity(10154), // 默认速度
- kreg_step_motor_low_velocity(10155), // 低速
- kreg_step_motor_mid_velocity(10156), // 中速
- kreg_step_motor_high_velocity(10157), // 高速
- kreg_step_motor_ihold(10158), // 步进电机电流配置
- kreg_step_motor_irun(10159), // 步进电机电流配置
- kreg_step_motor_iholddelay(10160), // 步进电机电流配置
- kreg_step_motor_iglobalscaler(10161), // 步进电机电流配置
- kreg_step_motor_mres(10162), // 电机细分
- kreg_step_motor_run_to_zero_speed(10173), // 回零速度
- kreg_step_motor_look_zero_edge_speed(10175), // 找零边缘速度
- kreg_step_motor_max_d(10178), // 最大限制距离
- kreg_step_motor_min_d(10179), // 最小限制距离
- kreg_step_motor_in_debug_mode(10180), // 驱动器处于调试模式
- kreg_step_motor_vstart(10181), // a1起作用的速度
- kreg_step_motor_a1(10182), //
- kreg_step_motor_amax(10183), //
- kreg_step_motor_v1(10184), //
- kreg_step_motor_dmax(10185), //
- kreg_step_motor_d1(10186), //
- kreg_step_motor_vstop(10187), //
- kreg_step_motor_tzerowait(10188), //
- kreg_step_motor_enc_resolution(10189), // 编码器分辨率 1000,1024,4000,4096,16384
- kreg_step_motor_enable_enc(10190), //
- kreg_step_motor_dzero_pos(10191), // 驱动器处于调试模式
- kret_step_motor_pos_devi_tolerance(10192), // 位置偏差容忍度
- kret_step_motor_io_trigger_append_distance(10193), // 移动到io时,附加的距离
-
- /***********************************************************************************************************************
- * step_motor end *
- ***********************************************************************************************************************/
- ;
-
- public final int index;
- public final Boolean trace;
-
- RegIndex(int regIndex) {
- this.index = regIndex;
- this.trace = true;
- }
-
- RegIndex(int regIndex, Boolean trace) {
- this.index = regIndex;
- this.trace = trace;
- }
-
- public static RegIndex valueOf(int val) {
- RegIndex[] values = RegIndex.values();
- for (RegIndex regindex : values) {
- if (regindex.index == val) {
- return regindex;
- }
- }
- return null;
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/drivers/WebSocketCommandBusImpl.java b/src/main/java/com/iflytop/gd/infrastructure/drivers/WebSocketCommandBusImpl.java
deleted file mode 100644
index c9a4ea6..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/drivers/WebSocketCommandBusImpl.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package com.iflytop.gd.infrastructure.drivers;
-
-import cn.hutool.core.util.ObjectUtil;
-import com.iflytop.gd.system.drivers.CommandBus;
-import com.iflytop.gd.system.exceptions.CommandExecTimeoutException;
-import com.iflytop.gd.system.exceptions.HardwareErrorException;
-import com.iflytop.gd.system.models.DataPacket;
-import com.iflytop.gd.system.utils.ByteArray;
-import jakarta.annotation.PostConstruct;
-import jakarta.websocket.*;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-/**
- * 使用WebSocket实现命令总线功能
- */
-@Slf4j
-@Component
-@ClientEndpoint
-@EnableScheduling
-public class WebSocketCommandBusImpl implements CommandBus {
- private Session session;
- private CountDownLatch countDownLatch;
- private DataPacket lastDataPacket;
- private Integer packetIndex = 0;
-
- private final String COMMAND_BUS_WEBSOCKET_URL;
- private final Boolean commandBusEnable;
-
- public static final int PACKET_TYPE_CMD = 0xA0;
- public static final int PACKET_TYPE_ACK = 0xA1;
- public static final int PACKET_TYPE_ERROR_ACK = 0xA2;
- public static final int PACKET_TYPE_EVENT = 0xA3;
-
- //TODO 配置硬件服务段ws链接
- public WebSocketCommandBusImpl(@Value("${command_bus.websocket_server_url}") String websocketServerUrl, @Value("${command_bus.enable}") Boolean commandBusEnable) throws DeploymentException, IOException {
- this.COMMAND_BUS_WEBSOCKET_URL = websocketServerUrl;
- this.commandBusEnable = commandBusEnable;
- }
-
- @Scheduled(fixedRate = 5000)
- @PostConstruct
- public void connectToCommandBusWebSocketServer() throws DeploymentException, IOException {
- if (commandBusEnable && (this.session == null || !this.session.isOpen())) {
- WebSocketContainer container = ContainerProvider.getWebSocketContainer();
- URI endpointURI = URI.create(COMMAND_BUS_WEBSOCKET_URL);
- try {
- this.session = container.connectToServer(this, endpointURI);
- } catch (Exception e) {
-// log.error(e.getMessage(), e);
- }
- }
-
- }
-
- @Override
- public synchronized DataPacket waitForCommandExec(DataPacket commandPacket, Integer timeout, TimeUnit unit)
- throws CommandExecTimeoutException, HardwareErrorException, IOException, InterruptedException {
- try {
- if (!this.session.isOpen()) {
- log.error("Session state={}", this.session.isOpen());
- throw new IOException("Session is not open");
- }
- packetIndex = packetIndex + 1;
- if (packetIndex > 30000) {
- packetIndex = 1;
- }
- commandPacket.setPacketIndex(packetIndex);
- this.countDownLatch = new CountDownLatch(1);
- String byteString = commandPacket.toByteString();
- log.info("ModuleId={}, CommandId={}, 数据包二进制字符内容={}", commandPacket.getModuleId(), commandPacket.getCmdId(), byteString);
- this.session.getBasicRemote().sendText(byteString);
- boolean isTimeout = !this.countDownLatch.await(timeout, unit);
- // 命令返回或者超时了
- if (isTimeout) {
- log.error("Command exec timeout, moduleId={}, commandId={}, timeoutInMilSeconds={}",
- commandPacket.getModuleId(), commandPacket.getCmdId(), unit.toMillis(timeout));
- throw new CommandExecTimeoutException();
- }
- log.debug("收到数据包{}", this.lastDataPacket);
- // 在指定的时间内得到了响应
- if (this.lastDataPacket.getPacketType() == PACKET_TYPE_ERROR_ACK) {
- log.error("moduleId={}执行command={}发送硬件错误", this.lastDataPacket.getModuleId(), this.lastDataPacket.getCmdId());
- throw new HardwareErrorException();
- }
- return ObjectUtil.cloneByStream(this.lastDataPacket);
- } catch (IOException e) {
- log.error("发送指令发生异常", e);
- throw e;
- } catch (InterruptedException e) {
- log.error("Thread: {}被中断", Thread.currentThread().getName());
- throw e;
- }
- }
-
-
- @OnOpen
- public void onOpen(Session session) {
- this.session = session;
- log.info("WebSocket connection established");
- }
-
- @OnMessage
- public void onMessage(String message) {
- byte[] bytes = ByteArray.hexStringToBytes(message);
- log.info("New packet arrived: {}", message);
- this.lastDataPacket = new DataPacket(bytes);
- if (this.lastDataPacket.getPacketType() == DataPacket.PACKET_TYPE_ACK ||
- this.lastDataPacket.getPacketType() == DataPacket.PACKET_TYPE_ERROR_ACK) {
- this.countDownLatch.countDown();
- }
- }
-
-
- @OnClose
- public void onClose() {
- if (this.countDownLatch != null) {
- this.countDownLatch.countDown();
- }
- }
-
- @OnError
- public void onError(Session session, Throwable throwable) {
- if (this.countDownLatch != null) {
- this.countDownLatch.countDown();
- }
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/modules/Device.java b/src/main/java/com/iflytop/gd/infrastructure/modules/Device.java
deleted file mode 100644
index a83d0d1..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/modules/Device.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.iflytop.gd.infrastructure.modules;
-
-import com.iflytop.gd.infrastructure.modules.area.*;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Component;
-
-@Component
-@RequiredArgsConstructor
-public class Device {
- /**
- * 加热区
- */
- private final HeatArea heatArea;
- /**
- * 加液区
- */
- private final LiquidArea liquidArea;
- /**
- * 导轨机械臂
- */
- private final RailArmArea railArmArea;
- /**
- * 拍子存放区
- */
- private final CapArea capArea;
- /**
- * 冷阱
- */
- private final ColdTrapArea coldTrapArea;
- /**
- * 门
- */
- private final DoorArea doorArea;
-
-
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/modules/WebSocketNotificationPushMgrImpl.java b/src/main/java/com/iflytop/gd/infrastructure/modules/WebSocketNotificationPushMgrImpl.java
deleted file mode 100644
index c2b8b22..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/modules/WebSocketNotificationPushMgrImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.iflytop.gd.infrastructure.modules;
-
-import cn.hutool.json.JSONUtil;
-import com.iflytop.gd.common.notification.Notification;
-import com.iflytop.gd.system.modules.NotificationPushMgr;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-import jakarta.websocket.Session;
-
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * 使用Websocket实现通知推送管理
- */
-@Slf4j
-@Component
-public class WebSocketNotificationPushMgrImpl implements NotificationPushMgr {
-
- private final Set sessions = new HashSet<>();
-
- @Override
- public void pushNotification(Notification notification) {
- for (Session session : sessions) {
- try {
- session.getBasicRemote().sendText(JSONUtil.toJsonStr(notification));
- } catch (IOException e) {
- log.error("Fail to send notification to session: {}", session.getId(), e);
- }
- }
- }
-
- /**
- * 添加websocket session
- * @param session
- */
- public void addSession(Session session) {
- sessions.add(session);
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/modules/area/CapArea.java b/src/main/java/com/iflytop/gd/infrastructure/modules/area/CapArea.java
deleted file mode 100644
index e8062c8..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/modules/area/CapArea.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.iflytop.gd.infrastructure.modules.area;
-
-import org.springframework.stereotype.Component;
-
-/**
- * 拍子存放区
- */
-@Component
-public class CapArea {
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/modules/area/ColdTrapArea.java b/src/main/java/com/iflytop/gd/infrastructure/modules/area/ColdTrapArea.java
deleted file mode 100644
index b0b23ca..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/modules/area/ColdTrapArea.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.iflytop.gd.infrastructure.modules.area;
-
-import org.springframework.stereotype.Component;
-
-/**
- * 冷阱
- */
-@Component
-public class ColdTrapArea {
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/modules/area/DoorArea.java b/src/main/java/com/iflytop/gd/infrastructure/modules/area/DoorArea.java
deleted file mode 100644
index 0d0c12c..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/modules/area/DoorArea.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.iflytop.gd.infrastructure.modules.area;
-
-import org.springframework.stereotype.Component;
-
-/**
- * 门
- */
-@Component
-public class DoorArea {
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/modules/area/HeatArea.java b/src/main/java/com/iflytop/gd/infrastructure/modules/area/HeatArea.java
deleted file mode 100644
index 030a2af..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/modules/area/HeatArea.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.iflytop.gd.infrastructure.modules.area;
-
-import com.iflytop.gd.common.enums.HeatModuleId;
-import com.iflytop.gd.infrastructure.modules.model.bo.HeatModule;
-import com.iflytop.gd.system.devices.StepMotor;
-import jakarta.annotation.PostConstruct;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * 加热区
- */
-@Component
-public class HeatArea {
- /**
- * 加热模块
- */
- private final List heatModuleList = Collections.synchronizedList(new ArrayList<>());
-
- @PostConstruct
- private void init(){
- for (HeatModuleId moduleId : HeatModuleId.values()) {
- HeatModule heatModule = new HeatModule();
- heatModule.setHeatId(moduleId);
-// heatModule.setLiftMotor();
-
-
- heatModuleList.add(heatModule);
- System.out.println("模块枚举名: " + moduleId.name()
- + ",模块 ID: " + moduleId.getId());
- }
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/modules/area/LiquidArea.java b/src/main/java/com/iflytop/gd/infrastructure/modules/area/LiquidArea.java
deleted file mode 100644
index 622461a..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/modules/area/LiquidArea.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.iflytop.gd.infrastructure.modules.area;
-
-import org.springframework.stereotype.Component;
-
-/**
- * 加液区
- */
-@Component
-public class LiquidArea {
-
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/modules/area/RailArmArea.java b/src/main/java/com/iflytop/gd/infrastructure/modules/area/RailArmArea.java
deleted file mode 100644
index 108ece3..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/modules/area/RailArmArea.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.iflytop.gd.infrastructure.modules.area;
-
-import org.springframework.stereotype.Component;
-
-/**
- * 导轨机械臂
- */
-@Component
-public class RailArmArea {
-
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/modules/model/bo/HeatModule.java b/src/main/java/com/iflytop/gd/infrastructure/modules/model/bo/HeatModule.java
deleted file mode 100644
index 23d7ea4..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/modules/model/bo/HeatModule.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.iflytop.gd.infrastructure.modules.model.bo;
-
-import com.iflytop.gd.common.enums.HeatModuleId;
-import com.iflytop.gd.common.enums.TrayLiftStatus;
-import com.iflytop.gd.system.devices.StepMotor;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.time.Duration;
-import java.time.LocalDateTime;
-
-/**
- * 加热区的加热模块
- */
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@Builder
-public class HeatModule {
- /**
- * 加热区ID
- */
- private HeatModuleId heatId;
-
- /**
- * 升降电机
- */
- private StepMotor liftMotor;
-
- /**
- * 当前升降状态:抬起(RAISED) 或 降下(LOWERED)
- */
- private TrayLiftStatus liftStatus = TrayLiftStatus.DOWN;
-
- /**
- * 是否正在加热
- */
- private boolean heating = false;
-
- /**
- * 目标温度,单位:摄氏度
- */
- private double targetTemperature = 0;
-
- /**
- * 开始加热时间
- */
- private LocalDateTime startHeatingTime;
-
- /**
- * 加热持续时间
- */
- private Duration heatingDuration;
-
- /**
- * 是否存在托盘
- */
- private boolean hasTray = false;
-
- /**
- * 是否存在拍子
- */
- private boolean hasCap = false;
-
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/repository/DeviceStrategyFactory.java b/src/main/java/com/iflytop/gd/infrastructure/repository/DeviceStrategyFactory.java
deleted file mode 100644
index 4b5c59b..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/repository/DeviceStrategyFactory.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.iflytop.gd.infrastructure.repository;
-
-import com.iflytop.gd.system.drivers.CommandBus;
-import lombok.RequiredArgsConstructor;
-import org.springframework.context.ApplicationContext;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-@Component
-@RequiredArgsConstructor
-public class DeviceStrategyFactory {
- private final ApplicationContext ctx;
- private final CommandBus commandBus;
-
- /**
- * @param type 接口 Class 对象,如 ColdTray.class
- * @param beanName 在 @Component 中定义的名称,如 "coldTrayA"
- */
- public T getStrategy(Class type, String beanName) {
- Map beans = ctx.getBeansOfType(type);
- T strategy = beans.get(beanName);
- if (strategy == null) {
- throw new IllegalArgumentException("No bean named '" + beanName + "' for type " + type.getSimpleName());
- }
- return strategy;
- }
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/repository/base/BaseEntity.java b/src/main/java/com/iflytop/gd/infrastructure/repository/base/BaseEntity.java
deleted file mode 100644
index 1e73461..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/repository/base/BaseEntity.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.iflytop.gd.infrastructure.repository.base;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import lombok.Data;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.time.LocalDateTime;
-
-/**
- * 基础实体类
- * 实体类的基类,包含了实体类的公共属性,如创建时间、更新时间、逻辑删除标识等
- */
-@Data
-public class BaseEntity implements Serializable {
-
- @Serial
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键ID
- */
- @TableId(type = IdType.AUTO)
- private Long id;
-
- /**
- * 创建时间
- */
- @TableField(fill = FieldFill.INSERT)
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private LocalDateTime createTime;
-
- /**
- * 更新时间
- */
- @TableField(fill = FieldFill.INSERT_UPDATE)
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private LocalDateTime updateTime;
-
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/repository/base/BasePageQuery.java b/src/main/java/com/iflytop/gd/infrastructure/repository/base/BasePageQuery.java
deleted file mode 100644
index 0661b0e..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/repository/base/BasePageQuery.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.iflytop.gd.infrastructure.repository.base;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.io.Serial;
-import java.io.Serializable;
-
-/**
- * 基础分页请求对象
- */
-@Data
-@Schema
-public class BasePageQuery implements Serializable {
-
- @Serial
- private static final long serialVersionUID = 1L;
-
- @Schema(description = "页码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
- private int pageNum = 1;
-
- @Schema(description = "每页记录数", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
- private int pageSize = 10;
-
-
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/repository/base/IBaseEnum.java b/src/main/java/com/iflytop/gd/infrastructure/repository/base/IBaseEnum.java
deleted file mode 100644
index 3da4bad..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/repository/base/IBaseEnum.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.iflytop.gd.infrastructure.repository.base;
-
-
-import cn.hutool.core.util.ObjectUtil;
-
-import java.util.EnumSet;
-import java.util.Objects;
-
-/**
- * 枚举通用接口
- */
-public interface IBaseEnum {
-
- /**
- * 根据值获取枚举
- *
- * @param value
- * @param clazz
- * @param 枚举
- * @return
- */
- static & IBaseEnum> E getEnumByValue(Object value, Class clazz) {
- Objects.requireNonNull(value);
- EnumSet allEnums = EnumSet.allOf(clazz); // 获取类型下的所有枚举
- E matchEnum = allEnums.stream()
- .filter(e -> ObjectUtil.equal(e.getValue(), value))
- .findFirst()
- .orElse(null);
- return matchEnum;
- }
-
- /**
- * 根据文本标签获取值
- *
- * @param value
- * @param clazz
- * @param
- * @return
- */
- static & IBaseEnum> String getLabelByValue(Object value, Class clazz) {
- Objects.requireNonNull(value);
- EnumSet allEnums = EnumSet.allOf(clazz); // 获取类型下的所有枚举
- E matchEnum = allEnums.stream()
- .filter(e -> ObjectUtil.equal(e.getValue(), value))
- .findFirst()
- .orElse(null);
-
- String label = null;
- if (matchEnum != null) {
- label = matchEnum.getLabel();
- }
- return label;
- }
-
- /**
- * 根据文本标签获取值
- *
- * @param label
- * @param clazz
- * @param
- * @return
- */
- static & IBaseEnum> Object getValueByLabel(String label, Class clazz) {
- Objects.requireNonNull(label);
- EnumSet allEnums = EnumSet.allOf(clazz); // 获取类型下的所有枚举
- String finalLabel = label;
- E matchEnum = allEnums.stream()
- .filter(e -> ObjectUtil.equal(e.getLabel(), finalLabel))
- .findFirst()
- .orElse(null);
-
- Object value = null;
- if (matchEnum != null) {
- value = matchEnum.getValue();
- }
- return value;
- }
-
- T getValue();
-
- String getLabel();
-
-
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/repository/entity/User.java b/src/main/java/com/iflytop/gd/infrastructure/repository/entity/User.java
deleted file mode 100644
index 49db9cc..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/repository/entity/User.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.iflytop.gd.infrastructure.repository.entity;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.iflytop.gd.infrastructure.repository.base.BaseEntity;
-import com.iflytop.gd.common.enums.Deleted;
-import com.iflytop.gd.common.enums.FixedUser;
-import com.iflytop.gd.common.enums.UsrRole;
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 用户实体
- */
-@EqualsAndHashCode(callSuper = true)
-@Schema(description = "用户")
-@TableName("user")
-@Data
-public class User extends BaseEntity {
-
- @NotNull
- @Schema(description = "用户名")
- private String username;
-
- @NotNull
- @Schema(description = "昵称")
- private String nickname;
-
- @NotNull
- @Schema(description = "密码")
- private String password;
-
- @NotNull
- @Schema(description = "人员角色")
- private UsrRole role;
-
- @NotNull
- @Schema(description = "是否删除(0-否 1-是)")
- private Deleted deleted;
-
- @Schema(description = "是否是系统固定用户")
- private FixedUser fixedUser;
-
-}
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/infrastructure/repository/mapper/UserMapper.java b/src/main/java/com/iflytop/gd/infrastructure/repository/mapper/UserMapper.java
deleted file mode 100644
index 718a3e4..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/repository/mapper/UserMapper.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.iflytop.gd.infrastructure.repository.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.iflytop.gd.infrastructure.repository.entity.User;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 用户持久层接口
- */
-@Mapper
-public interface UserMapper extends BaseMapper {
-
-}
diff --git a/src/main/java/com/iflytop/gd/infrastructure/repository/service/UserService.java b/src/main/java/com/iflytop/gd/infrastructure/repository/service/UserService.java
deleted file mode 100644
index 0682ed5..0000000
--- a/src/main/java/com/iflytop/gd/infrastructure/repository/service/UserService.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.iflytop.gd.infrastructure.repository.service;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.iflytop.gd.common.enums.FixedUser;
-import com.iflytop.gd.infrastructure.repository.mapper.UserMapper;
-import com.iflytop.gd.infrastructure.repository.entity.User;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import lombok.Setter;
-import org.springframework.stereotype.Service;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * 用户业务实现类
- */
-@Service
-@RequiredArgsConstructor
-public class UserService extends ServiceImpl {
- @Getter
- @Setter
- private User currentUser;
-
- public boolean deleteUser(String idsStr) {
- List ids = Arrays.stream(idsStr.split(","))
- .map(Long::parseLong)
- .toList();
- for (Long id : ids) {
- User user = this.getById(id);
- if (user != null && user.getFixedUser() != FixedUser.ENABLE) {
- return this.removeById(id);
- }
- }
- return true;
- }
-
- public void clearCurrentUser() {
- currentUser = null;
- }
-}
diff --git a/src/main/java/com/iflytop/gd/system/constants/Dim.java b/src/main/java/com/iflytop/gd/system/constants/Dim.java
deleted file mode 100644
index 14de525..0000000
--- a/src/main/java/com/iflytop/gd/system/constants/Dim.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.iflytop.gd.system.constants;
-
-public enum Dim {
- X, Y, Z
-}
diff --git a/src/main/java/com/iflytop/gd/system/constants/DistanceUnit.java b/src/main/java/com/iflytop/gd/system/constants/DistanceUnit.java
deleted file mode 100644
index f119210..0000000
--- a/src/main/java/com/iflytop/gd/system/constants/DistanceUnit.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.iflytop.gd.system.constants;
-
-public enum DistanceUnit {
- MM, CM;
-
- public Integer toMM(Integer value) {
- if (this == MM) {
- return value;
- }
-
- if (this == CM) {
- return value * 10;
- }
-
- return value;
- }
-
-
- public static DistanceUnit toDistanceUnit(String unitString) {
- if ("mm".equals(unitString)) {
- return MM;
- }
-
- if ("cm".equals(unitString)) {
- return CM;
- }
-
- throw new IllegalArgumentException("Unknown distance unit " + unitString);
- }
-}
diff --git a/src/main/java/com/iflytop/gd/system/constants/LiquidFillArmMotorIndex.java b/src/main/java/com/iflytop/gd/system/constants/LiquidFillArmMotorIndex.java
deleted file mode 100644
index 78ba069..0000000
--- a/src/main/java/com/iflytop/gd/system/constants/LiquidFillArmMotorIndex.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.iflytop.gd.system.constants;
-
-public enum LiquidFillArmMotorIndex {
- LargeArm, SmallArm
-}
diff --git a/src/main/java/com/iflytop/gd/system/constants/RotationDirection.java b/src/main/java/com/iflytop/gd/system/constants/RotationDirection.java
deleted file mode 100644
index f980e17..0000000
--- a/src/main/java/com/iflytop/gd/system/constants/RotationDirection.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.iflytop.gd.system.constants;
-
-import lombok.Getter;
-
-/**
- * 电机转动方向
- */
-@Getter
-public enum RotationDirection {
- Forward(1),Backward(-1);
-
- private Integer value;
-
- RotationDirection(Integer value) {
- this.value = value;
- }
-
-}
diff --git a/src/main/java/com/iflytop/gd/system/constants/SystemMode.java b/src/main/java/com/iflytop/gd/system/constants/SystemMode.java
deleted file mode 100644
index c660d67..0000000
--- a/src/main/java/com/iflytop/gd/system/constants/SystemMode.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.iflytop.gd.system.constants;
-
-/**
- * 系统运行模式
- */
-public enum SystemMode {
- VIRTUAL, PHYSICAL
-}
diff --git a/src/main/java/com/iflytop/gd/system/constants/VelocityUnit.java b/src/main/java/com/iflytop/gd/system/constants/VelocityUnit.java
deleted file mode 100644
index f7919a9..0000000
--- a/src/main/java/com/iflytop/gd/system/constants/VelocityUnit.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.iflytop.gd.system.constants;
-
-/**
- * 移动速度单位
- */
-public enum VelocityUnit {
- MM_PER_SEC, CM_PER_SEC;
-
- public Integer toMM_PER_SEC(Integer value) {
- if (this == VelocityUnit.CM_PER_SEC) {
- return value * 10;
- }
- return value;
- }
-
-
- public static VelocityUnit toVelocityUnit(String unitString) {
- if ("mm/s".equals(unitString)) {
- return VelocityUnit.MM_PER_SEC;
- }
-
- if ("cm/s".equals(unitString)) {
- return VelocityUnit.CM_PER_SEC;
- }
-
- throw new IllegalArgumentException("Unrecognized SpeedUnit: " + unitString);
- }
-}
diff --git a/src/main/java/com/iflytop/gd/system/devices/ColdTray.java b/src/main/java/com/iflytop/gd/system/devices/ColdTray.java
deleted file mode 100644
index f3f6540..0000000
--- a/src/main/java/com/iflytop/gd/system/devices/ColdTray.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.iflytop.gd.system.devices;
-
-/**
- * 冷阱
- */
-public interface ColdTray {
-
- /**
- * 设置温度
- * @param temperature
- * @return
- */
- boolean setTemperature(Double temperature);
-
- /**
- * 开启循环
- * @return
- */
- boolean startRecycle();
-
-
- /**
- * 关闭循环
- * @return
- */
- boolean stopRecycle();
-
-
- /**
- * 开启加热
- * @return
- */
- boolean startHeating();
-
-
- /**
- * 关闭加热
- * @return
- */
- boolean stopHeating();
-
- /**
- * 开启制冷
- * @return
- */
- boolean startRefrigeration();
-
-
- /**
- * 关闭制冷
- * @return
- */
- boolean stopRefrigeration();
-}
diff --git a/src/main/java/com/iflytop/gd/system/devices/Door.java b/src/main/java/com/iflytop/gd/system/devices/Door.java
deleted file mode 100644
index aa9b14f..0000000
--- a/src/main/java/com/iflytop/gd/system/devices/Door.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.iflytop.gd.system.devices;
-
-public interface Door {
- /**
- * 开门
- */
- void open();
-
- /**
- * 关门
- */
- void close();
-
- /**
- * 停止
- */
- void stop();
-}
diff --git a/src/main/java/com/iflytop/gd/system/devices/Fan.java b/src/main/java/com/iflytop/gd/system/devices/Fan.java
deleted file mode 100644
index 94abec9..0000000
--- a/src/main/java/com/iflytop/gd/system/devices/Fan.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.iflytop.gd.system.devices;
-
-/**
- * 风扇
- */
-public interface Fan {
-
- /**
- * 开启风扇
- * @return
- */
- boolean open();
-
-
- /**
- * 关闭风扇
- * @return
- */
- boolean close();
-
-}
diff --git a/src/main/java/com/iflytop/gd/system/devices/Heater.java b/src/main/java/com/iflytop/gd/system/devices/Heater.java
deleted file mode 100644
index 3effea7..0000000
--- a/src/main/java/com/iflytop/gd/system/devices/Heater.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.iflytop.gd.system.devices;
-
-/**
- * 加热器
- */
-public interface Heater {
-
- /**
- * 打开
- * @return
- */
- void open();
-
-
- /**
- * 关闭
- * @return
- */
- void close();
-
- /**
- * 获取当前温度
- * @return
- */
- Double getCurrentTemperature();
-
- /**
- * 获取设定的目标温度
- * @return
- */
- Double getTargetTemperature();
-}
diff --git a/src/main/java/com/iflytop/gd/system/devices/HoldingJaw.java b/src/main/java/com/iflytop/gd/system/devices/HoldingJaw.java
deleted file mode 100644
index ef7380a..0000000
--- a/src/main/java/com/iflytop/gd/system/devices/HoldingJaw.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.iflytop.gd.system.devices;
-
-
-/**
- * 夹爪
- */
-public interface HoldingJaw {
-
- /**
- * 打开夹爪
- */
- void open();
-
- /**
- * 关闭夹爪
- */
- void close();
-
- /**
- * 暂停
- */
- void pause();
-
-
- /**
- * 恢复
- */
- void resume();
-
-
- /**
- *
- * @param speed
- */
- void setSpeed(int speed);
-}
diff --git a/src/main/java/com/iflytop/gd/system/devices/LiquidFillingArm.java b/src/main/java/com/iflytop/gd/system/devices/LiquidFillingArm.java
deleted file mode 100644
index 60dd622..0000000
--- a/src/main/java/com/iflytop/gd/system/devices/LiquidFillingArm.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.iflytop.gd.system.devices;
-
-import com.iflytop.gd.system.constants.LiquidFillArmMotorIndex;
-import com.iflytop.gd.system.constants.RotationDirection;
-import com.iflytop.gd.system.constants.VelocityUnit;
-import com.iflytop.gd.system.models.Point3D;
-
-
-/**
- * 加液机械臂
- */
-public interface LiquidFillingArm {
-
- /**
- * 机械臂移动到指定点
- * @param point 点坐标
- * @return 是否移动完成
- */
- void moveTo(Point3D point);
-
- /**
- * 旋转到指定角度
- * @param liquidFillArmMotorIndex 机械臂电机索引
- * @param angle 角度
- * @param direction 旋转方向
- * @return 是否旋转完成
- */
- void rotateTo(LiquidFillArmMotorIndex liquidFillArmMotorIndex, Integer angle, RotationDirection direction);
-
-
- /**
- * 设置旋转速率
- * @param speed 速率值
- * @param speedUnit 速率单位
- * @return 是否设置成功
- */
- void setRotationSpeed(Integer speed, VelocityUnit speedUnit);
-}
diff --git a/src/main/java/com/iflytop/gd/system/devices/Pump.java b/src/main/java/com/iflytop/gd/system/devices/Pump.java
deleted file mode 100644
index 024472c..0000000
--- a/src/main/java/com/iflytop/gd/system/devices/Pump.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.iflytop.gd.system.devices;
-
-/**
- * 泵
- */
-public interface Pump {
-
-}
diff --git a/src/main/java/com/iflytop/gd/system/devices/Relay.java b/src/main/java/com/iflytop/gd/system/devices/Relay.java
deleted file mode 100644
index 455033f..0000000
--- a/src/main/java/com/iflytop/gd/system/devices/Relay.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.iflytop.gd.system.devices;
-
-/**
- * 继电器
- */
-public interface Relay {
- /**
- * 打开继电器
- * @return
- */
- boolean open();
-
-
- /**
- * 闭合继电器
- * @return
- */
- boolean close();
-}
diff --git a/src/main/java/com/iflytop/gd/system/devices/ServoMotor.java b/src/main/java/com/iflytop/gd/system/devices/ServoMotor.java
deleted file mode 100644
index 1915a16..0000000
--- a/src/main/java/com/iflytop/gd/system/devices/ServoMotor.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package com.iflytop.gd.system.devices;
-
-
-import com.iflytop.gd.infrastructure.drivers.RegIndex;
-
-/**
- * 伺服电机
- */
-public interface ServoMotor {
-
- /**
- * 使能
- */
- void enable();
-
- /**
- * 失能
- */
- void disable();
-
- /**
- * 停止
- */
- void stop();
-
-
- /**
- * 获取当前位置
- * @return
- */
- Integer getCurrentPosition();
-
-
- /**
- * 移动到零点
- */
- void moveToZero();
-
-
- /**
- * 移动到指定位置
- * @param position
- */
- void moveTo(Integer position);
-
- /****************寄存器配置开始*****************/
-
- /**
- * 设置最大速度
- * @param maxVelocity
- */
- void setMaxVelocity(Integer maxVelocity);
-
- /**
- * 设置最大力矩
- * @param maxTorque
- */
- void setMaxTorque(Integer maxTorque);
-
- /**
- * 设置保护力矩
- * @param protectiveTorque
- */
- void setProtectiveTorque(Integer protectiveTorque);
-
-
- /**
- * 读取寄存器值
- * @param regIndex
- * @return
- */
- Integer readReg(RegIndex regIndex);
-
-
- /**
- * 设置寄存器
- * @param regIndex
- * @param value
- */
- void writeReg(RegIndex regIndex, Integer value);
- /****************寄存器配置结束*****************/
-}
diff --git a/src/main/java/com/iflytop/gd/system/devices/StepMotor.java b/src/main/java/com/iflytop/gd/system/devices/StepMotor.java
deleted file mode 100644
index c1e68ad..0000000
--- a/src/main/java/com/iflytop/gd/system/devices/StepMotor.java
+++ /dev/null
@@ -1,261 +0,0 @@
-package com.iflytop.gd.system.devices;
-
-import com.iflytop.gd.infrastructure.drivers.RegIndex;
-import com.iflytop.gd.system.constants.DistanceUnit;
-import com.iflytop.gd.system.constants.RotationDirection;
-import com.iflytop.gd.system.exceptions.CommandExecTimeoutException;
-import com.iflytop.gd.system.exceptions.HardwareErrorException;
-
-import java.io.IOException;
-import java.util.Map;
-
-/**
- * 电机驱动类型设备
- */
-public interface StepMotor {
-
- /**
- * 相对距离移动
- * @param value
- * @param unit
- */
- void easyMoveBy(Integer value, DistanceUnit unit) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
-
- /**
- * 绝对距离移动
- * @param value
- * @param unit
- * @throws HardwareErrorException
- * @throws CommandExecTimeoutException
- * @throws IOException
- * @throws InterruptedException
- */
- void easyMoveTo(Integer value, DistanceUnit unit) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
- /**
- * 归零
- * @throws HardwareErrorException
- * @throws CommandExecTimeoutException
- * @throws IOException
- * @throws InterruptedException
- */
- void easyMoveToZero() throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
- /**
- * 快速归零
- */
- void easyMoveToZeroPointQuick();
-
- /**
- * 使能电机
- */
- void enable();
-
- /**
- * 失能电机
- */
- void disable();
-
-
- /**
- * 正向移动
- * @param direction
- * @param distance
- * @param unit
- * @throws HardwareErrorException
- * @throws CommandExecTimeoutException
- * @throws IOException
- * @throws InterruptedException
- */
- void moveForward(RotationDirection direction, Integer distance, DistanceUnit unit)
- throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
- /**
- * 反向移动
- * @param direction
- * @param distance
- * @param unit
- * @throws HardwareErrorException
- * @throws CommandExecTimeoutException
- * @throws IOException
- * @throws InterruptedException
- */
- void moveBackward(RotationDirection direction, Integer distance, DistanceUnit unit)
- throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
- /**
- * 停止电机
- */
- void stop() throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
- /**
- * 正向旋转
- */
- void rotateForward();
-
- /**
- * 反向旋转
- */
- void rotateBackward();
-
- /**
- * 读取IO状态
- *
- * @return
- */
- Map readIOState();
-
-
- /**
- * 读取当前位置
- * @return
- */
- Integer readPosition();
-
- /**
- * 读取编码器位置
- * @return
- */
- Integer readEncoderPosition();
-
-
- /*************************寄存器相关开始*******************/
-
- /**
- * 设置模块寄存器值
- * @param regIndex
- * @param value
- * @throws HardwareErrorException
- * @throws CommandExecTimeoutException
- * @throws IOException
- * @throws InterruptedException
- */
- void setReg(RegIndex regIndex, Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
-
- /**
- * 读取模块寄存器值
- * @param regIndex
- * @return
- * @throws HardwareErrorException
- * @throws CommandExecTimeoutException
- * @throws IOException
- * @throws InterruptedException
- */
- Integer readReg(RegIndex regIndex) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
- /**
- * 设置细分
- */
- void setMRes(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
-
- /**
- * 设置电机电流
- * @param value
- * @throws HardwareErrorException
- * @throws CommandExecTimeoutException
- * @throws IOException
- * @throws InterruptedException
- */
- void setIRun(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
-
- /**
- * 设置电机电流
- * @param value
- * @throws HardwareErrorException
- * @throws CommandExecTimeoutException
- * @throws IOException
- * @throws InterruptedException
- */
- void setIHold(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
- /**
- * 设置启动速度
- * @param value
- * @throws HardwareErrorException
- * @throws CommandExecTimeoutException
- * @throws IOException
- * @throws InterruptedException
- */
- void setStartAndStopVelocity(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
- /**
- * 设置V1
- * @param value
- * @throws HardwareErrorException
- * @throws CommandExecTimeoutException
- * @throws IOException
- * @throws InterruptedException
- */
- void setV1(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
- /**
- * 设置加速度
- * @param value
- * @throws HardwareErrorException
- * @throws CommandExecTimeoutException
- * @throws IOException
- * @throws InterruptedException
- */
- void setA1AndD1(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
-
- /**
- * 设置最大加速度
- * @param value
- * @throws HardwareErrorException
- * @throws CommandExecTimeoutException
- * @throws IOException
- * @throws InterruptedException
- */
- void setAmaxAndDmax(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
-
-
- /**
- * 设置默认速度值
- * @throws HardwareErrorException
- * @throws CommandExecTimeoutException
- * @throws IOException
- * @throws InterruptedException
- */
- void setDefaultVelocity(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
- /**
- * 设置速度
- * @param low
- * @param mid
- * @param high
- * @throws HardwareErrorException
- * @throws CommandExecTimeoutException
- * @throws IOException
- * @throws InterruptedException
- */
- void setVelocity(Integer low, Integer mid, Integer high) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
-
- /**
- * 设置转动一圈脉冲数
- * @throws HardwareErrorException
- * @throws CommandExecTimeoutException
- * @throws IOException
- * @throws InterruptedException
- */
- void setOneCyclePulse(Integer pause, Integer denominator) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
- /**
- * 设置DZero
- * @param value
- * @throws HardwareErrorException
- * @throws CommandExecTimeoutException
- * @throws IOException
- * @throws InterruptedException
- */
- void setDZero(Integer value) throws HardwareErrorException, CommandExecTimeoutException, IOException, InterruptedException;
-
-
- /*************************寄存器相关结束*******************/
-}
diff --git a/src/main/java/com/iflytop/gd/system/devices/SwitchSensor.java b/src/main/java/com/iflytop/gd/system/devices/SwitchSensor.java
deleted file mode 100644
index 702ee25..0000000
--- a/src/main/java/com/iflytop/gd/system/devices/SwitchSensor.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.iflytop.gd.system.devices;
-
-public interface SwitchSensor {
- boolean isOpen();
-}
diff --git a/src/main/java/com/iflytop/gd/system/devices/TransportationArm.java b/src/main/java/com/iflytop/gd/system/devices/TransportationArm.java
deleted file mode 100644
index 45c0c45..0000000
--- a/src/main/java/com/iflytop/gd/system/devices/TransportationArm.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package com.iflytop.gd.system.devices;
-
-import com.iflytop.gd.system.constants.Dim;
-import com.iflytop.gd.system.constants.DistanceUnit;
-import com.iflytop.gd.system.constants.VelocityUnit;
-
-public interface TransportationArm {
-
- /**
- * 机械臂XYZ三个维度移动指定距离
- * @param dim 维度
- * @param distance 距离值
- * @param unit 距离单位
- * @return 是否移动完成
- */
- void moveTo(Dim dim, Integer distance, DistanceUnit unit);
-
- /**
- * 移动到指定点
- * @param unit 距离单位
- * @return 是否移动完成
- */
- void relativelyMove(Dim dim, Integer distance, DistanceUnit unit);
-
- /**
- * 独立停止XYZ三个维度移动
- * @param dim 维度
- * @return 是否执行完成
- */
- void stop(Dim dim);
-
- /**
- * 独立设置XYZ三个轴移动速率
- * @param dim 维度
- * @param speed 速率
- * @param unit 速率单位
- * @return 是否设置完成
- */
- void setSpeed(Dim dim, Integer speed, VelocityUnit unit);
-}
diff --git a/src/main/java/com/iflytop/gd/system/drivers/CommandBus.java b/src/main/java/com/iflytop/gd/system/drivers/CommandBus.java
deleted file mode 100644
index 19944e9..0000000
--- a/src/main/java/com/iflytop/gd/system/drivers/CommandBus.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.system.drivers;
-
-import com.iflytop.gd.common.exception.AppException;
-import com.iflytop.gd.system.exceptions.CommandExecTimeoutException;
-import com.iflytop.gd.system.exceptions.HardwareErrorException;
-import com.iflytop.gd.system.models.DataPacket;
-
-import java.io.IOException;
-import java.util.concurrent.TimeUnit;
-
-public interface CommandBus {
-
- /**
- * 发送命令数据包并等待响应
- * @param commandPacket 命令数据包
- * @param timeout 等待超时事件
- * @param unit 超时时间单位
- * @return 响应数据包
- * @throws Exception
- */
- DataPacket waitForCommandExec(DataPacket commandPacket, Integer timeout, TimeUnit unit)
- throws CommandExecTimeoutException, HardwareErrorException, IOException, InterruptedException;
-}
diff --git a/src/main/java/com/iflytop/gd/system/exceptions/CommandExecTimeoutException.java b/src/main/java/com/iflytop/gd/system/exceptions/CommandExecTimeoutException.java
deleted file mode 100644
index 8926964..0000000
--- a/src/main/java/com/iflytop/gd/system/exceptions/CommandExecTimeoutException.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.iflytop.gd.system.exceptions;
-
-public class CommandExecTimeoutException extends Exception{
- public CommandExecTimeoutException() {
- }
-
- public CommandExecTimeoutException(String message) {
- super(message);
- }
-
- public CommandExecTimeoutException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public CommandExecTimeoutException(Throwable cause) {
- super(cause);
- }
-
- public CommandExecTimeoutException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
- super(message, cause, enableSuppression, writableStackTrace);
- }
-}
diff --git a/src/main/java/com/iflytop/gd/system/exceptions/HardwareErrorException.java b/src/main/java/com/iflytop/gd/system/exceptions/HardwareErrorException.java
deleted file mode 100644
index ddbe843..0000000
--- a/src/main/java/com/iflytop/gd/system/exceptions/HardwareErrorException.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.iflytop.gd.system.exceptions;
-
-public class HardwareErrorException extends Exception{
- public HardwareErrorException() {
- }
-
- public HardwareErrorException(String message) {
- super(message);
- }
-
- public HardwareErrorException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public HardwareErrorException(Throwable cause) {
- super(cause);
- }
-
- public HardwareErrorException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
- super(message, cause, enableSuppression, writableStackTrace);
- }
-}
diff --git a/src/main/java/com/iflytop/gd/system/models/DataPacket.java b/src/main/java/com/iflytop/gd/system/models/DataPacket.java
deleted file mode 100644
index 90a0c3e..0000000
--- a/src/main/java/com/iflytop/gd/system/models/DataPacket.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package com.iflytop.gd.system.models;
-
-import com.iflytop.gd.system.utils.ByteArray;
-
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-public class DataPacket {
- public static final int PACKET_TYPE_OFFSET = 0;
- public static final int CMDID_OFFSET = 1;
- public static final int MODULE_ID_OFFSET = 3;
- public static final int INDEX_OFFSET = 4;
- public static final int DATA_LEN_OFFSET = 6;
- public static final int DATA_OFFSET = 7;
-
- public static final int PACKET_MIN_LEN = 8;//
-
- public static final int CMD_OVERTIME = 1500;
-
-
- public static final int PACKET_TYPE_CMD = 0xA0;
- public static final int PACKET_TYPE_ACK = 0xA1;
- public static final int PACKET_TYPE_ERROR_ACK = 0xA2;
- public static final int PACKET_TYPE_EVENT = 0xA3;
-
- byte[] raw;
-
- public DataPacket(byte[] cmd) {
- raw = new byte[cmd.length];
- System.arraycopy(cmd, 0, raw, 0, cmd.length);
- }
-
- public String toByteString() {
- return ByteArray.toByteString(raw);
- }
-
- static private DataPacket createPacket(Integer moduleId, int packetType, Integer cmdId, Integer[] params) {
- int bufferSize = DataPacket.PACKET_MIN_LEN + 4 * params.length;
- ByteBuffer buffer = ByteBuffer.allocate(bufferSize);
- buffer.order(ByteOrder.LITTLE_ENDIAN);
- buffer.put((byte) (packetType & 0xff)); // packetType
- buffer.putShort((short) (cmdId & 0xffff)); // cmdid
- buffer.put((byte) (moduleId & 0xFF)); // moduleId
- buffer.put((byte) 0x4C); // index
- buffer.put((byte) 0x00); // index
- buffer.put((byte) (params.length * 4)); // datalen
- for (int value : params) {
- buffer.putInt(value);
- }
- // int8_t checksum;
- int checksum = 0;
- for (int i = 0; i < bufferSize - 1; i++) {
- checksum += buffer.get(i);
- }
- buffer.put((byte) checksum);
- return new DataPacket(buffer.array());
- }
-
-
- public static DataPacket createCommandDataPacket(Integer moduleId, Integer cmdId, Integer... params) {
- return createPacket(moduleId, PACKET_TYPE_CMD, cmdId, params);
- }
-
- public static DataPacket createAckPacket(Integer moduleId, Integer cmdId, Integer... params) {
- return createPacket(moduleId, PACKET_TYPE_ACK, cmdId, params);
- }
-
- public static DataPacket createErrorAckPacket(Integer moduleId, Integer cmdId, Integer... params) {
- return createPacket(moduleId, PACKET_TYPE_ERROR_ACK, cmdId, params);
- }
-
- public int getPacketIndex() {
- return ByteArray.readU16bit(raw, INDEX_OFFSET);
- }
-
- public void setPacketIndex(int packetIndex) {
- ByteArray.setU16bit(raw, INDEX_OFFSET, packetIndex);
- int checkSum = computeCheckSum();
- ByteArray.setU8(raw, raw.length - 1, checkSum);
- }
-
- public int computeCheckSum() {
- int checkcode = 0;
- for (int i = 0; i < raw.length - 1; i++) {
- checkcode += raw[i];
- }
- return checkcode & 0xFF;
- }
-
- public int getCmdId() {
- return ByteArray.readU16bit(raw, CMDID_OFFSET);
- }
-
- public int getPacketType() {
- return ByteArray.readU8bit(raw, PACKET_TYPE_OFFSET);
- }
-
- public int getModuleId() {
- return ByteArray.readU8bit(raw, MODULE_ID_OFFSET);
- }
-
- public int getDataLen() {
- return ByteArray.readU8bit(raw, DATA_LEN_OFFSET);
- }
-
- public int getContentI32(int index) {
- return ByteArray.read32bit(raw, DATA_OFFSET + index * 4);
- }
-}
diff --git a/src/main/java/com/iflytop/gd/system/models/HeaterStatus.java b/src/main/java/com/iflytop/gd/system/models/HeaterStatus.java
deleted file mode 100644
index 42c1fda..0000000
--- a/src/main/java/com/iflytop/gd/system/models/HeaterStatus.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.iflytop.gd.system.models;
-
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class HeaterStatus {
- private Double targetTemperature = 0.0; // 目标温度
- private Double currentTemperature = 0.0; // 当前温度
- private boolean isOpen;
-}
diff --git a/src/main/java/com/iflytop/gd/system/models/Point3D.java b/src/main/java/com/iflytop/gd/system/models/Point3D.java
deleted file mode 100644
index 0cb6470..0000000
--- a/src/main/java/com/iflytop/gd/system/models/Point3D.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.iflytop.gd.system.models;
-
-
-import lombok.Getter;
-
-@Getter
-public class Point3D {
- private final Integer x;
- private final Integer y;
- private final Integer z;
-
- public Point3D(Integer x, Integer y, Integer z) {
- this.x = x;
- this.y = y;
- this.z = z;
- }
-
- public Point3D(Integer x, Integer y) {
- this.x = x;
- this.y = y;
- this.z = 0;
- }
-}
diff --git a/src/main/java/com/iflytop/gd/system/models/ServoMotorStatus.java b/src/main/java/com/iflytop/gd/system/models/ServoMotorStatus.java
deleted file mode 100644
index 2e63103..0000000
--- a/src/main/java/com/iflytop/gd/system/models/ServoMotorStatus.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.iflytop.gd.system.models;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class ServoMotorStatus {
- private boolean stopped = false;
- private boolean isEnabled = false;
- private Integer currentPosition;
-}
diff --git a/src/main/java/com/iflytop/gd/system/models/StepMotorStatus.java b/src/main/java/com/iflytop/gd/system/models/StepMotorStatus.java
deleted file mode 100644
index e1648c2..0000000
--- a/src/main/java/com/iflytop/gd/system/models/StepMotorStatus.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.iflytop.gd.system.models;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class StepMotorStatus {
- private boolean stopped = false;
- private boolean isEnabled = false;
- private Integer currentSpeed;
- private Integer currentPosition;
- private Integer encoderPosition;
- private boolean isZeroPosition = true;
- private boolean isLimitPosition = false;
-}
diff --git a/src/main/java/com/iflytop/gd/system/modules/NotificationPushMgr.java b/src/main/java/com/iflytop/gd/system/modules/NotificationPushMgr.java
deleted file mode 100644
index 0b38bac..0000000
--- a/src/main/java/com/iflytop/gd/system/modules/NotificationPushMgr.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.iflytop.gd.system.modules;
-
-import com.iflytop.gd.common.notification.Notification;
-
-/**
- * 通知管理器
- */
-public interface NotificationPushMgr {
-
- /**
- * 向前端推送通知
- * @param notification 通知实例
- */
- void pushNotification(Notification notification);
-}
diff --git a/src/main/java/com/iflytop/gd/system/package-info.java b/src/main/java/com/iflytop/gd/system/package-info.java
deleted file mode 100644
index 98c4126..0000000
--- a/src/main/java/com/iflytop/gd/system/package-info.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.iflytop.gd.system;
-
-
-/**
- * 系统层用由设备、模块组成
- */
\ No newline at end of file
diff --git a/src/main/java/com/iflytop/gd/system/utils/ByteArray.java b/src/main/java/com/iflytop/gd/system/utils/ByteArray.java
deleted file mode 100644
index bb981b5..0000000
--- a/src/main/java/com/iflytop/gd/system/utils/ByteArray.java
+++ /dev/null
@@ -1,125 +0,0 @@
-// Source code is decompiled from a .class file using FernFlower decompiler.
-package com.iflytop.gd.system.utils;
-
-import org.springframework.lang.NonNull;
-
-public class ByteArray {
- public ByteArray() {
- }
-
- public static int readU8bit(byte[] code, int index) {
- if (index >= code.length)
- return 0;
- return code[index] & 255;
- }
-
- public static int readS8bit(byte[] code, int index) {
- if (index >= code.length)
- return 0;
-
- return code[index];
- }
-
- public static int readU16bit(byte[] code, int index) {
- if (index + 1 >= code.length)
- return 0;
- return (code[index + 1] & 255) << 8 | code[index] & 255;
- }
-
- public static void setU16bit(byte[] code, int index, int value) {
- code[index + 1] = (byte) (value >> 8);
- code[index] = (byte) value;
- }
-
- public static void setU8(byte[] code, int off, int value) {
- code[off] = (byte) value;
- }
-
- public static int readS16bit(byte[] code, int index) {
- if (index + 1 >= code.length)
- return 0;
-
- return code[index + 1] << 8 | code[index] & 255;
- }
-
- public static int read32bit(byte[] code, int index) {
- if (index + 3 >= code.length)
- return 0;
- return code[index + 3] << 24 | (code[index + 2] & 255) << 16 | (code[index + 1] & 255) << 8 | code[index] & 255;
- }
-
- public static Integer[] read32bitArray(byte[] code) {
- int count = code.length / 4;
- Integer[] array = new Integer[count];
- for (int i = 0; i < count; i++) {
- array[i] = read32bit(code, i * 4);
- }
- return array;
- }
-
- public static Integer[] read16bitArray(byte[] code) {
- int count = code.length / 2;
- Integer[] array = new Integer[count];
- for (int i = 0; i < count; i++) {
- array[i] = readS16bit(code, i * 2);
- }
- return array;
- }
-
- public static Integer[] readU16bitArray(byte[] code) {
- int count = code.length / 2;
- Integer[] array = new Integer[count];
- for (int i = 0; i < count; i++) {
- array[i] = readU16bit(code, i * 2);
- }
- return array;
- }
-
-
- public static String toByteString(byte[] arrary) {
- StringBuilder sb = new StringBuilder();
- for (byte b : arrary) {
- sb.append(String.format("%02X", b));
- }
- return sb.toString();
- }
-
- public static byte[] hexStringToBytes(@NonNull String str) {
- if (str.isEmpty()) {
- return new byte[0];
- } else {
- byte[] byteArray = new byte[str.length() / 2];
- for (int i = 0; i < byteArray.length; i++) {
- int high = Character.digit(str.charAt(i * 2), 16);
- int low = Character.digit(str.charAt(i * 2 + 1), 16);
- if (high == -1 || low == -1) {
- return null;
- }
- byteArray[i] = (byte) (high * 16 + low);
- }
- return byteArray;
- }
- }
-
-
- public static byte[] concat(byte[]... arrays) {
- int length = 0;
- for (byte[] array : arrays) {
- length += array.length;
- }
-
- byte[] result = new byte[length];
- int destPos = 0;
- for (byte[] array : arrays) {
- System.arraycopy(array, 0, result, destPos, array.length);
- destPos += array.length;
- }
-
- return result;
- }
-
- // public static void main(String[] args) {
- // byte[] bytes = new byte[]{0x01, 0x02, 0x03, 0x04};
- // System.out.println(toByteString(bytes));
- // }
-}
diff --git a/src/test/java/com/iflytop/gd/infrastructure/drivers/WebSocketCommandBusImplTest.java b/src/test/java/com/iflytop/gd/infrastructure/drivers/WebSocketCommandBusImplTest.java
index 36c2f3c..5f50a49 100644
--- a/src/test/java/com/iflytop/gd/infrastructure/drivers/WebSocketCommandBusImplTest.java
+++ b/src/test/java/com/iflytop/gd/infrastructure/drivers/WebSocketCommandBusImplTest.java
@@ -1,19 +1,17 @@
package com.iflytop.gd.infrastructure.drivers;
-import com.iflytop.gd.system.drivers.CommandBus;
-import com.iflytop.gd.system.exceptions.CommandExecTimeoutException;
-import com.iflytop.gd.system.exceptions.HardwareErrorException;
-import com.iflytop.gd.system.models.DataPacket;
+import com.iflytop.gd.hardware.drivers.CmdId;
+import com.iflytop.gd.hardware.drivers.ModuleId;
+import com.iflytop.gd.hardware.drivers.WebSocketCommandBusImpl;
+import com.iflytop.gd.common.exception.CommandExecTimeoutException;
+import com.iflytop.gd.common.exception.HardwareErrorException;
+import com.iflytop.gd.hardware.model.DataPacket;
import jakarta.websocket.DeploymentException;
import org.junit.jupiter.api.Test;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
import java.util.concurrent.TimeUnit;
-import static org.junit.jupiter.api.Assertions.*;
-
class WebSocketCommandBusImplTest {
@Test