Browse Source

移液枪枪头测试数据

master
sige 2 years ago
parent
commit
6ee1ff299b
  1. 19
      src/main/java/com/dreamworks/boditech/controller/DeviceController.java
  2. 5
      src/main/java/com/dreamworks/boditech/driver/consumable/CsmPipetteTipBox.java
  3. 68
      src/main/java/com/dreamworks/boditech/driver/consumable/CsmPipetteTipManager.java
  4. 4
      src/main/java/com/dreamworks/boditech/driver/entity/ParamPipetteTipUpdate.java
  5. 17
      src/main/java/com/dreamworks/boditech/service/DeviceService.java

19
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();
}

5
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;
}

68
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<CsmPipetteTip> pipetteTips = new ArrayList<>();
// pipetteTipBoxes
private final List<CsmPipetteTipBox> 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<CsmPipetteTipBox> getAll() {
return this.pipetteTipBoxes;
}
// list of test cards
private final List<CsmPipetteTip> 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; i++ ) {
CsmPipetteTip pipetteTip = new CsmPipetteTip(this);
pipetteTip.areaIndex = param.areaIndex;
pipetteTip.position = i;
this.pipetteTips.add(pipetteTip);
}
}
// // 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; i++ ) {
// CsmPipetteTip pipetteTip = new CsmPipetteTip(this);
// pipetteTip.areaIndex = param.areaIndex;
// pipetteTip.position = i;
// this.pipetteTips.add(pipetteTip);
// }
// }
// append pipette tip
public void append( Integer areaIndex, Integer amount ) {
@ -61,8 +86,5 @@ public class CsmPipetteTipManager {
}
}
// get all pipette tips
public List<CsmPipetteTip> getAll() {
return this.pipetteTips;
}
}

4
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;
}

17
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<String, Object> status() {
Map<String,Object> status = new HashMap<>();
// pipette tip area
PipetteTipArea[] pipetteTipAreas = new PipetteTipArea[3];
for ( int i=0; i<pipetteTipAreas.length; i++ ) {
pipetteTipAreas[i] = new PipetteTipArea();
}
List<CsmPipetteTip> 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<CsmLargeBufferTube> largeBufferTubeList = this.device.largeBufferTubes.getAll();
CsmLargeBufferTube[] largeBufferTubes = new CsmLargeBufferTube[6];

Loading…
Cancel
Save