From df49477cb6772235bd7bdb04def85a1f5f61a808 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Sun, 14 Jul 2024 18:40:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20scanClampModuleCompress=20?= =?UTF-8?q?=E5=92=8C=20scanClampModuleReset=20=20=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/a8k/appbean/AppErrorCode.java | 23 ++++++ .../entity/SamplesPreProcessModuleParameter.java | 27 +++++- .../SamplesPreProcessModuleCtrlService.java | 95 ++++++++++++++++------ 3 files changed, 116 insertions(+), 29 deletions(-) create mode 100644 src/main/java/a8k/appbean/AppErrorCode.java diff --git a/src/main/java/a8k/appbean/AppErrorCode.java b/src/main/java/a8k/appbean/AppErrorCode.java new file mode 100644 index 0000000..d8e0476 --- /dev/null +++ b/src/main/java/a8k/appbean/AppErrorCode.java @@ -0,0 +1,23 @@ +package a8k.appbean; + +public enum AppErrorCode { + Success("Success", 0), //成功 + TubeNotHasHat("TubeNotHasHat", 1); //试管没有帽子 + + final private String name; + final private int errorIndex; + + private AppErrorCode(String name, int errorIndex) { + this.name = name; + this.errorIndex = errorIndex; + } + + public String toString() { + return name; + } + + public int getErrorIndex() { + return errorIndex; + } + +} diff --git a/src/main/java/a8k/service/db/entity/SamplesPreProcessModuleParameter.java b/src/main/java/a8k/service/db/entity/SamplesPreProcessModuleParameter.java index bcb034e..1b00285 100644 --- a/src/main/java/a8k/service/db/entity/SamplesPreProcessModuleParameter.java +++ b/src/main/java/a8k/service/db/entity/SamplesPreProcessModuleParameter.java @@ -1,9 +1,15 @@ package a8k.service.db.entity; -import com.iflytop.uf.UfActiveRecord; import com.iflytop.uf.UfActiveRecordField; public class SamplesPreProcessModuleParameter { + + @UfActiveRecordField + public Integer moveToZeroOvertime;// 回零超时时间 + + @UfActiveRecordField + public Integer actionOvertime;// 执行动作的超时时间,该超时时间适用于当前模块在当前产品中所有动作的最大时间。 + /** * 升降电机相关位置 */ @@ -14,6 +20,12 @@ public class SamplesPreProcessModuleParameter { public Integer shortBlood_TakeCapPos;//矮全血试管取帽位置 @UfActiveRecordField + public Integer highBlood_capJudgePos;//高试管帽子判断位置 + + @UfActiveRecordField + public Integer shortBlood_capJudgePos;//矮全血试管帽子判断位置 + + @UfActiveRecordField public Integer elevating_MotorPosOffset;//升降电机位置偏移 /** @@ -32,13 +44,17 @@ public class SamplesPreProcessModuleParameter { * 取帽舵机 */ @UfActiveRecordField - public Integer takeCapServo_standbyPos; //取帽舵机,待机位置 + public Integer gripperServo_standbyPos; //抓手舵机,待机位置 + + @UfActiveRecordField + public Integer gripperServo_takeCapTorque; //抓手舵机,取帽扭矩 @UfActiveRecordField - public Integer takeCapServo_takeCapTorque; //取帽舵机,取帽扭矩 + public Integer gripperServo_takeTubePos; // 抓手舵机,取试管位置 @UfActiveRecordField - public Integer takeCapServo_takeTubePos; // 取帽舵机,取试管位置 + public Integer gripperServo_hatDeterminesPosThres; //判断是否有帽子的位置阈值 + /** * 摇匀电机 @@ -56,6 +72,9 @@ public class SamplesPreProcessModuleParameter { @UfActiveRecordField public Integer tubeClampMotor_ClampPos; + @UfActiveRecordField + public Integer aerosolFanLevel; //气溶胶风扇工作功率 + public static String getTableName() { return "SamplesPreProcessModuleParameter" + "Table"; } diff --git a/src/main/java/a8k/service/hardware/SamplesPreProcessModuleCtrlService.java b/src/main/java/a8k/service/hardware/SamplesPreProcessModuleCtrlService.java index b45c27f..539bd86 100644 --- a/src/main/java/a8k/service/hardware/SamplesPreProcessModuleCtrlService.java +++ b/src/main/java/a8k/service/hardware/SamplesPreProcessModuleCtrlService.java @@ -1,49 +1,77 @@ package a8k.service.hardware; +import a8k.appbean.AppErrorCode; import a8k.appbean.SampleTubeState; +import org.springframework.stereotype.Component; +@Component public class SamplesPreProcessModuleCtrlService { + /* + 样品预处理模块 + 主要负责样品预处理的相关操作 + + */ + + /* ======================================================================================= + 基础方法 + =======================================================================================*/ + /** - * 样品预处理模块 - * 主要负责样品预处理的相关操作 - * - * 涉及到常量 - * 1.试管的相关信息---试管高度 - * 2.试管的相关信息---试管含帽高度 - * 3.平移电机待机位置 - * 4.平移电机取试管位置 - * 5.平移电机试管处理位置 - * - * + * 按照一定顺序归零设备 */ + public void moveToZero() { + /* + 1. 假设没有试管在当前设备上的前提下归零设备 + 2. 舵机虽然没有零位,但需要将其移动到待机位置 + */ + } + + /** + * 使能模组 + * @param enable 是否使能模组 + */ + public void enableModule(boolean enable) { - public void takeTube(String tubeType) { - // - // 取试管并将试管放在夹紧位置,同时升降电机和平移电机移动到待机位 - // 试管放置的水平高度和其在试管架中的高度保持一直 - // } + + + + + /* ======================================================================================= + 主要服务 + =======================================================================================*/ + + /** - * 摇匀试管 - * @param tubeType - * @param times - * @param shakeDegree + * 取试管帽,如果试管帽存在, + * @param tubeType TubeType_HighBlood,TubeType_ShortBlood,TubeType_Mini,TubeType_MiniBlood,TubeType_BulletTube1P5,TubeType_BulletTube0P5 + * @param judgeCapExist 是否判断试管帽子存在与否 */ - public void ShakeTube(String tubeType, int times, int shakeDegree) { - // - // - // + public AppErrorCode takeTube(String tubeType,boolean judgeCapExist) { + /* + 注意事项: + 1. 取试管并将试管放在试管夹紧位置,同时升降电机和平移电机移动到待机位 + 2. 试管放置的水平高度和其在试管架中的高度保持一直 + 3. 取试管前,先通过试管夹紧功能判断一下试管帽是否存在(在试管没帽的边沿位置,抓手扭矩抓紧,如果等待一定时间后,抓手位置接近极限位置,则认为没有帽子,返回TubeNotHasHat错误) + 4. 无论是否抓取成功,只要不向外抛出异常,方法结束时,该模块涉及到组件均需要返回待机位置。 + + */ + + return AppErrorCode.Success; } /** * 取试管帽 */ - public void takeTubeCap() { + public AppErrorCode takeTubeCap() { // // // + // + + return AppErrorCode.Success; } /** @@ -55,6 +83,21 @@ public class SamplesPreProcessModuleCtrlService { // } + + /* ======================================================================================= + 辅助操作 + =======================================================================================*/ + + /** + * 摇匀试管 + * @param tubeType TubeType_HighBlood,TubeType_ShortBlood,TubeType_Mini,TubeType_MiniBlood,TubeType_BulletTube1P5,TubeType_BulletTube0P5 + * @param times 摇匀次数 + * @param shakeDegree 摇匀角度 + */ + public void ShakeTube(String tubeType, int times, int shakeDegree) { + + } + /** * 打开气溶胶风扇 */ @@ -82,4 +125,6 @@ public class SamplesPreProcessModuleCtrlService { public void moduleRuntimeReset() { } + + }