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
// 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)
{
}
-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()
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
\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
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
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
{\r
type2AE6Data(buffer_handle,buf_cmd,data,data_size,totalData,crcvalue);\r
}\r
-}\r
+ }\r
\r
\r
/// @brief 解码收到的msg\r