aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/IDS
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2020-08-03 17:58:24 +0300
committerAvi Levkovich <avi@twine-s.com>2020-08-03 17:58:24 +0300
commit29367e183afdf3ffa17cb9ec4d3869b93cb4764d (patch)
tree1883755f661a800b54972a608652e6fab6eea7af /Software/Embedded_SW/Embedded/Modules/IDS
parent563541739f0e49e29e3848376964f36519839148 (diff)
downloadTango-29367e183afdf3ffa17cb9ec4d3869b93cb4764d.tar.gz
Tango-29367e183afdf3ffa17cb9ec4d3869b93cb4764d.zip
Update the actuator cleaning and relocate logic
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/IDS')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS.h2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c18
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c4
3 files changed, 17 insertions, 7 deletions
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)
{