From 8860817b7f9a055b003a43dd82b01a4bd9b88acd Mon Sep 17 00:00:00 2001 From: tanjianbin <632190820@qq.com> Date: Tue, 14 Apr 2026 10:56:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=A6=81=E7=94=A8=E8=88=9E=E8=B9=88?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E5=B9=B6=E6=B7=BB=E5=8A=A0=E7=A9=BA=E9=97=B2?= =?UTF-8?q?=E5=90=8E=E8=87=AA=E5=8A=A8=E5=85=85=E7=94=B5=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 禁用 MQTT 舞蹈命令以避免意外触发。 添加自动充电功能:当机器人空闲到达非充电桩位置10秒后,自动发起充电。 在开始移动、任务设置或移动取消时,自动取消充电计划。 --- .../lzwcai_terminal_temi/MainActivity.kt | 39 +++++++++++++++++++ .../lzwcai_terminal_temi/MqttManager.kt | 2 +- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/example/lzwcai_terminal_temi/MainActivity.kt b/app/src/main/java/com/example/lzwcai_terminal_temi/MainActivity.kt index 75c7fa7..86a9f36 100644 --- a/app/src/main/java/com/example/lzwcai_terminal_temi/MainActivity.kt +++ b/app/src/main/java/com/example/lzwcai_terminal_temi/MainActivity.kt @@ -96,6 +96,7 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG private val idleConfirmDelayMs = 5000L private var blinkJob: Job? = null private var networkErrorJob: Job? = null + private var autoRechargeJob: Job? = null private lateinit var telemetryManager: TelemetryManager private lateinit var taskController: TaskController @@ -327,10 +328,15 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG override fun onGoToLocationStatusChanged(location: String, status: String, descriptionId: Int, description: String) { val normalized = status.lowercase() val isAbort = normalized in setOf("abort", "aborted", "canceled", "cancelled", "stopped", "stop", "failed", "error") + val isMoving = normalized in setOf("start", "starting", "going", "moving", "navigating", "calculating", "recalculating") + if (isMoving) { + cancelAutoRecharge("movement_started:$location/$status") + } if (normalized != "complete" && !isAbort) { return } if (isAbort) { + cancelAutoRecharge("movement_aborted:$location/$status") taskController.clearLeavingHomeBase() taskController.endNonSpecialTask("goTo aborted: $location, status=$status") return @@ -360,6 +366,7 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG val ttsRequest = TtsRequest.create(text, false, language = TtsRequest.Language.ZH_CN) robot.speak(ttsRequest) Log.i("MainActivity", "Arrived at $location, announcement sent.") + scheduleAutoRechargeAfterIdleArrival() } override fun onDetectionStateChanged(state: Int) { @@ -480,6 +487,9 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG } fun setCurrentTask(task: String) { + if (task.trim().isNotEmpty()) { + cancelAutoRecharge("task_set:$task") + } taskController.setCurrentTask(task) } @@ -723,6 +733,35 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG } } + private fun scheduleAutoRechargeAfterIdleArrival() { + if (taskController.currentTask.isNotEmpty()) { + return + } + if (normalizeLocation(lastArrivalLocation) == "homebase") { + return + } + autoRechargeJob?.cancel() + autoRechargeJob = mainScope.launch { + delay(10_000L) + if (taskController.currentTask.isNotEmpty()) { + return@launch + } + if (normalizeLocation(lastArrivalLocation) == "homebase") { + return@launch + } + Log.i("MainActivity", "Auto recharge triggered after idle arrival timeout.") + navCon.recharge() + } + } + + private fun cancelAutoRecharge(reason: String) { + if (autoRechargeJob?.isActive == true) { + Log.i("MainActivity", "Auto recharge canceled: $reason") + } + autoRechargeJob?.cancel() + autoRechargeJob = null + } + private fun updateConnectionIndicator() { val colorRes = when { !isLiveKitConnected && !isMqttConnected -> android.R.color.holo_red_dark diff --git a/app/src/main/java/com/example/lzwcai_terminal_temi/MqttManager.kt b/app/src/main/java/com/example/lzwcai_terminal_temi/MqttManager.kt index 275dda4..1b2d63d 100644 --- a/app/src/main/java/com/example/lzwcai_terminal_temi/MqttManager.kt +++ b/app/src/main/java/com/example/lzwcai_terminal_temi/MqttManager.kt @@ -323,7 +323,7 @@ class MqttManager( Log.i(TAG, "Tilt command sent: degrees=$degrees, speed=$speed, result=$ok") } "dance" -> { - startDance() + // startDance() } "stop" -> { navController.stop()