diff --git a/src/main/java/com/ruoyi/device/domain/model/thingsboard/constants/DeviceTelemetry.java b/src/main/java/com/ruoyi/device/domain/model/thingsboard/constants/DeviceTelemetry.java index 42c7e3d..061ca09 100644 --- a/src/main/java/com/ruoyi/device/domain/model/thingsboard/constants/DeviceTelemetry.java +++ b/src/main/java/com/ruoyi/device/domain/model/thingsboard/constants/DeviceTelemetry.java @@ -287,6 +287,22 @@ public class DeviceTelemetry { } ); + + /** + * 无人机 position_state.gps_number GPS 搜星数量 + */ + + public static final TelemetryKey Position_State_GPS_Number = TelemetryKey.of( + "position_state.gps_number", + Integer.class, + value -> { + if (value == null) return null; + if (value instanceof Number) { + return ((Number) value).intValue(); + } + return Integer.parseInt(value.toString()); + } + ); /** * 风速 */ @@ -514,7 +530,8 @@ public class DeviceTelemetry { Environment_Temperature, Network_State_Rate, Cover_State, - Drone_Charge_State_Capacity_Percent + Drone_Charge_State_Capacity_Percent, + Position_State_GPS_Number ); } diff --git a/src/main/java/com/ruoyi/device/service/dto/AircraftDetailDTO.java b/src/main/java/com/ruoyi/device/service/dto/AircraftDetailDTO.java index b5017eb..7e703c4 100644 --- a/src/main/java/com/ruoyi/device/service/dto/AircraftDetailDTO.java +++ b/src/main/java/com/ruoyi/device/service/dto/AircraftDetailDTO.java @@ -70,6 +70,9 @@ public class AircraftDetailDTO implements Serializable /** RTK信号 */ private Integer rtkSignal; + /** GPS信号 */ + private Integer gpsSignal; + /** 限高 */ private Integer maxAltitude; diff --git a/src/main/java/com/ruoyi/device/service/impl/BufferDeviceImpl.java b/src/main/java/com/ruoyi/device/service/impl/BufferDeviceImpl.java index 7799275..80e1bb7 100644 --- a/src/main/java/com/ruoyi/device/service/impl/BufferDeviceImpl.java +++ b/src/main/java/com/ruoyi/device/service/impl/BufferDeviceImpl.java @@ -502,6 +502,14 @@ public class BufferDeviceImpl implements IBufferDeviceService } }); + telemetryMap.get(DeviceTelemetry.Position_State_GPS_Number) + .ifPresent(telemetryValue -> { + Integer gpsNumber = telemetryValue.getValue(); + if (gpsNumber != null) { + dto.setGpsSignal(gpsNumber); + } + }); + // 限高 telemetryMap.get(DeviceTelemetry.Height_Limit) .ifPresent(telemetryValue -> dto.setMaxAltitude(telemetryValue.getValue()));