From af782aca2364948527c1107a02428897fb8382a1 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Thu, 3 Dec 2020 12:28:18 +0200 Subject: thread loading, mostly --- Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c') diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index ba505493d..c3fb17460 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -1061,7 +1061,7 @@ uint32_t ThreadPrepare_Tension (int DancerId, double tension) return status; } //******************************************************************************************************************** -bool SkipOpenLids = true; +bool SkipOpenLids = false; uint32_t ThreadPrepareState(void *JobDetails) { int Motor_i,i, HW_Motor_Id, Pid_Id; -- cgit v1.3.1 From 9bbfc1a62c8177ea2d1122b6564d6e8b219f1f47 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Tue, 15 Dec 2020 23:17:54 +0200 Subject: small fixes over 1.5.3.4 --- .../Embedded/Common/SWUpdate/FileSystem.c | 14 +---- Software/Embedded_SW/Embedded/DataDef.h | 2 + .../Embedded/Drivers/Flash_Memory/FATFS/ff.c | 70 ++++++++++++++++++---- .../Embedded/Modules/AlarmHandling/AlarmHandling.c | 6 +- .../Embedded/Modules/Heaters/Heaters_print.c | 2 + Software/Embedded_SW/Embedded/Modules/IDS/IDS.h | 2 + .../Embedded_SW/Embedded/Modules/IDS/IDS_maint.c | 20 +++++-- .../Embedded_SW/Embedded/Modules/IDS/IDS_print.c | 9 ++- .../Embedded/Modules/Thread/Thread_print.c | 10 +++- .../StateMachines/Initialization/InitSequence.c | 12 ++-- .../Embedded/StateMachines/Printing/PrintingSTM.c | 4 +- 11 files changed, 112 insertions(+), 39 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c') diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c index a59a14dcf..17c1f164b 100644 --- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c +++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c @@ -566,20 +566,12 @@ uint32_t DeleteRequestFunc(MessageContainer* requestContainer) //int NumOfFiles = 0; FRESULT Fresult = FR_OK; - if (1)//(Semaphore_pend(FFS_Sem, BIOS_NO_WAIT)) - { - Fresult = f_unlink(request->path); - Semaphore_post(FFS_Sem); - } - else - { - Fresult = FR_DENIED; - Report("Semaphore_pend failed", __FILE__, __LINE__, 4, RpWarning, (int)0, 0); - } + Fresult = f_unlink(request->path); + Semaphore_post(FFS_Sem); REPORT_MSG(Fresult, "File Delete"); responseContainer = createContainer(MESSAGE_TYPE__DeleteResponse, requestContainer->token, false, &response, &delete_response__pack, &delete_response__get_packed_size); - if (Fresult!= OK) + if ((Fresult!= FR_OK)&&(Fresult!= FR_NO_FILE)) { //usnprintf(ErrorMsg, 100, "File Operation failed error code %d",Fresult); responseContainer.has_error = true; diff --git a/Software/Embedded_SW/Embedded/DataDef.h b/Software/Embedded_SW/Embedded/DataDef.h index 291c94e9d..c29f34c62 100644 --- a/Software/Embedded_SW/Embedded/DataDef.h +++ b/Software/Embedded_SW/Embedded/DataDef.h @@ -32,7 +32,9 @@ #ifdef FOUR_WINDERS #define BTSR_NO_FEEDER_TFU #define BTSR_NO_PULLER_TFU +#define BTSR_ROTATED_WINDER_TFU #endif +//#define BTSR_ROTATED_WINDER_TFU //#define USE_RFID_STUB //stub only. to use it undef USE_RFID_LOGIC //#define RFID_READ_ONLY // diff --git a/Software/Embedded_SW/Embedded/Drivers/Flash_Memory/FATFS/ff.c b/Software/Embedded_SW/Embedded/Drivers/Flash_Memory/FATFS/ff.c index 66f209421..632dfb0d5 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Flash_Memory/FATFS/ff.c +++ b/Software/Embedded_SW/Embedded/Drivers/Flash_Memory/FATFS/ff.c @@ -98,7 +98,9 @@ #include "ff.h" /* FatFs configurations and declarations */ //#include "diskio.h" /* Declarations of low level disk I/O functions */ +#include #include "third_party/fatfs/src/diskio.h" +#include "Common/report/report.h" /*-------------------------------------------------------------------------- @@ -894,7 +896,10 @@ FRESULT put_fat ( if (clst < 2 || clst >= fs->n_fatent) { /* Check range */ - res = FR_INT_ERR; + { + res = FR_INT_ERR; + Report("put_fat FR_INT_ERR",__FILE__,__LINE__,(int)clst,RpWarning,(int)fs->n_fatent,0); + } } else { switch (fs->fs_type) { @@ -929,6 +934,8 @@ FRESULT put_fat ( default : res = FR_INT_ERR; + Report("put_fat FR_INT_ERR",__FILE__,__LINE__,(int)clst,RpWarning,(int)fs->fs_type,0); + } fs->wflag = 1; } @@ -958,13 +965,16 @@ FRESULT remove_chain ( if (clst < 2 || clst >= fs->n_fatent) { /* Check range */ res = FR_INT_ERR; - + Report("remove_chain FR_INT_ERR",__FILE__,__LINE__,(int)clst,RpWarning,(int)fs->n_fatent,0); } else { res = FR_OK; while (clst < fs->n_fatent) { /* Not a last link? */ nxt = get_fat(fs, clst); /* Get cluster status */ if (nxt == 0) break; /* Empty cluster? */ - if (nxt == 1) { res = FR_INT_ERR; break; } /* Internal error? */ + if (nxt == 1) { + res = FR_INT_ERR; + Report("remove_chain FR_INT_ERR",__FILE__,__LINE__,(int)res,RpWarning,(int)fs->n_fatent,0); + break; } /* Internal error? */ if (nxt == 0xFFFFFFFF) { res = FR_DISK_ERR; break; } /* Disk error? */ res = put_fat(fs, clst, 0); /* Mark the cluster "empty" */ if (res != FR_OK) break; @@ -1097,14 +1107,20 @@ FRESULT dir_sdi ( dj->index = idx; clst = dj->sclust; if (clst == 1 || clst >= dj->fs->n_fatent) /* Check start cluster range */ + { + Report("dir_sdi FR_INT_ERR",__FILE__,__LINE__,(int)clst,RpWarning,(int)dj->fs->n_fatent,0); return FR_INT_ERR; + } if (!clst && dj->fs->fs_type == FS_FAT32) /* Replace cluster# 0 with root cluster# if in FAT32 */ clst = dj->fs->dirbase; if (clst == 0) { /* Static table (root-dir in FAT12/16) */ dj->clust = clst; if (idx >= dj->fs->n_rootdir) /* Index is out of range */ - return FR_INT_ERR; + { + Report("dir_sdi FR_INT_ERR",__FILE__,__LINE__,(int)idx,RpWarning,(int)dj->fs->n_rootdir,0); + return FR_INT_ERR; + } dj->sect = dj->fs->dirbase + idx / (SS(dj->fs) / SZ_DIR); /* Sector# */ } else { /* Dynamic table (sub-dirs or root-dir in FAT32) */ @@ -1113,7 +1129,10 @@ FRESULT dir_sdi ( clst = get_fat(dj->fs, clst); /* Get next cluster */ if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ if (clst < 2 || clst >= dj->fs->n_fatent) /* Reached to end of table or int error */ + { + Report("dir_sdi FR_INT_ERR",__FILE__,__LINE__,(int)clst,RpWarning,(int)dj->fs->n_fatent,0); return FR_INT_ERR; + } idx -= ic; } dj->clust = clst; @@ -2558,7 +2577,10 @@ FRESULT f_write ( res = validate(fp); /* Check validity */ if (res != FR_OK) LEAVE_FF(fp->fs, res); if (fp->flag & FA__ERROR) /* Aborted file? */ + { + Report("f_write FR_INT_ERR",__FILE__,__LINE__,(int)fp->flag,RpWarning,(int)btw,0); LEAVE_FF(fp->fs, FR_INT_ERR); + } if (!(fp->flag & FA_WRITE)) /* Check access mode */ LEAVE_FF(fp->fs, FR_DENIED); if ((DWORD)(fp->fsize + btw) < fp->fsize) btw = 0; /* File size cannot reach 4GB */ @@ -2596,7 +2618,11 @@ FRESULT f_write ( } #endif sect = clust2sect(fp->fs, fp->clust); /* Get current sector */ - if (!sect) ABORT(fp->fs, FR_INT_ERR); + if (!sect) + { + Report("f_write FR_INT_ERR",__FILE__,__LINE__,(int)sect,RpWarning,(int)btw,0); + ABORT(fp->fs, FR_INT_ERR); + } sect += csect; cc = btw / SS(fp->fs); /* When remaining bytes >= sector size, */ if (cc) { /* Write maximum contiguous sectors directly */ @@ -2886,7 +2912,10 @@ FRESULT f_lseek ( res = validate(fp); /* Check validity of the object */ if (res != FR_OK) LEAVE_FF(fp->fs, res); if (fp->flag & FA__ERROR) /* Check abort flag */ + { + Report("f_lseek FR_INT_ERR",__FILE__,__LINE__,(int)fp->flag,RpWarning,(int)FA__ERROR,0); LEAVE_FF(fp->fs, FR_INT_ERR); + } #if _USE_FASTSEEK if (fp->cltbl) { /* Fast seek */ @@ -2969,7 +2998,11 @@ FRESULT f_lseek ( #if !_FS_READONLY if (clst == 0) { /* If no cluster chain, create a new chain */ clst = create_chain(fp->fs, 0); - if (clst == 1) ABORT(fp->fs, FR_INT_ERR); + if (clst == 1) + { + Report("f_lseek FR_INT_ERR",__FILE__,__LINE__,(int)clst,RpWarning,(int)FA__ERROR,0); + ABORT(fp->fs, FR_INT_ERR); + } if (clst == 0xFFFFFFFF) ABORT(fp->fs, FR_DISK_ERR); fp->sclust = clst; } @@ -2988,7 +3021,11 @@ FRESULT f_lseek ( #endif clst = get_fat(fp->fs, clst); /* Follow cluster chain if not in write mode */ if (clst == 0xFFFFFFFF) ABORT(fp->fs, FR_DISK_ERR); - if (clst <= 1 || clst >= fp->fs->n_fatent) ABORT(fp->fs, FR_INT_ERR); + if (clst <= 1 || clst >= fp->fs->n_fatent) + { + Report("f_lseek FR_INT_ERR",__FILE__,__LINE__,(int)clst,RpWarning,(int)fp->fs->n_fatent,0); + ABORT(fp->fs, FR_INT_ERR); + } fp->clust = clst; fp->fptr += bcs; ofs -= bcs; @@ -2996,7 +3033,11 @@ FRESULT f_lseek ( fp->fptr += ofs; if (ofs % SS(fp->fs)) { nsect = clust2sect(fp->fs, clst); /* Current sector */ - if (!nsect) ABORT(fp->fs, FR_INT_ERR); + if (!nsect) + { + Report("f_lseek FR_INT_ERR",__FILE__,__LINE__,(int)nsect,RpWarning,(int)0,0); + ABORT(fp->fs, FR_INT_ERR); + } nsect += ofs / SS(fp->fs); } } @@ -3184,7 +3225,10 @@ FRESULT f_getfree ( do { stat = get_fat(fs, clst); if (stat == 0xFFFFFFFF) { res = FR_DISK_ERR; break; } - if (stat == 1) { res = FR_INT_ERR; break; } + if (stat == 1) + { + Report("f_getfree FR_INT_ERR",__FILE__,__LINE__,(int)stat,RpWarning,(int)0,0); + res = FR_INT_ERR; break; } if (stat == 0) n++; } while (++clst < fs->n_fatent); } else { @@ -3233,6 +3277,7 @@ FRESULT f_truncate ( res = validate(fp); /* Check validity of the object */ if (res == FR_OK) { if (fp->flag & FA__ERROR) { /* Check abort flag */ + Report("f_truncate FR_INT_ERR",__FILE__,__LINE__,(int)fp->flag,RpWarning,(int)0,0); res = FR_INT_ERR; } else { if (!(fp->flag & FA_WRITE)) /* Check access mode */ @@ -3250,7 +3295,11 @@ FRESULT f_truncate ( ncl = get_fat(fp->fs, fp->clust); res = FR_OK; if (ncl == 0xFFFFFFFF) res = FR_DISK_ERR; - if (ncl == 1) res = FR_INT_ERR; + if (ncl == 1) + { + Report("f_truncate FR_INT_ERR",__FILE__,__LINE__,(int)ncl,RpWarning,(int)0,0); + res = FR_INT_ERR; + } if (res == FR_OK && ncl < fp->fs->n_fatent) { res = put_fat(fp->fs, fp->clust, 0x0FFFFFFF); if (res == FR_OK) res = remove_chain(fp->fs, ncl); @@ -3301,6 +3350,7 @@ FRESULT f_unlink ( dclst = ld_clust(dj.fs, dir); if (res == FR_OK && (dir[DIR_Attr] & AM_DIR)) { /* Is it a sub-dir? */ if (dclst < 2) { + Report("f_unlink FR_INT_ERR",__FILE__,__LINE__,(int)dclst,RpWarning,(int)0,0); res = FR_INT_ERR; } else { mem_cpy(&sdj, &dj, sizeof (DIR)); /* Check if the sub-dir is empty or not */ diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c index db4535e06..07ebfa747 100644 --- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c @@ -638,10 +638,10 @@ JobEndReasonEnum getEndReason(uint32_t AlarmId) return JOB_TEMPERATURE_ALARM; } case ALARM_SOURCE_TYPE__LimitSwitchAlarm: - usnprintf(AlarmReasonStr, 100, "Dispenser %d empty",AlarmItem[AlarmId].DeviceId); + usnprintf(AlarmReasonStr, 100, "Dispenser %d empty",AlarmItem[AlarmId].DeviceId+1); return JOB_OUT_OF_DYE; case ALARM_SOURCE_TYPE__PressureAlarm: - usnprintf(AlarmReasonStr, 100, "Over pressure in dispenser %d",AlarmItem[AlarmId].DeviceId); + usnprintf(AlarmReasonStr, 100, "Over pressure in dispenser %d",AlarmItem[AlarmId].DeviceId+1); return JOB_PRESSURE_ALARM; case ALARM_SOURCE_TYPE__CurrentAlarm: usnprintf(AlarmReasonStr, 100, "over/under current (%d) in %d",AlarmId,AlarmItem[AlarmId].DeviceId); @@ -653,7 +653,7 @@ JobEndReasonEnum getEndReason(uint32_t AlarmId) usnprintf(AlarmReasonStr, 100, "Machine door %d removed during a run",AlarmItem[AlarmId].DeviceId); return JOB_TAMPER_ALARM; case ALARM_SOURCE_TYPE__HardLimitAlarm: - usnprintf(AlarmReasonStr, 100, "Dispenser %d hit the hard limit",AlarmItem[AlarmId].DeviceId); + usnprintf(AlarmReasonStr, 100, "Dispenser %d hit the hard limit",AlarmItem[AlarmId].DeviceId+1); return JOB_LS_ALARM; case ALARM_SOURCE_TYPE__DoNotPollAlarm: if (AlarmItem[AlarmId].Severity == DEBUG_LOG_CATEGORY__Critical) diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index f396d78d9..db7261090 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -1012,6 +1012,8 @@ void HeaterPrepareFailureCheck(void) HeaterPrepareFailureCheckCounter = 0; return; } + if (HeaterPrepareFailureCheckCounter%60 == 0) + ReportWithPackageFilter(HeatersFilter,"HeaterPrepareFailureCheck",__FILE__,HeaterPrepareFailureCheckCounter,GetHeatersPrepareWaiting(),RpWarning,HeaterCheckReady(), 0); if ((HeaterPrepareFailureCheckCounter>=300)&&(HeaterPrepareFailureCheckCounter%60 == 0)) { for (i = 0; i