加酸仪(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

  1. package com.iflytop.handacid.app.service;
  2. import com.iflytop.handacid.app.common.enums.ChannelCode;
  3. import com.iflytop.handacid.app.common.enums.ChannelStateCode;
  4. import com.iflytop.handacid.app.core.command.DeviceCommand;
  5. import com.iflytop.handacid.app.core.command.DeviceCommandGenerator;
  6. import com.iflytop.handacid.app.core.state.DeviceState;
  7. import lombok.RequiredArgsConstructor;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.stereotype.Service;
  10. /**
  11. * 通道控制
  12. */
  13. @Slf4j
  14. @Service
  15. @RequiredArgsConstructor
  16. public class ChannelCtrlService {
  17. private final DeviceCommandService deviceCommandService;
  18. private final DeviceState deviceState;
  19. /**
  20. * 根据通道code获取泵相对移动指令
  21. */
  22. public DeviceCommand getPumpMoveByCommandByChannel(ChannelCode channelCode, Double position) {
  23. return switch (channelCode) {
  24. case CHANNEL_1 -> DeviceCommandGenerator.pump1MoveBy(position);
  25. case CHANNEL_2 -> DeviceCommandGenerator.pump2MoveBy(position);
  26. case CHANNEL_3 -> DeviceCommandGenerator.pump3MoveBy(position);
  27. case CHANNEL_4 -> DeviceCommandGenerator.pump4MoveBy(position);
  28. };
  29. }
  30. /**
  31. * 根据通道code获取泵正转指令
  32. */
  33. public DeviceCommand getPumpForwardRotateCommandByChannel(ChannelCode channelCode) {
  34. return switch (channelCode) {
  35. case CHANNEL_1 -> DeviceCommandGenerator.pump1ForwardRotate();
  36. case CHANNEL_2 -> DeviceCommandGenerator.pump2ForwardRotate();
  37. case CHANNEL_3 -> DeviceCommandGenerator.pump3ForwardRotate();
  38. case CHANNEL_4 -> DeviceCommandGenerator.pump4ForwardRotate();
  39. };
  40. }
  41. /**
  42. * 根据通道code获取停止泵指令
  43. */
  44. public DeviceCommand getPumpStopCommandByChannel(ChannelCode channelCode) {
  45. return switch (channelCode) {
  46. case CHANNEL_1 -> DeviceCommandGenerator.pump1Stop();
  47. case CHANNEL_2 -> DeviceCommandGenerator.pump2Stop();
  48. case CHANNEL_3 -> DeviceCommandGenerator.pump3Stop();
  49. case CHANNEL_4 -> DeviceCommandGenerator.pump4Stop();
  50. };
  51. }
  52. /**
  53. * 加液
  54. *
  55. * @param channelCode 通道code
  56. * @param volume 加液量
  57. */
  58. public void solutionAddStart(ChannelCode channelCode, Double volume) {
  59. }
  60. /**
  61. * 停止加液
  62. * @param channelCode 通道code
  63. */
  64. public void solutionAddStop(ChannelCode channelCode) {
  65. deviceState.getChannelStateMap().get(channelCode).setStateCode(ChannelStateCode.IDLE);
  66. }
  67. }