修复训练stw_task死机
authorCaisking <3449750381@qq.com>
Wed, 8 May 2024 10:00:45 +0000 (18:00 +0800)
committerCaisking <3449750381@qq.com>
Wed, 8 May 2024 10:00:45 +0000 (18:00 +0800)
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/drivers/peripheral/cywee/service/cywee_service.c

index 973b6fe..4ca91e2 100644 (file)
@@ -36,7 +36,6 @@
 #define HARD_OFF 1
 #define READTEST 0
 
-
 #define MAX_HEART_RATE 220
 #define AGE_THRESHOLD 59
 #define LOW_INTENSITY_THRESHOLD 59
@@ -369,7 +368,7 @@ namespace OHOS
                 sportdata->sportTagType = sportTagType_;
                 sportdata->tag = sportTag_;
             }
-            
+
             (Openingway == true) ? (printf("app发起运动\n")) : (printf("手表发起运动\n"));
 
             char *start_date = (char *)malloc(9 * sizeof(char)); // 分配内存给start_date
@@ -396,6 +395,8 @@ namespace OHOS
 
             Startstate = true;
             Endstate = false; // 确保"开始"和"结束"状态互斥
+
+            printf("开始运动\r\n");
         }
         else if (currentState == ExerciseState::End && (!Endstate))
         {
@@ -433,6 +434,8 @@ namespace OHOS
 #endif
             Startstate = false;
             Endstate = true;
+
+            printf("结束运动\r\n");
         }
     }
     // 获取训练时长时间
@@ -731,10 +734,10 @@ namespace OHOS
             if (ConfigModel::GetInstance()->get_configData_int(ConfigModel::CONFIGMODEL_ITEM_TRANING_AUTO))
             {
                 freq = ConfigModel::GetInstance()->get_configData_int(ConfigModel::CONFIGMODEL_ITEM_TRANING_FREQ);
-                PRINT("freq%d\r\n", freq); // 获取实时数据频率
+                PRINT("freq is %d\r\n", freq); // 获取实时数据频率
                 if (sportdata->duration % freq == 0)
                 {
-                    PRINT("SendLiveData\r\n");
+                    PRINT("SendLiveData is OK\r\n");
                     SendLiveData(); // 发送实时数据
                 }
             }
index 36fef6a..30e2242 100644 (file)
@@ -164,6 +164,8 @@ namespace OHOS
         case ExerciseState::End:\r
             // 退出进入普通模式\r
             do_cywee_service_check_msg(CYWEE_SERVICE_CMD_NORMAL_MODE, NULL);\r
+            opensensorstuats = false; // 恢复标志位\r
+            DisableTimer();           // 关闭计时器\r
             break;\r
         case ExerciseState::Pause:\r
             do_cywee_service_check_msg(CYWEE_SERVICE_CMD_PAUSE, 0);\r
index f0fad36..c23f24d 100644 (file)
@@ -167,6 +167,6 @@ namespace OHOS
         // 将时间和日期转换为字符串
         std::string stringtime = (hour < 10 ? "0" : "") + std::to_string(hour) + ":" + (minute < 10 ? "0" : "") + std::to_string(minute);
         curtimelabel->SetText(stringtime.c_str());
-        PRINT("curtimelabel!\r\n");
+        // PRINT("curtimelabel!\r\n");
     }
 }
index 15c4053..5c2a9b0 100644 (file)
@@ -340,23 +340,40 @@ void sendtraningstateend(void)
 \r
 void sendtraningdata(msg_get_train_data_info_t *data)\r
 {\r
-    cJSON* dataJSON=cJSON_CreateObject();\r
+    cJSON* dataJSON = cJSON_CreateObject();\r
     \r
-    cJSON_AddNumberToObject(dataJSON,"st",data->st);\r
-    cJSON_AddNumberToObject(dataJSON,"hr",data->hr);\r
-    cJSON_AddNumberToObject(dataJSON,"ca",data->ca);\r
-    cJSON_AddNumberToObject(dataJSON,"di",data->di);\r
-    cJSON_AddNumberToObject(dataJSON,"stp",data->stp);\r
-    cJSON_AddNumberToObject(dataJSON,"ti",data->ti);\r
+    if (dataJSON == NULL) {\r
+        printf("Error creating JSON object\n");\r
+        return;\r
+    }\r
+    \r
+    cJSON_AddNumberToObject(dataJSON, "st", data->st);\r
+    cJSON_AddNumberToObject(dataJSON, "hr", data->hr);\r
+    cJSON_AddNumberToObject(dataJSON, "ca", data->ca);\r
+    cJSON_AddNumberToObject(dataJSON, "di", data->di);\r
+    cJSON_AddNumberToObject(dataJSON, "stp", data->stp);\r
+    cJSON_AddNumberToObject(dataJSON, "ti", data->ti);\r
 \r
     char *jsonString = cJSON_PrintUnformatted(dataJSON);\r
     \r
-    uint32_t data_len=strlen(jsonString);\r
+    if (jsonString == NULL) {\r
+        printf("Error printing JSON to string\n");\r
+        cJSON_Delete(dataJSON);\r
+        return;\r
+    }\r
+    \r
+    uint32_t data_len = strlen(jsonString);\r
     cJSON_Delete(dataJSON);\r
-    printf("发送训练实时数据%d %s\r\n",data_len,jsonString);\r
-    send_big_data(0,jsonString,data_len,data_len,1,1,0x0f,1);\r
-    cJSON_free(jsonString);\r
     \r
+    if (data_len == 0) {\r
+        printf("Error: JSON string length is 0\n");\r
+        return;\r
+    }\r
+    \r
+    printf("发送训练实时数据 %d %s\n", data_len, jsonString);\r
+    send_big_data(0, jsonString, data_len, data_len, 1, 1, 0x0f, 1);\r
+    \r
+    cJSON_free(jsonString);\r
 }\r
 //发送ble数据\r
 uint8_t phone_mac[6];//手机下发的mac地址 第一次连接为空 \r
index 392d501..06d1edc 100644 (file)
@@ -87,7 +87,7 @@ void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen
             memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t));
             PRINT("activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%d], pace[%d], BMR calories[%d], is_pause[%d], hrs[%d], len[%d]\n",
                   c_activity_result_t.activity_mode, c_activity_result_t.steps, c_activity_result_t.distance, c_activity_result_t.calories, c_activity_result_t.step_frequency,
-                  c_activity_result_t.step_length, c_activity_result_t.pace, c_activity_result_t.BMR_calories, c_activity_result_t.is_pause,c_activity_result_t.hrs, sizeof(cywee_activity_result_t));
+                  c_activity_result_t.step_length, c_activity_result_t.pace, c_activity_result_t.BMR_calories, c_activity_result_t.is_pause, c_activity_result_t.hrs, sizeof(cywee_activity_result_t));
             CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t));
             break;
         case SPORT_ACTIVE_MODE_INDOOR_RUNNING:
@@ -234,7 +234,7 @@ void do_cywee_service_check_msg(int cmd, int data[2])
 
     cywee_cmd_t mail = {0};
     mail.cmd = cmd;
-    if(data != NULL)
+    if (data != NULL)
     {
         mail.data[0] = data[0];
         mail.data[1] = data[1];
@@ -279,9 +279,9 @@ static void cywee_service_check_task(void const *arg)
         }
         else if (mail.cmd == CYWEE_SERVICE_CMD_START_CHECK)
         {
-            //cywee_service_running_stat = true;
+            // cywee_service_running_stat = true;
             cywee_main_dml();
-            //cywee_service_timer_start_check(CYWEE_CHECK_MS);
+            // cywee_service_timer_start_check(CYWEE_CHECK_MS);
         }
         else if (mail.cmd == CYWEE_SERVICE_CMD_STOP_CHECK)
         {
@@ -291,6 +291,7 @@ static void cywee_service_check_task(void const *arg)
         }
         else if (mail.cmd == CYWEE_SERVICE_CMD_NORMAL_MODE)
         {
+            PRINT("普通运动模式\r\n");
             cyw_activity_mode_change(SPORT_ACTIVE_MODE_NORMAL);
         }
         else if (mail.cmd == CYWEE_SERVICE_CMD_TREADMILL_MODE)
@@ -299,10 +300,12 @@ static void cywee_service_check_task(void const *arg)
         }
         else if (mail.cmd == CYWEE_SERVICE_CMD_OUTDOOR_RUNNING_MODE)
         {
+            PRINT("室外跑步模式\r\n");
             cyw_activity_mode_change(SPORT_ACTIVE_MODE_OUTDOOR_RUNNING);
         }
         else if (mail.cmd == CYWEE_SERVICE_CMD_INDOOR_RUNNING_MODE)
         {
+            PRINT("室内跑步模式\r\n");
             cyw_activity_mode_change(SPORT_ACTIVE_MODE_INDOOR_RUNNING);
         }
         else if (mail.cmd == CYWEE_SERVICE_CMD_FITNESS_PEDOMETER_MODE)
@@ -311,6 +314,7 @@ static void cywee_service_check_task(void const *arg)
         }
         else if (mail.cmd == CYWEE_SERVICE_CMD_FREE_TRAINING_MODE)
         {
+            PRINT("自由训练模式\r\n");
             cyw_activity_mode_change(SPORT_ACTIVE_MODE_FREE_TRAINING);
         }
         else if (mail.cmd == CYWEE_SERVICE_CMD_AR_ALERT_MODE)
@@ -357,7 +361,6 @@ static void cywee_service_check_task(void const *arg)
         {
             hand_updown_switch(0);
         }
-
     }
 }
 #define CYWEE_APP_BOARD_MSG_COUNT 50
@@ -405,7 +408,6 @@ void cywee_int1_callback(pin_t pin, uintptr_t param)
     do_cywee_service_check_msg(CYWEE_SERVICE_CMD_TIMER_CHECK, NULL);
 }
 
-
 // void cywee_service_service_resume(void)
 // {
 //     PRINT("cywee_service_service resume!\r\n");