消息过滤包名更新机制修改
authorhcj <1224667075@qq.com>
Wed, 5 Mar 2025 08:12:15 +0000 (16:12 +0800)
committerhcj <1224667075@qq.com>
Wed, 5 Mar 2025 08:12:15 +0000 (16:12 +0800)
code/sdk/application/wearable/service/ble_service/bleservice/bleANCS.c
code/sdk/application/wearable/service/ble_service/bleservice/bleANCS.h
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h

index 6c5646b..588e331 100644 (file)
@@ -67,9 +67,8 @@ typedef enum {
 
 static uint8_t g_client_id=0;
 /* 命令处理函数接口 */
-#define filtration_data_count 20
+
 filtration_data filtration_data_T[filtration_data_count]={0};
-//*com.tencent.qqmail
 // com.apple.mobilephone
 // com.apple.MobileSMS
 // com.netease.mailmaster
@@ -89,19 +88,39 @@ filtration_data filtration_data_T[filtration_data_count]={0};
 // ph.telegra.Telegraph
 // com.others
 //消息过滤文件保存,在此列的消息未打开,不发消息给手表,不在此列默认开
-void filtration_on_get(char *buf,uint8_t len)
+
+static uint8_t filtration_count=0;
+
+void filtration_on_get(uint8_t *buf,uint8_t *len)
 {
-    for (size_t i = 0; i < len; i++)
+    uint8_t filtration_on_get_len=0;
+    for (size_t i = 0; i < filtration_data_count; i++)
+    {
+        if(strlen( filtration_data_T[i].name)!=0)
+        {
+            filtration_on_get_len+=1;
+        }
+    }
+    if(filtration_on_get_len==0)
+    {
+        filtration_on_get_len=18;
+    }
+
+    for (size_t i = 0; i < filtration_on_get_len; i++)
     {
       if(strlen( filtration_data_T[i].name)!=0 && filtration_data_T[i].on==0)
       {
         buf[i]=0;
+        printf("name:%s on:%d\r\n",filtration_data_T[i].name,0);
       }
       else
       {
         buf[i]=1;
+        printf("name:%s on:%d\r\n",filtration_data_T[i].name,1);
       }
     }
+    *len=filtration_on_get_len;
+
 }
 void filtration_file_save(void)
 {
@@ -128,26 +147,35 @@ void filtration_file_read(void)
 }
 
 
-void filtration_file_updata(filtration_data *data)
+void filtration_file_updata(filtration_data *data,uint8_t count)
 {
-    for (size_t i = 0; i < filtration_data_count; i++)
-    {
-        if(strlen( filtration_data_T[i].name)==0)
-        {
-            filtration_data_T[i].on=data->on;
-            filtration_data_T[i].len=data->len;
-            memset(filtration_data_T[i].name,0,filtration_data_max_len);
-            memcpy_s(filtration_data_T[i].name,filtration_data_max_len, data->name,strlen( data->name));
-            break;
-           // printf("name:%s on:%d\r\n",data->name,data->on);
-        }
-        else if (strcmp(data->name,filtration_data_T[i].name)==0)
-        {
-            filtration_data_T[i].on=data->on;
-            break;
-            //printf("name:%s on:%d\r\n",data->name,data->on);
-        }
-    }
+    // for (size_t i = 0; i < filtration_data_count; i++)
+    // {
+    //     if(strlen( filtration_data_T[i].name)==0)
+    //     {
+    //         printf("strlen name:%s on:%d\r\n",data->name,data->on);
+    //         filtration_data_T[i].on=data->on;
+    //         filtration_data_T[i].len=data->len;
+    //         memset(filtration_data_T[i].name,0,filtration_data_max_len);
+    //         memcpy_s(filtration_data_T[i].name,filtration_data_max_len, data->name,strlen( data->name));
+    //         break;
+    //        // 
+    //     }
+    //     else if (strcmp(data->name,filtration_data_T[i].name)==0)
+    //     {
+    //         printf("strcmp name:%s on:%d\r\n",data->name,data->on);
+    //         filtration_data_T[i].on=data->on;
+    //         break;
+    //         //
+    //     }
+    // }
+    printf("strlen name:%s on:%d\r\n",data->name,data->on);
+    filtration_data_T[count].on=data->on;
+    filtration_data_T[count].len=data->len;
+    memset(filtration_data_T[count].name,0,filtration_data_max_len);
+    memcpy_s(filtration_data_T[count].name,filtration_data_max_len, data->name,strlen( data->name));
+    filtration_count=count;
+
 }
 
 static uint8_t get_other_filtration()
index 15f3e2a..4faa1a1 100644 (file)
@@ -31,8 +31,8 @@ void gattc_reg_id(void);
 uint8_t ble_ancs_client_cmd_setup_and_subscribe(uint16_t conn_id);
 uint8_t ble_ancs_client_subscribe_notify(uint16_t conn_id,uint8_t sub_flag);
 uint8_t ble_ancs_client_subscribe_data(uint16_t conn_id,uint8_t sub_flag);
-void filtration_file_updata(filtration_data *data);
-void filtration_on_get(char *buf,uint8_t len);
+void filtration_file_updata(filtration_data *data,uint8_t count);
+void filtration_on_get(uint8_t *buf,uint8_t *len);
 void filtration_file_save(void);
 void filtration_file_read(void);
 uint8_t ble_ancs_client_clear(uint16_t conn_id);
index 55d915f..7dd3c49 100644 (file)
@@ -190,7 +190,7 @@ static const char* getHandlname(uint16_t handle)
     if (data2ae4Cmd == handle) return "data2ae4Cmd";\r
     if (data2ae5Cmd == handle) return "data2ae5Cmd";\r
     if (data2ae6Cmd == handle) return "data2ae6Cmd";\r
-    //if (data2ae2Cmd == handle) return "data2ae2Cmd";\r
+        //if (data2ae2Cmd == handle) return "data2ae2Cmd";\r
     \r
     return "unknown handle";\r
 \r
@@ -2263,8 +2263,10 @@ void SetmsgfiltrationCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalD
 \r
        if(Check_CRC(data,len,crcvalue))\r
        {\r
-          WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"总长%d\r\n",len);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"总长%d\r\n",len);\r
+        // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"数据%s\r\n",data);\r
         uint32_t offset=0;\r
+        uint8_t count=0;\r
         while (offset<len)\r
         {\r
             filtration_data data_t={0};\r
@@ -2274,8 +2276,9 @@ void SetmsgfiltrationCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalD
             offset++;\r
             memcpy_s(data_t.name,filtration_data_max_len,&data[offset],data_t.len);\r
             offset+=data_t.len;\r
-              WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"%s\r\n",data_t.name);\r
-            filtration_file_updata(&data_t);\r
+            // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"%s\r\n",data_t.name);\r
+            filtration_file_updata(&data_t,count);\r
+            count++;\r
         } \r
         filtration_file_save();\r
         \r
@@ -5414,14 +5417,14 @@ static void GetmsgconfigCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *tot
     memcpy(value+15,&tmp_data,2);\r
     if(1)\r
     {\r
-        uint8_t data_buf[18]={1};\r
-       \r
+        uint8_t data_buf[filtration_data_count];\r
+        uint8_t  data_buf_len=0;\r
         // memset(data,1,18);\r
-        filtration_on_get((char*)data_buf,18);\r
-        memcpy(&value[17],data_buf,18);//\r
-     \r
-        value[35] = Calculate_CRC(value,35);\r
-        sendBleData(value,36);\r
+        filtration_on_get((uint8_t*)data_buf,&data_buf_len);\r
+        // printf("data_buf_len %d\r\n",data_buf_len);\r
+        memcpy(&value[17],data_buf,data_buf_len);//\r
+        value[17+data_buf_len] = Calculate_CRC(value,17+data_buf_len);\r
+        sendBleData(value,18+data_buf_len);\r
     }else\r
     {\r
         value[17] = 0;\r
@@ -8424,7 +8427,7 @@ void bleLongRecvData(ble_read_data *buffer_handle,uint8_t *data, uint16_t data_s
     {\r
         type2AE6Data(buffer_handle,buf_cmd,data,data_size,totalData,crcvalue);\r
     }\r
-}\r
+    }\r
 \r
 \r
 /// @brief 解码收到的msg\r
index 63ec747..8e72c8d 100644 (file)
@@ -21,7 +21,7 @@ extern "C" {
 
 #define ANCS_DATA_MSG_CJSON_PATH "/user/userdata/message/%d.json" //消息文件可以任意更改
 
-
+#define filtration_data_count 20
 
 #define READ_FLASH_DATA 0x01 //读flash数据
 #define WRITE_FLASH_DATA 0x02 //写flash数据