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 --- .../Embedded/Modules/Control/MillisecTask.c | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 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 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 -- 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