// 运动状态
enum class ExerciseState
{
- General = 0,
- Start,
+ Start = 0,
End,
Pause,
- Continue
+ Continue,
+ General,
};
// 运动项目
enum class ExerciseClass
#include "broadcast_feature.h"
#include "broadcast_service.h"
+#include "bletest.h"
#include "samgr_lite.h"
#include <mutex>
#include <memory>
#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);
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);
{
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
}
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingModel::~TraingModel()");
TraingUnsubscribeTopic(TOPIC_EVENT_ACTIVITY_UPDATE); // 取消订阅
+ TraingUnsubscribeTopic(TOPIC_EVENT_BLE_TRAINING);
}
TraingModel *TraingModel::GetInstance(void)
{
void TraingModel ::Init()
{
TraingSubscribeTopic(TOPIC_EVENT_ACTIVITY_UPDATE); // 进行消息订阅
+ TraingSubscribeTopic(TOPIC_EVENT_BLE_TRAINING);
}
/***
* @description: 初始化标签
#include "cywee_service.h"\r
#include "cywee_hal.h"\r
#include "traing/include/TraingModel.h"\r
+#include "bletest.h"\r
\r
namespace OHOS\r
{\r
\r
void ModifiesTime();\r
void RefreshData(); // 更新数据\r
- bool send_sport_cmd(uint32 cmd);\r
+ bool send_sport_cmd(training_ble *cmd);\r
\r
private:\r
// 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
return true;\r
}\r
\r
-#if 0\r
- bool TraingCardPresenter::send_sport_cmd(uint32 cmd)\r
+ bool TraingCardPresenter::send_sport_cmd(training_ble *cmd)\r
{\r
- if (cmd > MAXSPORTID || cmd < 0)\r
+ if (cmd == nullptr || cmd->sportType > MAXSPORTID || cmd->sportType < 0)\r
{\r
- WEARABLE_LOGE("send_sport_cmd", "Invalid cmd value: %d", cmd);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Invalid sport command");\r
return false;\r
}\r
- uapi_set_screen_on_api(); // 亮屏检测\r
- NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGCRAD);\r
- ExerciseClass exerciseType = static_cast<ExerciseClass>(cmd);\r
- OHOS::TraingCardPresenter::GetInstance()->OpenSensor(exerciseType);\r
+\r
+ uapi_set_screen_on_api(); // 亮屏检测\r
+ NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGCRAD); // 切换Slice\r
+\r
+ OpenSensor(static_cast<ExerciseClass>(cmd->sportType));\r
+ ControlSensor(static_cast<ExerciseState>(cmd->controlmd));\r
+\r
return true;\r
}\r
-#endif\r
+\r
}\r
+/***
+ * @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
*
#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
}