合并
authorCaisking <Casiking@zhihuishixun.com>
Wed, 15 Oct 2025 02:37:38 +0000 (10:37 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Wed, 15 Oct 2025 02:37:38 +0000 (10:37 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp
code/sdk/zhihui/config/include/ConfigModel.h
code/sdk/zhihui/ppp/example/ppp_at_cmd.c
code/sdk/zhihui/ppp/include/ppp_api.h
code/sdk/zhihui/ppp/src/ppp_api.c
code/sdk/zhihui/ppp/src/ppp_interrupt.c

index 2086842..1c6e57b 100644 (file)
@@ -102,42 +102,10 @@ static void LN_OPERATE_AlarmCallBackProcC(struct tm curTime)
     if (curTime.tm_hour == 0 && curTime.tm_min == 0 && curTime.tm_sec == 0) {\r
         do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_EMOJI_REPORT_ALL, NULL, 0);\r
     }\r
-\r
-    if(curTime.tm_hour == 15 && curTime.tm_min == 30 && curTime.tm_sec == 0)\r
-    {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "开始锻炼了");\r
-        \r
-        //切换到锻炼的表情和状态\r
-        if(OHOS::ThunderBirdModel::GetInstance())\r
-        {\r
-            OHOS::ThunderBirdModel::GetInstance()->ThunderBirdModel::SetCurrentStatusText("锻炼中");\r
-            OHOS::ThunderBirdModel::GetInstance()->ThunderBirdModel::SetCurrentExpression("Exercise");\r
-            OHOS::ThunderBirdModel::GetInstance()->SetCurrentExpressionAndStatus();\r
-        }\r
-    }\r
-    if(curTime.tm_hour == 17 && curTime.tm_min == 0 && curTime.tm_sec == 0)\r
+    //整点上报时间线状态\r
+    if(curTime.tm_hour % 24 == 0 && curTime.tm_min == 0 && curTime.tm_sec == 0)\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "开始玩耍了");\r
-        \r
-        //切换到锻炼的表情和状态\r
-        if(OHOS::ThunderBirdModel::GetInstance())\r
-        {\r
-            OHOS::ThunderBirdModel::GetInstance()->ThunderBirdModel::SetCurrentStatusText("玩耍中");\r
-            OHOS::ThunderBirdModel::GetInstance()->ThunderBirdModel::SetCurrentExpression("Play");\r
-            OHOS::ThunderBirdModel::GetInstance()->SetCurrentExpressionAndStatus();\r
-        }\r
-    }\r
-    if(curTime.tm_hour == 10 && curTime.tm_min == 35 && curTime.tm_sec == 0)\r
-    {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "开始哭了");\r
-        \r
-        //切换到锻炼的表情和状态\r
-        if(OHOS::ThunderBirdModel::GetInstance())\r
-        {\r
-            OHOS::ThunderBirdModel::GetInstance()->ThunderBirdModel::SetCurrentStatusText("难过了...");\r
-            OHOS::ThunderBirdModel::GetInstance()->ThunderBirdModel::SetCurrentExpression("crying");\r
-            OHOS::ThunderBirdModel::GetInstance()->SetCurrentExpressionAndStatus();\r
-        }\r
+        do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_TIMELINE_GET_STATUS, NULL, 0);\r
     }\r
 }\r
 \r
index 6f88f31..13bcfbc 100644 (file)
@@ -321,7 +321,7 @@ namespace OHOS
             {ConfigDataType::DATATYPE_STRING,  "cat1_imei",                "pls poweron 4G first"      },//CONFIGMODEL_ITEM_CAT1_IMEI,
             {ConfigDataType::DATATYPE_STRING,  "cat1_modemver",            "pls poweron 4G first"      },//CONFIGMODEL_ITEM_CAT1_MODEMVER,
             {ConfigDataType::DATATYPE_STRING,  "cat1_pyver",               "pls poweron 4G first"      },//CONFIGMODEL_ITEM_CAT1_PYVER,
-            {ConfigDataType::DATATYPE_INT,     "ppp_baudrate",              "1000000"  },//CONFIGMODEL_ITEM_PPP_BAUDRATE,
+            {ConfigDataType::DATATYPE_INT,     "ppp_baudrate",              "2000000"  },//CONFIGMODEL_ITEM_PPP_BAUDRATE,
             {ConfigDataType::DATATYPE_INT,     "language_id",               "0"    },//CONFIGMODEL_ITEM_LANGUAGE_ID, //默认选择中文
             {ConfigDataType::DATATYPE_STRING,  "language_code",             "zh"      },//CONFIGMODEL_ITEM_LANGUAGE_CODE, //默认没有选择语言
             {ConfigDataType::DATATYPE_INT,     "timezone",                 "32"      },//CONFIGMODEL_ITEM_TIMEZONE, //单位刻钟  默认+8 小时 = 4*8 = 32 刻钟
index 45bc06f..50f867d 100644 (file)
@@ -2464,7 +2464,7 @@ static errcode_t at_ppp_set_config_baudrate(uint8_t *para, uint32_t paraLen, cha
     ppp_print_info("PPP SET BAUDRATE: Successfully set PPP baudrate from %d to %d in config model\n", 
                   current_baudrate, baudrate);
     ppp_print_info("PPP SET BAUDRATE: Note: This change will take effect after PPP module restart\n");
-    errcode_t rett = ppp_at_set_baudrate(baudrate);
+    errcode_t rett = ppp_api_set_baudrate_in_all_mode(baudrate); 
     ppp_print_info("PPP SET BAUDRATE: Successfully set PPP baudrate to %d, ret: %d\n ", baudrate,rett);
     return ERRCODE_SUCC;
 }
index 69eee36..c70a86f 100644 (file)
@@ -62,6 +62,13 @@ errcode_t ppp_ppp_mode_pause(void);
  */
 errcode_t ppp_ppp_mode_resume(void);
 
+/**
+ * @brief 设置PPP波特率
+ * @param baudrate 波特率
+ * @return 错误码
+ */
+errcode_t ppp_api_set_baudrate_in_all_mode(uint32_t baudrate);
+
 /* PPP数据接收线程函数已移至ppp_lwip_thread.c */
 
 /**
index c5cdd1e..e5a4b8c 100644 (file)
@@ -1904,6 +1904,86 @@ errcode_t ppp_api_get_default_netif(char* netif_name, uint32_t buffer_size)
     return ERRCODE_SUCC;
 }
 
+errcode_t ppp_api_set_baudrate_in_all_mode(uint32_t baudrate)
+{
+    errcode_t ret = ERRCODE_SUCC;
+    uint8_t need_resume = 0;
+    uint8_t need_deinit_at = 0;
+    
+    // 1. 如果在 PPP 模式,先暂停
+    if(ppp_serial_get_mode() == PPP_SERIAL_MODE_PPP_DATA) {
+        PPP_DEBUG_INFO("In PPP mode, pausing...");
+        if (ppp_ppp_mode_pause() != ERRCODE_SUCC) {
+            PPP_DEBUG_ERROR("Failed to pause PPP mode");
+            return ERRCODE_FAIL;
+        }
+        need_resume = 1;
+        
+        // 2. 暂停后需要初始化 AT handler 才能执行 AT 命令
+        PPP_DEBUG_INFO("Initializing AT handler for command execution...");
+        ppp_error_t at_ret = ppp_at_handler_init(SIO_UART_BUS, g_ppp_config.baudrate, true);
+        if (at_ret != PPP_ERR_OK) {
+            PPP_DEBUG_ERROR("Failed to initialize AT handler: %d", at_ret);
+            // 尝试恢复 PPP 模式
+            ppp_ppp_mode_resume();
+            return ERRCODE_FAIL;
+        }
+        need_deinit_at = 1;
+    } else {
+        PPP_DEBUG_INFO("Already in AT mode");
+        need_resume = 0;
+        need_deinit_at = 0;
+    }
+    
+    // 3. 执行 AT 命令更新信息
+    PPP_DEBUG_CRITICAL("Starting baudrate set... %u",baudrate);
+    if(ppp_at_set_baudrate(baudrate) != ERRCODE_SUCC) {
+        PPP_DEBUG_ERROR("Failed to set baudrate");
+        ret = ERRCODE_FAIL;
+    }
+
+    // 4. 如果需要,去初始化 AT handler 并恢复 PPP 模式
+    if (need_resume) {
+        // 先去初始化 AT handler
+        if (need_deinit_at) {
+            PPP_DEBUG_INFO("Deinitializing AT handler...");
+            ppp_at_handler_deinit();
+        }
+        
+        // 然后恢复 PPP 模式
+        PPP_DEBUG_INFO("Resuming PPP mode...");
+        errcode_t resume_ret = ppp_ppp_mode_resume();
+        if (resume_ret != ERRCODE_SUCC) {
+            PPP_DEBUG_ERROR("Failed to resume PPP mode: %d", resume_ret);
+            PPP_DEBUG_ERROR("Forcing PPP mode recovery...");
+            
+            // 强制恢复到 PPP 模式
+            ppp_serial_switch_to_ppp_mode();
+            
+            #if PPP_USE_INTERRUPT_MODE
+                ppp_error_t int_ret = ppp_interrupt_enable();
+                if (int_ret != PPP_ERR_OK) {
+                    PPP_DEBUG_ERROR("Failed to enable interrupt after forced recovery: %d", int_ret);
+                } else {
+                    PPP_DEBUG_INFO("PPP interrupt mode re-enabled after forced recovery");
+                }
+            #else
+                ppp_error_t thread_ret = ppp_lwip_start_receive_thread();
+                if (thread_ret != PPP_ERR_OK) {
+                    PPP_DEBUG_ERROR("Failed to start receive thread after forced recovery: %d", thread_ret);
+                } else {
+                    PPP_DEBUG_INFO("PPP receive thread restarted after forced recovery");
+                }
+            #endif
+            
+            PPP_DEBUG_WARN("PPP mode forcefully recovered, but connection may be unstable");
+            ret = ERRCODE_FAIL;
+        }
+    }
+     
+    return ret;
+}
+
 errcode_t ppp_api_update_netinfo_in_all_mode(void)
 {
     errcode_t ret = ERRCODE_SUCC;
index 75df7cd..b09a3b0 100644 (file)
 #define PPP_PING_PONG_BUFFER_SIZE  2048  // 每个buffer大小(2KB)
 #endif
 
-#define PPP_PING_PONG_BUFFER_COUNT 3     // 三缓冲模式(改为3个)
-#define PPP_PING_PONG_TIMEOUT_MS   30    // buffer超时时间(30ms)
+#define PPP_PING_PONG_BUFFER_COUNT 4     // 三缓冲模式(改为3个)
+#define PPP_PING_PONG_TIMEOUT_MS   50    // buffer超时时间(30ms)
 
 /* PPP中断消息队列配置 */
 #define PPP_IRQ_MSG_QUEUE_SIZE     16    // 队列深度(乒乓模式下无需太大)
-#define PPP_IRQ_PROCESS_TASK_PRIO  24    // 处理线程优先级
+#define PPP_IRQ_PROCESS_TASK_PRIO  28    // 处理线程优先级
 #define PPP_IRQ_PROCESS_STACK_SIZE 4096  // 处理线程栈大小
 
 /* 乒乓缓冲区状态 */