|
|
@ -1,13 +1,18 @@ |
|
|
|
package com.iflytop.sgs.hardware.service; |
|
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
import com.iflytop.sgs.common.enums.cmd.CmdDevice; |
|
|
|
import com.iflytop.sgs.common.service.GDDeviceStatusService; |
|
|
|
import com.iflytop.sgs.hardware.drivers.DIDriver.InputDetectDriver; |
|
|
|
import com.iflytop.sgs.hardware.drivers.DODriver.OutputIOCtrlDriver; |
|
|
|
import com.iflytop.sgs.hardware.drivers.HeaterRodDriver; |
|
|
|
import com.iflytop.sgs.hardware.drivers.LeiSaiServoDriver; |
|
|
|
import com.iflytop.sgs.hardware.drivers.LiquidValveDriver; |
|
|
|
import com.iflytop.sgs.hardware.drivers.StepMotorDriver.StepMotorCtrlDriver; |
|
|
|
import com.iflytop.sgs.hardware.exception.HardwareException; |
|
|
|
import com.iflytop.sgs.hardware.type.CmdId; |
|
|
|
import com.iflytop.sgs.hardware.type.IO.InputIOMId; |
|
|
|
import com.iflytop.sgs.hardware.type.IO.OutputIOMId; |
|
|
|
import com.iflytop.sgs.hardware.type.Servo.LeisaiServoMId; |
|
|
|
import com.iflytop.sgs.hardware.type.StepMotor.StepMotorMId; |
|
|
|
import com.iflytop.sgs.hardware.type.driver.HeaterRodSlavedId; |
|
|
@ -26,6 +31,55 @@ public class GDDeviceStatusServiceImpl implements GDDeviceStatusService { |
|
|
|
private final StepMotorCtrlDriver stepMotorCtrlDriver; |
|
|
|
private final LiquidValveDriver liquidValveDriver; |
|
|
|
private final LeiSaiServoDriver leisaiServoDriver; |
|
|
|
private final OutputIOCtrlDriver outputIOCtrlDriver; |
|
|
|
|
|
|
|
/** |
|
|
|
* 判断加热棒是否已开启 |
|
|
|
* |
|
|
|
* @param cmdDevice |
|
|
|
* @return true: 开启,false: 关闭 |
|
|
|
* @throws Exception |
|
|
|
*/ |
|
|
|
public boolean isPowerOn(CmdDevice cmdDevice) throws Exception { |
|
|
|
return switch (cmdDevice) { |
|
|
|
case heat_rod_1 -> heaterRodDriver.isPowerOn(HeaterRodSlavedId.HEATER_ROD1_ID); |
|
|
|
case heat_rod_2 -> heaterRodDriver.isPowerOn(HeaterRodSlavedId.HEATER_ROD2_ID); |
|
|
|
case heat_rod_3 -> heaterRodDriver.isPowerOn(HeaterRodSlavedId.HEATER_ROD3_ID); |
|
|
|
case heat_rod_4 -> heaterRodDriver.isPowerOn(HeaterRodSlavedId.HEATER_ROD4_ID); |
|
|
|
default -> throw new IllegalStateException("Unexpected value: " + cmdDevice); |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取设定温度 |
|
|
|
* |
|
|
|
* @param cmdDevice |
|
|
|
* @return |
|
|
|
* * @throws Exception |
|
|
|
*/ |
|
|
|
public double getSVTemperature(CmdDevice cmdDevice) throws Exception { |
|
|
|
return switch (cmdDevice) { |
|
|
|
case heat_rod_1 -> heaterRodDriver.getSVTemperature(HeaterRodSlavedId.HEATER_ROD1_ID); |
|
|
|
case heat_rod_2 -> heaterRodDriver.getSVTemperature(HeaterRodSlavedId.HEATER_ROD2_ID); |
|
|
|
case heat_rod_3 -> heaterRodDriver.getSVTemperature(HeaterRodSlavedId.HEATER_ROD3_ID); |
|
|
|
case heat_rod_4 -> heaterRodDriver.getSVTemperature(HeaterRodSlavedId.HEATER_ROD4_ID); |
|
|
|
default -> throw new IllegalStateException("Unexpected value: " + cmdDevice); |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取风扇的开关状态 |
|
|
|
*/ |
|
|
|
public boolean getIOState(CmdDevice cmdDevice) throws HardwareException { |
|
|
|
return switch (cmdDevice) { |
|
|
|
case fan_1 -> outputIOCtrlDriver.getIOState(OutputIOMId.DO_FAN1); |
|
|
|
case fan_2 -> outputIOCtrlDriver.getIOState(OutputIOMId.DO_FAN2); |
|
|
|
case fan_3 -> outputIOCtrlDriver.getIOState(OutputIOMId.DO_FAN3); |
|
|
|
case fan_4 -> outputIOCtrlDriver.getIOState(OutputIOMId.DO_FAN4); |
|
|
|
default -> throw new IllegalStateException("Unexpected value: " + cmdDevice); |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 获取步进电机的原点状态 |
|
|
@ -101,6 +155,7 @@ public class GDDeviceStatusServiceImpl implements GDDeviceStatusService { |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取液体阀门位置 |
|
|
|
* |
|
|
|
* @param mid |
|
|
|
* @return |
|
|
|
* @throws HardwareException |
|
|
|