1、bootloader版本显示

2、记录最后收到数据的类型和时间
3、兼容3.0以前的d3f0格式
This commit is contained in:
weidong 2024-03-09 12:43:18 +08:00
parent 6dd98c53d7
commit cc5a020f5f
7 changed files with 52 additions and 26 deletions

View File

@ -56,7 +56,7 @@ public class D331RtcmMessageExecutor implements Executor<D331RtcmMessage, Void>
} }
message.setTenantId(device1.getTenantId()); message.setTenantId(device1.getTenantId());
device1.updateD331Bytes(message.getLen(),message.getPacketNum()); device1.updateRx(message.getHeader(),message.getLen(),message.getPacketNum());
Gga gga = message.getGga(); Gga gga = message.getGga();
if(gga != null) { if(gga != null) {
device1.updateSatelitesNum(gga.getSatellitesInUsed()); device1.updateSatelitesNum(gga.getSatellitesInUsed());

View File

@ -36,7 +36,7 @@ public class D341LocationMessageExecutor implements Executor<D341LocationMessage
Device device = deviceService.findByDeviceId(message.getId()); Device device = deviceService.findByDeviceId(message.getId());
if(device == null) return null; if(device == null) return null;
message.setTenantId(device.getTenantId()); message.setTenantId(device.getTenantId());
device.updateD341Bytes(message.getLen()); device.updateRx(message.getHeader(), message.getLen(), 1);
Gga gga = message.getGga(); Gga gga = message.getGga();
if(gga != null) { if(gga != null) {
device.updateSatelitesNum(gga.getSatellitesInUsed()); device.updateSatelitesNum(gga.getSatellitesInUsed());

View File

@ -34,7 +34,7 @@ public class D342LocationMessageExecutor implements Executor<D342LocationMessage
message.setTenantId(device.getTenantId()); message.setTenantId(device.getTenantId());
message.setProjectId(device.getProjectId()); message.setProjectId(device.getProjectId());
message.setFwdId(device.getFwdId()); message.setFwdId(device.getFwdId());
device.updateD342Bytes(message.getLen(),message.getMessageList().size()); device.updateRx(message.getHeader(), message.getLen(),message.getMessageList().size());
ThreadManager.getFixedThreadPool().submit(() -> { ThreadManager.getFixedThreadPool().submit(() -> {
gnssCalcService.calc(message); gnssCalcService.calc(message);

View File

@ -39,7 +39,7 @@ public class D3F0SelfCheckMessageExecutor implements Executor<D3F0SelfCheckMessa
Device device = deviceService.findByDeviceId(message.getId()); Device device = deviceService.findByDeviceId(message.getId());
if(device == null) return null; if(device == null) return null;
message.setTenantId(device.getTenantId()); message.setTenantId(device.getTenantId());
device.clearStat(); device.updateRx(message.getHeader(),message.getLen(),1);
ThreadManager.getFixedThreadPool().submit(() -> { ThreadManager.getFixedThreadPool().submit(() -> {
GnssStatus lastGnssStatus = dataPersistService.getDeviceState(message.getId()); GnssStatus lastGnssStatus = dataPersistService.getDeviceState(message.getId());

View File

@ -47,6 +47,7 @@ public class D3F2StopIndicationMessageExecutor implements Executor<D3F2StopIndic
String deviceId = message.getId(); String deviceId = message.getId();
Device device = deviceService.findByDeviceId(deviceId); Device device = deviceService.findByDeviceId(deviceId);
if(device == null) return null; if(device == null) return null;
device.updateRx(message.getHeader(), message.getLen(),1);
message.setTenantId(device.getTenantId()); message.setTenantId(device.getTenantId());
GnssTrxMsg gnssTrxMsg = message.getTrxMsg(); GnssTrxMsg gnssTrxMsg = message.getTrxMsg();
gnssTrxMsg.setTenantid(device.getTenantId()); gnssTrxMsg.setTenantid(device.getTenantId());

View File

@ -5,7 +5,6 @@ import io.netty.buffer.ByteBuf;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.time.LocalTime; import java.time.LocalTime;
@ -32,19 +31,31 @@ public class D3F0SelfCheckMessage extends BaseMessage {
statusMsg.setRoll(src.readFloat()); statusMsg.setRoll(src.readFloat());
statusMsg.setYaw(src.readFloat()); statusMsg.setYaw(src.readFloat());
// skip shock // skip shock
if(src.readableBytes()>=4) {
src.readFloat(); src.readFloat();
statusMsg.setDtustate(src.readUnsignedByte()); statusMsg.setDtustate(src.readUnsignedByte());
statusMsg.setRssi(src.readUnsignedByte()); statusMsg.setRssi(src.readUnsignedByte());
statusMsg.setVoltage(src.readUnsignedShort()); statusMsg.setVoltage(src.readUnsignedShort());
}
// skip version // skip version
int ver = src.readUnsignedShort(); int ver = src.readUnsignedShort();
firmwareVersion = ((ver>>8)&0xFF) + "." + ((ver>>4)&0xF) + "." + (ver&0xF); short verType = (short) ((ver >> 12) & 0xF);
statusMsg.setTemperature((float) (src.readUnsignedShort()/10)); firmwareVersion = ((ver >> 8) & 0xF) + "." + ((ver >> 4) & 0xF) + "." + (ver & 0xF);
statusMsg.setHumidity((float) (src.readUnsignedShort()/10)); if (verType > 0) firmwareVersion = firmwareVersion + " type:" + verType;
if(src.readableBytes()>=4) {
statusMsg.setTemperature((float) (src.readUnsignedShort() / 10));
statusMsg.setHumidity((float) (src.readUnsignedShort() / 10));
}
// imei // imei
if(src.readableBytes()>=15){ if(src.readableBytes()>=15){
imei = src.readCharSequence(15, StandardCharsets.UTF_8).toString(); imei = src.readCharSequence(15, StandardCharsets.UTF_8).toString();
} }
if(src.readableBytes()>=2){
firmwareVersion = firmwareVersion +
" bVer:"+src.readUnsignedByte() +
" reboot:"+src.readUnsignedByte();
}
} }

View File

@ -2,6 +2,8 @@ package com.imdroid.sideslope.sal;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime;
/** /**
* 基站 & 测站设备 * 基站 & 测站设备
* *
@ -49,20 +51,32 @@ public class Device {
Double longitude; Double longitude;
Double altitude; Double altitude;
public void updateD331Bytes(int bytes,int count){ LocalDateTime lastRxTime;
int lastRxHead = 0;
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; d3xxCount+=count;
d3xxbytes += bytes; d3xxbytes += bytes;
} break;
case 0xd341:
public void updateD341Bytes(int bytes){ d341Count+=count;
d341Count++;
d341bytes += bytes; d341bytes += bytes;
} break;
case 0xd342:
public void updateD342Bytes(int bytes, int d341Num){
d342Count ++; d342Count ++;
d342Bytes += bytes; d342Bytes += bytes;
d341In42Count += d341Num; d341In42Count += count;
break;
}
} }
public void updateSatelitesNum(int num){ public void updateSatelitesNum(int num){
@ -72,7 +86,7 @@ public class Device {
} }
} }
public void clearStat(){ void clearStat(){
d3xxCount = 0; d3xxCount = 0;
d3xxbytes = 0; d3xxbytes = 0;
d341Count = 0; d341Count = 0;