private void switchPilotMode(@PilotConstants.PilotMode int mode) { Dog.d(TAG, "switchPilotMode: mode=" + mode + ", mPilotMode: " + mPilotMode); startNZPCheck(mode); boolean preIsNzpStatus = PilotModeHelper.isNzpStatus(mPilotMode); boolean preIsNzpPlusStatus = PilotModeHelper.isNzpPlusStatus(mPilotMode); Dog.d(TAG, "switchPilotMode: preIsNzpStatus=" + preIsNzpStatus); Dog.d(TAG, "switchPilotMode: preIsNzpPlusStatus=" + preIsNzpPlusStatus); mPilotMode = mode; boolean currentIsNzpStatus = PilotModeHelper.isNzpStatus(mPilotMode); boolean currentIsNzpPlusStatus = PilotModeHelper.isNzpPlusStatus(mPilotMode); Dog.d(TAG, "switchPilotMode: currentIsNzpStatus=" + currentIsNzpStatus); Dog.d(TAG, "switchPilotMode: currentIsNzpPlusStatus=" + currentIsNzpPlusStatus); if (currentIsNzpStatus && preIsNzpPlusStatus) { PilotStatusCallbackImpl.get().notifyPilotStatus(PilotConstants.PilotStatus.NZP_RUNNING); } else if (currentIsNzpPlusStatus && preIsNzpStatus) { PilotStatusCallbackImpl.get().notifyPilotStatus(PilotConstants.PilotStatus.NZP_RUNNING_PLUS); } } public void startNZPCheck(int pilotMode) { boolean isNzpRunning = PilotModeHelper.isNzpRunning(pilotMode); Dog.d(TAG, "switchPilotMode isNzpRunning:" + isNzpRunning + ", isNZPBackground: " + isNZPBackground); if (isNzpRunning && isNZPBackground) { setNZPBackground(false); Dog.d(TAG, "switchPilotMode NZP_STARTING, isNZPBackground: " + isNZPBackground); notifyPilotStatus(PilotConstants.PilotStatus.NZP_STARTING); mHandler.postDelayed(mDelayNotifyPilotStatusRunnable, 2000); mHandler.postDelayed(new Runnable() { @Override public void run() { Dog.d(TAG, "switchPilotMode NZP_STARTING, notifyDismissStatus"); PilotMessage dismissMessage = PilotMessageHandler.getInstance().getTopPriorityPilotMessage(PilotMessage.getDismissMessage()); PilotStatusCallbackImpl.get().notifyWidgetStatus(dismissMessage.msgType, dismissMessage.level); } }, 6000); } }
时间: 2024-04-19 22:26:58 浏览: 53
这段代码是一个Java方法,名为`switchPilotMode`,用于切换飞行模式。方法接受一个整数参数`mode`,表示要切换到的模式。第一行是一个日志输出语句,用于记录当前的模式和之前的模式。接下来调用了`startNZPCheck`方法,传入了`mode`作为参数。
`switchPilotMode`方法中的几个布尔变量`preIsNzpStatus`、`preIsNzpPlusStatus`、`currentIsNzpStatus`和`currentIsNzpPlusStatus`用于判断当前模式是否是NZP状态或NZP Plus状态,并进行相应的处理。
最后的条件语句根据当前和之前的模式判断是否需要通知飞行状态的变化,并调用相应的回调方法。
另外,在`startNZPCheck`方法中,根据传入的参数判断是否需要启动NZP检测。如果满足条件,会执行一系列操作,包括设置NZP背景标志位、通知飞行状态变化、延迟发送通知和执行一个延迟任务等。
请注意,以上解释仅基于提供的代码片段,并可能不完整。
阅读全文