diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2018-06-20 19:59:18 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2018-06-20 19:59:18 +0300 |
| commit | 0087c3567ff7322869fa6871e16372a49c382f38 (patch) | |
| tree | 8642cdf67a65a11938f05499164f3f6a8ba7f510 /Software/Embedded_SW/Embedded/Modules/Thread | |
| parent | 65d898feb5cadb4bf421f03e40ef3f3109c881a6 (diff) | |
| download | Tango-0087c3567ff7322869fa6871e16372a49c382f38.tar.gz Tango-0087c3567ff7322869fa6871e16372a49c382f38.zip | |
IDS Handling, Reports, Winder message flushing
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Thread')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c | 4 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c | 8 |
2 files changed, 11 insertions, 1 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c index 3505ff3c6..e564e52d0 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c @@ -72,6 +72,8 @@ uint32_t Winder_PrepareStage2(uint32_t deviceID, uint32_t ReadValue) uint32_t status=OK; uint32_t numOfSteps = InternalWinderCfg.startoffsetpulses*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_SCREW].microstep; + MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_SCREW,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_SCREW].maxfrequency); + status |= MotorMoveWithCallback(HARDWARE_MOTOR_TYPE__MOTO_SCREW, (1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_SCREW].directionthreadwize),numOfSteps, Winder_ScrewAtOffsetCallback); //set motor location 0 here return status; @@ -180,10 +182,12 @@ uint32_t Winder_Presegment(void *JobDetails) } uint32_t Winder_End(void) { + int pend; //stop screw ScrewNumberOfSteps = 0; if (ScrewControlId != 0xFF) RemoveControlCallback(ScrewControlId,ScrewDirectionChange); + pend = MillisecFlushMsgQ(HARDWARE_MOTOR_TYPE__MOTO_SCREW); return MotorStop (HARDWARE_MOTOR_TYPE__MOTO_SCREW,Hard_Hiz); } void Winder_ScrewHomeLimitSwitchInterrupt(void) diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index e9cc3ddde..444a9fb5d 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -523,12 +523,14 @@ void ThreadDistanceToSpoolEnded(void) { } +double seglength = 0.0; //******************************************************************************************************************** uint32_t ThreadSegmentState(void *JobDetails, int SegmentId) { JobTicket* JobTicket = JobDetails; + seglength = JobTicket->segments[SegmentId]->length; CurrentSegmentId = SegmentId; - ThreadUpdateProcessLength (JobTicket->segments[SegmentId]->length,(void *)ThreadSegmentEnded); + ThreadUpdateProcessLength (seglength,(void *)ThreadSegmentEnded); return OK; } @@ -536,9 +538,13 @@ uint32_t ThreadSegmentState(void *JobDetails, int SegmentId) uint32_t ThreadEndState(void *JobDetails) { int Motor_i; + ThreadUpdateProcessLength (0.0,(void *)NULL); + SetOriginMotorSpeed(0); + if (SpeedControlId != 0xFF) { RemoveControlCallback(SpeedControlId,ThreadLengthCBFunction); + SpeedControlId == 0xFF; } for ( Motor_i = 0;Motor_i < MAX_THREAD_MOTORS_NUM;Motor_i++) { |
