From a614e97ebbb2b6ce557b6c428e3501bb1bcad626 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Thu, 15 Nov 2018 16:02:00 +0200 Subject: fix data rollover error --- .../Embedded/Modules/Diagnostics/Diagnostics.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index 50d5f2093..003a2510a 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -385,8 +385,12 @@ void Diagnostic100msecCollection(void) } void DiagnosticsReset(void) { + memset(DancerCounterIndex,0,sizeof(DancerCounterIndex)); + memset(MotorCounterIndex,0,sizeof(MotorCounterIndex)); + memset(DancerErrorCounterIndex,0,sizeof(DancerErrorCounterIndex)); + SpeedCounterIndex = 0; + memset(HeaterCounterIndex,0,sizeof(HeaterCounterIndex)); DiagnosticsIndex = 0; - } int j=0; MessageContainer diagnosticsresponseContainer; @@ -401,19 +405,13 @@ void SendDiagnostics(void) if (DiagnosticsActive == false) { - memset(DancerCounterIndex,0,sizeof(DancerCounterIndex)); - memset(MotorCounterIndex,0,sizeof(MotorCounterIndex)); - SpeedCounterIndex = 0; - memset(HeaterCounterIndex,0,sizeof(HeaterCounterIndex)); + DiagnosticsReset(); return; } if (SuspendLargeMessages == true) { LargeMessagesD++; - memset(DancerCounterIndex,0,sizeof(DancerCounterIndex)); - memset(MotorCounterIndex,0,sizeof(MotorCounterIndex)); - SpeedCounterIndex = 0; - memset(HeaterCounterIndex,0,sizeof(HeaterCounterIndex)); + DiagnosticsReset(); return; } @@ -474,9 +472,6 @@ void SendDiagnostics(void) DiagnosticsMonitor.n_windermotor = MotorCounterIndex[WINDER_MOTOR]; DiagnosticsMonitor.n_screwmotor = MotorCounterIndex[SCREW_MOTOR]; } - memset(DancerCounterIndex,0,sizeof(DancerCounterIndex)); - memset(MotorCounterIndex,0,sizeof(MotorCounterIndex)); - SpeedCounterIndex = 0; DiagnosticsMonitor.mixertemperature = HeaterTemperature[HARDWARE_PID_CONTROL_TYPE__MixerHeater]; DiagnosticsMonitor.headzone1temperature = HeaterTemperature[HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1]; @@ -502,7 +497,6 @@ void SendDiagnostics(void) DiagnosticsMonitor.n_blowervoltage = 1; diagvoltage = getBlowerState(); DiagnosticsMonitor.blowervoltage = &diagvoltage; - memset(HeaterCounterIndex,0,sizeof(HeaterCounterIndex)); int i; DiagnosticsMonitor.n_dispensersmotorsfrequency = 0; -- cgit v1.3.1