aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c14
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c31
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c2
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;