修改更新逻辑
This commit is contained in:
parent
9e6eacaf72
commit
d6559bbe58
|
|
@ -89,29 +89,53 @@ public class MachineStateManager {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量更新状态(用于心跳同步)
|
* 批量更新状态(用于心跳同步)
|
||||||
|
* 只更新非UNKNOWN的状态,避免覆盖已有状态
|
||||||
*/
|
*/
|
||||||
public void updateStates(String sn, MachineStates newStates) {
|
public void updateStates(String sn, MachineStates newStates) {
|
||||||
|
updateStates(sn, newStates, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量更新状态(用于心跳同步)
|
||||||
|
*
|
||||||
|
* @param sn 设备SN号
|
||||||
|
* @param newStates 新状态
|
||||||
|
* @param forceUpdate 是否强制更新所有状态(包括UNKNOWN)
|
||||||
|
*/
|
||||||
|
public void updateStates(String sn, MachineStates newStates, boolean forceUpdate) {
|
||||||
MachineStates currentStates = getStates(sn);
|
MachineStates currentStates = getStates(sn);
|
||||||
boolean changed = false;
|
boolean changed = false;
|
||||||
|
|
||||||
if (currentStates.getDroneState() != newStates.getDroneState()) {
|
// 更新无人机状态(如果不是UNKNOWN或强制更新)
|
||||||
currentStates.setDroneState(newStates.getDroneState());
|
if (forceUpdate || newStates.getDroneState() != DroneState.UNKNOWN) {
|
||||||
changed = true;
|
if (currentStates.getDroneState() != newStates.getDroneState()) {
|
||||||
|
currentStates.setDroneState(newStates.getDroneState());
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentStates.getAirportState() != newStates.getAirportState()) {
|
// 更新机巢状态(如果不是UNKNOWN或强制更新)
|
||||||
currentStates.setAirportState(newStates.getAirportState());
|
if (forceUpdate || newStates.getAirportState() != AirportState.UNKNOWN) {
|
||||||
changed = true;
|
if (currentStates.getAirportState() != newStates.getAirportState()) {
|
||||||
|
currentStates.setAirportState(newStates.getAirportState());
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentStates.getCoverState() != newStates.getCoverState()) {
|
// 更新舱门状态(如果不是UNKNOWN或强制更新)
|
||||||
currentStates.setCoverState(newStates.getCoverState());
|
if (forceUpdate || newStates.getCoverState() != CoverState.UNKNOWN) {
|
||||||
changed = true;
|
if (currentStates.getCoverState() != newStates.getCoverState()) {
|
||||||
|
currentStates.setCoverState(newStates.getCoverState());
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentStates.getDrcState() != newStates.getDrcState()) {
|
// 更新DRC状态(如果不是UNKNOWN或强制更新)
|
||||||
currentStates.setDrcState(newStates.getDrcState());
|
if (forceUpdate || newStates.getDrcState() != DrcState.UNKNOWN) {
|
||||||
changed = true;
|
if (currentStates.getDrcState() != newStates.getDrcState()) {
|
||||||
|
currentStates.setDrcState(newStates.getDrcState());
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (changed) {
|
if (changed) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue