From 6d13fe3d2c8dd5530c84cf2933f2472182ac3f05 Mon Sep 17 00:00:00 2001 From: sige Date: Mon, 15 Jan 2024 09:29:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=9B=B4=E6=96=B0=E4=BB=A5?= =?UTF-8?q?=E5=8F=8ATIP=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...程(非最终稿)第二版 2023.5.15.xlsx | Bin 14448 -> 17141 bytes .../boditech/controller/TmpController.java | 40 +++++++++++++++++++++ .../boditech/driver/actuator/ActPipette.java | 5 +++ 3 files changed, 45 insertions(+) diff --git a/doc/A8000测试流程(非最终稿)第二版 2023.5.15.xlsx b/doc/A8000测试流程(非最终稿)第二版 2023.5.15.xlsx index b4d2a6b58d8d957492f2e882a4cac23f30f795d3..55e468a40e7152071597e19c5a8b632e9b2b916c 100644 GIT binary patch literal 17141 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 R@<;$k0FocGMRWba{XgZVEjR!G literal 14448 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 params ) { + ActArmXY armXY = (ActArmXY)this.deviceService.device.getActuator(ActuatorModule.ARM_XY); + ActArmZMotor armZ = (ActArmZMotor)this.deviceService.device.getActuator(ActuatorModule.ARM_Z_MOTOR); + armZ.reset(); + armXY.reset(); + + this.deviceService.device.pipetteTips.updateByBox(new ParamPipetteTipUpdate() {{ + index = 0; + tipAmount = 120; + }}); + this.deviceService.device.pipetteTips.updateByBox(new ParamPipetteTipUpdate() {{ + index = 1; + tipAmount = 120; + }}); + this.deviceService.device.pipetteTips.updateByBox(new ParamPipetteTipUpdate() {{ + index = 2; + tipAmount = 120; + }}); + ActPipette pipette = (ActPipette)this.deviceService.device.getActuator(ActuatorModule.ARM_Z_PIPETTE); + CsmPipetteTipManager tipManager = this.deviceService.device.pipetteTips; + while ( !tipManager.isEmpty() ) { + CsmPipetteTip tip = tipManager.tipAlloc(); + LOG.info("pick up : box={}; index={}; x={}; y={}", tip.boxIndex,tip.index, tip.getLocationX(), tip.getLocationY()); + pipette.pickUpTip(tip); + pipette.dropTip(); + } + return this.success(); + } } diff --git a/src/main/java/com/dreamworks/boditech/driver/actuator/ActPipette.java b/src/main/java/com/dreamworks/boditech/driver/actuator/ActPipette.java index 2267364..5907bd2 100644 --- a/src/main/java/com/dreamworks/boditech/driver/actuator/ActPipette.java +++ b/src/main/java/com/dreamworks/boditech/driver/actuator/ActPipette.java @@ -25,6 +25,11 @@ public class ActPipette extends ActuatorBase { this.hasTip = true; } + // pick up tip + public void pickUpTip(CsmPipetteTip tip) { + this.useTip(tip); + } + /** * drop tip to discard hole, and move arm z to 0, it would not * move arm xy to any position after drop tip.