aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-07-10 17:12:04 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-07-10 17:12:04 +0300
commitd65e5f1a23374de2872a73034e430e4a70ee4269 (patch)
treef0edf1f01c120fc5056f3d54ba141a3f9886c263 /Software/Embedded_SW/Embedded/Modules
parent606db1b64a49a154fa1ba597a455ba96b42aad2b (diff)
parent340dc356703ca409084d29da9e71f472cc15bfe8 (diff)
downloadTango-d65e5f1a23374de2872a73034e430e4a70ee4269.tar.gz
Tango-d65e5f1a23374de2872a73034e430e4a70ee4269.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/IDS/IDS_print.c34
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c3
2 files changed, 27 insertions, 10 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
index 092fbb252..046821634 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
@@ -46,6 +46,7 @@ DispenserControlConfig_t DispenserControlConfig[MAX_SYSTEM_DISPENSERS];
uint32_t ControlIdtoDispenserId [MAX_SYSTEM_DISPENSERS] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
int OriginalDispenserSpd_2PPS[MAX_SYSTEM_DISPENSERS] = {0,0,0,0,0,0,0,0};
bool DispenserPreSegmentReady[MAX_SYSTEM_DISPENSERS] = {true,true,true,true,true,true,true,true};
+bool DispenserSegmentReady[MAX_SYSTEM_DISPENSERS] = {true,true,true,true,true,true,true,true};
int JobBrushStopId = 0;
uint32_t IDS_DispenserPidRequestMessage(HardwarePidControl* request)
@@ -150,8 +151,7 @@ void DispenserPrepareReady(void)
return OK;
}
-//********************************************************************************************************************
-
+ //********************************************************************************************************************
uint32_t IDS_Valve_PresegmentReady(uint32_t deviceID, uint32_t ReadValue)
{
int i;
@@ -166,6 +166,7 @@ void DispenserPrepareReady(void)
PreSegmentReady(Module_IDS,ModuleDone);
return OK; // all configured heaters are ready
}
+ //********************************************************************************************************************
uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId)
{
//set the speed only before the first segment, speed is constant accros job
@@ -191,13 +192,14 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId)
}
if (JobTicket->segments[SegmentId]->brushstops[JobBrushStopId]->n_dispensers)
{
- n_dispensers = JobBrushStopId>=JobTicket->segments[SegmentId]->brushstops[JobBrushStopId]->n_dispensers;
- for (Dispenser_i = 0;Dispenser_i <= n_dispensers;Dispenser_i++)
+ n_dispensers = JobTicket->segments[SegmentId]->brushstops[JobBrushStopId]->n_dispensers;
+ for (Dispenser_i = 0;Dispenser_i < n_dispensers;Dispenser_i++)
{
DispenserId = JobTicket->segments[SegmentId]->brushstops[JobBrushStopId]->dispensers[Dispenser_i]->index;
HW_Motor_Id = DispenserIdToMotorId[DispenserId];
if (MotorsCfg[HW_Motor_Id].hardwaremotortype != DispenserIdToMotorId[DispenserId])//unconfigured dispenser
continue;
+ DispenserPreSegmentReady[DispenserId] = false;
Control3WayValvesWithCallback ((Valves_t)DispenserId, MidTank_Dispenser, IDS_Valve_PresegmentReady); //direction: MidTank_Dispenser or Dispenser_Mixer
MotorStop(HW_Motor_Id,Hard_Stop);
@@ -205,7 +207,6 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId)
MotorSetMicroStep(HW_Motor_Id,JobTicket->segments[SegmentId]->brushstops[JobBrushStopId]->dispensers[Dispenser_i]->dispenserstepdivision);
else
MotorSetMicroStep(HW_Motor_Id,MotorsCfg[HW_Motor_Id].microstep);
- DispenserPreSegmentReady[DispenserId] = false;
}
}
@@ -214,6 +215,22 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId)
return OK;
}
+//********************************************************************************************************************
+
+ uint32_t IDS_Valve_SegmentReady(uint32_t deviceID, uint32_t ReadValue)
+ {
+ int i;
+ DispenserSegmentReady[deviceID] = true;
+ for (i=0;i<MAX_SYSTEM_DISPENSERS;i++)
+ {
+ if (DispenserSegmentReady[i] == false)
+ {
+ return OK; //not all configured heaters are ready
+ }
+ }
+ SegmentReady(Module_IDS,ModuleDone);
+ return OK; // all configured heaters are ready
+ }
//********************************************************************************************************************
uint32_t IDSSegmentState(void *JobDetails, int SegmentId)
@@ -237,8 +254,8 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId)
}
if (JobTicket->segments[CurrentSegment]->brushstops[JobBrushStopId]->n_dispensers)
{
- n_dispensers = JobBrushStopId>=JobTicket->segments[CurrentSegment]->brushstops[JobBrushStopId]->n_dispensers;
- for (Dispenser_i = 0;Dispenser_i <= n_dispensers;Dispenser_i++)
+ n_dispensers = JobTicket->segments[CurrentSegment]->brushstops[JobBrushStopId]->n_dispensers;
+ for (Dispenser_i = 0;Dispenser_i < n_dispensers;Dispenser_i++)
{
DispenserId = JobTicket->segments[CurrentSegment]->brushstops[JobBrushStopId]->dispensers[Dispenser_i]->index;
HW_Motor_Id = DispenserIdToMotorId[DispenserId];
@@ -252,7 +269,8 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId)
// OriginalDispenserSpd_2PPS[Dispenser_i] = (int)Dispenser_speed;
if ((int)segmentfirst_speed > 0)
{
- Control3WayValvesWithCallback (DispenserId, Dispenser_Mixer, NULL); //direction: MidTank_Dispenser or Dispenser_Mixer
+ DispenserSegmentReady[DispenserId] = false;
+ Control3WayValvesWithCallback (DispenserId, Dispenser_Mixer, IDS_Valve_SegmentReady); //direction: MidTank_Dispenser or Dispenser_Mixer
MotorSetSpeed(HW_Motor_Id, segmentfirst_speed);
HeatingTestSendResonse(0,false,0, Dispenser_Mixer,DispenserId, segmentfirst_speed,SegmentId,JobBrushStopId,"Dispenser !!!!!!!!!!!");
}
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
index 1ae1145fb..0701a2aac 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
@@ -181,8 +181,7 @@ uint32_t ThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue)
pooler_counter++;
if (pooler_counter%10 == 0)
{
- SendJobProgress(CurrentProcessedLength/CurrentRequestedLength,CurrentSegmentId,false, "Progress");
- //SendJobProgress(/*KeepNormalizedError*/MotorControlConfig[index].m_calculatedError,CurrentSegmentId,false);
+ SendJobProgress(CurrentProcessedLength/100,CurrentSegmentId,false, "Progress");
}
if (pooler_counter>=100)