|
@ -4,7 +4,7 @@ import a8k.a8k_can_protocol.A8kEcode; |
|
|
import a8k.a8k_can_protocol.IOId; |
|
|
import a8k.a8k_can_protocol.IOId; |
|
|
import a8k.a8k_can_protocol.MId; |
|
|
import a8k.a8k_can_protocol.MId; |
|
|
import a8k.appbean.HardwareException; |
|
|
import a8k.appbean.HardwareException; |
|
|
import a8k.appbean.ecode.AppEcode; |
|
|
|
|
|
|
|
|
import a8k.appbean.ecode.AppRet; |
|
|
import a8k.base_hardware.A8kCanBusService; |
|
|
import a8k.base_hardware.A8kCanBusService; |
|
|
import a8k.service.db.dao.SamplesPreProcessModuleCtrlParamsService; |
|
|
import a8k.service.db.dao.SamplesPreProcessModuleCtrlParamsService; |
|
|
import a8k.service.hardware.CommonHardwareOpeartion; |
|
|
import a8k.service.hardware.CommonHardwareOpeartion; |
|
@ -35,7 +35,7 @@ public class DeviceInitializationCtrlService { |
|
|
|
|
|
|
|
|
@PostMapping("/api/DeviceInitializationCtrlService/initializeDevice") |
|
|
@PostMapping("/api/DeviceInitializationCtrlService/initializeDevice") |
|
|
@ResponseBody |
|
|
@ResponseBody |
|
|
public AppEcode initializeDevice() { |
|
|
|
|
|
|
|
|
public AppRet initializeDevice() { |
|
|
logger.info("Initializing device ..."); |
|
|
logger.info("Initializing device ..."); |
|
|
boolean initSuc = false; |
|
|
boolean initSuc = false; |
|
|
try { |
|
|
try { |
|
@ -47,7 +47,7 @@ public class DeviceInitializationCtrlService { |
|
|
* 清空耗材 |
|
|
* 清空耗材 |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
AppEcode ecode; |
|
|
|
|
|
|
|
|
AppRet ecode; |
|
|
//硬件光电初始化 |
|
|
//硬件光电初始化 |
|
|
ecode = hardwareStaticInit(); |
|
|
ecode = hardwareStaticInit(); |
|
|
if (!ecode.isOk()) { |
|
|
if (!ecode.isOk()) { |
|
@ -88,11 +88,11 @@ public class DeviceInitializationCtrlService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return new AppEcode(A8kEcode.Success); |
|
|
|
|
|
|
|
|
return new AppRet(A8kEcode.Success); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private AppEcode hardwareStaticInit() throws HardwareException, InterruptedException { |
|
|
|
|
|
|
|
|
private AppRet hardwareStaticInit() throws HardwareException, InterruptedException { |
|
|
/* |
|
|
/* |
|
|
* 硬件初始化: |
|
|
* 硬件初始化: |
|
|
* 1.使能所有舵机 |
|
|
* 1.使能所有舵机 |
|
@ -109,49 +109,49 @@ public class DeviceInitializationCtrlService { |
|
|
// 试管夹紧电机打开一点,好方便有试管夹住的时,突然断电时,将试管取出 |
|
|
// 试管夹紧电机打开一点,好方便有试管夹住的时,突然断电时,将试管取出 |
|
|
canBus.stepMotorEasyMoveBy(MId.ShakeModClampingM, 2); |
|
|
canBus.stepMotorEasyMoveBy(MId.ShakeModClampingM, 2); |
|
|
canBus.waitForMod(MId.ShakeModClampingM, actionOvertime); |
|
|
canBus.waitForMod(MId.ShakeModClampingM, actionOvertime); |
|
|
return new AppEcode(A8kEcode.Success); |
|
|
|
|
|
|
|
|
return new AppRet(A8kEcode.Success); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private AppEcode checkDeviceState() throws HardwareException { |
|
|
|
|
|
|
|
|
private AppRet checkDeviceState() throws HardwareException { |
|
|
//试管平移通道是否有障碍 |
|
|
//试管平移通道是否有障碍 |
|
|
if (canBus.getIOState(IOId.THChInterPPS) || canBus.getIOState(IOId.THChOuterPPS)) { |
|
|
if (canBus.getIOState(IOId.THChInterPPS) || canBus.getIOState(IOId.THChOuterPPS)) { |
|
|
logger.warn("THChInterPPS or THChOuterPPS is trigger"); |
|
|
logger.warn("THChInterPPS or THChOuterPPS is trigger"); |
|
|
return new AppEcode(A8kEcode.PlateStuckDetectorSensorTrigger); |
|
|
|
|
|
|
|
|
return new AppRet(A8kEcode.PlateStuckDetectorSensorTrigger); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//板夹仓盖子是否盖上 |
|
|
//板夹仓盖子是否盖上 |
|
|
if (!canBus.getIOState(IOId.PlateBoxCoverClosurePPS)) { |
|
|
if (!canBus.getIOState(IOId.PlateBoxCoverClosurePPS)) { |
|
|
logger.warn("PlateBoxCoverClosure is open"); |
|
|
logger.warn("PlateBoxCoverClosure is open"); |
|
|
return new AppEcode(A8kEcode.PlateBoxNotCover); |
|
|
|
|
|
|
|
|
return new AppRet(A8kEcode.PlateBoxNotCover); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//板夹仓卡板检测 |
|
|
//板夹仓卡板检测 |
|
|
if (canBus.getIOState(IOId.PlateBoxPlateStuckPPS)) { |
|
|
if (canBus.getIOState(IOId.PlateBoxPlateStuckPPS)) { |
|
|
logger.warn("PlateBoxPlateStuckPPS is trigger"); |
|
|
logger.warn("PlateBoxPlateStuckPPS is trigger"); |
|
|
return new AppEcode(A8kEcode.PlateStuckDetectorSensorTrigger); |
|
|
|
|
|
|
|
|
return new AppRet(A8kEcode.PlateStuckDetectorSensorTrigger); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//检查钩板电机是否处于终点位置 |
|
|
//检查钩板电机是否处于终点位置 |
|
|
if (!canBus.getIOState(IOId.PullerMZeroPPS)) { |
|
|
if (!canBus.getIOState(IOId.PullerMZeroPPS)) { |
|
|
logger.warn("PullerM is not in zero pos"); |
|
|
logger.warn("PullerM is not in zero pos"); |
|
|
return new AppEcode(A8kEcode.PullerMInitPosError); |
|
|
|
|
|
|
|
|
return new AppRet(A8kEcode.PullerMInitPosError); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//检查板夹仓光电是否处于起点位置 |
|
|
//检查板夹仓光电是否处于起点位置 |
|
|
if (!canBus.getIOState(IOId.PusherMZeroPPS)) { |
|
|
if (!canBus.getIOState(IOId.PusherMZeroPPS)) { |
|
|
logger.warn("PusherM is not in zero pos"); |
|
|
logger.warn("PusherM is not in zero pos"); |
|
|
return new AppEcode(A8kEcode.PusherMInitPosError); |
|
|
|
|
|
|
|
|
return new AppRet(A8kEcode.PusherMInitPosError); |
|
|
} |
|
|
} |
|
|
//板夹仓光电 |
|
|
//板夹仓光电 |
|
|
if (canBus.getIOState(IOId.RecycleBinOverflowPPS)) { |
|
|
if (canBus.getIOState(IOId.RecycleBinOverflowPPS)) { |
|
|
logger.warn("RecycleBinOverflow is trigger"); |
|
|
logger.warn("RecycleBinOverflow is trigger"); |
|
|
return new AppEcode(A8kEcode.RecycleBinOverflow); |
|
|
|
|
|
|
|
|
return new AppRet(A8kEcode.RecycleBinOverflow); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return new AppEcode(A8kEcode.Success); |
|
|
|
|
|
|
|
|
return new AppRet(A8kEcode.Success); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private AppEcode moveMotorToZero() throws HardwareException, InterruptedException { |
|
|
|
|
|
|
|
|
private AppRet moveMotorToZero() throws HardwareException, InterruptedException { |
|
|
|
|
|
|
|
|
//进出料初始化 |
|
|
//进出料初始化 |
|
|
// canBus.stepMotorEasyMoveToZero(MId.FeedingModInfeedM); |
|
|
// canBus.stepMotorEasyMoveToZero(MId.FeedingModInfeedM); |
|
@ -204,7 +204,7 @@ public class DeviceInitializationCtrlService { |
|
|
|
|
|
|
|
|
//canBus.waitForMod(MId.ShakeModGripperZM, actionOvertime); |
|
|
//canBus.waitForMod(MId.ShakeModGripperZM, actionOvertime); |
|
|
|
|
|
|
|
|
return new AppEcode(A8kEcode.Success); |
|
|
|
|
|
|
|
|
return new AppRet(A8kEcode.Success); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|