diff options
Diffstat (limited to 'Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c index f4c44462e..3d23f9e48 100644 --- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c +++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c @@ -39,7 +39,23 @@ char ErrorMsg[100]; int FileLength = 0; int FileReceivedLength = 0; static char g_cCwdBuf[50] = "/"; +uint32_t WrittenBytes = 0; +/*ErrorCode FileError_to_ErrorCode[FILE_ERRORS_MAX+1] = {ERROR_CODE__NONE,ERROR_CODE__JOB_UNSPECIFIED_ERROR,ERROR_CODE__JOB_THREAD_BREAK,ERROR_CODE__JOB_WINDER_DANCER_FAIL, + ERROR_CODE__JOB_POOLER_DANCER_FAIL,ERROR_CODE__JOB_FEEDER_DANCER_FAIL,ERROR_CODE__JOB_OUT_OF_DYE,ERROR_CODE__JOB_OTHER_ALARM, + ERROR_CODE__JOB_TEMPERATURE_ALARM,ERROR_CODE__JOB_LS_ALARM,ERROR_CODE__JOB_PRESSURE_ALARM,ERROR_CODE__JOB_CURRENT_ALARM,ERROR_CODE__JOB_MOTOR_ALARM}; +*/ + +ErrorCode getErrorCode(FRESULT Fresult) +{ + switch (Fresult) + { + case FR_OK: + retrun ERROR_CODE_NONE; + default: + return ERROR_CODE__FILE_LENGTH_OUT_OF_RANGE; + } +} bool isDirectory(FileAttribute FileAtt) { if (FileAtt&&FILE_ATTRIBUTE__Directory) @@ -58,9 +74,11 @@ uint32_t FileUploadRequestFunc(MessageContainer* requestContainer) FileUploadRequest* request = file_upload_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); FileUploadResponse response = FILE_UPLOAD_RESPONSE__INIT; + + WrittenBytes=0; FileHandle = malloc(sizeof(FIL)); if (FileHandle == 0) - Fresult == FR_DENIED; + Fresult = FR_DENIED; else { Fresult = f_open(FileHandle,request->filename,FA_READ | FA_WRITE | FA_OPEN_ALWAYS ); @@ -96,7 +114,6 @@ uint32_t FileChunkUploadRequestFunc(MessageContainer* requestContainer) { uint32_t status = OK; FRESULT Fresult = FR_OK; - uint32_t WrittenBytes = 0; MessageContainer responseContainer; @@ -123,7 +140,6 @@ uint32_t FileChunkUploadRequestFunc(MessageContainer* requestContainer) } else { - int FileLength = 0; FileReceivedLength += WrittenBytes; if (FileReceivedLength == FileLength) { @@ -235,7 +251,7 @@ uint32_t CreateRequestFunc(MessageContainer* requestContainer) { FileHandle = malloc(sizeof(FIL)); if (FileHandle == 0) - Fresult == FR_DENIED; + Fresult = FR_DENIED; else { Fresult = f_open(FileHandle,request->path,FA_CREATE_NEW); @@ -286,6 +302,14 @@ uint32_t DeleteRequestFunc(MessageContainer* requestContainer) int NumOfFiles = 0; FRESULT Fresult = FR_OK; + Fresult |= f_opendir(&dir, g_cCwdBuf); + if(Fresult != FR_OK) + { + return(Fresult); + } + + fno = my_malloc(sizeof(FILINFO)); + memset (fno,0,sizeof(FILINFO)); Fresult = f_stat(request->path,fno); if (Fresult == FR_OK) { @@ -331,6 +355,7 @@ uint32_t DeleteRequestFunc(MessageContainer* requestContainer) uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); size_t container_size = message_container__pack(&responseContainer, container_buffer); my_free(responseContainer.data.data); + my_free(fno); delete_request__free_unpacked(request,NULL); SendChars(container_buffer, container_size); @@ -405,8 +430,10 @@ uint32_t GetFilesRequestFunc(MessageContainer* requestContainer) memset (fno,0,sizeof(fno)); FileInfo **FilesInfo = (FileInfo**)my_malloc(sizeof(FileInfo *)*(MAX_NUM_OF_FILES)); FileInfo Data[MAX_NUM_OF_FILES]; + memset(fno,0,sizeof(fno)); fno[0] = my_malloc(sizeof(FILINFO)); memset (fno[0],0,sizeof(FILINFO)); + Fresult = f_stat(request->path,fno[0]); if (Fresult == FR_OK) { |
