diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/can/CanImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/can/CanImpl.kt index c5fc03d2a9..d5b6e167e1 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/can/CanImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/can/CanImpl.kt @@ -10,6 +10,7 @@ import com.mogo.eagle.core.utilcode.kotlin.* import com.zhjt.mogo_core_function_devatools.status.flow.IFlow import com.zhjt.mogo_core_function_devatools.status.entity.CanStatus import kotlinx.coroutines.* +import mogo_msg.MogoReportMsg.MogoReportMessage internal class CanImpl(ctx: Context): IFlow(ctx), IMoGoAutopilotVehicleStateListener, IMoGoAutopilotStatusListener { @@ -27,38 +28,46 @@ internal class CanImpl(ctx: Context): IFlow(ctx), IMoGoAutopilotVehic } override fun onAutopilotLightSwitchData(lightSwitch: LightSwitch?) { - send(CanStatus(CallerAutoPilotManager.isConnected())) + send(CanStatus(isCanEnabled())) timeOutCheck() } + private fun isCanEnabled() = CallerAutoPilotManager.isConnected() && CallerAutoPilotStatusListenerManager.getAutoPilotReportMessageCode() != "EHW_CAN" + override fun onAutopilotBrakeLightData(brakeLight: Boolean) { - send(CanStatus(CallerAutoPilotManager.isConnected())) + send(CanStatus(isCanEnabled())) timeOutCheck() } override fun onAutopilotSteeringData(steering: Float) { - send(CanStatus(CallerAutoPilotManager.isConnected())) + send(CanStatus(isCanEnabled())) timeOutCheck() } override fun onAutopilotGearData(gear: GearPosition) { - send(CanStatus(CallerAutoPilotManager.isConnected())) + send(CanStatus(isCanEnabled())) timeOutCheck() } override fun onAutopilotIpcConnectStatusChanged(status: Int, reason: String?) { super.onAutopilotIpcConnectStatusChanged(status, reason) - send(CanStatus(CallerAutoPilotManager.isConnected())) + send(CanStatus(isCanEnabled())) timeOutCheck() } override fun onAutopilotDataException(timestamp: Long) { super.onAutopilotDataException(timestamp) send(CanStatus(false)) + } + + override fun onAutopilotGuardian(guardianInfo: MogoReportMessage?) { + super.onAutopilotGuardian(guardianInfo) + send(CanStatus(isCanEnabled())) timeOutCheck() } + private fun timeOutCheck() { job?.safeCancel() launch(Dispatchers.Default) { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/rtk/RTKImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/rtk/RTKImpl.kt index ab22453700..1e99a5fcec 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/rtk/RTKImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/rtk/RTKImpl.kt @@ -25,7 +25,7 @@ internal class RTKImpl(ctx: Context): IFlow(ctx), IMoGoAutopilotCarSt } private fun isRTKEnabled() = - CallerAutoPilotManager.isConnected() && CallerAutoPilotStatusListenerManager.getAutoPilotReportMessageCode() != "EHW_RTK" && CallerAutopilotCarStatusListenerManager.getCurrentGnssInfo() != null + CallerAutoPilotManager.isConnected() && (CallerAutoPilotStatusListenerManager.getAutoPilotReportMessageCode() != "EHW_RTK" && CallerAutoPilotStatusListenerManager.getAutoPilotReportMessageCode() != "EHW_GNSS") && CallerAutopilotCarStatusListenerManager.getCurrentGnssInfo() != null override fun onAutopilotCarStateData(gnssInfo: GnssInfo?) { send(RTKStatus(isRTKEnabled()))