From: Caisking <3449750381@qq.com> Date: Wed, 8 May 2024 10:00:45 +0000 (+0800) Subject: 修复训练stw_task死机 X-Git-Tag: release_V1.2.70_20241020_135402~1025^2~14 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=4e2e209f0c54d8a6f6402f24b2f65e60bbd28a1b;p=mirrors%2FFD230.git 修复训练stw_task死机 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp index 973b6fe6e..4ca91e24a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp @@ -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(); // 发送实时数据 } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp index 36fef6a43..30e224263 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp @@ -164,6 +164,8 @@ namespace OHOS case ExerciseState::End: // 退出进入普通模式 do_cywee_service_check_msg(CYWEE_SERVICE_CMD_NORMAL_MODE, NULL); + opensensorstuats = false; // 恢复标志位 + DisableTimer(); // 关闭计时器 break; case ExerciseState::Pause: do_cywee_service_check_msg(CYWEE_SERVICE_CMD_PAUSE, 0); diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp index f0fad36a8..c23f24d46 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp @@ -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"); } } diff --git a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c index 15c405354..5c2a9b0ca 100644 --- a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c +++ b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c @@ -340,23 +340,40 @@ void sendtraningstateend(void) void sendtraningdata(msg_get_train_data_info_t *data) { - cJSON* dataJSON=cJSON_CreateObject(); + cJSON* dataJSON = cJSON_CreateObject(); - cJSON_AddNumberToObject(dataJSON,"st",data->st); - cJSON_AddNumberToObject(dataJSON,"hr",data->hr); - cJSON_AddNumberToObject(dataJSON,"ca",data->ca); - cJSON_AddNumberToObject(dataJSON,"di",data->di); - cJSON_AddNumberToObject(dataJSON,"stp",data->stp); - cJSON_AddNumberToObject(dataJSON,"ti",data->ti); + if (dataJSON == NULL) { + printf("Error creating JSON object\n"); + return; + } + + cJSON_AddNumberToObject(dataJSON, "st", data->st); + cJSON_AddNumberToObject(dataJSON, "hr", data->hr); + cJSON_AddNumberToObject(dataJSON, "ca", data->ca); + cJSON_AddNumberToObject(dataJSON, "di", data->di); + cJSON_AddNumberToObject(dataJSON, "stp", data->stp); + cJSON_AddNumberToObject(dataJSON, "ti", data->ti); char *jsonString = cJSON_PrintUnformatted(dataJSON); - uint32_t data_len=strlen(jsonString); + if (jsonString == NULL) { + printf("Error printing JSON to string\n"); + cJSON_Delete(dataJSON); + return; + } + + uint32_t data_len = strlen(jsonString); cJSON_Delete(dataJSON); - printf("发送训练实时数据%d %s\r\n",data_len,jsonString); - send_big_data(0,jsonString,data_len,data_len,1,1,0x0f,1); - cJSON_free(jsonString); + if (data_len == 0) { + printf("Error: JSON string length is 0\n"); + return; + } + + printf("发送训练实时数据 %d %s\n", data_len, jsonString); + send_big_data(0, jsonString, data_len, data_len, 1, 1, 0x0f, 1); + + cJSON_free(jsonString); } //发送ble数据 uint8_t phone_mac[6];//手机下发的mac地址 第一次连接为空 diff --git a/code/sdk/drivers/peripheral/cywee/service/cywee_service.c b/code/sdk/drivers/peripheral/cywee/service/cywee_service.c index 392d5013d..06d1edc8c 100644 --- a/code/sdk/drivers/peripheral/cywee/service/cywee_service.c +++ b/code/sdk/drivers/peripheral/cywee/service/cywee_service.c @@ -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");