Browse Source

添加 scanClampModuleCompress 和 scanClampModuleReset 两个方法

tags/v0
zhaohe 1 year ago
parent
commit
df49477cb6
  1. 23
      src/main/java/a8k/appbean/AppErrorCode.java
  2. 27
      src/main/java/a8k/service/db/entity/SamplesPreProcessModuleParameter.java
  3. 95
      src/main/java/a8k/service/hardware/SamplesPreProcessModuleCtrlService.java

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

27
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";
}

95
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() {
}
}
Loading…
Cancel
Save