加酸仪(java版本)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
2.5 KiB

package com.iflytop.handacid.app.service;
import com.iflytop.handacid.app.common.enums.ChannelCode;
import com.iflytop.handacid.app.common.enums.ChannelStateCode;
import com.iflytop.handacid.app.core.command.DeviceCommand;
import com.iflytop.handacid.app.core.command.DeviceCommandGenerator;
import com.iflytop.handacid.app.core.state.DeviceState;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* 通道控制
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class ChannelCtrlService {
private final DeviceCommandService deviceCommandService;
private final DeviceState deviceState;
/**
* 根据通道code获取泵相对移动指令
*/
public DeviceCommand getPumpMoveByCommandByChannel(ChannelCode channelCode, Double position) {
return switch (channelCode) {
case CHANNEL_1 -> DeviceCommandGenerator.pump1MoveBy(position);
case CHANNEL_2 -> DeviceCommandGenerator.pump2MoveBy(position);
case CHANNEL_3 -> DeviceCommandGenerator.pump3MoveBy(position);
case CHANNEL_4 -> DeviceCommandGenerator.pump4MoveBy(position);
};
}
/**
* 根据通道code获取泵正转指令
*/
public DeviceCommand getPumpForwardRotateCommandByChannel(ChannelCode channelCode) {
return switch (channelCode) {
case CHANNEL_1 -> DeviceCommandGenerator.pump1ForwardRotate();
case CHANNEL_2 -> DeviceCommandGenerator.pump2ForwardRotate();
case CHANNEL_3 -> DeviceCommandGenerator.pump3ForwardRotate();
case CHANNEL_4 -> DeviceCommandGenerator.pump4ForwardRotate();
};
}
/**
* 根据通道code获取停止泵指令
*/
public DeviceCommand getPumpStopCommandByChannel(ChannelCode channelCode) {
return switch (channelCode) {
case CHANNEL_1 -> DeviceCommandGenerator.pump1Stop();
case CHANNEL_2 -> DeviceCommandGenerator.pump2Stop();
case CHANNEL_3 -> DeviceCommandGenerator.pump3Stop();
case CHANNEL_4 -> DeviceCommandGenerator.pump4Stop();
};
}
/**
* 加液
*
* @param channelCode 通道code
* @param volume 加液量
*/
public void solutionAddStart(ChannelCode channelCode, Double volume) {
}
/**
* 停止加液
* @param channelCode 通道code
*/
public void solutionAddStop(ChannelCode channelCode) {
deviceState.getChannelStateMap().get(channelCode).setStateCode(ChannelStateCode.IDLE);
}
}