aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c')
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c26
1 files changed, 21 insertions, 5 deletions
diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c
index fb5cd884d..e9820d150 100644
--- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c
+++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c
@@ -82,6 +82,7 @@ uint32_t InitSequenceMachineReadyToDye(void);
uint32_t InitSequenceStateMachine( INIT_SEQUENCE_STAGES_ENUM ReadValue);
uint32_t PowerUpUpdate(MACHINE_STATE_STAGES_ENUM stage);
+int InitFailures = 0;
MACHINE_STATE_STAGES_ENUM GetMachineState(void)
{
@@ -100,25 +101,27 @@ void StopInitSequence(void)
uint32_t InitSequenceCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag)
{
MACHINE_STATE_STAGES_ENUM status;
- int InitFailures = 0;
if (SafeRemoveControlCallback(HWControlId, InitSequenceCallBackFunction )==OK)
HWControlId = 0xFF;
else
Report("Remove control callback failed",__FILE__,__LINE__,(int)HWControlId,RpWarning,(int)InitSequenceCallBackFunction,0);
MCU_E2PromRead(EEPROM_INIT_FAILURE_COUNTER,&InitFailures);
+ InitFailures++;
+ MCU_E2PromProgram(EEPROM_INIT_FAILURE_COUNTER,InitFailures);
+
if (InitFailures > 100)
{
InitFailures = 0;
MCU_E2PromProgram(EEPROM_INIT_FAILURE_COUNTER,0);
}
- if (InitFailures > 3)
+ /*if (InitFailures > 3)
{
Report("HWConfigurationInit repeated failure",__FILE__,__LINE__,(int)InitFailures,RpWarning,(int)EEPROM_INIT_FAILURE_COUNTER,0);
- SetMachineState(status);
+ SetMachineState(MACHINE_STATE_HW_CONFIG_FAILED);
AlarmHandlingSetAlarm (EVENT_TYPE__MACHINE_STATE_HW_CONFIG_FAILED,ON);
SetMachineStatus(MACHINE_STATE__Error);
return ERROR;
- }
+ }*/
status = (MACHINE_STATE_STAGES_ENUM)HWConfigurationInit();
if (status == OK)
{
@@ -173,7 +176,6 @@ void InitSequenceBuiltInTestCallBack(uint32_t IfIndex, uint32_t BusyFlag)
InitStages++;
//InitSequenceStateMachine(InitStages);
AlarmHandlingSetAlarm(EVENT_TYPE__POWER_UP_BIT_FAILURE,false);
- MCU_E2PromProgram(EEPROM_INIT_FAILURE_COUNTER,0);
}
else
{
@@ -262,6 +264,7 @@ double MainCurrent,SecondaryCurrent,StableCurrent;
double InitDrierAcVoltage = 0.0;
int InitDrierAcVoltageCount = 0;
double Zone2Resistance = 0.0;
+double Zone1Resistance = 0.0;
int WaitForCurrentRaise = 0;//let the heater current raise
void InitCurrentReadingStable(void)
{
@@ -302,6 +305,11 @@ bool DetectIfCurrentReadingStable(double HeaterCurrent)
}
return ret;
}
+
+double GetZone1RMSCurrent(double VAC)
+{
+ return (VAC/Zone1Resistance);
+}
double GetZone2RMSCurrent(double VAC)
{
return (VAC/Zone2Resistance);
@@ -326,6 +334,7 @@ uint32_t PowerManagementCallBack(uint32_t IfIndex, uint32_t BusyFlag)
InitDrierAcVoltage /= InitDrierAcVoltageCount;
MainCurrent = StableCurrent;
InitCurrentReadingStable();
+ Zone1Resistance = InitDrierAcVoltage/MainCurrent;
DeActivateHeater(HEATER_TYPE__DryerMainHeater);
ActivateHeater(HEATER_TYPE__DryerSecondaryHeater);
ReportWithPackageFilter(InitFilter,"starting secondary heater ", __FILE__,__LINE__,(int)(StableCurrent*100), RpMessage, Maxcount_Heater_Current, 0);
@@ -518,6 +527,12 @@ uint32_t InitSequenceWaitForCoolerCallBackFunction(uint32_t IfIndex, uint32_t Bu
}
uint32_t InitSequenceWaitForCooler(void)
{
+ Trigger_SetWHSFanSpeed(FAN1, SmallFansCfg);
+ Trigger_SetWHSFanSpeed(FAN2, SmallFansCfg);
+ Trigger_SetWHSFanSpeed(FAN3, SmallFansCfg);
+ Trigger_SetWHSFanSpeed(FAN4, SmallFansCfg);
+ Trigger_SetWHSFanSpeed(FAN5, LargeFansCfg);
+ Trigger_SetWHSFanSpeed(FAN6, LargeFansCfg);
if (WHS_Type == WHS_TYPE_UNKNOWN)
{
InitStages++;
@@ -574,6 +589,7 @@ uint32_t InitSequenceStartHeating(void)
{
SetMachineReadyForHeating(true);
//SetMachineStatus(MACHINE_STATE__Ready); //prevent job while waiting for the cooler
+ MCU_E2PromProgram(EEPROM_INIT_FAILURE_COUNTER,0);
if (InitialHeating)
{