对接手表密码协议
authorhcj <1224667075@qq.com>
Tue, 18 Jun 2024 07:32:35 +0000 (15:32 +0800)
committerhcj <1224667075@qq.com>
Tue, 18 Jun 2024 07:32:35 +0000 (15:32 +0800)
code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp
code/sdk/application/wearable/service/ble_service/blemoder/bletest.h
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h

index 5f7eeff..e18f92d 100644 (file)
@@ -6,6 +6,10 @@
  * History: \n
  * 2022-08-16, Create file. \n
  */
+#include <iostream>
+#include <fstream>
+#include <filesystem>
+#include <string>
 #include "wearable_log.h"
 #include "securec.h"
 #include "broadcast_service.h"
@@ -63,6 +67,29 @@ extern "C" {
 #include "bletest.h"
 #include <cywee_hal.h>
 
+
+
+void ble_set_password(uint8_t falg, char * data)
+{
+    OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
+
+    p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_PASSWORD_SWITCH,falg);
+
+    p_ConfigModel->set_condigData_String(OHOS::ConfigModel::CONFIGMODEL_ITEM_PASSWORD,data);
+    return;
+}
+
+uint8_t ble_get_password(void)
+{
+    OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
+    std::string str =p_ConfigModel->get_configData_string(OHOS::ConfigModel::CONFIGMODEL_ITEM_PASSWORD);
+
+    uint8_t falg =p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_PASSWORD_SWITCH);
+
+    return falg;
+   
+}
+
 void set_sedent_param(  msg_sedent_set_param_info_t * data)
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
index 37bae69..136b771 100644 (file)
@@ -227,8 +227,9 @@ bool dial_file_save(void);
 void set_sedent_param(  msg_sedent_set_param_info_t * data);
 
 void get_sedent_param(  msg_sedent_set_param_info_t * data);
-
-
+///////////////////////手表密码//////////////////////////
+void ble_set_password(uint8_t falg, char * data);
+uint8_t ble_get_password(void);
 #ifdef __cplusplus
 #if __cplusplus
 }
index ccf32a5..6018a59 100644 (file)
@@ -1534,6 +1534,39 @@ void SetAlarmDataCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,
 }\r
 \r
 \r
+void SetpasswordCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//获取app下发的屏幕参数\r
+{\r
+    uint32_t tmp = 1;\r
+    uint16_t tmp_data = 1;\r
+    uint8_t sendBuf[19];\r
+    memset(sendBuf,0,19);\r
+    sendBuf[0] = 0x72;\r
+    sendBuf[1] = 0x02;\r
+    sendBuf[2] = 0x1c;\r
+    memcpy(sendBuf+3,&tmp,4);\r
+    memcpy(sendBuf+7,&tmp,4);\r
+    memcpy(sendBuf+11,&tmp,4);\r
+    memcpy(sendBuf+15,&tmp_data,2);\r
+\r
+       if(Check_CRC(data,len,crcvalue))\r
+       {\r
+        char* buf[6]={0};\r
+        memcpy(buf,&data[1],6);//\r
+\r
+        ble_set_password(data[0],buf);\r
+        printf("%s\r\n",&data[1]);\r
+        \r
+        sendBuf[17] = 1;\r
+        sendBuf[18] = Calculate_CRC(sendBuf,18);\r
+        sendBleData(sendBuf,19);\r
+    }\r
+       else\r
+       {\r
+               sendBuf[17] = 0;\r
+        sendBuf[18] = Calculate_CRC(sendBuf,18);\r
+        sendBleData(sendBuf,19);\r
+    }   \r
+}\r
 \r
 \r
 void GetWatchLcdParamCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//获取app下发的屏幕参数\r
@@ -2268,14 +2301,13 @@ void type2AE4Data(ble_read_data *buffer_handle,uint8_t *buf_cmd,uint8_t *data,ui
             getAPPaddressbook(typeID,data,datalen,totalData,crcvalue);\r
             break;\r
         case SET_ALARM_DATA_CMD:\r
-\r
             SetAlarmDataCmd(typeID,data,datalen,totalData,crcvalue);\r
             break;\r
         case SET_OTHER_TARGET_CMD:\r
             GetOtherTarget(typeID,data,datalen,totalData,crcvalue);\r
             break;\r
         case SET_PASSWORD_CMD:\r
-\r
+            SetpasswordCmd(typeID,data,datalen,totalData,crcvalue);\r
             break;\r
         case SET_SEDENTARINESS_PARAM_CMD:\r
             SetsedentarinessSetParamCmd(typeID,data,datalen,totalData,crcvalue);\r
@@ -3483,9 +3515,6 @@ static void GetPowerOffCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *tota
 }\r
 \r
 \r
-\r
-\r
-\r
 //app发送公英制单位\r
 static void GetMetricCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)\r
 {\r
@@ -3707,8 +3736,36 @@ static void GetTargetOtherCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *t
         value[18] = Calculate_CRC(value,18);\r
         sendBleData(value,19);\r
     }\r
-}\r
+} \r
 \r
+static void GetPasswordCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)\r
+{\r
+    uint8_t value[26];\r
+    memset(value,0,26);\r
+    uint32_t tmp = 1;\r
+    uint32_t datalen = 6;\r
+    uint16_t tmp_data = 6;\r
+    value[0] = 0x72;\r
+    value[1] = 0x01;\r
+    value[2] = 0x2f;\r
+    memcpy(value+3,&tmp,4);\r
+    memcpy(value+7,&datalen,4);\r
+    memcpy(value+11,&tmp,4);\r
+    memcpy(value+15,&tmp_data,2);\r
+    if(1)\r
+    {\r
+        uint8_t data=ble_get_password();\r
+        memcpy(&value[17],&data,1);//\r
+     \r
+        value[18] = Calculate_CRC(value,18);\r
+        sendBleData(value,19);\r
+    }else\r
+    {\r
+        value[17] = 0;\r
+        value[18] = Calculate_CRC(value,18);\r
+        sendBleData(value,19);\r
+    }\r
+}\r
 //app发送解除配对消息\r
 static void UnpairMessCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)\r
 {\r
@@ -4319,6 +4376,10 @@ void type2AE3Data(ble_read_data *buffer_handle,uint8_t *cmd_buf ,uint8_t *data,u
         case SYN_DATA_END_CMD: //app发送同步数据结束消息\r
             GetSynDataEndCmd(cmd,data,datalen,totaldata,crcvalue);\r
             break;\r
+        case GET_PASSWORD_CMD: //获取手表密码\r
+            GetPasswordCmd(cmd,data,datalen,totaldata,crcvalue);\r
+            break;\r
+        \r
         case SYN_HEART_HISTORY_DATA_CMD://同步心率历史数据\r
             //heartDataCmd(cmd,data,datalen,totaldata,crcvalue);\r
         case SYN_SPO2_HISTORY_DATA_CMD://同步血氧历史数据\r
@@ -5453,6 +5514,8 @@ static errcode_t install_dial(void)
 \r
         install_Register_dial(namebuf,ble_dial_uid);\r
 \r
+        ble_set_dial_by_id(ble_dial_uid);\r
+\r
         if ( ret == ERRCODE_SUCC)\r
             return ERRCODE_SUCC;\r
         else\r
index 0657e19..7571f80 100644 (file)
@@ -80,6 +80,7 @@ void cameram_send_data(void);
 #define GET_OTHER_TARGET_CMD 0x012C //其他目标设置
 #define GET_UNPAIR_CMD 0x012D //发送解除配对消息
 #define SYN_DATA_END_CMD 0x012E //app发送同步数据结束消息
+#define GET_PASSWORD_CMD 0x012F //app获取手机密码
 #define ENTER_FACTORY_TEST_CMD 0x0130 //进入工厂测试模式
 #define GET_SEDENT_CMD 0x0131 //获取久坐提醒设置
 #define SYN_HEART_HISTORY_DATA_CMD 0x0140 //同步心率历史数据