uapi_get_YYMMDD_Time_extend(day,'\0', day_);
sprintf_s(dir_path,64,SLEEP_DIR_PATH,day);
- struct DIR *dir;
- struct dirent *ent;
-
-
uint32_t offset=0;
uint8_t sleep_count=1;
- if ((dir = opendir(dir_path)) != NULL)
{
- while ((ent = readdir(dir)) != NULL)
+ char file_path[128]={0};
+ sprintf_s(file_path,128,"%s/%s",dir_path,"nap.bin");
+
+ FILE * fp = fopen(file_path,"rb+");
+ if(fp==NULL)
{
- std::string fileName = ent->d_name;
- if (fileName != "." && fileName != "..")
- {
-
- if (ent->d_type == DT_REG || ent->d_type == DT_UNKNOWN ) // 普通文件
- {
- if(fileName=="sleep_time.bin")
- {
- char file_path[128]={0};
- sprintf_s(file_path,128,"%s/%s",dir_path,ent->d_name);
-
- FILE * fp = fopen(file_path,"rb+");
- if(fp==NULL)
- {
- printf(" fopen fail %s\r\n",file_path);
- return 1 ;
- }
- uint16_t sleep_file_size=0;
- if (fp != NULL)
- {
- fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
- sleep_file_size = ftell(fp); // 获取当前文件指针位置,即文件大小
- sleep_file_size++;
- fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
- memcpy(data+offset,&sleep_file_size,2);
- *(data+offset+2)=sleep_count;
- sleep_count++;
-
- uint16_t read_size =fread(data+offset+3,1,sleep_file_size,fp);
-
- if((read_size+1)==sleep_file_size)
- {
-
- }
-
- else
- {
- printf(" fread fail read_size:%d!= sleep_file_size:%d \r\n",read_size,sleep_file_size);
- }
-
- fclose(fp);
- char file_path[128]={0};
- sprintf_s(file_path,128,"%s/%s",dir_path,"sleep_status.bin");
- fp = fopen(file_path,"rb+");
- sleep_file_size=0;
- if(fp)
- {
- fseek(fp, 0, SEEK_END);
- sleep_file_size = ftell(fp);
- fseek(fp, 0, SEEK_SET);
- uint16_t read_size_status =fread(data+offset+3+read_size,1,sleep_file_size,fp);
- read_size+=read_size_status;
- memcpy(data+offset,&read_size,2);
- fclose(fp);
-
- }
- offset+=read_size;
- offset+=3;
+ printf(" fopen fail %s\r\n",file_path);
+ }
+ else
+ {
+ uint16_t sleep_file_size=0;
+ fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
+ sleep_file_size = ftell(fp); // 获取当前文件指针位置,即文件大小
+ fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
- }
- }
- else if(fileName!="sleep_status.bin")
- {
- printf("offset %d\r\n",offset);
- char file_path[128]={0};
- sprintf_s(file_path,128,"%s/%s",dir_path,ent->d_name);
-
- FILE * fp = fopen(file_path,"rb+");
- if(fp==NULL)
- {
- printf(" fopen fail %s\r\n",file_path);
- return 1 ;
- }
+ int mod_value=0;
+ mod_value=sleep_file_size%14;
+ if(mod_value!=0)
+ return 0;
+ uint8_t nap_count=sleep_file_size/14;
- uint16_t sleep_file_size=0;
- if (fp != NULL)
- {
- fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
- sleep_file_size = ftell(fp); // 获取当前文件指针位置,即文件大小
- sleep_file_size++;
- fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
- memcpy(data+offset,&sleep_file_size,2);
- *(data+offset+2)=sleep_count;
- sleep_count++;
- offset+=3;
- uint16_t read_size =fread(data+offset,1,sleep_file_size,fp);
+ sleep_count=nap_count+1;
+
+ uint16_t read_size =fread(data,1,sleep_file_size,fp);
+ offset+=read_size;
+ fclose(fp);
+ }
+ }
+ {
+ char file_path[128]={0};
+ sprintf_s(file_path,128,"%s/%s",dir_path,"sleep_time.bin");
+ FILE * fp = fopen(file_path,"rb+");
+ if(fp)
+ {
+ uint16_t sleep_file_size=0;
+
+ fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
+ sleep_file_size = ftell(fp); // 获取当前文件指针位置,即文件大小
+ sleep_file_size++;
+ fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
- if((read_size+1)==sleep_file_size)
- offset+=read_size;
- else
- printf(" fread fail read_size:%d!= sleep_file_size:%d \r\n",read_size,sleep_file_size);
+ memcpy(data+offset,&sleep_file_size,2);
+ *(data+offset+2)=sleep_count;
+ sleep_count++;
+ uint16_t read_size =fread(data+offset+3,1,sleep_file_size,fp);
- fclose(fp);
- }
- }
-
- }
+ if((read_size+1)!=sleep_file_size)
+ {
+ printf(" fread fail read_size:%d!= sleep_file_size:%d \r\n",read_size,sleep_file_size);
}
- else if (ent->d_type == DT_DIR) // 目录
+
+ fclose(fp);
+ char file_path[128]={0};
+ sprintf_s(file_path,128,"%s/%s",dir_path,"sleep_status.bin");
+ fp = fopen(file_path,"rb+");
+ sleep_file_size=0;
+ if(fp)
{
- continue;
+ fseek(fp, 0, SEEK_END);
+ sleep_file_size = ftell(fp);
+ fseek(fp, 0, SEEK_SET);
+ uint16_t read_size_status =fread(data+offset+3+read_size,1,sleep_file_size,fp);
+ read_size+=read_size_status;
+ memcpy(data+offset,&read_size,2);
+ fclose(fp);
+
}
+ offset+=read_size;
+ offset+=3;
}
}
- closedir(dir);
return offset;
}
fclose(fp);
}
}
- else
+ else if(fileName=="nap.bin")
{
char file_path[128]={0};
sprintf_s(file_path,128,"%s/%s",dir_path,ent->d_name);
printf(" fopen fail %s\r\n",file_path);
return file_count;
}
-
+ uint32_t size=0;
if (fp != NULL)
{
fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
- *file_size += ftell(fp)+3; // 获取当前文件指针位置,即文件大小
+ size= ftell(fp); // 获取当前文件指针位置,即文件大小
fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
fclose(fp);
}
- file_count++;
+ int mod_value=0;
+
+ mod_value=size%14;
+ if(mod_value!=0)
+ return 0;
+
+ uint8_t nap_count=size/14;
+ *file_size+=nap_count*14;
+
+ file_count+=nap_count;
}
}