diff options
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/General/process.c')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/General/process.c | 75 |
1 files changed, 36 insertions, 39 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/General/process.c b/Software/Embedded_SW/Embedded/Modules/General/process.c index aafc1c5a9..6ee11105f 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/process.c +++ b/Software/Embedded_SW/Embedded/Modules/General/process.c @@ -195,7 +195,7 @@ void ProcessRequestFunc(MessageContainer* requestContainer) Bytes = sizeof(ProcessParameters); ReadAppAndProgram(PROCESS_PARAMETERS_MAP_IN_FLASH, 4,&Bytes); ReadAppAndProgram(PROCESS_PARAMETERS_MAP_IN_FLASH+4, Bytes, ProcessParams); - REPORT_MSG(Bytes,"Bytes wrtie to flash"); + REPORT_MSG(Bytes,"Bytes write to flash"); } //////////////////////////////////////////////////////////////////////// @@ -237,51 +237,34 @@ void ProcessRequestFunc(MessageContainer* requestContainer) upload_process_parameters_request__free_unpacked(request,NULL); } -uint32_t ProcessParamsInit(void) +uint32_t LoadProcessParamsFromFile(void) { FRESULT Fresult = FR_OK; - //FIL *FileHandle = 0; //the system supports a single active file - //uint8_t* buffer = NULL; - uint32_t Bytes;// = 0,i,j,k=0; - //UploadProcessParametersRequest* request; -/* - FileHandle = my_malloc(sizeof(FIL)); - if (FileHandle) + uint8_t* buffer = NULL; + uint32_t Bytes = 0; + + Fresult = FileRead(ProcessParamsConfigPath, &Bytes, &buffer); + if (Fresult == FR_OK) { - Fresult = FileOpen(ProcessParamsConfigPath, &Bytes, FileHandle); - if (Fresult == FR_OK) - { - buffer = my_malloc (Bytes); - if (buffer) - { - for (i=0;i<=(Bytes/100);i++) - { - Fresult = f_read(FileHandle,&buffer[i*100],100,&j ); - k+=j; - } - if (k!=Bytes) - LOG_ERROR(k,"File read error"); + UploadProcessParametersRequest* request = upload_process_parameters_request__unpack(NULL, Bytes, buffer); + ProcessParameters* ProcessParams = request->processparameters; - request = upload_process_parameters_request__unpack(NULL, Bytes, buffer); - // ProcessParameters* ProcessParams = process_parameters__unpack(NULL, Bytes, buffer); - if (request) - { - ProcessParameters* ProcessParams = request->processparameters; - Fresult = HandleProcessParameters(ProcessParams); - //memcpy (&ProcessParametersKeep,ProcessParams,sizeof(ProcessParameters)); - upload_process_parameters_request__free_unpacked(request,NULL); - } - my_free (buffer); - } - f_close(FileHandle); - } - else + if ((ProcessParams->dryerzone1temp > 0.1)&&(ProcessParams->headzone2temp > 0.1)&&(ProcessParams->headzone3temp > 0.1)&&(ProcessParams->headzone4temp > 0.1))//NOT turning off heaters { - LOG_ERROR(Fresult,"File open error"); + Bytes = sizeof(ProcessParameters); + ReadAppAndProgram(PROCESS_PARAMETERS_MAP_IN_FLASH, 4,&Bytes); + ReadAppAndProgram(PROCESS_PARAMETERS_MAP_IN_FLASH+4, Bytes, ProcessParams); + REPORT_MSG(Bytes,"ProcessParameters Bytes write to flash"); + free (buffer); } - my_free (FileHandle); } -*/ + + return Fresult; +} +uint32_t ProcessParamsInit(void) +{ + FRESULT Fresult = FR_OK; + uint32_t Bytes; memcpy(&Bytes,(void *)PROCESS_PARAMETERS_MAP_IN_FLASH,sizeof(Bytes)); REPORT_MSG(Bytes,"Bytes read from flash"); @@ -291,6 +274,20 @@ uint32_t ProcessParamsInit(void) ProcessParameters* ProcessParams = (ProcessParameters *)(PROCESS_PARAMETERS_MAP_IN_FLASH+4); Fresult = HandleProcessParameters(ProcessParams); } + else + { + if (LoadProcessParamsFromFile()==OK) + { + memcpy(&Bytes,(void *)PROCESS_PARAMETERS_MAP_IN_FLASH,sizeof(Bytes)); + REPORT_MSG(Bytes,"ProcessParams Bytes read from flash"); + + if ((Bytes)&&(Bytes < 1000)) + { + ProcessParameters* ProcessParams = (ProcessParameters *)(PROCESS_PARAMETERS_MAP_IN_FLASH+4); + Fresult = HandleProcessParameters(ProcessParams); + } + } + } return Fresult; } |
