From: Caisking <3449750381@qq.com> Date: Thu, 15 Aug 2024 08:48:25 +0000 (+0800) Subject: 增加当日历史心率数据处理 X-Git-Tag: release_V1.2.70_20241020_135402~666 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=9d70cab45aacf44d516aa2bd5249402391888779;p=mirrors%2FFD230.git 增加当日历史心率数据处理 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/heart_blood/health_service/health_service.cpp b/code/sdk/application/wearable/fd230app/nativeui/heart_blood/health_service/health_service.cpp index 415f895ca..530bd00a1 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/heart_blood/health_service/health_service.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/heart_blood/health_service/health_service.cpp @@ -14,6 +14,15 @@ #include "bloodoxygen/include/BloodOxygenModel.h" namespace OHOS { + extern "C" + { + void save_heart_data() + { + printf("save_heart_data\r\n"); + OHOS::HealthService::GetInstance()->SaveDailyHeartRate(); + return; + } + } static HealthService *g_pHealthService = nullptr; /*获取日期*/ @@ -337,6 +346,10 @@ namespace OHOS outFile.close(); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateHealthData Heart JSON is ok"); + // 写入文件到当天历史数据 + UpdateHourlyHeartRate(data.timestamp, data.Heart); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateHourlyHeartRate is ok"); + /* 存储bin文件[协议使用] */ std::string binFilePath = GetBinFilePath(HEALTH_TYPE_HEART); FILE *fp = fopen(binFilePath.c_str(), "ab+"); @@ -385,4 +398,132 @@ namespace OHOS { healthState_ = healthState; } -} \ No newline at end of file + /* ------------------------------- 心率当天历史数据处理 ------------------------------ */ + static constexpr const char *HEART_DATA_PATH = "/user/userdata/health/heart_history.bin"; + bool HealthService::LoadDailyHeartRate() + { + // 初始化心率数组为 0 + ClearHourlyHeartRates(); + + // 获取当前时间 + time_t currentTime = time(nullptr); + tm *currentTm = localtime(¤tTime); + + // 检查是否为同一天 + std::ifstream file(HEART_DATA_PATH, std::ios::binary); + if (!file.is_open()) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Unable to open heart rate data file for reading"); + return false; // 文件打开失败 + } + + // 读取时间戳 + file.read(reinterpret_cast(&lastLoadTime), sizeof(lastLoadTime)); + + // 检查是否为同一天 + if (lastLoadTime != 0) // 确保 lastLoadTime 有效 + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "************************************************"); + tm *lastTm = localtime(&lastLoadTime); + if (currentTm->tm_year == lastTm->tm_year && + currentTm->tm_yday == lastTm->tm_yday) + { + // 如果是同一天,直接读取心率数据 + for (int i = 0; i < MAX_HOURS; ++i) + { + uint16_t heartRate; + if (!file.read(reinterpret_cast(&heartRate), sizeof(heartRate))) // 读取心率 + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Failed to read heart rate data."); + file.close(); + return false; // 读取失败 + } + dailyHeartRates[i] = heartRate; + + // 打印心率数据 + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Hour %d: Heart Rate %d", i, heartRate); + } + file.close(); + return true; // 成功读取 + } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "************************************************"); + } + + // 如果不是同一天,清空文件内容 + file.close(); + SaveDailyHeartRate(); + + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Not same-day data"); + return false; // 不是同一天 + } + + bool HealthService::SaveDailyHeartRate() + { + // 判断文件是否存在 不存在即创建 并打开以输出模式 + std::ofstream outFile(HEART_DATA_PATH, std::ios::trunc); + if (!outFile.is_open()) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Unable to open heart rate data file for reading"); + return false; // 文件打开失败 + } + + // 存储一个时间戳最前面 + time_t currentTime = time(nullptr); + outFile.write(reinterpret_cast(¤tTime), sizeof(currentTime)); + + for (int i = 0; i < MAX_HOURS; ++i) + { + if (!outFile.write(reinterpret_cast(&dailyHeartRates[i]), sizeof(dailyHeartRates[i]))) // 保存心率值 + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Failed to write heart rate data."); + outFile.close(); + return false; // 写入失败 + } + } + outFile.close(); + return true; // 成功保存 + } + void HealthService::ClearHourlyHeartRates() + { + // 清空心率数据,将数组置为 0 + for (int i = 0; i < MAX_HOURS; ++i) + { + dailyHeartRates[i] = 0; + } + } + void HealthService::UpdateHourlyHeartRate(time_t timestamp, uint16_t heartRate) + { + // 将时间戳转换为 tm 结构体 + struct tm *timeInfo = localtime(×tamp); // 使用 localtime 获取本地时间 + + // 提取小时 + uint8_t hour = static_cast(timeInfo->tm_hour); + + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Updating heart rate: 小时 %d, 心率值 %d", hour, heartRate); + + // 确保 hour 在有效范围内,并且心率不是异常值(例如负值) + if (hour < MAX_HOURS && heartRate > 0) // 心率不应为负 + { + dailyHeartRates[hour] = heartRate; + } + + // 记录目前更新时间点 + currenthour = hour; + } + + uint8_t HealthService::GetHourlyHeartRate(uint8_t hour) + { + // 返回指定小时的心率 + if (hour < MAX_HOURS) + { + return dailyHeartRates[hour]; // 默认为 0 如果未更新 + } + return 0; // 或者返回一个异常值 + } + + uint8_t HealthService::GetCurrentHour() + { + // 返回目前小时 + return currenthour; + } +} diff --git a/code/sdk/application/wearable/fd230app/nativeui/heart_blood/health_service/health_service.h b/code/sdk/application/wearable/fd230app/nativeui/heart_blood/health_service/health_service.h index a48df952a..6760b2376 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/heart_blood/health_service/health_service.h +++ b/code/sdk/application/wearable/fd230app/nativeui/heart_blood/health_service/health_service.h @@ -10,6 +10,9 @@ #include "stdio.h" #include "string" +#include +#include +#include #define HEART_MAX_POINTS 360 namespace OHOS @@ -92,11 +95,29 @@ namespace OHOS bool UpdateJsonData(uint8_t type); // 更新json bool CleanHealthData(); + /*健康状态*/ HealthState GetHealthCurrent(); void SetHealthCurrent(HealthState healthState); + /* + 当天24个小时的心率处理 + -心率数组 每个小时存储最新的值 但是没有小时只有一个值 + -开机读取 + -关机存储 + */ + bool SaveDailyHeartRate(); + bool LoadDailyHeartRate(); + void UpdateHourlyHeartRate(time_t timestamp, uint16_t heartRate); + uint8_t GetHourlyHeartRate(uint8_t hour); + void ClearHourlyHeartRates(); + uint8_t GetCurrentHour(); + private: + static const int MAX_HOURS = 24; + uint16_t dailyHeartRates[MAX_HOURS]; // 使用数组来存储心率值 HealthState healthState_; + time_t lastLoadTime; // 记录最后加载的时间 + uint8_t currenthour = 0; }; } #endif // HEALTH_MODEL_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/heartrate/include/HeartModel.h b/code/sdk/application/wearable/fd230app/nativeui/heartrate/include/HeartModel.h index 5a453a310..66f0359c1 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/heartrate/include/HeartModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/heartrate/include/HeartModel.h @@ -152,6 +152,8 @@ extern "C" void Heart_Control(HeartState state, HeartCheck check); void ReInit(); + void Heart_Update_View(void); + private: HealthAllDatas healthDatas; uint16_t pretime{0}; diff --git a/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartModel.cpp index a9b991c50..42dac0d57 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartModel.cpp @@ -20,6 +20,9 @@ #include #include +#include "heartrate/include/HeartRateView.h" +#include "ui_service.h" + #ifdef __cplusplus extern "C" { @@ -198,6 +201,8 @@ namespace OHOS /*初始化读取文件*/ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartModel::HeartModel()"); HeartRateData *data = HealthService::GetInstance()->ReadHeartRateData(); + /*初始化历史文件*/ + HealthService::GetInstance()->LoadDailyHeartRate(); if (data != nullptr) { currentheart = data->Heart; @@ -472,7 +477,7 @@ namespace OHOS if (MainViewSample::GetInstance()->GetHorCurrentCard() == HEART_RATE) { HeartRateView::GetInstance()->SetHeartRateData(rateData, sizeof(Point) * len); - HeartRateView::GetInstance()->RefreshElectrocardiogram(); + // HeartRateView::GetInstance()->RefreshElectrocardiogram(); HeartRateView::GetInstance()->RefreshHeartRatePerSec(perSec); HeartRateView::GetInstance()->RefreshHeartRateMax(maxRate); HeartRateView::GetInstance()->RefreshHeartRateMin(minRate); @@ -568,6 +573,8 @@ namespace OHOS if (heartresult_ == HeartResult::SUCCESS) { Heart_Save(); + /*通知进行UI更新*/ + SendMsgToUIService(UI_UPDATE_HEARTRATE_DATA, 0, nullptr, 0); } /*关闭被动检测*/ Heart_Control(HeartState::End, HeartCheck::PASSIVITY); @@ -589,7 +596,7 @@ namespace OHOS SetCheckTime(data.timestamp); HealthService::GetInstance()->UpdateHealthData(data); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%d %ld", currentheart, data.timestamp); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "保存的心率数据: %d %ld", currentheart, data.timestamp); } // 显示检测结果// 显示检测结果 @@ -724,4 +731,17 @@ namespace OHOS Heart_Stop(); } } + + void HeartModel::Heart_Update_View(void) + { + if (HeartRateView::GetInstance()) + { + int hour = HealthService::GetInstance()->GetCurrentHour(); + if (HeartRateView::GetInstance() != nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "更新主界面卡片"); + HeartRateView::GetInstance()->Update_data_Chart(hour); + } + } + } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/screensetting/src/ScreenModels.cpp b/code/sdk/application/wearable/fd230app/nativeui/screensetting/src/ScreenModels.cpp index 33fa873a7..adb019537 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/screensetting/src/ScreenModels.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/screensetting/src/ScreenModels.cpp @@ -1,3 +1,9 @@ +/*** + * @Date: 2024-08-12 10:11:33 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-08-13 16:58:23 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/screensetting/src/ScreenModels.cpp + */ /* * @Author: luozheng 1732036298@qq.com * @Date: 2024-08-05 15:20:03 @@ -67,11 +73,11 @@ bool ScreenModels::LoadAppImages(std::string file, UIImageView *view, uint32_t r void ScreenModels::PreLoadAppimages(void) { - LoadAppMultiImages(PLAYER_IAMGES, PLAYER_BACKGROUND, PLAYER_UP_66); //LoadAppMultiImages(CLOCK_IAMGES, CLOCK_CLOCK0, CLOCK_SECOND); + LoadAppMultiImages(PLAYER_IAMGES, PLAYER_BACKGROUND, PLAYER_UP_66); LoadAppMultiImages(COMPASS_IAMGES, COMPASS_COMPASS0, COMPASS_COMPASS2); LoadAppMultiImages(DROPDOWN_IAMGES, DROPDOWN_BLUETOOTHCONNECTED, DROPDOWN_SETTING); - LoadAppMultiImages(HEART_IAMGES, HEART_HEARTRATECOOR, HEART_HEARTRATE_TOP); + LoadAppMultiImages(HEART_IAMGES, HEART_RATE_BOTTOM, HEART_RATE_TOP); LoadAppMultiImages(BLOOD_IAMGES, BLOODOXYGEN_BACKGOUND, BLOODOXYGEN_BACKGOUND); LoadAppMultiImages(TRAINING_IAMGES, TRAINING_BOUTTONGROUND, TRAINING_WALKING_BIG); // LoadAppMultiImages(MESSAGE_IAMGES, MESSAGE_MESSAGE, MESSAGE_WECHAT); diff --git a/code/sdk/application/wearable/fd230app/nativeui/uiservice/include/ui_service.h b/code/sdk/application/wearable/fd230app/nativeui/uiservice/include/ui_service.h index 5abb0e121..1caba98bc 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/uiservice/include/ui_service.h +++ b/code/sdk/application/wearable/fd230app/nativeui/uiservice/include/ui_service.h @@ -1,7 +1,7 @@ /*** * @Date: 2024-07-12 19:25:33 * @LastEditors: Caisking 3449750381@qq.com - * @LastEditTime: 2024-07-25 10:22:03 + * @LastEditTime: 2024-08-15 14:39:51 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/uiservice/include/ui_service.h */ /* @@ -76,6 +76,7 @@ typedef enum { UI_UPDATE_WEATHER_DATA, //天气数据更新 UI_UPDATE_SLEEP_DATA, //更新睡眠数据 UI_UPDATE_MESSAGE_DATA, //更新消息数据 + UI_UPDATE_HEARTRATE_DATA, //更新心率曲线 UI_AI_JUMP_TO_RESULT_VIEW, //跳转到返回结果视图 UI_AI_JUMP_TO_LISTENING_VIEW,//跳转到AI聆听界面 diff --git a/code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp b/code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp index 46d3ee39a..4d5b7c90e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp @@ -24,6 +24,7 @@ #include "player/include/PlayersModel.h" #include "sleep/include/SleepModel.h" #include "message/include/MessageModel.h" +#include "heartrate/include/HeartModel.h" #include "aivoice/include/AiVoiceModel.h" #include "weather/include/WeatherModel.h" #include "uiservice/include/ui_service.h" @@ -50,179 +51,186 @@ extern "C" errcode_t uapi_pm_add_sleep_veto(pm_id_t veto_id); extern "C" errcode_t uapi_pm_remove_sleep_veto(pm_id_t veto_id); #ifdef __cplusplus -extern "C" { +extern "C" +{ #endif -static const char *GetServiceName(Service *service); -static BOOL ServiceInitialize(Service *service, Identity identity); -static TaskConfig GetServiceTaskConfig(Service *service); -static BOOL ServiceMessageHandle(Service *service, Request *request); -static void ServiceMsgProcess(Request *request); -static int32_t SendMsg(int32_t msgId, uint32_t msgValue, void *data, int32_t dataLen); - -static UiService g_uiService = { - .GetName = GetServiceName, - .Initialize = ServiceInitialize, - .MessageHandle = ServiceMessageHandle, - .GetTaskConfig = GetServiceTaskConfig, - DEFAULT_IUNKNOWN_ENTRY_BEGIN, - .SendMsg = SendMsg, - DEFAULT_IUNKNOWN_ENTRY_END, - .identity = { -1, -1, nullptr }, -}; - -const int DATA_DIST_STACK_SIZE = 0xC00; -const int DATA_DIST_MAIL_LENGTH = 10; -const int BYTE_OFFSET = 8; -static uint32_t g_interval = 5; + static const char *GetServiceName(Service *service); + static BOOL ServiceInitialize(Service *service, Identity identity); + static TaskConfig GetServiceTaskConfig(Service *service); + static BOOL ServiceMessageHandle(Service *service, Request *request); + static void ServiceMsgProcess(Request *request); + static int32_t SendMsg(int32_t msgId, uint32_t msgValue, void *data, int32_t dataLen); + + static UiService g_uiService = { + .GetName = GetServiceName, + .Initialize = ServiceInitialize, + .MessageHandle = ServiceMessageHandle, + .GetTaskConfig = GetServiceTaskConfig, + DEFAULT_IUNKNOWN_ENTRY_BEGIN, + .SendMsg = SendMsg, + DEFAULT_IUNKNOWN_ENTRY_END, + .identity = {-1, -1, nullptr}, + }; + + const int DATA_DIST_STACK_SIZE = 0xC00; + const int DATA_DIST_MAIL_LENGTH = 10; + const int BYTE_OFFSET = 8; + static uint32_t g_interval = 5; + + /* -------------------------------------------------------------------------- */ + // 消息处理程序的函数指针类型 + typedef void (*MsgHandlerFunc)(Request *); + // 定义一个结构来保存消息处理程序 + typedef struct + { + int msgId; + MsgHandlerFunc handler; + } MsgHandlerEntry; + + // 消息处理程序的函数原型 + static void HandleJSInstallSuccess(Request *request); + static void HandleJSUninstallSuccess(Request *request); + static void HandlePhoneConnected(Request *request); + static void HandlePhoneDisconnected(Request *request); + static void HandleEarphoneConnected(Request *request); + static void HandleEarphoneDisconnected(Request *request); + static void HandleBluetoothConnected(Request *request); + static void HandleBluetoothDisconnected(Request *request); + static void HandleAddSleepVeto(Request *request); + static void HandleRemoveSleepVeto(Request *request); + static void HandleUpdateScreenDuration(Request *request); + static void HandleUpdateRaiseToBrightness(Request *request); + static void HandleUpdateBrightnessValue(Request *request); + static void HandleUpdateWeatherData(Request *request); + static void HandleUpdateSystemVolume(Request *request); + static void HandleUpdateCallVolume(Request *request); + static void HandleUpdateVibrationMode(Request *request); + static void HandleUpdateSilentMode(Request *request); + static void HandleUpdateDontDisturbMode(Request *request); + static void HandleUpdateMusicPlayerList(Request *request); + static void HandleAiJumpToResultView(Request *request); + static void HandleAiJumpToListeningMessage(Request *request); + static void HandleUpdateUserQuestionStr(Request *request); + static void HandleUpdateAIAnswerStr(Request *request); + static void HandleWatchFirstPaired(Request *request); + static void HandleUpdateOBUMessage(Request *request); + static void HandleUpdateSleep(Request *request); + static void HandleUpdateMessage(Request *request); + static void HandleUpdateHeartRate(Request *request); + + // 消息处理程序项数组(每个消息类型对应一个处理函数,函数名以 Handle 开头) + MsgHandlerEntry msgHandlers[] = { + {JS_INSTALL_SUCESS_TO_UI, HandleJSInstallSuccess}, + {JS_UNINSTALL_SUCESS_TO_UI, HandleJSUninstallSuccess}, + {PHONE_CONNECTED_TO_UI, HandlePhoneConnected}, + {PHONE_DISCONNECTED_TO_UI, HandlePhoneDisconnected}, + {EARPHONE_CONNECTED_TO_UI, HandleEarphoneConnected}, + {EARPHONE_DISCONNECTED_TO_UI, HandleEarphoneDisconnected}, + {BT_CONNECTED_TO_UI, HandleBluetoothConnected}, + {BT_DISCONNECTED_TO_UI, HandleBluetoothDisconnected}, + {UI_ADD_SLEEP_VETO, HandleAddSleepVeto}, + {UI_RM_SLEEP_VETO, HandleRemoveSleepVeto}, + {UI_UPDATE_SCREEN_DURATION, HandleUpdateScreenDuration}, + {UI_UPDATE_RAISETOBRIGHTNESS, HandleUpdateRaiseToBrightness}, + {UI_UPDATE_BRIGHTNESS_VALUE, HandleUpdateBrightnessValue}, + {UI_UPDATE_WEATHER_DATA, HandleUpdateWeatherData}, + {UI_UPDATE_SYSTEM_VOLUME, HandleUpdateSystemVolume}, + {UI_UPDATE_CALL_VOLUME, HandleUpdateCallVolume}, + {UI_UPDATE_VIBRATION_MODE, HandleUpdateVibrationMode}, + {UI_UPDATE_SILENT_MODE, HandleUpdateSilentMode}, + {UI_UPDATE_DNOTDISTURB_MODE, HandleUpdateDontDisturbMode}, + {UI_UPDATE_MUSIC_PLAYER_LIST, HandleUpdateMusicPlayerList}, + {UI_AI_JUMP_TO_RESULT_VIEW, HandleAiJumpToResultView}, + {UI_UPDATE_USER_QUESTION_STR, HandleUpdateUserQuestionStr}, + {UI_UPDATE_AI_ANSWER_STR, HandleUpdateAIAnswerStr}, + {UI_HAND_WATCH_FIRST_PAIRED, HandleWatchFirstPaired}, + {UI_UPDATE_OBU_MESSAGE, HandleUpdateOBUMessage}, + {UI_AI_JUMP_TO_LISTENING_VIEW, HandleAiJumpToListeningMessage}, + + {UI_UPDATE_SLEEP_DATA, HandleUpdateSleep}, + {UI_UPDATE_MESSAGE_DATA, HandleUpdateMessage}, + {UI_UPDATE_HEARTRATE_DATA, HandleUpdateHeartRate}, -/* -------------------------------------------------------------------------- */ -// 消息处理程序的函数指针类型 -typedef void (*MsgHandlerFunc)(Request *); -// 定义一个结构来保存消息处理程序 -typedef struct -{ - int msgId; - MsgHandlerFunc handler; -} MsgHandlerEntry; - -// 消息处理程序的函数原型 -static void HandleJSInstallSuccess(Request *request); -static void HandleJSUninstallSuccess(Request *request); -static void HandlePhoneConnected(Request *request); -static void HandlePhoneDisconnected(Request *request); -static void HandleEarphoneConnected(Request *request); -static void HandleEarphoneDisconnected(Request *request); -static void HandleBluetoothConnected(Request *request); -static void HandleBluetoothDisconnected(Request *request); -static void HandleAddSleepVeto(Request *request); -static void HandleRemoveSleepVeto(Request *request); -static void HandleUpdateScreenDuration(Request *request); -static void HandleUpdateRaiseToBrightness(Request *request); -static void HandleUpdateBrightnessValue(Request *request); -static void HandleUpdateWeatherData(Request *request); -static void HandleUpdateSystemVolume(Request *request); -static void HandleUpdateCallVolume(Request *request); -static void HandleUpdateVibrationMode(Request *request); -static void HandleUpdateSilentMode(Request *request); -static void HandleUpdateDontDisturbMode(Request *request); -static void HandleUpdateMusicPlayerList(Request *request); -static void HandleAiJumpToResultView(Request *request); -static void HandleAiJumpToListeningMessage(Request *request); -static void HandleUpdateUserQuestionStr(Request *request); -static void HandleUpdateAIAnswerStr(Request *request); -static void HandleWatchFirstPaired(Request *request); -static void HandleUpdateOBUMessage(Request *request); -static void HandleUpdateSleep(Request *request); -static void HandleUpdateMessage(Request *request); - - -// 消息处理程序项数组(每个消息类型对应一个处理函数,函数名以 Handle 开头) -MsgHandlerEntry msgHandlers[] = { - {JS_INSTALL_SUCESS_TO_UI, HandleJSInstallSuccess}, - {JS_UNINSTALL_SUCESS_TO_UI, HandleJSUninstallSuccess}, - {PHONE_CONNECTED_TO_UI, HandlePhoneConnected}, - {PHONE_DISCONNECTED_TO_UI, HandlePhoneDisconnected}, - {EARPHONE_CONNECTED_TO_UI, HandleEarphoneConnected}, - {EARPHONE_DISCONNECTED_TO_UI, HandleEarphoneDisconnected}, - {BT_CONNECTED_TO_UI, HandleBluetoothConnected}, - {BT_DISCONNECTED_TO_UI, HandleBluetoothDisconnected}, - {UI_ADD_SLEEP_VETO, HandleAddSleepVeto}, - {UI_RM_SLEEP_VETO, HandleRemoveSleepVeto}, - {UI_UPDATE_SCREEN_DURATION, HandleUpdateScreenDuration}, - {UI_UPDATE_RAISETOBRIGHTNESS, HandleUpdateRaiseToBrightness}, - {UI_UPDATE_BRIGHTNESS_VALUE, HandleUpdateBrightnessValue}, - {UI_UPDATE_WEATHER_DATA, HandleUpdateWeatherData}, - {UI_UPDATE_SYSTEM_VOLUME, HandleUpdateSystemVolume}, - {UI_UPDATE_CALL_VOLUME, HandleUpdateCallVolume}, - {UI_UPDATE_VIBRATION_MODE, HandleUpdateVibrationMode}, - {UI_UPDATE_SILENT_MODE, HandleUpdateSilentMode}, - {UI_UPDATE_DNOTDISTURB_MODE,HandleUpdateDontDisturbMode}, - {UI_UPDATE_MUSIC_PLAYER_LIST,HandleUpdateMusicPlayerList}, - {UI_AI_JUMP_TO_RESULT_VIEW, HandleAiJumpToResultView}, - {UI_UPDATE_USER_QUESTION_STR,HandleUpdateUserQuestionStr}, - {UI_UPDATE_AI_ANSWER_STR, HandleUpdateAIAnswerStr}, - {UI_HAND_WATCH_FIRST_PAIRED,HandleWatchFirstPaired}, - {UI_UPDATE_OBU_MESSAGE,HandleUpdateOBUMessage}, - {UI_AI_JUMP_TO_LISTENING_VIEW,HandleAiJumpToListeningMessage}, - - {UI_UPDATE_SLEEP_DATA, HandleUpdateSleep}, - {UI_UPDATE_MESSAGE_DATA, HandleUpdateMessage}, }; -/* -------------------------------------------------------------------------- */ -void ScreenTurnOn(int32_t timeout) -{ - if (OHOS::HealthModel::GetInstance()->GetBriScrStatus() == 1) { - return; - } + /* -------------------------------------------------------------------------- */ + void ScreenTurnOn(int32_t timeout) + { + if (OHOS::HealthModel::GetInstance()->GetBriScrStatus() == 1) + { + return; + } #if defined(SUPPORT_POWER_MANAGER) - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ScreenTurn] timeout = %d", timeout); - g_interval = get_back_to_home_interval(); - set_back_to_home_interval(0xFFFFFFFF); - const power_display_svr_api_t *display_api = power_display_svr_get_api(); - if (display_api->get_screen_state() != SCREEN_ON) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ScreenTurn] turn_on_screen"); - display_api->turn_on_screen(); - } - display_api->set_screen_set_keepon_timeout(timeout); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ScreenTurn] timeout = %d", timeout); + g_interval = get_back_to_home_interval(); + set_back_to_home_interval(0xFFFFFFFF); + const power_display_svr_api_t *display_api = power_display_svr_get_api(); + if (display_api->get_screen_state() != SCREEN_ON) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ScreenTurn] turn_on_screen"); + display_api->turn_on_screen(); + } + display_api->set_screen_set_keepon_timeout(timeout); #endif - return; -} - -void ScreenTurnOff(void) -{ - if (OHOS::HealthModel::GetInstance()->GetBriScrStatus() == 1) { return; } + + void ScreenTurnOff(void) + { + if (OHOS::HealthModel::GetInstance()->GetBriScrStatus() == 1) + { + return; + } #if defined(SUPPORT_POWER_MANAGER) - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ScreenTurnOff] timeout auto"); - set_back_to_home_interval(g_interval); - const power_display_svr_api_t *display_api = power_display_svr_get_api(); - display_api->set_screen_set_keepon_timeout(0); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ScreenTurnOff] timeout auto"); + set_back_to_home_interval(g_interval); + const power_display_svr_api_t *display_api = power_display_svr_get_api(); + display_api->set_screen_set_keepon_timeout(0); #endif - return; -} + return; + } -void ScreenOffEnable(int32_t enable) -{ + void ScreenOffEnable(int32_t enable) + { #if defined(SUPPORT_POWER_MANAGER) - const power_display_svr_api_t *display_api = power_display_svr_get_api(); - display_api->set_auto_timeout_function(enable); + const power_display_svr_api_t *display_api = power_display_svr_get_api(); + display_api->set_auto_timeout_function(enable); #endif -} - -static void Init() -{ - SamgrLite *sm = SAMGR_GetInstance(); - BOOL result = sm->RegisterService((Service *)&g_uiService); - sm->RegisterDefaultFeatureApi(UI_SERVICE, GET_IUNKNOWN(g_uiService)); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_UI_SERVICE, "UiService starts %s", result ? "successfully" : "unsuccessfully"); -} + } -SYSEX_SERVICE_INIT_PRI(Init, 2); + static void Init() + { + SamgrLite *sm = SAMGR_GetInstance(); + BOOL result = sm->RegisterService((Service *)&g_uiService); + sm->RegisterDefaultFeatureApi(UI_SERVICE, GET_IUNKNOWN(g_uiService)); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_UI_SERVICE, "UiService starts %s", result ? "successfully" : "unsuccessfully"); + } -const char *GetServiceName(Service *service) -{ - (void)service; - return UI_SERVICE; -} + SYSEX_SERVICE_INIT_PRI(Init, 2); -BOOL ServiceInitialize(Service *service, Identity identity) -{ - if (service == nullptr) { - return FALSE; + const char *GetServiceName(Service *service) + { + (void)service; + return UI_SERVICE; } - UiService *uiService = reinterpret_cast(service); - uiService->identity = identity; - WEARABLE_LOGD(WEARABLE_LOG_MODULE_UI_SERVICE, "UiService init serviceId = %d, featureId = %d, queueId = %d", - identity.serviceId, identity.featureId, identity.queueId); - return TRUE; -} + BOOL ServiceInitialize(Service *service, Identity identity) + { + if (service == nullptr) + { + return FALSE; + } + UiService *uiService = reinterpret_cast(service); + uiService->identity = identity; -void ServiceMsgProcess(Request *request) -{ - #if 0 + WEARABLE_LOGD(WEARABLE_LOG_MODULE_UI_SERVICE, "UiService init serviceId = %d, featureId = %d, queueId = %d", + identity.serviceId, identity.featureId, identity.queueId); + return TRUE; + } + + void ServiceMsgProcess(Request *request) + { +#if 0 WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "UiServiceMsgId = %d",request->msgId); switch (request->msgId) { case JS_INSTALL_SUCESS_TO_UI: @@ -275,331 +283,345 @@ void ServiceMsgProcess(Request *request) std::bind(&OHOS::DisplayBrightnessModel::UpdateBrightnessValueOfSlider, OHOS::DisplayBrightnessModel::GetInstance())); break; } - #endif - /* -------------------------------------------------------------------------- */ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "UiServiceMsgId = %d",request->msgId); - for (int i = 0; i < MAX_NUM_HANDLER; ++i) +#endif + /* -------------------------------------------------------------------------- */ + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "UiServiceMsgId = %d", request->msgId); + for (int i = 0; i < MAX_NUM_HANDLER; ++i) + { + if (msgHandlers[i].msgId == request->msgId) + { + msgHandlers[i].handler(request); + break; + } + } + /* -------------------------------------------------------------------------- */ + } + + BOOL ServiceMessageHandle(Service *service, Request *request) { - if (msgHandlers[i].msgId == request->msgId) + (void)service; + if (request == nullptr) { - msgHandlers[i].handler(request); - break; + return FALSE; } + + ServiceMsgProcess(request); + return TRUE; } - /* -------------------------------------------------------------------------- */ -} -BOOL ServiceMessageHandle(Service *service, Request *request) -{ - (void)service; - if (request == nullptr) { - return FALSE; + TaskConfig GetServiceTaskConfig(Service *service) + { + (void)service; + TaskConfig config = {LEVEL_HIGH, PRI_NORMAL, DATA_DIST_STACK_SIZE, DATA_DIST_MAIL_LENGTH, SINGLE_TASK}; + return config; } - ServiceMsgProcess(request); - return TRUE; -} + // 发送msg + static int32_t SendMsg(int32_t msgId, uint32_t msgValue, void *data, int32_t dataLen) + { + int32_t ret; + void *sendData = nullptr; + if (dataLen > 0) + { + sendData = malloc(dataLen); + if (sendData == nullptr) + { + return FALSE; + } + ret = memcpy_s(sendData, dataLen, data, dataLen); + if (ret != EOK) + { + free(sendData); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uiservice sendMsg memcpy_s fail! ret = %d", ret); + return FALSE; + } + } -TaskConfig GetServiceTaskConfig(Service *service) -{ - (void)service; - TaskConfig config = {LEVEL_HIGH, PRI_NORMAL, DATA_DIST_STACK_SIZE, DATA_DIST_MAIL_LENGTH, SINGLE_TASK}; - return config; -} + Request request = { + .msgId = msgId, + .len = dataLen, + .msgValue = msgValue, + .data = sendData, + }; -//发送msg -static int32_t SendMsg(int32_t msgId, uint32_t msgValue, void *data, int32_t dataLen) -{ - int32_t ret; - void *sendData = nullptr; - if (dataLen > 0) { - sendData = malloc(dataLen); - if (sendData == nullptr) { - return FALSE; - } - ret = memcpy_s(sendData, dataLen, data, dataLen); - if (ret != EOK) { - free(sendData); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uiservice sendMsg memcpy_s fail! ret = %d", ret); + ret = SAMGR_SendRequest(IUNKNOWN_GetIdentity(GET_IUNKNOWN(g_uiService)), &request, nullptr); + if (ret != 0) + { + if (sendData != nullptr) + { + free(sendData); + } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_UI_SERVICE, "SendMsg failed ret = %d ", ret); return FALSE; } - } - Request request = { - .msgId = msgId, - .len = dataLen, - .msgValue = msgValue, - .data = sendData, - }; + return TRUE; + } - ret = SAMGR_SendRequest(IUNKNOWN_GetIdentity(GET_IUNKNOWN(g_uiService)), &request, nullptr); - if (ret != 0) { - if (sendData != nullptr) { - free(sendData); + // 发送msg给ui服务 + void SendMsgToUIService(int32_t msgId, uint32_t msgValue, void *data, int32_t dataLen) + { + UiServiceFeatureApi *comApi = nullptr; + IUnknown *iUnknown = SAMGR_GetInstance()->GetDefaultFeatureApi(UI_SERVICE); + if (iUnknown == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_UI_SERVICE, "GetDefaultFeatureApi failed"); + return; } - WEARABLE_LOGE(WEARABLE_LOG_MODULE_UI_SERVICE, "SendMsg failed ret = %d ", ret); - return FALSE; + int result = iUnknown->QueryInterface(iUnknown, DEFAULT_VERSION, (void **)&comApi); + if (result != 0 || comApi == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_UI_SERVICE, "QueryInterface comApi failed"); + return; + } + comApi->SendMsg(msgId, msgValue, data, dataLen); + comApi->Release((IUnknown *)comApi); } - return TRUE; -} - -//发送msg给ui服务 -void SendMsgToUIService(int32_t msgId, uint32_t msgValue, void *data, int32_t dataLen) -{ - UiServiceFeatureApi *comApi = nullptr; - IUnknown *iUnknown = SAMGR_GetInstance()->GetDefaultFeatureApi(UI_SERVICE); - if (iUnknown == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_UI_SERVICE, "GetDefaultFeatureApi failed"); - return; - } - int result = iUnknown->QueryInterface(iUnknown, DEFAULT_VERSION, (void **)&comApi); - if (result != 0 || comApi == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_UI_SERVICE, "QueryInterface comApi failed"); - return; + /* -------------------------------------------------------------------------- */ + void HandleJSInstallSuccess(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "bms msg_id = %d bundleName = %s", + request->msgId, ((BundleData *)request->data)->bundleName); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::ApplistModel::ApplistUpdate, &OHOS::ApplistModel::GetInstance())); } - comApi->SendMsg(msgId, msgValue, data, dataLen); - comApi->Release((IUnknown *)comApi); -} - -/* -------------------------------------------------------------------------- */ -void HandleJSInstallSuccess(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "bms msg_id = %d bundleName = %s", - request->msgId, ((BundleData *)request->data)->bundleName); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::ApplistModel::ApplistUpdate, &OHOS::ApplistModel::GetInstance())); -} -void HandleJSUninstallSuccess(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "bms msg_id = %d bundleName = %s", - request->msgId, ((BundleData *)request->data)->bundleName); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::ApplistModel::ApplistUpdate, &OHOS::ApplistModel::GetInstance())); -} + void HandleJSUninstallSuccess(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "bms msg_id = %d bundleName = %s", + request->msgId, ((BundleData *)request->data)->bundleName); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::ApplistModel::ApplistUpdate, &OHOS::ApplistModel::GetInstance())); + } -//处理手机连接成功 -void HandlePhoneConnected(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandlePhoneConnectStatus"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::SettingModel::UpdatePhoneConnectStatus, &OHOS::SettingModel::GetInstance(), true)); -} + // 处理手机连接成功 + void HandlePhoneConnected(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandlePhoneConnectStatus"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::SettingModel::UpdatePhoneConnectStatus, &OHOS::SettingModel::GetInstance(), true)); + } -//处理手机断开连接 -void HandlePhoneDisconnected(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandlePhoneDisconnected"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::SettingModel::UpdatePhoneConnectStatus, &OHOS::SettingModel::GetInstance(), false)); -} + // 处理手机断开连接 + void HandlePhoneDisconnected(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandlePhoneDisconnected"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::SettingModel::UpdatePhoneConnectStatus, &OHOS::SettingModel::GetInstance(), false)); + } -//处理耳机连接成功 -void HandleEarphoneConnected(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleEarphoneConnected"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::SettingModel::UpdateEarPhoneConnectStatus, &OHOS::SettingModel::GetInstance(), true)); -} + // 处理耳机连接成功 + void HandleEarphoneConnected(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleEarphoneConnected"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::SettingModel::UpdateEarPhoneConnectStatus, &OHOS::SettingModel::GetInstance(), true)); + } -//处理耳机断开连接 -void HandleEarphoneDisconnected(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleEarphoneConnected"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::SettingModel::UpdateEarPhoneConnectStatus, &OHOS::SettingModel::GetInstance(), false)); -} + // 处理耳机断开连接 + void HandleEarphoneDisconnected(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleEarphoneConnected"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::SettingModel::UpdateEarPhoneConnectStatus, &OHOS::SettingModel::GetInstance(), false)); + } -//处理蓝牙连接成功 -void HandleBluetoothConnected(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleBluetoothConnected"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::SettingModel::UpdateBlueToothConnectStatus, &OHOS::SettingModel::GetInstance(), true)); -} + // 处理蓝牙连接成功 + void HandleBluetoothConnected(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleBluetoothConnected"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::SettingModel::UpdateBlueToothConnectStatus, &OHOS::SettingModel::GetInstance(), true)); + } -//处理蓝牙断开连接 -void HandleBluetoothDisconnected(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleBluetoothDisconnected"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::SettingModel::UpdateBlueToothConnectStatus, &OHOS::SettingModel::GetInstance(), false)); -} + // 处理蓝牙断开连接 + void HandleBluetoothDisconnected(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleBluetoothDisconnected"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::SettingModel::UpdateBlueToothConnectStatus, &OHOS::SettingModel::GetInstance(), false)); + } -// void HandleScreenTurnOn(Request *request) -// { -// WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleScreenTurnOn"); -// ScreenTurnOn(request); -// } - -// void HandleScreenTurnOff(Request *request) -// { -// WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleScreenTurnOff"); -// ScreenTurnOff(request); -// } - -// void HandleScreenOffEnable(Request *request) -// { -// WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleScreenOffEnable"); -// ScreenOffEnable(request); -// } - -void HandleAddSleepVeto(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleAddSleepVeto"); - uapi_pm_add_sleep_veto(PM_ID_SCREEN); -} + // void HandleScreenTurnOn(Request *request) + // { + // WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleScreenTurnOn"); + // ScreenTurnOn(request); + // } + + // void HandleScreenTurnOff(Request *request) + // { + // WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleScreenTurnOff"); + // ScreenTurnOff(request); + // } + + // void HandleScreenOffEnable(Request *request) + // { + // WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleScreenOffEnable"); + // ScreenOffEnable(request); + // } + + void HandleAddSleepVeto(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleAddSleepVeto"); + uapi_pm_add_sleep_veto(PM_ID_SCREEN); + } -void HandleRemoveSleepVeto(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleRemoveSleepVeto"); - uapi_pm_remove_sleep_veto(PM_ID_SCREEN); -} + void HandleRemoveSleepVeto(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleRemoveSleepVeto"); + uapi_pm_remove_sleep_veto(PM_ID_SCREEN); + } -//处理更新选择的亮屏时长标签内容 -void HandleUpdateScreenDuration(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateScreenDuration"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::DisplayBrightnessModel::UpdateSelectScreenDurationLabel, OHOS::DisplayBrightnessModel::GetInstance())); -} + // 处理更新选择的亮屏时长标签内容 + void HandleUpdateScreenDuration(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateScreenDuration"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::DisplayBrightnessModel::UpdateSelectScreenDurationLabel, OHOS::DisplayBrightnessModel::GetInstance())); + } -//处理更新抬腕亮屏按钮状态 -void HandleUpdateRaiseToBrightness(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateRaiseToBrightness"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::DisplayBrightnessModel::UpdateRaiseToBrightnessCheckBoxButtonStatus, OHOS::DisplayBrightnessModel::GetInstance())); -} + // 处理更新抬腕亮屏按钮状态 + void HandleUpdateRaiseToBrightness(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateRaiseToBrightness"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::DisplayBrightnessModel::UpdateRaiseToBrightnessCheckBoxButtonStatus, OHOS::DisplayBrightnessModel::GetInstance())); + } -//处理更新亮度条的亮度值值 -void HandleUpdateBrightnessValue(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateBrightnessValue"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::DisplayBrightnessModel::UpdateBrightnessValueOfSlider, OHOS::DisplayBrightnessModel::GetInstance())); -} + // 处理更新亮度条的亮度值值 + void HandleUpdateBrightnessValue(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateBrightnessValue"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::DisplayBrightnessModel::UpdateBrightnessValueOfSlider, OHOS::DisplayBrightnessModel::GetInstance())); + } -//处理更新天气数据 -static void HandleUpdateWeatherData(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateWeatherData"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::WeatherModel::UpdateMainWeatherData, &OHOS::WeatherModel::GetInstance())); -} + // 处理更新天气数据 + static void HandleUpdateWeatherData(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateWeatherData"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::WeatherModel::UpdateMainWeatherData, &OHOS::WeatherModel::GetInstance())); + } -//处理更新系统音量 -void HandleUpdateSystemVolume(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateSystemVolume"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::SoundAndVibrationModel::UpdateSystemVolume, OHOS::SoundAndVibrationModel::GetInstance())); -} + // 处理更新系统音量 + void HandleUpdateSystemVolume(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateSystemVolume"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::SoundAndVibrationModel::UpdateSystemVolume, OHOS::SoundAndVibrationModel::GetInstance())); + } -//处理更新通话音量 -void HandleUpdateCallVolume(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateCallVolume"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::SoundAndVibrationModel::UpdateCallVolume, OHOS::SoundAndVibrationModel::GetInstance())); -} + // 处理更新通话音量 + void HandleUpdateCallVolume(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateCallVolume"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::SoundAndVibrationModel::UpdateCallVolume, OHOS::SoundAndVibrationModel::GetInstance())); + } -//处理更新震动模式 -void HandleUpdateVibrationMode(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateVibrationMode"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::SoundAndVibrationModel::UpdateVibrationModePickerSelectIndex, OHOS::SoundAndVibrationModel::GetInstance())); -} + // 处理更新震动模式 + void HandleUpdateVibrationMode(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateVibrationMode"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::SoundAndVibrationModel::UpdateVibrationModePickerSelectIndex, OHOS::SoundAndVibrationModel::GetInstance())); + } -//处理更新静音模式 -void HandleUpdateSilentMode(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateSilentMode"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::SoundAndVibrationModel::UpdateSilentModeSwitch, OHOS::SoundAndVibrationModel::GetInstance())); -} + // 处理更新静音模式 + void HandleUpdateSilentMode(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateSilentMode"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::SoundAndVibrationModel::UpdateSilentModeSwitch, OHOS::SoundAndVibrationModel::GetInstance())); + } -//处理更新勿扰模式 -void HandleUpdateDontDisturbMode(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateDontDisturbMode"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::DnotDisturbModel::UpdateDoNotDisturbMode, &OHOS::DnotDisturbModel::GetInstance())); -} + // 处理更新勿扰模式 + void HandleUpdateDontDisturbMode(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateDontDisturbMode"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::DnotDisturbModel::UpdateDoNotDisturbMode, &OHOS::DnotDisturbModel::GetInstance())); + } -//处理更新音乐列表 -void HandleUpdateMusicPlayerList(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateMusicPlayerList"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::PlayersModel::UpdateMusicPlayerList, OHOS::PlayersModel::GetInstance())); -} + // 处理更新音乐列表 + void HandleUpdateMusicPlayerList(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateMusicPlayerList"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::PlayersModel::UpdateMusicPlayerList, OHOS::PlayersModel::GetInstance())); + } -//处理Ai回应的用户数据 -void HandleAiJumpToResultView(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleAiJumpToResultView"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::AiVoiceModel::ChangeToReturnResultTextView, &OHOS::AiVoiceModel::GetInstance())); -} + // 处理Ai回应的用户数据 + void HandleAiJumpToResultView(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleAiJumpToResultView"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::AiVoiceModel::ChangeToReturnResultTextView, &OHOS::AiVoiceModel::GetInstance())); + } -//处理更新用户问题字符串 -void HandleUpdateUserQuestionStr(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateUserQuestionStr"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::AiVoiceModel::UpdateUserQuestionStr, &OHOS::AiVoiceModel::GetInstance())); -} + // 处理更新用户问题字符串 + void HandleUpdateUserQuestionStr(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateUserQuestionStr"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::AiVoiceModel::UpdateUserQuestionStr, &OHOS::AiVoiceModel::GetInstance())); + } -//处理更新AI答案字符串 -void HandleUpdateAIAnswerStr(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateAIAnswerStr"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::AiVoiceModel::UpdateAiAnswerStr, &OHOS::AiVoiceModel::GetInstance())); -} + // 处理更新AI答案字符串 + void HandleUpdateAIAnswerStr(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateAIAnswerStr"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::AiVoiceModel::UpdateAiAnswerStr, &OHOS::AiVoiceModel::GetInstance())); + } -//处理手表第一次启动用来跳转主界面的 -void HandleWatchFirstPaired(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleWatchFirstPaired"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::RebootAndShutdownModel::HandFirstTimeStartJumpToMainView, &OHOS::RebootAndShutdownModel::GetInstance())); -} + // 处理手表第一次启动用来跳转主界面的 + void HandleWatchFirstPaired(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleWatchFirstPaired"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::RebootAndShutdownModel::HandFirstTimeStartJumpToMainView, &OHOS::RebootAndShutdownModel::GetInstance())); + } -//处理更新OBU Message -void HandleUpdateOBUMessage(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateOBUMessage"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::OBUMessageModel::UpdateOBUMessageViewData, &OHOS::OBUMessageModel::GetInstance())); -} + // 处理更新OBU Message + void HandleUpdateOBUMessage(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateOBUMessage"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::OBUMessageModel::UpdateOBUMessageViewData, &OHOS::OBUMessageModel::GetInstance())); + } -//处理更新查询AI模型是否连接成功的状态 -void HandleAiJumpToListeningMessage(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleAiJumpToListeningMessage"); - bool state = *((bool*)request->data); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::AiVoiceModel::ChangeToAIVoiceListeningView, &OHOS::AiVoiceModel::GetInstance(),state)); -} + // 处理更新查询AI模型是否连接成功的状态 + void HandleAiJumpToListeningMessage(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleAiJumpToListeningMessage"); + bool state = *((bool *)request->data); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::AiVoiceModel::ChangeToAIVoiceListeningView, &OHOS::AiVoiceModel::GetInstance(), state)); + } -//更新睡眠数据 -void HandleUpdateSleep(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateSleep"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::SleepModel::UpdateSleepView, &OHOS::SleepModel::GetInstance())); -} -//更新消息数据 -void HandleUpdateMessage(Request *request) -{ - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateMessage"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::MessageModel::UpdateMessageView, &OHOS::MessageModel::GetInstance())); -} + // 更新睡眠数据 + void HandleUpdateSleep(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateSleep"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::SleepModel::UpdateSleepView, &OHOS::SleepModel::GetInstance())); + } + // 更新消息数据 + void HandleUpdateMessage(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateMessage"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::MessageModel::UpdateMessageView, &OHOS::MessageModel::GetInstance())); + } + void HandleUpdateHeartRate(Request *request) + { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateMessage"); + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::HeartModel::Heart_Update_View, OHOS::HeartModel::GetInstance())); + } /* -------------------------------------------------------------------------- */ #ifdef __cplusplus } diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.c b/code/sdk/drivers/peripheral/utils/custom_utils.c index fddc5699a..51d90d308 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.c +++ b/code/sdk/drivers/peripheral/utils/custom_utils.c @@ -190,7 +190,9 @@ void shutdown_reboot_prejobs_task(void) //保存信息文件 saveancsdata(); - + //保存当天心率数据 + save_heart_data(); + dial_file_save(); //同步所有需要保存实时数据到config文件 uapi_dev_runtime_sync_runtime_env_to_config();