diff --git a/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/methane/MethaneTrapRequestFrame.java b/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/methane/MethaneTrapRequestFrame.java index 6a4011a..d36ab45 100644 --- a/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/methane/MethaneTrapRequestFrame.java +++ b/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/methane/MethaneTrapRequestFrame.java @@ -140,6 +140,11 @@ DateTag dateTag = (DateTag) getTagList().get(DateTag.class.getSimpleName()).get(0); uploadTag.setStartDate(dateTag.getDate()); + // 如果日期Tag无效则不解析业务类的Tag + if (!dateTag.isValid()) { + continue; + } + int count = uploadTag.getValueStr().length() / (4 * 2); // 4个字节一个数据 单精度浮点数 LocalDateTime start = uploadTag.getStartTime(); for (int i = 0; i < count; i++) { diff --git a/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/methane/MethaneTrapRequestFrame.java b/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/methane/MethaneTrapRequestFrame.java index 6a4011a..d36ab45 100644 --- a/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/methane/MethaneTrapRequestFrame.java +++ b/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/methane/MethaneTrapRequestFrame.java @@ -140,6 +140,11 @@ DateTag dateTag = (DateTag) getTagList().get(DateTag.class.getSimpleName()).get(0); uploadTag.setStartDate(dateTag.getDate()); + // 如果日期Tag无效则不解析业务类的Tag + if (!dateTag.isValid()) { + continue; + } + int count = uploadTag.getValueStr().length() / (4 * 2); // 4个字节一个数据 单精度浮点数 LocalDateTime start = uploadTag.getStartTime(); for (int i = 0; i < count; i++) { diff --git a/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/sentinel/SentinelTrapRequestFrame.java b/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/sentinel/SentinelTrapRequestFrame.java index cfb0cf1..fa6d34b 100644 --- a/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/sentinel/SentinelTrapRequestFrame.java +++ b/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/sentinel/SentinelTrapRequestFrame.java @@ -151,6 +151,11 @@ DateTag dateTag = (DateTag) getTagList().get(DateTag.class.getSimpleName()).get(0); uploadTag.setStartDate(dateTag.getDate()); + // 如果日期Tag无效则不解析业务类的Tag + if (!dateTag.isValid()) { + continue; + } + int count = uploadTag.getValueStr().length() / (4 * 2); // 4个字节一个数据 单精度浮点数 LocalDateTime start = uploadTag.getStartTime(); for (int i = 0; i < count; i++) { diff --git a/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/methane/MethaneTrapRequestFrame.java b/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/methane/MethaneTrapRequestFrame.java index 6a4011a..d36ab45 100644 --- a/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/methane/MethaneTrapRequestFrame.java +++ b/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/methane/MethaneTrapRequestFrame.java @@ -140,6 +140,11 @@ DateTag dateTag = (DateTag) getTagList().get(DateTag.class.getSimpleName()).get(0); uploadTag.setStartDate(dateTag.getDate()); + // 如果日期Tag无效则不解析业务类的Tag + if (!dateTag.isValid()) { + continue; + } + int count = uploadTag.getValueStr().length() / (4 * 2); // 4个字节一个数据 单精度浮点数 LocalDateTime start = uploadTag.getStartTime(); for (int i = 0; i < count; i++) { diff --git a/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/sentinel/SentinelTrapRequestFrame.java b/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/sentinel/SentinelTrapRequestFrame.java index cfb0cf1..fa6d34b 100644 --- a/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/sentinel/SentinelTrapRequestFrame.java +++ b/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/sentinel/SentinelTrapRequestFrame.java @@ -151,6 +151,11 @@ DateTag dateTag = (DateTag) getTagList().get(DateTag.class.getSimpleName()).get(0); uploadTag.setStartDate(dateTag.getDate()); + // 如果日期Tag无效则不解析业务类的Tag + if (!dateTag.isValid()) { + continue; + } + int count = uploadTag.getValueStr().length() / (4 * 2); // 4个字节一个数据 单精度浮点数 LocalDateTime start = uploadTag.getStartTime(); for (int i = 0; i < count; i++) { diff --git a/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/tag/biz/DateTag.java b/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/tag/biz/DateTag.java index 2514196..ea7b5ce 100644 --- a/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/tag/biz/DateTag.java +++ b/sensorhub-service-birmm/src/main/java/com/casic/missiles/frame/tag/biz/DateTag.java @@ -15,10 +15,11 @@ final String DATE_TAG_OID = "10000050"; LocalDate date; + boolean valid; @Override public String toString() { - return super.toString() + "[value: " + date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + "]"; + return super.toString() + "[value: " + date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + "][valid: " + valid + "]"; } @Override @@ -28,6 +29,13 @@ String hexM = valueStr.substring(2, 4); String hexD = valueStr.substring(4, 6); - date = LocalDate.of(BytesUtil.hexStringToUInt(hexY) + 2000, BytesUtil.hexStringToUInt(hexM), BytesUtil.hexStringToUInt(hexD)); + valid = true; + + try { + date = LocalDate.of(BytesUtil.hexStringToUInt(hexY) + 2000, BytesUtil.hexStringToUInt(hexM), BytesUtil.hexStringToUInt(hexD)); + } catch (Exception ex) { + date = LocalDate.of(2000, 1, 1); + valid = false; + } } }