diff --git a/src/main/java/a8k/a8k_can_protocol/A8kEcode.java b/src/main/java/a8k/a8k_can_protocol/A8kEcode.java index 52a0761..1c00edf 100644 --- a/src/main/java/a8k/a8k_can_protocol/A8kEcode.java +++ b/src/main/java/a8k/a8k_can_protocol/A8kEcode.java @@ -26,6 +26,7 @@ public enum A8kEcode { MNotInZeroPos(20, "电机没有在零点"),// TubeXChannelIsNotEmpty(21, "试管架平移通道不为空"),// TubeTypeNotSupport(22, "试管类型不支持"),// + CmdIdNotSupport(23, "不支持指令"),// // // FOR HARDWARE // diff --git a/src/main/java/a8k/a8k_can_protocol/A8kPacket.java b/src/main/java/a8k/a8k_can_protocol/A8kPacket.java index 77831cc..229d542 100644 --- a/src/main/java/a8k/a8k_can_protocol/A8kPacket.java +++ b/src/main/java/a8k/a8k_can_protocol/A8kPacket.java @@ -76,7 +76,7 @@ public class A8kPacket { } public int getContentI32(int index) { - return ByteArray.readU16bit(raw, 8 + index * 4); + return ByteArray.read32bit(raw, 8 + index * 4); } public String toByteString() { diff --git a/src/main/java/a8k/a8k_can_protocol/CmdId.java b/src/main/java/a8k/a8k_can_protocol/CmdId.java index 76f518e..05f1570 100644 --- a/src/main/java/a8k/a8k_can_protocol/CmdId.java +++ b/src/main/java/a8k/a8k_can_protocol/CmdId.java @@ -9,11 +9,11 @@ public enum CmdId { event_bus_reg_change_report(0x0064, "event_bus_reg_change_report"),// // module_ping(0x0100, "module_ping"),// - module_get_status(0x0104, "module_get_status"),// + module_get_status(0x0104, "module_get_status", false),// module_stop(0x0101, "module_stop"),// module_set_reg(0x0105, "module_set_reg"),// module_get_reg(0x0106, "module_get_reg"),// - module_get_error(0x010a, "module_get_error"),// + module_get_error(0x010a, "module_get_error", true),// module_clear_error(0x010b, "module_clear_error"),// module_active_cfg(0x0110, "module_active_cfg"),// // @@ -23,7 +23,7 @@ public enum CmdId { xymotor_move_to_zero(0x0304, "xymotor_move_to_zero"),// xymotor_read_pos(0x0306, "xymotor_read_pos"),// xymotor_read_inio_index_in_stm32(0x0307, "xymotor_read_inio_index_in_stm32"),// - xymotor_read_inio(0x0308, "xymotor_read_inio"),// + xymotor_read_inio(0x0308, "xymotor_read_inio", true),// xymotor_set_pos(0x0309, "xymotor_set_pos"),// xymotor_motor_move_by_direct(0x030a, "xymotor_motor_move_by_direct"),// xymotor_read_enc_direct(0x030b, "xymotor_read_enc_direct"),// @@ -78,7 +78,7 @@ public enum CmdId { step_motor_easy_move_to_io(0x0216, "step_motor_easy_move_to_io"),// step_motor_stop(0x0228, "step_motor_stop"),// step_motor_active_cfg(0x0229, "step_motor_active_cfg"),// - step_motor_read_io_state(0x022a, "step_motor_read_io_state"),// + step_motor_read_io_state(0x022a, "step_motor_read_io_state", true),// step_motor_easy_move_to_end_point(0x022c, "step_motor_easy_move_to_end_point"),// step_motor_read_tmc5130_status(0x0232, "step_motor_read_tmc5130_status"),// step_motor_read_tmc5130_state(0x0233, "step_motor_read_tmc5130_state"),// @@ -98,9 +98,9 @@ public enum CmdId { mini_servo_rotate_with_torque(0x660b, "mini_servo_rotate_with_torque"),// mini_servo_set_cur_pos(0x660c, "mini_servo_set_cur_pos"),// // - extboard_read_inio(0x6701, "extboard_read_inio"),// + extboard_read_inio(0x6701, "extboard_read_inio", true),// extboard_write_outio(0x6702, "extboard_write_outio"),// - extboard_read_muti_inio(0x6703, "extboard_read_muti_inio"),// + extboard_read_muti_inio(0x6703, "extboard_read_muti_inio", true),// extboard_read_inio_index_in_stm32(0x6704, "extboard_read_inio_index_in_stm32"),// extboard_read_outio_index_in_stm32(0x6705, "extboard_read_outio_index_in_stm32"),// extboard_read_outio(0x6706, "extboard_read_outio"),// @@ -140,23 +140,40 @@ public enum CmdId { public final static int ATTACH_IS_BYTES = 1; public final static int ATTACH_IS_INT32 = 2; - public int index; - public String chName; - public int cmdAttachType = ATTACH_IS_INT32; - public int receiptAttachType = ATTACH_IS_INT32; + public int index; + public String chName; + public int cmdAttachType = ATTACH_IS_INT32; + public int receiptAttachType = ATTACH_IS_INT32; + public boolean notTrace = false; + public boolean actionCmd = true; - CmdId(int index, String name) { + CmdId(int index, String chname) { this.index = index; - this.chName = chName; + this.chName = chname; } - CmdId(int index, String name, int cmdAttachType, int receiptAttachType) { + CmdId(int index, String chname, boolean notTrace) { + this.index = index; + this.chName = chname; + this.notTrace = notTrace; + this.actionCmd = !notTrace; + } + + CmdId(int index, String chname, int cmdAttachType, int receiptAttachType) { this.index = index; - this.chName = chName; + this.chName = chname; this.cmdAttachType = cmdAttachType; this.receiptAttachType = receiptAttachType; } + CmdId(int index, String chname, int cmdAttachType, int receiptAttachType, boolean notTrace) { + this.index = index; + this.chName = chname; + this.cmdAttachType = cmdAttachType; + this.receiptAttachType = receiptAttachType; + this.notTrace = notTrace; + } + public int toInt() { return index; @@ -185,5 +202,9 @@ public enum CmdId { return chName; } + public Boolean eq(Integer index) { + return this.index == index; + } + } diff --git a/src/main/java/a8k/base_hardware/A8kCanBusService.java b/src/main/java/a8k/base_hardware/A8kCanBusService.java index 4257995..3397153 100644 --- a/src/main/java/a8k/base_hardware/A8kCanBusService.java +++ b/src/main/java/a8k/base_hardware/A8kCanBusService.java @@ -208,11 +208,11 @@ public class A8kCanBusService { } - public void moduleSetReg(MId id, RegIndex regindex, int reg) throws HardwareException { + public void moduleSetReg(MId id, RegIndex regindex, Integer reg) throws HardwareException { callcmd(id.toInt(), CmdId.module_set_reg.toInt(), regindex.index, reg); } - public int moduleGetReg(MId id, RegIndex regindex) throws HardwareException { + public Integer moduleGetReg(MId id, RegIndex regindex) throws HardwareException { var packet = callcmd(id.toInt(), CmdId.module_get_reg.toInt(), regindex.index); return packet.getContentI32(0); } @@ -444,7 +444,7 @@ public class A8kCanBusService { public void waitForMod(MId mid, Integer acitionOvertime) throws InterruptedException, HardwareException { long startedAt = System.currentTimeMillis(); - +// Thread.sleep(300); // CmdId action = lastCmdMap.get(mid); CmdId action = lastCmdMapGet(mid); do { @@ -583,12 +583,16 @@ public class A8kCanBusService { isWaitingReceipt = true; String txpacket = pack.toByteString(); - if (debugFlag && pack.getCmdId() != CmdId.module_get_status.toInt()) { + CmdId cmdid = CmdId.valueOf(pack.getCmdId()); + if (cmdid == null) { + throw new HardwareException(MId.valueOf(pack.getModuleId()), A8kEcode.CmdIdNotSupport); + } + if (debugFlag && !cmdid.notTrace) { String packstr = pack.toString(); logger.info("Tx:|RAW:{}| {}", txpacket, packstr); } - if (pack.getCmdId() != CmdId.module_get_status.toInt()) { + if (cmdid.actionCmd) { lastCmdMapPut(MId.valueOf(pack.getModuleId()), CmdId.valueOf(pack.getCmdId())); } @@ -633,7 +637,13 @@ public class A8kCanBusService { A8kPacket packet = new A8kPacket(rx); - if (debugFlag && packet.getCmdId() != CmdId.module_get_status.toInt()) { + CmdId cmdid = CmdId.valueOf(packet.getCmdId()); + if (cmdid == null) { + logger.warn("Rx packet cmdid not support: {}", packet.getCmdId()); + return; + } + + if (debugFlag && !cmdid.notTrace) { logger.info("RX |RAW:{}| {}", s, packet); } diff --git a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java index 863da5a..4fc98b9 100644 --- a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java +++ b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java @@ -4,15 +4,19 @@ 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; -import com.iflytop.uf.util.UfCommon; +import a8k.utils.*; import jakarta.annotation.Resource; -import org.springframework.beans.factory.annotation.Autowired; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @Component +@HardwareService(name = "进出料控制模组") +@HardwareServiceParams(service = MotorTubeRackMoveCtrlService.class) public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { + HardwareParamReader hpReader = new HardwareParamReader(SamplesPreProcessModuleCtrlService.class); + static Logger logger = LoggerFactory.getLogger(MotorTubeRackMoveCtrlService.class); + /** * * 主要用来控制试管架的平移动作控制 @@ -27,18 +31,70 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { * 2. 扫码时试管夹紧夹紧 */ - - @Autowired - A8kTubeInfoDao tubeInfoDao; - @Resource - private A8kCanBusService canBus; - @Resource - MotorTubeRackMoveCtrlServiceParameterDao paramDao; - + private A8kCanBusService canBus; @Resource private CommonHardwareOpeartion comHardwareOpear; + @HardwareServiceParam(name = "超时时间", group = "基础参数") + public Integer getActionOvertime() { + return 10000; + } + + @HardwareServiceParam(name = "入料X位置", group = "试管架位置信息") + public Integer getTREnterXPos() { + return -51; + } + + // public void setTREnterXPos(Integer val){ + // return; + // } + + @HardwareServiceParam(name = "出料X位置", group = "试管架位置信息") + public Integer getTRExitXPos() { + return 0; + } + + @HardwareServiceParam(name = "试管架扫码X位置", group = "试管架位置信息") + public Integer getTRScanXPos() { + return 0; + } + + @HardwareServiceParam(name = "试管扫码位置", group = "试管位置信息") + public Integer getTScanXPos() { + return 0; + } + + @HardwareServiceParam(name = "试管高度判断位置", group = "试管位置信息") + public Integer getTAltitJudgXPos() { + return 0; + } + + @HardwareServiceParam(name = "试管是否存在判断位置", group = "试管位置信息") + public Integer getTExistJudgXPos() { + return 0; + } + + @HardwareServiceParam(name = "试管预处理位置", group = "试管位置信息") + public Integer getTPreProcessXPos() { + return 0; + } + + @HardwareServiceParam(name = "试管架孔间距", group = "其他") + public Integer getTubeSpacing() { + return 0; + } + + @HardwareServiceParam(name = "扫码舵机转速(0..900)", group = "其他") + public Integer getTubeScanServoTorque() { + return 300; + } + + @HardwareServiceParam(name = "试管扫码超时时间", group = "其他") + public Integer getTubeScanOvertime() { + return 1000; + } + /*========================================================================================= * Overrid *========================================================================================*/ @@ -49,6 +105,7 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { * @throws HardwareException 硬件异常 */ @Override + @HardwareServiceAction(name = "模块使能", group = "基础操作") public void modGroupEnable(Boolean enable) throws HardwareException { comHardwareOpear.enableAllMotor(enable); } @@ -58,26 +115,32 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { * @throws HardwareException 硬件异常 */ @Override + @HardwareServiceAction(name = "模块停止", group = "基础操作") public void modGroupStop() throws HardwareException { comHardwareOpear.forceStopAllMOtor(); } + @Override + @HardwareServiceAction(name = "模块归零", group = "基础操作") public void modGroupMoveToZero() throws HardwareException, InterruptedException { - if (!canBus.stepMotorReadIoState(MId.ShakeModGripperZM, 0)) { - throw new HardwareException(A8kEcode.ShakeModGripperZMNotInZeroPos); - } - canBus.miniServoMoveTo(MId.ShakeModTubeScanerClampingSV, paramDao.getScanCodeReleasePos()); - canBus.waitForMod(MId.ShakeModTubeScanerClampingSV, paramDao.getActionOvertime()); - + // if (!canBus.stepMotorReadIoState(MId.ShakeModGripperZM, 0)) { + // throw new HardwareException(A8kEcode.ShakeModGripperZMNotInZeroPos); + // } + canBus.miniServoEnable(MId.ShakeModTubeScanerClampingSV, 1); + canBus.miniServoMoveTo(MId.ShakeModTubeScanerClampingSV, 0); + canBus.waitForMod(MId.ShakeModTubeScanerClampingSV, getActionOvertime()); + + canBus.stepMotorEnable(MId.FeedingModXM, 1); canBus.stepMotorEasyMoveToZero(MId.FeedingModXM); - canBus.waitForMod(MId.FeedingModXM, paramDao.getActionOvertime()); + canBus.waitForMod(MId.FeedingModXM, getActionOvertime()); } @Override + @HardwareServiceAction(name = "模块快速归零", group = "基础操作") public void modGroupMoveToZeroQuick() throws HardwareException, InterruptedException { moveTubeRackTo(0); canBus.stepMotorEasyMoveToZero(MId.FeedingModXM); - canBus.waitForMod(MId.FeedingModXM, paramDao.getActionOvertime()); + canBus.waitForMod(MId.FeedingModXM, getActionOvertime()); } @@ -91,57 +154,108 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { * @throws HardwareException 硬件异常 * @throws InterruptedException 打断异常 */ - public void moveTubeRackTo(int pos) throws HardwareException, InterruptedException { - if (!canBus.stepMotorReadIoState(MId.ShakeModGripperZM, 0)) { - throw new HardwareException(A8kEcode.ShakeModGripperZMNotInZeroPos); - } + @HardwareServiceAction(name = "移动到X", group = "模块基础动作") + public void moveTubeRackTo(Integer pos) throws HardwareException, InterruptedException { + // if (!canBus.stepMotorReadIoState(MId.ShakeModGripperZM, 0)) { + // throw new HardwareException(A8kEcode.ShakeModGripperZMNotInZeroPos); + // } scanClampModRelease(); - + canBus.stepMotorEnable(MId.FeedingModXM, 1); canBus.stepMotorEasyMoveTo(MId.FeedingModXM, pos); - canBus.waitForMod(MId.FeedingModXM, paramDao.getActionOvertime()); + canBus.waitForMod(MId.FeedingModXM, getActionOvertime()); } /** * 扫描夹紧机构夹紧 */ + @HardwareServiceAction(name = "扫描夹紧机构夹紧", group = "模块基础动作") public void scanClampModClamp() throws HardwareException, InterruptedException { - canBus.miniServoMoveTo(MId.ShakeModTubeScanerClampingSV, paramDao.getScanCodeClampPos()); - canBus.waitForMod(MId.ShakeModTubeScanerClampingSV, paramDao.getActionOvertime()); + canBus.miniServoEnable(MId.ShakeModTubeScanerClampingSV, 1); + canBus.miniServoMoveTo(MId.ShakeModTubeScanerClampingSV, 900); + canBus.waitForMod(MId.ShakeModTubeScanerClampingSV, getActionOvertime()); } /** * 扫描夹紧机构复位 */ + @HardwareServiceAction(name = "扫描夹紧机构复位", group = "模块基础动作") public void scanClampModRelease() throws HardwareException, InterruptedException { - canBus.miniServoMoveTo(MId.ShakeModTubeScanerClampingSV, paramDao.getScanCodeReleasePos()); - canBus.waitForMod(MId.ShakeModTubeScanerClampingSV, paramDao.getActionOvertime()); + canBus.miniServoEnable(MId.ShakeModTubeScanerClampingSV, 1); + canBus.miniServoMoveTo(MId.ShakeModTubeScanerClampingSV, 0); + canBus.waitForMod(MId.ShakeModTubeScanerClampingSV, getActionOvertime()); } + /** + * 入料 + */ + @HardwareServiceAction(name = "入料", group = "模块基础动作") + public void tryEnterTubeRack(Integer time) throws HardwareException, InterruptedException { + try { + canBus.stepMotorEasyRotate(MId.FeedingModInfeedM, 1); + Thread.sleep(time); + } finally { + canBus.moduleStop(MId.FeedingModInfeedM); + } + } + + /** + * 出料 + */ + @HardwareServiceAction(name = "出料", group = "模块基础动作") + public void tryEjectTubeRack(Integer time) throws HardwareException, InterruptedException { + try { + canBus.stepMotorEasyRotate(MId.FeedingModOutfeedM, 1); + Thread.sleep(time); + } finally { + canBus.moduleStop(MId.FeedingModOutfeedM); + } + } + + @HardwareServiceAction(name = "通过归零读取当前电机位置", group = "模块基础动作") + public AppRet readXPosByMoveZero() throws HardwareException, InterruptedException { + + + canBus.stepMotorEnable(MId.FeedingModXM, 1); + canBus.stepMotorEasyMoveToZero(MId.FeedingModXM); + canBus.waitForMod(MId.FeedingModXM, getActionOvertime()); + canBus.stepMotorEnable(MId.FeedingModXM, 0); + return AppRet.success(-canBus.moduleGetReg(MId.FeedingModXM, RegIndex.kreg_step_motor_dpos)); + } + + + + + /*========================================================================================= + * 片段 + *========================================================================================*/ /** * 移动试管架到入口位置 */ + @HardwareServiceAction(name = "移动<试管架>到入口位置", group = "片段") public void tubeRackMoveToEnterPos() throws HardwareException, InterruptedException { - moveTubeRackTo(paramDao.getTubeRackEnterPos()); + moveTubeRackTo(getTREnterXPos()); } /** - * 移动试管架到出口位置 + * 移动<试管架>到出口位置 */ + @HardwareServiceAction(name = "移动<试管架>到出口位置", group = "片段") public void moveTubeRackToExitPos() throws HardwareException, InterruptedException { - moveTubeRackTo(paramDao.getTubeRackExitPos()); + moveTubeRackTo(getTRExitXPos()); } /** - * 移动试管架到试管架扫码位置 + * 移动<试管架>到试管架扫码位置 */ - public void moveTubeRackToScanPos() throws HardwareException, InterruptedException { - moveTubeRackTo(paramDao.getTubeRackScanCodePos()); + private void moveTubeRackToScanPos() throws HardwareException, InterruptedException { + moveTubeRackTo(getTRScanXPos()); } /** - * 移动试管架到试管架扫码并扫码 + * 移动试管架到扫码并扫码 */ + @HardwareServiceAction(name = "扫描试管架编码", group = "片段") public AppRet moveTubeRackToScanPosAndScan() throws HardwareException, InterruptedException { String result; moveTubeRackToScanPos(); @@ -152,7 +266,6 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { scanClampModRelease(); return AppRet.success(result); } - // // 试管移动 // @@ -161,10 +274,10 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { * 移动试管到扫码位置 * @param tubeIndex 试管索引 */ - public AppRet moveTubeToScanPos(Integer tubeIndex) throws HardwareException, InterruptedException { - var scanPos = paramDao.getTubeScanPos() + tubeIndex * paramDao.getTubeSpacing(); + private AppRet moveTubeToScanPos(Integer tubeIndex) throws HardwareException, InterruptedException { + var scanPos = getTScanXPos() + tubeIndex * getTubeSpacing(); canBus.stepMotorEasyMoveTo(MId.FeedingModXM, scanPos); - canBus.waitForMod(MId.FeedingModXM, paramDao.getActionOvertime()); + canBus.waitForMod(MId.FeedingModXM, getActionOvertime()); return AppRet.success(); } @@ -172,6 +285,7 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { * 移动试管到扫码位置,并扫码 * @param tubeIndex 试管索引 */ + @HardwareServiceAction(name = "扫描<试管X>编码", group = "片段") public AppRet moveTubeToScanPosAndScan(Integer tubeIndex) throws HardwareException, InterruptedException { var ret = this.moveTubeToScanPos(tubeIndex); if (!ret.isSuccess()) {return AppRet.fail(ret);} @@ -179,8 +293,8 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { try { scanClampModClamp(); canBus.codeScanerStartScan(MId.FeedingModScannerMod); - canBus.miniServoRotateWithTorque(MId.ShakeModTubeScanerClampingSV, paramDao.getTubeScanServoTorque()); - String result = canBus.codeScanerWaittingForResult(MId.FeedingModScannerMod, paramDao.getTubeScanOvertime()); + canBus.miniServoRotateWithTorque(MId.ShakeModTubeScanerClampingSV, getTubeScanServoTorque()); + String result = canBus.codeScanerWaittingForResult(MId.FeedingModScannerMod, getTubeScanOvertime()); return AppRet.success(result); } finally { canBus.moduleStop(MId.ShakeModTubeScanerClampingSV); @@ -193,66 +307,57 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { * 移动试管到试管高低判断位置 * @param tubeIndex 试管索引 */ - public void moveTubeToHeighJudgmentPos(Integer tubeIndex) throws HardwareException, InterruptedException { - moveTubeRackTo(paramDao.getTubeHeighJudgmentPos() + tubeIndex * paramDao.getTubeSpacing()); + @HardwareServiceAction(name = "判断<试管N>位置", group = "片段") + public AppRet moveTubeToAltitJudgXPos(Integer tubeIndex) throws HardwareException, InterruptedException { + moveTubeRackTo(getTAltitJudgXPos() + tubeIndex * getTubeSpacing()); + return AppRet.success(isHighTube()); } /** * 移动试管到试管预处理的位置 * @param tubeIndex 试管索引 */ + @HardwareServiceAction(name = "移动<试管N>摇匀位", group = "片段") public void moveTubeToPreProcessPos(Integer tubeIndex) throws HardwareException, InterruptedException { - moveTubeRackTo(paramDao.getTubePreProcessPos() + tubeIndex * paramDao.getTubeSpacing()); + moveTubeRackTo(getTPreProcessXPos() + tubeIndex * getTubeSpacing()); } /** * 移动试管到试管有无判断位置 * @param tubeIndex 试管索引 */ - public void moveTubeToExistJudgmentPos(Integer tubeIndex) throws HardwareException, InterruptedException { - moveTubeRackTo(paramDao.getTubeExistJudgmentPos() + tubeIndex * paramDao.getTubeSpacing()); - } - - public void tryEnterTubeRack(Integer time) throws HardwareException, InterruptedException { - try { - canBus.stepMotorEasyRotate(MId.FeedingModInfeedM, 1); - Thread.sleep(time); - } finally { - canBus.moduleStop(MId.FeedingModInfeedM); - } + @HardwareServiceAction(name = "判断<试管N>是否存在", group = "片段") + public AppRet judgeTubeExist(Integer tubeIndex) throws HardwareException, InterruptedException { + moveTubeRackTo(getTExistJudgXPos() + tubeIndex * getTubeSpacing()); + return AppRet.success(isTubeRackInEnterPos()); } - public void tryEjectTubeRack(Integer time) throws HardwareException, InterruptedException { - try { - canBus.stepMotorEasyRotate(MId.FeedingModOutfeedM, 1); - Thread.sleep(time); - } finally { - canBus.moduleStop(MId.FeedingModOutfeedM); - } - } - // // 状态 // - - public AppRet isTubeRackInEnterPos() throws HardwareException { - return AppRet.success(canBus.getIOState(IOId.InfeedPPS)); + @HardwareServiceStatus(name = "入口光电") + public Boolean isTubeRackInEnterPos() throws HardwareException { + return canBus.getIOState(IOId.InfeedPPS); } - public AppRet isTubeRackInExitPos() throws HardwareException { - return AppRet.success(canBus.getIOState(IOId.OutfeedPPS)); + @HardwareServiceStatus(name = "出口光电") + public Boolean isTubeRackInExitPos() throws HardwareException { + return canBus.getIOState(IOId.OutfeedPPS); } - public AppRet isHighTube() throws HardwareException { - return AppRet.success(canBus.getIOState(IOId.TubeHeightPPS)); + @HardwareServiceStatus(name = "高低判读光电") + public Boolean isHighTube() throws HardwareException { + return canBus.getIOState(IOId.TubeHeightPPS); } - public AppRet getTHchOuterPPS() throws HardwareException { - return AppRet.success(canBus.getIOState(IOId.THChOuterPPS)); + @HardwareServiceStatus(name = "通道外光电") + public Boolean getTHchOuterPPS() throws HardwareException { + return canBus.getIOState(IOId.THChOuterPPS); } - public AppRet getTHchInterPPS() throws HardwareException { - return AppRet.success(canBus.getIOState(IOId.THChInterPPS)); + @HardwareServiceStatus(name = "通道内光电") + public Boolean getTHchInterPPS() throws HardwareException { + return canBus.getIOState(IOId.THChInterPPS); } } diff --git a/src/main/java/a8k/service/hardware/ReactionPlatesTransmitCtrlService.java b/src/main/java/a8k/service/hardware/ReactionPlatesTransmitCtrlService.java index 07bfe1d..87bfe1b 100644 --- a/src/main/java/a8k/service/hardware/ReactionPlatesTransmitCtrlService.java +++ b/src/main/java/a8k/service/hardware/ReactionPlatesTransmitCtrlService.java @@ -37,7 +37,7 @@ public class ReactionPlatesTransmitCtrlService { 基础操作 =======================================================================================*/ - AppRet moduleReset() throws HardwareException, InterruptedException { + AppRet moduleReset() throws HardwareException, InterruptedException { //光电状态检查 //试管平移通道是否有障碍 if (canBus.getIOState(IOId.THChInterPPS) || canBus.getIOState(IOId.THChOuterPPS)) { diff --git a/zhaohe_app.db b/zhaohe_app.db index a582a92..d61438e 100644 Binary files a/zhaohe_app.db and b/zhaohe_app.db differ