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
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);
|
|
|
|
}
|
|
}
|