diff options
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
3 files changed, 28 insertions, 19 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c index f9f075477..7ffba4d69 100644 --- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c @@ -516,15 +516,19 @@ void SendEventNotifications(void) responseContainer.continuous = true; uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer)); - size_t container_size = message_container__pack(&responseContainer, container_buffer); - - if (SendChars(container_buffer, container_size) == false) //comm tx mailbox full + if (container_buffer) { - AlarmHandlingToken[0] = 0; + size_t container_size = message_container__pack(&responseContainer, container_buffer); + + if (SendChars(container_buffer, container_size) == false) //comm tx mailbox full + { + AlarmHandlingToken[0] = 0; + } } if (response.events) free (response.events); - free(responseContainer.data.data); + if (responseContainer.data.data) + free(responseContainer.data.data); } uint32_t StartEventsNotificationRequestFunc(MessageContainer* requestContainer) diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index a85e1cfde..495b7bded 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -476,23 +476,26 @@ void SendDiagnostics(void) diagnosticsresponseContainer = createContainer(MESSAGE_TYPE__StartDiagnosticsResponse, DiagnosticsToken, false, &response, &start_diagnostics_response__pack, &start_diagnostics_response__get_packed_size); diagnosticsresponseContainer.continuous = true; - diagnosticscontainer_buffer = 0; - diagnosticscontainer_buffer = malloc(message_container__get_packed_size(&diagnosticsresponseContainer)); - if (diagnosticscontainer_buffer) + if (diagnosticsresponseContainer.data.data) { - size_t container_size = message_container__pack(&diagnosticsresponseContainer, diagnosticscontainer_buffer); - //memmap(); - free(diagnosticsresponseContainer.data.data); - //free(DiagnosticsMonitor.dispenserspressure); - //free(DiagnosticsMonitor.dispensersmotorsfrequency); - if (SendChars(diagnosticscontainer_buffer, container_size) == false) //comm tx mailbox full + diagnosticscontainer_buffer = 0; + diagnosticscontainer_buffer = malloc(message_container__get_packed_size(&diagnosticsresponseContainer)); + if (diagnosticscontainer_buffer) { - DiagnosticsStop(); + size_t container_size = message_container__pack(&diagnosticsresponseContainer, diagnosticscontainer_buffer); + //memmap(); + //free(DiagnosticsMonitor.dispenserspressure); + //free(DiagnosticsMonitor.dispensersmotorsfrequency); + if (SendChars(diagnosticscontainer_buffer, container_size) == false) //comm tx mailbox full + { + DiagnosticsStop(); + } } - } - else - { - LOG_ERROR(Task_self(),"malloc failed"); + else + { + LOG_ERROR(Task_self(),"malloc failed"); + } + free(diagnosticsresponseContainer.data.data); } DiagnosticsReset(); diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c index af8932872..70ede0916 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c @@ -183,6 +183,7 @@ uint32_t DispenserHomingRequestCallback(uint32_t deviceID, uint32_t ReadValue) //close dry air valve in the dispenser Valve_Set((Valves_t) (DispenserId+VALVE_2W_MID_AIR_LF), Atm_MidTank_OFF); + MotorSetMicroStep(deviceID, MotorsCfg[deviceID].microstep); responseContainer = createContainer(MESSAGE_TYPE__DispenserHomingResponse, HomingToken[deviceID], true, &response, &motor_homing_response__pack, &motor_homing_response__get_packed_size); responseContainer.continuous = true; @@ -230,6 +231,7 @@ uint32_t DispenserHomingRequestFunc(MessageContainer* requestContainer) //open dry air valve in the dispenser Valve_Set((Valves_t) (request->index+VALVE_2W_MID_AIR_LF), Atm_MidTank_ON); + MotorSetMicroStep(MotorId, 1); MotorMovetoLimitSwitch (MotorId,1-MotorsCfg[MotorId].directionthreadwize, speed, Motor_Id_to_LS_Id[MotorId], DispenserHomingRequestCallback); return OK; |
