From aeacbdabd448b2e7455e16460b996c8090731d9d Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Thu, 15 Nov 2018 14:54:51 +0200 Subject: many logs. improve job handling and IDS. NEW WINDER ALGORITHM (Interrupts) --- .../Embedded_SW/Embedded/Modules/Thread/Thread_print.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c') diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index 3b17cd5dd..e189e2639 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -42,7 +42,7 @@ uint32_t CurrentControlledSpeed[MAX_THREAD_MOTORS_NUM] = {0}; TimerMotors_t ThreadMotorIdToMotorId[MAX_THREAD_MOTORS_NUM] = {HARDWARE_MOTOR_TYPE__MOTO_RDRIVING,HARDWARE_MOTOR_TYPE__MOTO_DRYER_DRIVING,HARDWARE_MOTOR_TYPE__MOTO_LDRIVING,HARDWARE_MOTOR_TYPE__MOTO_WINDER,HARDWARE_MOTOR_TYPE__MOTO_SCREW}; HardwareDancerType ThreadMotorIdToDancerId[MAX_THREAD_MOTORS_NUM] = {FEEDER_DANCER,NUM_OF_DANCERS,POOLER_DANCER,WINDER_DANCER,NUM_OF_DANCERS}; -uint32_t ControlIdtoMotorId [MAX_THREAD_MOTORS_NUM] = {0xFF}; +uint32_t ControlIdtoMotorId [MAX_THREAD_MOTORS_NUM] = {0xFF,0xFF,0xFF,0xFF,0xFF}; uint32_t SpeedControlId=0xFF; uint32_t PoolerSpeedControlId=0xFF; @@ -706,16 +706,20 @@ uint32_t ThreadPreSegmentState(void *JobDetails) return OK; } +int REPSegmentId = 0; void ThreadInterSegmentEnded(void) { + LOG_ERROR (REPSegmentId,"ThreadInterSegmentEnded"); PreSegmentReady(Module_Thread,ModuleDone); } void ThreadSegmentEnded(void) { + LOG_ERROR (REPSegmentId," ThreadSegmentState"); SegmentReady(Module_Thread,ModuleDone); } void ThreadDistanceToSpoolEnded(void) { + LOG_ERROR (REPSegmentId," ThreadDistanceToSpoolEnded"); DistanceToSpoolReady(Module_Thread,ModuleDone); } double seglength = 0.0; @@ -723,8 +727,10 @@ double seglength = 0.0; uint32_t ThreadSegmentState(void *JobDetails, int SegmentId) { JobTicket* JobTicket = JobDetails; + REPSegmentId = SegmentId; seglength = JobTicket->segments[SegmentId]->length; CurrentSegmentId = SegmentId; + LOG_ERROR (seglength," ThreadSegmentState"); ThreadUpdateProcessLength (seglength,(void *)ThreadSegmentEnded); return OK; } @@ -733,6 +739,7 @@ uint32_t ThreadSegmentState(void *JobDetails, int SegmentId) uint32_t ThreadDistanceToSpoolState(void ) { seglength = dryerbufferlength; + LOG_ERROR (seglength,"ThreadDistanceToSpoolState"); ThreadUpdateProcessLength (seglength,(void *)ThreadDistanceToSpoolEnded); return OK; } @@ -766,7 +773,10 @@ char Endstr[150]; { if (ControlIdtoMotorId[Motor_i] != 0xFF) { - RemoveControlCallback(ControlIdtoMotorId[Motor_i],ThreadControlCBFunction); + if(RemoveControlCallback(ControlIdtoMotorId[Motor_i],ThreadControlCBFunction) == OK) + ControlIdtoMotorId[Motor_i] == 0xFF; + else + LOG_ERROR (ControlIdtoMotorId[Motor_i],"Remove Control failed"); } MotorStop(ThreadMotorIdToMotorId[Motor_i],Hard_Hiz); } -- cgit v1.3.1