diff options
| author | Avi Levkovich <avi@twine-s.com> | 2020-08-03 17:58:24 +0300 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2020-08-03 17:58:24 +0300 |
| commit | 29367e183afdf3ffa17cb9ec4d3869b93cb4764d (patch) | |
| tree | 1883755f661a800b54972a608652e6fab6eea7af /Software/Embedded_SW | |
| parent | 563541739f0e49e29e3848376964f36519839148 (diff) | |
| download | Tango-29367e183afdf3ffa17cb9ec4d3869b93cb4764d.tar.gz Tango-29367e183afdf3ffa17cb9ec4d3869b93cb4764d.zip | |
Update the actuator cleaning and relocate logic
Diffstat (limited to 'Software/Embedded_SW')
5 files changed, 30 insertions, 13 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c index 7a99b154f..d9fca9f4d 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c @@ -12,6 +12,7 @@ #include <Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.h> #include <Drivers/I2C_Communication/I2C_Task.h> #include "modules/control/control.h" +#include "modules/ids/ids.h" /* GPIO TCA9555RTWR @@ -749,7 +750,7 @@ uint32_t HeadCard_Actuators_Relocate_callback(uint32_t IfIndex, uint32_t BusyFla case ActuatorIdle: break; case ActuatorMoveDown: - if (count_time <=1) + if ((count_time <=1) && (CleaningStageCounter >1)) Trigger_Head_Actuators_Stub(ACTIN, ENABLE, DOWN); if (count_time > 10) { diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS.h b/Software/Embedded_SW/Embedded/Modules/IDS/IDS.h index a48e0df0c..ee308ce62 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS.h +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS.h @@ -54,4 +54,6 @@ uint32_t IDS_Cleaning_Move_Actuators(void); uint32_t IDS_Cleaning_Spray_Cleaning_Solution (int dispenserSpeed,callback_fptr callback); uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback); +void Init_CleaningStageCounter(); +extern int CleaningStageCounter; #endif //MODULES_IDS_IDS_H_ diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c index 26ba52d76..abfb5f229 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c @@ -46,8 +46,13 @@ t delay2 – 2 sec */ CleaningStageEnum CleaningStage = CleaningStageIdle; -int CleaningStageCounter = 0; -int Tup = 4,Tdelay1 = 9,Tdelay2 = 29; +int Tup = 4,Tdelay1 = 9,Tdelay2 = 29;//set CleaningStageCounter to Tdelay1 - 1 +int CleaningStageCounter = 8;//Tdelay1 - 1 to start with stage moving down + +void Init_CleaningStageCounter() +{ + CleaningStageCounter = Tdelay1 - 1; +} uint32_t IDS_Cleaning_Move_Actuators() { @@ -55,25 +60,26 @@ uint32_t IDS_Cleaning_Move_Actuators() return OK; if (CleaningStageCounter == 1) { - Trigger_Head_Actuators_Stub(ACTIN, true, true); + Trigger_Head_Actuators_Stub(ACTIN, ENABLE, UP); //Trigger_Head_Actuators_Control(ACTIN, LOW,true); Report("IDS_Cleaning_Move_ActuatorUp", __FILE__, __LINE__, 1, RpWarning, CleaningStageCounter, 0); } else if (CleaningStageCounter == Tup) { - Trigger_Head_Actuators_Stub(ACTIN, false, false); + Trigger_Head_Actuators_Stub(ACTIN, DISABLE, DONTCARE); //Trigger_Head_Actuators_Disable(); Report("IDS_Cleaning_Stop_Actuator", __FILE__, __LINE__, Tup, RpWarning, CleaningStageCounter, 0); } else if (CleaningStageCounter == Tdelay1) { - Trigger_Head_Actuators_Stub(ACTIN, true, false); + Trigger_Head_Actuators_Stub(ACTIN, ENABLE, DOWN); //Trigger_Head_Actuators_Control(ACTIN, LOW,false); Report("IDS_Cleaning_MoveDown", __FILE__, __LINE__, Tdelay1, RpWarning, CleaningStageCounter, 0); } else if (CleaningStageCounter == Tdelay2) { CleaningStageCounter = 0; + Trigger_Head_Actuators_Stub(ACTIN, DISABLE, DONTCARE); Report("IDS_Cleaning_Stop_delay", __FILE__, __LINE__, Tdelay2, RpWarning, CleaningStageCounter, 0); } @@ -129,7 +135,7 @@ uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback) status = IDS_Dispenser_Close_Valve_And_Stop_Motor(CLEANER_DISPENSER,callback); Report("IDS_Cleaning_Stop_Cleaning_Solution", __FILE__, __LINE__, CLEANER_DISPENSER, RpWarning, status, 0); HeadCard_Actuators_Relocate(); - CleaningStageCounter = 0; + Init_CleaningStageCounter(); CleaningStage = CleaningStageIdle; Report("IDS_Cleaning_Stop_Cleaning_Solution actuator relocate", __FILE__, __LINE__, CleaningStage, RpWarning, CleaningStageCounter, 0); diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c index c8e3d267e..d68c1c783 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c @@ -1811,7 +1811,9 @@ uint32_t IDSSegmentState(void *SegmentDetails, int SegmentId) } IDS_StopLubrication(); - return OK; + Init_CleaningStageCounter();//set the counter before relocating + HeadCard_Actuators_Relocate(); + return OK; } uint32_t IDS_StartLubrication(void) { diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c index f61eebfa8..c83b01dd0 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c @@ -89,11 +89,17 @@ void Stub_ProgressRequest(MessageContainer* requestContainer) if(request->amount == 0xacc1e) - { - response.progress = IDS_Cleaning_Move_Actuators(); - response.has_progress = true; - } - else + { + response.progress = IDS_Cleaning_Move_Actuators(); + response.has_progress = true; + } + else + if(request->amount == 0xacc1ea) + { + response.progress = HeadCard_Actuators_Relocate(); + response.has_progress = true; + } + else if(request->amount == 0xC04f) { |
