diff --git a/app.db b/app.db index d20effb..44f513f 100644 Binary files a/app.db and b/app.db differ diff --git a/src/main/java/a8k/service/app/appctrl/ConsumablesScanService.java b/src/main/java/a8k/service/app/appctrl/AppConsumablesScanService.java similarity index 99% rename from src/main/java/a8k/service/app/appctrl/ConsumablesScanService.java rename to src/main/java/a8k/service/app/appctrl/AppConsumablesScanService.java index 448be15..3346f24 100644 --- a/src/main/java/a8k/service/app/appctrl/ConsumablesScanService.java +++ b/src/main/java/a8k/service/app/appctrl/AppConsumablesScanService.java @@ -30,8 +30,8 @@ import java.util.List; import java.util.Map; @Component -public class ConsumablesScanService { - static Logger logger = org.slf4j.LoggerFactory.getLogger(ConsumablesScanService.class); +public class AppConsumablesScanService { + static Logger logger = org.slf4j.LoggerFactory.getLogger(AppConsumablesScanService.class); @Autowired private AppDebugHelperService appDebugHelperService; diff --git a/src/main/java/a8k/service/app/appctrl/AppDeviceCtrlService.java b/src/main/java/a8k/service/app/appctrl/AppDeviceCtrlService.java index 29116b1..137a120 100644 --- a/src/main/java/a8k/service/app/appctrl/AppDeviceCtrlService.java +++ b/src/main/java/a8k/service/app/appctrl/AppDeviceCtrlService.java @@ -1,22 +1,18 @@ package a8k.service.app.appctrl; -import a8k.OS; import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; import a8k.extapi_controler.utils.ExtApiFn; import a8k.extapi_controler.utils.ExtApiTab; -import a8k.service.app.appctrl.mainflowctrl.base.A8kStepAction; import a8k.service.app.appstate.ConsumablesMgrService; import a8k.service.app.appstate.ProjectProcessContextMgrService; import a8k.service.app.appstate.type.*; -import a8k.service.app.appstate.type.state.OptScanModuleState; +import a8k.service.app.devicedriver.ctrl.DeviceInitCtrlService; import a8k.service.debug.AppDebugHelperService; -import a8k.type.Consumable; import a8k.type.ConsumableGroup; import a8k.type.checkpoint.CheckResult; import a8k.service.app.appstate.GStateService; import a8k.type.consumables.ConsumableState; import a8k.type.exception.AppException; -import freemarker.debug.impl.DebuggerService; import jakarta.annotation.Resource; import org.springframework.stereotype.Component; @@ -28,15 +24,15 @@ import java.util.Map; public class AppDeviceCtrlService { @Resource - GStateService gstate; + GStateService gstate; @Resource - DeviceInitCtrlService deviceInitializationModule; //设备初始化模块 + DeviceInitCtrlService deviceInitializationModule; //设备初始化模块 @Resource - MainFlowCtrlService mainFlowCtrlSampleScanService; //主流程控制模块 + AppMainFlowCtrlService mainFlowCtrlSampleScanService; //主流程控制模块 @Resource - ConsumablesScanService consumablesScanService; //耗材扫描模块 + AppConsumablesScanService appConsumablesScanService; //耗材扫描模块 @Resource - ConsumablesMgrService consumablesMgrService; //耗材管理模块 + ConsumablesMgrService consumablesMgrService; //耗材管理模块 @Resource ProjectProcessContextMgrService projectProcessContextMgrService; //项目处理上下文管理模块 @@ -87,12 +83,12 @@ public class AppDeviceCtrlService { +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ @ExtApiFn(name = "扫描耗材", group = "耗材扫描") public Map scanConsumables() throws AppException { - return consumablesScanService.scanConsumables(); + return appConsumablesScanService.scanConsumables(); } @ExtApiFn(name = "扫描某一组耗材", group = "耗材扫描") public Map scanOneGroupConsumables(ConsumableGroup group) throws AppException { - return consumablesScanService.scanOneGroupConsumables(group); + return appConsumablesScanService.scanOneGroupConsumables(group); } diff --git a/src/main/java/a8k/service/app/appctrl/MainFlowCtrlService.java b/src/main/java/a8k/service/app/appctrl/AppMainFlowCtrlService.java similarity index 96% rename from src/main/java/a8k/service/app/appctrl/MainFlowCtrlService.java rename to src/main/java/a8k/service/app/appctrl/AppMainFlowCtrlService.java index b775409..c01adf0 100644 --- a/src/main/java/a8k/service/app/appctrl/MainFlowCtrlService.java +++ b/src/main/java/a8k/service/app/appctrl/AppMainFlowCtrlService.java @@ -19,8 +19,8 @@ import org.springframework.stereotype.Component; import java.util.List; @Component -public class MainFlowCtrlService { - static Logger logger = LoggerFactory.getLogger(MainFlowCtrlService.class); +public class AppMainFlowCtrlService { + static Logger logger = LoggerFactory.getLogger(AppMainFlowCtrlService.class); @Resource diff --git a/src/main/java/a8k/service/app/appctrl/TubeSettingMgrService.java b/src/main/java/a8k/service/app/appctrl/AppTubeSettingMgrService.java similarity index 98% rename from src/main/java/a8k/service/app/appctrl/TubeSettingMgrService.java rename to src/main/java/a8k/service/app/appctrl/AppTubeSettingMgrService.java index b94793b..350a8f4 100644 --- a/src/main/java/a8k/service/app/appctrl/TubeSettingMgrService.java +++ b/src/main/java/a8k/service/app/appctrl/AppTubeSettingMgrService.java @@ -22,8 +22,8 @@ import java.util.List; @Component @ExtApiTab(cfg = ExtApiTabConfig.AppTubeSettingMgrService) -public class TubeSettingMgrService { - static Logger logger = LoggerFactory.getLogger(TubeSettingMgrService.class); +public class AppTubeSettingMgrService { + static Logger logger = LoggerFactory.getLogger(AppTubeSettingMgrService.class); static class ORDER { static final int getA8kDeviceCfg = 1; diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ1_ENTER_TUBEHOLDER_AND_SCAN.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ1_ENTER_TUBEHOLDER_AND_SCAN.java index 9d3d9ad..20c7748 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ1_ENTER_TUBEHOLDER_AND_SCAN.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ1_ENTER_TUBEHOLDER_AND_SCAN.java @@ -7,7 +7,7 @@ import a8k.service.bases.AppEventBusService; import a8k.service.bases.appevent.AppWarningNotifyEvent; import a8k.hardware.type.a8kcanprotocol.A8kEcode; import a8k.service.app.appctrl.mainflowctrl.CondtionMgrService; -import a8k.service.app.appctrl.TubeSettingMgrService; +import a8k.service.app.appctrl.AppTubeSettingMgrService; import a8k.service.app.appctrl.mainflowctrl.base.A8kActionStepType; import a8k.service.app.appctrl.mainflowctrl.base.A8kStepAction; @@ -52,11 +52,11 @@ public class SEQ1_ENTER_TUBEHOLDER_AND_SCAN extends A8kStepAction { @Resource SampleScanTransportHardwareControler stc; @Resource - AppEventBusService ebus; + AppEventBusService ebus; @Resource - TubeSettingMgrService tubeSettingMgrService; + AppTubeSettingMgrService appTubeSettingMgrService; @Resource - AppProjInfoMgrService appProjInfoMgr; + AppProjInfoMgrService appProjInfoMgr; @Resource AppDebugHelperService appDebugHelper; @Resource @@ -164,7 +164,7 @@ public class SEQ1_ENTER_TUBEHOLDER_AND_SCAN extends A8kStepAction { TubeHolder parseScanResult(TubeHolderScanResult scanResult) throws AppException { TubeHolder tubeholder = new TubeHolder(); - TubeHolderSetting setting = tubeSettingMgrService.interUseGetThelastActiveTubeHolderSettingAndLock(); + TubeHolderSetting setting = appTubeSettingMgrService.interUseGetThelastActiveTubeHolderSettingAndLock(); try { //获取试管架类型 A8kTubeHolderType tubeHolderType = A8kTubeHolderType.of(scanResult.tubeHolderType); @@ -188,13 +188,13 @@ public class SEQ1_ENTER_TUBEHOLDER_AND_SCAN extends A8kStepAction { //设置试管架状态 tubeholder.setState(TubeHolderState.PROCESSING); //删除之前的试管架配置 - tubeSettingMgrService.interUseRemoveTubeHolderSetting(setting); + appTubeSettingMgrService.interUseRemoveTubeHolderSetting(setting); return tubeholder; } catch (AppException e) { //回滚部分状态 if (setting != null) - tubeSettingMgrService.interUseUnlockTubeHolderSetting(setting.uuid); + appTubeSettingMgrService.interUseUnlockTubeHolderSetting(setting.uuid); throw e; } } diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ4_PRE_PROCESS.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ4_PRE_PROCESS.java index ec9c465..d492b9f 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ4_PRE_PROCESS.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ4_PRE_PROCESS.java @@ -11,7 +11,7 @@ import a8k.service.app.appctrl.mainflowctrl.base.A8kStepAction; import a8k.service.app.appstate.*; import a8k.service.app.appstate.resource.A8kPublicResourceType; import a8k.service.app.appstate.type.Tube; -import a8k.service.app.devicedriver.basectrl.HbotBaseMoveControlService; +import a8k.service.app.devicedriver.basectrl.HbotBaseMoveControler; import a8k.service.app.devicedriver.ctrl.ReactionPlatesTransmitCtrl; import a8k.service.app.devicedriver.ctrl.SampleScanTransportHardwareControler; import a8k.service.app.devicedriver.ctrl.SamplesPreProcesCtrl; @@ -60,7 +60,7 @@ public class SEQ4_PRE_PROCESS extends A8kStepAction { @Resource SamplesPreProcesCtrl samplesPreProcesCtrl; @Resource - HbotBaseMoveControlService hbotBaseMoveControlService; + HbotBaseMoveControler hbotBaseMoveControler; @Resource IncubationPlateStateMgrService incubationPlateStateMgrService; @Resource diff --git a/src/main/java/a8k/service/app/devicedriver/basectrl/HbotBaseMoveControlService.java b/src/main/java/a8k/service/app/devicedriver/basectrl/HbotBaseMoveControler.java similarity index 76% rename from src/main/java/a8k/service/app/devicedriver/basectrl/HbotBaseMoveControlService.java rename to src/main/java/a8k/service/app/devicedriver/basectrl/HbotBaseMoveControler.java index 7eccdd0..ce482ab 100644 --- a/src/main/java/a8k/service/app/devicedriver/basectrl/HbotBaseMoveControlService.java +++ b/src/main/java/a8k/service/app/devicedriver/basectrl/HbotBaseMoveControler.java @@ -20,15 +20,15 @@ import org.springframework.stereotype.Component; */ @Component @ExtApiTab(cfg = ExtApiTabConfig.HbotControlService) -public class HbotBaseMoveControlService { - static Logger logger = LoggerFactory.getLogger(HbotBaseMoveControlService.class); +public class HbotBaseMoveControler { + static Logger logger = LoggerFactory.getLogger(HbotBaseMoveControler.class); @Resource - A8kCanBusService canBus; + A8kCanBusService canBus; @Resource PipetteCtrlModule pipetteCtrlModule; @Resource - HbotModule hbotModule; + HbotModule hbotModule; Integer ao = 20000; public void hbotMoveTo(Pos3d targetPos) throws AppException { @@ -59,9 +59,9 @@ public class HbotBaseMoveControlService { // HBot移动 hbotModule.enable(1); - hbotModule.moveToBlock(targetPos.x - 20, targetPos.y - 20, ao); - hbotModule.moveToBlock(targetPos.x, targetPos.y, ao); - hbotModule.moveToBlock(targetPos.x, targetPos.y, ao); + hbotModule.moveToBlock(targetPos.x - 20, targetPos.y - 20); + hbotModule.moveToBlock(targetPos.x, targetPos.y); + hbotModule.moveToBlock(targetPos.x, targetPos.y); // Z轴移动 if (targetPos.z != 0) { @@ -77,50 +77,50 @@ public class HbotBaseMoveControlService { hbotMoveTo(new Pos3d(tpos.x, tpos.y, 0)); } -// public String scan2dCode(Integer waittime) throws AppException { -// try { -// canBus.codeScanerStartScan(MId.PipetteModCodeScanner); -// String result = canBus.codeScanerWaittingForResult(MId.PipetteModCodeScanner, waittime); -// canBus.codeScanerStopScan(MId.PipetteModCodeScanner); -// return result; -// } catch (AppException e) { -// return ""; -// } -// } -// -// -// public void zMoveTo(Integer z) throws AppException { -// if (z == 0) { -// pipetteCtrlModule.zMotorMoveToZeroPointQuickBlock(); -// } else { -// pipetteCtrlModule.zMotorMoveToBlock(z); -// } -// } -// -// private void hbotCheckAndMoveTo(Pos2d targetPos) throws AppException { -// hbotMoveTo(new Pos3d(targetPos.x, targetPos.y, 0)); -// } - -// private void modGroupMoveToZero() throws AppException { -// if (!canBus.getIOState(IOId.PlateBoxCoverClosurePPS)) { -// throw new AppException(A8kEcode.APPE_PLATE_BOX_NOT_COVER); -// } -// -// pipetteCtrlModule.zMotorEnable(1); -// hbotModule.enable(1); -// -// hbotModule.moveToZeroBlock(timep.getHbotRuntoZeroActionOvertime()); -// -// // 丢弃tip -// Pos3d dropPos = pp.getTipDropPos(); -// hbotMoveTo(dropPos); -// // TODO: canBus.pipetteCtrlInitDeviceBlock(MId.PipetteMod, timep.getActionOvertime()); -// -// // 快速归零 -// modGroupMoveToZeroQuick(); -// } - -// private void modGroupMoveToZeroQuick() throws AppException { + // public String scan2dCode(Integer waittime) throws AppException { + // try { + // canBus.codeScanerStartScan(MId.PipetteModCodeScanner); + // String result = canBus.codeScanerWaittingForResult(MId.PipetteModCodeScanner, waittime); + // canBus.codeScanerStopScan(MId.PipetteModCodeScanner); + // return result; + // } catch (AppException e) { + // return ""; + // } + // } + // + // + // public void zMoveTo(Integer z) throws AppException { + // if (z == 0) { + // pipetteCtrlModule.zMotorMoveToZeroPointQuickBlock(); + // } else { + // pipetteCtrlModule.zMotorMoveToBlock(z); + // } + // } + // + // private void hbotCheckAndMoveTo(Pos2d targetPos) throws AppException { + // hbotMoveTo(new Pos3d(targetPos.x, targetPos.y, 0)); + // } + + // private void modGroupMoveToZero() throws AppException { + // if (!canBus.getIOState(IOId.PlateBoxCoverClosurePPS)) { + // throw new AppException(A8kEcode.APPE_PLATE_BOX_NOT_COVER); + // } + // + // pipetteCtrlModule.zMotorEnable(1); + // hbotModule.enable(1); + // + // hbotModule.moveToZeroBlock(timep.getHbotRuntoZeroActionOvertime()); + // + // // 丢弃tip + // Pos3d dropPos = pp.getTipDropPos(); + // hbotMoveTo(dropPos); + // // TODO: canBus.pipetteCtrlInitDeviceBlock(MId.PipetteMod, timep.getActionOvertime()); + // + // // 快速归零 + // modGroupMoveToZeroQuick(); + // } + + // private void modGroupMoveToZeroQuick() throws AppException { // hbotCheckAndMoveTo(new Pos2d(0, 0)); // } diff --git a/src/main/java/a8k/service/app/devicedriver/basectrl/HbotModule.java b/src/main/java/a8k/service/app/devicedriver/basectrl/HbotModule.java index aa359ae..88538fb 100644 --- a/src/main/java/a8k/service/app/devicedriver/basectrl/HbotModule.java +++ b/src/main/java/a8k/service/app/devicedriver/basectrl/HbotModule.java @@ -15,35 +15,38 @@ public class HbotModule { @Resource A8kCanBusService canBus; + Integer actionOvertime = 10000; + Integer moveToZeroActionOvertime = 20000; + public void enable(Integer enable) throws AppException { canBus.callcmd(MId.HbotM.toInt(), CmdId.xymotor_enable.toInt(), enable); } - public void moveBy(Integer x, Integer y) throws AppException { + private void moveBy(Integer x, Integer y) throws AppException { canBus.callcmd(MId.HbotM.toInt(), CmdId.xymotor_move_by.toInt(), x, y); } - public void moveByBlock(Integer x, Integer y, Integer actionOvertime) throws AppException { + public void moveByBlock(Integer x, Integer y) throws AppException { moveBy(x, y); canBus.waitForMod(MId.HbotM, actionOvertime); } - public void moveTo(Integer x, Integer y) throws AppException { + private void moveTo(Integer x, Integer y) throws AppException { canBus.callcmd(MId.HbotM.toInt(), CmdId.xymotor_move_to.toInt(), x, y); } - public void moveToBlock(Integer x, Integer y, Integer actionOvertime) throws AppException { + public void moveToBlock(Integer x, Integer y) throws AppException { moveTo(x, y); canBus.waitForMod(MId.HbotM, actionOvertime); } - public void moveToZero() throws AppException { + private void moveToZero() throws AppException { canBus.callcmd(MId.HbotM.toInt(), CmdId.xymotor_move_to_zero.toInt()); } - public void moveToZeroBlock(Integer actionOvertime) throws AppException { + public void moveToZeroBlock() throws AppException { moveToZero(); - canBus.waitForMod(MId.HbotM, actionOvertime); + canBus.waitForMod(MId.HbotM, moveToZeroActionOvertime); } public Pos2d readPos() throws AppException { diff --git a/src/main/java/a8k/service/app/devicedriver/basectrl/PipetteCtrlModule.java b/src/main/java/a8k/service/app/devicedriver/basectrl/PipetteCtrlModule.java index 0e1755d..918d516 100644 --- a/src/main/java/a8k/service/app/devicedriver/basectrl/PipetteCtrlModule.java +++ b/src/main/java/a8k/service/app/devicedriver/basectrl/PipetteCtrlModule.java @@ -130,7 +130,7 @@ public class PipetteCtrlModule { @ExtApiFn(name = "初始化设备", order = FnOrder.initDeviceBlock) - public void initDeviceBlock() throws AppException { + public void pipetteInitDeviceBlock() throws AppException { canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_init_device.toInt()); canBusService.waitForMod(MId.PipetteMod, overtime); } diff --git a/src/main/java/a8k/service/app/devicedriver/calibration/Hbot2DCodeScanPosCalibration.java b/src/main/java/a8k/service/app/devicedriver/calibration/Hbot2DCodeScanPosCalibration.java index 2ce4219..29a8e2d 100644 --- a/src/main/java/a8k/service/app/devicedriver/calibration/Hbot2DCodeScanPosCalibration.java +++ b/src/main/java/a8k/service/app/devicedriver/calibration/Hbot2DCodeScanPosCalibration.java @@ -5,6 +5,8 @@ import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; import a8k.extapi_controler.utils.ExtApiFn; import a8k.extapi_controler.utils.ExtApiTab; import a8k.hardware.A8kCanBusService; +import a8k.service.app.devicedriver.basectrl.HbotBaseMoveControler; +import a8k.service.app.devicedriver.basectrl.HbotModule; import a8k.service.app.devicedriver.basectrl.PipetteCtrlModule; import a8k.service.app.devicedriver.basectrl.CodeScaner; import a8k.service.app.devicedriver.param.Hbot2DCodeScanPos; @@ -17,20 +19,28 @@ import jakarta.annotation.Resource; @ExtApiTab(cfg = ExtApiTabConfig.Hbot2DCodeScanPosCalibration) public class Hbot2DCodeScanPosCalibration { - @Resource - Hbot2DCodeScanPos hbot2DCodeScanPos; @Resource - A8kCanBusService canBus; + A8kCanBusService canBus; + @Resource + CodeScaner codeScaner; + @Resource + PipetteCtrlModule pipetteCtrlModule; @Resource - CodeScaner codeScaner; + HbotModule hbotModule; @Resource - PipetteCtrlModule pipetteCtrlModule; + HbotBaseMoveControler hbotBaseMoveControler; + @Resource + Hbot2DCodeScanPos hbot2DCodeScanPos; - @ExtApiFn(name = "扫码测试(全部位置)", group = "测试工具", order = 0) + + @ExtApiFn(name = "归零", group = "测试工具", order = 0) public void deviceReset() throws AppException { pipetteCtrlModule.zMotorEnable(1); + hbotModule.enable(1); + pipetteCtrlModule.zMotorMoveZeroBlock(); + hbotModule.moveToZeroBlock(); } public void disableMotor() throws AppException { diff --git a/src/main/java/a8k/service/app/devicedriver/commonctrl/HardwareCommonCtrl.java b/src/main/java/a8k/service/app/devicedriver/commonctrl/HardwareCommonCtrl.java index 779a38b..34bf430 100644 --- a/src/main/java/a8k/service/app/devicedriver/commonctrl/HardwareCommonCtrl.java +++ b/src/main/java/a8k/service/app/devicedriver/commonctrl/HardwareCommonCtrl.java @@ -107,7 +107,7 @@ public class HardwareCommonCtrl { canBus.stepMotorEasyMoveToZeroBlock(MId.OptModPullM, timep.getRuntoZeroActionOvertime()); canBus.stepMotorEasyMoveToZeroBlock(MId.OptModScannerM, timep.getRuntoZeroActionOvertime()); //HBot初始化 - hbotModule.moveToZero(); + hbotModule.moveToZeroBlock(); // TODO canBus.stepMotorEasyMoveToZeroBlock(MId.PipetteModZM, timep.getRuntoZeroActionOvertime()); //转盘归零 diff --git a/src/main/java/a8k/service/app/devicedriver/ctrl/ConsumablesScanCtrl.java b/src/main/java/a8k/service/app/devicedriver/ctrl/ConsumablesScanCtrl.java index 0d5047a..6291fe4 100644 --- a/src/main/java/a8k/service/app/devicedriver/ctrl/ConsumablesScanCtrl.java +++ b/src/main/java/a8k/service/app/devicedriver/ctrl/ConsumablesScanCtrl.java @@ -1,7 +1,7 @@ package a8k.service.app.devicedriver.ctrl; import a8k.service.app.devicedriver.basectrl.CodeScaner; -import a8k.service.app.devicedriver.basectrl.HbotBaseMoveControlService; +import a8k.service.app.devicedriver.basectrl.HbotBaseMoveControler; import a8k.service.bases.ActionReactorService; import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; import a8k.extapi_controler.utils.ExtApiFn; @@ -28,9 +28,9 @@ public class ConsumablesScanCtrl { @Resource Hbot2DCodeScanPos hbotScanPos; @Resource - CodeScaner codeScaner; + CodeScaner codeScaner; @Resource - HbotBaseMoveControlService hbot; + HbotBaseMoveControler hbot; private void hbotMoveTo(Pos2d tpos) throws AppException { diff --git a/src/main/java/a8k/service/app/appctrl/DeviceInitCtrlService.java b/src/main/java/a8k/service/app/devicedriver/ctrl/DeviceInitCtrlService.java similarity index 56% rename from src/main/java/a8k/service/app/appctrl/DeviceInitCtrlService.java rename to src/main/java/a8k/service/app/devicedriver/ctrl/DeviceInitCtrlService.java index 897c234..238fecc 100644 --- a/src/main/java/a8k/service/app/appctrl/DeviceInitCtrlService.java +++ b/src/main/java/a8k/service/app/devicedriver/ctrl/DeviceInitCtrlService.java @@ -1,4 +1,4 @@ -package a8k.service.app.appctrl; +package a8k.service.app.devicedriver.ctrl; import a8k.hardware.A8kCanBusService; import a8k.hardware.type.a8kcanprotocol.A8kEcode; @@ -6,6 +6,7 @@ import a8k.hardware.type.a8kcanprotocol.IOId; import a8k.hardware.type.a8kcanprotocol.MId; import a8k.service.bases.ActionReactorService; import a8k.service.debug.AppDebugHelperService; +import a8k.type.CheckPointType; import a8k.type.checkpoint.CheckResult; import a8k.type.checkpoint.Checkpoint; import a8k.service.app.appstate.GStateService; @@ -21,25 +22,19 @@ import java.util.List; @Component public class DeviceInitCtrlService { - @Resource - ActionReactorService ar; - - List checkPoints = new ArrayList<>(); - + GStateService gstate; @Resource - A8kCanBusService canBus; - + ActionReactorService actionReactor; @Resource - HbotModule hbotModule; - + A8kCanBusService canBus; @Resource - GStateService gstate; - + HbotModule hbotModule; @Resource AppDebugHelperService appDebugHelper; - Integer actionOvertime = 10000; + Integer actionOvertime = 10000; + List checkPoints = new ArrayList<>(); @PostConstruct void init() { @@ -55,20 +50,20 @@ public class DeviceInitCtrlService { CheckPointType.CHECK_PUSHERM_IN_IN_ZEROPOS, () -> canBus.getIOState(IOId.PusherMZeroPPS))); checkPoints.add(new Checkpoint("检查垃圾箱是否满",// CheckPointType.CHECK_RECYCLE_BIN_IS_OVERFLOW, () -> !canBus.getIOState(IOId.RecycleBinOverflowPPS))); - } public List checkBeforeInitDevice() throws AppException { - if (appDebugHelper.isDebug()) { - return appDebugHelper.checkBeforeInitDevice(); - } List results = new java.util.ArrayList<>(); for (Checkpoint checkPoint : checkPoints) { CheckResult result = new CheckResult(); result.type = checkPoint.type; result.typechinfo = checkPoint.typechinfo; - result.pass = checkPoint.checkfn.check(); + if (!appDebugHelper.isDebug()) { + result.pass = checkPoint.checkfn.check(); + } else { + result.pass = true; + } results.add(result); } return results; @@ -97,35 +92,26 @@ public class DeviceInitCtrlService { if (!suc) { throw new AppException(A8kEcode.APPE_CHECK_POINT_CHECK_FAIL); } - //进出料初始化 - ar.dosome("入料平移电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.FeedingModXM, actionOvertime)); - ar.dosome("摇匀模组-扫码夹紧舵机回零", () -> canBus.miniServoMoveToBlock(MId.ShakeModTubeScanerClampingSV, 20, actionOvertime)); - ar.dosome("摇匀模组-夹爪舵机回零", () -> canBus.miniServoMoveToBlock(MId.ShakeModGripperSV, 300, actionOvertime)); - ar.dosome("摇匀模组-夹爪Y轴舵机回零", () -> canBus.miniServoMoveToBlock(MId.ShakeModGripperYSV, 300, actionOvertime)); - ar.dosome("摇匀模组-夹紧电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.ShakeModClampingM, actionOvertime)); - ar.dosome("摇匀模组-夹爪Z轴电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.ShakeModGripperZM, actionOvertime)); - ar.dosome("摇匀模组-摇匀电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.ShakeModShakeM, actionOvertime)); - ar.dosome("摇匀模组-摇匀电机摆动90度", () -> canBus.stepMotorEasyMoveTo(MId.ShakeModShakeM, 90)); - + actionReactor.dosome("入料平移电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.FeedingModXM, actionOvertime)); + actionReactor.dosome("摇匀模组-扫码夹紧舵机回零", () -> canBus.miniServoMoveToBlock(MId.ShakeModTubeScanerClampingSV, 20, actionOvertime)); + actionReactor.dosome("摇匀模组-夹爪舵机回零", () -> canBus.miniServoMoveToBlock(MId.ShakeModGripperSV, 300, actionOvertime)); + actionReactor.dosome("摇匀模组-夹爪Y轴舵机回零", () -> canBus.miniServoMoveToBlock(MId.ShakeModGripperYSV, 300, actionOvertime)); + actionReactor.dosome("摇匀模组-夹紧电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.ShakeModClampingM, actionOvertime)); + actionReactor.dosome("摇匀模组-夹爪Z轴电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.ShakeModGripperZM, actionOvertime)); + actionReactor.dosome("摇匀模组-摇匀电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.ShakeModShakeM, actionOvertime)); + actionReactor.dosome("摇匀模组-摇匀电机摆动90度", () -> canBus.stepMotorEasyMoveTo(MId.ShakeModShakeM, 90)); //板夹仓初始化 - ar.dosome("板夹仓Y轴电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.PlatesBoxYM, actionOvertime)); - ar.dosome("板夹仓推板电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.PlatesBoxPusherM, actionOvertime)); - + actionReactor.dosome("板夹仓Y轴电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.PlatesBoxYM, actionOvertime)); + actionReactor.dosome("板夹仓推板电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.PlatesBoxPusherM, actionOvertime)); //光学模组初始化 - ar.dosome("光学模组-拉杆电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.OptModPullM, actionOvertime)); - ar.dosome("光学模组-扫码电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.OptModScannerM, actionOvertime)); - + actionReactor.dosome("光学模组-拉杆电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.OptModPullM, actionOvertime)); + actionReactor.dosome("光学模组-扫码电机回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.OptModScannerM, actionOvertime)); //HBot初始化 - ar.dosome("HBot回零", () -> hbotModule.moveToZero()); - + actionReactor.dosome("HBot回零", () -> hbotModule.moveToZeroBlock()); //转盘归零 - ar.dosome("转盘回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.IncubatorRotateCtrlM, actionOvertime)); - + actionReactor.dosome("转盘回零", () -> canBus.stepMotorEasyMoveToZeroBlock(MId.IncubatorRotateCtrlM, actionOvertime)); gstate.setDeviceInited(true); } - - // setDeviceInited - } diff --git a/src/main/java/a8k/service/app/devicedriver/testscript/TestScript.java b/src/main/java/a8k/service/app/devicedriver/testscript/TestScript.java index 530dd7e..7e1b63c 100644 --- a/src/main/java/a8k/service/app/devicedriver/testscript/TestScript.java +++ b/src/main/java/a8k/service/app/devicedriver/testscript/TestScript.java @@ -11,7 +11,7 @@ import a8k.service.app.devicedriver.ctrl.SamplesPreProcesCtrl; import a8k.service.app.devicedriver.ctrl.SampleScanTransportHardwareControler; import a8k.hardware.A8kCanBusService; import a8k.hardware.type.a8kcanprotocol.A8kEcode; -import a8k.service.app.devicedriver.basectrl.HbotBaseMoveControlService; +import a8k.service.app.devicedriver.basectrl.HbotBaseMoveControler; import a8k.service.app.devicedriver.ctrl.ReactionPlatesTransmitCtrl; import a8k.service.app.devicedriver.param.DebugParam; import a8k.service.app.devicedriver.param.PosParam; @@ -45,7 +45,7 @@ public class TestScript { ApplicationContext appCxt; @Resource - HbotBaseMoveControlService hbotcs; + HbotBaseMoveControler hbotcs; @Resource TimeParam timep; @@ -63,7 +63,7 @@ public class TestScript { @Resource SampleScanTransportHardwareControler sampleScanTransportHardwareControler; - EnginnerParamReader settingReader = new EnginnerParamReader(HbotBaseMoveControlService.class); + EnginnerParamReader settingReader = new EnginnerParamReader(HbotBaseMoveControler.class); // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // 测试 diff --git a/src/main/java/a8k/service/debug/AppDebugHelperService.java b/src/main/java/a8k/service/debug/AppDebugHelperService.java index b546502..b074d71 100644 --- a/src/main/java/a8k/service/debug/AppDebugHelperService.java +++ b/src/main/java/a8k/service/debug/AppDebugHelperService.java @@ -9,9 +9,9 @@ import a8k.hardware.type.a8kcanprotocol.A8kEcode; import a8k.hardware.type.a8kcanprotocol.CmdId; import a8k.hardware.type.a8kcanprotocol.MId; import a8k.service.app.appctrl.AppDeviceCtrlService; -import a8k.service.app.appctrl.CheckPointType; -import a8k.service.app.appctrl.MainFlowCtrlService; -import a8k.service.app.appctrl.TubeSettingMgrService; +import a8k.type.CheckPointType; +import a8k.service.app.appctrl.AppMainFlowCtrlService; +import a8k.service.app.appctrl.AppTubeSettingMgrService; import a8k.service.app.appctrl.mainflowctrl.CondtionMgrService; import a8k.service.app.appctrl.mainflowctrl.base.A8kActionStepType; import a8k.service.app.appctrl.mainflowctrl.base.A8kErrorContext; @@ -259,8 +259,8 @@ public class AppDebugHelperService { @ExtApiFn(name = "获取运行步骤状态", group = "调试") public List getA8kStepActionList() { - MainFlowCtrlService mainFlowCtrlService = SpringBootBeanUtil.getBean(MainFlowCtrlService.class); - return mainFlowCtrlService.getA8kStepActionList(); + AppMainFlowCtrlService appMainFlowCtrlService = SpringBootBeanUtil.getBean(AppMainFlowCtrlService.class); + return appMainFlowCtrlService.getA8kStepActionList(); } @ExtApiFn(name = "获取设备状态()", group = "调试") @@ -300,15 +300,15 @@ public class AppDebugHelperService { //添加试管配置 logger.info("添加试管配置"); - TubeSettingMgrService tubeSettingMgrService = SpringBootBeanUtil.getBean(TubeSettingMgrService.class); - tubeSettingMgrService.newTubeHolderSetting(); - TubeHolderSetting setting = tubeSettingMgrService.newTubeHolderSettingV2(); + AppTubeSettingMgrService appTubeSettingMgrService = SpringBootBeanUtil.getBean(AppTubeSettingMgrService.class); + appTubeSettingMgrService.newTubeHolderSetting(); + TubeHolderSetting setting = appTubeSettingMgrService.newTubeHolderSettingV2(); for (int i = 0; i < 10; i++) { - tubeSettingMgrService.setTubeSettingUserIdAndSampleBarcode(setting.uuid, i, String.format("USR%d", i), ""); - tubeSettingMgrService.setTubeSetting(setting.uuid, i, BloodType.WHOLE_BLOOD,// + appTubeSettingMgrService.setTubeSettingUserIdAndSampleBarcode(setting.uuid, i, String.format("USR%d", i), ""); + appTubeSettingMgrService.setTubeSetting(setting.uuid, i, BloodType.WHOLE_BLOOD,// String.format("%d,%d,%d,%d,%d,%d", p01_hscrr.projIndex, p02_pct.projIndex, p03_tsh.projIndex, p05_t3.projIndex, p06_t4.projIndex, p22_pctAndHsCRP.projIndex)); } - tubeSettingMgrService.tubeHodlerSettingSetActiveState(setting.uuid, true); + appTubeSettingMgrService.tubeHodlerSettingSetActiveState(setting.uuid, true); //初始化设备 logger.info("初始化设备"); @@ -422,28 +422,6 @@ public class AppDebugHelperService { } - public List checkBeforeInitDevice() throws AppException { - List checkPoints = new ArrayList<>(); - List resultss = new java.util.ArrayList<>(); - - checkPoints.add(new Checkpoint("入料通道是否为空", CheckPointType.CHECK_PLATE_BOX_IS_COVER, () -> true)); - checkPoints.add(new Checkpoint("板夹仓盖子是否盖着", CheckPointType.CHECK_PLATE_BOX_IS_COVER, () -> true)); - checkPoints.add(new Checkpoint("板夹仓卡板检测", CheckPointType.CHECK_PLATE_STUCK_DETECTOR_SENSOR_IS_TRIGGER, () -> true)); - checkPoints.add(new Checkpoint("检查拉杆电机是否在零点位置", CheckPointType.CHECK_PULLERM_IS_IN_ZEROPOS, () -> true)); - checkPoints.add(new Checkpoint("检查推杆电机是否在零点位置", CheckPointType.CHECK_PUSHERM_IN_IN_ZEROPOS, () -> true)); - checkPoints.add(new Checkpoint("检查垃圾箱是否满", CheckPointType.CHECK_RECYCLE_BIN_IS_OVERFLOW, () -> true)); - - - for (Checkpoint checkPoint : checkPoints) { - CheckResult result = new CheckResult(); - result.type = checkPoint.type; - result.typechinfo = checkPoint.typechinfo; - result.pass = checkPoint.checkfn.check(); - resultss.add(result); - } - return resultss; - } - synchronized public Boolean getTubeholderEnterPosPPS() { return tubeHolderScanResult != null; } diff --git a/src/main/java/a8k/service/app/appctrl/CheckPointType.java b/src/main/java/a8k/type/CheckPointType.java similarity index 92% rename from src/main/java/a8k/service/app/appctrl/CheckPointType.java rename to src/main/java/a8k/type/CheckPointType.java index 1595b5b..48f693f 100644 --- a/src/main/java/a8k/service/app/appctrl/CheckPointType.java +++ b/src/main/java/a8k/type/CheckPointType.java @@ -1,4 +1,4 @@ -package a8k.service.app.appctrl; +package a8k.type; public enum CheckPointType { CHECK_TUBE_XCHANNEL_IS_EMPTY,//入料通道是否为空