diff --git a/src/src/main/java/com/my/graphiteDigesterBg/resource/ResHeatingTubeRackSlotManager.java b/src/src/main/java/com/my/graphiteDigesterBg/resource/ResHeatingTubeRackSlotManager.java index 666f269..c7b8cfb 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/resource/ResHeatingTubeRackSlotManager.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/resource/ResHeatingTubeRackSlotManager.java @@ -12,6 +12,8 @@ public class ResHeatingTubeRackSlotManager extends DiResourceManagerBase { private final List slots; // error slot index private Integer errorSlotIndex; + // temperature refresh timer + private Timer temperatureRefreshTimer; // constructor public ResHeatingTubeRackSlotManager() { @@ -28,10 +30,12 @@ public class ResHeatingTubeRackSlotManager extends DiResourceManagerBase { this.errorSlotIndex = this.getDevice().getEnv().getProperty("app.errorSlotIndex",Integer.class); assert Objects.nonNull(this.errorSlotIndex); this.slots.get(this.errorSlotIndex).setupAsErrorSlot(); + } - // start a timer task to refresh slot temperature every 5 seconds - var timer = new Timer(); - timer.schedule(new TimerTask() { + // start temperature refresh + public void startTemperatureRefresh() { + this.temperatureRefreshTimer = new Timer(); + this.temperatureRefreshTimer.schedule(new TimerTask() { @Override public void run() { ResHeatingTubeRackSlotManager.this.refreshSlotTemperature(); @@ -39,6 +43,11 @@ public class ResHeatingTubeRackSlotManager extends DiResourceManagerBase { }, 0, 5000); } + // stop temperature refresh + public void stopTemperatureRefresh() { + this.temperatureRefreshTimer.cancel(); + } + // refresh slot temperature public void refreshSlotTemperature() { var registers = this.getDevice().getRegisters(); diff --git a/src/src/main/java/com/my/graphiteDigesterBg/task/TaskSampleAdd.java b/src/src/main/java/com/my/graphiteDigesterBg/task/TaskSampleAdd.java index 3022e53..37942a1 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/task/TaskSampleAdd.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/task/TaskSampleAdd.java @@ -37,9 +37,12 @@ public class TaskSampleAdd extends DiTaskBase { liquidPlateMotor.moveTo("LiquidPlatePlaceTubeRack"); // 等待用户添加完成 this.waitForUserAction(); + // 关闭设备门 + doorMotor.moveToIO(1, 1); if ( "canceled".equals(this.addStatus) ) { slot.unlock(); this.setStatus(TaskStatus.FINISHED); + return; } var moveMoveTubeRackFromLiquidPlateToHeatPlate = new MoveMoveTubeRackFromLiquidPlateToHeatPlate(); @@ -47,8 +50,6 @@ public class TaskSampleAdd extends DiTaskBase { moveMoveTubeRackFromLiquidPlateToHeatPlate.setDevice(this.getDevice()); moveMoveTubeRackFromLiquidPlateToHeatPlate.run(); - // 关闭设备门 - doorMotor.moveToIO(1, 1); this.setStatus(TaskStatus.FINISHED); }