增加经纬度记录

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; Integer warningcode;
Short warning; Short warning;
Integer noreslutcount; 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(); Gga gga = message.getGga();
if(gga != null) { if(gga != null) {
device1.updateSatelitesNum(gga.getSatellitesInUsed()); 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()+ " lat: "+gga.getLatitude()+
" lon:"+gga.getLongitude()+ " lon:"+gga.getLongitude()+
" alt: "+gga.getAltitude()+ " alt: "+gga.getAltitude()+
" sat: "+gga.getSatellitesInUsed()+ " sat: "+gga.getSatellitesInUsed()+
" quality: "+gga.getQuality()); " quality: "+gga.getQuality());*/
} }
return null; return null;

View File

@ -40,6 +40,11 @@ public class D341LocationMessageExecutor implements Executor<D341LocationMessage
Gga gga = message.getGga(); Gga gga = message.getGga();
if(gga != null) { if(gga != null) {
device.updateSatelitesNum(gga.getSatellitesInUsed()); 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(() -> { ThreadManager.getFixedThreadPool().submit(() -> {

View File

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

View File

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

View File

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

View File

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

View File

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