/*
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-28 14:17:43
- * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-24 18:16:48
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/MotionRecognitionPresenter.cpp
+ * @LastEditors: penglei 1624952103@qq.com
+ * @LastEditTime: 2024-07-26 10:02:53
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/motionrecognition/src/MotionRecognitionPresenter.cpp
*/
#include "AppViewIDs.h"
#include "NativeAbility.h"
#include <custom_utils.h>
#include "ConfigModel.h"
#include <UiConfig.h>
+#include "cywee_service.h"
namespace OHOS
{
{
case UICheckBox::SELECTED:
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MotionRecognition is enable!");
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_OPEN_AR_ALERT,NULL);
ConfigModel::GetInstance()->SetMotionRecognition(true);
break;
case UICheckBox::UNSELECTED:
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MotionRecognition is disable!");
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_CLOSE_AR_ALERT,NULL);
ConfigModel::GetInstance()->SetMotionRecognition(false);
break;
default:
static int32_t sum_hrs = 0;\r
static int32_t hrs_data[7] = {0};\r
static uint8_t left = 0;\r
-static uint8_t right = 0;\r
-static int32_t min_hrs = 0;\r
-static int32_t max_hrs = 0;\r
+static uint8_t right = -1;\r
\r
static void get_avg_hrs(int32_t hrs)\r
{\r
+ int32_t min_hrs = 0;\r
+ int32_t max_hrs = 0;\r
+ int32_t avg_hrs = 0;\r
if(hrs_num == 7)\r
{\r
sum_hrs -= hrs_data[left];\r
left = left % 7;\r
hrs_num--;\r
}\r
- if(hrs_num == 0)\r
- {\r
- min_hrs = hrs;\r
- max_hrs = hrs;\r
- }\r
- else\r
- {\r
- if (min_hrs > hrs)\r
- min_hrs = hrs;\r
- if (max_hrs < hrs)\r
- max_hrs = hrs;\r
- }\r
+\r
hrs_num++;\r
right++;\r
right = right % 7;\r
+\r
hrs_data[right] = hrs;\r
sum_hrs += hrs_data[right]; \r
- if(hrs_num > 0)\r
+\r
+ if(hrs_num > 2)\r
{\r
- if(hrs_num > 2)\r
- hrs = (sum_hrs - max_hrs - min_hrs) / (hrs_num - 2);\r
- else\r
- hrs = sum_hrs / hrs_num;\r
+ min_hrs = hrs_data[0];\r
+ max_hrs = hrs_data[0];\r
+ for (int i = 0;i < hrs_num; i++)\r
+ {\r
+ if (hrs_data[i] < min_hrs)\r
+ min_hrs = hrs_data[i];\r
+ if (hrs_data[i] > max_hrs)\r
+ max_hrs = hrs_data[i];\r
+ }\r
+ avg_hrs = (sum_hrs - max_hrs - min_hrs) / (hrs_num - 2);\r
+ }\r
+\r
+ hx3695_msg_callback_t func = hx3695_get_send_msg_callback_func();\r
+ if(func != NULL)\r
+ {\r
+ hrsresult.lastesthrs = avg_hrs;\r
+ func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
+ func(HX3695_MSG_TYPE_HRS_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
+ if(uapi_get_cywee_static_state())\r
+ {\r
+ func(HX3695_MSG_TYPE_STATIC_HRS_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
+ }\r
+ }\r
+ \r
+ if(hrs_mode_state)\r
+ {\r
+ cywee_data[0] = hrsresult.lastesthrs;\r
+ cywee_data[1] = hrsresult.wearstatus;\r
+\r
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_HRS_WEARSTATUS_CHANGE,cywee_data);\r
}\r
- PRINT("sum_hrs[%d], max_hrs[%d], min_hrs[%d], avg_hrs[%d] \n",sum_hrs,max_hrs,min_hrs,hrs); \r
}\r
\r
\r
hrsresult.hr_living = alg_results.living_status;\r
hrsresult.hr_living_qu = alg_results.hr_result_qual;\r
hrsresult.hr_living_std = alg_results.hr_result_std;\r
+ hrsresult.wearstatus = hrs_wear_status;\r
if(hrsresult.lastesthrs > 50)\r
- get_avg_hrs((hrsresult.lastesthrs));\r
+ get_avg_hrs(hrsresult.lastesthrs);\r
//PRINT("hx3695 data_cnt: %d, hr_living: %d, hr_living_qu: %d, hr_living_std: %d, hr_result:%d \r\n",\r
//alg_results.data_cnt, hrsresult.hr_living, hrsresult.hr_living_qu, hrsresult.hr_living_std, hrsresult.lastesthrs);\r
\r
- if(hrs_mode_state)\r
- {\r
- cywee_data[0] = hrsresult.lastesthrs;\r
- cywee_data[1] = hrs_wear_status;\r
-\r
- do_cywee_service_check_msg(CYWEE_SERVICE_CMD_HRS_WEARSTATUS_CHANGE,cywee_data);\r
- }\r
-\r
if(hrs_wear_status == MSG_HRS_WEAR && hrsresult.hr_living == MSG_LIVING_TRUE)\r
{\r
// app_hr_reset_stop_timer();\r
}\r
ble_rawdata_send_handler();\r
#endif\r
- hx3695_msg_callback_t func = hx3695_get_send_msg_callback_func();\r
- if(func != NULL)\r
- {\r
- hrsresult.wearstatus = hrs_wear_status;\r
- func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
- func(HX3695_MSG_TYPE_HRS_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
- if(uapi_get_cywee_static_state())\r
- {\r
- func(HX3695_MSG_TYPE_STATIC_HRS_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
- }\r
- }\r
+\r
\r
#if HANKCREAT_APK\r
{\r