diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-02-10 18:49:07 +0200 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-02-10 18:49:07 +0200 |
| commit | c7cc955c8d6d546bf65652c2de7482c56d91bf05 (patch) | |
| tree | 4c29325054113a85502a1a7e7b2c9e717b226fd7 /Software/Embedded_SW/Embedded/Modules | |
| parent | ebc08ccd9085ff5e7687ac2af206c492b8084ae8 (diff) | |
| parent | c7fcd93f517b23bcbb0575e6a4f279d56808d8c4 (diff) | |
| download | Tango-c7cc955c8d6d546bf65652c2de7482c56d91bf05.tar.gz Tango-c7cc955c8d6d546bf65652c2de7482c56d91bf05.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
8 files changed, 83 insertions, 18 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c index 195cc65f3..b24970ea0 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c @@ -58,6 +58,7 @@ #include <Drivers/I2C_Communication/WHS_Card/D_ADS122_PT100/WHS_PT100_ADC.h> #include <Drivers/I2C_Communication/I2C_Task.h> +#include <Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.h> Task_Handle Millisecond_Task_Handle; /******************** Definitions ********************************************/ @@ -719,7 +720,9 @@ uint32_t MillisecLowLoop(uint32_t tick) } Trigger_WHS_PT100_Read_All(); Trigger_WHS_MAX11614_Read_allADC(); - Trigger_WHSReadAllFanTacho (); + WHS_Blower_Avarege_ORF1(); + WHS_Blower_Avarege_ORF3(); + Trigger_WHSReadAllFanTacho (); } if (OneMinute_Tick) { diff --git a/Software/Embedded_SW/Embedded/Modules/General/process.c b/Software/Embedded_SW/Embedded/Modules/General/process.c index ad53149f0..74a6cfe90 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/process.c +++ b/Software/Embedded_SW/Embedded/Modules/General/process.c @@ -57,6 +57,12 @@ void HeatersStopControlOnHeatersOff(ProcessParameters* ProcessParams) temp_sum += ProcessParams->headzone4temp; temp_sum += ProcessParams->headzone5temp; temp_sum += ProcessParams->headzone6temp; + temp_sum += ProcessParams->headzone7temp; + temp_sum += ProcessParams->headzone8temp; + temp_sum += ProcessParams->headzone9temp; + temp_sum += ProcessParams->headzone10temp; + temp_sum += ProcessParams->headzone11temp; + temp_sum += ProcessParams->headzone12temp; if (temp_sum == 0)// heating off { diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h index a819448a8..5c01d7563 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h @@ -76,6 +76,8 @@ uint32_t IDS_StopHomeDispenser (uint32_t deviceID); uint32_t IDS_HomeDispenserWaitForHomingEnd(uint32_t DispenserId, uint32_t timeout , callback_fptr callback); bool IDS_IsHomingActive(uint32_t DispenserId); + + uint32_t IDS_EmptyDispenser (uint32_t deviceID, uint32_t speed , callback_fptr callback); uint32_t IDS_Dispenser_Alarm_On (uint8_t deviceID); uint32_t IDS_Dispenser_Alarm_Off (uint8_t deviceID); @@ -90,6 +92,8 @@ void IDS_Dispenser_SetPreSegmentWFCFValues(double dispenserpresegmentwfcf, doubl void IDS_Dispenser_SetPreSegmentCleaningValues(double ids_cleaningspeed,double ids_cleaningstartspraypresegmenttime ,double ids_cleaningstopbeforesegmenttime,double ids_leftcleaningmotorspeed,double ids_rightcleaningmotorspeed); void IDS_Dispenser_SetAutoHoming_Config(AutoHoming_Config_enum Config); +bool Set_Check_Pressure_Bypass(int); + uint32_t IDS_Dispenser_Close_Valve_And_Stop_Motor(int DispenserId, callback_fptr callback); uint32_t IDS_Dispenser_Start_Motor_and_Open_Valve(int DispenserId, int MotorSpeed, callback_fptr callback); diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c index e1be0358b..79d169ace 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c @@ -496,6 +496,15 @@ uint32_t IDS_ReCheck_Pressure_Callback(uint32_t DispenserId, uint32_t ReadValue) return OK; } +bool Check_Pressure_Bypass = false; +bool Set_Check_Pressure_Bypass (int value) +{ + if (value == 0) + Check_Pressure_Bypass = false; + else + Check_Pressure_Bypass = true; + return Check_Pressure_Bypass; +} uint32_t IDS_Check_Pressure_Callback(uint32_t DispenserId, uint32_t ReadValue) { TimerMotors_t HW_Motor_Id = DispenserIdToMotorId[DispenserId]; @@ -507,6 +516,8 @@ uint32_t IDS_Check_Pressure_Callback(uint32_t DispenserId, uint32_t ReadValue) return ERROR; } } + if (Check_Pressure_Bypass == true) + return OK; if (GetDispenserPressure(DispenserId)>3.0) { diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c index 708b11342..688ecf7c5 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c @@ -1024,7 +1024,7 @@ uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback); */ //InterSegmentStepsLimit = lInterSegmentLength*10;//100 millisec steps InterSegmentStepsCount+=100; - if (InterSegmentStepsCount == lInterSegmentLength) + if (InterSegmentStepsCount >= lInterSegmentLength) { //IDS_Valve_PresegmentReady(1,0); Report("End of Pre-segment Handling",__FILE__,__LINE__,InterSegmentStepsCount,RpWarning,(int)lInterSegmentLength,0); @@ -1622,13 +1622,13 @@ uint32_t IDSSegmentState(void *SegmentDetails, int SegmentId) lInterSegmentLength = (dryerbufferCentimeters*1000/dyeingspeed); lInterSegmentLength-=(lInterSegmentLength%100); //round to a 100 multiplication InterSegmentStepsCount = 0; - DispenserPreSegmentControlId = AddControlCallback(NULL, IDSPreSegmentStateCallbackRunner, 100,TemplateDataReadCBFunction ,0, 0, 0 ); + DispenserPreSegmentControlId = AddControlCallback("IDS DTS", IDSPreSegmentStateCallbackRunner, 100,TemplateDataReadCBFunction ,0, 0, 0 ); if (DispenserPreSegmentControlId == 0xFF) { Report("Add control callback failed",__FILE__,__LINE__,(int)100,RpWarning,(int)0,0); return ERROR; } - Report("Add control callback ",__FILE__,__LINE__,(int)100,RpWarning,(int)IntersegmentLength,0); + Report("Add control callback ",__FILE__,__LINE__,(int)100,RpWarning,(int)lInterSegmentLength,0); /*if (EnableCleaning == true) { InterSegmentStartSprayCleaner = 500; diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c index c22ed4cde..56e314967 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c @@ -192,6 +192,34 @@ void Stub_ProgressRequest(MessageContainer* requestContainer) response.has_progress = true; } else + if(request->amount == 0xAD1) //Set_Check_Pressure_Bypass + { + LOG_ERROR((request->delay)?1:0,"Set_Check_Pressure_Bypass"); + response.progress = Set_Check_Pressure_Bypass(request->delay); + response.has_progress = true; + } + else + if(request->amount == 0xAD2) //Set_Thread_Rockers_Bypass + { + LOG_ERROR((request->delay)?1:0,"Set_Thread_Rockers_Bypass"); + response.progress = Set_Thread_Rockers_Bypass(request->delay); + response.has_progress = true; + } + else + if(request->amount == 0xAD3) //Set_Auto_Shutdown_Bypass + { + LOG_ERROR((request->delay)?1:0,"Set_Auto_Shutdown_Bypass"); + response.progress = Set_Auto_Shutdown_Bypass(request->delay); + response.has_progress = true; + } + else + if(request->amount == 0xAD4) //Set_Auto_Idle_Bypass + { + LOG_ERROR((request->delay)?1:0,"Set_Auto_Idle_Bypass"); + response.progress = Set_Auto_Idle_Bypass(request->delay); + response.has_progress = true; + } + else if((request->amount == 0x01) && ((request->delay &0x010000) == 0x010000)) //change mode powerset01 { response.progress = Power_Step_01_Mode(((request->delay &0x00FF00)>>8), request->delay &0x0000FF); @@ -378,7 +406,7 @@ void Stub_ProgressRequest(MessageContainer* requestContainer) //Test_Head_fan_Click(); Head_Fan_PWM_Control(0, request->delay & 0xFF); - Task_sleep(1000); + Task_sleep(2000); //response.progress = Fan_Click_Info.Product_ID; response.progress = Head_Fan_Tach[0]; @@ -389,7 +417,7 @@ void Stub_ProgressRequest(MessageContainer* requestContainer) if((request->amount == 0xFAC1) /*&& (request->delay == 0xFAC)*/) //Head Fan control { Head_Fan_PWM_Control(1, request->delay & 0xFF); - Task_sleep(1000); + Task_sleep(2000); response.progress = Head_Fan_Tach[1]; response.has_progress = true; } @@ -401,7 +429,7 @@ void Stub_ProgressRequest(MessageContainer* requestContainer) if (WHS_Type == WHS_TYPE_NEW) { Trigger_SetWHSFanSpeed(((request->amount & 0x0000000F)-1) , request->delay & 0x000000FF); - Task_sleep(1000); + Task_sleep(2000); fan_tacho = WHS_Get_fan_tach( (request->amount & 0x0000000F)-1); } response.progress = fan_tacho; diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h index 420b782b5..114edc0cd 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h @@ -38,6 +38,8 @@ uint32_t ThreadDistanceToSpoolState(void); uint32_t ThreadEndState(); uint32_t ThreadInitialTestStub(); +bool Set_Thread_Rockers_Bypass (int value); + uint32_t StoreDancerConfigMessage(void); uint32_t LoadDancerConfigMessage(void); diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index fd53d6da2..fd48e799a 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -958,6 +958,15 @@ uint32_t ThreadDryerRampUp(uint32_t IfIndex, uint32_t BusyFlag) return OK; } +bool Thread_Rockers_Bypass = false; +bool Set_Thread_Rockers_Bypass (int value) +{ + if (value == 0) + Thread_Rockers_Bypass = false; + else + Thread_Rockers_Bypass = true; + return Thread_Rockers_Bypass; +} //******************************************************************************************************************** uint32_t ThreadPreSegmentState(void *SegmentDetails, uint32_t SegmentId) @@ -995,17 +1004,19 @@ uint32_t ThreadPreSegmentState(void *SegmentDetails, uint32_t SegmentId) #ifdef HUNDRED_MICROSECONDS_DANCER_READ MillisecLogInit(); #endif - - if (MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RLOADING].maxfrequency > 0) - { - MotorSetDirection((TimerMotors_t)HARDWARE_MOTOR_TYPE__MOTO_RLOADING,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RLOADING].directionthreadwize); - MotorSetSpeed(HARDWARE_MOTOR_TYPE__MOTO_RLOADING, 1); - } - if (MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LLOADING].maxfrequency > 0) - { - MotorSetDirection((TimerMotors_t)HARDWARE_MOTOR_TYPE__MOTO_LLOADING,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LLOADING].directionthreadwize); - MotorSetSpeed(HARDWARE_MOTOR_TYPE__MOTO_LLOADING, 1); - } + if (Thread_Rockers_Bypass == false) + { + if (MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RLOADING].maxfrequency > 0) + { + MotorSetDirection((TimerMotors_t)HARDWARE_MOTOR_TYPE__MOTO_RLOADING,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RLOADING].directionthreadwize); + MotorSetSpeed(HARDWARE_MOTOR_TYPE__MOTO_RLOADING, 1); + } + if (MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LLOADING].maxfrequency > 0) + { + MotorSetDirection((TimerMotors_t)HARDWARE_MOTOR_TYPE__MOTO_LLOADING,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LLOADING].directionthreadwize); + MotorSetSpeed(HARDWARE_MOTOR_TYPE__MOTO_LLOADING, 1); + } + } if (EnableLubrication == true) { IDS_StartLubrication(); |
