修改AT^PMRMVOTE,支持参数 2536/target/2 2537/2 2537/head
author孙春阳 <snickersun@163.com>
Thu, 16 Oct 2025 07:55:42 +0000 (15:55 +0800)
committer孙春阳 <snickersun@163.com>
Thu, 16 Oct 2025 07:55:42 +0000 (15:55 +0800)
code/sdk/application/wstp/at_service/app/app_at_process.c

index e839528..47bf612 100644 (file)
@@ -1759,17 +1759,34 @@ uint32_t mcu_pm_add_vote(uint8_t *para, uint32_t para_len)
 \r
 uint32_t mcu_pm_remove_vote(uint8_t *para, uint32_t para_len)\r
 {\r
-    unused(para);\r
-    unused(para_len);\r
-\r
-    uint8_t cnt = pm_veto_get_id_cnt(PM_ID_DEBUG);\r
+    pm_id_t pm_id = PM_ID_DEBUG;  // 默认使用 PM_ID_DEBUG\r
+    \r
+    // 如果提供了参数,解析数字\r
+    if (para != NULL && para_len > 0) {\r
+        // 尝试将参数转换为数字\r
+        pm_id = (pm_id_t)atoi((char*)para);\r
+        \r
+        // 检查范围是否有效\r
+        if (pm_id < PM_ID_BSP || pm_id >= PM_ID_MAX) {\r
+            wstp_print("Invalid PM_ID: %d (valid range: 0-%d)\r\n", pm_id, PM_ID_MAX - 1);\r
+            return ERRCODE_FAIL;\r
+        }\r
+    }\r
+    \r
+    // 获取 PM_ID 名称\r
+    const char* pm_id_name = get_pm_id_name(pm_id);\r
+    \r
+    // 获取当前投票计数\r
+    uint8_t cnt = pm_veto_get_id_cnt(pm_id);\r
+    \r
     if (cnt > 0) {\r
-        wstp_print("MCU remove pm_id_debug vote\r\n");\r
-        uapi_pm_remove_sleep_veto(PM_ID_DEBUG);\r
+        wstp_print("MCU remove %s (PM_ID=%d) vote, current count=%d\r\n", pm_id_name, pm_id, cnt);\r
+        uapi_pm_remove_sleep_veto(pm_id);\r
+        wstp_print("\r\nMCU SLEEP SUCCESS (removed %s vote)\r\n", pm_id_name);\r
     } else {\r
-        wstp_print("MCU has delete pm_id_debug vote\r\n");\r
+        wstp_print("MCU has already deleted %s (PM_ID=%d) vote (count=0)\r\n", pm_id_name, pm_id);\r
     }\r
-    wstp_print("\r\nMCU SLEEP SUCCESS\r\n");\r
+    \r
     uapi_tcxo_delay_ms(5); // delay 5ms for print debug infor with uart\r
     return ERRCODE_SUCC;\r
 }\r