From 0dc0aa79713b2272bee3b532e41413d582dfcff3 Mon Sep 17 00:00:00 2001 From: sige Date: Fri, 29 Dec 2023 10:27:57 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=97=E6=9D=90=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../boditech/driver/consumable/CsmBufferTubeManager.java | 10 ++++++++++ .../boditech/driver/consumable/CsmLargeBufferTubeManager.java | 9 +++++++++ .../boditech/driver/consumable/CsmPipetteTipManager.java | 10 ++++++++++ .../boditech/driver/consumable/CsmTestCardManager.java | 10 ++++++++++ .../java/com/dreamworks/boditech/service/DeviceService.java | 11 +++++++++++ 5 files changed, 50 insertions(+) diff --git a/src/main/java/com/dreamworks/boditech/driver/consumable/CsmBufferTubeManager.java b/src/main/java/com/dreamworks/boditech/driver/consumable/CsmBufferTubeManager.java index f7e8173..7b8d2a2 100644 --- a/src/main/java/com/dreamworks/boditech/driver/consumable/CsmBufferTubeManager.java +++ b/src/main/java/com/dreamworks/boditech/driver/consumable/CsmBufferTubeManager.java @@ -99,4 +99,14 @@ public class CsmBufferTubeManager { public Device getDevice() { return this.device; } + + // check if all buffer tubes are used + public Boolean isEmpty() { + for ( CsmBufferTubeBox box : this.bufferTubeBoxes ) { + if ( 0 < box.tubeAmount ) { + return false; + } + } + return true; + } } diff --git a/src/main/java/com/dreamworks/boditech/driver/consumable/CsmLargeBufferTubeManager.java b/src/main/java/com/dreamworks/boditech/driver/consumable/CsmLargeBufferTubeManager.java index 22a29d8..e3a7eed 100644 --- a/src/main/java/com/dreamworks/boditech/driver/consumable/CsmLargeBufferTubeManager.java +++ b/src/main/java/com/dreamworks/boditech/driver/consumable/CsmLargeBufferTubeManager.java @@ -64,6 +64,15 @@ public class CsmLargeBufferTubeManager { box.isLoaded = true; } + // check if all large buffer tubes are used + public Boolean isEmpty() { + for ( CsmLargeBufferTube tube : this.largeBufferTubes ) { + if ( 0 < tube.amount ) { + return false; + } + } + return true; + } diff --git a/src/main/java/com/dreamworks/boditech/driver/consumable/CsmPipetteTipManager.java b/src/main/java/com/dreamworks/boditech/driver/consumable/CsmPipetteTipManager.java index 84a4a92..5549046 100644 --- a/src/main/java/com/dreamworks/boditech/driver/consumable/CsmPipetteTipManager.java +++ b/src/main/java/com/dreamworks/boditech/driver/consumable/CsmPipetteTipManager.java @@ -50,4 +50,14 @@ public class CsmPipetteTipManager { public Device getDevice() { return this.device; } + + // check if all pipette tips are used + public Boolean isEmpty() { + for ( CsmPipetteTipBox box : this.pipetteTipBoxes ) { + if ( 0 < box.tipAmount ) { + return false; + } + } + return true; + } } diff --git a/src/main/java/com/dreamworks/boditech/driver/consumable/CsmTestCardManager.java b/src/main/java/com/dreamworks/boditech/driver/consumable/CsmTestCardManager.java index d0bd3e4..ff21b48 100644 --- a/src/main/java/com/dreamworks/boditech/driver/consumable/CsmTestCardManager.java +++ b/src/main/java/com/dreamworks/boditech/driver/consumable/CsmTestCardManager.java @@ -108,4 +108,14 @@ public class CsmTestCardManager { } throw new RuntimeException("no test card available"); } + + // check if all test cards are used + public Boolean isEmpty() { + for ( CsmTestCardBox box : this.testCardBoxes ) { + if ( 0 < box.cardAmount ) { + return false; + } + } + return true; + } } diff --git a/src/main/java/com/dreamworks/boditech/service/DeviceService.java b/src/main/java/com/dreamworks/boditech/service/DeviceService.java index 10b22c3..2d89bda 100644 --- a/src/main/java/com/dreamworks/boditech/service/DeviceService.java +++ b/src/main/java/com/dreamworks/boditech/service/DeviceService.java @@ -86,6 +86,17 @@ public class DeviceService { throw new RuntimeException("DEVICE_ALREADY_STARTED"); } + // @TODO : 后面要详细检查耗材 + if ( !this.device.testCards.getIsLoaded() ) { + throw new RuntimeException("耗材未加载"); + } + if (this.device.pipetteTips.isEmpty() + || this.device.testCards.isEmpty() + || this.device.bufferTubes.isEmpty() + || this.device.largeBufferTubes.isEmpty()) { + throw new RuntimeException("耗材不足, 请检查耗材"); + } + this.actionLog.log("device.start"); this.taskExecutor = new Executor(this.testService, this.device); this.taskExecutorThread = new Thread(this.taskExecutor);