aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2018-11-18 08:16:57 +0200
committerShlomo Hecht <shlomo@twine-s.com>2018-11-18 08:16:57 +0200
commit53b5ef734132b543838e1663fe96d70457d8a62b (patch)
treefceae44c3a606a1bd8c4b514eb88e827453ca151 /Software/Embedded_SW/Embedded
parent0c43f6919cf12f126f501d84fb76c940b8e9c7bb (diff)
downloadTango-53b5ef734132b543838e1663fe96d70457d8a62b.tar.gz
Tango-53b5ef734132b543838e1663fe96d70457d8a62b.zip
my pc changes. HardwareBlower with a heating voltage
Diffstat (limited to 'Software/Embedded_SW/Embedded')
-rw-r--r--Software/Embedded_SW/Embedded/Common/report/distributor.c2
-rw-r--r--Software/Embedded_SW/Embedded/Communication/CommunicationTask.c2
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c2
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c3
-rw-r--r--Software/Embedded_SW/Embedded/Main.c9
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/control.c6
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c23
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c8
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c32
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.new10
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c7
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c6
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c3
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)