添加新的解析器
This commit is contained in:
parent
c17a1e1d28
commit
d1b78b3277
|
@ -0,0 +1,47 @@
|
|||
package com.isu.gaswellwatch.modbus.data.decode.impl;
|
||||
|
||||
import com.isu.gaswellwatch.modbus.data.ModbusMessage;
|
||||
import com.isu.gaswellwatch.modbus.data.decode.DecodeHandler;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.math.NumberUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 本地日期时间类型解析器,year + 2000
|
||||
*
|
||||
* @author <a href="mailto:scwsl@foxmail.com">王仕龙</a>
|
||||
* 2024/12/10 12:25
|
||||
*/
|
||||
@Component(Base2000YearLocalDateTimeDecodeHandler.NAME + DecodeHandler.DECODE_NAME)
|
||||
public class Base2000YearLocalDateTimeDecodeHandler implements DecodeHandler {
|
||||
public static final String NAME = "base2000YearLocalDateTime";
|
||||
|
||||
public static final DateTimeFormatter IN_FORMATTER = DateTimeFormatter.ofPattern("yyyy-M-d H:m:s");
|
||||
public static final DateTimeFormatter OUT_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
|
||||
@Override
|
||||
public String decode(Map<String, Object> commandPointMap, String value) {
|
||||
if (StringUtils.isBlank(value)) {
|
||||
return value;
|
||||
}
|
||||
String[] splitValues = value.split(" ");
|
||||
String[] dateValues = splitValues[0].split("-");
|
||||
String year = dateValues[0];
|
||||
if (NumberUtils.isCreatable(year)) {
|
||||
year = String.valueOf(NumberUtils.createLong(year) + 2000);
|
||||
}
|
||||
value = StringUtils.join(year, "-", dateValues[1], "-", dateValues[2], " ", splitValues[1]);
|
||||
return LocalDateTime.parse(value, IN_FORMATTER).format(OUT_FORMATTER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decode(Map<String, Object> commandPointMap, ModbusMessage.MessagePoint point) {
|
||||
point.setValue(this.decode(commandPointMap, point.getValue()));
|
||||
}
|
||||
|
||||
}
|
|
@ -2,6 +2,7 @@ package com.isu.gaswellwatch.modbus.data.decode.impl;
|
|||
|
||||
import com.isu.gaswellwatch.modbus.data.ModbusMessage;
|
||||
import com.isu.gaswellwatch.modbus.data.decode.DecodeHandler;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
|
@ -19,6 +20,9 @@ public class HighLowBinDecodeHandler implements DecodeHandler {
|
|||
|
||||
@Override
|
||||
public String decode(Map<String, Object> commandPointMap, String value) {
|
||||
if (StringUtils.isBlank(value)) {
|
||||
return value;
|
||||
}
|
||||
return String.valueOf(Integer.parseInt(value, 16));
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.isu.gaswellwatch.modbus.data.decode.impl;
|
|||
|
||||
import com.isu.gaswellwatch.modbus.data.ModbusMessage;
|
||||
import com.isu.gaswellwatch.modbus.data.decode.DecodeHandler;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
@ -24,6 +25,9 @@ public class LocalDateDecodeHandler implements DecodeHandler {
|
|||
|
||||
@Override
|
||||
public String decode(Map<String, Object> commandPointMap, String value) {
|
||||
if (StringUtils.isBlank(value)) {
|
||||
return value;
|
||||
}
|
||||
return LocalDate.parse(value, IN_FORMATTER).format(OUT_FORMATTER);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.isu.gaswellwatch.modbus.data.decode.impl;
|
|||
|
||||
import com.isu.gaswellwatch.modbus.data.ModbusMessage;
|
||||
import com.isu.gaswellwatch.modbus.data.decode.DecodeHandler;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
@ -24,6 +25,9 @@ public class LocalDateTimeDecodeHandler implements DecodeHandler {
|
|||
|
||||
@Override
|
||||
public String decode(Map<String, Object> commandPointMap, String value) {
|
||||
if (StringUtils.isBlank(value)) {
|
||||
return value;
|
||||
}
|
||||
return LocalDateTime.parse(value, IN_FORMATTER).format(OUT_FORMATTER);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.isu.gaswellwatch.modbus.data.decode.impl;
|
|||
|
||||
import com.isu.gaswellwatch.modbus.data.ModbusMessage;
|
||||
import com.isu.gaswellwatch.modbus.data.decode.DecodeHandler;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalTime;
|
||||
|
@ -23,6 +24,9 @@ public class LocalTimeDecodeHandler implements DecodeHandler {
|
|||
|
||||
@Override
|
||||
public String decode(Map<String, Object> commandPointMap, String value) {
|
||||
if (StringUtils.isBlank(value)) {
|
||||
return value;
|
||||
}
|
||||
return LocalTime.parse(value, IN_FORMATTER).format(OUT_FORMATTER);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.isu.gaswellwatch.modbus.data.decode.impl;
|
|||
|
||||
import com.isu.gaswellwatch.modbus.data.ModbusMessage;
|
||||
import com.isu.gaswellwatch.modbus.data.decode.DecodeHandler;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.math.NumberUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
@ -20,7 +21,7 @@ public class SecondLocalTimeDecodeHandler implements DecodeHandler {
|
|||
|
||||
@Override
|
||||
public String decode(Map<String, Object> commandPointMap, String value) {
|
||||
if (NumberUtils.isCreatable(value)) {
|
||||
if (StringUtils.isNotBlank(value) && NumberUtils.isCreatable(value)) {
|
||||
long totalSeconds = NumberUtils.createLong(value);
|
||||
long hours = TimeUnit.SECONDS.toHours(totalSeconds);
|
||||
|
||||
|
|
|
@ -3,6 +3,8 @@ package com.isu.gaswellwatch.modbus.data.decode.impl;
|
|||
import com.isu.gaswellwatch.modbus.data.ModbusMessage;
|
||||
import com.isu.gaswellwatch.modbus.data.decode.DecodeHandler;
|
||||
import com.isu.gaswellwatch.utils.ReverseComplementCodeUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.math.NumberUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
|
@ -19,6 +21,9 @@ public class SignedNumberDecodeHandler implements DecodeHandler {
|
|||
|
||||
@Override
|
||||
public String decode(Map<String, Object> commandPointMap, String value) {
|
||||
if (StringUtils.isBlank(value) || !NumberUtils.isCreatable(value)) {
|
||||
return value;
|
||||
}
|
||||
int decimalNumber = Integer.parseInt(value, 16);
|
||||
if (decimalNumber == 0) {
|
||||
return String.valueOf(decimalNumber);
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.isu.gaswellwatch.modbus.data.decode.impl;
|
|||
|
||||
import com.isu.gaswellwatch.modbus.data.ModbusMessage;
|
||||
import com.isu.gaswellwatch.modbus.data.decode.DecodeHandler;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
@ -24,6 +25,9 @@ public class SimpleLocalDateTimeDecodeHandler implements DecodeHandler {
|
|||
|
||||
@Override
|
||||
public String decode(Map<String, Object> commandPointMap, String value) {
|
||||
if (StringUtils.isBlank(value)) {
|
||||
return value;
|
||||
}
|
||||
return LocalDateTime.parse(value, IN_FORMATTER).format(OUT_FORMATTER);
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ spring:
|
|||
virtual-host: /
|
||||
# public confirms机制用于解决生产者与Rabbitmq服务器之间消息可靠传输,它在消息服务器持久化消息后通知消息生产者发送成功。
|
||||
# 发送确认
|
||||
publisher-confirms: true
|
||||
publisher-confirms: false
|
||||
listener:
|
||||
simple:
|
||||
# manual:手动ack,需要在业务代码结束后,调用api发送ack。
|
||||
|
|
Loading…
Reference in New Issue