From 1944147ee7c3393efad96444bd63f4c37f684c10 Mon Sep 17 00:00:00 2001 From: sige Date: Thu, 29 Feb 2024 14:49:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B7=E6=9C=AC=E6=B7=BB=E5=8A=A0=E6=97=B6?= =?UTF-8?q?=E5=8F=8A=E6=97=B6=E5=85=B3=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resource/ResHeatingTubeRackSlotManager.java | 15 ++++++++++++--- .../com/my/graphiteDigesterBg/task/TaskSampleAdd.java | 5 +++-- 2 files changed, 15 insertions(+), 5 deletions(-) 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); }