1、告警优化,增加长期无有效解告警
2、固定解统计优化
This commit is contained in:
parent
58c8865027
commit
dbe8a3146a
@ -36,3 +36,9 @@ beidou-exapi 9908(外)
|
||||
4)初值作为参考点的有效时长,缺省为1个周期。从初始值更新时间开始算起
|
||||
|
||||
小树林算法:1b+2b+3高程0.1+4的48小时
|
||||
|
||||
2024-11
|
||||
告警:
|
||||
1)离线:设备记录最后一次收到任何数据的时间。定时任务检查设备最后一次时间,如果与当前时间差距大于门限,则判断为离线;D3F0/D3F2清除离线告警
|
||||
2)连续无效解:每次解算完,如果是无效解,则无效解次数加1;否则清0;如果等于N,则产生一次告警。
|
||||
3)连续无固定解:每个周期结束,如果是有效解解,则记录当前时间;D3F2检测当前时间和最近一次有效解时间差距,如果大于N,则产生一次告警。
|
||||
@ -38,8 +38,8 @@ public class WarningCfg {
|
||||
public static final String TYPE_NAME_LESS_B562 = "固定解少";
|
||||
public static final int TYPE_NO_FIXED_RESULT = 0x100;
|
||||
public static final String TYPE_NAME_NO_FIXED_RESULT = "连续无固定解";
|
||||
//public static final int TYPE_BS_NO_RESULT = 0x200;
|
||||
//public static final String TYPE_NAME_BS_NO_RESULT = "基站下的测站均无解";
|
||||
public static final int TYPE_CONT_INVALID_RESULT = 0x200;
|
||||
public static final String TYPE_NAME_CONT_INVALID_RESULT = "长时间无有效解";
|
||||
public static final int TYPE_INCLINE = 0x400;
|
||||
public static final String TYPE_NAME_INCLINE = "异常倾斜";
|
||||
|
||||
@ -66,7 +66,7 @@ public class WarningCfg {
|
||||
if((code & TYPE_LESS_D3XX) !=0) warningInfo.add(TYPE_NAME_LESS_D3XX);
|
||||
if((code & TYPE_LESS_B562) !=0) warningInfo.add(TYPE_NAME_LESS_B562);
|
||||
if((code & TYPE_NO_FIXED_RESULT) !=0) warningInfo.add(TYPE_NAME_NO_FIXED_RESULT);
|
||||
//if((code & TYPE_BS_NO_RESULT) !=0) warningInfo.add(TYPE_NAME_BS_NO_RESULT);
|
||||
if((code & TYPE_CONT_INVALID_RESULT) !=0) warningInfo.add(TYPE_NAME_CONT_INVALID_RESULT);
|
||||
if((code & TYPE_INCLINE) !=0) warningInfo.add(TYPE_NAME_INCLINE);
|
||||
return warningInfo;
|
||||
}
|
||||
|
||||
@ -70,17 +70,22 @@ public class D331RtcmMessageExecutor implements Executor<D331RtcmMessage, Void>
|
||||
if(deviceBs.getD3xxbytes()>0){
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
if(deviceBs.getLastRxTime().isBefore(now.minusMinutes(1)) &&
|
||||
(deviceBs.getLastD3f0f2Time() == null ||
|
||||
deviceBs.getLastD3f0f2Time().isBefore(now.minusMinutes(30)))) {
|
||||
(deviceBs.getLastD3f2Time() == null ||
|
||||
deviceBs.getLastD3f2Time().isBefore(now.minusMinutes(30)))) {
|
||||
// new cycle
|
||||
logger.info("device {} rx {} d331 in a cycle while not d3f0f2",deviceBs.getDeviceId(),deviceBs.getD3xxCount());
|
||||
|
||||
Device lastCycleDevice = new Device();
|
||||
lastCycleDevice.setDeviceId(deviceBs.getDeviceId());
|
||||
lastCycleDevice.setDeviceType(deviceBs.getDeviceType());
|
||||
lastCycleDevice.setTenantId(deviceBs.getTenantId());
|
||||
lastCycleDevice.setD3xxbytes(deviceBs.getD3xxbytes());
|
||||
lastCycleDevice.setD3xxCount(deviceBs.getD3xxCount());
|
||||
lastCycleDevice.setD341bytes(deviceBs.getD341bytes());
|
||||
lastCycleDevice.setD341Count(deviceBs.getD341Count());
|
||||
lastCycleDevice.setFixedNum(deviceBs.getFixedNum());
|
||||
lastCycleDevice.setFloatNum(deviceBs.getFloatNum());
|
||||
lastCycleDevice.setNoFixedAndFloatResult(deviceBs.getNoFixedAndFloatResult());
|
||||
lastCycleDevice.setLastRxTime(deviceBs.getLastRxTime());
|
||||
lastCycleDevice.setLastValidCalcDataTime(deviceBs.getLastValidCalcDataTime());
|
||||
lastCycleDevice.setSatelitesInUse(deviceBs.getSatelitesInUse());
|
||||
deviceBs.clearStat();
|
||||
ThreadManager.getFixedThreadPool().submit(() -> {
|
||||
|
||||
@ -44,18 +44,21 @@ public class D341LocationMessageExecutor implements Executor<D341LocationMessage
|
||||
// 如果没有收到d3f2,这里判断是否是一个新的周期:上一次收到D341的时间大于两分钟且上次收到d3f2的时间大于30分钟
|
||||
if(device.getD341Count()>0) {
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
if (device.getLastRxTime().isBefore(now.minusMinutes(2)) &&
|
||||
(device.getLastD3f0f2Time() == null ||
|
||||
device.getLastD3f0f2Time().isBefore(now.minusMinutes(30)))) {
|
||||
if (device.getLastRxTime().isBefore(now.minusMinutes(1)) &&
|
||||
(device.getLastD3f2Time() == null ||
|
||||
device.getLastD3f2Time().isBefore(now.minusMinutes(30)))) {
|
||||
// new cycle
|
||||
Device lastCycleDevice = new Device();
|
||||
lastCycleDevice.setDeviceId(device.getDeviceId());
|
||||
lastCycleDevice.setDeviceType(device.getDeviceType());
|
||||
lastCycleDevice.setTenantId(device.getTenantId());
|
||||
lastCycleDevice.setD341bytes(device.getD341bytes());
|
||||
lastCycleDevice.setD341Count(device.getD341Count());
|
||||
lastCycleDevice.setFixedNum(device.getFixedNum());
|
||||
lastCycleDevice.setFloatNum(device.getFloatNum());
|
||||
lastCycleDevice.setNoFixedAndFloatResult(device.getNoFixedAndFloatResult());
|
||||
lastCycleDevice.setLastRxTime(device.getLastRxTime());
|
||||
lastCycleDevice.setLastValidCalcDataTime(device.getLastValidCalcDataTime());
|
||||
lastCycleDevice.setSatelitesInUse(device.getSatelitesInUse());
|
||||
device.clearStat();
|
||||
ThreadManager.getFixedThreadPool().submit(() -> {
|
||||
|
||||
@ -25,6 +25,10 @@ import java.time.LocalDateTime;
|
||||
/**
|
||||
* @author Layton
|
||||
* @date 2023/2/2 20:40
|
||||
* 1、回ACK,以便终端判断是否连接上服务器后台
|
||||
* 2、同步参数
|
||||
* 3、判断是否发冷启动指令
|
||||
* 4、保存状态信息,判断是否有低电压等告警,清除离线告警
|
||||
*/
|
||||
@Component
|
||||
public class D3F0SelfCheckMessageExecutor implements Executor<D3F0SelfCheckMessage, Void> {
|
||||
@ -49,30 +53,31 @@ public class D3F0SelfCheckMessageExecutor implements Executor<D3F0SelfCheckMessa
|
||||
|
||||
Device device = deviceService.findByDeviceId(message.getId());
|
||||
if(device == null) return null;
|
||||
// 补齐tenantId
|
||||
message.setTenantId(device.getTenantId());
|
||||
|
||||
//应答
|
||||
sendD3F1Ack(device);
|
||||
|
||||
// 检查是否需要对设备的F9P进行冷启动操作
|
||||
checkAndSendF9PColdStartCommand(device);
|
||||
// 补齐tenantId
|
||||
message.setTenantId(device.getTenantId());
|
||||
//更新统计
|
||||
device.updateRx(message.getHeader(),message.getLen(),1);
|
||||
|
||||
ThreadManager.getFixedThreadPool().submit(() -> {
|
||||
// 检查是否需要对设备的F9P进行冷启动操作
|
||||
checkAndSendF9PColdStartCommand(device);
|
||||
// 通知beidou服务设备上线,这里会触发参数同步
|
||||
GnssStatus lastGnssStatus = dataPersistService.getDeviceState(message.getId());
|
||||
try {
|
||||
if (lastGnssStatus != null && lastGnssStatus.getState() == GnssStatus.STATE_OFFLINE) {
|
||||
beidouClient.onLine(lastGnssStatus.getDeviceid(),
|
||||
lastGnssStatus.getTenantid(), lastGnssStatus.getUpdatetime());
|
||||
} else {
|
||||
// 通知beidou服务设备上线
|
||||
beidouClient.onDeviceActive(message.getId(), device.getTenantId());
|
||||
}
|
||||
}
|
||||
catch (Exception e){
|
||||
|
||||
}
|
||||
//保存状态信息,判断是否有低电压等告警,清除离线告警
|
||||
dataPersistService.saveDeviceState(message);
|
||||
});
|
||||
|
||||
@ -101,7 +106,7 @@ public class D3F0SelfCheckMessageExecutor implements Executor<D3F0SelfCheckMessa
|
||||
// 连续6个周期无解,则发送 F9P 冷启动指令
|
||||
if(device.getNoFixedAndFloatResult() >= 6){
|
||||
//sendF9PColdStartCommand(device);
|
||||
logger.info("{}: 类型{}, 连续{}次无固定解和浮点解,发送 F9P 冷启动指令",device.getDeviceId(), device.getDeviceType(),device.getNoFixedAndFloatResult());
|
||||
logger.info("{}: 连续{}次无固定解和浮点解,发送 F9P 冷启动指令",device.getDeviceId(), device.getNoFixedAndFloatResult());
|
||||
device.clearNoResultStat();
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,7 +11,6 @@ import com.imdroid.sideslope.sal.Device;
|
||||
import com.imdroid.sideslope.sal.DeviceService;
|
||||
import com.imdroid.sideslope.service.DataPersistService;
|
||||
import com.imdroid.sideslope.service.GnssSingleBufferServiceImpl;
|
||||
import com.imdroid.sideslope.service.WarningService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -24,6 +23,9 @@ import java.time.LocalDateTime;
|
||||
* 停止指示消息处理器
|
||||
*
|
||||
* @author LiGang
|
||||
* 1、更新统计
|
||||
* 2、启动单周期固定解处理
|
||||
* 3、保存统计信息,判断是否有连续无固定解、连续无有效解等告警,清除离线告警
|
||||
*/
|
||||
@Component
|
||||
public class D3F2StopIndicationMessageExecutor implements Executor<D3F2StopIndicationMessage, Void> {
|
||||
@ -40,23 +42,21 @@ public class D3F2StopIndicationMessageExecutor implements Executor<D3F2StopIndic
|
||||
private GNSSDataCalcService gnssCalcService;
|
||||
@Autowired
|
||||
MultiLineGNSSCalcService multiLineGNSSCalcService;
|
||||
@Autowired
|
||||
WarningService warningService;
|
||||
|
||||
@Autowired
|
||||
GnssSingleBufferServiceImpl gnssSingleBufferService;
|
||||
|
||||
@Override
|
||||
public Void execute(D3F2StopIndicationMessage message) {
|
||||
|
||||
logger.info("receive d3f2 message of {} device: {}", message.getId(), DataTypeUtil.getHexString(message.getSrcData()));
|
||||
|
||||
// 补齐tenantId
|
||||
String deviceId = message.getId();
|
||||
Device device = deviceService.findByDeviceId(deviceId);
|
||||
if(device == null) return null;
|
||||
device.updateRx(message.getHeader(), message.getLen(),1);
|
||||
message.setTenantId(device.getTenantId());
|
||||
//更新统计
|
||||
device.updateRx(message.getHeader(), message.getLen(),1);
|
||||
GnssTrxMsg gnssTrxMsg = message.getTrxMsg();
|
||||
gnssTrxMsg.setTenantid(device.getTenantId());
|
||||
gnssTrxMsg.setD3xxbytes(device.getD3xxbytes());
|
||||
@ -72,15 +72,7 @@ public class D3F2StopIndicationMessageExecutor implements Executor<D3F2StopIndic
|
||||
device.getDeviceId(), device.getTenantId());
|
||||
gnssCalcService.calSingleDone(device, null, message.getCreateTime());
|
||||
|
||||
// 检查告警
|
||||
if(device.getDeviceType() == Device.DEVICE_BASE_STATION) {
|
||||
warningService.checkD3xxNum(device);
|
||||
}
|
||||
else{
|
||||
warningService.checkB562Num(device);
|
||||
}
|
||||
|
||||
// 保存统计
|
||||
// 保存统计,判断是否有连续无固定解、连续无有效解等告警,清除离线告警
|
||||
dataPersistService.saveDeviceTrxStat(message, (uploadTime!=null), device);
|
||||
|
||||
// 保存缓存中的 GNSS 单次解析结果
|
||||
|
||||
@ -63,7 +63,7 @@ public class Device {
|
||||
Double iPosd;
|
||||
|
||||
LocalDateTime lastRxTime;
|
||||
LocalDateTime lastD3f0f2Time;
|
||||
LocalDateTime lastD3f2Time;
|
||||
short noFixedAndFloatResult=0;
|
||||
|
||||
// 日志记录控制
|
||||
@ -77,22 +77,24 @@ public class Device {
|
||||
|
||||
public void updateRx(int head, int bytes,int count){
|
||||
lastRxHead = head;
|
||||
lastRxTime = LocalDateTime.now();
|
||||
|
||||
switch (head){
|
||||
case 0xd3f0:
|
||||
lastD3f0f2Time = LocalDateTime.now();
|
||||
clearStat();
|
||||
//lastD3f0f2Time = LocalDateTime.now();
|
||||
//clearStat();
|
||||
break;
|
||||
case 0xd3f2:
|
||||
lastD3f0f2Time = LocalDateTime.now();
|
||||
lastD3f2Time = LocalDateTime.now();
|
||||
break;
|
||||
case 0xd331:
|
||||
d3xxCount+=count;
|
||||
d3xxbytes += bytes;
|
||||
lastRxTime = LocalDateTime.now();
|
||||
break;
|
||||
case 0xd341:
|
||||
d341Count+=count;
|
||||
d341bytes += bytes;
|
||||
lastRxTime = LocalDateTime.now();
|
||||
break;
|
||||
case 0xd342:
|
||||
d342Count ++;
|
||||
|
||||
@ -130,6 +130,16 @@ public class DataPersistServiceImpl implements DataPersistService {
|
||||
deviceState.setAltitude(device.getAltitude());
|
||||
deviceState.setState(isUploading?GnssStatus.STATE_UPLOADING:GnssStatus.STATE_IDLE);
|
||||
deviceStateRepository.updateById(deviceState);
|
||||
|
||||
warningService.checkDeviceStatus(null, deviceState);
|
||||
|
||||
// 检查GNSS质量
|
||||
if(device.getDeviceType() == Device.DEVICE_BASE_STATION){
|
||||
warningService.checkD3xxNum(device);
|
||||
}
|
||||
else{
|
||||
warningService.checkB562Num(device);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
||||
@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.time.Duration;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -59,7 +60,7 @@ public class WarningServiceImpl implements WarningService {
|
||||
isUpdated = true;
|
||||
}
|
||||
|
||||
// b562少
|
||||
// 无固定解少
|
||||
if(check(status, WarningCfg.TYPE_LESS_B562,
|
||||
WarningCfg.TYPE_NAME_LESS_B562,true,
|
||||
device.getFixedNum(),null,
|
||||
@ -67,13 +68,41 @@ public class WarningServiceImpl implements WarningService {
|
||||
isUpdated=true;
|
||||
}
|
||||
|
||||
//清除连续无b562
|
||||
if(0 != device.getFixedNum()){
|
||||
//连续无固定解
|
||||
if ((status.getWarningcode() & WarningCfg.TYPE_NO_FIXED_RESULT) != 0) {
|
||||
if(0 != device.getFixedNum()) {
|
||||
status.setWarningcode(status.getWarningcode() & ~WarningCfg.TYPE_NO_FIXED_RESULT);
|
||||
isUpdated = true;
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(check(status, WarningCfg.TYPE_NO_FIXED_RESULT,
|
||||
WarningCfg.TYPE_NAME_NO_FIXED_RESULT,false,
|
||||
(int) device.getNoFixedAndFloatResult(),null,
|
||||
"连续无固定解:"+device.getNoFixedAndFloatResult())){
|
||||
isUpdated=true;
|
||||
}
|
||||
}
|
||||
|
||||
//连续无有效解
|
||||
if ((status.getWarningcode() & WarningCfg.TYPE_CONT_INVALID_RESULT) != 0) {
|
||||
int[] warningValues = cfgMap.get(WarningCfg.TYPE_CONT_INVALID_RESULT);
|
||||
if(warningValues!=null && device.getLastValidCalcDataTime()!=null){
|
||||
if(LocalDateTime.now().isBefore(device.getLastValidCalcDataTime().plusHours(warningValues[1]))){
|
||||
status.setWarningcode(status.getWarningcode() & ~WarningCfg.TYPE_CONT_INVALID_RESULT);
|
||||
isUpdated = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(device.getLastValidCalcDataTime()!=null &&
|
||||
check(status, WarningCfg.TYPE_CONT_INVALID_RESULT,
|
||||
WarningCfg.TYPE_NAME_CONT_INVALID_RESULT,false,
|
||||
(int) Duration.between(device.getLastValidCalcDataTime(), LocalDateTime.now()).toHours(),null,
|
||||
"长时间无有效解:"+device.getLastValidCalcDataTime())){
|
||||
isUpdated=true;
|
||||
}
|
||||
}
|
||||
|
||||
if(isUpdated){
|
||||
// 根据告警码确定告警级别
|
||||
|
||||
@ -61,7 +61,7 @@ public class IndexController extends BasicController{
|
||||
if(status.getState() == GnssStatus.STATE_OFFLINE) {
|
||||
deviceOfflineNum++;
|
||||
}
|
||||
else if((status.getWarningcode()&WarningCfg.TYPE_NO_FIXED_RESULT) != 0) {
|
||||
else if((status.getWarningcode()&WarningCfg.TYPE_CONT_INVALID_RESULT) != 0) {
|
||||
noFix++;
|
||||
}
|
||||
|
||||
@ -127,8 +127,7 @@ public class IndexController extends BasicController{
|
||||
queryWrapper.eq("state",GnssStatus.STATE_OFFLINE);
|
||||
}
|
||||
else if(query.equals("nofixed")){
|
||||
queryWrapper.ge("warningcode",256);
|
||||
queryWrapper.le("warningcode",512);
|
||||
queryWrapper.eq("warningcode&"+WarningCfg.TYPE_CONT_INVALID_RESULT,WarningCfg.TYPE_CONT_INVALID_RESULT);
|
||||
}
|
||||
else if(query.equals("warning1")){
|
||||
queryWrapper.eq("warning",WarningCfg.LEVEL_1);
|
||||
|
||||
@ -38,7 +38,7 @@ public class WarningController extends BasicController implements CommonExcelSer
|
||||
@PostConstruct
|
||||
public static void init() {
|
||||
warningMap.put(WarningCfg.TYPE_DEVICE_OFF_LINE, WarningCfg.TYPE_NAME_DEVICE_OFF_LINE);
|
||||
//warningMap.put(WarningCfg.TYPE_BS_NO_RESULT, WarningCfg.TYPE_NAME_BS_NO_RESULT);
|
||||
warningMap.put(WarningCfg.TYPE_CONT_INVALID_RESULT, WarningCfg.TYPE_NAME_CONT_INVALID_RESULT);
|
||||
warningMap.put(WarningCfg.TYPE_NO_FIXED_RESULT, WarningCfg.TYPE_NAME_NO_FIXED_RESULT);
|
||||
warningMap.put(WarningCfg.TYPE_LESS_INUSE_SAT, WarningCfg.TYPE_NAME_LESS_INUSE_SAT);
|
||||
warningMap.put(WarningCfg.TYPE_LESS_D3XX, WarningCfg.TYPE_NAME_LESS_D3XX);
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
package com.imdroid.beidou.task;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.github.yulichang.query.MPJQueryWrapper;
|
||||
import com.imdroid.beidou.service.NotificationService;
|
||||
import com.imdroid.common.util.WarningLogExecutor;
|
||||
import com.imdroid.secapi.dto.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -103,7 +100,7 @@ public class DeviceStatusChecker {
|
||||
now.format(formatter), WarningCfg.LEVEL_2);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@Scheduled(cron = "0 27 * * * ?") // 每小时执行一次
|
||||
void checkRoverStationCalcData() throws ExecutionException, InterruptedException {
|
||||
// 获取无固定解告警配置
|
||||
@ -178,5 +175,5 @@ public class DeviceStatusChecker {
|
||||
WarningCfg.LEVEL_2);
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
}
|
||||
@ -78,7 +78,7 @@
|
||||
</div>
|
||||
<div class="layui-col-xs3 layui-col-md4">
|
||||
<a href="#" onclick="queryDevices('offline')" style="color: #bd3004" th:text="'掉线数 '+${deviceOfflineNum}">0</a><br>
|
||||
<div th:if="${noFix>0}"><a href="#" onclick="queryDevices('nofixed')" style="color: #bd3004" th:text="'长期无解 '+${noFix}">0</a><br></div>
|
||||
<div th:if="${noFix>0}"><a href="#" onclick="queryDevices('nofixed')" style="color: #bd3004" th:text="'长期无效解 '+${noFix}">0</a><br></div>
|
||||
<a style="color: #000000" th:text="'装机量 '+${deviceDeployedNum}">2020</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -67,13 +67,13 @@ public class BeidouDevice {
|
||||
executeAsD342("C:\\Users\\wd\\Desktop\\log\\2412254_0424_4xx.log");
|
||||
executeAsD342("C:\\Users\\wd\\Desktop\\log\\2412254_0424_5xx.log");
|
||||
*/
|
||||
execute("C:\\Users\\wd\\Desktop\\log\\2345076_0424_5xx.log");
|
||||
//execute("C:\\Users\\wd\\Desktop\\log\\2345076_0424_5xx.log");
|
||||
//executeAsD342("C:\\Users\\wd\\Desktop\\log\\b562_2412270_1xx.log");
|
||||
//executeAsD342("C:\\Users\\wd\\Desktop\\log\\b562_2412270_2xx.log");
|
||||
|
||||
/* executeAsD342("C:\\Users\\wd\\Desktop\\log\\2345076_0424_1.log");
|
||||
executeAsD342("C:\\Users\\wd\\Desktop\\log\\2345076_0424_2.log");
|
||||
executeAsD342("C:\\Users\\wd\\Desktop\\log\\2345076_0424_1xx.log");
|
||||
//execute("C:\\Users\\wd\\Desktop\\log\\2345076_0424_1.log");
|
||||
execute("C:\\Users\\wd\\Desktop\\log\\2345076_0424_2.log");
|
||||
/*executeAsD342("C:\\Users\\wd\\Desktop\\log\\2345076_0424_1xx.log");
|
||||
executeAsD342("C:\\Users\\wd\\Desktop\\log\\2345076_0424_2xx.log");
|
||||
executeAsD342("C:\\Users\\wd\\Desktop\\log\\2345076_0424_3xx.log");
|
||||
executeAsD342("C:\\Users\\wd\\Desktop\\log\\2345076_0424_4xx.log");
|
||||
@ -120,7 +120,12 @@ public class BeidouDevice {
|
||||
cycleCount++;
|
||||
}
|
||||
|
||||
if(arrs[2].startsWith("d3f2")){
|
||||
b562Count = b562Count;
|
||||
}
|
||||
else{
|
||||
udpClient.sendData(ByteUtil.hexStringTobyte(arrs[2]));
|
||||
}
|
||||
b562Count++;
|
||||
lastTime = time.getTime();
|
||||
Thread.sleep(100);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user