From 4acf06226c8414c7218769995660dee97271a57b Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Sat, 02 Nov 2024 11:48:50 +0800
Subject: [PATCH] 优化
---
ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java | 28 +++++-----------------------
1 files changed, 5 insertions(+), 23 deletions(-)
diff --git a/ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java b/ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java
index 8c16ec9..b0ef261 100644
--- a/ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java
+++ b/ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java
@@ -79,8 +79,6 @@
@Resource
private TyConfiguration tyConfiguration;
- // 存储每个无人机的最后遥测处理时间
- private Map<String, Long> lastTelemetryTimes = new ConcurrentHashMap<>();
/**
* 获取天宇token信息
@@ -604,31 +602,15 @@
UavState uavState = UavStateConverter.convertProtoToEntity(uavStateCmd.getUavState());
UavStateCache.putUavState(uavState);
logPrint("无人机状态", uavState.getBoxSn());
- WebSocketUtil.sendMessageAll(uavState);
+ // WebSocketUtil.sendMessageAll(uavState);
break;
case (byte) 0xA9:
// 处理无人机遥测消息
UavTelemetryDataCmd uavTelemetryDataCmd = (UavTelemetryDataCmd) tyCommand;
- if (uavTelemetryDataCmd.getBoxSn() == null) {
- return;
- }
- String boxSn = ByteUtils.bytesToString(uavTelemetryDataCmd.getBoxSn()); // 假设有获取无人机ID的方法
- long currentTime = System.currentTimeMillis();
-
- // 获取无人机的最后处理时间,如果没有则设置为0
- long lastTelemetryTime = lastTelemetryTimes.getOrDefault(boxSn, 0L);
-
- // 检查与上次处理时间的间隔
- if (currentTime - lastTelemetryTime >= 1000) { // 1秒
- TelemetryData telemetryData = UavTelemetryDataConverter.convertProtoToEntity(uavTelemetryDataCmd.getTelemetryData());
- UavTelemetryDataCache.putUavTelemetryData(telemetryData);
- logPrint("无人机遥测", telemetryData.getBoxSn());
-
- // 更新最后处理时间
- lastTelemetryTimes.put(boxSn, currentTime);
- } else {
- log.debug("无人机 " + boxSn + " 遥测数据接收过于频繁,已跳过处理");
- }
+ TelemetryData telemetryData = UavTelemetryDataConverter.convertProtoToEntity(uavTelemetryDataCmd.getTelemetryData());
+ UavTelemetryDataCache.putUavTelemetryData(telemetryData);
+ logPrint("无人机遥测", telemetryData.getBoxSn());
+ WebSocketUtil.sendMessageAll(telemetryData);
break;
case (byte) 0x0C:
--
Gitblit v1.9.3