This commit is contained in:
孙小云 2026-02-11 13:33:47 +08:00
parent 7530b9b119
commit aba19deb5b
2 changed files with 50 additions and 1 deletions

View File

@ -20,6 +20,9 @@ public class TuohengRealTimeData {
@JsonProperty("nestCharger") @JsonProperty("nestCharger")
private TuohengResponse<TuohengChargerData> nestCharger; private TuohengResponse<TuohengChargerData> nestCharger;
@JsonProperty("nestDoor")
private TuohengResponse<TuohengDoorData> nestDoor;
@Data @Data
public static class TuohengResponse<T> { public static class TuohengResponse<T> {
@JsonProperty("msg") @JsonProperty("msg")
@ -157,4 +160,10 @@ public class TuohengRealTimeData {
@JsonProperty("voltage") @JsonProperty("voltage")
private String voltage; private String voltage;
} }
@Data
public static class TuohengDoorData {
@JsonProperty("status")
private Integer status; // 1=开仓, 2=关仓
}
} }

View File

@ -117,6 +117,9 @@ public class TuohengService {
// 同步无人机开关机状态 // 同步无人机开关机状态
syncDronePowerState(deviceSn, data); syncDronePowerState(deviceSn, data);
// 同步舱门状态
syncCoverStateFromRealTimeData(deviceSn, data);
} catch (Exception e) { } catch (Exception e) {
log.error("处理实时数据失败", e); log.error("处理实时数据失败", e);
} }
@ -334,7 +337,44 @@ public class TuohengService {
} }
/** /**
* 同步舱门状态 * realTime/data 主题同步舱门状态
*/
private void syncCoverStateFromRealTimeData(String deviceSn, TuohengRealTimeData data) {
try {
if (data == null || data.getNestDoor() == null || data.getNestDoor().getData() == null) {
return;
}
Integer status = data.getNestDoor().getData().getStatus();
if (status == null) {
return;
}
log.info("【状态同步】收到舱门状态: sn={}, status={}", deviceSn, status);
// 根据 status 值更新舱门状态
// 1 = 开仓, 2 = 关仓
CoverState coverState;
if (status == 1) {
coverState = CoverState.OPENED;
log.info("【状态同步】同步舱门开启状态: sn={}, status={}", deviceSn, status);
} else if (status == 2) {
coverState = CoverState.CLOSED;
log.info("【状态同步】同步舱门关闭状态: sn={}, status={}", deviceSn, status);
} else {
log.warn("未知的舱门状态值: sn={}, status={}", deviceSn, status);
return;
}
stateManager.setCoverState(deviceSn, coverState);
} catch (Exception e) {
log.error("同步舱门状态失败: sn={}", deviceSn, e);
}
}
/**
* 同步舱门状态 realTime/basic 主题已废弃
*/ */
private void syncCoverState(String deviceSn, com.ruoyi.device.domain.impl.tuohengmqtt.model.RealTimeBasicData data) { private void syncCoverState(String deviceSn, com.ruoyi.device.domain.impl.tuohengmqtt.model.RealTimeBasicData data) {
try { try {