修改状态判断
This commit is contained in:
parent
30461e134e
commit
35ac0122ac
|
|
@ -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());
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue