修改状态判断

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);
// 通过 MachineStateManager 获取舱门状态;只通过舱门状态判断是否作业
// 通过 MachineStateManager 获取舱门状态
MachineStates machineStates =
machineStateManager.getStates(dto.getSnNumber());
CoverState coverState =
machineStates.getCoverState();
log.info("机场舱门状态(从MachineStateManager): {}", coverState);
if(coverState == CoverState.OPENED){
dockStatus = "WORKING"; //只通过舱门状态判断是否作业
log.info("无人机处于auto模式且舱门打开设置机场状态为 WORKING");
// 先判断MODE是否为飞行模式
boolean isFlyingMode = "auto".equalsIgnoreCase(mode) ||
"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) {
log.warn("获取无人机mode或舱门状态失败默认设置为IDLE: {}", e.getMessage());
}