修改状态判断

This commit is contained in:
孙小云 2026-03-14 10:06:19 +08:00
parent 30461e134e
commit 35ac0122ac
1 changed files with 15 additions and 18 deletions

View File

@ -328,31 +328,28 @@ public class TuohengBufferDeviceImpl implements IBufferDeviceService {
log.info("无人机MODE值: {}", mode); log.info("无人机MODE值: {}", mode);
// 通过 MachineStateManager 获取舱门状态;只通过舱门状态判断是否作业 // 通过 MachineStateManager 获取舱门状态
MachineStates machineStates = MachineStates machineStates =
machineStateManager.getStates(dto.getSnNumber()); machineStateManager.getStates(dto.getSnNumber());
CoverState coverState = CoverState coverState =
machineStates.getCoverState(); machineStates.getCoverState();
log.info("机场舱门状态(从MachineStateManager): {}", coverState); log.info("机场舱门状态(从MachineStateManager): {}", coverState);
if(coverState == CoverState.OPENED){ // 先判断MODE是否为飞行模式
dockStatus = "WORKING"; //只通过舱门状态判断是否作业 boolean isFlyingMode = "auto".equalsIgnoreCase(mode) ||
log.info("无人机处于auto模式且舱门打开设置机场状态为 WORKING"); "guided".equalsIgnoreCase(mode) ||
"loiter".equalsIgnoreCase(mode) ||
"rtl".equalsIgnoreCase(mode);
if (isFlyingMode) {
dockStatus = "WORKING";
log.info("无人机处于{}模式,设置机场状态为 WORKING", mode);
} else if (coverState == CoverState.OPENED) {
dockStatus = "WORKING";
log.info("舱门打开,设置机场状态为 WORKING");
} else {
log.info("无人机处于{}模式且舱门关闭,设置机场状态为 IDLE", mode);
} }
//
// // WORKING状态需要同时满足mode=="auto" 且舱门打开
// if ("auto".equalsIgnoreCase(mode) &&
// coverState == CoverState.OPENED) {
// dockStatus = "WORKING"; // auto模式且舱门打开表示正在执行任务
// log.info("无人机处于auto模式且舱门打开设置机场状态为 WORKING");
// } else {
// if ("auto".equalsIgnoreCase(mode) &&
// coverState != CoverState.OPENED) {
// log.info("无人机处于auto模式但舱门未打开(coverState={}), 设置机场状态为 IDLE", coverState);
// } else {
// log.info("无人机处于{}模式,设置机场状态为 IDLE", mode);
// }
// }
} catch (Exception e) { } catch (Exception e) {
log.warn("获取无人机mode或舱门状态失败默认设置为IDLE: {}", e.getMessage()); log.warn("获取无人机mode或舱门状态失败默认设置为IDLE: {}", e.getMessage());
} }