From 501299fed4b3df99fb48c167877147d94e1bcc43 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Wed, 22 Apr 2020 13:29:22 +0300 Subject: dispenser EEPROM tested (stubs and code). ready --- .../Stubs Collection/stubs/DispenserEEpromRead.cs | 25 +++++++++ .../Stubs Collection/stubs/DispenserEEpromWrite.cs | 59 ++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 Software/Stubs Collection/stubs/DispenserEEpromRead.cs create mode 100644 Software/Stubs Collection/stubs/DispenserEEpromWrite.cs (limited to 'Software/Stubs Collection') diff --git a/Software/Stubs Collection/stubs/DispenserEEpromRead.cs b/Software/Stubs Collection/stubs/DispenserEEpromRead.cs new file mode 100644 index 000000000..43b1ebc9c --- /dev/null +++ b/Software/Stubs Collection/stubs/DispenserEEpromRead.cs @@ -0,0 +1,25 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Diagnostics; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + +DispenserEEpromRequest dispenserEEpromRequest = new DispenserEEpromRequest(); +dispenserEEpromRequest.DispenserId = 4; +dispenserEEpromRequest.BurnRequest = false; + + + + + var response = stubManager.Run(dispenserEEpromRequest); + +} \ No newline at end of file diff --git a/Software/Stubs Collection/stubs/DispenserEEpromWrite.cs b/Software/Stubs Collection/stubs/DispenserEEpromWrite.cs new file mode 100644 index 000000000..8fdbbc3f8 --- /dev/null +++ b/Software/Stubs Collection/stubs/DispenserEEpromWrite.cs @@ -0,0 +1,59 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Diagnostics; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + +DispenserEEpromRequest dispenserEEpromRequest = new DispenserEEpromRequest(); +dispenserEEpromRequest.DispenserId = 4; +dispenserEEpromRequest.BurnRequest = true; + +DispenserEEprom dispenserEEprom = new DispenserEEprom(); +dispenserEEprom.Header = 1; +dispenserEEprom.TableLength = 2; +dispenserEEprom.Tableversion = 3; +dispenserEEprom.DispenserPN = "Hello World 11"; +dispenserEEprom.PCBSN = "Hello World 22"; +dispenserEEprom.PCBPartNumber = "Hello World 33"; +dispenserEEprom.DispenserSN = "Hello World 44" +dispenserEEprom.MinimalPressure = 4; +dispenserEEprom.MaximalPressure = 5; +dispenserEEprom.MinimalMV = 6; +dispenserEEprom.MaximalMV = 7; +dispenserEEprom.TotalCycles = 8; +dispenserEEprom.BubbleSize = 9; +dispenserEEprom.AVGNlStepValue14 = 10; +dispenserEEprom.AVGNlStepValue24 = 11; +dispenserEEprom.AVGNlStepValue34 = 12; +dispenserEEprom.AVGNlStepValue44 = 13; +dispenserEEprom.SWReserve = 14; +dispenserEEprom.Spare1Pressure = 15; +dispenserEEprom.Spare2Pressure = 16; +dispenserEEprom.MotorPulsesPerCycle = 17; +dispenserEEprom.Color = 18; +dispenserEEprom.PressureSlope = 19; +dispenserEEprom.ProductionDate = "11121970"; +dispenserEEprom.ATSlocation = 20; +dispenserEEprom.Spare1 = 21; +dispenserEEprom.Spare2 = 22; +dispenserEEprom.ATSChannel = 23; +dispenserEEprom.UnitEmpty = true; +dispenserEEprom.DryRunPassFail = true; +dispenserEEprom.FlowPassFail = true; +dispenserEEprom.CheckSum = true; + +dispenserEEpromRequest.DispenserEEprom = dispenserEEprom; + + + var response = stubManager.Run(dispenserEEpromRequest); + +} \ No newline at end of file -- cgit v1.3.1 From 8217a6b39954e290b7f0791404d88403d069a37c Mon Sep 17 00:00:00 2001 From: Avi Levkovich Date: Sun, 3 May 2020 09:52:00 +0300 Subject: Add stub for testing whs comunication --- Software/Stubs Collection/stubs/test_uart3_whs.cs | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Software/Stubs Collection/stubs/test_uart3_whs.cs (limited to 'Software/Stubs Collection') diff --git a/Software/Stubs Collection/stubs/test_uart3_whs.cs b/Software/Stubs Collection/stubs/test_uart3_whs.cs new file mode 100644 index 000000000..b36179d8c --- /dev/null +++ b/Software/Stubs Collection/stubs/test_uart3_whs.cs @@ -0,0 +1,24 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + + stubManager.Run("ProgressRequest" ,0xb05, 0); //init + + Thread.Sleep(3000); + + for(int i=0;i<1;i++) + { + var response = stubManager.Run("ProgressRequest" ,0xb05, 1); // - Test_Reading_Shinko_Request_PV + } +} \ No newline at end of file -- cgit v1.3.1 From 278c70906c165cc42bfd43f5b95dad338786824d Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Tue, 5 May 2020 08:58:58 +0300 Subject: Version 1.4.6.23: Power up interface implemented, WHS improvements, diagnostics bug fix --- .../Embedded_SW/Embedded/Common/SW_Info/SW_Info.c | 2 +- .../Drivers/FPGA/Full_Vme/FPGA_Programming_Up.c | 2 + .../WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c | 22 +++++---- .../WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.h | 2 + .../Embedded/Modules/Control/MillisecTask.c | 8 ++- .../Embedded/Modules/Diagnostics/Diagnostics.c | 50 +++++++++++-------- .../Embedded_SW/Embedded/Modules/General/process.c | 57 +++++++++++++--------- .../Embedded_SW/Embedded/Modules/General/process.h | 1 + .../Embedded/Modules/Heaters/Heaters_print.c | 1 + .../Embedded/Modules/Waste/Waste_init.c | 40 +++++++++++++-- .../StateMachines/Initialization/InitSequence.c | 27 ++++++++-- .../stubs/embeddedparametersbuild.cs | 2 +- 12 files changed, 150 insertions(+), 64 deletions(-) (limited to 'Software/Stubs Collection') diff --git a/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c b/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c index b0ac5969a..a786beb86 100644 --- a/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c +++ b/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c @@ -20,7 +20,7 @@ typedef struct } TangoVersion_t; -TangoVersion_t _gTangoVersion = {1,4,6,22}; +TangoVersion_t _gTangoVersion = {1,4,6,23}; #define BUILD_DATE __DATE__ char Dat[50] = BUILD_DATE; char _gTangoName [MAX_STRING_LEN] = "Tango01 ";//d diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/Full_Vme/FPGA_Programming_Up.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/Full_Vme/FPGA_Programming_Up.c index aa645baa6..935db8794 100644 --- a/Software/Embedded_SW/Embedded/Drivers/FPGA/Full_Vme/FPGA_Programming_Up.c +++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/Full_Vme/FPGA_Programming_Up.c @@ -98,6 +98,7 @@ FRESULT FPGA_Programming_Up(FPGA_ID FPGA_Id, char * FullPath, bool IncludeReboot return(fresult); } FPGABurningActive = true; + GeneralHwReady = false; Report(FullPath,__FILE__,__LINE__,CurrentFileSize,RpWarning,0,0); StopInitSequence(); HeatersEnd(); @@ -105,6 +106,7 @@ FRESULT FPGA_Programming_Up(FPGA_ID FPGA_Id, char * FullPath, bool IncludeReboot CurrentRunningFile++; Report(FullPath,__FILE__,__LINE__,CurrentRunningFile,RpWarning,1,0); FPGABurningActive = false; + GeneralHwReady = true; } diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c index da6dbc03c..dee8fad78 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c @@ -391,12 +391,19 @@ double GetWHSAirFlow(uint8_t OR_Id) #define Vo_LowLimit_ml 1//TBD #define Vo_HighLimit_ml 5000//TBD +double waste_level_ml = 0.0; +double Cartridge_Max_level_ml = 1500.0; + double GetWHSWasteTankLevelMiliLiter() +{ + return waste_level_ml; +} +double CalculateWHSWasteTankLevelMiliLiter() { uint16_t Vm = 0; uint16_t LocalV0 = 0; - double waste_volume_ml = 0.0; double LocalCoefficient; + double waste_volume_milliliter = 0.0; get_vlev1(&Vm); @@ -422,9 +429,9 @@ double GetWHSWasteTankLevelMiliLiter() LocalV0 = WHS_Eeprom.bytes.Orifice_Waste_Level_V0 ; } - waste_volume_ml = (LocalCoefficient * (Vm -LocalV0)); - ReportWithPackageFilter(WasteFilter,"------------ waste_volume_ml -----------------", __FILE__, __LINE__, 0, RpMessage, (waste_volume_ml * 1000), 0); - return waste_volume_ml; + waste_volume_milliliter = (LocalCoefficient * (Vm -LocalV0)); + ReportWithPackageFilter(WasteFilter,"------------ waste_volume_ml -----------------", __FILE__, __LINE__, 0, RpMessage, (waste_volume_milliliter * 1000), 0); + return waste_volume_milliliter; } #define OPEN_WASTE_VALVE 0 @@ -432,9 +439,6 @@ double GetWHSWasteTankLevelMiliLiter() uint32_t WasteControlId = 0xFF; -double waste_level_ml = 0.0; -double Cartridge_Max_level_ml = 1500.0; - bool waste_seq_step2(uint32_t IfIndex, uint32_t BusyFlag) { bool status = OK; @@ -449,12 +453,12 @@ bool waste_seq_step2(uint32_t IfIndex, uint32_t BusyFlag) ReportWithPackageFilter(WasteFilter,"------------ close waste level Air valve -----------------", __FILE__, __LINE__, 0, RpMessage, 0, 0); Trigger_SetWHS_VOC_Valve(CLOSE_WASTE_VALVE); - waste_level_ml = GetWHSWasteTankLevelMiliLiter(); + waste_level_ml = CalculateWHSWasteTankLevelMiliLiter(); ReportWithPackageFilter(WasteFilter,"------------ get waste level in ml -----------------", __FILE__, __LINE__, 0, RpMessage, (waste_level_ml*1000), 0); if(waste_level_ml < (Initial_waste_level_ml - Cartridge_Max_level_ml)) { - //waste empting + //stop waste empting } else { diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.h index 2365e0baf..dae0754cc 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.h +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.h @@ -68,6 +68,8 @@ bool waste_seq_step2(); double GetWHSAirFlow(uint8_t OR_Id); uint16_t GetWHSGasSensor(void); uint16_t GetWHSWasteTankLevel(void); +double GetWHSWasteTankLevelMiliLiter(); + bool SetDisplayView(WHS_Display_View view ); bool SetLeftDisplayView(WHS_Left_Display_View view ); bool SetWriteDisplayView(WHS_Left_Display_View view ); diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c index ab605bccb..64784dfcd 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c @@ -582,7 +582,7 @@ uint32_t MillisecLowLoop(uint32_t tick) //call all modules Millisec functions //test dancers and speed encoders //check all callback units (state machine waiting for completion of a change) - bool Ten_msTick, Fifty_msTick, Hundred_msTick , m20msecTick,m70msecTick,m90msecTick, Onesecond_Tick,OneMinute_Tick,OneHourTick,Gradient_Tick; + bool Ten_msTick, Fifty_msTick, Hundred_msTick , m20msecTick,m70msecTick,m90msecTick, Onesecond_Tick,Tensecond_Tick,OneMinute_Tick,OneHourTick,Gradient_Tick; bool O700Millisecond_Tick,O200Millisecond_Tick,O400Millisecond_Tick,O500Millisecond_Tick,O600Millisecond_Tick; //bool O100Millisecond_Tick,O200Millisecond_Tick,O400Millisecond_Tick,O500Millisecond_Tick,O600Millisecond_Tick,O800Millisecond_Tick,O900Millisecond_Tick; Ten_msTick = (tick%eTenMillisecond == 0) ?true:false; @@ -600,6 +600,7 @@ uint32_t MillisecLowLoop(uint32_t tick) //O900Millisecond_Tick = (tick%eOneSecond == 900) ?true:false; Gradient_Tick = (tick%400 == 0) ?true:false; Onesecond_Tick = (tick%eOneSecond == 0) ?true:false; + Tensecond_Tick = (tick%10000 == 0) ?true:false; OneMinute_Tick = (tick%eOneMinute == 0) ?true:false; OneHourTick = (tick%eOneHour == 0) ?true:false; realtimetest[(tick%1000)/10]++; @@ -751,13 +752,16 @@ uint32_t MillisecLowLoop(uint32_t tick) } } - if (OneMinute_Tick) + if (Tensecond_Tick) { //Trigger_MidTank_Pressure_Read(); for (Disp_i = 0;Disp_i < MAX_SYSTEM_DISPENSERS;Disp_i++) { Read_MidTank_Pressure_Sensor(Disp_i); } + } + if (OneMinute_Tick) + { // MachineUpdateResponseFunc(); /* for (Motor_i = 0;Motor_i < NUM_OF_MOTORS;Motor_i++) { diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index 0181121a3..2a2ac37b2 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -765,11 +765,15 @@ void DiagnosticOneSecCollection(void) DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary, MillisecGetTemperatures(TEMP_SENSE_ANALOG_DRYER_TEMP3)); for (i=0;idryerzone1temp > MaxAllowedTemperature) status = ERROR_CODE__INVALID_PARAMETER; @@ -102,13 +105,9 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams,bool saveData) if (ProcessParams->headzone6temp > MaxAllowedTemperature) status = ERROR_CODE__INVALID_PARAMETER; if (status != 0) { + status = ERROR_CODE__INVALID_PARAMETER; ReportWithPackageFilter(InitFilter,"HandleProcessParameters Temperature too high",__FILE__,(int)__LINE__,(int)status,RpWarning,(int)0,0); - return status; - } - if (MachineReadyForHeating == false) - { - ReportWithPackageFilter(InitFilter,"HandleProcessParameters Init not ready",__FILE__,(int)__LINE__,(int)status,RpWarning,(int)GetMachineState(),0); - status = ERROR_CODE__GENERAL_ERROR; + usnprintf(ProcessErrorMsg, 50, "ProcessParameters Temperature too high"); return status; } if (ProcessParams) @@ -127,6 +126,32 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams,bool saveData) REPORT_MSG(Bytes,"Bytes write to flash"); } } + HeatersStopControlOnHeatersOff(ProcessParams); + dyeingspeed = ProcessParams->dyeingspeed; + dryerbufferlength = ProcessParams->dryerbufferlength; + dryerbufferMeters = dryerbufferlength*0.76+0.9; + dryerbufferCentimeters = dryerbufferlength*76+90; + + + mininkuptake = ProcessParams->mininkuptake; + feedertension = ProcessParams->feedertension; + pullertension = ProcessParams->pullertension; + windertension = ProcessParams->windertension; + headairflow = ProcessParams->headairflow; + dryerairflow = ProcessParams->dryerairflow; + pressurebuildup = ProcessParams->pressurebuildup; + dryerzone1temp = ProcessParams->dryerzone1temp; + + if (MachineReadyForHeating == false) + { + ReportWithPackageFilter(InitFilter,"HandleProcessParameters Init not ready",__FILE__,(int)__LINE__,(int)status,RpWarning,(int)GetMachineState(),0); + status = ERROR_CODE__GENERAL_ERROR; + usnprintf(ProcessErrorMsg, 50, "ProcessParameters Init not ready"); + return status; + } + + //Report("drier buffer length",__FILE__,(int)dryerbufferlength,(int)dryerbufferMeters*100,RpWarning,(int)dryerbufferCentimeters,0); + ReportWithPackageFilter(InitFilter,"HandleProcessParameters Head type",__FILE__,(int)__LINE__,(int)Head_Type,RpWarning,(int)dryerbufferCentimeters,0); if (ProcessParams->mixertemp>1) status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__MixerHeater, true,ProcessParams->mixertemp); @@ -263,24 +288,9 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams,bool saveData) if (status) { ReportWithPackageFilter(InitFilter,"HandleProcessParameters start heaters error",__FILE__,(int)__LINE__,(int)status,RpWarning,(int)GetMachineState(),0); + status = ERROR_CODE__JOB_TEMPERATURE_ALARM; + usnprintf(ProcessErrorMsg, 50, "ProcessParameters start heaters error"); } - HeatersStopControlOnHeatersOff(ProcessParams); - dyeingspeed = ProcessParams->dyeingspeed; - dryerbufferlength = ProcessParams->dryerbufferlength; - dryerbufferMeters = dryerbufferlength*0.76+0.9; - dryerbufferCentimeters = dryerbufferlength*76+90; - - //Report("drier buffer length",__FILE__,(int)dryerbufferlength,(int)dryerbufferMeters*100,RpWarning,(int)dryerbufferCentimeters,0); - ReportWithPackageFilter(InitFilter,"HandleProcessParameters Head type",__FILE__,(int)__LINE__,(int)Head_Type,RpWarning,(int)dryerbufferCentimeters,0); - - mininkuptake = ProcessParams->mininkuptake; - feedertension = ProcessParams->feedertension; - pullertension = ProcessParams->pullertension; - windertension = ProcessParams->windertension; - headairflow = ProcessParams->headairflow; - dryerairflow = ProcessParams->dryerairflow; - pressurebuildup = ProcessParams->pressurebuildup; - return status;//status; } @@ -324,6 +334,7 @@ void ProcessRequestFunc(MessageContainer* requestContainer) { responseContainer.has_error = true; responseContainer.error = (ErrorCode)status; + responseContainer.errormessage = ProcessErrorMsg; } size_t container_size = message_container__pack(&responseContainer, container_buffer); my_free(responseContainer.data.data); diff --git a/Software/Embedded_SW/Embedded/Modules/General/process.h b/Software/Embedded_SW/Embedded/Modules/General/process.h index b5df897ba..6318596f1 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/process.h +++ b/Software/Embedded_SW/Embedded/Modules/General/process.h @@ -18,6 +18,7 @@ extern double windertension; extern double headairflow; extern double dryerairflow; extern double pressurebuildup; +extern double dryerzone1temp; extern int32_t tableindex; diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 661f2c03a..ebb9d1eba 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -1593,6 +1593,7 @@ uint32_t DrierHeaterVoltageSetup(void) if (UseSecondaryDrierHeater == false) { DeActivateHeater (HEATER_TYPE__DryerSecondaryHeater); + Disable_Reading_Heaters_Current(HeaterId2CurrentId[HEATER_TYPE__DryerSecondaryHeater]); } } diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c index 7da33efc3..d0307fe4c 100644 --- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c +++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c @@ -447,33 +447,67 @@ U8 CartridgeWasteFilling(bool status) } /* ------read waste tank sensors ----------- */ +#define WASTE_LEVEL_OVERFLOW 4.0 +#define WASTE_LEVEL_FULL 3.5 +#define WASTE_LEVEL_EMPTY 2.10 + bool RdWasteTankEmptySensor() { + double WasteLevel = 0.0; bool ret = notOK; //WHS_Read_GPI_Registers(); //WHS_info.WHS_sensors.waste_tank_empty_sensor = WHS_GPI_WCONTAINER_WARN(); //ret = WHS_info.WHS_sensors.waste_tank_empty_sensor; - ret = WHS_GPI_WCONTAINER_WARN(); + if (WHS_Type == WHS_TYPE_UNKNOWN) + { + ret = WHS_GPI_WCONTAINER_WARN(); + } + else //new WHS + { + WasteLevel = GetWHSWasteTankLevelMiliLiter(); + if (WasteLevel < WASTE_LEVEL_EMPTY) + ret = OK; + } return ret; } bool RdWasteTankFullSensor() { + double WasteLevel = 0.0; bool ret = notOK; //WHS_Read_GPI_Registers(); //WHS_info.WHS_sensors.waste_tank_full_sensor = WHS_GPI_WCONTAINER_FULL(); //ret = WHS_info.WHS_sensors.waste_tank_full_sensor; - ret = WHS_GPI_WCONTAINER_FULL(); + if (WHS_Type == WHS_TYPE_UNKNOWN) + { + ret = WHS_GPI_WCONTAINER_FULL(); + } + else //new WHS + { + WasteLevel = GetWHSWasteTankLevelMiliLiter(); + if (WasteLevel < WASTE_LEVEL_FULL) + ret = OK; + } return ret; } bool RdWasteTankOverFlowSensor() { bool ret = notOK; + double WasteLevel = 0.0; //WHS_Read_GPI_Registers(); //WHS_info.WHS_sensors.waste_tank_over_flow_sensor = WHS_GPI_WASTE_OVERFULL(); //ret = WHS_info.WHS_sensors.waste_tank_over_flow_sensor; - ret = WHS_GPI_WASTE_OVERFULL(); + if (WHS_Type == WHS_TYPE_UNKNOWN) + { + ret = WHS_GPI_WASTE_OVERFULL(); + } + else //new WHS + { + WasteLevel = GetWHSWasteTankLevelMiliLiter(); + if (WasteLevel > WASTE_LEVEL_OVERFLOW) + ret = OK; + } return ret; } diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c index bc1f0199c..283fc91e8 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c @@ -37,10 +37,14 @@ #include "drivers/adc_sampling/adc.h" #include "drivers/Valves/Valve.h" #include "drivers/Flash_ram/MCU_E2Prom.h" + #include #include #include #include +#include + +#include "drivers/Heater/TemperatureSensor.h" #include "heaters/heaters_ex.h" @@ -111,7 +115,7 @@ uint32_t InitSequenceCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) Report("HWConfigurationInit failed",__FILE__,__LINE__,(int)HWControlId,RpWarning,(int)InitSequenceCallBackFunction,0); SetMachineState(status); AlarmHandlingSetAlarm (EVENT_TYPE__MACHINE_STATE_HW_CONFIG_FAILED,ON); - SetMachineStatus(MACHINE_STATE__Error); + //SetMachineStatus(MACHINE_STATE__Error); } return OK; } @@ -123,6 +127,7 @@ uint32_t InitScheduler(uint32_t IfIndex, uint32_t BusyFlag) StoredInitStages = InitStages; InitSequenceStateMachine(InitStages); } + PowerUpUpdate(MachineStateDetail); return OK; } /*******************************************************************************************************/ @@ -413,6 +418,7 @@ uint32_t InitSequenceInitialBlowerActivation(void) WHS_MAX11614_Load_OrificeZeroValue(total1,total3); } } + Voc_Sensor_Zero_Calibration(); Turn_the_Blower_On();//Turn on with the Default_Voltage // if (BlowerCfg.voltage) @@ -588,7 +594,7 @@ uint32_t InitSequenceInitEnd(void) uint32_t InitSequenceStateMachine( INIT_SEQUENCE_STAGES_ENUM ReadValue) { REPORT_MSG(ReadValue,"InitSequenceStateMachine"); - //PowerUpUpdate(ReadValue); + switch (ReadValue) { case INIT_SEQUENCE_INIT: @@ -639,7 +645,7 @@ uint32_t PowerUpUpdate(MACHINE_STATE_STAGES_ENUM stage) uint32_t status = NOT_SUPPORTED; double calculate; - int result; + int result = 0; MessageContainer responseContainer; ErrorCode Error = ERROR_CODE__NONE; @@ -664,6 +670,7 @@ uint32_t PowerUpUpdate(MACHINE_STATE_STAGES_ENUM stage) response.progresspercentage = 0.0; response.message = "Initializing - Waiting for HW Version"; Error = ERROR_CODE__POWER_UP_NO_CFG_FILE; + last = true; break; case MACHINE_STATE_HW_CONFIG: response.state = POWER_UP_STATE__HwConfig; @@ -675,6 +682,7 @@ uint32_t PowerUpUpdate(MACHINE_STATE_STAGES_ENUM stage) response.progresspercentage = 10.0; response.message = "Hardware Initialization failed"; Error = ERROR_CODE__POWER_UP_HW_CONFIG_FAILED; + last = true; break; case MACHINE_STATE_BUILT_IN_FAILED: response.state = POWER_UP_STATE__BuiltInTest; @@ -729,16 +737,27 @@ uint32_t PowerUpUpdate(MACHINE_STATE_STAGES_ENUM stage) response.progresspercentage = 100.0; response.message = "Waiting for heating data"; Error = ERROR_CODE__POWER_UP_NO_PROCESS_PARAMS; + last = true; break; case MACHINE_STATE_HEATING_STARTED: response.state = POWER_UP_STATE__HeatingStarted; - response.progresspercentage = 30.0; + if (dryerzone1temp < 1) + response.progresspercentage = 30.0; + else + { + calculate = (double)((MillisecGetTemperatures(TEMP_SENSE_ANALOG_DRYER_TEMP1)/100)/(dryerzone1temp))*70.0; + if (calculate > 0) + result = (int)calculate; + response.progresspercentage = 30.0 + result; + } + //Report("Heating calculation",__FILE__,(int)dryerzone1temp,(int)response.progresspercentage,RpWarning,(int)result,0); response.message = "Heating up"; break; case MACHINE_STATE_MACHINE_READY_TO_DYE: response.state = POWER_UP_STATE__MachineReadyToDye; response.progresspercentage = 100.0; response.message = "Ready to dye"; + last = true; break; default: response.state = POWER_UP_STATE__Cancelled; diff --git a/Software/Stubs Collection/stubs/embeddedparametersbuild.cs b/Software/Stubs Collection/stubs/embeddedparametersbuild.cs index e106699c8..b26fefe8f 100644 --- a/Software/Stubs Collection/stubs/embeddedparametersbuild.cs +++ b/Software/Stubs Collection/stubs/embeddedparametersbuild.cs @@ -101,7 +101,7 @@ configurationParameters.GeneralParameters.Add(checkCurrentAlarms); /*3*/ Double checkTamperAlarms = new Double(); -checkTamperAlarms = 0.0; +checkTamperAlarms = 1.0; configurationParameters.GeneralParameters.Add(checkTamperAlarms); /*4*/ -- cgit v1.3.1