diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2018-11-18 08:16:57 +0200 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2018-11-18 08:16:57 +0200 |
| commit | 53b5ef734132b543838e1663fe96d70457d8a62b (patch) | |
| tree | fceae44c3a606a1bd8c4b514eb88e827453ca151 /Software/Embedded_SW | |
| parent | 0c43f6919cf12f126f501d84fb76c940b8e9c7bb (diff) | |
| download | Tango-53b5ef734132b543838e1663fe96d70457d8a62b.tar.gz Tango-53b5ef734132b543838e1663fe96d70457d8a62b.zip | |
my pc changes. HardwareBlower with a heating voltage
Diffstat (limited to 'Software/Embedded_SW')
13 files changed, 54 insertions, 59 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/report/distributor.c b/Software/Embedded_SW/Embedded/Common/report/distributor.c index cbc754a7e..0bd4574e0 100644 --- a/Software/Embedded_SW/Embedded/Common/report/distributor.c +++ b/Software/Embedded_SW/Embedded/Common/report/distributor.c @@ -240,7 +240,7 @@ Void reportService(UArg arg0, UArg arg1) int DistTableEntry;//,msgLen, errCode, par1, par2; ReportInitParams InitParams; - InitParams.DistributorQueueMaxMsgs = 15; + InitParams.DistributorQueueMaxMsgs = 40; InitParams.DistributorTaskPriority = 6; InitParams.MaxNumOfFilterNames = 1; InitParams.MaxNumberOfPrivateDistributors = 2; diff --git a/Software/Embedded_SW/Embedded/Communication/CommunicationTask.c b/Software/Embedded_SW/Embedded/Communication/CommunicationTask.c index b27ab687d..1fffc3c21 100644 --- a/Software/Embedded_SW/Embedded/Communication/CommunicationTask.c +++ b/Software/Embedded_SW/Embedded/Communication/CommunicationTask.c @@ -15,7 +15,7 @@ static void (*callback)(char* buffer, size_t length); Mailbox_Handle CommunicationRxMsgQ = NULL; Mailbox_Handle CommunicationTxMsgQ = NULL; -#define COMMUNICATION_NUM_MSGS 20 +#define COMMUNICATION_NUM_MSGS 50 typedef struct CommRxMessage{ //uint16_t messageId; uint16_t msgSize; diff --git a/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c b/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c index 8374133a7..780e2ede3 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c +++ b/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c @@ -488,6 +488,8 @@ uint32_t MotorMovetoLimitSwitch (TimerMotors_t _motorId,bool direction, uint32_t MotorSetDirection( _motorId, direction); MotorSetSpeed(_motorId, Freq); MotorMovetoLimitSwitchControlId[_motorId] = AddControlCallback( MotorMoveToLimitSwitchCallBackFunction, eOneMillisecond , FPGA_Read_limit_Switches,(IfTypeMotors*0x100+_motorId), LimitSwitchId, 0 ); + if ( MotorMovetoLimitSwitchControlId[_motorId] == 0xFF) + return ERROR; MotorMovetoLimitSwitchCallback[_motorId] = callback; return OK; diff --git a/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c b/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c index c2dca51cd..09c4ccb0c 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c +++ b/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c @@ -361,7 +361,8 @@ uint32_t Control3WayValvesWithCallback (Valves_t _ValveId, bool direction, callb Valve_Set(_ValveId, direction); Valve3WayControlId[_ValveId] = AddControlCallback( Valve3WayCallBackFunction, eTenMillisecond, FPGA_GetDispenserValveBusyOCD,(IfTypeDisopenser*0x100+_ValveId), _ValveId, 0 ); - + if (Valve3WayControlId[_ValveId] == 0xFF) + LOG_ERROR(_ValveId, "Add control callback failed"); return Valve3WayControlId[_ValveId]; } diff --git a/Software/Embedded_SW/Embedded/Main.c b/Software/Embedded_SW/Embedded/Main.c index 2f337b12c..2a8fc78a6 100644 --- a/Software/Embedded_SW/Embedded/Main.c +++ b/Software/Embedded_SW/Embedded/Main.c @@ -166,6 +166,10 @@ int main(void) SysCtlUSBPLLEnable(); +#ifndef EVALUATION_BOARD + DeActivateAllSSR(); +#endif + #ifdef WATCHDOG InitWatchdog(ui32SysClock); #endif @@ -202,12 +206,9 @@ int main(void) SysCtlDelay(1000); Erase_Block(0);*/ //----------------------------------------------------------- -#ifndef EVALUATION_BOARD +#ifndef EVALUATION_BOARD //Turn_the_Blower_On();//Turn on with the Default_Voltage - - DeActivateAllSSR(); - ActivateChiller();//SSR12 #endif //EMAC_initEMAC(); diff --git a/Software/Embedded_SW/Embedded/Modules/Control/control.c b/Software/Embedded_SW/Embedded/Modules/Control/control.c index 78cdd5324..1e9237320 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/control.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/control.c @@ -202,7 +202,7 @@ uint32_t AddControlCallback( ControlCBFunction Callback, CTRL_TIMING_ENUM CtrlF unsigned int key; uint32_t device_i; - uint32_t deviceId = 0xFFFFFFFF; + uint32_t deviceId = 0xFF; for(device_i = 0;device_i < MAX_TANGO_CONTROL_DEVICES;device_i++) { if (ControlArray[device_i].ControlActive == false) @@ -211,8 +211,8 @@ uint32_t AddControlCallback( ControlCBFunction Callback, CTRL_TIMING_ENUM CtrlF break; } } - if (deviceId == 0xFFFFFFFF) - return 0xFFFFFFFF; + if (deviceId == 0xFF) + return 0xFF; key = GateMutex_enter(gateControlDB); ControlArray[deviceId].ControlTiming = CtrlFrequency; ControlArray[deviceId].ControlCallbackPtr = Callback; diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index 01e683dae..89793cfcd 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -249,9 +249,10 @@ void DiagnosticLoadTemperature(int HeaterId, int temperature) void DiagnosticLoadSpeedSensor(float value) { SpeedValue[SpeedCounterIndex] = (double)(value); - SpeedCounterIndex++; - if (SpeedCounterIndex>=DIAGNOSTICS_DANCER_LIMIT ) - SpeedCounterIndex = 0; + if (SpeedCounterIndex<DIAGNOSTICS_DANCER_LIMIT ) + SpeedCounterIndex++; + //if (SpeedCounterIndex>=DIAGNOSTICS_DANCER_LIMIT ) + // SpeedCounterIndex = 0; } void DiagnosticLoadDancer(int DancerId, uint16_t value) @@ -262,9 +263,10 @@ void DiagnosticLoadDancer(int DancerId, uint16_t value) return; } DancerValue[DancerId][DancerCounterIndex[DancerId]] = value; - DancerCounterIndex[DancerId]++; - if (DancerCounterIndex[DancerId]>=DIAGNOSTICS_DANCER_LIMIT ) - DancerCounterIndex[DancerId] = 0; + if (DancerCounterIndex[DancerId]<DIAGNOSTICS_DANCER_LIMIT ) + DancerCounterIndex[DancerId]++; + //if (DancerCounterIndex[DancerId]>=DIAGNOSTICS_DANCER_LIMIT ) + // DancerCounterIndex[DancerId] = 0; } void DiagnosticLoadDancerError(int DancerId, double value) { @@ -274,9 +276,10 @@ void DiagnosticLoadDancerError(int DancerId, double value) return; } DancerErrorValue[DancerId][DancerErrorCounterIndex[DancerId]] = value; - DancerErrorCounterIndex[DancerId]++; - if (DancerErrorCounterIndex[DancerId]>=DIAGNOSTICS_DANCER_LIMIT ) - DancerErrorCounterIndex[DancerId] = 0; + if (DancerErrorCounterIndex[DancerId]<DIAGNOSTICS_DANCER_LIMIT ) + DancerErrorCounterIndex[DancerId]++; + //if (DancerErrorCounterIndex[DancerId]>=DIAGNOSTICS_DANCER_LIMIT ) + // DancerErrorCounterIndex[DancerId] = 0; } void DiagnosticTenMsecCollection(void) @@ -589,7 +592,7 @@ void SendDiagnostics(void) } else { - Report("Diagnostic Messgage",__FILE__,__LINE__,container_size,RpWarning,msec_millisecondCounter, msec_millisecondCounter); + Report("Diagnostic Message",__FILE__,__LINE__,container_size,RpWarning,msec_millisecondCounter, msec_millisecondCounter); } diag_size[diag_index] = container_size; diag_time[diag_index] = msec_millisecondCounter; diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 6222378bb..0e4466d81 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -358,7 +358,13 @@ uint32_t PrepareHeater(int HeaterId, uint32_t SetTemperatue) #endif InitialHeating = true; HeaterReady[HeaterId] = false; - Turn_the_Blower_Off(); + if (BlowerCfg.enabled == true) + { + Turn_the_Blower_On();//Turn on with the Default_Voltage + if (BlowerCfg.voltage) + Control_Voltage_To_Blower(BlowerCfg.voltage-500); + + } } /* if (HeaterId == HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain) //Dryer Heaters { diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c index 64855daed..36c9dbf60 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c @@ -151,36 +151,6 @@ void DispenserPrepareReady(void) DispenserPrepareReady(); return OK; } -bool IDS_isDispenserUsedNextSegment(void *JobDetails,int DispenserId, int SegmentId) -{ - JobTicket* JobTicket = JobDetails; - int Dispenser_i,n_dispensers; - if (JobTicket->n_segments == 0) - return false; - if (JobTicket->n_segments <= SegmentId) - return false; - if (JobTicket->segments[SegmentId]->brushstops[0]->n_dispensers) - { - n_dispensers = JobTicket->segments[SegmentId]->brushstops[0]->n_dispensers; - for (Dispenser_i = 0;Dispenser_i < n_dispensers;Dispenser_i++) - { - if (DispenserId == JobTicket->segments[SegmentId]->brushstops[0]->dispensers[Dispenser_i]->index) //dispenser is in use next segment - { - if (JobTicket->segments[SegmentId]->brushstops[0]->dispensers[Dispenser_i]->nanolitterpersecond>0) - { - return true; - } - else - { - return false; - } - } - } - } - - return false; - -} //******************************************************************************************************************** uint32_t IDS_Valve_PresegmentReady(uint32_t deviceID, uint32_t ReadValue) { @@ -240,7 +210,7 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId) continue; DispenserPreSegmentReady[DispenserId] = false; LOG_ERROR(DispenserId,"Dispenser PreSegment Start"); - if (IDS_isDispenserUsedNextSegment(JobDetails,DispenserId,SegmentId) == false) + if (JobTicket->segments[SegmentId]->brushstops[0]->dispensers[Dispenser_i]->nanolitterpersecond==0) { Control3WayValvesWithCallback ((Valves_t)DispenserId, MidTank_Dispenser, IDS_Valve_PresegmentReady); //direction: MidTank_Dispenser or Dispenser_Mixer LOG_ERROR(DispenserId,"Dispenser Not Used Next Segment"); diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.new b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.new index 537d27775..e21114603 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.new +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.new @@ -177,7 +177,7 @@ uint32_t CalculateNumberOfSteps (uint32_t Counter, bool direction) float screw_horizontal_speed = 0; float RotationsPerSecond; - if (Counter%InternalWinderCfg.spoolbackingrate == 1) + if (Counter%InternalWinderCfg.spoolbackingrate == 0) { NumberOfSteps -= (Counter/InternalWinderCfg.spoolbackingrate); REPORT_MSG(ScrewNumberOfSteps, "Head Backing ScrewNumberOfSteps"); @@ -189,14 +189,14 @@ uint32_t CalculateNumberOfSteps (uint32_t Counter, bool direction) ScrewSpeed = screw_horizontal_speed*RotationsPerSecond; //MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_SCREW,ScrewSpeed); - REPORT_MSG(ScrewSpeed, "CalculateNumberOfSteps ScrewSpeed"); - REPORT_MSG(CurrentControlledSpeed[WINDER_MOTOR], "CalculateNumberOfSteps Winder speed"); + //REPORT_MSG(ScrewSpeed, "CalculateNumberOfSteps ScrewSpeed"); + //REPORT_MSG(CurrentControlledSpeed[WINDER_MOTOR], "CalculateNumberOfSteps Winder speed"); CurrentControlledSpeed[SCREW_MOTOR] = ScrewSpeed; } if ((Counter%InternalWinderCfg.SpoolBottomBackingRate == 0)||(Counter%InternalWinderCfg.SpoolBottomBackingRate == 1)) { - if (direction != MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_SCREW].directionthreadwize) + if (direction == MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_SCREW].directionthreadwize)//because the direction is already reversed at the interrupt { NumberOfSteps += (Counter/InternalWinderCfg.SpoolBottomBackingRate); ScrewNumberOfSteps++; @@ -391,7 +391,7 @@ void ScrewTimerInterrupt(int ARG0) { TimerDisable(Screw_timerBase, TIMER_A); } - Report("ScrewTimerInterrupt duration, speed", __FILE__,__LINE__,ScrewRunningTime, RpMessage, ScrewSpeed, 0); + //Report("ScrewTimerInterrupt duration, speed", __FILE__,__LINE__,ScrewRunningTime, RpMessage, ScrewSpeed, 0); // // Enable all interrupts. // diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index 3b17cd5dd..40fd14fde 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -706,16 +706,20 @@ uint32_t ThreadPreSegmentState(void *JobDetails) return OK; } +int REPSegmentId = 0; void ThreadInterSegmentEnded(void) { + LOG_ERROR (REPSegmentId," ThreadSegmentState"); PreSegmentReady(Module_Thread,ModuleDone); } void ThreadSegmentEnded(void) { + LOG_ERROR (REPSegmentId," ThreadSegmentState"); SegmentReady(Module_Thread,ModuleDone); } void ThreadDistanceToSpoolEnded(void) { + LOG_ERROR (REPSegmentId," ThreadSegmentState"); 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; } diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c index 67cb7c666..d595f1fe4 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c @@ -202,7 +202,10 @@ static ReturnCode PrepareState(void *JobDetails) } if (Configured[Module_Winder]) { - Winder_Prepare(); + if( Winder_Prepare()!= OK) + { + SendJobProgress(0.0, 0, false, "Winder prepare failed !!!!"); + } } return retcode; @@ -488,6 +491,7 @@ void JobRequestFunc(MessageContainer* requestContainer) } if (status == PASSED) { + Report("Job Request ",__FILE__,__LINE__,Ticket->processparameters->dyeingspeed,RpWarning,Ticket->n_segments, Ticket->intersegmentlength); StartJob(CurrentJob); } } diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c index 204410bcd..4463304e7 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c @@ -441,6 +441,7 @@ void StartPrinting(void) void StopPrinting(void) { } +int SegmentId = 0; void PrintSTMMsgHandler(void * msg) { JobMessageStruc *Message = msg; @@ -453,7 +454,6 @@ void PrintSTMMsgHandler(void * msg) //REPORT_ERR ... return; } - static int SegmentId = 0; switch(PrtMessage->messageId) { case PrintRequest: @@ -468,6 +468,7 @@ void PrintSTMMsgHandler(void * msg) break; case SegmentResultsOk: SegmentId++; + LOG_ERROR(SegmentId, "SegmentResultsOk segmentId"); if (SegmentId >= CurrentJob->n_segments) { if (dryerbufferlength == 0) |
