{
return;
}
- PRINT("request %d\r\n", request->msgId);
// 进入拍照界面
if (request->msgId == TOPIC_EVENT_ENTER_CMAERA)
{
+ PRINT(" 遥控拍照 \r\n");
uapi_set_screen_on_api(); // 亮屏
NativeAbility::GetInstance().EnterSlice(VIEW_TAKEPHOTOS);
TakephotosView::GetInstance()->SetPopupViewStatus(PopupPhoto::TakePopup, true);
void AnalysisData(cywee_activity_result_t *cyweeInfo);
/*获取训练数据*/
SportData *GetSportdata();
+ /*设置训练数据[为训练记录准备]*/
+ void SetSportdata(SportData *data);
/*获取运动卡路里*/
int GetCal();
/*设置时间戳*/
#include "traing/Training_UiConfig.h"
#include <cmath> // 包含数学函数库,用于四舍五入
#include <string> // 包含字符串处理库,用于使用 std::to_string
+
+#define PRINT_LINE_INFO() printf("File: %s, Line: %d\r\n", __FILE__, __LINE__)
+
namespace OHOS
{
/* InitView:初始化界面*/
void TraingEnddataView ::InitView()
{
+ // printf("TraingEnddataView::InitView()\r\n");
if (container_ == nullptr)
{
container_ = new UIViewGroup();
InitButtonExt(buttonexit, 42, 1111, 380, 100, BUTTONBACK, STR_CLOSE, 30);
buttonexit->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingEnddataPresenter::GetInstance()));
scrollView_->Add(buttonexit);
+
+ // printf("TraingEnddataView::InitView() is end\r\n");
}
/* DeInit:删除组件 */
SportData *enddata = TraingModel::GetInstance()->GetSportdata();
if (enddata == nullptr)
{
+ printf("Enddata is nullptr. Exiting InitData()...\r\n");
return;
}
+ printf("Initializing TraingEnddataView data...\r\n");
+
// 训练图标Icon
std::string imageStr = TraingModel::GetInstance()->GetSportType(enddata->sportType);
- imageIcon->SetSrc(imageStr.c_str());
-
+ if (!imageStr.empty())
+ {
+ imageIcon->SetSrc(imageStr.c_str());
+ }
+ else
+ {
+ printf("Failed to get image string. Skipping imageIcon update.\r\n");
+ }
+
// 运动项目
labelsport->SetTextId(enddata->sportId);
-
+
// 运动开始结束时间
std::string startTimeStr = enddata->start_time;
+
std::string endTimeStr = enddata->end_time;
+
std::string durationStr = startTimeStr + "-" + endTimeStr;
+
labelduration->SetText(durationStr.c_str());
+
// 运动目标
- if (enddata && enddata->tag)
+ if (enddata->tag)
{
std::string tagStr = std::to_string(enddata->goaldegree) + "%";
labeltag->SetText(tagStr.c_str());
}
+ else
+ {
+ printf("Enddata tag is null. Skipping labeltag update.\r\n");
+ }
+
// 运动时长
- PRINT("duration:%d\r\n", enddata->duration);
+ printf("Duration of the sport: %d\r\n", enddata->duration);
std::string timeStr = TraingModel::GetInstance()->GetTrainingTime();
+
labeltime->SetText(timeStr.c_str());
-
+
// 运动距离
std::string mileStr = std::to_string(enddata->distance);
labelmile->SetText(mileStr.c_str());
-
+
// 平均心率
- // int heart = CalculateAverageHeartRate(155); // 设置一个测试值
std::string heartStr = std::to_string(enddata->avgheart);
labelheart->SetText(heartStr.c_str());
-
+
// 步数
std::string stepStr = std::to_string(enddata->steps);
labelsteps->SetText(stepStr.c_str());
-
+
// 训练强度
UIResourceTextId intensityid = TraingModel::GetInstance()->GetIntensity();
labelstrong->SetTextId(intensityid);
+
+ printf("TraingEnddataView data initialization complete.\r\n");
}
void TraingEnddataView::OnStart()
#include <cmsis_os2.h>
#include <service/graphic_service.h>
#include "thread_adapter.h"
-#include <iostream>
#include <sstream>
#include <iomanip>
-#include <string>
+#include <fstream>
#include "cmsis_os.h"
#include "traing/training_card/include/TraingCardPresenter.h"
{
return sportdata;
}
+ /*设置训练数据[为训练记录准备]*/
+ void TraingModel::SetSportdata(SportData *data)
+ {
+ sportdata = data;
+ }
/*获取训练卡路里*/
int TraingModel::GetCal()
{
{
Openingway = way;
}
-
/*设置运动是否开始*/
void TraingModel::SetSportOpenState(bool state)
{
FILE *fp = fopen(TRAINING_RECORD_FILE, "r+");
if (fp == NULL)
{
- fp = fopen(TRAINING_RECORD_FILE, "w");
+ fp = fopen(TRAINING_RECORD_FILE, "w+");
if (fp == NULL)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "fopen file is error");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to create or open file for writing");
return false;
}
}
-
fseek(fp, 0, SEEK_END);
long fileSize = ftell(fp);
fseek(fp, 0, SEEK_SET);
-
+
char *jsonStr = (char *)malloc(fileSize + 1);
fread(jsonStr, 1, fileSize, fp);
jsonStr[fileSize] = '\0';
}
cJSON_AddItemToObject(root, "data", dataArray);
-
char *jsonStrNew = cJSON_Print(root);
cJSON_Delete(root);
fseek(fp, 0, SEEK_SET);
fprintf(fp, "%s\n", jsonStrNew);
-
fclose(fp);
-
// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveDataToJson is succeed");
return true;
}
+/***
+ * @Date: 2024-05-20 19:40:41
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-06-08 11:27:43
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traingrecord/include/TraingRecordItemView.h
+ */
/***
* @Author: Caisking 3449750381@qq.com
* @Date: 2024-03-27 11:12:32
public:
explicit TraingRecordItemView();
virtual ~TraingRecordItemView();
+ static TraingRecordItemView &GetInstance(void);
+
virtual void SetItemInfo(const TraingRecordItem itemInfo);
virtual void SetUpChild();
int GetTraingRecordIndex();
Remove(&slogo);
}
+ TraingRecordItemView &TraingRecordItemView::GetInstance()
+ {
+ static TraingRecordItemView instance;
+ return instance;
+ }
+
/// @brief 设置item的信息
/// @param itemInfo
void TraingRecordItemView::SetItemInfo(const TraingRecordItem itemInfo)
{
sItemInfo = itemInfo;
- printf("iamge--%s data--%s time--%s\r\n", (itemInfo.image).c_str(), (itemInfo.data).c_str(), (itemInfo.time).c_str());
+ //printf("iamge--%s data--%s time--%s\r\n", (itemInfo.image).c_str(), (itemInfo.data).c_str(), (itemInfo.time).c_str());
sLabeldata.SetText((itemInfo.data).c_str());
sLabeltime.SetText((itemInfo.time).c_str());
slogo.SetSrc((itemInfo.image).c_str());
#include <thread>
#include "traingrecord/include/TraingRecordPresenter.h"
#include "traingrecord/include/TraingRecordModel.h"
+#include "traing/include/TraingEnddataView.h"
+
// #include "TraingRecordView.h"
namespace OHOS
bool TraingRecordPresenter::OnClick(UIView &view, const ClickEvent &event)
{
// 返回按键
- if (strcmp(view.GetViewId(), BUTTONGO) == 0)
+ std::string viewId = view.GetViewId();
+ if (viewId == BUTTONGO)
{
NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGMORE);
+ return true;
}
+ int index = TraingRecordItemView::GetInstance().GetTraingRecordIndex();
+ // 读取json数据
+ std::vector<SportData> sportDataVector = TraingModel::GetInstance()->LoadDataFormJson();
+ // 选择点击按键的历史数据
+ SportData sportData = sportDataVector[index];
+ TraingModel::GetInstance()->SetSportdata(&sportData);
+ NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGENDDATA);
return true;
}
}
return;
}
lackView->SetOnDragListener(draglistener);
-
lackView->SetVisible(false); // 界面隐藏
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowLackView end");
}
// 增加表冠控制
TraingRecordList->SetRotateFactor(2);
TraingRecordList->RequestFocus();
-
+ TraingRecordList->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingRecordPresenter::GetInstance()));
+
UIView::OnDragListener *recorddraglistener = static_cast<UIView::OnDragListener *>(TraingRecordPresenter::GetInstance());
if (recorddraglistener == nullptr)
{