debug界面弹窗内容不清空改为限制50条
authorluozheng <1732036298@qq.com>
Fri, 22 Nov 2024 07:37:54 +0000 (15:37 +0800)
committerluozheng <1732036298@qq.com>
Fri, 22 Nov 2024 07:37:54 +0000 (15:37 +0800)
code/sdk/application/wearable/fd230app/nativeui/system/include/SystemLogModel.h
code/sdk/application/wearable/fd230app/nativeui/system/src/SystemLogModel.cpp

index 11ce5b1..0368b7f 100644 (file)
@@ -123,8 +123,7 @@ private:
 
     std::deque<SystemLogData> logData;          // 存储日志数据  
     std::deque<nextday_log_data> nextday_log;           // 存储nextday时间戳
-    std::deque<popup_windows_log_data>
-        popup_windows_log; // 存储popup_windows时间戳
+    std::deque<popup_windows_log_data> popup_windows_log; // 存储popup_windows时间戳
 
     bool uart_status{false};
 };  
index e8276fb..231b4bd 100644 (file)
@@ -75,7 +75,7 @@ void start_report_nextday_log_end(void) {
 }
 // 清空popup_windows日志
 void nextday_clear_popup_windows_log(void) {
-  OHOS::SystemLogModel::GetInstance()->clear_popup_windows_log();
+  // OHOS::SystemLogModel::GetInstance()->clear_popup_windows_log();
 }
 void save_popup_windows_log_c(int type)
 {
@@ -340,8 +340,12 @@ bool SystemLogModel::save_popup_windows_log(popup_windows_log_data data) {
   // 保存新日志
   popup_windows_log.push_back(data);
 
+  // 如果超过限制,删除最早的日志
+  while (popup_windows_log.size() > 50) {
+    popup_windows_log.pop_front(); // 从前端删除最早的日志
+  }
   // 将日志写入文件
-  std::ofstream outFile(SYSTEM_LOG_FILE_PATH_POPUP_WINDOWS, std::ios::app);
+  std::ofstream outFile(SYSTEM_LOG_FILE_PATH_POPUP_WINDOWS, std::ios::trunc);
   if (!outFile) {
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
                   "Failed to open log file for writing");
@@ -349,7 +353,9 @@ bool SystemLogModel::save_popup_windows_log(popup_windows_log_data data) {
   }
 
   // 将结构体中的数据转换为字符串格式写入文件
-  outFile << static_cast<int>(data.type) << " " << data.timestamp << std::endl;
+  for (const auto &log : popup_windows_log) {
+    outFile << static_cast<int>(log.type) << " " << log.timestamp << std::endl;
+  }
   outFile.close();
   return true;
 }
@@ -388,7 +394,20 @@ bool SystemLogModel::load_popup_windows_log() {
     popup_windows_log_data data;
     int typeInt;
     if (ss >> typeInt >> data.timestamp) {
-      data.type = static_cast<popup_windows_type>(typeInt);
+      switch(typeInt)
+      {
+      case 0:
+        data.type = popup_windows_type::MOTION_RECOGNITION;
+        break;
+      case 1:
+        data.type = popup_windows_type::DRINK_WATER_REMINDER;
+        break;
+      case 2:
+        data.type = popup_windows_type::SEDENTARY_REMINDER;
+        break;
+      default:
+        break;
+      }
       popup_windows_log.push_back(data);
     }
   }
@@ -403,6 +422,7 @@ SystemLogModel::get_popup_windows_log() const {
 }
 // 获取日志大小
 size_t SystemLogModel::get_popup_windows_log_size() const {
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"log size:%d",popup_windows_log.size());
   return popup_windows_log.size();
 }