Browse Source

update

tags/v0
zhaohe 1 year ago
parent
commit
8f2f079494
  1. 34
      src/main/java/a8k/appbean/ecode/AppRet.java
  2. 5
      src/main/java/a8k/base_hardware/A8kCanBusService.java
  3. 6
      src/main/java/a8k/service/ctrl_service/DeviceInitializationCtrlService.java
  4. 62
      src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java

34
src/main/java/a8k/appbean/ecode/AppRet.java

@ -7,7 +7,7 @@ import a8k.appbean.HardwareException;
public class AppRet<T> {
boolean suc;
boolean success = false;
AppRetEcodeInfo ecode;
T data;
long timestamp;//接口请求时间
@ -17,8 +17,8 @@ public class AppRet<T> {
this.timestamp = System.currentTimeMillis();
}
public boolean isSuc() {
return suc;
public boolean isSuccess() {
return success;
}
public long getTimestamp() {
@ -40,8 +40,8 @@ public class AppRet<T> {
public static <T> AppRet<T> success(T data) {
AppRet<T> r = new AppRet<>();
r.suc = true;
r.ecode = null;
r.success = true;
r.ecode = null;
r.data = data;
return r;
}
@ -49,32 +49,32 @@ public class AppRet<T> {
public static <T> AppRet<T> success() {
AppRet<T> r = new AppRet<>();
r.suc = true;
r.ecode = null;
r.success = true;
r.ecode = null;
r.data = null;
return r;
}
public static <T> AppRet<T> fail(A8kEcode errorCode, MId mid, CmdId cmd) {
AppRet<T> r = new AppRet<>();
r.suc = false;
r.ecode = new AppRetEcodeInfo(errorCode, mid, cmd);
r.success = false;
r.ecode = new AppRetEcodeInfo(errorCode, mid, cmd);
r.data = null;
return r;
}
public static <T> AppRet<T> fail(A8kEcode errorCode, MId mid) {
AppRet<T> r = new AppRet<>();
r.suc = false;
r.ecode = new AppRetEcodeInfo(errorCode, mid, null);
r.success = false;
r.ecode = new AppRetEcodeInfo(errorCode, mid, null);
r.data = null;
return r;
}
public static <T> AppRet<T> fail(A8kEcode errorCode) {
AppRet<T> r = new AppRet<>();
r.suc = false;
r.ecode = new AppRetEcodeInfo(errorCode, null, null);
r.success = false;
r.ecode = new AppRetEcodeInfo(errorCode, null, null);
r.data = null;
return r;
}
@ -88,13 +88,13 @@ public class AppRet<T> {
AppRet<T> r = new AppRet<>();
if (e instanceof HardwareException hexcep) {
r.suc = false;
r.ecode = new AppRetEcodeInfo(hexcep.getErrorCode(), hexcep.getModuleId(), hexcep.getCmdId());
r.success = false;
r.ecode = new AppRetEcodeInfo(hexcep.getErrorCode(), hexcep.getModuleId(), hexcep.getCmdId());
r.data = null;
r.traceInfo = trace;
} else {
r.suc = false;
r.ecode = new AppRetEcodeInfo(A8kEcode.CodeException, null, null);
r.success = false;
r.ecode = new AppRetEcodeInfo(A8kEcode.CodeException, null, null);
r.data = null;
r.traceInfo = trace;
}

5
src/main/java/a8k/base_hardware/A8kCanBusService.java

@ -161,6 +161,7 @@ public class A8kCanBusService {
public A8kPacket codeScanerReadScanerResult(MId id) throws HardwareException {
return callcmd(id.toInt(), CmdId.code_scaner_read_scaner_result.toInt());
}
//
// module opeation
//
@ -294,9 +295,9 @@ public class A8kCanBusService {
callcmd(id.toInt(), CmdId.step_motor_active_cfg.toInt());
}
public int stepMotorReadIoState(MId id) throws HardwareException {
public Boolean stepMotorReadIoState(MId id) throws HardwareException {
var packet = callcmd(id.toInt(), CmdId.step_motor_read_io_state.toInt());
return packet.getContentI32(0);
return packet.getContentI32(0) != 0;
}
public void stepMotorEasyMoveToEndPoint(MId id) throws HardwareException {

6
src/main/java/a8k/service/ctrl_service/DeviceInitializationCtrlService.java

@ -51,21 +51,21 @@ public class DeviceInitializationCtrlService {
//硬件光电初始化
logger.info("hardwareStaticInit");
ecode = hardwareStaticInit();
if (!ecode.isSuc()) {
if (!ecode.isSuccess()) {
return ecode;
}
//检查设备状态
logger.info("checkDeviceState");
ecode = checkDeviceState();
if (!ecode.isSuc()) {
if (!ecode.isSuccess()) {
return ecode;
}
// 复位设备
logger.info("moveMotorToZero");
ecode = moveMotorToZero();
if (!ecode.isSuc()) {
if (!ecode.isSuccess()) {
return ecode;
}
// 清空耗材

62
src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java

@ -2,6 +2,7 @@ package a8k.service.hardware;
import a8k.a8k_can_protocol.*;
import a8k.appbean.HardwareException;
import a8k.appbean.ecode.AppRet;
import a8k.base_hardware.A8kCanBusService;
import a8k.service.db.dao.A8kTubeInfoDao;
import a8k.service.db.dao.MotorTubeRackMoveCtrlServiceParameterDao;
@ -38,25 +39,53 @@ public class MotorTubeRackMoveCtrlService {
@Resource
private CommonHardwareOpeartion comHardwareOpear;
public void setEnable(Boolean enable) throws HardwareException {
comHardwareOpear.enableAllMotor(enable);
}
/*=========================================================================================
* 私有方法
*========================================================================================*/
public void stop() throws HardwareException {
comHardwareOpear.forceStopAllMOtor();
/**
* 移动试管架到指定位置
* @param pos 指定位置
* @throws HardwareException 硬件异常
* @throws InterruptedException 打断异常
*/
private void moveTubeRackTo(int pos) throws HardwareException, InterruptedException {
canBus.miniServoMoveTo(MId.ShakeModTubeScanerClampingSV, paramDao.getScanCodeReleasePos());
canBus.waitForMod(MId.ShakeModTubeScanerClampingSV, paramDao.getActionOvertime());
canBus.stepMotorEasyMoveTo(MId.FeedingModXM, pos);
canBus.waitForMod(MId.FeedingModXM, paramDao.getActionOvertime());
}
//
// 电机基础控制
//
/*=========================================================================================
* 公共方法
*========================================================================================*/
/**
* 模块使能
* @param enable 1:使能 0:禁用
* @throws HardwareException 硬件异常
*/
public AppRet modGroupEnable(Boolean enable) throws HardwareException {
comHardwareOpear.enableAllMotor(enable);
return AppRet.success();
}
/**
* 电机归零设备初始化时调用特点是直接调用MoveToZero
* 模块停止
* @throws HardwareException 硬件异常
* @throws InterruptedException 打断异常
*/
public void moveToZeroWhenDeviceSetup() throws HardwareException, InterruptedException {
public void modGroupStop() throws HardwareException {
comHardwareOpear.forceStopAllMOtor();
}
public void modGroupMoveToZero() throws HardwareException, InterruptedException {
Boolean state = canBus.stepMotorReadIoState(MId.ShakeModGripperZM);
if (!state) {
// return AppRet;
}
canBus.miniServoMoveTo(MId.ShakeModTubeScanerClampingSV, paramDao.getScanCodeReleasePos());
canBus.waitForMod(MId.ShakeModTubeScanerClampingSV, paramDao.getActionOvertime());
@ -64,6 +93,7 @@ public class MotorTubeRackMoveCtrlService {
canBus.waitForMod(MId.FeedingModXM, paramDao.getActionOvertime());
}
/**
* 电机归零电机运行时归零特点是通过归零判断设备是否丢步
* @throws HardwareException
@ -91,10 +121,7 @@ public class MotorTubeRackMoveCtrlService {
if (Math.abs(dval - distance) > params.getHorizontalMotorLostStepThresholdVal()) {
throw new HardwareException(MId.FeedingModXM, A8kEcode.MotorLostStep);
}
}
//
// 试管架移动
//
@ -103,6 +130,10 @@ public class MotorTubeRackMoveCtrlService {
* 移动试管架到入口位置
*/
public void moveTubeRackToEnterPos() throws HardwareException, InterruptedException {
/*
* 1. 先控制试管架夹紧机构复位让开通道
* 2. 移动到入口位置
*/
canBus.miniServoMoveTo(MId.ShakeModTubeScanerClampingSV, paramDao.getScanCodeReleasePos());
canBus.waitForMod(MId.ShakeModTubeScanerClampingSV, paramDao.getActionOvertime());
@ -114,6 +145,9 @@ public class MotorTubeRackMoveCtrlService {
* 移动试管架到出口位置
*/
public void moveTubeRackToExitPos() throws HardwareException, InterruptedException {
/*
* 1. 先控制试管架夹紧机构复位让开通道
*/
canBus.miniServoMoveTo(MId.ShakeModTubeScanerClampingSV, paramDao.getScanCodeReleasePos());
canBus.waitForMod(MId.ShakeModTubeScanerClampingSV, paramDao.getActionOvertime());

Loading…
Cancel
Save