aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/Diagnostics
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Diagnostics')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c30
1 files changed, 20 insertions, 10 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c
index 12842177c..b9f2a8a9e 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c
@@ -38,7 +38,7 @@
#include "StateMachines/Printing/PrintingSTM.h"
-char HomingToken[NUM_OF_MOTORS][36+1]={0};
+char *HomingToken[NUM_OF_MOTORS]={0};
int HomingCounter[NUM_OF_MOTORS];
uint32_t HomingControlId[NUM_OF_MOTORS];
@@ -51,7 +51,7 @@ void HomingStopReporting(void)
int i;
for (i = 0; i< NUM_OF_MOTORS;i++)
{
- HomingToken[i][0] = 0;
+ HomingToken[i] = NULL;
}
LOG_ERROR(0,"HomingStopReporting");
}
@@ -62,7 +62,7 @@ void HomingStopReporting(void)
int32_t keepkvalright,keepkvalleft;
uint32_t MotorHomingProgressReport(uint32_t deviceID, uint32_t ReadValue)
{
- if (HomingToken[deviceID][0] == 0)
+ if (HomingToken[deviceID] == NULL)
return OK;
MessageContainer responseContainer;
@@ -126,7 +126,7 @@ uint32_t MotorHomingRequestCallback(uint32_t deviceID, uint32_t ReadValue)
{
MCU_E2PromProgram(EEPROM_STORAGE_DRYER_CYCLES,NumberOfCycles);//it takes two cycles to identify a stop of the arm
}*/
- if (HomingToken[deviceID][0] == 0)
+ if (HomingToken[deviceID] == NULL)
return OK;
responseContainer = createContainer(MESSAGE_TYPE__MotorHomingResponse, HomingToken[deviceID], true, &response, &motor_homing_response__pack, &motor_homing_response__get_packed_size);
responseContainer.has_continuous = true;
@@ -135,7 +135,9 @@ uint32_t MotorHomingRequestCallback(uint32_t deviceID, uint32_t ReadValue)
size_t container_size = message_container__pack(&responseContainer, container_buffer);
my_free(responseContainer.data.data);
SendChars(container_buffer, container_size);
- HomingToken[deviceID][0] = 0;
+ if (HomingToken[deviceID])
+ my_free(HomingToken[deviceID]);
+ HomingToken[deviceID] = NULL;
return OK;
@@ -175,6 +177,7 @@ uint32_t MotorHomingRequestFunc(MessageContainer* requestContainer)
{
if ((JobIsActive() == false)&&(isMotorConfigured(MotorId) == true))
{
+ HomingToken[MotorId] = my_malloc(36);
ustrncpy (HomingToken[MotorId], requestContainer->token,36);
if (request->direction == MOTOR_DIRECTION__Backward) //opening the loading system
{
@@ -339,7 +342,7 @@ uint32_t DispenserHomingProgressReport(uint32_t deviceID, uint32_t ReadValue)
DispenserHomingResponse response = DISPENSER_HOMING_RESPONSE__INIT;
uint8_t MotorId = deviceID+HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1;
- if (HomingToken[MotorId][0] == 0)
+ if (HomingToken[deviceID] == NULL)
return OK;
bool last = false;
@@ -377,7 +380,7 @@ uint32_t DispenserHomingRequestCallback(uint32_t deviceID, uint32_t ReadValue)
//Valve_Set((Valves_t) (DispenserId+VALVE_2W_MID_AIR_8), Atm_MidTank_OFF);
//MotorSetMicroStep(deviceID, MotorsCfg[deviceID].microstep);
- if (HomingToken[MotorId][0] == 0)
+ if (HomingToken[deviceID] == NULL)
return OK;
responseContainer = createContainer(MESSAGE_TYPE__DispenserHomingResponse, HomingToken[MotorId], true, &response, &dispenser_homing_response__pack, &dispenser_homing_response__get_packed_size);
responseContainer.has_continuous = true;
@@ -386,7 +389,9 @@ uint32_t DispenserHomingRequestCallback(uint32_t deviceID, uint32_t ReadValue)
size_t container_size = message_container__pack(&responseContainer, container_buffer);
my_free(responseContainer.data.data);
SendChars(container_buffer, container_size);
- HomingToken[MotorId][0] = 0;
+ if (HomingToken[deviceID])
+ my_free(HomingToken[deviceID]);
+ HomingToken[deviceID] = NULL;
return OK;
@@ -404,6 +409,7 @@ uint32_t DispenserHomingRequestFunc(MessageContainer* requestContainer)
TimerMotors_t MotorId = (request->index)+HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1;
+ HomingToken[MotorId] = my_malloc(36);
ustrncpy (HomingToken[MotorId], requestContainer->token,36);
int speed = request->speed;
if (speed == 0) speed = 500;
@@ -514,7 +520,9 @@ uint32_t Diagnostics_Set_Load_Arm_To_Stopper_Callback(uint32_t deviceID, uint32_
size_t container_size = message_container__pack(&responseContainer, container_buffer);
my_free(responseContainer.data.data);
SendChars(container_buffer, container_size);
- HomingToken[deviceID][0] = 0;
+ if (HomingToken[deviceID])
+ my_free(HomingToken[deviceID]);
+ HomingToken[deviceID] = NULL;
return OK;
}
@@ -611,7 +619,9 @@ uint32_t Diagnostics_Dryer_MovetoEncoderPosition_Callback(uint32_t MotorId, uint
size_t container_size = message_container__pack(&responseContainer, container_buffer);
my_free(responseContainer.data.data);
SendChars(container_buffer, container_size);
- HomingToken[MotorId][0] = 0;
+ if (HomingToken[MotorId])
+ my_free(HomingToken[MotorId]);
+ HomingToken[MotorId] = NULL;
return OK;
}