diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-12-11 19:43:52 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-12-11 19:43:52 +0200 |
| commit | 7427f44de312fb00e138320cedd7d4459015910a (patch) | |
| tree | 0d10ce1a2bca86cd4b47ce58125fc9549efc004c /Software/Embedded_SW/Embedded/Modules | |
| parent | 48f781d037a83c51fdd555fb6c9d1c2b4e424efe (diff) | |
| parent | 8b33b9e1f8722ae98e44bd3a25211bfcf53134c6 (diff) | |
| download | Tango-7427f44de312fb00e138320cedd7d4459015910a.tar.gz Tango-7427f44de312fb00e138320cedd7d4459015910a.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
4 files changed, 35 insertions, 19 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 08353d1d9..e12ede228 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -656,7 +656,7 @@ uint32_t DCHeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) // Counter[index] = 0; // Report(logmsg[index],__FILE__,__LINE__,index,RpWarning,index, Counter[index]); // #warning PID is now only proportional (above) - if (index == HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1) + if (index == HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ2) { len = usnprintf(heatstr, 254, "PID id, Temp, Integral, Output { %d, %d ,%d, %d}",index,(int)HeaterPIDConfig[index].m_mesuredParam ,(int)HeaterPIDConfig[index].m_integral,(int)HeaterPIDConfig[index].m_calculatedError); Report(heatstr,__FILE__,__LINE__,index,RpWarning,HeaterPIDConfig[index].m_calculatedError,0); diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c index ab959f341..62a534a1c 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c @@ -187,6 +187,7 @@ bool IDS_isDispenserUsedNextSegment(void *JobDetails,int DispenserId, int Segmen { TimerMotors_t HW_Motor_Id = DispenserIdToMotorId[deviceID]; MotorStop(HW_Motor_Id,Hard_Hiz); + REPORT_MSG(deviceID,"Dispenser PreSegment called"); IDS_Valve_PresegmentReady( deviceID, ReadValue); } //******************************************************************************************************************** @@ -250,7 +251,7 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId) //prepare the SW structures DispenserId = JobTicket->segments[SegmentId]->brushstops[JobBrushStopId]->dispensers[Dispenser_i]->index; DispenserPreSegmentReady[DispenserId] = false; - LOG_ERROR(DispenserId,"Dispenser PreSegment Start"); + REPORT_MSG(DispenserId,"Dispenser PreSegment Start"); } for (Dispenser_i = 0;Dispenser_i < n_dispensers;Dispenser_i++) { @@ -258,22 +259,27 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId) HW_Motor_Id = DispenserIdToMotorId[DispenserId]; if (MotorsCfg[HW_Motor_Id].hardwaremotortype != DispenserIdToMotorId[DispenserId])//unconfigured dispenser { - LOG_ERROR(DispenserId,"Dispenser PreSegment not configured"); + REPORT_MSG(DispenserId,"Dispenser PreSegment not configured"); continue; } if (JobTicket->segments[SegmentId]->brushstops[0]->dispensers[Dispenser_i]->nanolitterpersecond==0) - //if (IDS_isDispenserUsedNextSegment(JobDetails,Dispenser_i,SegmentId) == false) { //MotorStop(HW_Motor_Id,Hard_Hiz); Control3WayValvesWithCallback ((Valves_t)DispenserId, MidTank_Dispenser, IDS_Valve_PresegmentValveReady); //direction: MidTank_Dispenser or Dispenser_Mixer - LOG_ERROR(DispenserId,"Dispenser Not Used Next Segment"); + REPORT_MSG(DispenserId,"Dispenser Not Used Next Segment"); } else { - IDS_Valve_PresegmentReady(DispenserId,0); - LOG_ERROR(DispenserId,"Dispenser is Used Next Segment"); - if (JobTicket->intersegmentlength) //there is an intersegment, stop all the dispensers. otherwise stop only dispensers that are not in use in the next segment. - MotorStop(HW_Motor_Id,Hard_Hiz); + if ((JobTicket->intersegmentlength)&&(SegmentId>0)) //there is an intersegment, stop all the dispensers. otherwise stop only dispensers that are not in use in the next segment. + { + Control3WayValvesWithCallback ((Valves_t)DispenserId, MidTank_Dispenser, IDS_Valve_PresegmentValveReady); //direction: MidTank_Dispenser or Dispenser_Mixer + REPORT_MSG(DispenserId,"Dispenser Used Next Segment with intersegment"); + } + else + { + IDS_Valve_PresegmentReady(DispenserId,0); + } + REPORT_MSG(DispenserId,"Dispenser is Used Next Segment"); } /*if (JobTicket->segments[SegmentId]->brushstops[JobBrushStopId]->dispensers[Dispenser_i]->has_dispenserstepdivision) @@ -302,10 +308,10 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId) return OK; // all configured heaters are ready } + char Message[100]; //******************************************************************************************************************** uint32_t IDSSegmentState(void *JobDetails, int SegmentId) { - char Message[80]; JobTicket* JobTicket = JobDetails; int Dispenser_i,n_dispensers,DispenserId; TimerMotors_t HW_Motor_Id; @@ -351,11 +357,11 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId) { DispenserSegmentReady[DispenserId] = false; MotorSetSpeed(HW_Motor_Id, segmentfirst_speed); + Control3WayValvesWithCallback (DispenserId, Dispenser_Mixer, NULL); //direction: MidTank_Dispenser or Dispenser_Mixer usnprintf(Message, 80, "Dispenser %d nl/sec %d nl/pulse %d speed %d",Dispenser_i,(int)JobTicket->segments[CurrentSegment]->brushstops[JobBrushStopId]->dispensers[Dispenser_i]->nanolitterpersecond, (int)JobTicket->segments[CurrentSegment]->brushstops[JobBrushStopId]->dispensers[Dispenser_i]->nanoliterperpulse,(int)segmentfirst_speed); - //LOG_ERROR(segmentfirst_speed,Message); - //Report(Message,__FILE__,__LINE__,Dispenser_i,RpWarning,segmentfirst_speed,0); - Control3WayValvesWithCallback (DispenserId, Dispenser_Mixer, NULL); //direction: MidTank_Dispenser or Dispenser_Mixer + //REPORT_MSG(segmentfirst_speed,Message); + Report(Message,__FILE__,__LINE__,Dispenser_i,RpWarning,segmentfirst_speed,0); SendJobProgress(0.0,0,false, Message); @@ -370,6 +376,7 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId) { TimerMotors_t HW_Motor_Id = DispenserIdToMotorId[deviceID]; MotorStop(HW_Motor_Id,Hard_Hiz); + REPORT_MSG(deviceID,"Dispenser DTS called"); IDS_Valve_DistanceToSpoolReady( deviceID, ReadValue); } @@ -394,6 +401,7 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId) int Dispenser_i; TimerMotors_t HW_Motor_Id; + REPORT_MSG(100,"Dispenser DTS"); Valve_Set(VALVE_MIXCHIP_WASTECH, Mixer_Waste); //#bug 323 for (Dispenser_i = 0;Dispenser_i < MAX_SYSTEM_DISPENSERS;Dispenser_i++) { @@ -402,14 +410,16 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId) continue; DispenserDistanceToSpoolReady[Dispenser_i] = false; //MotorStop(HW_Motor_Id,Hard_Hiz); - Control3WayValvesWithCallback ((Valves_t)Dispenser_i, MidTank_Dispenser, IDS_Valve_DistanceToSpoolReady); //direction: MidTank_Dispenser or Dispenser_Mixer + Control3WayValvesWithCallback ((Valves_t)Dispenser_i, MidTank_Dispenser, IDS_Valve_DistanceToSpoolValveReady); //direction: MidTank_Dispenser or Dispenser_Mixer } return OK; } + //******************************************************************************************************************** uint32_t IDS_Valve_EndValveReady(uint32_t deviceID, uint32_t ReadValue) { TimerMotors_t HW_Motor_Id = DispenserIdToMotorId[deviceID]; + REPORT_MSG(deviceID,"Dispenser End called"); MotorStop(HW_Motor_Id,Hard_Hiz); } //******************************************************************************************************************** @@ -421,6 +431,7 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId) for ( Dispenser_i = 0;Dispenser_i < MAX_SYSTEM_DISPENSERS;Dispenser_i++) { //MotorStop(DispenserIdToMotorId[Dispenser_i],Hard_Hiz); + REPORT_MSG(Dispenser_i,"Dispenser End Start"); Control3WayValvesWithCallback (Dispenser_i, MidTank_Dispenser, IDS_Valve_EndValveReady); //direction: MidTank_Dispenser or Dispenser_Mixer } diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Valve.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Valve.c index 5f087c50a..ff29994bc 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Valve.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Valve.c @@ -23,7 +23,7 @@ void Stub_ValveRequest(MessageContainer* requestContainer) { MessageContainer responseContainer; - uint32_t status = NOT_SUPPORTED; + uint32_t status = PASSED; StubValveRequest* request = stub_valve_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); @@ -33,8 +33,8 @@ void Stub_ValveRequest(MessageContainer* requestContainer) request->valveon */ //Control3WayValvesWithCallback (request->valveid, request->valveon, NULL); - //test_valve_3_way(request->valveid, request->valveon); - Valve_Set(request->valveid, request->valveon); + test_valve_3_way(request->valveid, request->valveon); + //Valve_Set(request->valveid, request->valveon); StubValveResponse response = STUB_VALVE_RESPONSE__INIT; diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c index eafe9e5a0..22fcf3e6f 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c @@ -174,6 +174,7 @@ InternalWinderCfg.segmentoffsetpulses numOfSteps = InternalWinderCfg.startoffsetpulses*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_SCREW].microstep; */ +char ScrewStr[100]; uint32_t Screw100msecDirectionChange(uint32_t deviceID, uint32_t BusyFlag) { uint32_t Steps,i,winderspeed=0; @@ -233,8 +234,12 @@ uint32_t Screw100msecDirectionChange(uint32_t deviceID, uint32_t BusyFlag) temp /= ScrewSpeed; if (ScrewRunningTime != temp) { + usnprintf(ScrewStr, 254, "Winder: Steps,Speed, Time, WinderSpeed{ %d, %d ,%d, %d} ",ScrewNumberOfSteps,ScrewSpeed,temp,WinderReferenceSpeed); + // Report(logmsg[index],__FILE__,__LINE__,index,RpWarning,index, Counter[index]); + // #warning PID is now only proportional (above) + Report(ScrewStr,__FILE__,__LINE__,ScrewCurrentDirection,RpWarning,CalculationDirectionChangeCounter, 0); //LOG_ERROR(temp , "new winder speed"); - Report("new winder speed",__FILE__,__LINE__,temp,RpWarning,ScrewSpeed,0); + //Report("new winder speed",__FILE__,__LINE__,temp,RpWarning,ScrewSpeed,0); } ScrewRunningTime = temp;//(SYS_CLK_FREQ*Steps)/ScrewSpeed; @@ -304,7 +309,7 @@ uint32_t Winder_Presegment(void *JobDetails, uint32_t SegmentId) ScrewControlId = AddControlCallback(Screw100msecDirectionChange, eHundredMillisecond,TemplateDataReadCBFunction,0,0,0); ScrewDirectionChangeCounter = 1; CalculationDirectionChangeCounter = 1; - memset (WinderMotorSpeed,0,sizeof(uint32_t) *MAX_WINDER_SPEED_CALCULATION); + memset (WinderMotorSpeed,0,sizeof(WinderMotorSpeed) ); WinderMotorSpeedCounter=0; WinderMotorSpeedRollOver=false; } |
