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