aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2018-09-05 12:50:10 +0300
committerShlomo Hecht <shlomo@twine-s.com>2018-09-05 12:50:10 +0300
commitfdb22013526ea2d6cbd39df77b87f25e6197e081 (patch)
tree3ae08e7eda1e2ba798e586f442b73fc476bd1c2c /Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
parentcbe023d4bf6a1556deee770db4f6a7d1d2fa3af4 (diff)
downloadTango-fdb22013526ea2d6cbd39df77b87f25e6197e081.tar.gz
Tango-fdb22013526ea2d6cbd39df77b87f25e6197e081.zip
streamline all job actions (end, abort) htrough the process task.
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
index f97082365..50c99bf62 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
@@ -22,6 +22,8 @@
#include "drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h"
bool Winder_ScrewHoming = false;
+bool Winder_Active = false;
+
uint32_t Winder_ScrewAtOffsetCallback(uint32_t deviceID, uint32_t BusyFlag);
uint32_t Winder_PrepareStage2(uint32_t deviceID, uint32_t ReadValue);
@@ -71,7 +73,7 @@ uint32_t Winder_Prepare(void)
{
uint32_t status = 0;
//JobTicket* JobTicket = JobDetails;
-
+ Winder_Active = true;
//float process_speed = JobTicket->processparameters->dyeingspeed;
double ScrewSpeed = 1000;//(process_speed*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_SCREW].pulleyradius); // we will use pulley radius of the screw for this purpose, as of now
//REPORT_MSG(ScrewSpeed, "Winder_Prepare");
@@ -214,6 +216,8 @@ uint32_t ScrewDirectionChange(uint32_t deviceID, uint32_t BusyFlag)
BusyfirstCall = false;
return OK;
}
+ if (Winder_Active == false)
+ return OK;
wtick++;
//ScrewCurrentDirection: false moves out, true moves home
if (BusyFlag == NOTBUSY)
@@ -226,7 +230,7 @@ uint32_t ScrewDirectionChange(uint32_t deviceID, uint32_t BusyFlag)
wgap_counter = 0;
}
else
- return;
+ return OK;
CalculateNumberOfSteps (DirectionChangeCounter++, ScrewCurrentDirection);
Steps = ScrewNumberOfSteps;
if (ScrewCurrentDirection == false)
@@ -296,7 +300,7 @@ uint32_t Winder_Presegment(void *JobDetails, uint32_t SegmentId)
ScrewSpeed = screw_horizontal_speed*RotationsPerSecond;
MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_SCREW,ScrewSpeed);
- usnprintf(Message, 80, "SCREW speed Rot/sec %d horizon %d pulses %d",RotationsPerSecond,screw_horizontal_speed,ScrewSpeed);
+ usnprintf(Message, 80, "SCREW speed Rot/sec %d horizon %d pulses %d",(int)RotationsPerSecond,(int)screw_horizontal_speed,(int)ScrewSpeed);
//LOG_ERROR(segmentfirst_speed,Message);
//Report(Message,__FILE__,__LINE__,Dispenser_i,RpWarning,segmentfirst_speed,0);
SendJobProgress(0.0,0,false, Message);
@@ -325,6 +329,7 @@ uint32_t Winder_End(void)
int pend;
//stop screw
ScrewNumberOfSteps = 0;
+ Winder_Active = false;
if (ScrewControlId != 0xFF)
RemoveControlCallback(ScrewControlId,ScrewDirectionChange);
pend = MillisecFlushMsgQ(HARDWARE_MOTOR_TYPE__MOTO_SCREW);