From cc5a020f5fcee98edd7b0ec94319fa0a2e501d76 Mon Sep 17 00:00:00 2001 From: weidong Date: Sat, 9 Mar 2024 12:43:18 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81bootloader=E7=89=88=E6=9C=AC=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=202=E3=80=81=E8=AE=B0=E5=BD=95=E6=9C=80=E5=90=8E?= =?UTF-8?q?=E6=94=B6=E5=88=B0=E6=95=B0=E6=8D=AE=E7=9A=84=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=92=8C=E6=97=B6=E9=97=B4=203=E3=80=81=E5=85=BC=E5=AE=B93.0?= =?UTF-8?q?=E4=BB=A5=E5=89=8D=E7=9A=84d3f0=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executor/D331RtcmMessageExecutor.java | 2 +- .../executor/D341LocationMessageExecutor.java | 2 +- .../executor/D342LocationMessageExecutor.java | 2 +- .../D3F0SelfCheckMessageExecutor.java | 2 +- .../D3F2StopIndicationMessageExecutor.java | 1 + .../message/D3F0SelfCheckMessage.java | 27 ++++++++---- .../com/imdroid/sideslope/sal/Device.java | 42 ++++++++++++------- 7 files changed, 52 insertions(+), 26 deletions(-) diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D331RtcmMessageExecutor.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D331RtcmMessageExecutor.java index 6a730f0c..caa241ad 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D331RtcmMessageExecutor.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D331RtcmMessageExecutor.java @@ -56,7 +56,7 @@ public class D331RtcmMessageExecutor implements Executor } message.setTenantId(device1.getTenantId()); - device1.updateD331Bytes(message.getLen(),message.getPacketNum()); + device1.updateRx(message.getHeader(),message.getLen(),message.getPacketNum()); Gga gga = message.getGga(); if(gga != null) { device1.updateSatelitesNum(gga.getSatellitesInUsed()); diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D341LocationMessageExecutor.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D341LocationMessageExecutor.java index 4901a3af..74943cc4 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D341LocationMessageExecutor.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D341LocationMessageExecutor.java @@ -36,7 +36,7 @@ public class D341LocationMessageExecutor implements Executor { gnssCalcService.calc(message); diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F0SelfCheckMessageExecutor.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F0SelfCheckMessageExecutor.java index 98aedce6..4b475489 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F0SelfCheckMessageExecutor.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F0SelfCheckMessageExecutor.java @@ -39,7 +39,7 @@ public class D3F0SelfCheckMessageExecutor implements Executor { GnssStatus lastGnssStatus = dataPersistService.getDeviceState(message.getId()); diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F2StopIndicationMessageExecutor.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F2StopIndicationMessageExecutor.java index 21f9db67..999eade0 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F2StopIndicationMessageExecutor.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F2StopIndicationMessageExecutor.java @@ -47,6 +47,7 @@ public class D3F2StopIndicationMessageExecutor implements Executor=4) { + src.readFloat(); + statusMsg.setDtustate(src.readUnsignedByte()); + statusMsg.setRssi(src.readUnsignedByte()); + statusMsg.setVoltage(src.readUnsignedShort()); + } // skip version int ver = src.readUnsignedShort(); - firmwareVersion = ((ver>>8)&0xFF) + "." + ((ver>>4)&0xF) + "." + (ver&0xF); - statusMsg.setTemperature((float) (src.readUnsignedShort()/10)); - statusMsg.setHumidity((float) (src.readUnsignedShort()/10)); + short verType = (short) ((ver >> 12) & 0xF); + firmwareVersion = ((ver >> 8) & 0xF) + "." + ((ver >> 4) & 0xF) + "." + (ver & 0xF); + if (verType > 0) firmwareVersion = firmwareVersion + " type:" + verType; + + if(src.readableBytes()>=4) { + statusMsg.setTemperature((float) (src.readUnsignedShort() / 10)); + statusMsg.setHumidity((float) (src.readUnsignedShort() / 10)); + } // imei if(src.readableBytes()>=15){ imei = src.readCharSequence(15, StandardCharsets.UTF_8).toString(); } + if(src.readableBytes()>=2){ + firmwareVersion = firmwareVersion + + " bVer:"+src.readUnsignedByte() + + " reboot:"+src.readUnsignedByte(); + } } diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/Device.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/Device.java index fe9ec9ba..259e95d5 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/Device.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/Device.java @@ -2,6 +2,8 @@ package com.imdroid.sideslope.sal; import lombok.Data; +import java.time.LocalDateTime; + /** * 基站 & 测站设备 * @@ -49,20 +51,32 @@ public class Device { Double longitude; Double altitude; - public void updateD331Bytes(int bytes,int count){ - d3xxCount+=count; - d3xxbytes += bytes; - } + LocalDateTime lastRxTime; + int lastRxHead = 0; - public void updateD341Bytes(int bytes){ - d341Count++; - d341bytes += bytes; - } - - public void updateD342Bytes(int bytes, int d341Num){ - d342Count ++; - d342Bytes += bytes; - d341In42Count += d341Num; + public void updateRx(int head, int bytes,int count){ + lastRxHead = head; + lastRxTime = LocalDateTime.now(); + switch (head){ + case 0xd3f0: + clearStat(); + break; + case 0xd3f2: + break; + case 0xd331: + d3xxCount+=count; + d3xxbytes += bytes; + break; + case 0xd341: + d341Count+=count; + d341bytes += bytes; + break; + case 0xd342: + d342Count ++; + d342Bytes += bytes; + d341In42Count += count; + break; + } } public void updateSatelitesNum(int num){ @@ -72,7 +86,7 @@ public class Device { } } - public void clearStat(){ + void clearStat(){ d3xxCount = 0; d3xxbytes = 0; d341Count = 0;