From 4866e7146fba352c8c3d5ee3bdc8b718beb6f154 Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Fri, 19 Apr 2024 09:29:16 +0800 Subject: [PATCH] =?utf8?q?=E5=A2=9E=E5=8A=A0=E8=AE=AD=E7=BB=83=E6=8E=A7?= =?utf8?q?=E5=88=B6=E8=93=9D=E7=89=99=E5=8D=8F=E8=AE=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/traing/include/TraingModel.h | 6 +- .../nativeui/traing/src/TraingModel.cpp | 36 +++++++-- .../include/TraingCardPresenter.h | 3 +- .../training_card/src/TraingCardPresenter.cpp | 20 ++--- .../service/ble_service/blemoder/bletest.h | 73 +++++++++++-------- 5 files changed, 90 insertions(+), 48 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h index 7ffebf036..1b36688d4 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h @@ -111,11 +111,11 @@ namespace OHOS // 运动状态 enum class ExerciseState { - General = 0, - Start, + Start = 0, End, Pause, - Continue + Continue, + General, }; // 运动项目 enum class ExerciseClass 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 ac1c45373..e5b712d02 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp @@ -21,12 +21,13 @@ #include "broadcast_feature.h" #include "broadcast_service.h" +#include "bletest.h" #include "samgr_lite.h" #include #include #define TIMER 1 -#define CHECK 0 +#define BLETEST 0 #define HARD_OFF 1 #define TRAINING_PATH "user/userdata/sportdata/" extern "C" errcode_t uapi_get_timestampe_ms(uint64_t *tm); @@ -84,6 +85,7 @@ extern "C" broadcastApi->UnsubscribeTopic((IUnknown *)broadcastApi, topic, &TraingSubscirber); broadcastApi->Release((IUnknown *)broadcastApi); } + int flag = 0; static void Notify(void *args, const Topic topic, Request *request) { UNUSED(args); @@ -92,22 +94,44 @@ extern "C" { return; } - cywee_activity_result_t *cyweeInfo = nullptr; // 在switch语句外部定义变量 PRINT("request %d\r\n", request->msgId); if (request->msgId == TOPIC_EVENT_ACTIVITY_UPDATE) { - cyweeInfo = new cywee_activity_result_t(); // 在case块内分配内存 +#if BLETEST + if (!flag) + { + training_ble *traingbleInfo = new training_ble(); + traingbleInfo->sportType = 1; + traingbleInfo->controlmd = 0; + TraingCardPresenter::GetInstance()->send_sport_cmd(traingbleInfo); + delete traingbleInfo; + flag = 1; + } +#endif + cywee_activity_result_t *cyweeInfo = new cywee_activity_result_t(); int rets = memcpy_s(cyweeInfo, sizeof(cywee_activity_result_t), (cywee_activity_result_t *)request->data, request->len); if (rets != EOK) { delete cyweeInfo; // 处理内存分配失败的情况 cyweeInfo = NULL; - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "memcpy_s cywee_activity_result_t fail! ret = %d", rets); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "memcpy_s cywee_activity_result_t fail ret = %d", rets); return; } TraingModel::GetInstance()->AnalysisData(cyweeInfo); + delete cyweeInfo; // 释放内存 + } + if (request->msgId == TOPIC_EVENT_BLE_TRAINING) + { + training_ble *traingbleInfo = new training_ble(); + int rets = memcpy_s(traingbleInfo, sizeof(training_ble), (training_ble *)request->data, request->len); + if (rets != EOK) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "memcpy_s cywee_activity_result_t fail ret = %d", rets); + return; + } + TraingCardPresenter::GetInstance()->send_sport_cmd(traingbleInfo); + delete traingbleInfo; } - delete cyweeInfo; // 释放内存 } #ifdef __cplusplus } @@ -137,6 +161,7 @@ namespace OHOS { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingModel::~TraingModel()"); TraingUnsubscribeTopic(TOPIC_EVENT_ACTIVITY_UPDATE); // 取消订阅 + TraingUnsubscribeTopic(TOPIC_EVENT_BLE_TRAINING); } TraingModel *TraingModel::GetInstance(void) { @@ -147,6 +172,7 @@ namespace OHOS void TraingModel ::Init() { TraingSubscribeTopic(TOPIC_EVENT_ACTIVITY_UPDATE); // 进行消息订阅 + TraingSubscribeTopic(TOPIC_EVENT_BLE_TRAINING); } /*** * @description: 初始化标签 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TraingCardPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TraingCardPresenter.h index 7b68636fe..9fa8b5f1f 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TraingCardPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TraingCardPresenter.h @@ -20,6 +20,7 @@ #include "cywee_service.h" #include "cywee_hal.h" #include "traing/include/TraingModel.h" +#include "bletest.h" namespace OHOS { @@ -49,7 +50,7 @@ namespace OHOS void ModifiesTime(); void RefreshData(); // 更新数据 - bool send_sport_cmd(uint32 cmd); + bool send_sport_cmd(training_ble *cmd); private: // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承; 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 131f04b4f..577fe3aab 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 @@ -260,19 +260,21 @@ namespace OHOS return true; } -#if 0 - bool TraingCardPresenter::send_sport_cmd(uint32 cmd) + bool TraingCardPresenter::send_sport_cmd(training_ble *cmd) { - if (cmd > MAXSPORTID || cmd < 0) + if (cmd == nullptr || cmd->sportType > MAXSPORTID || cmd->sportType < 0) { - WEARABLE_LOGE("send_sport_cmd", "Invalid cmd value: %d", cmd); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Invalid sport command"); return false; } - uapi_set_screen_on_api(); // 亮屏检测 - NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGCRAD); - ExerciseClass exerciseType = static_cast(cmd); - OHOS::TraingCardPresenter::GetInstance()->OpenSensor(exerciseType); + + uapi_set_screen_on_api(); // 亮屏检测 + NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGCRAD); // 切换Slice + + OpenSensor(static_cast(cmd->sportType)); + ControlSensor(static_cast(cmd->controlmd)); + return true; } -#endif + } diff --git a/code/sdk/application/wearable/service/ble_service/blemoder/bletest.h b/code/sdk/application/wearable/service/ble_service/blemoder/bletest.h index 26067d983..c3068366a 100644 --- a/code/sdk/application/wearable/service/ble_service/blemoder/bletest.h +++ b/code/sdk/application/wearable/service/ble_service/blemoder/bletest.h @@ -1,3 +1,9 @@ +/*** + * @Date: 2024-04-18 17:25:04 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-04-18 17:44:00 + * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/service/ble_service/blemoder/bletest.h + */ /** * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. \n * @@ -12,41 +18,48 @@ #ifdef __cplusplus #if __cplusplus -extern "C" { +extern "C" +{ #endif /* __cplusplus */ #endif /* __cplusplus */ #include "stdint.h" #include "errcode.h" -enum PAIRING -{ - DEVICEBIND = 0,// - DEVICEUNBIND,//设备解绑通知 - DeviceUnBindingRequest,//设备解绑请求(与新设备连接)通知 - REBOOT, - SHUTDOWN -}; - -enum TRANING -{ - START=0, - STOP, - RECOVER, - END -}; - -void set_weather_now_data(int humidity, char* windScale, char* textNight,int uvIndex,int temp,int iconNight); - -void set_weather_address_data(int lat, char* atm, char* city,char* subLocality,int lon); -void set_weather_one_data(int tempMin, int iconDay,int fxDate, int tempMax, char *textDay,int x); - -uint8_t ble_is_ready(void); -void set_ble_falg(uint8_t falg); -uint8_t ble_is_connect_ready(void); -char *addressbook(void); -void addressbookToRead(void); -const char *get_health_data_path(void); -void add_addressbookToRead(char *data); + enum PAIRING + { + DEVICEBIND = 0, // + DEVICEUNBIND, // 设备解绑通知 + DeviceUnBindingRequest, // 设备解绑请求(与新设备连接)通知 + REBOOT, + SHUTDOWN + }; + + enum TRANING + { + START = 0, + STOP, + RECOVER, + END + }; + + typedef struct + { + int sportType; + int controlmd; + } training_ble; + + void set_weather_now_data(int humidity, char *windScale, char *textNight, int uvIndex, int temp, int iconNight); + + void set_weather_address_data(int lat, char *atm, char *city, char *subLocality, int lon); + void set_weather_one_data(int tempMin, int iconDay, int fxDate, int tempMax, char *textDay, int x); + + uint8_t ble_is_ready(void); + void set_ble_falg(uint8_t falg); + uint8_t ble_is_connect_ready(void); + char *addressbook(void); + void addressbookToRead(void); + const char *get_health_data_path(void); + void add_addressbookToRead(char *data); #ifdef __cplusplus #if __cplusplus } -- 2.17.1