aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/StateMachines
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-11-03 12:08:14 +0200
committerShlomo Hecht <shlomo@twine-s.com>2020-11-03 12:08:14 +0200
commit09acf407dc5f432a2c293bde6ebf103b28af2549 (patch)
treeca240db202dc66c03d05dd46e2e34777254cf2de /Software/Embedded_SW/Embedded/StateMachines
parent612f456f46ebf6726dd1aa2b0fe1476a72011d3a (diff)
downloadTango-09acf407dc5f432a2c293bde6ebf103b28af2549.tar.gz
Tango-09acf407dc5f432a2c293bde6ebf103b28af2549.zip
bugs, mostly in arc head init
Diffstat (limited to 'Software/Embedded_SW/Embedded/StateMachines')
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c168
1 files changed, 92 insertions, 76 deletions
diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c
index 0c007f755..c1362e220 100644
--- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c
+++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c
@@ -83,6 +83,7 @@ uint32_t InitSequenceMachineReadyToDye(void);
uint32_t InitSequenceStateMachine( INIT_SEQUENCE_STAGES_ENUM ReadValue);
uint32_t PowerUpUpdate(MACHINE_STATE_STAGES_ENUM stage);
int InitFailures = 0;
+extern double PressureSensorV0[2];
MACHINE_STATE_STAGES_ENUM GetMachineState(void)
{
@@ -230,12 +231,13 @@ uint32_t InitSequenceMidTankCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag
}
uint32_t InitSequenceBlowerCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag)
{
- double V0[2] = {0.0, 0.0};
if (SafeRemoveControlCallback(HWControlId, InitSequenceBlowerCallBackFunction )==OK)
HWControlId = 0xFF;
else
Report("Remove control callback failed",__FILE__,__LINE__,(int)HWControlId,RpWarning,(int)InitSequenceBlowerCallBackFunction,0);
+
+
Turn_the_Blower_On();//Turn on with the Default_Voltage
if (BlowerCfg.heatingvoltage)
Control_Voltage_To_Blower(BlowerCfg.heatingvoltage);
@@ -248,31 +250,6 @@ uint32_t InitSequenceBlowerCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag)
waste_seq_step1();// include 1Sec delay <- to open !!!!
- if (Head_Type == HEAD_TYPE_ARC) {
- if (ResetReason & SYSCTL_CAUSE_POR) {
- V0[0] = PressureSensorInit(0);
- V0[1] = PressureSensorInit(1);
- ReportWithPackageFilter(InitFilter,"read pressure sensor v0[0],v0[1]", __FILE__,__LINE__, (int)V0[0], RpMessage, (int)V0[1], 0);
- if (V0[0] > 1000) {
- MCU_E2PromProgram(EEPROM_ORIFICE1_ZERO_VALUE, V0[0]);
- ReportWithPackageFilter(InitFilter,"store pressure sensor v0[0]", __FILE__,__LINE__, (int)V0[0], RpMessage, 0, 0);
- } else {
- MCU_E2PromRead(EEPROM_ORIFICE1_ZERO_VALUE, &V0[0]);
- ReportWithPackageFilter(InitFilter,"load from EEPROM", __FILE__,__LINE__, (int)V0[0], RpMessage, 0, 0);
- }
- if (V0[1] > 1000) {
- MCU_E2PromProgram(EEPROM_ORIFICE1_ZERO_VALUE, V0[1]);
- ReportWithPackageFilter(InitFilter,"store pressure sensor v0[1]", __FILE__,__LINE__, (int)V0[1], RpMessage, 0, 0);
- } else {
- MCU_E2PromRead(EEPROM_ORIFICE1_ZERO_VALUE, &V0[1]);
- ReportWithPackageFilter(InitFilter,"load from EEPROM", __FILE__,__LINE__, (int)V0[1], RpMessage, 0, 0);
- }
- } else {
- MCU_E2PromRead(EEPROM_ORIFICE1_ZERO_VALUE, &V0[0]);
- MCU_E2PromRead(EEPROM_ORIFICE1_ZERO_VALUE, &V0[1]);
- ReportWithPackageFilter(InitFilter,"load initial values from EEPROM", __FILE__,__LINE__, (int)V0[0], RpMessage, (int)V0[1], 0);
- }
- }
Safety_Init();
InitStages++;
@@ -433,70 +410,109 @@ uint32_t InitSequencePowerManagementInit(void)
// InitStages++;
return OK;
}
-uint32_t InitSequenceInitialBlowerActivation(void)
+uint32_t InitSequenceWHSAirFlowCalibration(void)
{
- SetMachineState(MACHINE_STATE_INITIAL_BLOWER_ACTIVATION);
int i,total1=0,total2=0,total3=0;
uint32_t ZeroValue;
uint16_t value = 0;
- //WHS_Start_Blower_Control_Closed_Loop(0.0);
- WHS_enable_control_loop(false);
- if (WHS_Type == WHS_TYPE_NEW)
+
+ if (ResetReason & SYSCTL_CAUSE_POR)
{
- if (ResetReason & SYSCTL_CAUSE_POR)
+ for (i=0;i<8;i++)
{
- Control_Voltage_To_Blower(1); //stop the blower
- Task_sleep (1000);
- for (i=0;i<8;i++)
- {
- Trigger_WHS_MAX11614_Read_allADC();
- Task_sleep (100);
- get_orf_1(&value);
- total1+=value;
- get_orf_2(&value);
- total2+=value;
- get_orf_3(&value);
- total3+=value;
- ReportWithPackageFilter(InitFilter,"load initial orifice value", __FILE__,total1,total2, RpMessage, total3, 0);
- Task_sleep(100);
- }
- total1/=8;
- total2/=8;
- total3/=8;
- MCU_E2PromRead(EEPROM_ORIFICE1_ZERO_VALUE,&ZeroValue);
- if ((total1>800)&&(total1<2000))
- {
- MCU_E2PromProgram(EEPROM_ORIFICE1_ZERO_VALUE,total1);
- }
- else
- total1 = ZeroValue;
- ReportWithPackageFilter(InitFilter,"store initial orifice 1 value", __FILE__,EEPROM_ORIFICE1_ZERO_VALUE,total1, RpMessage, ZeroValue, 0);
- MCU_E2PromRead(EEPROM_ORIFICE3_ZERO_VALUE,&ZeroValue);
- if ((total3>1000)&&(total3<1500))
- {
- MCU_E2PromProgram(EEPROM_ORIFICE3_ZERO_VALUE,total3);
- }
- else
- total3 = ZeroValue;
- ReportWithPackageFilter(InitFilter,"store initial orifice 3 value", __FILE__,EEPROM_ORIFICE3_ZERO_VALUE,total3, RpMessage, ZeroValue, 0);
- WHS_MAX11614_Load_OrificeZeroValue(total1,total2,total3);
+ Trigger_WHS_MAX11614_Read_allADC();
+ Task_sleep (100);
+ get_orf_1(&value);
+ total1+=value;
+ get_orf_2(&value);
+ total2+=value;
+ get_orf_3(&value);
+ total3+=value;
+ ReportWithPackageFilter(InitFilter,"load initial orifice value", __FILE__,total1,total2, RpMessage, total3, 0);
+ Task_sleep(100);
+ }
+ total1/=8;
+ total2/=8;
+ total3/=8;
+ MCU_E2PromRead(EEPROM_ORIFICE1_ZERO_VALUE,&ZeroValue);
+ if ((total1>800)&&(total1<2000))
+ {
+ MCU_E2PromProgram(EEPROM_ORIFICE1_ZERO_VALUE,total1);
}
else
+ total1 = ZeroValue;
+ ReportWithPackageFilter(InitFilter,"store initial orifice 1 value", __FILE__,EEPROM_ORIFICE1_ZERO_VALUE,total1, RpMessage, ZeroValue, 0);
+ MCU_E2PromRead(EEPROM_ORIFICE3_ZERO_VALUE,&ZeroValue);
+ if ((total3>1000)&&(total3<1500))
{
- MCU_E2PromRead(EEPROM_ORIFICE1_ZERO_VALUE,&total1);
- MCU_E2PromRead(EEPROM_ORIFICE3_ZERO_VALUE,&total3);
- ReportWithPackageFilter(InitFilter,"load initial values from EEPROM", __FILE__,0,total3, RpMessage, total1, 0);
- WHS_MAX11614_Load_OrificeZeroValue(total1,total1,total3);
+ MCU_E2PromProgram(EEPROM_ORIFICE3_ZERO_VALUE,total3);
+ }
+ else
+ total3 = ZeroValue;
+ ReportWithPackageFilter(InitFilter,"store initial orifice 3 value", __FILE__,EEPROM_ORIFICE3_ZERO_VALUE,total3, RpMessage, ZeroValue, 0);
+ WHS_MAX11614_Load_OrificeZeroValue(total1,total2,total3);
+ }
+ else
+ {
+ MCU_E2PromRead(EEPROM_ORIFICE1_ZERO_VALUE,&total1);
+ MCU_E2PromRead(EEPROM_ORIFICE3_ZERO_VALUE,&total3);
+ ReportWithPackageFilter(InitFilter,"load initial values from EEPROM", __FILE__,0,total3, RpMessage, total1, 0);
+ WHS_MAX11614_Load_OrificeZeroValue(total1,total1,total3);
+ }
+ return OK;
+
+}
+uint32_t InitSequenceArcAirflowCalibration(void)
+{
+ double V0[2] = {0.0, 0.0};
+ if (ResetReason & SYSCTL_CAUSE_POR) {
+ V0[0] = PressureSensorInit(0);
+ V0[1] = PressureSensorInit(1);
+ ReportWithPackageFilter(InitFilter,"read pressure sensor v0[0],v0[1]", __FILE__,__LINE__, (int)V0[0], RpMessage, (int)V0[1], 0);
+ if (V0[0] > 1000) {
+ MCU_E2PromProgram(EEPROM_PRESSURE_SENSOR_V0_0, V0[0]);
+ ReportWithPackageFilter(InitFilter,"store pressure sensor v0[0]", __FILE__,__LINE__, (int)V0[0], RpMessage, 0, 0);
+ } else {
+ MCU_E2PromRead(EEPROM_PRESSURE_SENSOR_V0_0, &V0[0]);
+ ReportWithPackageFilter(InitFilter,"load from EEPROM", __FILE__,__LINE__, (int)V0[0], RpMessage, 0, 0);
}
+ if (V0[1] > 1000) {
+ MCU_E2PromProgram(EEPROM_PRESSURE_SENSOR_V0_1, V0[1]);
+ ReportWithPackageFilter(InitFilter,"store pressure sensor v0[1]", __FILE__,__LINE__, (int)V0[1], RpMessage, 0, 0);
+ } else {
+ MCU_E2PromRead(EEPROM_PRESSURE_SENSOR_V0_1, &V0[1]);
+ ReportWithPackageFilter(InitFilter,"load from EEPROM", __FILE__,__LINE__, (int)V0[1], RpMessage, 0, 0);
+ }
+ } else {
+ MCU_E2PromRead(EEPROM_PRESSURE_SENSOR_V0_0, &V0[0]);
+ MCU_E2PromRead(EEPROM_PRESSURE_SENSOR_V0_1, &V0[1]);
+ ReportWithPackageFilter(InitFilter,"load initial values from EEPROM", __FILE__,__LINE__, (int)V0[0], RpMessage, (int)V0[1], 0);
}
+ PressureSensorV0[0] = V0[0];
+ PressureSensorV0[1] = V0[1];
+ return OK;
+}
+uint32_t InitSequenceInitialBlowerActivation(void)
+{
+ WHS_enable_control_loop(false);
+ Turn_the_Blower_On();//Turn on with the Default_Voltage
+ Control_Voltage_To_Blower(1); //stop the blower
HeadBlowersInit();
+ Task_sleep (1000);
+
+ if (WHS_Type == WHS_TYPE_NEW)
+ {
+ InitSequenceWHSAirFlowCalibration();
+ }
+ if (Head_Type == HEAD_TYPE_ARC)
+ {
+ InitSequenceArcAirflowCalibration();
+ }
+
Voc_Sensor_Zero_Calibration();
+ SetMachineState(MACHINE_STATE_INITIAL_BLOWER_ACTIVATION);
- Turn_the_Blower_On();//Turn on with the Default_Voltage
-// if (BlowerCfg.voltage)
-// Control_Voltage_To_Blower(BlowerCfg.voltage);
-// else
- Control_Voltage_To_Blower(4200);
+ Control_Voltage_To_Blower(4200);
Set_All_WHS_Fans(200);
Report("AddControlCallback INIT",__FILE__,__LINE__,(int)HWControlId,RpWarning,(int)InitStages,0);
HWControlId = AddControlCallback("Init Blower", InitSequenceBlowerCallBackFunction, 10* eOneSecond, TemplateDataReadCBFunction,0,0, 0 );