aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-12-11 19:43:52 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-12-11 19:43:52 +0200
commit7427f44de312fb00e138320cedd7d4459015910a (patch)
tree0d10ce1a2bca86cd4b47ce58125fc9549efc004c /Software/Embedded_SW/Embedded/Modules
parent48f781d037a83c51fdd555fb6c9d1c2b4e424efe (diff)
parent8b33b9e1f8722ae98e44bd3a25211bfcf53134c6 (diff)
downloadTango-7427f44de312fb00e138320cedd7d4459015910a.tar.gz
Tango-7427f44de312fb00e138320cedd7d4459015910a.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c37
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Valve.c6
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c9
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;
}