aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-05-15 12:39:00 +0300
committerShlomo Hecht <shlomo@twine-s.com>2020-05-15 12:39:00 +0300
commitdbaa3118334f2de0a8225dbc130404e3085c551e (patch)
tree853499e126fd89692dd0bdd5618a29f54b193ef8 /Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
parenta6460fc5311a59b414319d66d12b34e7c7c2d825 (diff)
downloadTango-dbaa3118334f2de0a8225dbc130404e3085c551e.tar.gz
Tango-dbaa3118334f2de0a8225dbc130404e3085c551e.zip
version 1.4.6.27
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
index 69f640c45..f0e459514 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
@@ -140,6 +140,13 @@ uint32_t Control_Delta_Position_Pass(uint32_t Current_Read,uint32_t Previous_Rea
* **************************************************************************************/
uint32_t initialpos = 0xFFFF;
uint32_t Poolerinitialpos = 0xFFFF;
+#define SPEED_STORE_SIZE 20
+float PullerSpeedStore[SPEED_STORE_SIZE];
+float PullerSpeedAverage;
+int PullerSpeedIndex = 0;
+float FeederSpeedStore[SPEED_STORE_SIZE];
+float FeederSpeedAverage;
+int FeederSpeedIndex = 0,Speed_i;
void ThreadUpdateProcessLength (double length, void *Funcptr)
{
@@ -206,6 +213,15 @@ uint32_t ThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue)
}
}
+ FeederSpeedStore[FeederSpeedIndex++] = length;
+ if (FeederSpeedIndex>=SPEED_STORE_SIZE)
+ {
+ FeederSpeedIndex = 0;
+ for (Speed_i = 0;Speed_i<SPEED_STORE_SIZE;Speed_i++)
+ FeederSpeedAverage+=FeederSpeedStore[Speed_i];
+ FeederSpeedAverage = FeederSpeedAverage/SPEED_STORE_SIZE;
+ ReportWithPackageFilter(ThreadFilter,"Average Speed 2 second",__FILE__,__LINE__,(int)(FeederSpeedAverage*100),RpWarning,(int)(PullerSpeedAverage*100),0);
+ }
TotalProcessedLength += (length/100);
TempTotalProcessedLength = TotalProcessedLength;
#ifdef FEEDER_LENGTH_CALCULATION
@@ -242,7 +258,6 @@ uint32_t ThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue)
return OK;
}
-
uint32_t PoolerThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue)
{
uint32_t positionDiff = 0,prevprev;
@@ -297,6 +312,15 @@ uint32_t PoolerThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue)
length = 0;
}
+ PullerSpeedStore[PullerSpeedIndex++] = length;
+ if (PullerSpeedIndex>=SPEED_STORE_SIZE)
+ {
+ PullerSpeedIndex = 0;
+ for (Speed_i = 0;Speed_i<SPEED_STORE_SIZE;Speed_i++)
+ PullerSpeedAverage+=PullerSpeedStore[Speed_i];
+ PullerSpeedAverage = PullerSpeedAverage/SPEED_STORE_SIZE;
+ //ReportWithPackageFilter(ThreadFilter,"Average Speed 2 second",__FILE__,__LINE__,(int)(FeederSpeedAverage*100),RpWarning,(int)(PullerSpeedAverage*100),0);
+ }
//}
@@ -1101,6 +1125,9 @@ uint32_t ThreadPreSegmentState(void *SegmentDetails, uint32_t SegmentId)
SetOriginMotorSpeed(process_speed);
ThreadControlActive = true;
PrepareState = false;
+ PullerSpeedIndex = 0;
+ FeederSpeedIndex = 0;
+
#ifndef TEST_PID_THREAD
// set the new speed in the dryer motor to the speed of the new segment
if(MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDRIVING].speedmaster == false)