diff --git a/src/main/java/com/dreamworks/boditech/controller/DeviceController.java b/src/main/java/com/dreamworks/boditech/controller/DeviceController.java index 0ddbcc7..90b90da 100644 --- a/src/main/java/com/dreamworks/boditech/controller/DeviceController.java +++ b/src/main/java/com/dreamworks/boditech/controller/DeviceController.java @@ -87,6 +87,18 @@ public class DeviceController extends BaseController { return this.success(this.deviceService.device.largeBufferTubes.getAll()); } + @ResponseBody + @PostMapping("/api/device/pipette-tip-update-by-box") + public ApiResponse pipetteTipUpdate( @RequestBody ParamPipetteTipUpdate param ) { + this.deviceService.pipetteTipUpdateByBox(param); + return this.success(); + } + + @ResponseBody + @PostMapping("/api/device/pipette-tip-status-get") + public ApiResponse pipetteTipStatusGet() { + return this.success(this.deviceService.device.pipetteTips.getAll()); + } @@ -106,12 +118,7 @@ public class DeviceController extends BaseController { - @ResponseBody - @PostMapping("/api/device/pipette-tip-update") - public ApiResponse pipetteTipUpdate( @RequestBody ParamPipetteTipUpdate param ) { - this.deviceService.pipetteTipUpdate(param); - return this.success(); - } + diff --git a/src/main/java/com/dreamworks/boditech/driver/consumable/CsmPipetteTipBox.java b/src/main/java/com/dreamworks/boditech/driver/consumable/CsmPipetteTipBox.java new file mode 100644 index 0000000..fd83c6c --- /dev/null +++ b/src/main/java/com/dreamworks/boditech/driver/consumable/CsmPipetteTipBox.java @@ -0,0 +1,5 @@ +package com.dreamworks.boditech.driver.consumable; +public class CsmPipetteTipBox { + public Integer position; + public Integer tipAmount; +} 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 1317c1a..331bbac 100644 --- a/src/main/java/com/dreamworks/boditech/driver/consumable/CsmPipetteTipManager.java +++ b/src/main/java/com/dreamworks/boditech/driver/consumable/CsmPipetteTipManager.java @@ -7,14 +7,39 @@ import java.util.List; public class CsmPipetteTipManager { // device instance private Device device; - // list of test cards - private final List pipetteTips = new ArrayList<>(); + // pipetteTipBoxes + private final List pipetteTipBoxes = new ArrayList<>(); // constructor public CsmPipetteTipManager(Device device) { this.device = device; + + // @TODO : 测试数据 + for ( int i=0; i<3; i++ ) { + CsmPipetteTipBox box = new CsmPipetteTipBox(); + box.tipAmount = 120; + box.position = i; + this.pipetteTipBoxes.add(box); + } + } + + public void updateByBox( ParamPipetteTipUpdate param ) { + CsmPipetteTipBox box = this.pipetteTipBoxes.get(param.index); + box.tipAmount = param.tipAmount; } + // get all pipette tips + public List getAll() { + return this.pipetteTipBoxes; + } + + + + // list of test cards + private final List pipetteTips = new ArrayList<>(); + + + // get device public Device getDevice() { return this.device; @@ -33,23 +58,23 @@ public class CsmPipetteTipManager { return this.pipetteTips.remove(0); } - // append pipette tip by box code - public void update(ParamPipetteTipUpdate param ) { - if ( 120 < param.amount || 0 > param.amount ) { - throw new RuntimeException("invalid amount " + param.amount); - } - - // delete all pipette tips with matched areaIndex - this.pipetteTips.removeIf(pipetteTip -> pipetteTip.areaIndex.equals(param.areaIndex)); - - // append new pipette tips - for ( int i=0; i param.amount ) { +// throw new RuntimeException("invalid amount " + param.amount); +// } +// +// // delete all pipette tips with matched areaIndex +// this.pipetteTips.removeIf(pipetteTip -> pipetteTip.areaIndex.equals(param.areaIndex)); +// +// // append new pipette tips +// for ( int i=0; i getAll() { - return this.pipetteTips; - } + } diff --git a/src/main/java/com/dreamworks/boditech/driver/entity/ParamPipetteTipUpdate.java b/src/main/java/com/dreamworks/boditech/driver/entity/ParamPipetteTipUpdate.java index e0c7f04..0e68c8e 100644 --- a/src/main/java/com/dreamworks/boditech/driver/entity/ParamPipetteTipUpdate.java +++ b/src/main/java/com/dreamworks/boditech/driver/entity/ParamPipetteTipUpdate.java @@ -1,7 +1,7 @@ package com.dreamworks.boditech.driver.entity; public class ParamPipetteTipUpdate { // position - public Integer areaIndex; + public Integer index; // amount - public Integer amount; + public Integer tipAmount; } diff --git a/src/main/java/com/dreamworks/boditech/service/DeviceService.java b/src/main/java/com/dreamworks/boditech/service/DeviceService.java index a7635a2..4e02c68 100644 --- a/src/main/java/com/dreamworks/boditech/service/DeviceService.java +++ b/src/main/java/com/dreamworks/boditech/service/DeviceService.java @@ -36,8 +36,8 @@ public class DeviceService { } // update pipette tips - public void pipetteTipUpdate(ParamPipetteTipUpdate param) { - this.device.pipetteTips.update(param); + public void pipetteTipUpdateByBox(ParamPipetteTipUpdate param) { + this.device.pipetteTips.updateByBox(param); } // load large buffer tubes @@ -67,19 +67,6 @@ public class DeviceService { public Map status() { Map status = new HashMap<>(); - // pipette tip area - PipetteTipArea[] pipetteTipAreas = new PipetteTipArea[3]; - for ( int i=0; i pipetteTips = this.device.pipetteTips.getAll(); - for ( CsmPipetteTip pipetteTip : pipetteTips ) { - Integer index = pipetteTip.areaIndex; - pipetteTipAreas[index].index = index; - pipetteTipAreas[index].amount ++; - } - status.put("pipetteTipAreas", pipetteTipAreas); - // large buffer tube List largeBufferTubeList = this.device.largeBufferTubes.getAll(); CsmLargeBufferTube[] largeBufferTubes = new CsmLargeBufferTube[6];