diff --git a/src/main/java/com/dreamworks/boditech/controller/DeviceController.java b/src/main/java/com/dreamworks/boditech/controller/DeviceController.java index 8c97881..b7a3df0 100644 --- a/src/main/java/com/dreamworks/boditech/controller/DeviceController.java +++ b/src/main/java/com/dreamworks/boditech/controller/DeviceController.java @@ -29,6 +29,13 @@ public class DeviceController extends BaseController { return this.success(); } + @ResponseBody + @PostMapping("/api/device/unload") + public ApiResponse unload() { + this.deviceService.unload(); + return this.success(); + } + @@ -274,11 +281,7 @@ public class DeviceController extends BaseController { - @ResponseBody - @PostMapping("/api/device/unload") - public ApiResponse unload() { - return this.success(); - } + @ResponseBody @PostMapping("/api/device/trash-box-status-get") 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 dba6913..75b1fda 100644 --- a/src/main/java/com/dreamworks/boditech/driver/consumable/CsmBufferTubeManager.java +++ b/src/main/java/com/dreamworks/boditech/driver/consumable/CsmBufferTubeManager.java @@ -37,6 +37,16 @@ public class CsmBufferTubeManager { box.tubeAmount = param.tubeAmount; } + // clear all test cards + public void clear() { + this.bufferTubeBoxes.clear(); + for ( int i=0; i<6; i++ ) { + CsmBufferTubeBox box = new CsmBufferTubeBox(); + box.index = i; + this.bufferTubeBoxes.add(box); + } + } + /** * append buffer tube by box code string * code example : 01CAGGB66U 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 310ef72..22a29d8 100644 --- a/src/main/java/com/dreamworks/boditech/driver/consumable/CsmLargeBufferTubeManager.java +++ b/src/main/java/com/dreamworks/boditech/driver/consumable/CsmLargeBufferTubeManager.java @@ -31,6 +31,16 @@ public class CsmLargeBufferTubeManager { return this.device; } + // clear all test cards + public void clear() { + this.largeBufferTubes.clear(); + for ( int i=0; i<6; i++ ) { + CsmLargeBufferTube tube = new CsmLargeBufferTube(this); + tube.index = i; + this.largeBufferTubes.add(tube); + } + } + /** * append large buffer tube by box code string * code example : 01CAGGB66U 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 7acb8e1..0055e96 100644 --- a/src/main/java/com/dreamworks/boditech/driver/consumable/CsmTestCardManager.java +++ b/src/main/java/com/dreamworks/boditech/driver/consumable/CsmTestCardManager.java @@ -31,6 +31,16 @@ public class CsmTestCardManager { return this.testCardBoxes; } + // clear all test cards + public void clear() { + this.testCardBoxes.clear(); + for ( int i=0; i<6; i++ ) { + CsmTestCardBox box = new CsmTestCardBox(); + box.index = i; + this.testCardBoxes.add(box); + } + } + /** * update test cards by box * @param update update info @@ -83,6 +93,19 @@ public class CsmTestCardManager { + + + + + + + + + + + + + // @TODO : 删除下面这个属性,使用box代替 // list of test cards private final List testCards = new ArrayList<>(); diff --git a/src/main/java/com/dreamworks/boditech/service/DeviceService.java b/src/main/java/com/dreamworks/boditech/service/DeviceService.java index 9ccb801..f35779b 100644 --- a/src/main/java/com/dreamworks/boditech/service/DeviceService.java +++ b/src/main/java/com/dreamworks/boditech/service/DeviceService.java @@ -47,6 +47,25 @@ public class DeviceService { } /** + * unload consumable resources + */ + public void unload() { + if ( this.isExecutorRunning() ) { + throw new RuntimeException("DEVICE_STILL_RUNNING"); + } + this.actionLog.log("device.unload"); + this.device.testCards.clear(); + this.device.bufferTubes.clear(); + this.device.largeBufferTubes.clear(); + } + + + + + + + + /** * 复位设备, 如果设备未正常复位, 需要给个警告弹框,然后再执行错误复位 * @throws RuntimeException 设备未正常复位 */