aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-12-05 10:57:26 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-12-05 10:57:26 +0200
commitbb9b7c977623e3fbcc14ecc65f9642e8993bef47 (patch)
tree2973be513bc29e81444085b8b3b5e6455ee382ea /Software/Embedded_SW/Embedded/Modules
parent14d46a0dc8593579aa9d3ea50ae2b838427463d4 (diff)
parent82cf73a08ed9d590136746dc201c0226e41a49f3 (diff)
downloadTango-bb9b7c977623e3fbcc14ecc65f9642e8993bef47.tar.gz
Tango-bb9b7c977623e3fbcc14ecc65f9642e8993bef47.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/AlarmHandling/AlarmHandling.c9
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c13
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c10
4 files changed, 20 insertions, 16 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
index fc2fa7625..b7b018cdb 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
@@ -291,7 +291,7 @@ uint32_t AlarmHandlingConsequentActions(uint32_t AlarmId, DebugLogCategory Sever
}
return OK;
}
-uint32_t AlarmHandlingPrepareJob(void *CurrentJob)
+JobEndReasonEnum AlarmHandlingPrepareJob(void *CurrentJob)
{
JobTicket* JobTicket = CurrentJob;
bool DispenserInUse[MAX_SYSTEM_DISPENSERS] = {false,false,false,false,false,false,false,false};
@@ -301,7 +301,7 @@ uint32_t AlarmHandlingPrepareJob(void *CurrentJob)
int Segment_i,Brush_i,Dispenser_i,DispenserId,Alarm_i,Heater_i,AlarmId=0;
HeaterState HeaterState;
- uint32_t status = OK;
+ JobEndReasonEnum status = JOB_OK;
if (JobTicket->n_segments == 0)
return OK;
for (Segment_i=0;Segment_i<JobTicket->n_segments;Segment_i++)
@@ -362,10 +362,11 @@ uint32_t AlarmHandlingPrepareJob(void *CurrentJob)
if (status == ERROR)
{
JobEndReason = getEndReason(AlarmId);
- AbortJob(AlarmItem[AlarmId].EventName);
+ //AbortJob(AlarmItem[AlarmId].EventName);
+ //PrepareReady(Module_Alarms,ModuleFail);
Report(AlarmItem[AlarmId].EventName, __FILE__,__LINE__,AlarmId, RpMessage, DEBUG_LOG_CATEGORY__Error, 0);
}
- return status;
+ return JobEndReason;
}
/*
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h
index edce0d9cb..4f9db2fc1 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h
@@ -7,6 +7,8 @@
#ifndef MODULES_ALARMHANDLING_ALARMHANDLING_H_
#define MODULES_ALARMHANDLING_ALARMHANDLING_H_
+#include "StateMachines/Printing/PrintingSTM.h"
+
uint32_t AlarmHandling_ControlTrigger(uint32_t IfIndex, uint32_t ReadValue);
//uint32_t AlarmHandling_CalculateTemperatures(uint32_t SensorId, uint32_t Data);
@@ -15,7 +17,7 @@ uint32_t AlarmHandlingStart(void);
uint32_t AlarmHandlingStop(void);
void AlarmHandlingSetAlarm(uint32_t AlarmId, bool Value);
-uint32_t AlarmHandlingPrepareJob(void *CurrentJob);
+JobEndReasonEnum AlarmHandlingPrepareJob(void *CurrentJob);
uint32_t StartEventsNotificationRequestFunc(MessageContainer* requestContainer);
uint32_t StopEventsNotificationRequestFunc(MessageContainer* requestContainer);
uint32_t ResolveEventRequestFunc(MessageContainer* requestContainer);
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
index 4f8edde02..3b3ac540a 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
@@ -474,7 +474,6 @@ uint32_t HeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue)
return ERROR;
}
char ACheatstr[100];
-int printindex=0;
uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
{
int index=MAX_HEATERS_NUM;
@@ -490,7 +489,6 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
LOG_ERROR (IfIndex, "Wrong Interface ");
return 0xFFFFFFFF;
}
- if (printindex++>MAX_HEATERS_NUM)printindex=0;
if (HeaterCmd[index].targettemperatue == 0)
{
DeActivateHeater(index);
@@ -551,11 +549,10 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
//check only for the proportional band limits
HeaterPIDConfig[index].m_calculatedError = PIDAlgorithmCalculation(HeaterPIDConfig[index].m_SetParam , HeaterPIDConfig[index].m_mesuredParam,
&HeaterPIDConfig[index].m_params, &HeaterPIDConfig[index].m_preError, &HeaterPIDConfig[index].m_integral);
- len = usnprintf(ACheatstr, 254, "ACD%d: Temp %d Integral %d Output %d ",index,(int)HeaterPIDConfig[index].m_mesuredParam ,(int)HeaterPIDConfig[index].m_integral,(int)HeaterPIDConfig[index].m_calculatedError);
+ len = usnprintf(ACheatstr, 254, "ACD 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(logmsg[index],__FILE__,__LINE__,index,RpWarning,index, Counter[index]);
// #warning PID is now only proportional (above)
- if (printindex==index)
- Report(ACheatstr,__FILE__,__LINE__,index,RpWarning,readValue, HeaterPIDConfig[index].m_calculatedError);
+ Report(ACheatstr,__FILE__,__LINE__,index,RpWarning,readValue, HeaterPIDConfig[index].m_calculatedError);
HeaterRecalculateSharedHeatersParams(HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain, (int)(HeaterPIDConfig[index].m_calculatedError/100));
}
}
@@ -653,11 +650,13 @@ uint32_t DCHeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
// output[index][Counter[index]] = HeaterPIDConfig[index].m_calculatedError;
// if (Counter[index]++ >=100)
// Counter[index] = 0;
- len = usnprintf(heatstr, 254, "PID%d: Temp %d Integral %d Output %d ",index,(int)HeaterPIDConfig[index].m_mesuredParam ,(int)HeaterPIDConfig[index].m_integral,(int)HeaterPIDConfig[index].m_calculatedError);
// Report(logmsg[index],__FILE__,__LINE__,index,RpWarning,index, Counter[index]);
// #warning PID is now only proportional (above)
- if (printindex==index)
+ if (index == HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1)
+ {
+ 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);
+ }
HeaterRecalculateHeaterParams(index, (int)(HeaterPIDConfig[index].m_calculatedError/100));
}
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
index 6db7f616e..dc9cfcd6d 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
@@ -58,6 +58,7 @@ typedef struct
float m_integral;
float m_calculatedError;
bool m_isReady;
+ uint32_t m_ingnoreValue;
PID_Config_Params m_params;
}MotorControlConfig_t;
@@ -387,7 +388,7 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue)
if (ReadValue < 10)
{
MotorFailedSample[index]++;
- REPORT_MSG(ReadValue, "Dancer value read too small.");
+ Report("Dancer value read too small.",__FILE__,__LINE__,DancerId,RpError,ReadValue,0);
return OK;
}
if (ReadValue == 0x3FFF)
@@ -469,7 +470,7 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue)
//KeepNormalizedError = NormalizedError;
}
calculated_speed = (1-MotorControlConfig[index].m_calculatedError)*OriginalMotorSpd_2PPS[index];
- if (abs(calculated_speed-CurrentControlledSpeed[index])>2)
+ if (abs(calculated_speed-CurrentControlledSpeed[index])> MotorControlConfig[index].m_ingnoreValue)
{
if (keepdata == true)
{
@@ -560,6 +561,7 @@ uint32_t ThreadEmptyCBFunction(uint32_t IfIndex, uint32_t ReadValue)
MotorControlConfig[Motor_i].m_params.ProportionalErrorMultiplier = MotorsControl[Pid_Id].outputonoffhysteresisvalue;
MotorControlConfig[Motor_i].m_params.epsilon = MotorsControl[Pid_Id].epsilon;
MotorControlConfig[Motor_i].m_params.dt = MotorsControl[Pid_Id].controloutputtype;
+ MotorControlConfig[Motor_i].m_ingnoreValue = MotorsControl[Pid_Id].sensorcorrectionadjustment; // the minimal change required to change the motor speed in pulses
MotorControlConfig[Motor_i].m_calculatedError = 0;
MotorControlConfig[Motor_i].m_integral = 0;
MotorControlConfig[Motor_i].m_isEnabled = true;
@@ -768,7 +770,7 @@ char Endstr[150];
if (SpeedControlId != 0xFF)
{
if(RemoveControlCallback(SpeedControlId,ThreadLengthCBFunction)!=OK)
- LOG_ERROR(Motor_i,"RemoveControl Failed");
+ LOG_ERROR(SpeedControlId,"RemoveControl Failed");
SpeedControlId = 0xFF;
}
if (PoolerSpeedControlId != 0xFF)
@@ -783,7 +785,7 @@ char Endstr[150];
if (ControlIdtoMotorId[Motor_i] != 0xFF)
{
if(RemoveControlCallback(ControlIdtoMotorId[Motor_i],ThreadControlCBFunction) == OK)
- ControlIdtoMotorId[Motor_i] == 0xFF;
+ ControlIdtoMotorId[Motor_i] = 0xFF;
else
LOG_ERROR (ControlIdtoMotorId[Motor_i],"Remove Control failed");
}