添加恢复出厂删除雷鸟文件夹 2349/1 2349/head 2350/target/1
authorcheng <chengyf@zhihuishixun.com>
Sun, 21 Sep 2025 03:13:47 +0000 (11:13 +0800)
committercheng <chengyf@zhihuishixun.com>
Sun, 21 Sep 2025 03:13:47 +0000 (11:13 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp
code/sdk/zhihui/leiniao/imsl_ln/ln_api.c

index 72fe648..9d09497 100644 (file)
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "恢复出厂: 删除ConfigModel.json失败 /user/system/ConfigModel.json");
             return false;
          }
+         if(uapi_delete_folder("/user/leiniao")==-1)
+         {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "恢复出厂:删除雷鸟文件夹 /user/leiniao");
+            return false;
+         }
 
          WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "恢复出厂: 成功");
          //重启
          // 1. 读取录音文件
          // 2. 通过网络发送到服务器
          // 3. 等待服务器响应
-         //do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_SPEECH_CHAT_STREAM, NULL, 0);//开始对话
-         do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_STORY_CHOOSE, NULL, 0);//选择故事
+         do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_SPEECH_CHAT_STREAM, NULL, 0);//开始对话
+        //  do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_STORY_CHOOSE, NULL, 0);//选择故事
          
          return true; // 模拟成功
      }
index 86ed32a..fd87d81 100644 (file)
@@ -63,11 +63,41 @@ char *uapi_ln_get_device_model(void)
 char *uapi_ln_get_device_version(void)
 {
     char version_buf[128] = {0};
-    uint32_t version_len = 128;
+    uint32_t version_len = sizeof(version_buf) - 1;  // 预留1字节给字符串结束符
     uapi_get_buildversion((uint8_t *)version_buf, version_len);
-    strcpy(g_device_version, version_buf);
+    
+    // 原始格式:V1.0.0_20250920_222554,目标:V1.0.0_20250920
+    // 步骤1:找到第一个下划线(分隔版本号和日期)
+    char *first_underline = strstr(version_buf, "_");
+    if (!first_underline) {
+        // 无下划线,直接使用原始版本号(异常情况处理)
+        snprintf(g_device_version, sizeof(g_device_version), "%s", version_buf);
+        printf("g_device_version (no underline): %s\n", g_device_version);
+        return g_device_version;
+    }
+    
+    // 步骤2:找到第二个下划线(分隔日期和时间)
+    char *second_underline = strstr(first_underline + 1, "_");
+    if (!second_underline) {
+        // 只有一个下划线(如 "V1.0.0_20250920"),直接使用
+        snprintf(g_device_version, sizeof(g_device_version), "%s", version_buf);
+        printf("g_device_version (only one underline): %s\n", g_device_version);
+        return g_device_version;
+    }
+    
+    // 步骤3:截断第二个下划线后的内容(保留版本号+日期)
+    size_t target_len = second_underline - version_buf;  // 计算目标字符串长度(不含时间)
+    if (target_len >= sizeof(g_device_version)) {
+        // 防止缓冲区溢出,取最大可容纳长度
+        target_len = sizeof(g_device_version) - 1;
+    }
+    
+    // 复制并构造目标格式字符串
+    strncpy(g_device_version, version_buf, target_len);
+    g_device_version[target_len] = '\0';  // 手动添加字符串结束符
+    
     printf("g_device_version: %s\n", g_device_version);
-    return g_device_version; 
+    return g_device_version;
 }
 /* 获取设备token: 优先读本地缓存,判断过期,否则刷新 */
 char *uapi_ln_get_device_token(void)
@@ -101,9 +131,26 @@ char *uapi_ln_get_device_token(void)
         return NULL;
     }
 
-    /* 没有,发出提示信息 */
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"[TOKEN] 请先激活设备获取 Token");
-
+    /* 没有,尝试获取 Token */
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"[TOKEN] 刷新 Token");
+    if(uapi_dev_runtime_get_cat1_networkstat())
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"[TOKEN] 网络在线,刷新 Token");
+        if(uapi_ln_refresh_device_token() == ERRCODE_SUCC)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"[TOKEN] 刷新 Token 成功");
+            return g_device_token;
+        }
+        else
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"[TOKEN] 刷新 Token 失败");
+            return NULL;
+        }
+    }
+    else
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"[TOKEN] 网络离线,无法刷新 Token");
+    }
     return NULL;
 }
 /* 清除设备token */
@@ -1077,20 +1124,7 @@ static void ln_http_server_send_task(void const *arg)
         if (mail.cmd == LN_HTTP_SERVICE_CMD_GET_DEVICE_TOKEN)
         {
             printf("LN_HTTP_SERVICE_CMD_GET_DEVICE_TOKEN:获取雷鸟设备Token\n");
-            uint32_t ret = ln_get_device_token_http(uapi_ln_get_device_id(), uapi_ln_get_device_iccid(), uapi_ln_get_device_model(), uapi_ln_get_device_version());
-            if (ret == ERRCODE_SUCC) 
-            {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[LN_HTTP_SERVER_SEND_TASK] 获取雷鸟设备Token成功\n");
-                ret = ln_ws_start(ln_ws_process_message);
-                if (ret != 0)
-                {
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[LN_HTTP_SERVER_SEND_TASK] 启动WebSocket失败: %d\n", ret);
-                }
-            } 
-            else 
-            {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[LN_HTTP_SERVER_SEND_TASK] 获取雷鸟设备Token失败\n");
-            }
+            uapi_ln_get_device_token();
         }
         else if (mail.cmd == LN_HTTP_SERVICE_CMD_SPEECH_CHAT_STREAM)
         {
@@ -1399,6 +1433,7 @@ errcode_t uapi_ln_http_server_init(void)
         printf("[LN_AUDIO] init failed in http server init\n");
         /* 不中断HTTP服务,按需可返回失败 */
     }
+    ln_ws_start(ln_ws_process_message);
 
     return ERRCODE_SUCC;
 }