ANCS获取服务位置改变,及消息处理机制更新 511/1
authorhcj <1224667075@qq.com>
Fri, 12 Jul 2024 02:00:30 +0000 (10:00 +0800)
committerhcj <1224667075@qq.com>
Fri, 12 Jul 2024 02:00:30 +0000 (10:00 +0800)
code/sdk/application/wearable/service/ble_service/bleservice/bleANCS.c
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h
code/sdk/drivers/peripheral/utils/pdu.c

index d6f9468..0457b0c 100644 (file)
@@ -162,7 +162,7 @@ static void ble_ancs_client_notify_source_cbk(uint8_t client_id, uint16_t conn_i
         uint32_t creationTime=0;
         int ret = uapi_get_timestampe_ss(&creationTime);
         //当前时间戳减去订阅通知时间戳3s以上的通知,才要求数据(过滤ios将所有未查看消息发过来)
-        if(creationTime!=subscribe_notify_creationTime)
+        if(creationTime-subscribe_notify_creationTime>3)
         ble_ancs_client_at_cmd_get_notify_att(conn_id, notify_src->notification_uid);
        // 
 
@@ -220,8 +220,8 @@ static void ble_ancs_client_notification_attr_rsp_cbk(uint8_t client_id, uint16_
             // memset(old_time_buf,0,64);
             // memcpy_s(old_time_buf,64,new_msg_buf,64);
            // printf("ble_ancs_client_notification_attr_rsp_cbk test 2\r\n");
-            ancs_msg_index = message_data(notify_attr_rsp->notification_uid,0,title_buf,msg_buf,0);
-            CustomEventPublish_TOPIC_EVENT_MESSAGENOTE(ancs_msg_index);
+            message_data(notify_attr_rsp->notification_uid,0,title_buf,msg_buf,0);
+           
 
             
         //}
index 37e6f38..879b667 100644 (file)
@@ -5095,7 +5095,7 @@ char *get_message_dir_path(void)//获取信息的文件夹路径
     return ANCS_DATA_CONFIG_DIR;\r
 }\r
 \r
-void* message_data(int uid,int appid,char  *title,char  *msg,int hasCode)\r
+void message_data(int uid,int appid,char  *title,char  *msg,int hasCode)\r
 {\r
 \r
     uint32_t timestampe = 0;\r
@@ -5103,23 +5103,20 @@ void* message_data(int uid,int appid,char  *title,char  *msg,int hasCode)
     {\r
         timestampe = 0;\r
     }\r
-    ancs_data_info_t *data= (ancs_data_info_t *)malloc(sizeof(ancs_data_info_t));\r
-    if(data==NULL)\r
-    return NULL;\r
-    memset_s(data,sizeof(ancs_data_info_t),0,sizeof(ancs_data_info_t));\r
+    ancs_data_info_t data;\r
+    memset_s(&data,sizeof(ancs_data_info_t),0,sizeof(ancs_data_info_t));\r
 \r
-    data->appid=appid;\r
-    memcpy_s(data->title,TITLE_BUF_LEN+1,title,strlen(title));\r
-    memcpy_s(data->msg,MSG_BUF_LEN+1,msg,strlen(msg));\r
-    data->uid=uid;\r
-    data->time=timestampe;\r
-    data->read=0;\r
-    data->hasCode=hasCode;\r
+    data.appid=appid;\r
+    memcpy_s(data.title,TITLE_BUF_LEN+1,title,strlen(title));\r
+    memcpy_s(data.msg,MSG_BUF_LEN+1,msg,strlen(msg));\r
+    data.uid=uid;\r
+    data.time=timestampe;\r
+    data.read=0;\r
+    data.hasCode=hasCode;\r
 \r
-    printf("messagedata make ok\r\n");\r
-    return data;\r
+    CustomEventPublish_TOPIC_EVENT_MESSAGENOTE(&data);\r
+    return ;\r
 \r
-    //read_message_data();\r
 }\r
 int uft8_check(char *chinese_string,int length)\r
 {\r
@@ -5152,7 +5149,6 @@ int uft8_check(char *chinese_string,int length)
     return i;\r
 }\r
 \r
- void* ancs_msg_data =NULL;\r
 \r
 //安卓消息接收解析数据 //ANCS 2AE1\r
 uint8_t jscheck_ancs(uint8_t *data)\r
@@ -5233,7 +5229,7 @@ uint8_t jscheck_ancs(uint8_t *data)
     // }\r
 \r
     printf("send message\r\n");\r
-    ancs_msg_data = message_data(uid_t,appid_t,titleBuf,msgBuf,hasCode_t);\r
+    message_data(uid_t,appid_t,titleBuf,msgBuf,hasCode_t);\r
     printf("send message ok\r\n");\r
 \r
     if(titleBuf != NULL){\r
@@ -5268,8 +5264,6 @@ void ancsDataShowCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,
         value[17] = 1;\r
         value[18] = Calculate_CRC(value,18);\r
         sendBleData(value,19);\r
-        if(ancs_msg_data)\r
-        CustomEventPublish_TOPIC_EVENT_MESSAGENOTE(ancs_msg_data);\r
     }else{\r
         value[17] = 0;\r
         value[18] = Calculate_CRC(value,18);\r
@@ -5280,12 +5274,6 @@ void ancsDataShowCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,
 void CustomEventPublish_TOPIC_EVENT_MESSAGENOTE(void *data)\r
 {\r
     CustomEventPublish(TOPIC_EVENT_MESSAGE_UPDATA,(uint8_t*)data,sizeof(ancs_data_info_t));\r
-    if(data)\r
-    {\r
-        free(data);\r
-        data=NULL;\r
-    }\r
-   \r
 }\r
 \r
 void type2AE1Data(uint8_t *buf_cmd,uint8_t *data,uint16_t datalen,uint8_t *totalData,uint8_t crcvalue)\r
index 38fa114..bd065d1 100644 (file)
@@ -774,7 +774,7 @@ uint8_t get_crc_from_lrc(uint8_t lrcValue);
 
 uint8_t  calculate_lrc_file(char *file_path);
 
-void* message_data(int uid,int appid,char  *title,char  *msg,int hasCode);
+void message_data(int uid,int appid,char  *title,char  *msg,int hasCode);
 
 void CustomEventPublish_TOPIC_EVENT_MESSAGENOTE(void* data);
 
index 3ffb327..6315b75 100644 (file)
@@ -323,8 +323,7 @@ int pdu_decode_example(const char *inpdustr )
                        timenow->tm_min,
                        timenow->tm_sec);
 
-               void *data= message_data(0,0,phone_number,text,0);
-               CustomEventPublish_TOPIC_EVENT_MESSAGENOTE(data);
+               message_data(0,0,phone_number,text,0);
                
        }
        return ret;