diff options
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Diagnostics')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c | 30 |
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; } |
