From eee8a19447eaeb87fd38d11354a4adc29148963a Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Mon, 12 Nov 2018 15:04:02 +0200 Subject: some memory management hooks. fix motors homing --- .../Embedded/Modules/AlarmHandling/AlarmHandling.c | 4 ++-- .../Embedded/Modules/Diagnostics/Diagnostics.c | 25 ++++++++++++++++++++-- .../Modules/Diagnostics/DiagnosticsHoming.c | 4 ++-- .../Modules/Diagnostics/DiagnosticsJogging.c | 4 ++-- 4 files changed, 29 insertions(+), 8 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c index 49d13d07f..9a4871878 100644 --- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c @@ -391,7 +391,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick) { if (ivalue/100 >= AlarmItem[Alarm_i].AlarmValue) { - LOG_ERROR (ivalue/100,"Temperature spike"); + //LOG_ERROR (ivalue/100,"Temperature spike"); Status = true; } } @@ -399,7 +399,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick) { if (ivalue/100 <= AlarmItem[Alarm_i].AlarmValue) { - LOG_ERROR (ivalue/100,"Temperature spike"); + //LOG_ERROR (ivalue/100,"iTemperature spike"); Status = true; } } diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index 6ff1ef4fa..c34702e5c 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -129,6 +129,11 @@ typedef struct DiagnosticsMessage{ uint8_t messageData[20]; }DiagnosticsMessageStruc; +#define MAX_DIAG_LOG 100 +int diag_index=0; +uint32_t diag_size[MAX_DIAG_LOG]; +uint32_t diag_time[MAX_DIAG_LOG]; + /******************** CODE ********************************************/ //********************************************************************** @@ -580,7 +585,17 @@ void SendDiagnostics(void) if (SendChars(diagnosticscontainer_buffer, container_size) == false) //comm tx mailbox full { DiagnosticsStop(); + CommunicationMailboxFlush(); + } + else + { + //Report("Diagnostic Messgage",__FILE__,__LINE__,container_size,RpWarning,msec_millisecondCounter, msec_millisecondCounter); } + diag_size[diag_index] = container_size; + diag_time[diag_index] = msec_millisecondCounter; + if (diag_index++>=MAX_DIAG_LOG) + diag_index = 0; + } else { @@ -606,8 +621,14 @@ uint32_t DiagnosticsStart(void) if (DiagnosticRequestAccepted == true) { DiagnosticsActive = true; - DiagnosticsControlId = AddControlCallback(Diagnostics_ControlTrigger,DiagnosticLimit,DiagnosticsEmptyCBFunction,0,0,0); - Diagnostics10MSControlId = AddControlCallback(Diagnostics_TenMiliControlTrigger,DiagnosticFastLimit,DiagnosticsEmptyCBFunction,0,0,0); + if (DiagnosticsControlId == 0xFF) + DiagnosticsControlId = AddControlCallback(Diagnostics_ControlTrigger,DiagnosticLimit,DiagnosticsEmptyCBFunction,0,0,0); + else + LOG_ERROR(DiagnosticsControlId,"Diagnostics restarted"); + if (Diagnostics10MSControlId == 0xFF) + Diagnostics10MSControlId = AddControlCallback(Diagnostics_TenMiliControlTrigger,DiagnosticFastLimit,DiagnosticsEmptyCBFunction,0,0,0); + else + LOG_ERROR(DiagnosticsControlId,"Diagnostics restarted"); } } return OK; diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c index b3ed6fde0..58d05f383 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c @@ -163,7 +163,7 @@ uint32_t MotorHomingRequestFunc(MessageContainer* requestContainer) { if ( Motor_Id_to_LS_IdUp[MotorId] != MAX_GPI) { - MotorMovetoLimitSwitch (MotorId,MotorsCfg[MotorId].directionthreadwize, speed, Motor_Id_to_LS_IdUp[MotorId], MotorHomingRequestCallback); + MotorMovetoLimitSwitch (MotorId,MotorsCfg[MotorId].directionthreadwize, speed, Motor_Id_to_LS_IdDown[MotorId], MotorHomingRequestCallback); ustrncpy (HomingToken[MotorId], requestContainer->token,36); return OK; } @@ -172,7 +172,7 @@ uint32_t MotorHomingRequestFunc(MessageContainer* requestContainer) { if ( Motor_Id_to_LS_IdDown[MotorId] != MAX_GPI) { - MotorMovetoLimitSwitch (MotorId,1-MotorsCfg[MotorId].directionthreadwize, speed, Motor_Id_to_LS_IdDown[MotorId], MotorHomingRequestCallback); + MotorMovetoLimitSwitch (MotorId,1-MotorsCfg[MotorId].directionthreadwize, speed, Motor_Id_to_LS_IdUp[MotorId], MotorHomingRequestCallback); ustrncpy (HomingToken[MotorId], requestContainer->token,36); return OK; } diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c index 5a709e4a4..bc3630698 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c @@ -65,10 +65,10 @@ uint32_t MotorJoggingRequestFunc(MessageContainer* requestContainer) switch (request->direction) { case MOTOR_DIRECTION__Forward: - direction = MotorsCfg[MotorId].directionthreadwize; + direction = 1-MotorsCfg[MotorId].directionthreadwize; break; case MOTOR_DIRECTION__Backward: - direction = 1-MotorsCfg[MotorId].directionthreadwize; + direction = MotorsCfg[MotorId].directionthreadwize; break; } MotorSetDirection(MotorId,direction); -- cgit v1.3.1