aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/Thread
diff options
context:
space:
mode:
authorShai Frieder <Shai.Frieder@twine-s.com>2019-10-31 10:14:56 +0200
committerShai Frieder <Shai.Frieder@twine-s.com>2019-10-31 10:14:56 +0200
commitf30109bbda4fbc3f9c72aa63559f919b1b19b940 (patch)
treeed8b492eed92d9d50631240c0b89cb7628578b40 /Software/Embedded_SW/Embedded/Modules/Thread
parent83d531de5f1026471ef774a85db4f654d985245e (diff)
parent4aca8247565596d6c12ba73242d599dc42887625 (diff)
downloadTango-f30109bbda4fbc3f9c72aa63559f919b1b19b940.tar.gz
Tango-f30109bbda4fbc3f9c72aa63559f919b1b19b940.zip
Take the remot
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Thread')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
index 47fc37081..45acfabea 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
@@ -49,6 +49,7 @@ uint32_t PoolerSpeedControlId=0xFF;
double DancerError[NUM_OF_DANCERS] = {0.0};
double OriginalMotorSpd_2PPS[MAX_THREAD_MOTORS_NUM] = {0};
+double InitialDryerSpeed = 0.0;
uint32_t JobCounter = 0;
MotorControlConfig_t MotorControlConfig[MAX_THREAD_MOTORS_NUM];
@@ -852,6 +853,7 @@ void SetOriginMotorSpeed(float process_speed)
/ (2 * PI * MotorsCfg[HW_Motor_Id].pulleyradius);
//MotorControlConfig[Motor_i].m_SetParam = motor_speed;
OriginalMotorSpd_2PPS[Motor_i] = (int) motor_speed;
+ InitialDryerSpeed = 0.0;
CurrentControlledSpeed[Motor_i] = (int) motor_speed;
//Report("Original Speed",__FILE__,Motor_i,motor_speed,RpWarning,process_speed,0);
@@ -865,6 +867,25 @@ void ThreadPreSegmentEnded(void)
REPORT_MSG (0,"First ThreadPreSegmentEnded");
PreSegmentReady(Module_Thread,ModuleDone);
}
+#define DRYER_RAMPUP 1
+#ifdef DRYER_RAMPUP
+uint32_t ThreadDryerRampUp(uint32_t IfIndex, uint32_t BusyFlag)
+{
+ InitialDryerSpeed += (OriginalMotorSpd_2PPS[DRYER_MOTOR]/10);
+ if (InitialDryerSpeed >= OriginalMotorSpd_2PPS[DRYER_MOTOR])
+ {
+ InitialDryerSpeed = OriginalMotorSpd_2PPS[DRYER_MOTOR];
+ SafeRemoveControlCallback(ControlIdtoMotorId[DRYER_MOTOR], ThreadDryerRampUp );
+ ControlIdtoMotorId[DRYER_MOTOR] = 0xFF;
+ }
+
+ MotorSetSpeed(HARDWARE_MOTOR_TYPE__MOTO_DRYER_DRIVING,InitialDryerSpeed );
+ Report("ThreadDryerRampUp",__FILE__,ControlIdtoMotorId[DRYER_MOTOR],(int)InitialDryerSpeed,RpWarning,(int)OriginalMotorSpd_2PPS[DRYER_MOTOR],0);
+
+
+ return OK;
+}
+#endif
//********************************************************************************************************************
uint32_t ThreadPreSegmentState(void *SegmentDetails, uint32_t SegmentId)
@@ -886,7 +907,13 @@ uint32_t ThreadPreSegmentState(void *SegmentDetails, uint32_t SegmentId)
PrepareState = false;
#ifndef TEST_PID_THREAD
// set the new speed in the dryer motor to the speed of the new segment
+#ifndef DRYER_RAMPUP
MotorSetSpeed(HARDWARE_MOTOR_TYPE__MOTO_DRYER_DRIVING, OriginalMotorSpd_2PPS[DRYER_MOTOR]);
+#else
+ InitialDryerSpeed = OriginalMotorSpd_2PPS[DRYER_MOTOR]/10;
+ MotorSetSpeed(HARDWARE_MOTOR_TYPE__MOTO_DRYER_DRIVING,InitialDryerSpeed );
+ ControlIdtoMotorId[DRYER_MOTOR] = AddControlCallback(ThreadDryerRampUp, 200,TemplateDataReadCBFunction,0,0,0);
+#endif
#endif
#ifdef HUNDRED_MICROSECONDS_DANCER_READ
MillisecLogInit();