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