diff options
| author | Mirta <mirta@twine-s.com> | 2020-12-30 16:39:52 +0200 |
|---|---|---|
| committer | Mirta <mirta@twine-s.com> | 2020-12-30 16:39:52 +0200 |
| commit | 00a491d93733d4625ad329b2ba8237f445364b3f (patch) | |
| tree | 4b24c6fa78d7648f4bb7cefafa464bb0b063fec4 /Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c | |
| parent | 124ad4150f80c6846fdee41dbbda9848c105f6e5 (diff) | |
| download | Tango-00a491d9.tar.gz Tango-00a491d9.zip | |
merge
Diffstat (limited to 'Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c | 52 |
1 files changed, 30 insertions, 22 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c index 17c1f164b..efc156da3 100644 --- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c +++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c @@ -646,11 +646,11 @@ uint32_t GetFilesRequestFunc(MessageContainer* requestContainer) GetFilesResponse response = GET_FILES_RESPONSE__INIT; //struct tm RTC_time; - #define MAX_NUM_OF_FILES 20 + #define MAX_NUM_OF_FILES 40 DIR dir; FILINFO* fno[MAX_NUM_OF_FILES]; char FullPath[MAX_NUM_OF_FILES][60]; - int i,NumOfFiles = 0; + int i,NumOfFiles = 0, ListedFiles = 0; FRESULT Fresult = FR_OK; FileInfo **FilesInfo = (FileInfo**)my_malloc(sizeof(FileInfo *)*(MAX_NUM_OF_FILES)); FileInfo Data[MAX_NUM_OF_FILES]; @@ -699,26 +699,34 @@ uint32_t GetFilesRequestFunc(MessageContainer* requestContainer) { for (i = 0;i < NumOfFiles;i++) { - file_info__init(&Data[i]); - FilesInfo[i] = &Data[i]; - Data[i].has_attribute = true; - Data[i].attribute = fno[i]->fattrib; - Data[i].name = fno[i]->fname; - Data[i].has_length = true; - Data[i].length = fno[i]->fsize; - Data[i].has_lastmodifieddate = true; - Data[i].lastmodifieddate = fno[i]->fdate; - Data[i].has_lastmodifiedtime = true; - Data[i].lastmodifiedtime = fno[i]->ftime; - - if (i==0) - usnprintf(&FullPath[i], 50, "%s", request->path); + if (i==0) + usnprintf(&FullPath[ListedFiles], 50, "%s", request->path); + else + if (strlen(request->path)==1) //info under the root + usnprintf(&FullPath[ListedFiles], 50, "%s%s", request->path, fno[i]->fname); + else + usnprintf(&FullPath[ListedFiles], 50, "%s%s%s", request->path,"/", fno[i]->fname); + if (fno[i]->fattrib != 0xFF) //garbage + { + file_info__init(&Data[ListedFiles]); + FilesInfo[ListedFiles] = &Data[ListedFiles]; + Data[ListedFiles].has_attribute = true; + Data[ListedFiles].attribute = fno[i]->fattrib; + Data[ListedFiles].name = fno[i]->fname; + Data[ListedFiles].has_length = true; + Data[ListedFiles].length = fno[i]->fsize; + Data[ListedFiles].has_lastmodifieddate = true; + Data[ListedFiles].lastmodifieddate = fno[i]->fdate; + Data[ListedFiles].has_lastmodifiedtime = true; + Data[ListedFiles].lastmodifiedtime = fno[i]->ftime; + Data[ListedFiles].fullpath = &FullPath[i][0]; + ListedFiles++; + } else - if (strlen(request->path)==1) //info under the root - usnprintf(&FullPath[i], 50, "%s%s", request->path, fno[i]->fname); - else - usnprintf(&FullPath[i], 50, "%s%s%s", request->path,"/", fno[i]->fname); - Data[i].fullpath = &FullPath[i][0]; + { + // f_unlink(Data[ListedFiles].fullpath); + Report("file system error - format FFS", __FILE__, __LINE__, 255, RpWarning, (int)0, 0); + } /*RTC_time.tm_year=(fno[i]->fdate>>9)+1980;//populate the time struct (FAT start==1980, RTC.year==0) RTC_time.tm_mon=(fno[i]->fdate>>5)&0x000F; RTC_time.tm_mday=fno[i]->fdate&0x001F; @@ -728,7 +736,7 @@ uint32_t GetFilesRequestFunc(MessageContainer* requestContainer) } - response.n_items = NumOfFiles; + response.n_items = ListedFiles; response.items = FilesInfo; } else |
