From f3c163e96a9fd733922ce56e37025e2dff0d47e6 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Thu, 17 Sep 2020 16:39:26 +0300 Subject: some bug fixes and changes --- Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Thread') diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c index 554e4d1ef..d5c186893 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c @@ -1407,6 +1407,8 @@ uint32_t ThreadLoadingReport(void) if (ThreadLoadingToken[0] == 0) return OK; + if (LoadStages == THREAD_LOAD_INIT) + return OK; if (MessageState == 0) { @@ -1485,7 +1487,7 @@ uint32_t ThreadLoadingRestartReport(void) //sending after a failure in the final response.has_state = true; response.state = THREAD_LOADING_STATE__ReadyForLoading; response.errorreason = DefaultErrSrt; - Report("ThreadLoadingReport",__FILE__,MessageState,response.state,RpWarning,(int)LoadStages,0); + Report("ThreadLoadingRestartReport",__FILE__,MessageState,response.state,RpWarning,(int)LoadStages,0); //------------------------------------------------------------------------------------------- responseContainer = createContainer(MESSAGE_TYPE__StartThreadLoadingResponse, ThreadLoadingToken, false, &response, &start_thread_loading_response__pack, &start_thread_loading_response__get_packed_size); responseContainer.has_continuous = true; -- cgit v1.3.1 From ca6d67e7e5a9ca719a5a32466f701b076aac635d Mon Sep 17 00:00:00 2001 From: Ronen Sberlo Date: Thu, 24 Sep 2020 10:33:06 +0300 Subject: add compilation flag for tunnel pt100 --- .../Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c | 4 ++- .../Embedded/Modules/Heaters/Heaters_print.c | 36 +++++++++++++++++++--- .../Embedded/Modules/IDS/IDS_Cleaning.c | 17 +++++++--- .../Embedded/Modules/Stubs_Handler/Progress.c | 10 ++++++ .../Embedded/Modules/Thread/Thread_ex.h | 2 +- .../Embedded/Modules/Thread/Thread_print.c | 21 +++++++++++-- 6 files changed, 76 insertions(+), 14 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Thread') diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c index 431843d15..495f27652 100644 --- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c +++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c @@ -449,10 +449,12 @@ bool FPGA_Read_limit_Switches(FPGA_GPI_ENUM Limit_Switch) break; case I2C_HEADCARD_COVER_LS_REAR: case I2C_HEADCARD_COVER_LS_ARC: + if(Head_Type == HEAD_TYPE_ARC) + LM_Status = Head_I2C_EXP4_0x46.bits.INPUT_LS_REAR_ARC_COVER; + else LM_Status = !(Head_I2C_EXP4_0x46.bits.INPUT_LS_REAR_ARC_COVER); break; case I2C_HEADCARD_COVER_LS_UPPER: - if(Head_Type == HEAD_TYPE_FLAT) LM_Status = !(Head_I2C_EXP4_0x46.bits.INPUT_LS_UP); break; case I2C_HEADCARD_COVER_LS_TUNNEL_ARC: diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 3cadd407c..2b0a0e1af 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -229,9 +229,13 @@ void initializeArrays(void) HeaterId2PT100Id[HEATER_TYPE__HeaterZone11] = HEAD_PT100_ZONE_11_0X8A_0; HeaterId2PT100Id[HEATER_TYPE__HeaterZone12] = HEAD_PT100_ZONE_12_0X8A_1; */ - HeaterId2PT100Id[HEATER_TYPE__HeadCoverHeater1] = HEAD_PT100_AIR_HEATER_2_0X8C_1;//HEAD_PT100_ZONE_11_0X8A_0; - HeaterId2PT100Id[HEATER_TYPE__HeadCoverHeater2] = HEAD_PT100_AIR_HEATER_1_0X8C_0 ;//HEAD_PT100_ZONE_12_0X8A_1; - +#ifdef USE_TUNNEL_PT100 + HeaterId2PT100Id[HEATER_TYPE__HeadCoverHeater1] = HEAD_PT100_ZONE_11_0X8A_0; //HEAD_PT100_AIR_HEATER_2_0X8C_1; + HeaterId2PT100Id[HEATER_TYPE__HeadCoverHeater2] = HEAD_PT100_ZONE_12_0X8A_1; //HEAD_PT100_AIR_HEATER_1_0X8C_0; +#else + HeaterId2PT100Id[HEATER_TYPE__HeadCoverHeater1] = HEAD_PT100_AIR_HEATER_2_0X8C_1; + HeaterId2PT100Id[HEATER_TYPE__HeadCoverHeater2] = HEAD_PT100_AIR_HEATER_1_0X8C_0; +#endif HeaterId2CurrentId[HEATER_TYPE__DryerAirHeater] = NUM_OF_CURRENT_HEATERS; HeaterId2CurrentId[HEATER_TYPE__DryerMainHeater] = HEATER_DRYER_CURRENT_1; HeaterId2CurrentId[HEATER_TYPE__DryerSecondaryHeater] = HEATER_DRYER_CURRENT_2; @@ -1099,6 +1103,8 @@ uint32_t HeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) uint32_t DcHeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) { int index=HEATER_TYPE_MAX_HEATERS; + uint32_t BlowerPt100Read = 0; + if (IfIndex>>8 != IfTypeHeaters) { ReportWithPackageFilter(HeatersFilter, "Wrong Interface type",__FILE__,__LINE__,IfIndex,RpError, 0,0); @@ -1108,9 +1114,29 @@ uint32_t DcHeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) //int32_t readValue = MillisecGetTemperatures(HeaterId2PT100Id[index]); if (HeaterControl[index].sensormaxvalue == 0) return OK; - if ((HeaterPreviousRead[index]) >= HeaterControl[index].sensormaxvalue) +#ifdef USE_TUNNEL_PT100 + if (Head_Type == HEAD_TYPE_ARC) { + if (index == HEATER_TYPE__HeadCoverHeater1) { + BlowerPt100Read = MillisecGetTemperatures(HEAD_PT100_AIR_HEATER_2_0X8C_1); + } + if (index == HEATER_TYPE__HeadCoverHeater2) { + BlowerPt100Read = MillisecGetTemperatures(HEAD_PT100_AIR_HEATER_1_0X8C_0); + } + } +#else + if (Head_Type == HEAD_TYPE_ARC) { + if (index == HEATER_TYPE__HeadCoverHeater1) { + BlowerPt100Read = MillisecGetTemperatures(HEAD_PT100_ZONE_11_0X8A_0); + } + if (index == HEATER_TYPE__HeadCoverHeater2) { + BlowerPt100Read = MillisecGetTemperatures(HEAD_PT100_ZONE_12_0X8A_1); + } + } +#endif + + if ((HeaterPreviousRead[index] >= HeaterControl[index].sensormaxvalue) || (BlowerPt100Read > 25000)) { - if(OverHeatCounter[index]++ >=Overheat_Count_Limit) + if(OverHeatCounter[index]++ >= Overheat_Count_Limit) { OverHeatCounter[index] = Overheat_Count_Limit; //?????HeaterReady[index] = false; diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c index 51294b1a2..07cc5774d 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c @@ -96,7 +96,7 @@ uint32_t IDS_Cleaning_Move_Actuators() } } else { //arc if (CleaningStageCounter == 0) { - MotorSetSpeed(MotorId, 1000); + MotorSetSpeed(MotorId, 750); ReportWithPackageFilter(IDSFilter,"IDS_Cleaning_Motor_Run", __FILE__, __LINE__, 1, RpWarning, CleaningStageCounter, 0); } } @@ -149,10 +149,17 @@ uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback) uint32_t status = OK; status = IDS_Dispenser_Close_Valve_And_Stop_Motor(CLEANER_DISPENSER,callback); ReportWithPackageFilter(IDSFilter,"IDS_Cleaning_Stop_Cleaning_Solution", __FILE__, __LINE__, CLEANER_DISPENSER, RpWarning, status, 0); - HeadCard_Actuators_Relocate(); - Init_CleaningStageCounter(); - MotorStop(MotorId,Hard_Hiz); - MotorMovetoLimitSwitch(MotorId,1-MotorsCfg[MotorId].directionthreadwize, 50, Motor_Id_to_LS_IdDown[MotorId], cleaningMotorCBFunction,30000); + if(Head_Type == HEAD_TYPE_FLAT) + { + HeadCard_Actuators_Relocate(); + Init_CleaningStageCounter(); + } + if(Head_Type == HEAD_TYPE_ARC) + { + MotorStop(MotorId,Hard_Hiz); + MotorMovetoLimitSwitch(MotorId,1-MotorsCfg[MotorId].directionthreadwize, 50, Motor_Id_to_LS_IdDown[MotorId], cleaningMotorCBFunction,30000); + } + ReportWithPackageFilter(IDSFilter,"IDS_Cleaning_Motor_Homing", __FILE__, __LINE__, 1, RpWarning, CleaningStageCounter, 0); CleaningStage = CleaningStageIdle; ReportWithPackageFilter(IDSFilter,"IDS_Cleaning_Stop_Cleaning_Solution actuator relocate", __FILE__, __LINE__, CleaningStage, RpWarning, CleaningStageCounter, 0); diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c index 008b49211..a6baea404 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c @@ -1165,6 +1165,16 @@ void Stub_ProgressRequest(MessageContainer* requestContainer) response.has_progress = true; } else + if(request->amount == 0xB16) + { + LOG_ERROR(request->amount,"ThreadCheckArcHeadCovers"); + ThreadCheckArcHeadCovers(); + ReportWithPackageFilter(IDSFilter,"ThreadCheckArcHeadCovers", __FILE__, __LINE__, 1, RpWarning, 0, 0); + + response.progress = 0xB16; + response.has_progress = true; + } + else if(request->amount == 0xC3) //suspend I2C task { if (request->delay == 0) diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h index c3f181b52..5d69e2980 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h @@ -88,7 +88,7 @@ uint32_t StartThreadLoadingFunc(MessageContainer* requestContainer); uint32_t ContinueThreadLoadingFunc(MessageContainer* requestContainer); uint32_t StopThreadLoadingFunc(MessageContainer* requestContainer); uint32_t TryThreadLoadingFunc(MessageContainer* requestContainer); - +void ThreadCheckArcHeadCovers(void); uint32_t Thread_Load_End(void); #endif diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index d7bfb1b6e..4f77104d4 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -1142,6 +1142,14 @@ uint32_t ThreadPrepareState(void *JobDetails) } } } + if ((Head_Type == HEAD_TYPE_ARC) && (JoggingJobActive == false)) { + if (FPGA_Read_limit_Switches(I2C_HEADCARD_COVER_LS_ARC) != LIMIT) { + ReportWithPackageFilter(ThreadFilter,"Dyeing head arc is open!!!",__FILE__,__LINE__,0,RpError,LIMIT,0); + } + if (FPGA_Read_limit_Switches(I2C_HEADCARD_COVER_LS_TUNNEL_ARC) != LIMIT) { + ReportWithPackageFilter(ThreadFilter,"Dyeing head arc tunnel is open!!!",__FILE__,__LINE__,0,RpError,LIMIT,0); + } + } // if ((FPGA_Read_limit_Switches(Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID]) == LIMIT)&&(JoggingJobActive == false)) if ((FPGA_Read_limit_Switches(Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID]) != LIMIT)&&(JoggingJobActive == false)) { @@ -1616,8 +1624,17 @@ char Endstr[150]; return OK; } - - +void ThreadCheckArcHeadCovers(void) +{ + if ((Head_Type == HEAD_TYPE_ARC) && (JoggingJobActive == false)) { + if (FPGA_Read_limit_Switches(I2C_HEADCARD_COVER_LS_ARC) != LIMIT) { + ReportWithPackageFilter(ThreadFilter,"Dyeing head arc is open!!!",__FILE__,__LINE__,0,RpError,LIMIT,0); + } + if (FPGA_Read_limit_Switches(I2C_HEADCARD_COVER_LS_TUNNEL_ARC) != LIMIT) { + ReportWithPackageFilter(ThreadFilter,"Dyeing head arc tunnel is open!!!",__FILE__,__LINE__,0,RpError,LIMIT,0); + } + } +} //******************************************************************************************************************** void ThreadStartPrinting(void) -- cgit v1.3.1