diff --git a/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/PlungerMode.java b/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/PlungerMode.java index ce041a6..586abfe 100644 --- a/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/PlungerMode.java +++ b/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/PlungerMode.java @@ -32,16 +32,16 @@ public class PlungerMode extends ChangeRunMode implements Timing { * false:关井 */ @Builder.Default - private boolean enable = false; + private int plugInitStatus = 0; /** * 柱塞模式续流时长。[0-999]:[0-59]:[0-59] */ - private String sustainTiming; + private String plugSustainTime; /** * 柱塞模式关井时长。[0-999]:[0-59]:[0-59] */ - private String closeTiming; + private String plugCloseTime; public PlungerMode() { @@ -51,8 +51,10 @@ public class PlungerMode extends ChangeRunMode implements Timing { @Override public boolean validate() { - return super.validate() && StringUtils.isNotBlank(this.sustainTiming) - && StringUtils.isNotBlank(this.closeTiming); + return super.validate() + && StringUtils.isNotBlank(this.plugCloseTime) + && StringUtils.isNotBlank(this.plugSustainTime) + && this.plugInitStatus >= 0 && this.plugInitStatus <= 1; } @Override @@ -62,17 +64,17 @@ public class PlungerMode extends ChangeRunMode implements Timing { // 地址码 功能码 起始地址 连续长度 连续字长 // 01 10 015C 0007 0E command.append("0110015C00070E"); - command.append("000").append(this.enable ? "1" : "0"); - command.append(this.toHexString(this.sustainTiming)).append(this.toHexString(this.closeTiming)); + command.append("000").append(this.plugInitStatus); + command.append(this.toHexString(this.plugSustainTime)).append(this.toHexString(this.plugCloseTime)); return List.of(ModbusCommandDto.builder().command(command.toString()).length(16).build()); } - public void setSustainTiming(String sustainTiming) { - this.sustainTiming = this.timingValidate(sustainTiming, "sustainTiming"); + public void setPlugSustainTime(String plugSustainTime) { + this.plugSustainTime = this.timingValidate(plugSustainTime, "plugSustainTime"); } - public void setCloseTiming(String closeTiming) { - this.closeTiming = this.timingValidate(closeTiming, "closeTiming"); + public void setPlugCloseTime(String plugCloseTime) { + this.plugCloseTime = this.timingValidate(plugCloseTime, "plugCloseTime"); } } \ No newline at end of file diff --git a/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/PressureMode.java b/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/PressureMode.java index 4e61fe6..e2e1770 100644 --- a/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/PressureMode.java +++ b/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/PressureMode.java @@ -14,7 +14,6 @@ import java.io.Serial; import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.Objects; /** * 压力模式:存在3个不同的地址段,需要发发送4条命令 @@ -34,12 +33,12 @@ public class PressureMode extends ChangeRunMode implements Timing { * 压力源 */ @Builder.Default - private PresourceEnum presource = PresourceEnum.OIL; + private int presource = 0; /** * 压力触发类型 */ @Builder.Default - private TriggerTypeEnum triggerType = TriggerTypeEnum.L0; + private int triggerType = 0; /** * 开井压力:单位Mpa,*100,[0~9999] @@ -83,12 +82,12 @@ public class PressureMode extends ChangeRunMode implements Timing { * 开井压力保护使能 */ @Builder.Default - private boolean presproTect = false; + private int presproTect = 0; /** * 开井压力保护源 */ @Builder.Default - private PresourceEnum presproSource = PresourceEnum.OIL; + private int presproSource = 0; /** * 开井压力限制上限,[0-9999] */ @@ -109,13 +108,14 @@ public class PressureMode extends ChangeRunMode implements Timing { @Override public boolean validate() { return super.validate() - && Objects.nonNull(this.presource) - && Objects.nonNull(this.triggerType) - && Objects.nonNull(this.presproSource) && StringUtils.isNotBlank(this.maxOpenWell) && StringUtils.isNotBlank(this.minOpenWell) && StringUtils.isNotBlank(this.maxCloseWell) && StringUtils.isNotBlank(this.minCloseWell) + && this.presource >= 0 && this.presource <= 3 + && this.presproTect >= 0 && this.presproTect <= 1 + && this.triggerType >= 0 && this.triggerType <= 3 + && this.presproSource >= 0 && this.presproSource <= 3 && this.pressureOpen >= 0 && this.pressureOpen <= 9999 && this.pressureClose >= 0 && this.pressureClose <= 9999 && this.openWellLimitMax >= 0 && this.openWellLimitMax <= 9999 @@ -131,10 +131,10 @@ public class PressureMode extends ChangeRunMode implements Timing { // 地址码 功能码 起始地址 连续长度 连续字长 // 01 10 00A0 0005 0A command.append("011000A000050A"); - command.append(StringUtils.leftPad(Integer.toHexString(this.presource.getCode()), 4, "0")); + command.append(StringUtils.leftPad(Integer.toHexString(this.presource), 4, "0")); command.append(StringUtils.leftPad(Integer.toHexString(this.pressureOpen), 4, "0")); command.append(StringUtils.leftPad(Integer.toHexString(this.pressureClose), 4, "0")); - command.append(StringUtils.leftPad(Integer.toHexString(this.triggerType.getCode()), 4, "0")); + command.append(StringUtils.leftPad(Integer.toHexString(this.triggerType), 4, "0")); command.append(StringUtils.leftPad(Integer.toHexString(this.stabilityTime), 4, "0")); commandList.add(ModbusCommandDto.builder().command(command.toString()).length(16).build()); @@ -154,8 +154,8 @@ public class PressureMode extends ChangeRunMode implements Timing { // 地址码 功能码 起始地址 连续长度 连续字长 // 01 10 0140 0004 08 command.append("01100140000408"); - command.append("000").append(this.presproTect ? "1" : "0"); - command.append(StringUtils.leftPad(Integer.toHexString(this.presproSource.getCode()), 4, "0")); + command.append("000").append(this.presproTect); + command.append(StringUtils.leftPad(Integer.toHexString(this.presproSource), 4, "0")); command.append(StringUtils.leftPad(Integer.toHexString(this.openWellLimitMax), 4, "0")); command.append(StringUtils.leftPad(Integer.toHexString(this.openWellLimitMin), 4, "0")); commandList.add(ModbusCommandDto.builder().command(command.toString()).length(16).build()); @@ -179,48 +179,4 @@ public class PressureMode extends ChangeRunMode implements Timing { this.minCloseWell = this.timingValidate(minCloseWell, "minCloseWell"); } - /** - * 触发压力源: - * 0:油压 - * 1:套压 - * 2:输压 - * 3:差压 - */ - @Getter - public enum PresourceEnum { - OIL(0, "油压"), CAS(1, "套压"), PRE(2, "输压"), DIFF(3, "差压"); - - private final int code; - private final String name; - - PresourceEnum(int code, String name) { - this.code = code; - this.name = name; - } - } - - /** - * 压力触发类型: - * 0:大于开井压力开井、小于关井压力关井 - * 1:大于开井压力开井、大于关井压力关井 - * 2:小于开井压力开井、小于关井压力关井 - * 3:小于开井压力开井、大于关井压力关井 - */ - @Getter - public enum TriggerTypeEnum { - L0(0, "大于开井压力开井、小于关井压力关井"), - L1(1, "大于开井压力开井、大于关井压力关井"), - L2(2, "小于开井压力开井、小于关井压力关井"), - L3(3, "小于开井压力开井、大于关井压力关井"); - - private final int code; - private final String name; - - TriggerTypeEnum(int code, String name) { - this.code = code; - this.name = name; - } - - } - } diff --git a/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/TimePressureMode.java b/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/TimePressureMode.java index ef2b218..b4d7392 100644 --- a/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/TimePressureMode.java +++ b/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/TimePressureMode.java @@ -13,7 +13,6 @@ import org.apache.commons.lang3.StringUtils; import java.io.Serial; import java.util.Collection; import java.util.List; -import java.util.Objects; /** * @author 王仕龙 @@ -30,12 +29,12 @@ public class TimePressureMode extends ChangeRunMode implements Timing { * 时压模式初始气井状态 */ @Builder.Default - private boolean tpInitStatus = false; + private int tpInitStatus = 0; /** * 时压模式开井源 */ @Builder.Default - private TimePressureOpenSouceEnum tpOpenSource = TimePressureOpenSouceEnum.OIL; + private int tpOpenSource = 0; /** * 时压模式开井压力触发模式: * 0:大于压力触发 @@ -57,7 +56,7 @@ public class TimePressureMode extends ChangeRunMode implements Timing { * 时压模式关井源 */ @Builder.Default - private TimePressureOpenSouceEnum tpCloseSource = TimePressureOpenSouceEnum.OIL; + private int tpCloseSource = 0; /** * 时压模式关井触发 * 0:大于压力触发 @@ -89,11 +88,12 @@ public class TimePressureMode extends ChangeRunMode implements Timing { @Override public boolean validate() { return super.validate() - && Objects.nonNull(this.tpOpenSource) - && Objects.nonNull(this.tpCloseSource) && StringUtils.isNotBlank(this.tpOpenTiming) && StringUtils.isNotBlank(this.tpCloseTiming) + && this.tpInitStatus >= 0 && this.tpInitStatus <= 1 + && this.tpOpenSource >= 0 && this.tpOpenSource <= 4 && this.tpOpenTrigger >= 0 && this.tpOpenTrigger <= 1 + && this.tpCloseSource >= 0 && this.tpCloseSource <= 4 && this.tpCloseTrigger >= 0 && this.tpCloseTrigger <= 1 && this.tpOpenPressure >= 0 && this.tpOpenPressure <= 9999 && this.tpClosePressure >= 0 && this.tpClosePressure <= 9999 @@ -107,12 +107,12 @@ public class TimePressureMode extends ChangeRunMode implements Timing { // 地址码 功能码 起始地址 连续长度 连续字长 // 01 10 0177 000E 1C command.append("01100177000E1C"); - command.append("000").append(this.tpInitStatus ? "1" : "0"); - command.append(StringUtils.leftPad(Integer.toHexString(this.tpOpenSource.getCode()), 4, "0")); + command.append("000").append(this.tpInitStatus); + command.append(StringUtils.leftPad(Integer.toHexString(this.tpOpenSource), 4, "0")); command.append(StringUtils.leftPad(Integer.toHexString(this.tpOpenTrigger), 4, "0")); command.append(StringUtils.leftPad(Integer.toHexString(this.tpOpenPressure), 4, "0")); command.append(this.toHexString(this.tpOpenTiming)); - command.append(StringUtils.leftPad(Integer.toHexString(this.tpCloseSource.getCode()), 4, "0")); + command.append(StringUtils.leftPad(Integer.toHexString(this.tpCloseSource), 4, "0")); command.append(StringUtils.leftPad(Integer.toHexString(this.tpCloseTrigger), 4, "0")); command.append(StringUtils.leftPad(Integer.toHexString(this.tpClosePressure), 4, "0")); command.append(this.toHexString(this.tpCloseTiming)); @@ -128,30 +128,4 @@ public class TimePressureMode extends ChangeRunMode implements Timing { this.tpCloseTiming = this.timingValidate(tpCloseTiming, "tpCloseTiming"); } - /** - * 时压模式开井源: - * 0:油压 - * 1:套压 - * 2:输压 - * 3:差压 - *
- * 4:时间 - */ - @Getter - public enum TimePressureOpenSouceEnum { - OIL(0, "油压"), - CAS(1, "套压"), - PRE(2, "输压"), - DIFF(3, "差压"), - TIME(4, "时间"); - - private final int code; - private final String name; - - TimePressureOpenSouceEnum(int code, String name) { - this.code = code; - this.name = name; - } - } - } diff --git a/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/TimerMode.java b/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/TimerMode.java index 9b9e814..694b65c 100644 --- a/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/TimerMode.java +++ b/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/TimerMode.java @@ -31,66 +31,66 @@ public class TimerMode extends ChangeRunMode implements Timing { * 定时器1使能开关 */ @Builder.Default - private boolean enable1 = false; + private int timer1 = 0; /** * 定时器2使能开关 */ @Builder.Default - private boolean enable2 = false; + private int timer2 = 0; /** * 定时器3使能开关 */ @Builder.Default - private boolean enable3 = false; + private int timer3 = 0; /** * 定时器4使能开关 */ @Builder.Default - private boolean enable4 = false; + private int timer4 = 0; /** * 定时器1开井时间 */ @Builder.Default - private LocalTime openTimer1 = LocalTime.MIN; + private LocalTime timer1Open = LocalTime.MIN; /** * 定时器1关井时间 */ @Builder.Default - private LocalTime closeTimer1 = LocalTime.MIN; + private LocalTime timer1Close = LocalTime.MIN; /** * 定时器2开井时间 */ @Builder.Default - private LocalTime openTimer2 = LocalTime.MIN; + private LocalTime timer2Open = LocalTime.MIN; /** * 定时器2关井时间 */ @Builder.Default - private LocalTime closeTimer2 = LocalTime.MIN; + private LocalTime timer2Close = LocalTime.MIN; /** * 定时器3开井时间 */ @Builder.Default - private LocalTime openTimer3 = LocalTime.MIN; + private LocalTime timer3Open = LocalTime.MIN; /** * 定时器3关井时间 */ @Builder.Default - private LocalTime closeTimer3 = LocalTime.MIN; + private LocalTime timer3Close = LocalTime.MIN; /** * 定时器4开井时间 */ @Builder.Default - private LocalTime openTimer4 = LocalTime.MIN; + private LocalTime timer4Open = LocalTime.MIN; /** * 定时器4关井时间 */ @Builder.Default - private LocalTime closeTimer4 = LocalTime.MIN; + private LocalTime timer4Close = LocalTime.MIN; public TimerMode() { super(1); @@ -99,43 +99,47 @@ public class TimerMode extends ChangeRunMode implements Timing { @Override public boolean validate() { - if (!this.enable1) { - if (Objects.isNull(this.openTimer1)) { - this.openTimer1 = LocalTime.MIN; + if (this.timer1 != 1) { + if (Objects.isNull(this.timer1Open)) { + this.timer1Open = LocalTime.MIN; } - if (Objects.isNull(this.closeTimer1)) { - this.closeTimer1 = LocalTime.MIN; + if (Objects.isNull(this.timer1Close)) { + this.timer1Close = LocalTime.MIN; } } - if (!this.enable2) { - if (Objects.isNull(this.openTimer2)) { - this.openTimer2 = LocalTime.MIN; + if (this.timer2 != 1) { + if (Objects.isNull(this.timer2Open)) { + this.timer2Open = LocalTime.MIN; } - if (Objects.isNull(this.closeTimer2)) { - this.closeTimer2 = LocalTime.MIN; + if (Objects.isNull(this.timer2Close)) { + this.timer2Close = LocalTime.MIN; } } - if (!this.enable3) { - if (Objects.isNull(this.openTimer3)) { - this.openTimer3 = LocalTime.MIN; + if (this.timer3 != 1) { + if (Objects.isNull(this.timer3Open)) { + this.timer3Open = LocalTime.MIN; } - if (Objects.isNull(this.closeTimer3)) { - this.closeTimer3 = LocalTime.MIN; + if (Objects.isNull(this.timer3Close)) { + this.timer3Close = LocalTime.MIN; } } - if (!this.enable4) { - if (Objects.isNull(this.openTimer4)) { - this.openTimer4 = LocalTime.MIN; + if (this.timer4 != 1) { + if (Objects.isNull(this.timer4Open)) { + this.timer4Open = LocalTime.MIN; } - if (Objects.isNull(this.closeTimer4)) { - this.closeTimer4 = LocalTime.MIN; + if (Objects.isNull(this.timer4Close)) { + this.timer4Close = LocalTime.MIN; } } return super.validate() - && Objects.nonNull(this.openTimer1) && Objects.nonNull(this.closeTimer1) - && Objects.nonNull(this.openTimer2) && Objects.nonNull(this.closeTimer2) - && Objects.nonNull(this.openTimer3) && Objects.nonNull(this.closeTimer3) - && Objects.nonNull(this.openTimer4) && Objects.nonNull(this.closeTimer4); + && this.timer1 >= 0 && this.timer1 <= 1 + && this.timer2 >= 0 && this.timer2 <= 1 + && this.timer3 >= 0 && this.timer3 <= 1 + && this.timer4 >= 0 && this.timer4 <= 1 + && Objects.nonNull(this.timer1Open) && Objects.nonNull(this.timer1Close) + && Objects.nonNull(this.timer2Open) && Objects.nonNull(this.timer2Close) + && Objects.nonNull(this.timer3Open) && Objects.nonNull(this.timer3Close) + && Objects.nonNull(this.timer4Open) && Objects.nonNull(this.timer4Close); } @Override @@ -145,14 +149,14 @@ public class TimerMode extends ChangeRunMode implements Timing { // 地址码 功能码 起始地址 连续长度 连续字长 // 01 10 006E 001C 38 command.append("0110006E001C38"); - command.append("000").append(this.enable1 ? "1" : "0"); - command.append("000").append(this.enable2 ? "1" : "0"); - command.append("000").append(this.enable3 ? "1" : "0"); - command.append("000").append(this.enable4 ? "1" : "0"); - command.append(this.toHexString(this.openTimer1)).append(this.toHexString(this.closeTimer1)) - .append(this.toHexString(this.openTimer2)).append(this.toHexString(this.closeTimer2)) - .append(this.toHexString(this.openTimer3)).append(this.toHexString(this.closeTimer3)) - .append(this.toHexString(this.openTimer4)).append(this.toHexString(this.closeTimer4)); + command.append("000").append(this.timer1); + command.append("000").append(this.timer2); + command.append("000").append(this.timer3); + command.append("000").append(this.timer4); + command.append(this.toHexString(this.timer1Open)).append(this.toHexString(this.timer1Close)) + .append(this.toHexString(this.timer2Open)).append(this.toHexString(this.timer2Close)) + .append(this.toHexString(this.timer3Open)).append(this.toHexString(this.timer3Close)) + .append(this.toHexString(this.timer4Open)).append(this.toHexString(this.timer4Close)); return List.of(ModbusCommandDto.builder().command(command.toString()).length(16).build()); } diff --git a/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/TimingMode.java b/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/TimingMode.java index e681c45..a2c91e4 100644 --- a/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/TimingMode.java +++ b/src/main/java/com/isu/gaswellwatch/vo/command/knpcv1/mode/TimingMode.java @@ -30,17 +30,17 @@ public class TimingMode extends ChangeRunMode implements Timing { * 计时器开井时长。[0-999]:[0-59]:[0-59] */ @Builder.Default - private String openTiming = "00:00:00"; + private String timingOpen = "00:00:00"; /** * 计时器关井时长。[0-999]:[0-59]:[0-59] */ @Builder.Default - private String closeTiming = "00:00:00"; + private String timingClose = "00:00:00"; /** * 计时器延时时长。[0-999]:[0-59]:[0-59] */ @Builder.Default - private String delayTiming = "00:00:00"; + private String timingCelay = "00:00:00"; public TimingMode() { super(2); @@ -50,19 +50,21 @@ public class TimingMode extends ChangeRunMode implements Timing { @Override public boolean validate() { return super.validate() - && StringUtils.isNotBlank(this.openTiming) && StringUtils.isNotBlank(this.closeTiming) && StringUtils.isNotBlank(this.delayTiming); + && StringUtils.isNotBlank(this.timingOpen) + && StringUtils.isNotBlank(this.timingClose) + && StringUtils.isNotBlank(this.timingCelay); } - public void setOpenTiming(String openTiming) { - this.openTiming = this.timingValidate(openTiming, "openTiming"); + public void setTimingOpen(String timingOpen) { + this.timingOpen = this.timingValidate(timingOpen, "timingOpen"); } - public void setCloseTiming(String closeTiming) { - this.closeTiming = this.timingValidate(closeTiming, "closeTiming"); + public void setTimingClose(String timingClose) { + this.timingClose = this.timingValidate(timingClose, "timingClose"); } - public void setDelayTiming(String delayTiming) { - this.delayTiming = this.timingValidate(delayTiming, "delayTiming"); + public void setTimingCelay(String timingCelay) { + this.timingCelay = this.timingValidate(timingCelay, "timingCelay"); } @Override @@ -72,10 +74,10 @@ public class TimingMode extends ChangeRunMode implements Timing { // 地址码 功能码 起始地址 连续长度 连续字长 // 01 10 0096 000A 14 command.append("01100096000A14") - .append(this.toHexString(this.openTiming)) - .append(this.toHexString(this.closeTiming)) + .append(this.toHexString(this.timingOpen)) + .append(this.toHexString(this.timingClose)) .append("0000") // 地址位:0156,值为空 - .append(this.toHexString(this.delayTiming)); + .append(this.toHexString(this.timingCelay)); return List.of(ModbusCommandDto.builder().command(command.toString()).length(16).build()); }