增加经纬度记录

This commit is contained in:
weidong 2024-02-03 17:03:21 +08:00
parent f9be86382b
commit 11cf68fbf6
8 changed files with 32 additions and 8 deletions

View File

@ -46,4 +46,7 @@ public class GnssStatus {
Integer warningcode;
Short warning;
Integer noreslutcount;
Double latitude;
Double longitude;
Double altitude;
}

View File

@ -58,12 +58,17 @@ public class D331RtcmMessageExecutor implements Executor<D331RtcmMessage, Void>
Gga gga = message.getGga();
if(gga != null) {
device1.updateSatelitesNum(gga.getSatellitesInUsed());
logger.info(message.getId()+
if(gga.getQuality()>0 && gga.getQuality()<6) {
device1.setLatitude(gga.getLatitude());
device1.setLongitude(gga.getLongitude());
device1.setAltitude(gga.getAltitude());
}
/*logger.info(message.getId()+
" lat: "+gga.getLatitude()+
" lon:"+gga.getLongitude()+
" alt: "+gga.getAltitude()+
" sat: "+gga.getSatellitesInUsed()+
" quality: "+gga.getQuality());
" quality: "+gga.getQuality());*/
}
return null;

View File

@ -40,6 +40,11 @@ public class D341LocationMessageExecutor implements Executor<D341LocationMessage
Gga gga = message.getGga();
if(gga != null) {
device.updateSatelitesNum(gga.getSatellitesInUsed());
if(gga.getQuality()>0 && gga.getQuality()<6) {
device.setLatitude(gga.getLatitude());
device.setLongitude(gga.getLongitude());
device.setAltitude(gga.getAltitude());
}
}
ThreadManager.getFixedThreadPool().submit(() -> {

View File

@ -56,7 +56,7 @@ public class D3F2StopIndicationMessageExecutor implements Executor<D3F2StopIndic
ThreadManager.getFixedThreadPool().submit(() -> {
LocalDateTime uploadTime = multiLineGNSSCalcService.checkUploadTime(
device.getDeviceId(), device.getTenantId());
dataPersistService.saveDeviceTrxStat(message, (uploadTime!=null), device.getSatelitesInUse());
dataPersistService.saveDeviceTrxStat(message, (uploadTime!=null), device);
// 通知beidou服务设备休眠
beidouClient.onDeviceStop(deviceId,device.getTenantId());
if(uploadTime!=null){

View File

@ -41,6 +41,10 @@ public class Device {
int d341bytes = 0;
int satelitesInUse = 0;
Double latitude;
Double longitude;
Double altitude;
public void updateD331Bytes(int bytes){
d3xxCount++;
d3xxbytes += bytes;

View File

@ -3,6 +3,7 @@ package com.imdroid.sideslope.service;
import com.imdroid.secapi.dto.GnssStatus;
import com.imdroid.sideslope.message.D3F0SelfCheckMessage;
import com.imdroid.sideslope.message.D3F2StopIndicationMessage;
import com.imdroid.sideslope.sal.Device;
/**
* 设备数据持久化接口保存
@ -17,7 +18,6 @@ public interface DataPersistService {
GnssStatus getDeviceState(String deviceId);
void updateDeviceState(GnssStatus gnssStatus);
void saveDeviceState(D3F0SelfCheckMessage d3F0SelfCheckMessage);
void saveDeviceTrxStat(D3F2StopIndicationMessage d3F2StopIndicationMessage,boolean isUploading,int satelitesNum);
void saveDeviceTrxStat(D3F2StopIndicationMessage d3F2StopIndicationMessage, boolean isUploading, Device device);
}

View File

@ -4,6 +4,7 @@ import com.imdroid.secapi.dto.*;
import com.imdroid.sideslope.message.BaseMessage;
import com.imdroid.sideslope.message.D3F0SelfCheckMessage;
import com.imdroid.sideslope.message.D3F2StopIndicationMessage;
import com.imdroid.sideslope.sal.Device;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -86,7 +87,7 @@ public class DataPersistServiceImpl implements DataPersistService {
}
@Override
public void saveDeviceTrxStat(D3F2StopIndicationMessage message, boolean isUploading,int satelitesNum) {
public void saveDeviceTrxStat(D3F2StopIndicationMessage message, boolean isUploading, Device device) {
try {
// 添加到trxmsg里
GnssTrxMsg trxMsg = message.getTrxMsg();
@ -104,7 +105,10 @@ public class DataPersistServiceImpl implements DataPersistService {
deviceState.setRxbytes(rxbytes);*/
deviceState.setD3xxbytes(trxMsg.getD3xxbytes());
deviceState.setB562bytes(trxMsg.getB562bytes());
deviceState.setSatelliteinuse(satelitesNum);
deviceState.setSatelliteinuse(device.getSatelitesInUse());
deviceState.setLatitude(device.getLatitude());
deviceState.setLongitude(device.getLongitude());
deviceState.setAltitude(device.getAltitude());
deviceState.setState(isUploading?GnssStatus.STATE_UPLOADING:GnssStatus.STATE_IDLE);
deviceStateRepository.updateById(deviceState);
}

View File

@ -111,7 +111,7 @@ CREATE TABLE IF NOT EXISTS `gnssstatus` (
`voltage` int DEFAULT 0,
`temperature` float DEFAULT 0,
`humidity` float DEFAULT 0,
`satelliteinuse` float DEFAULT 0,
`satelliteinuse` int DEFAULT 0,
`txbytes` int DEFAULT 0,
`rxbytes` int DEFAULT 0,
`b562bytes` int DEFAULT 0,
@ -120,6 +120,9 @@ CREATE TABLE IF NOT EXISTS `gnssstatus` (
`warningcode` int DEFAULT 0,
`warning` smallint DEFAULT 0,
`noreslutcount` int DEFAULT 0,
`latitude` double DEFAULT NULL,
`longitude` double DEFAULT NULL,
`altitude` double DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;