From f7a9a6a6fd829f0f764a64506cd9d642bbf80743 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Mon, 27 Apr 2020 18:02:04 +0300 Subject: Version 1.4.6.22 small fixes --- Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Control') diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c index d31ea3c05..ab605bccb 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c @@ -767,8 +767,8 @@ uint32_t MillisecLowLoop(uint32_t tick) MotorGetStatusFromFPGA(Motor_i); }*/ midtankDisplay = 1-midtankDisplay; - if (WHS_Type == WHS_TYPE_UNKNOWN) - Gas_PPM_Info = Calculate_Gas_Power_Consumption(); + /*if (WHS_Type == WHS_TYPE_UNKNOWN) + Gas_PPM_Info = Calculate_Gas_Power_Consumption();*/ //Trigger_WHS_MAX11614_Read_allADC(); #ifdef CONTROL_DEBUG ResetControlTime(); -- 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/Embedded_SW/Embedded/Modules/Control') 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 From e1174331dde7bac651e19b6274c856aaf1e6e9a7 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Thu, 7 May 2020 11:56:13 +0300 Subject: fix whs control, remove some logs, cancel waste tank reading for now --- .../Drivers/I2C_Communication/DAC/Blower.c | 2 ++ .../WHS_Card/D_ADS122_PT100/WHS_PT100_ADC.c | 8 ++--- .../WHS_Card/D_EMC2302_Fan/WHS_Fan.c | 2 +- .../WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c | 8 +++-- .../WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c | 6 +++- .../Embedded/Modules/Control/MillisecTask.c | 34 +++++++++++----------- .../Embedded/Modules/Heaters/Heaters_print.c | 4 +-- .../StateMachines/Initialization/InitSequence.c | 2 +- 8 files changed, 37 insertions(+), 29 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Control') diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/DAC/Blower.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/DAC/Blower.c index ec86475f7..76992604c 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/DAC/Blower.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/DAC/Blower.c @@ -24,6 +24,7 @@ #include "Drivers/I2C_Communication/I2C_Task.h" #include "Blower.h" #include "modules/control/control.h" +#include "modules/general/process.h" #include "modules/diagnostics/diagnostics.h" #include "drivers/FPGA/FPGA.h" @@ -176,6 +177,7 @@ uint32_t Control_Voltage_To_Blower(uint32_t mV) else //new WHS { Trigger_SetWHSBlowerVoltage(mV); + //Report("------------ Set Blower Voltage:-----------------", __FILE__,__LINE__, mV, RpMessage, (int)headairflow, 0); } voltage = mV; DiaglosticChangeBlowerData(); diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_ADS122_PT100/WHS_PT100_ADC.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_ADS122_PT100/WHS_PT100_ADC.c index 6cfdee163..71a78fc01 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_ADS122_PT100/WHS_PT100_ADC.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_ADS122_PT100/WHS_PT100_ADC.c @@ -248,28 +248,28 @@ bool WHS_PT100_Read(TEMPERATURE_SENSOR_ID_ENUM SensorId) delayms(20); Status |= D_ADS122_ReadDataCommand(PT100_Conf[0].i2s_bus, PT100_Conf[0].i2s_address, &(PT100_Conf[0].value[0])); Temperatures = CalculateTemperatures(SensorId, PT100_Conf[0].value[0]); - ReportWithPackageFilter(WasteFilter,"------------read PT100 0 0 [J11] (value) -----------------", __FILE__,__LINE__, PT100_Conf[0].value[0], RpMessage, Temperatures, 0); + //ReportWithPackageFilter(WasteFilter,"------------read PT100 0 0 [J11] (value) -----------------", __FILE__,__LINE__, PT100_Conf[0].value[0], RpMessage, Temperatures, 0); break; case WHS_PT100_2_0X80_1: Status |= D_ADS122_StartSync(PT100_Conf[0].i2s_bus, PT100_Conf[0].i2s_address); delayms(20); Status |= D_ADS122_ReadDataCommand(PT100_Conf[0].i2s_bus, PT100_Conf[0].i2s_address, &(PT100_Conf[0].value[1])); Temperatures = CalculateTemperatures(SensorId, PT100_Conf[0].value[1]); - ReportWithPackageFilter(WasteFilter,"------------read PT100 0 0 [J20] (value) -----------------", __FILE__,__LINE__, PT100_Conf[0].value[1], RpMessage, Temperatures, 0); + //ReportWithPackageFilter(WasteFilter,"------------read PT100 0 0 [J20] (value) -----------------", __FILE__,__LINE__, PT100_Conf[0].value[1], RpMessage, Temperatures, 0); break; case WHS_PT100_3_0X82_0: Status |= D_ADS122_StartSync(PT100_Conf[1].i2s_bus, PT100_Conf[1].i2s_address); delayms(20); Status |= D_ADS122_ReadDataCommand(PT100_Conf[1].i2s_bus, PT100_Conf[1].i2s_address, &(PT100_Conf[1].value[0])); Temperatures = CalculateTemperatures(SensorId, PT100_Conf[1].value[0]); - ReportWithPackageFilter(WasteFilter,"------------read PT100 0 0 [J12] (value) -----------------", __FILE__,__LINE__, PT100_Conf[1].value[0], RpMessage, Temperatures, 0); + //ReportWithPackageFilter(WasteFilter,"------------read PT100 0 0 [J12] (value) -----------------", __FILE__,__LINE__, PT100_Conf[1].value[0], RpMessage, Temperatures, 0); break; case WHS_PT100_4_0X82_1: Status |= D_ADS122_StartSync(PT100_Conf[1].i2s_bus, PT100_Conf[1].i2s_address); delayms(20); Status |= D_ADS122_ReadDataCommand(PT100_Conf[1].i2s_bus, PT100_Conf[1].i2s_address, &(PT100_Conf[1].value[1])); Temperatures = CalculateTemperatures(SensorId, PT100_Conf[1].value[1]); - ReportWithPackageFilter(WasteFilter,"------------read PT100 0 0 [J21] (value) -----------------", __FILE__,__LINE__, PT100_Conf[1].value[1], RpMessage, Temperatures, 0); + //ReportWithPackageFilter(WasteFilter,"------------read PT100 0 0 [J21] (value) -----------------", __FILE__,__LINE__, PT100_Conf[1].value[1], RpMessage, Temperatures, 0); break; default: Status = ERROR; diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.c index 2548e5d00..40511fe98 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.c @@ -72,7 +72,7 @@ bool Select_WHS_Fan_Mux_Channel(WHS_fan_num fan_number) // { // return status; // } - ReportWithPackageFilter(WasteFilter,"------------ select fan MUX (fan_number)-----------------", __FILE__,__LINE__,fan_number, RpMessage, 0, 0); +// ReportWithPackageFilter(WasteFilter,"------------ select fan MUX (fan_number)-----------------", __FILE__,__LINE__,fan_number, RpMessage, 0, 0); switch (fan_number) { case FAN1: 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 0556a1323..e58a18e2a 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 @@ -249,7 +249,7 @@ double get_Q(WHS_Flow_Meter num) { calc = 0; } - ReportWithPackageFilter(WasteFilter,"------------ calc Q value (calc) (flow num)-----------------", __FILE__,__LINE__, calc, RpMessage, num, 0); + ReportWithPackageFilter(WasteFilter,"------------ calc Q value (calc) (flow num)-----------------", __FILE__,__LINE__, (int)(calc*100), RpMessage, num, 0); return calc; } @@ -431,8 +431,10 @@ double CalculateWHSWasteTankLevelMiliLiter() LocalV0 = WHS_Eeprom.bytes.Orifice_Waste_Level_V0 ; } + LocalCoefficient = DefaultCoefficient; + LocalV0 = defaultVo_ml; waste_volume_milliliter = (LocalCoefficient * (Vm -LocalV0)); - ReportWithPackageFilter(WasteFilter,"------------ waste_volume_ml -----------------", __FILE__, __LINE__, 0, RpMessage, (waste_volume_milliliter * 1000), 0); + ReportWithPackageFilter(WasteFilter,"------------ waste_volume_ml -----------------", __FILE__, __LINE__, 0, RpMessage, (int)(waste_volume_milliliter * 1000), 0); return waste_volume_milliliter; } @@ -456,7 +458,7 @@ bool waste_seq_step2(uint32_t IfIndex, uint32_t BusyFlag) Trigger_SetWHS_VOC_Valve(CLOSE_WASTE_VALVE); waste_level_ml = CalculateWHSWasteTankLevelMiliLiter(); - ReportWithPackageFilter(WasteFilter,"------------ get waste level in ml -----------------", __FILE__, __LINE__, 0, RpMessage, (waste_level_ml*1000), 0); + //ReportWithPackageFilter(WasteFilter,"------------ get waste level in ml -----------------", __FILE__, __LINE__, 0, RpMessage, (int)(waste_level_ml*1000), 0); if(waste_level_ml < (Initial_waste_level_ml - Cartridge_Max_level_ml)) { diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c index 1a0021694..1531a8d3d 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c @@ -351,7 +351,8 @@ bool WHS_Set_Blower_Control_Closed_Loop(double Q_value) if (tmp > 0.05) { - volt = g_MAX5805_device.CODE; + volt = getBlowerState(); + //volt = g_MAX5805_device.CODE; if (current_dying_head_flow_Q < Q_value) { if (( Q_value - current_dying_head_flow_Q) > 1) @@ -407,6 +408,9 @@ bool WHS_Set_Blower_Control_Closed_Loop(double Q_value) } } } + // Report("------------ increase blower voltage by 100:-----------------", __FILE__,100, volt, RpMessage, (int)((Q_value - current_dying_head_flow_Q)*100), 0); + // Report("------------ Blower Control :-----------------", __FILE__,Q_value, (int)(current_dying_head_flow_Q*100), RpMessage, (int)(Q_value*100), 0); + return OK; } diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c index 64784dfcd..af3ba7668 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c @@ -275,19 +275,19 @@ int32_t MillisecSetMotorSpeed(TimerMotors_t MotorId, unsigned long Data, int Len } int MillisecFlushMsgQ(TimerMotors_t MotorId) { - MillisecMotorDataStruc MotorData = {0}; + MillisecMotorDataStruc MotorInfo = {0}; int pend = Mailbox_getNumPendingMsgs(MotorsMsgQ[MotorId]); int i; if (pend) { for (i=0;i= NUM_OF_MOTORS) return -1; MotorActivity++; - MotorData.Callback = Callback; - MotorData.Data = Data; - MotorData.Length = Length; - MotorData.DataRequired = false; + MotorInfo.Callback = Callback; + MotorInfo.Data = Data; + MotorInfo.Length = Length; + MotorInfo.DataRequired = false; if (MotorsMsgQ[MotorId] != NULL) - return Mailbox_post(MotorsMsgQ[MotorId] , &MotorData, BIOS_NO_WAIT); + return Mailbox_post(MotorsMsgQ[MotorId] , &MotorInfo, BIOS_NO_WAIT); else return false; } int32_t MillisecReadFromMotor(TimerMotors_t MotorId, unsigned long Data, int Length, MSecFptr Callback) { - MillisecMotorDataStruc MotorData = {0}; + MillisecMotorDataStruc MotorInfo = {0}; if (MotorId >= NUM_OF_MOTORS) return -1; //========================== if ((MotorId == HARDWARE_MOTOR_TYPE__MOTO_WINDER)|| @@ -332,12 +332,12 @@ int32_t MillisecReadFromMotor(TimerMotors_t MotorId, unsigned long Data, int Len //========================== MotorActivity++; MotorActivity++; - MotorData.Callback = Callback; - MotorData.Data = Data; - MotorData.Length = Length; - MotorData.DataRequired = true; + MotorInfo.Callback = Callback; + MotorInfo.Data = Data; + MotorInfo.Length = Length; + MotorInfo.DataRequired = true; if (MotorsMsgQ[MotorId] != NULL) - return Mailbox_post(MotorsMsgQ[MotorId] , &MotorData, BIOS_NO_WAIT); + return Mailbox_post(MotorsMsgQ[MotorId] , &MotorInfo, BIOS_NO_WAIT); else return false; } @@ -417,7 +417,7 @@ uint32_t MillisecLoop(uint32_t tick) if (PT100Activity) { - for (Sensor_i = 0;Sensor_i < MAX_TANGO_TEMPERATURE_SENSOR_ID;Sensor_i++) + for (Sensor_i = 0;Sensor_i < MAX_MAIN_CARD_TEMP_SENS_ID;Sensor_i++) { /*if (TempSensorResponse[Sensor_i].Busy == true) { @@ -732,7 +732,7 @@ uint32_t MillisecLowLoop(uint32_t tick) } if (WHS_Type == WHS_TYPE_NEW) { - Trigger_WHS_PT100_Read_All(); + //Trigger_WHS_PT100_Read_All(); WHS_Blower_Avarege(HEAD_FLOW_METER); WHS_Blower_Avarege(DRIER_FLOW_METER); WHS_Start_Blower_Control_Closed_Loop (); @@ -742,7 +742,7 @@ uint32_t MillisecLowLoop(uint32_t tick) // #warning TBD need to define the timing if(Whs_emptying_cycle >= 2) { - waste_seq_step1();// include 1Sec delay + //waste_seq_step1();// include 1Sec delay Whs_emptying_cycle = 0; } else diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index b337de5eb..c44043a12 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -1547,8 +1547,8 @@ uint32_t DrierHeaterVoltageSetup(void) DrierAcVoltage = ReadVAC(); if (DrierAcVoltage<=180) { - AlarmHandlingSetAlarm(EVENT_TYPE__POWER_UP_BIT_FAILURE, true); - ReportWithPackageFilter(HeatersFilter,"Power too low!!!!!", __FILE__,__LINE__,DrierAcVoltage, RpMessage, 0, 0); + //AlarmHandlingSetAlarm(EVENT_TYPE__POWER_UP_BIT_FAILURE, true); + //ReportWithPackageFilter(HeatersFilter,"Power too low!!!!!", __FILE__,__LINE__,DrierAcVoltage, RpMessage, 0, 0); } else if (DrierAcVoltage>264) { diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c index 283fc91e8..eeec890e4 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c @@ -651,10 +651,10 @@ uint32_t PowerUpUpdate(MACHINE_STATE_STAGES_ENUM stage) StartPowerUpResponse response = START_POWER_UP_RESPONSE__INIT; bool last = false; - Report("PowerUpUpdate",__FILE__,last,InitStages,RpWarning,(int)stage,0); if (PowerUpToken[0] == 0) return OK; + Report("PowerUpUpdate",__FILE__,last,InitStages,RpWarning,(int)stage,0); response.has_state = true; response.has_progresspercentage = true; -- cgit v1.3.1 From c072840a7e3f4530afb55aaad1f81e4ae8667e8b Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sun, 10 May 2020 18:35:12 +0300 Subject: bug fixes and investigations. IFS brushstop closing, waste tank diagnostics, heaters hangout handling --- .../Embedded/Common/SWUpdate/FileSystem.c | 12 +++++++---- .../WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c | 1 + .../Embedded/Modules/AlarmHandling/AlarmHandling.c | 9 ++++++++ .../Embedded/Modules/Control/MillisecTask.c | 4 +++- .../Embedded/Modules/Diagnostics/Diagnostics.c | 4 ++++ .../Embedded/Modules/Heaters/Heaters_print.c | 25 ++++++++++++++-------- .../Embedded_SW/Embedded/Modules/IDS/IDS_print.c | 3 ++- 7 files changed, 43 insertions(+), 15 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Control') diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c index feac91829..0fbe1cc0d 100644 --- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c +++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c @@ -194,16 +194,19 @@ uint32_t FileChunkUploadRequestFunc(MessageContainer* requestContainer) else { FileReceivedLength += WrittenBytes; - ReportWithPackageFilter(CommFilter,"Chunk received", __FILE__,WrittenBytes,FileReceivedLength, RpMessage,msec_millisecondCounter-save_milisec, 0); + ReportWithPackageFilter(CommFilter,"Chunk received", __FILE__,FileLength,FileReceivedLength, RpMessage,msec_millisecondCounter-save_milisec, 0); //REPORT_MSG (FileReceivedLength,"file upload chunk"); if (FileReceivedLength == FileLength) { - REPORT_MSG (FileReceivedLength,"file upload ended successfully"); + REPORT_MSG (FileReceivedLength,"file upload ended successfully 111"); + STATUS_RED_LED_ON; f_close(ReceivedFileHandle); my_free (UploadFileHandle); UploadFileHandle = 0; FileReceivedLength = 0; + STATUS_RED_LED_OFF; + REPORT_MSG (FileReceivedLength,"file upload ended successfully 222"); FileDone = true; } else @@ -211,6 +214,7 @@ uint32_t FileChunkUploadRequestFunc(MessageContainer* requestContainer) if (FileReceivedLength > FileLength) { REPORT_MSG (FileReceivedLength,"file upload too much data!"); + Task_setPri(CommRxTaskHandle, 9); f_close(ReceivedFileHandle); my_free (UploadFileHandle); UploadFileHandle = 0; @@ -237,9 +241,9 @@ uint32_t FileChunkUploadRequestFunc(MessageContainer* requestContainer) SendCharsWithType(container_buffer, container_size,MESSAGE_TYPE__FileChunkUploadResponse); if (FileDone == true) { - Task_setPri(CommRxTaskHandle, 9); Semaphore_post(FFS_Sem); - //Report("Task_setPri", __FILE__, __LINE__, 9, RpWarning, (int)CommRxTaskHandle, 0); + Task_setPri(CommRxTaskHandle, 9); + Report("Task_setPri", __FILE__, __LINE__, 9, RpWarning, (int)CommRxTaskHandle, 0); } return OK; } diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c index 9beda2e48..6e6f38dfb 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c @@ -418,6 +418,7 @@ void WHS_Set_SetPoint_Q_value(double value) SetPoint_Q = value; CofigurationFlow = 0; WHS_Start_Blower_Control_Closed_Loop(); + Report("------------ SetPoint_Q_value :-----------------", __FILE__,__LINE__, (int)(SetPoint_Q*100), RpMessage, (int)CofigurationFlow, 0); } void WHS_enable_control_loop(bool value) // 0=disable 1= enable diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c index 72da194e0..437a361f4 100644 --- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c @@ -810,7 +810,16 @@ JobEndReasonEnum AlarmHandlingPrepareJob(void *CurrentJob) // DispenserInUse[Dispenser_i] = false; //} JobEndReasonEnum status = JOB_OK; + Task_Handle TaskHandle1 = Task_self(); + int pri = Task_getPri(TaskHandle1); + + ACTIVITY_GREEN_LED_ON; + Task_setPri(TaskHandle1, 3); + Report("Task_setPri", __FILE__, pri, 3, RpWarning, (int)TaskHandle1, 0); IDS_MapDispenserUsedinJob(CurrentJob); + Task_setPri(TaskHandle1, pri); + Report("Task_setPri", __FILE__, __LINE__, pri, RpWarning, (int)Task_self(), 0); + ACTIVITY_GREEN_LED_OFF; if (n_segments == 0) return JOB_OK; if (AlarmItem == NULL) diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c index af3ba7668..e0d1e38de 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c @@ -742,7 +742,7 @@ uint32_t MillisecLowLoop(uint32_t tick) // #warning TBD need to define the timing if(Whs_emptying_cycle >= 2) { - //waste_seq_step1();// include 1Sec delay + waste_seq_step1();// include 1Sec delay Whs_emptying_cycle = 0; } else @@ -773,6 +773,8 @@ uint32_t MillisecLowLoop(uint32_t tick) midtankDisplay = 1-midtankDisplay; /*if (WHS_Type == WHS_TYPE_UNKNOWN) Gas_PPM_Info = Calculate_Gas_Power_Consumption();*/ + if (WHS_Type == WHS_TYPE_NEW) + ReportWithPackageFilter(ThreadFilter,"waste tank calculate level",__FILE__,__LINE__,(int)(GetWHSWasteTankLevelMiliLiter()*1000),RpWarning,(int) msec_millisecondCounter,0); //Trigger_WHS_MAX11614_Read_allADC(); #ifdef CONTROL_DEBUG ResetControlTime(); diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index dee07827f..56917391a 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -115,6 +115,7 @@ double HeadFlowMeter; double tempFlow = 0.0; double DrierFlowMeter; double AcVoltage; +double WasteLevel = 0.0; double HeatersCurrent[NUM_OF_CURRENT_HEATERS][1]; double HeadCurrent[MAX_FLAT_HEAD_HEATERS][1]; double VOC_Sensor; @@ -728,6 +729,9 @@ void DiagnosticOneSecCollection(void) Report("Head flow change 1m",__FILE__,(int)diagvoltage,(int)tempFlow,RpWarning,(int)HeadFlowMeter,0); tempFlow = HeadFlowMeter; } + DiagnosticsMonitor.n_chillertemperature = 1; + WasteLevel = GetWHSWasteTankLevelMiliLiter(); + DiagnosticsMonitor.chillertemperature = &WasteLevel; } HeatersCurrent[HEATER_DRYER_CURRENT_1][0] = Get_Heaters_Current(HEATER_DRYER_CURRENT_1); HeatersCurrent[HEATER_DRYER_CURRENT_2][0] = Get_Heaters_Current(HEATER_DRYER_CURRENT_2); diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index c44043a12..634249674 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -611,7 +611,7 @@ uint32_t HeaterCommandRequestMessage(int HeaterNum, bool OnOff, int Temperature else { //HeaterPreviousRead[HeaterId] = MillisecGetTemperatures(HeaterId);// - ReportWithPackageFilter(HeatersFilter,"Restarting same temperature Heater Temp",__FILE__,HeaterId,ControlIdtoHeaterId [HeaterId],RpWarning,HeaterPreviousRead[HeaterId], 0); + ReportWithPackageFilter(HeatersFilter,"Restarting same temperature Heater Temp",__FILE__,HeaterId,HeaterPIDConfig[HeaterId].m_calculatedError,RpWarning,HeaterPreviousRead[HeaterId], 0); HeaterRestarted[HeaterId] = true; } //PrepareHeater(HeaterId,Temperature); //prepare the heaters control info @@ -939,7 +939,7 @@ uint32_t HeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) if (HeaterMaxTempFlag[index] == false) { //LOG_ERROR (MaxreadValue/100, "Heater Over the max temperature, turned off"); - //ReportWithPackageFilter(HeatersFilter," AC Heater Over the max temperature, turned off",__FILE__,index,HeaterReady[index],RpWarning,HeaterControl[index].sensormaxvalue, 0); + ReportWithPackageFilter(HeatersFilter," AC Heater Over the max temperature, turned off",__FILE__,index,HeaterReady[index],RpWarning,HeaterControl[index].sensormaxvalue, 0); } DeActivateHeater(HEATER_TYPE__DryerMainHeater); HeaterMaxTempFlag[index] = true; @@ -983,7 +983,6 @@ uint32_t DcHeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) return OK; if ((HeaterPreviousRead[index]) >= HeaterControl[index].sensormaxvalue) { - ReportWithPackageFilter(HeatersFilter,"Heater over the max temperature",__FILE__,index,OverHeatCounter[index],RpWarning,HeaterControl[index].sensormaxvalue, 0); if(OverHeatCounter[index]++ >=Overheat_Count_Limit) { OverHeatCounter[index] = Overheat_Count_Limit; @@ -1002,9 +1001,12 @@ uint32_t DcHeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) HeaterRecalculateHeaterParams(index, 0); HeaterMaxTempFlag[index] = true; //ReportWithPackageFilter(HeatersFilter,(MinreadValue/100), "Heater Over the max temperature, turned off"); - ReportWithPackageFilter(HeatersFilter,"DC Heater Over the max temperature, turned off",__FILE__,index,HeaterPreviousRead[index],RpWarning, HeaterReady[index],0); if (getIdleState() == false) + { + ReportWithPackageFilter(HeatersFilter,"DC Heater Over the max temperature, turned off",__FILE__,index,HeaterPreviousRead[index],RpWarning, HeaterReady[index],0); + ReportWithPackageFilter(HeatersFilter,"Heater over the max temperature",__FILE__,index,OverHeatCounter[index],RpWarning,HeaterControl[index].sensormaxvalue, 0); AlarmHandlingSetAlarm(HeaterEventType[index], true); + } return OK; } else if ((HeaterPreviousRead[index]) < (HeaterControl[index].sensorminvalue)) @@ -1120,7 +1122,7 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) HeaterPreviousRead[index] = readValue; //ReportWithPackageFilter(HeatersFilter, "AC Heating in progress",__FILE__,readValue,HeaterReady[index],RpError, HeaterAtTemp[index],0); - if (readValue>(HeaterCmd[index].targettemperatue+800)) + if ((readValue>(HeaterCmd[index].targettemperatue+800))&&(getIdleState() == false)) { ReportWithPackageFilter(HeatersFilter, "AC OverHeating in progress",__FILE__,readValue,HeaterReady[index],RpError, HeaterAtTemp[index],0); } @@ -1321,10 +1323,14 @@ uint32_t DCHeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) HeaterRecalculateHeaterParams(index, 0); return ERROR; } - if (readValue>(HeaterCmd[index].targettemperatue+500)) + if ((readValue>(HeaterCmd[index].targettemperatue+300))&&(getIdleState() == false)) { - ReportWithPackageFilter(HeatersFilter, "DC OverHeating in progress",__FILE__,index,readValue,RpError, HeaterReady[index],0); + ReportWithPackageFilter(HeatersFilter, "DC OverHeating in progress",__FILE__,index,readValue,RpError, HeaterPIDConfig[index].m_calculatedError,0); } + /*if (index == 4) + { + ReportWithPackageFilter(HeatersFilter, "DC Heating info head 2",__FILE__,GetControlLowDevice_i(),readValue,RpError, HeaterPIDConfig[index].m_calculatedError,0); + }*/ // check if the read value is within the proportional band if (HeaterReady[index]==false) @@ -1335,7 +1341,8 @@ uint32_t DCHeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) DeActivateHeater(index); HeaterRecalculateHeaterParams(index, 0); //Heaters OFF until coming into the proportional band - ReportWithPackageFilter(HeatersFilter,"HEATER Over temperature ", __FILE__,index,HeaterCmd[index].targettemperatue, RpMessage, readValue, 0); + if (getIdleState() == false) + ReportWithPackageFilter(HeatersFilter,"HEATER Over temperature ", __FILE__,index,HeaterCmd[index].targettemperatue, RpMessage, readValue, 0); return OK; } if (readValue < ((HeaterCmd[index].targettemperatue * (100-HeaterControl[index].outputproportionalband))/100)) @@ -1423,7 +1430,7 @@ uint32_t DCHeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) // #warning PID is now only proportional (above) if (HeaterRestarted[index] == true) { - ReportWithPackageFilter(HeatersFilter,"Restarting same temperature Heater Temp",__FILE__,index,HeaterPIDConfig[index].m_calculatedError,RpWarning,readValue, 0); + ReportWithPackageFilter(HeatersFilter,"Restarted same temperature Heater ",__FILE__,index,HeaterPIDConfig[index].m_calculatedError,RpWarning,readValue, 0); HeaterRestarted[index] = false; } HeaterRecalculateHeaterParams(index, (int)(HeaterPIDConfig[index].m_calculatedError/100)); diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c index 5ca59a434..ae6751693 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c @@ -1491,6 +1491,7 @@ uint32_t IDSBrushStopRestartCallback(uint32_t IfIndex, uint32_t readValue) Report("JobEndSequence",__FILE__,__LINE__,(int)JobBrushStopId,RpWarning,(int)SegmentNumOfBrushStops,0); SafeRemoveControlCallback(BrushStopControlId,IDSBrushStopRestartCallback); BrushStopControlId = 0Xff; + return OK; } if (uploadstrategy == JOB_UPLOAD_STRATEGY__Default) { @@ -1506,7 +1507,7 @@ uint32_t IDSBrushStopRestartCallback(uint32_t IfIndex, uint32_t readValue) { Task_stat(Control_Task_Handle,&statbuf); //REPORT_MSG(FileBrushStop->index,"BrushStopRead Index"); - Report("BrushStopRead Index",__FILE__,__LINE__,(int)FileBrushStop->index,RpWarning,(int)statbuf.used,0); + Report("BrushStopRead Index",__FILE__,BrushStopTime,(int)FileBrushStop->index,RpWarning,(int)BrushStopStartTime,0); Dispensers = FileBrushStop->dispensers; n_dispensers = FileBrushStop->n_dispensers; } -- cgit v1.3.1