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 index 2ca199c..01d571a 100644 --- a/src/main/java/com/iflytop/gd/debug/services/cmds/DoorCloseCommandHandler.java +++ b/src/main/java/com/iflytop/gd/debug/services/cmds/DoorCloseCommandHandler.java @@ -4,6 +4,7 @@ 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.infrastructure.devices.MotorDrivenDoor; +import com.iflytop.gd.system.devices.Door; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -16,7 +17,7 @@ import org.springframework.stereotype.Component; @RequiredArgsConstructor @CommandMapping("debug_door_close") public class DoorCloseCommandHandler implements CommandHandler { - private final MotorDrivenDoor door; + private final Door door; @Override public void handle(CmdDTO cmdDTO) { this.door.close(); diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/VirtualDoor.java b/src/main/java/com/iflytop/gd/infrastructure/devices/VirtualDoor.java new file mode 100644 index 0000000..7c6b761 --- /dev/null +++ b/src/main/java/com/iflytop/gd/infrastructure/devices/VirtualDoor.java @@ -0,0 +1,24 @@ +package com.iflytop.gd.infrastructure.devices; + +import com.iflytop.gd.system.devices.Door; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +@Component +@Profile("dev") +public class VirtualDoor implements Door { + @Override + public void open() { + + } + + @Override + public void close() { + + } + + @Override + public void stop() { + + } +} diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/VirtualHeater.java b/src/main/java/com/iflytop/gd/infrastructure/devices/VirtualHeater.java new file mode 100644 index 0000000..d40030f --- /dev/null +++ b/src/main/java/com/iflytop/gd/infrastructure/devices/VirtualHeater.java @@ -0,0 +1,33 @@ +package com.iflytop.gd.infrastructure.devices; + +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/system/devices/Heater.java b/src/main/java/com/iflytop/gd/system/devices/Heater.java index c659cb7..3effea7 100644 --- a/src/main/java/com/iflytop/gd/system/devices/Heater.java +++ b/src/main/java/com/iflytop/gd/system/devices/Heater.java @@ -9,12 +9,24 @@ public interface Heater { * 打开 * @return */ - boolean open(); + void open(); /** * 关闭 * @return */ - boolean close(); + void close(); + + /** + * 获取当前温度 + * @return + */ + Double getCurrentTemperature(); + + /** + * 获取设定的目标温度 + * @return + */ + Double getTargetTemperature(); } diff --git a/src/main/java/com/iflytop/gd/system/models/HeaterStatus.java b/src/main/java/com/iflytop/gd/system/models/HeaterStatus.java new file mode 100644 index 0000000..42c1fda --- /dev/null +++ b/src/main/java/com/iflytop/gd/system/models/HeaterStatus.java @@ -0,0 +1,13 @@ +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; +}