Merge #1140 into sdk602patch0626 from refs/changes/1140/head 1149/target/1
author彭磊 <1624952103@qq.com>
Thu, 10 Oct 2024 14:01:23 +0000 (14:01 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Thu, 10 Oct 2024 14:01:23 +0000 (14:01 +0000)
Code review from 彭磊

* refs/changes/1140/head: (26 commits squashed)

  - 修改小睡数据合并成一个文件

  - 修改小睡数据存入一个文件(默认关闭 待协议调通)

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - debug界面添加睡眠数据以及睡眠状态runtime,更新cywee算法库修复配速BUG,优化睡眠模式alarm逻辑

  - 修改gsensor FIFO笔数为15笔 并同步运动心率修改

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - 回退alarm 睡眠闹钟修改

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - 修改心率数据消息为1秒1次,优化省电模式蓝牙开关逻辑

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - 修改ble连接参数,降低ble连接功耗

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - br连接以后关闭brscan 降低功耗

  - 添加退出省电模式自动回连

  - 优化心率检测未佩戴消息上报逻辑并加快上报速度

Signed-off-by: aliyun6865282430 <1624952103@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1140
code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp
code/sdk/application/wearable/fd230app/nativeui/heartrate/include/HeartModel.h
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartModel.cpp
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/application/wearable/service/ble_service/bleservice/bleService.c
code/sdk/application/wearable/service/ble_service/bleservice/bleService.h
code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp
code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c
code/sdk/drivers/peripheral/ppg/hx3695/hx3695.h
code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hrs_agc.c
code/sdk/drivers/peripheral/utils/custom_utils.c

index 1a5f743..e2aa65e 100644 (file)
@@ -786,28 +786,31 @@ void BtGapPairStatusChangedCallback(const bd_addr_t *bdAddr, int status)
 {\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BtGapPairStatusChangedCallback addr: ****%02x%02x%02x%02x status: %d\n",\r
         bdAddr->addr[3], bdAddr->addr[2], bdAddr->addr[1], bdAddr->addr[0], status); /* addr下标 0 1 2 3 */\r
-    memcpy(&BtGapPair_bdAddr,bdAddr,sizeof(bd_addr_t));\r
-    // if(status == GAP_PAIR_PAIRED)\r
-    // { \r
-   \r
-        \r
-    // }\r
-    // uapi_a2dp_snk_connect();\r
-    // a2dp_snk_connect(bdAddr);\r
-    if(cm_custom_ble_service_on_flag() && !get_ble_pair()&& (status == GAP_PAIR_PAIRED))\r
+\r
+    if ((gap_get_device_class(bdAddr) & 0x200) != 0) \r
     {\r
-        send_pair_succ((bd_addr_t*)bdAddr);\r
-    //     if(cm_get_A2DP_switch() || cm_get_HFP_switch())\r
-    //     uapi_a2dp_snk_connect();\r
-        hand_watch_first_time_Paired();\r
-        svr_ble_adv_stop();\r
-        //uapi_reconnect();\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uapi_a2dp_snk_connect");\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BtGapPairStatusChangedCallback: Mobile Phone Device");\r
+        if(status==GAP_PAIR_PAIRED)\r
+        memcpy(&BtGapPair_bdAddr,bdAddr,sizeof(bd_addr_t));\r
+\r
+        if(cm_custom_ble_service_on_flag() && !get_ble_pair()&& (status == GAP_PAIR_PAIRED))\r
+        {\r
+            send_pair_succ((bd_addr_t*)bdAddr);\r
+            hand_watch_first_time_Paired();\r
+            svr_ble_adv_stop();\r
+            //uapi_reconnect();\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uapi_a2dp_snk_connect");\r
+        }\r
+        if(status == GAP_PAIR_PAIRED)\r
+        {\r
+            set_br_pair();\r
+        }\r
     }\r
+\r
    \r
 \r
     if (status == GAP_PAIR_PAIRED) {\r
-        set_br_pair();\r
+        \r
         if (ConnectPhonePresenter::GetInstance() != nullptr) {\r
             NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
         }\r
@@ -1054,6 +1057,13 @@ static uint8_t ALC_connect_hfp_flag=0;
 \r
 static uint8_t ALC_connect_A2DP_flag=0;\r
 \r
+static  bd_addr_t  ACL_bdAdd;\r
+\r
+void uapi_set_ACL_br_address(const bd_addr_t * bdAddr)\r
+{\r
+    memcpy(&ACL_bdAdd,bdAddr,sizeof(bd_addr_t));\r
+}\r
+\r
 // 回调:ACL连接状态上报\r
 void GapAclStateChangedCallback(const bd_addr_t *bdAddr, gap_acl_state_t state, unsigned int reason)\r
 {\r
@@ -1067,32 +1077,28 @@ void GapAclStateChangedCallback(const bd_addr_t *bdAddr, gap_acl_state_t state,
         gap_disconnect_remote_device(bdAddr);\r
     }\r
 \r
-    //ALC_State_flag=state;\r
-\r
-    // if(ALC_connect_hfp_flag && state==GAP_ACL_STATE_CONNECTED)\r
-    // {\r
-    //     int ret= hfp_hf_connect(bdAddr);\r
-    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt hfp_hf_connect ret %X", ret);\r
-    //     ALC_connect_hfp_flag=0;\r
-    // }\r
-\r
-    // if(ALC_connect_A2DP_flag && state==1)\r
-    // {\r
-    //     // int ret= hfp_hf_connect(bdAddr);\r
-    //     // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt hfp_hf_connect ret %X", ret);\r
-    //     uapi_a2dp_snk_connect();\r
-    //     ALC_connect_A2DP_flag=0;\r
-    // }\r
-\r
     if ((gap_get_device_class(bdAddr) & 0x200) != 0) {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GapAclStateChangedCallback: Mobile Phone Device");\r
         if (state == GAP_ACL_STATE_DISCONNECTED) {\r
             /* 通知msg_center,ble状态仍用bt状态,此处不区分 */\r
             SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
             SendMsgToUIService(BT_DISCONNECTED_TO_UI, 0, nullptr, 0);\r
+\r
+            \r
+\r
+            gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE, 0);\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_SCAN_MODE_CONNECTABLE");\r
+\r
         } else if (state == GAP_ACL_STATE_CONNECTED) {\r
             SendMsgToMsgCenterService(BT_CONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
             SendMsgToUIService(BT_CONNECTED_TO_UI, 0, nullptr, 0);\r
+\r
+            uapi_set_ACL_br_address(bdAddr);\r
+\r
+            gap_br_set_bt_scan_mode(GAP_SCAN_MODE_NONE, 0);\r
+\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_SCAN_MODE_NONE");\r
+\r
         }\r
         return;\r
     }\r
@@ -1439,6 +1445,8 @@ static void BtA2dpSnkConnectStateChangedCb(bd_addr_t *bd_addr, int conn_state)
             SendMsgToUIService(BT_DISCONNECTED_TO_UI, 0, nullptr, 0);\r
             SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
         }\r
+\r
+\r
     }\r
     else if (conn_state==PROFILE_STATE_CONNECTING || conn_state==PROFILE_STATE_CONNECTED)\r
     {\r
@@ -1563,6 +1571,16 @@ static void sample_gap_scan_mode_changed_callback(int mode)
 {\r
     printf("gap_scan_mode_changed_callback mode: %d\n", mode);\r
     \r
+    if ((gap_get_device_class(&ACL_bdAdd) & 0x200) != 0) \r
+    {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sample_gap_scan_mode_changed_callback: Mobile Phone Device");\r
+        if(bt_is_acl_connected(&ACL_bdAdd) && mode!=GAP_SCAN_MODE_NONE)\r
+        {\r
+            gap_br_set_bt_scan_mode(GAP_SCAN_MODE_NONE, 0);\r
+        }\r
+    }\r
+   \r
+    \r
 }\r
 \r
 void BtInitCallBacks(void)\r
index 8404487..7addf92 100644 (file)
@@ -132,7 +132,7 @@ public:
 \r
   uint32_t GetCheckTime(void);\r
   void SetCheckTime(uint32_t time);\r
-  void SetWearStatus(int32_t wear);\r
+  void SetWearStatus();\r
   void SetResult(HeartResult result);\r
   HeartResult GetResult();\r
 \r
index 731e36e..82266ab 100644 (file)
@@ -555,25 +555,15 @@ void HeartModel::Heart_Result() {
     break;\r
   }\r
 }\r
-void HeartModel::SetWearStatus(int32_t wear) {\r
-  // 设置佩戴状态\r
-  WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartModel Weartest::%d", wear);\r
-\r
-  // 计数更新\r
-  if (wear_ != 1 && wear != 1) {\r
-    unwear_counter_++; // 佩戴错误计时器计数\r
-  } else {\r
-    unwear_counter_ = 0; // 佩戴正常情况下清零计数器\r
-  }\r
-  wear_ = wear;\r
-  // 检查是否达到了最大未佩戴计数限制\r
-  if (unwear_counter_ >= MAX_UNWEAR_COUNT) {\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
-                  "检测结果:未佩戴计数最大 unwear_counter:%d", unwear_counter_);\r
+ void HeartModel::SetWearStatus()\r
+  {\r
+    // 如果处于训练模式,提前返回\r
+    if (uapi_dev_runtime_get_train_status() == 1)\r
+      return;\r
+    // 设置佩戴状态\r
     SetResult(HeartResult::NOT_WORN);\r
     Heart_Stop();\r
-  }\r
-}\r
+  } \r
 \r
 void HeartModel::UpHeartdata(uint16_t heart) {\r
   // 如果处于训练模式,提前返回\r
@@ -588,6 +578,11 @@ void HeartModel::UpHeartdata(uint16_t heart) {
     }\r
     display_counter_++;\r
   }\r
+  else\r
+  {\r
+    displayheart = 0;\r
+  }\r
+\r
 \r
   // 更新心率和计数器\r
   if (displayheart != 0) {\r
index 431af41..2f40827 100644 (file)
@@ -1496,6 +1496,7 @@ void SetUTCtime(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8
         sendBuf[17] = set_ok;\r
         sendBuf[18] = Calculate_CRC(sendBuf,18);\r
         sendBleData(sendBuf,19);\r
+        uapi_ble_connect_param_update(50);\r
     }\r
        else\r
        {\r
index de9ba2a..6e8eec2 100644 (file)
@@ -444,8 +444,7 @@ void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_bl
     else \r
     {\r
         devpair_state = 0;//\r
- \r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "exit_alipay_gui  !!! %d",exit_alipay_gui);\r
+\r
 \r
         if( g_ble_conn_id !=0 && conn_id!=g_ble_conn_id)\r
         {\r
@@ -464,12 +463,33 @@ void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_bl
 \r
 \r
         Bleconnect = GAP_BLE_STATE_CONNECTED;//蓝牙已连接\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_BLE_STATE_CONNECTED!!! 0x%x\r\n",pair_state);  \r
+        // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_BLE_STATE_CONNECTED!!! 0x%x\r\n",pair_state);  \r
+\r
+        // gap_conn_param_update_t conn_param = { 0 };\r
+        // conn_param.conn_handle = conn_id;    /* param 0: conn_handle */\r
+        // conn_param.interval_min =50;    /* param 1: interval_min */\r
+        // conn_param.interval_max = 50;    /* param 2: interval_max */\r
+        // conn_param.slave_latency = 6;    /* param 3: slave_latency */\r
+        // conn_param.timeout_multiplier = 700;    /* param 4: timeout_multiplier */\r
+        // ret = gap_ble_connect_param_update(&conn_param);\r
+        // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"gap ble update connection parameters ret: %X\n", ret);   \r
+\r
     }\r
 \r
     uapi_dev_runtime_set_ble_connect_stat(Bleconnect);\r
 }\r
 \r
+void uapi_ble_connect_param_update(uint16_t data)\r
+{\r
+    gap_conn_param_update_t conn_param = { 0 };\r
+    conn_param.conn_handle = g_ble_conn_id;    /* param 0: conn_handle */\r
+    conn_param.interval_min =data;    /* param 1: interval_min */\r
+    conn_param.interval_max = data;    /* param 2: interval_max */\r
+    conn_param.slave_latency = 6;    /* param 3: slave_latency */\r
+    conn_param.timeout_multiplier = 700;    /* param 4: timeout_multiplier */\r
+    int ret = gap_ble_connect_param_update(&conn_param);\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"gap ble update connection parameters ret: %X\n", ret);   \r
+}\r
 void svr_pair_result_cbt_cb(uint16_t conn_id, const bd_addr_t *addr, errcode_t status)\r
 {\r
     devpair_state = 1;//代表配对成功了\r
@@ -526,6 +546,20 @@ void svr_pair_result_cbt_cb(uint16_t conn_id, const bd_addr_t *addr, errcode_t s
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"gap ble update connection parameters ret: %u\n", ret);    \r
     }\r
 }\r
+    // uint16_t interval;          /*!< @if Eng interval\r
+    //                                  @else   链路调度间隔,单位slot @endif */\r
+    // uint16_t latency;           /*!< @if Eng latency\r
+    //                                  @else   延迟周期,单位slot @endif */\r
+    // uint16_t timeout;           /*!< @if Eng timeout\r
+    //                                  @else   超时时间,单位10ms @endif */\r
+void srv_gap_ble_connect_param_update_callback(uint16_t conn_id, errcode_t status,\r
+    const gap_ble_conn_param_update_t *param)\r
+{\r
+      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, \r
+    "conn_id %d status %d gap_ble_conn_param_update_t interval %d latency%d  timeout %d ",conn_id,status,param->interval,param->latency,param->timeout);\r
+}\r
+\r
+\r
 \r
 //添加ota特征值\r
 static void srv_ble_add_chart_decr_ota(uint8_t server_id,uint16_t srv_handle)\r
@@ -1395,7 +1429,7 @@ void srv_ble_server_register_gap_ble_callbacks(void)//ble基础通讯服务注
     g_ble_gapble_cbs.auth_complete_cb = svr_gap_ble_auth_complete_callback;\r
     g_ble_gapble_cbs.start_adv_cb=svr_ble_adv_start_cb;\r
     g_ble_gapble_cbs.stop_adv_cb=svr_ble_adv_stop_cb;\r
-   \r
+    g_ble_gapble_cbs.conn_param_update_cb=srv_gap_ble_connect_param_update_callback;\r
 #ifndef SUPPORT_AT_OHOSFWK\r
     gap_ble_register_callbacks(&g_ble_gapble_cbs);\r
 #else\r
index a830a4b..8497002 100644 (file)
@@ -75,6 +75,9 @@ bool get_ble_adv_status(void);
 
 void get_adv_data(char *data);
 
+void uapi_ble_connect_param_update(uint16_t data);
+
+
 #ifdef __cplusplus
 }
 #endif
index f7234fe..c215691 100644 (file)
@@ -831,8 +831,12 @@ void MsgCenterNotifyWearStateProc(const Topic topic, Request* req)
         if(uapi_dev_runtime_get_train_status())
             return;
         int32_t wear = *((int32_t*)(req->data)); // 进行类型转换
+        if(!wear)
+        {
+            HeartModel::GetInstance()->SetWearStatus();
+        }
         BloodOxygenModel::GetInstance()->SetWearStatus(wear);
-        HeartModel::GetInstance()->SetWearStatus(wear);
+
     }
 }
 //血氧
index 0a6c890..86223bd 100644 (file)
@@ -2725,12 +2725,37 @@ void hx3695_wearstatus_update(void)
         do_cywee_service_check_msg(CYWEE_SERVICE_CMD_WEAR_STATUS_CHANGE,&cywee_data);\r
     }\r
 }\r
+  //脱腕上报未佩戴信息\r
+void hx3695_unwearstatus_update(void)\r
+{\r
+  hx3695_msg_callback_t func =  hx3695_get_send_msg_callback_func();\r
+  if(func != NULL)\r
+  {\r
+    hrsresult.lastesthrs = 0;\r
+    hrsresult.wearstatus = 0;\r
+\r
+    func(HX3695_MSG_TYPE_HRS_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
+    func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
+  }\r
+\r
+  if(uapi_dev_runtime_get_train_status())\r
+  {\r
+      cywee_wear_status = 0;\r
+      hx3695_wearstatus_update();\r
+      cywee_data = 0;\r
+      do_cywee_service_check_msg(CYWEE_SERVICE_CMD_HRS_CHANGE,&cywee_data);\r
+  }\r
+}                              \r
+\r
 \r
 #ifdef HRS_ALG_LIB\r
 /*TYHX 心率模式下 读取PPG, 默认320ms*/\r
 hrs_sensor_data_t   hrs_s_dat;\r
 //hx3695_results_t    alg_results_pre;\r
 \r
+static uint8_t his_wear = 2;\r
+static uint8_t wear_cnt = 0;\r
+\r
 void hx3695_hrs_ppg_Int_handle(void)\r
 {\r
     uint8_t     ii=0;\r
@@ -2933,7 +2958,28 @@ void hx3695_hrs_ppg_Int_handle(void)
         hrsresult.lastesthrs = 0;\r
         cywee_wear_status = 0;\r
     }\r
-    PRINT("hrsresult.wearstatus : %d , cywee_wear_status : %d , hr_living : %d \n",hrsresult.wearstatus,cywee_wear_status,hrsresult.hr_living);\r
+\r
+    \r
+    hx3695_msg_callback_t func =  hx3695_get_send_msg_callback_func();\r
+    if(func != NULL)\r
+    {\r
+      if(his_wear == hrsresult.wearstatus)\r
+      {\r
+          wear_cnt++;\r
+          if(wear_cnt >= 2 && !his_wear) //未佩戴超过2次 上报未佩戴信息\r
+          {\r
+              func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
+              wear_cnt = 0;\r
+          }\r
+      }\r
+      else\r
+      {\r
+          his_wear = hrsresult.wearstatus;\r
+          wear_cnt = 0;\r
+      }\r
+    }\r
+    //PRINT("hrsresult.wearstatus : %d , his_wear : %d , wear_cnt : %d \n",hrsresult.wearstatus,his_wear,wear_cnt);\r
+    //PRINT("hrsresult.wearstatus : %d , cywee_wear_status : %d , hr_living : %d \n",hrsresult.wearstatus,cywee_wear_status,hrsresult.hr_living);\r
     // if(hrs_wear_status == MSG_HRS_WEAR && hrsresult.hr_living == MSG_LIVING_TRUE)\r
     // {\r
     //     if(hrsresult.lastesthrs > 30 && hrsresult.lastesthrs < 220)\r
@@ -2948,19 +2994,17 @@ void hx3695_hrs_ppg_Int_handle(void)
     // }\r
 \r
     msg_count++;\r
-    if(msg_count == 3)\r
+    if(msg_count >= 3)\r
     {\r
           msg_count = 0;\r
-          hx3695_msg_callback_t func =  hx3695_get_send_msg_callback_func();\r
           if(func != NULL)\r
           {\r
-            PRINT("hrsresult.lastesthrs : %d \n",hrsresult.lastesthrs);\r
+            //PRINT("hrsresult.lastesthrs : %d \n",hrsresult.lastesthrs);\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
-            func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
           }\r
 \r
           if(uapi_dev_runtime_get_train_status())\r
index d167171..cd2d55f 100644 (file)
@@ -298,6 +298,7 @@ void heart_rate_meas_timeout_handler(void * p_context);
 void wear_mode_timeout_handler(void * p_context);\r
 void Efuse_Mode_Check(void);\r
 void hx3695_wearstatus_update(void);\r
+void hx3695_unwearstatus_update(void);\r
 #include "hx3695_hal.h"\r
 \r
 #endif\r
index 5aafb1c..ad21679 100644 (file)
@@ -129,8 +129,7 @@ hrs_wear_msg_code_t hx3695_hrs_wear_mode_check(WORK_MODE_T mode, int32_t infrare
         {\r
                                          AGC_LOG("run here_low_pow!! \r\n");\r
             hx3695_hrs_low_power();\r
-                                       \r
-                                               \r
+            hx3695_unwearstatus_update();//上报未佩戴信息\r
         }\r
         else if(hrs_wear_status_pre == MSG_HRS_WEAR)\r
         {\r
@@ -254,11 +253,13 @@ void PPG_hrs_Calibration_Routine(HRS_CAL_SET_T *calR, int32_t g1_led,int32_t g2_
                                                \r
         case hrsCalLed: \r
                                        \r
-            if(g1_led>900000 && calR->Group1_Ledidac<= 55)\r
+            //  if(g1_led>900000 && calR->Group1_Ledidac<= 55)//andy\r
+            if(g1_led>900000 && calR->Group1_Ledidac<= 115)//andy\r
             {\r
               calR->Group1_Ledidac = calR->Group1_Ledidac + 6;\r
             }                                  \r
-                                        if(g2_led>900000 && calR->Group2_Ledidac<= 55)\r
+            // if(g2_led>900000 && calR->Group2_Ledidac<= 55)//andy\r
+            if(g2_led>900000 && calR->Group2_Ledidac<= 115)//andy\r
             {\r
               calR->Group2_Ledidac = calR->Group2_Ledidac + 6;  \r
             }                                          \r
@@ -371,10 +372,10 @@ void PPG_hrs_Calibration_Routine(HRS_CAL_SET_T *calR, int32_t g1_led,int32_t g2_
         default:\r
             break;       \r
     }\r
-    AGC_LOG("AGC111: led_drv=%d,ledDac=%d,ambDac=%d,ledstep=%d,rf=%d,state = %d\r\n",\\r
-            calR->Group1_Cur, calR->Group1_Ledidac, calR->Group1_AMBDAC,calR->Group1_step,calR->Group1_RF,calR->state);\r
-               AGC_LOG("AGC222: led_drv=%d,ledDac=%d,ambDac=%d,ledstep=%d,rf=%d,state = %d\r\n",\\r
-            calR->Group2_Cur, calR->Group2_Ledidac, calR->Group2_AMBDAC,calR->Group2_step,calR->Group2_RF,calR->state);\r
+    AGC_LOG("AGC111: led_drv=%d,ledDac=%d,ambDac=%d,ledstep=%d,rf=%d,state = %d led1=%d\r\n",\\r
+            calR->Group1_Cur, calR->Group1_Ledidac, calR->Group1_AMBDAC,calR->Group1_step,calR->Group1_RF,calR->state,g1_led);\r
+               AGC_LOG("AGC222: led_drv=%d,ledDac=%d,ambDac=%d,ledstep=%d,rf=%d,state = %d led2=%d\r\n",\\r
+            calR->Group2_Cur, calR->Group2_Ledidac, calR->Group2_AMBDAC,calR->Group2_step,calR->Group2_RF,calR->state,g2_led);\r
 //       AGC_LOG("AGC333: led_drv=%d,ledDac=%d,ambDac=%d,ledstep=%d,rf=%d,state = %d\r\n",\\r
 //            calR->Group3_Cur, calR->Group3_Ledidac, calR->Group3_AMBDAC,calR->Group3_step,calR->Group3_RF,calR->state);\r
 }\r
index 5fab00c..8793797 100644 (file)
@@ -2434,6 +2434,11 @@ void uapi_exit_power_saving_mode(void)
     // //开广播
     if(cm_custom_ble_service_on_flag())
         uapi_open_br_scan();
+    //根据配置自动回连
+    if(uapi_dev_runtime_get_bt_powerstat() &&  (cm_get_HFP_switch() || cm_get_A2DP_switch()))
+    {
+        uapi_hfp_connect();
+    }
     //打开cat1
     if(cm_poweron_cat1_on_bootup_flag())
         uapi_set4GCapability(true);