From 4f6c4ab918bb92b91051633eab83c3b1b5e8b4dc Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Wed, 14 Oct 2020 14:50:51 +0300 Subject: winder prepare failure fix. cancel cleaning job on power down. --- Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Thread') diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c index c37617037..0440d2241 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c @@ -120,7 +120,7 @@ uint32_t InternalWindingConfigMessage(JobSpool* request) InternalWinderCfg.SpoolBottomBackingRate = request->bottombackingrate; InternalWinderCfg.NumberOfRotationPerPassage = 3.1415926*3;//request->rotationsperpassage; - if (request->rotationsperpassage > 6.1) + if (request->rotationsperpassage > 5.1) InternalWinderCfg.NumberOfRotationPerPassage = request->rotationsperpassage; if (NumberOfRotationPerPassage > 1) { @@ -248,6 +248,7 @@ uint32_t Winder_PrepareStage2(uint32_t deviceID, uint32_t ReadValue) LOG_ERROR(deviceID,"Screw failed to reach the limit switch!!"); //returned with a timeout Winder_ScrewAtOffsetCallback(0,0); + PrepareReady(Module_Winder, ModuleFail); } else //short jog, etc { -- cgit v1.3.1 From b8ff21ed2013c5c2bea14d735786480d63fb0d67 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sat, 17 Oct 2020 23:33:09 +0300 Subject: add relevant blowers to temperature string. send again temperatures atring on prepare ready --- .../Embedded/Drivers/Heater/TemperatureSensor.c | 14 +++++++++----- .../Embedded_SW/Embedded/Modules/Thread/Thread_print.c | 4 ++-- .../Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c | 8 ++++++-- 3 files changed, 17 insertions(+), 9 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Thread') diff --git a/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c b/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c index abbfcb4db..9dc0b03d4 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c +++ b/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c @@ -15,11 +15,13 @@ #include "drivers/FPGA/FPGA_Comm.h" #include "modules/control/millisecTask.h" #include "Modules/AlarmHandling/AlarmHandling.h" +#include "modules/heaters/heaters_ex.h" #include "PT100RTD.h" #include #include "drivers/Heater/TemperatureSensor.h" #include "Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.h" #include +#include uint32_t TemperatureSensorReadFromFPGA_Res(TEMPERATURE_SENSOR_ID_ENUM SensorId); //uint32_t TemperatureSendSensorDummyClk(TEMP_SENSE_ANALOG_DYEINGH_TEMP1); @@ -183,19 +185,20 @@ int TemperatureListString(char* str) int len; if(Head_Type == HEAD_TYPE_FLAT) { - len = usnprintf(str, 160, "Prepare H1: ,%d, H2: ,%d, H3: ,%d, H4: ,%d, H5: ,%d, H6: ,%d, H7: ,%d, H8: ,%d, H9: ,%d, H10: ,%d, H11: ,%d, H12: ,%d, M: ,%d, D: ,%d,", + len = usnprintf(str, 190, "Prepare H1: %d, H2: %d, H3: %d, H4: %d, H5: %d, H6: %d, H7: %d, H8: %d, H9: %d, H10: %d, H11: %d, H12: %d, M: %d, D: %d, W %d", TempSensorResponse[HEAD_PT100_ZONE_1_0X80_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_2_0X80_1].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_3_0X82_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_4_0X82_1].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_5_0X84_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_6_0X84_1].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_7_0X86_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_8_0X86_1].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_9_0X88_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_10_0X88_1].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_11_0X8A_0].Temperature_C_mult_by_100/100,TempSensorResponse[HEAD_PT100_ZONE_12_0X8A_1].Temperature_C_mult_by_100/100, - TempSensorResponse[HEAD_PT100_MIXER_0X8E_0].Temperature_C_mult_by_100/100, TempSensorResponse[TEMP_SENSE_ANALOG_DRYER_TEMP1].Temperature_C_mult_by_100/100); + TempSensorResponse[HEAD_PT100_MIXER_0X8E_0].Temperature_C_mult_by_100/100, TempSensorResponse[TEMP_SENSE_ANALOG_DRYER_TEMP1].Temperature_C_mult_by_100/100, + (int)(GetWHSAirFlow(HEAD_FLOW_METER)*100)); } else if(Head_Type == HEAD_TYPE_FLAT_WITHOUT_CARD) { - len = usnprintf(str, 150, "Prepare H1: %d H2: %d H3: %d H4: %d H5: %d H6: %d D1: %d D2: %d D3: %d M: %d",TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP1].Temperature_C_mult_by_100/100, + len = usnprintf(str, 190, "Prepare H1: %d H2: %d H3: %d H4: %d H5: %d H6: %d D1: %d D2: %d D3: %d M: %d",TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP1].Temperature_C_mult_by_100/100, TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP2].Temperature_C_mult_by_100/100,TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP3].Temperature_C_mult_by_100/100, TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP4].Temperature_C_mult_by_100/100,TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP5].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD6_PT100].Temperature_C_mult_by_100/100,TempSensorResponse[TEMP_SENSE_ANALOG_DRYER_TEMP1].Temperature_C_mult_by_100/100, @@ -205,11 +208,12 @@ int TemperatureListString(char* str) } else if(Head_Type == HEAD_TYPE_ARC) { - len = usnprintf(str, 160, "Prepare H1: ,%d, H2: ,%d, H3: ,%d, AL1: AR1: M: ,%d, D: ,%d,", + len = usnprintf(str, 190, "Prepare H1: %d, H2: %d, H3: %d, AL1: AR1: M: %d, D: %d, W %d, B1 %d, B2 %d", TempSensorResponse[HEAD_PT100_ZONE_1_0X80_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_2_0X80_1].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_3_0X82_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_AIR_HEATER_1_0X8C_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_AIR_HEATER_2_0X8C_1].Temperature_C_mult_by_100/100, - TempSensorResponse[HEAD_PT100_MIXER_0X8E_0].Temperature_C_mult_by_100/100, TempSensorResponse[TEMP_SENSE_ANALOG_DRYER_TEMP1].Temperature_C_mult_by_100/100); + TempSensorResponse[HEAD_PT100_MIXER_0X8E_0].Temperature_C_mult_by_100/100, TempSensorResponse[TEMP_SENSE_ANALOG_DRYER_TEMP1].Temperature_C_mult_by_100/100, + (int)(GetWHSAirFlow(HEAD_FLOW_METER)*100),(int)(PressureSensorGetPressure(HEAD_PT100_ZONE_5_0X84_0)*100),(int)(PressureSensorGetPressure(HEAD_PT100_ZONE_7_0X86_0)*100)); } else { diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index 25f322b2e..88241ecb1 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -167,7 +167,7 @@ void ThreadUpdateProcessLength (double length, void *Funcptr) CurrentProcessedLength = 0; ProcessedLengthFuncPtr = (ProcessedLengthFunc)Funcptr; } -char Lenstr[160]; +char Lenstr[190]; uint32_t ThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue) { uint32_t positionDiff = 0,prevprev; @@ -1306,7 +1306,7 @@ uint32_t ThreadPrepareState(void *JobDetails) if (PrepareWaitCount == 0) PrepareReady(Module_Thread,ModuleDone); //set 3 dancers to the profile positions - return OK; + return status; } uint32_t UpdatePidDuringRun(HardwarePidControl *request) { diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c index e74054a3c..da9b6a893 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c @@ -73,6 +73,7 @@ #include "drivers/Motors/Motor.h" #include #include "drivers/FPGA/Full_Vme/FPGA_Programming_Up.h" +#include "drivers/Heater/TemperatureSensor.h" #include "./printingSTM.h" #include "modules/thread/thread_ex.h" @@ -111,6 +112,7 @@ char ErrorMsg[100]; ModuleStateEnum PrepareWaiting[MAX_SYSTEM_MODULES] = {ModuleIdle,ModuleIdle,ModuleIdle,ModuleIdle,ModuleIdle}; double job_length = 0.0; +char infomsg[190]; /******************************************************************************************** * functions describes motor operation flow and movement state during profile execution @@ -290,6 +292,10 @@ uint32_t PrepareReady(int ModuleId, ModuleStateEnum result) if (PrepareWaiting[ModuleId] == ModuleWaiting) PrepareWaiting[ModuleId] = ModuleDone; } + TemperatureListString(infomsg); + Report(infomsg, __FILE__, __LINE__, ready, RpError, status, 0); + SendJobProgress(0.0,0,false, infomsg); + SendJobProgress(0.0, 0, false, "Prepare Ready"); if (status == OK) Message.messageId = PreparationResultsOk; else Message.messageId = PreparationResultsFail; @@ -1020,8 +1026,6 @@ void JobRequestFunc(MessageContainer* requestContainer) } } //******************************************************************************************************************** -char logmsg[254]; -char infomsg[254]; uint8_t JobStatusBuffer[400]; ResumeCurrentJobResponse resumeresponse = RESUME_CURRENT_JOB_RESPONSE__INIT; JobResponse JobResponseMsg = JOB_RESPONSE__INIT; -- cgit v1.3.1