训练实时数据发送 77/1
authorCaisking <3449750381@qq.com>
Wed, 24 Apr 2024 08:15:24 +0000 (16:15 +0800)
committerCaisking <3449750381@qq.com>
Wed, 24 Apr 2024 08:15:24 +0000 (16:15 +0800)
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h

index ae192ab..dcb2d9c 100644 (file)
@@ -287,6 +287,8 @@ namespace OHOS
         bool GetSportOpenState();
         /*获取训练量是否达标*/
         bool GetMomentum();
+        /*发送实时数据*/
+        void SendLiveData();
 
         std::string GetStartTiemStr();
         std::string GetEndTiemStr();
@@ -307,6 +309,8 @@ namespace OHOS
         int sportTag_ = 0; // 训练目标
         int totalHeartRate = 0;
         int countHeartRate = 0;
+        int freq = 0; // 训练频率
+
         bool Gettagstuats{false}; // 训练达标标志位
         bool Startstate{false};   // 开始训练标志位
         bool Endstate{false};     // 结束训练标志位
index 12ecdda..7d1f01a 100644 (file)
@@ -27,6 +27,7 @@
 #include "vibrator_service.h"
 #include <mutex>
 #include <memory>
+#include "bleEvent.h"
 
 #define TIMER 1
 #define BLETEST 0
@@ -167,6 +168,7 @@ namespace OHOS
     TraingModel ::TraingModel()
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingModel::TraingModel()");
+        freq = ConfigModel::GetInstance()->get_configData_int(ConfigModel::CONFIGMODEL_ITEM_TRANING_FREQ);
         // sportdata->Initialize(); // 初始化结构体
     }
     TraingModel ::~TraingModel()
@@ -621,8 +623,8 @@ namespace OHOS
             // PRINT("end_time [%s]\r\n", end_time);
             sportdata->end_time = std::string(end_time);
             Openstate = false; // 关闭运动标志位
-            
-            free(end_time);    // 释放内存
+
+            free(end_time); // 释放内存
             PRINT("sportdata->end_time [%s]\r\n", (sportdata->end_time).c_str());
 
             /*存储正常数据[运动量达标]*/
@@ -811,12 +813,12 @@ namespace OHOS
         data.src = Openingway;
         data.bt = static_cast<uint32_t>(sportdata->sportType);
         data.ty = static_cast<uint32_t>(sportdata->sportId);
-        data.st = static_cast<uint32_t>((sportdata->starttime) * 1000);
-        data.sp = static_cast<uint32_t>((sportdata->endtime) * 1000);
+        data.st = static_cast<uint32_t>((sportdata->starttime) / 1000);
+        data.sp = static_cast<uint32_t>((sportdata->endtime) / 1000);
         data.tgt = static_cast<uint32_t>(sportdata->sportTagType);
         data.tg = static_cast<uint32_t>(sportdata->tag);
         data.pg = static_cast<uint32_t>(sportdata->goaldegree);
-        data.du = static_cast<uint32_t>((sportdata->duration) * 60);
+        data.du = static_cast<uint32_t>((sportdata->duration) / 60);
         data.ca = static_cast<uint32_t>(sportdata->calories);
         data.di = static_cast<uint32_t>(sportdata->distance);
         data.hr = static_cast<uint32_t>(sportdata->avgheart);
@@ -867,6 +869,19 @@ namespace OHOS
         }
         return MomentumFlag;
     }
+    /*发送实时数据*/
+    void TraingModel::SendLiveData()
+    {
+        msg_get_train_data_info_t data;
+        data.st = sportdata->starttime / 1000;
+        data.hr = sportdata->heart;
+        data.ca = sportdata->calories;
+        data.stp = sportdata->steps;
+        data.ti = sportdata->intensity;
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SendLiveData Begin!");
+        sendtraningdata(&data); // 发送数据函数
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SendLiveData Stop!");
+    }
 /* -------------------------------------------------------------------------- */
 #if TIMER
     /* 时间显示 */
@@ -881,6 +896,10 @@ namespace OHOS
         if (g_motionTimes != 0)
         {
             sportdata->duration = g_motionTimes; // 训练时长
+            if (sportdata->duration % freq == 0)
+            {
+                SendLiveData(); // 发送实时数据
+            }
             PRINT("duration:[%d] g_motionTimes[%d]\r\n", sportdata->duration, g_motionTimes);
         }
 
index 7bbb627..d28b2d4 100644 (file)
@@ -610,7 +610,7 @@ void senfindphoneSend(uint8_t flag);
 void readDevDataBle(uint8_t *crcnum,uint16_t len,uint8_t crcvalue);
 void free_ble_data(void);
 
-void sendtraningdata(msg_get_train_data_info_t *data);
+void sendtraningdata(msg_get_train_data_info_t *data);//发送实时数据
 #ifdef __cplusplus
 }
 #endif