From 422930b264d8fa15fb321844ced33a4359d91de0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Sat, 7 Feb 2026 09:17:04 +0800 Subject: [PATCH] xx --- .../constants/TuohengDeviceTelemetry.java | 91 ++++++++++++++++++- .../service/impl/TuohengBufferDeviceImpl.java | 32 +++++++ 2 files changed, 122 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ruoyi/device/domain/model/thingsboard/tuoheng/constants/TuohengDeviceTelemetry.java b/src/main/java/com/ruoyi/device/domain/model/thingsboard/tuoheng/constants/TuohengDeviceTelemetry.java index cd321c3..99c6ffc 100644 --- a/src/main/java/com/ruoyi/device/domain/model/thingsboard/tuoheng/constants/TuohengDeviceTelemetry.java +++ b/src/main/java/com/ruoyi/device/domain/model/thingsboard/tuoheng/constants/TuohengDeviceTelemetry.java @@ -587,6 +587,88 @@ public class TuohengDeviceTelemetry { } ); + /** + * 机场设备自检数据 (来自 /topic/v1/airportFly/+/control/data) + */ + + // 升降架状态 - Integer (0=正常) + public static final TelemetryKey LIFTER_STATUS = TelemetryKey.of( + "lifter_status", + Integer.class, + value -> { + if (value == null) return null; + if (value instanceof Number) { + return ((Number) value).intValue(); + } + return Integer.parseInt(value.toString()); + } + ); + + // X轴夹器状态 - Integer (0=正常) + public static final TelemetryKey HOLDER_X_STATUS = TelemetryKey.of( + "holder_x_status", + Integer.class, + value -> { + if (value == null) return null; + if (value instanceof Number) { + return ((Number) value).intValue(); + } + return Integer.parseInt(value.toString()); + } + ); + + // Y轴夹器状态 - Integer (0=正常) + public static final TelemetryKey HOLDER_Y_STATUS = TelemetryKey.of( + "holder_y_status", + Integer.class, + value -> { + if (value == null) return null; + if (value instanceof Number) { + return ((Number) value).intValue(); + } + return Integer.parseInt(value.toString()); + } + ); + + // 控制器状态 - Integer (0=正常) + public static final TelemetryKey CONTROLLER_STATUS = TelemetryKey.of( + "controller_status", + Integer.class, + value -> { + if (value == null) return null; + if (value instanceof Number) { + return ((Number) value).intValue(); + } + return Integer.parseInt(value.toString()); + } + ); + + // 舱门状态 - Integer (0=正常) + public static final TelemetryKey HATCH_STATUS = TelemetryKey.of( + "hatch_status", + Integer.class, + value -> { + if (value == null) return null; + if (value instanceof Number) { + return ((Number) value).intValue(); + } + return Integer.parseInt(value.toString()); + } + ); + + // 无人机状态 - Integer (0=正常) + public static final TelemetryKey DRONE_STATUS = TelemetryKey.of( + "drone_status", + Integer.class, + value -> { + if (value == null) return null; + if (value instanceof Number) { + return ((Number) value).intValue(); + } + return Integer.parseInt(value.toString()); + } + ); + private TuohengDeviceTelemetry() { // 工具类,禁止实例化 } @@ -651,7 +733,14 @@ public class TuohengDeviceTelemetry { TSINGAL, FLIGHT_TIME, MILEAGE, - DISTANCE_TO_HOME + DISTANCE_TO_HOME, + // 机场设备自检数据 + LIFTER_STATUS, + HOLDER_X_STATUS, + HOLDER_Y_STATUS, + CONTROLLER_STATUS, + HATCH_STATUS, + DRONE_STATUS ); } diff --git a/src/main/java/com/ruoyi/device/service/impl/TuohengBufferDeviceImpl.java b/src/main/java/com/ruoyi/device/service/impl/TuohengBufferDeviceImpl.java index c98b718..1b75dc6 100644 --- a/src/main/java/com/ruoyi/device/service/impl/TuohengBufferDeviceImpl.java +++ b/src/main/java/com/ruoyi/device/service/impl/TuohengBufferDeviceImpl.java @@ -438,6 +438,38 @@ public class TuohengBufferDeviceImpl implements IBufferDeviceService { log.info("设置充电状态: {}", chargingStatus); }); + // 设置机场设备自检数据(升降架、X轴夹器、Y轴夹器) + log.info("---------- 解析机场设备自检数据 ----------"); + telemetry.get(TuohengDeviceTelemetry.LIFTER_STATUS) + .ifPresent(value -> { + Integer lifterStatus = value.getValue(); + log.info("LIFTER_STATUS 升降架状态原始值: {}", lifterStatus); + // 0=正常, 非0=异常 + String elevatorPosition = (lifterStatus != null && lifterStatus == 0) ? "NORMAL" : "ABNORMAL"; + dto.setElevatorPosition(elevatorPosition); + log.info("设置升降架位置: {}", elevatorPosition); + }); + + telemetry.get(TuohengDeviceTelemetry.HOLDER_X_STATUS) + .ifPresent(value -> { + Integer holderXStatus = value.getValue(); + log.info("HOLDER_X_STATUS X轴夹器状态原始值: {}", holderXStatus); + // 0=正常, 非0=异常 + String xAxisClampStatus = (holderXStatus != null && holderXStatus == 0) ? "NORMAL" : "ABNORMAL"; + dto.setXAxisClampStatus(xAxisClampStatus); + log.info("设置X轴夹器状态: {}", xAxisClampStatus); + }); + + telemetry.get(TuohengDeviceTelemetry.HOLDER_Y_STATUS) + .ifPresent(value -> { + Integer holderYStatus = value.getValue(); + log.info("HOLDER_Y_STATUS Y轴夹器状态原始值: {}", holderYStatus); + // 0=正常, 非0=异常 + String yAxisClampStatus = (holderYStatus != null && holderYStatus == 0) ? "NORMAL" : "ABNORMAL"; + dto.setYAxisClampStatus(yAxisClampStatus); + log.info("设置Y轴夹器状态: {}", yAxisClampStatus); + }); + // 填充无人机状态信息 if (aircraftIotDeviceId != null) { fillTuohengAircraftStatus(dto, aircraftIotDeviceId);