diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2020-06-09 15:56:31 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2020-06-09 15:56:31 +0300 |
| commit | bfc8d0cc2055b7fa5171aeace011435e23f71359 (patch) | |
| tree | 1c54afd7588036c6b3a278e97047cae5f6af0c1d /Software/Embedded_SW | |
| parent | b9f91e4025d6b6ae35eeb58f603bc2c32dbb4fbc (diff) | |
| download | Tango-bfc8d0cc2055b7fa5171aeace011435e23f71359.tar.gz Tango-bfc8d0cc2055b7fa5171aeace011435e23f71359.zip | |
fixing some bugs in version 30
Diffstat (limited to 'Software/Embedded_SW')
27 files changed, 228 insertions, 63 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c index 1b53a826b..65328efb3 100644 --- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c +++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c @@ -60,6 +60,7 @@ uint32_t ReadBytes = 0; Task_Handle CommRxTaskHandle; extern Semaphore_Handle FFS_Sem; +extern Semaphore_Handle FileUpload_sem_param; ErrorCode getErrorCode(FRESULT Fresult) { @@ -101,7 +102,7 @@ uint32_t FileUploadRequestFunc(MessageContainer* requestContainer) Fresult = FR_DENIED; else { - if (Semaphore_pend(FFS_Sem, BIOS_NO_WAIT)) + if (Semaphore_pend(FileUpload_sem_param, BIOS_NO_WAIT)) { CommRxTaskHandle = Task_self(); Task_setPri(CommRxTaskHandle, 2); @@ -125,7 +126,7 @@ uint32_t FileUploadRequestFunc(MessageContainer* requestContainer) { my_free (UploadFileHandle); UploadFileHandle = 0; - Semaphore_post(FFS_Sem); + Semaphore_post(FileUpload_sem_param); } } else @@ -162,9 +163,14 @@ uint32_t FileChunkUploadCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) UploadFileHandle = 0; FileReceivedLength = 0; FileDone = true; + Task_setPri(CommRxTaskHandle, 9); + Semaphore_post(FileUpload_sem_param); + //Report("Task_setPri", __FILE__, __LINE__, 9, RpWarning, (int)CommRxTaskHandle, 0); if (SafeRemoveControlCallback(Chunk_ControlId, FileChunkUploadCallBackFunction )==OK) Chunk_ControlId = 0xFF; + return OK; + } uint32_t FileChunkUploadRequestFunc(MessageContainer* requestContainer) @@ -257,7 +263,7 @@ uint32_t FileChunkUploadRequestFunc(MessageContainer* requestContainer) if (FileDone == true) { Task_setPri(CommRxTaskHandle, 9); - Semaphore_post(FFS_Sem); + Semaphore_post(FileUpload_sem_param); //Report("Task_setPri", __FILE__, __LINE__, 9, RpWarning, (int)CommRxTaskHandle, 0); } return OK; @@ -273,7 +279,7 @@ void FileChunkUploadError(void) FileReceivedLength = 0; FileDone = true; Task_setPri(CommRxTaskHandle, 9); - Semaphore_post(FFS_Sem); + Semaphore_post(FileUpload_sem_param); } } uint32_t FileDownloadRequestFunc(MessageContainer* requestContainer) diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c index f39f6a5eb..013a06e22 100644 --- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c +++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c @@ -32,7 +32,6 @@ #include "Modules/AlarmHandling/AlarmHandling.h" #include "modules/General/process.h" -extern Semaphore_Handle FFS_Sem; int NumberOfFiles = 0,CurrentRunningFile; int CurrentFileSize = 0; diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DiagnosticsMonitors.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DiagnosticsMonitors.pb-c.c index f8b36e663..14b93a98c 100644 --- a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DiagnosticsMonitors.pb-c.c +++ b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DiagnosticsMonitors.pb-c.c @@ -52,7 +52,7 @@ void diagnostics_monitors__free_unpacked assert(message->base.descriptor == &diagnostics_monitors__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -static const ProtobufCFieldDescriptor diagnostics_monitors__field_descriptors[88] = +static const ProtobufCFieldDescriptor diagnostics_monitors__field_descriptors[90] = { { "", @@ -1110,6 +1110,30 @@ static const ProtobufCFieldDescriptor diagnostics_monitors__field_descriptors[88 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, + { + "", + 89, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(DiagnosticsMonitors, n_headblower1airflow), + offsetof(DiagnosticsMonitors, headblower1airflow), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 90, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(DiagnosticsMonitors, n_headblower2airflow), + offsetof(DiagnosticsMonitors, headblower2airflow), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned diagnostics_monitors__field_indices_by_name[] = { 38, /* field[38] = BlowerVoltage */ @@ -1150,6 +1174,8 @@ static const unsigned diagnostics_monitors__field_indices_by_name[] = { 25, /* field[25] = FilterDeltaPressure */ 85, /* field[85] = GasSensor */ 13, /* field[13] = HeadAirFlow */ + 88, /* field[88] = HeadBlower1AirFlow */ + 89, /* field[89] = HeadBlower2AirFlow */ 78, /* field[78] = HeadBlowerVoltage1 */ 79, /* field[79] = HeadBlowerVoltage2 */ 80, /* field[80] = HeadCoverHeater1Current */ @@ -1204,7 +1230,7 @@ static const unsigned diagnostics_monitors__field_indices_by_name[] = { static const ProtobufCIntRange diagnostics_monitors__number_ranges[1 + 1] = { { 1, 0 }, - { 0, 88 } + { 0, 90 } }; const ProtobufCMessageDescriptor diagnostics_monitors__descriptor = { @@ -1214,7 +1240,7 @@ const ProtobufCMessageDescriptor diagnostics_monitors__descriptor = "", "", sizeof(DiagnosticsMonitors), - 88, + 90, diagnostics_monitors__field_descriptors, diagnostics_monitors__field_indices_by_name, 1, diagnostics_monitors__number_ranges, diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DiagnosticsMonitors.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DiagnosticsMonitors.pb-c.h index 172fb5e24..a6a28e4d0 100644 --- a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DiagnosticsMonitors.pb-c.h +++ b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DiagnosticsMonitors.pb-c.h @@ -203,10 +203,14 @@ struct _DiagnosticsMonitors double *incomingvoltage; size_t n_wastelevel; double *wastelevel; + size_t n_headblower1airflow; + double *headblower1airflow; + size_t n_headblower2airflow; + double *headblower2airflow; }; #define DIAGNOSTICS_MONITORS__INIT \ { PROTOBUF_C_MESSAGE_INIT (&diagnostics_monitors__descriptor) \ - , 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL } + , 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL } /* DiagnosticsMonitors methods */ diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Hardware/HardwareBlowerType.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/Hardware/HardwareBlowerType.pb-c.c index 0cc200a76..079666ee2 100644 --- a/Software/Embedded_SW/Embedded/Communication/PMR/Hardware/HardwareBlowerType.pb-c.c +++ b/Software/Embedded_SW/Embedded/Communication/PMR/Hardware/HardwareBlowerType.pb-c.c @@ -7,22 +7,26 @@ #endif #include "HardwareBlowerType.pb-c.h" -static const ProtobufCEnumValue hardware_blower_type__enum_values_by_number[4] = +static const ProtobufCEnumValue hardware_blower_type__enum_values_by_number[6] = { { "", "", 0 }, { "", "", 1 }, { "", "", 2 }, { "", "", 3 }, + { "", "", 4 }, + { "", "", 5 }, }; static const ProtobufCIntRange hardware_blower_type__value_ranges[] = { -{0, 0},{0, 4} +{0, 0},{0, 6} }; -static const ProtobufCEnumValueIndex hardware_blower_type__enum_values_by_name[4] = +static const ProtobufCEnumValueIndex hardware_blower_type__enum_values_by_name[6] = { { "", 0 }, { "", 1 }, { "", 2 }, { "", 3 }, + { "", 5 }, + { "", 4 }, }; const ProtobufCEnumDescriptor hardware_blower_type__descriptor = { @@ -31,9 +35,9 @@ const ProtobufCEnumDescriptor hardware_blower_type__descriptor = "", "", "", - 4, + 6, hardware_blower_type__enum_values_by_number, - 4, + 6, hardware_blower_type__enum_values_by_name, 1, hardware_blower_type__value_ranges, diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Hardware/HardwareBlowerType.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/Hardware/HardwareBlowerType.pb-c.h index b530430ff..84beee442 100644 --- a/Software/Embedded_SW/Embedded/Communication/PMR/Hardware/HardwareBlowerType.pb-c.h +++ b/Software/Embedded_SW/Embedded/Communication/PMR/Hardware/HardwareBlowerType.pb-c.h @@ -23,7 +23,9 @@ typedef enum _HardwareBlowerType { HARDWARE_BLOWER_TYPE__DefaultBlower = 0, HARDWARE_BLOWER_TYPE__HeadBlower1 = 1, HARDWARE_BLOWER_TYPE__HeadBlower2 = 2, - HARDWARE_BLOWER_TYPE__WHSBlower2 = 3 + HARDWARE_BLOWER_TYPE__WHSBlower2 = 3, + HARDWARE_BLOWER_TYPE__WHSSmallFans = 4, + HARDWARE_BLOWER_TYPE__WHSLargeFans = 5 PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(HARDWARE_BLOWER_TYPE) } HardwareBlowerType; diff --git a/Software/Embedded_SW/Embedded/DataDef.h b/Software/Embedded_SW/Embedded/DataDef.h index a50889e47..ca8217683 100644 --- a/Software/Embedded_SW/Embedded/DataDef.h +++ b/Software/Embedded_SW/Embedded/DataDef.h @@ -165,6 +165,7 @@ enum #define STOPPED 0 #define MOVING 1 +extern int InitFailures; /* #define CurrentMotDriver 0x08 @@ -391,6 +392,8 @@ typedef enum }WHS_TYPE; extern uint8_t WHS_Type; +extern uint8_t SmallFansCfg; +extern uint8_t LargeFansCfg; bool Is_PP_Machine(void); diff --git a/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC_DispPressSens.c b/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC_DispPressSens.c index b1fbcbf44..f2cc8d093 100644 --- a/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC_DispPressSens.c +++ b/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC_DispPressSens.c @@ -71,7 +71,7 @@ float CalculateDispenserPressure (int DispenserId) if(data<Bits_Min) { - data = Bits_Min;//4mA 0Bar + data = Bits_Min;//40mA 0Bar //if (isDispenserInConfig(DispenserId)) // Report("Dispenser - Reading wrong data from ADC",__FILE__,__LINE__,DispenserId,RpWarning,(int)data,0); } diff --git a/Software/Embedded_SW/Embedded/Drivers/Flash_Memory/FATFS/Control_File_System.c b/Software/Embedded_SW/Embedded/Drivers/Flash_Memory/FATFS/Control_File_System.c index 7707584c9..b51173607 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Flash_Memory/FATFS/Control_File_System.c +++ b/Software/Embedded_SW/Embedded/Drivers/Flash_Memory/FATFS/Control_File_System.c @@ -92,6 +92,7 @@ static FATFS g_sFatFs; //static int response ; extern Semaphore_Handle FFS_Sem; +extern Semaphore_Handle FileUpload_sem_param; char FlashReadstring [35]; char FlashReadstring1 [35]; @@ -107,7 +108,6 @@ FRESULT Init_Flash_File_System(bool Need_mkfs) //in C:\TI\TivaWare_C_Series-2.1.2.111\third_party\fatfs\src\ffconf.h #endif - Semaphore_post(FFS_Sem); // Mount the file system, using logical disk 0. iFResult = f_mount(0, &g_sFatFs); if(iFResult != FR_OK) @@ -132,6 +132,7 @@ FRESULT Init_Flash_File_System(bool Need_mkfs) iFResult = f_mkfs( 0, 0, 512 ); //Create File System on the Drive Semaphore_post(FFS_Sem); + Semaphore_post(FileUpload_sem_param); return iFResult; } 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 40511fe98..7c854fe8b 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 @@ -24,6 +24,8 @@ uint8_t Fan_Mux_Channel = UNKNOWN; bool Select_WHS_Fan_Mux_Channel(WHS_fan_num fan_number); uint8_t Select_Fan_Driver(WHS_fan_num fan_number); +uint8_t SmallFansCfg = 200; +uint8_t LargeFansCfg = 200; /* EMC2301 / EMC2302 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 4dc30752d..9a2ed52af 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 @@ -417,7 +417,7 @@ bool WHS_Set_Blower_Control_Closed_Loop(double Q_value) } } - if (tmp > 0.05) + if (tmp > 0.02) { volt = getBlowerState(); //volt = g_MAX5805_device.CODE; @@ -486,7 +486,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); + Report("------------ SetPoint_Q_value :-----------------", __FILE__,__LINE__, (int)(SetPoint_Q*100), RpMessage, (int)close_loop_time, 0); } void WHS_enable_control_loop(bool value) // 0=disable 1= enable diff --git a/Software/Embedded_SW/Embedded/Embedded.cfg b/Software/Embedded_SW/Embedded/Embedded.cfg index 666d9f9b3..10f94e08c 100644 --- a/Software/Embedded_SW/Embedded/Embedded.cfg +++ b/Software/Embedded_SW/Embedded/Embedded.cfg @@ -86,6 +86,12 @@ semaphore6Params.instance.name = "FFS_Sem"; semaphore6Params.mode = Semaphore.Mode_BINARY; Program.global.FFS_Sem = Semaphore.create(null, semaphore6Params); +var semaphore8Params = new Semaphore.Params(); +semaphore8Params.instance.name = "FileUpload_sem_param"; +semaphore8Params.mode = Semaphore.Mode_BINARY; +Program.global.FileUpload_sem_param = Semaphore.create(null, semaphore8Params); + + var semaphore7Params = new Semaphore.Params(); semaphore7Params.instance.name = "ReconnectSem"; semaphore7Params.mode = Semaphore.Mode_BINARY; diff --git a/Software/Embedded_SW/Embedded/Main.c b/Software/Embedded_SW/Embedded/Main.c index a5ddb694b..ed4948a28 100644 --- a/Software/Embedded_SW/Embedded/Main.c +++ b/Software/Embedded_SW/Embedded/Main.c @@ -135,6 +135,10 @@ Void errHook(Error_Block *eb) COMM_GREEN_LED_OFF; STATUS_RED_LED_ON; + //MCU_E2PromRead(EEPROM_INIT_FAILURE_COUNTER,&InitFailures); + InitFailures++; + MCU_E2PromProgram(EEPROM_INIT_FAILURE_COUNTER,InitFailures); + ACTIVITY_RED_LED_ON; COMM_RED_LED_ON; @@ -249,6 +253,7 @@ int main(void) LOG_ERROR(Version.m_minor,"Version change, do stuff"); FlashInit(); MCU_E2PromEmbeddedVersionProgram(); + MCU_E2PromProgram(EEPROM_INIT_FAILURE_COUNTER,0); } #endif diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c index 5b8866a28..0bb16c623 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c @@ -39,6 +39,7 @@ uint32_t MotorJoggingRequestFunc(MessageContainer* requestContainer) { uint32_t status = OK; + bool allowedInJob =true; MessageContainer responseContainer; @@ -51,9 +52,23 @@ uint32_t MotorJoggingRequestFunc(MessageContainer* requestContainer) int speed = request->speed; if (speed == 0) speed = 150; + if (JobIsActive() == true) + { + switch (MotorId) + { + case HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1:case HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_2:case HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_3:case HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_4: + case HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_5:case HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_6:case HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_7:case HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_8: + case HARDWARE_MOTOR_TYPE__MOTO_DRYER_DRIVING:case HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM:case HARDWARE_MOTOR_TYPE__MOTO_SCREW:case HARDWARE_MOTOR_TYPE__MOTO_WINDER: + case HARDWARE_MOTOR_TYPE__MOTO_LDRIVING:case HARDWARE_MOTOR_TYPE__MOTO_LLOADING:case HARDWARE_MOTOR_TYPE__MOTO_RDRIVING:case HARDWARE_MOTOR_TYPE__MOTO_RLOADING: + allowedInJob = false; + break; + default: + break; + } + } if (MotorId <= NUM_OF_MOTORS) { - if ((JobIsActive() == false)&&(isMotorConfigured(MotorId) == true)) + if ((allowedInJob == true)&&(isMotorConfigured(MotorId) == true)) { { switch (request->direction) diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c index 39d10bfc2..d0470a11b 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c @@ -396,6 +396,13 @@ uint32_t HWConfiguration(UploadHardwareConfigurationRequest* UploadRequest) LOG_ERROR (0, "Wrong Data Allocation"); return ERROR; } + if (InitFailures > 3) + { + Report("HWConfigurationInit repeated failure",__FILE__,__LINE__,(int)InitFailures,RpWarning,(int)EEPROM_INIT_FAILURE_COUNTER,0); + AlarmHandlingSetAlarm (EVENT_TYPE__MACHINE_STATE_HW_CONFIG_FAILED,ON); + return ERROR; + } + HardwareConfiguration *request = UploadRequest->hardwareconfiguration; if (JobIsActive()) @@ -528,6 +535,15 @@ uint32_t HWConfiguration(UploadHardwareConfigurationRequest* UploadRequest) break; } + if((request->blowers[Dispenser_i]->enabled)&&(request->blowers[Dispenser_i]->hardwareblowertype == HARDWARE_BLOWER_TYPE__WHSSmallFans)) + { + SmallFansCfg = request->blowers[Dispenser_i]->voltage; + } + if((request->blowers[Dispenser_i]->enabled)&&(request->blowers[Dispenser_i]->hardwareblowertype == HARDWARE_BLOWER_TYPE__WHSLargeFans)) + { + LargeFansCfg = request->blowers[Dispenser_i]->voltage; + } + } } ControlStart(); diff --git a/Software/Embedded_SW/Embedded/Modules/General/process.c b/Software/Embedded_SW/Embedded/Modules/General/process.c index 1e04ccb83..7bf72ba8c 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/process.c +++ b/Software/Embedded_SW/Embedded/Modules/General/process.c @@ -125,6 +125,11 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams,bool saveData) ReadAppAndProgram(PROCESS_PARAMETERS_MAP_IN_FLASH+4, Bytes, ProcessParams); REPORT_MSG(Bytes,"Bytes write to flash"); } + else + { + ProcessParams->headairflow = headairflow; + ReportWithPackageFilter(InitFilter,"HandleProcessParameters temp off blower on",__FILE__,(int)__LINE__,(int)ProcessParams->headairflow,RpWarning,(int)ProcessParametersKeep.headairflow,0); + } } HeatersStopControlOnHeatersOff(ProcessParams); dyeingspeed = ProcessParams->dyeingspeed; diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 380eb99ca..53501e3db 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -1149,7 +1149,7 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) if ((readValue>(HeaterCmd[index].targettemperatue+800))&&(getIdleState() == false)) { - ReportWithPackageFilter(HeatersFilter, "AC OverHeating in progress",__FILE__,readValue,HeaterReady[index],RpError, HeaterAtTemp[index],0); + ReportWithPackageFilter(HeatersFilter, "AC OverHeating in progress",__FILE__,readValue,GetHeaterState(HEATER_TYPE__DryerMainHeater),RpError, GetHeaterState(HEATER_TYPE__DryerSecondaryHeater),0); ReportWithPackageFilter(HeatersFilter, "AC OverHeating PID",__FILE__,(int)HeaterPIDConfig[index].m_calculatedError,(int)HeaterPIDConfig[index].m_SetParam,RpError, (int)HeaterPIDConfig[index].m_integral,0); } // check if the read value is within the proportional band @@ -1636,9 +1636,10 @@ uint32_t DrierHeaterVoltageSetup(void) } else { - Z1Current = Get_Heaters_Current(HEATER_DRYER_CURRENT_1); + Z1Current = GetZone1RMSCurrent(DrierAcVoltage); //changed to assumed current as calculated on init Z2AssumedCurrent = GetZone2RMSCurrent(DrierAcVoltage); LimitCurrent = TotalCurrentLimit(DrierAcVoltage); + //hysteresis: activate if ((Z2AssumedCurrent+Z1Current)>LimitCurrent) { UseSecondaryDrierHeater = false; diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c index 1c43872cc..a713ce355 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c @@ -725,6 +725,11 @@ uint32_t InactiveDispenserHome(uint32_t DispenserId, uint32_t ReadValue) Report("Setting pressure from RML feeder tension",__FILE__,__LINE__,(int)(cleanerFlow),RpWarning,(int)CleaningDispenserSpeed,0); CleaningDispenserSpeed = cleanerFlow; } + else if (cleanerFlow <= 10) + { + CleaningDispenserSpeed = 0; + EnableCleaning = false; + } for (Motor_i = 0;Motor_i < MAX_SYSTEM_DISPENSERS;Motor_i++) { diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c index 349215d7d..50750a49e 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c @@ -190,6 +190,9 @@ ProcessParametersClear.lblowerflow = 0; ProcessParametersClear.dyeingspeed = 40; ProcessParametersClear.dryerbufferlength = ProcessParametersKeep.dryerbufferlength; + ProcessParametersClear.pullertension = ProcessParametersKeep.pullertension; + ProcessParametersClear.windertension = ProcessParametersKeep.windertension; + if (HandleProcessParameters(&ProcessParametersClear,false)!= OK) { LOG_ERROR (LoadStages, "Thread_Load_Reduce_Heat failed"); @@ -286,7 +289,7 @@ { TimeoutsCounter = 0; load.color = fastBILNK; - usnprintf(LoadErrorMsg, 100, "Stage %s - motor %s timeout",LoadStagesStr[LoadStages], MotorStr[MotorId]); + usnprintf(LoadErrorMsg, 100, "Stage %s - %s timeout",LoadStagesStr[LoadStages], MotorStr[MotorId]); Report(LoadErrorMsg,__FILE__,__LINE__,LoadStages,RpWarning,TimeoutsCounter,0); LoadStatus = ERROR; diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c index 9ee2e1f37..ca41a8e70 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c @@ -149,12 +149,12 @@ uint32_t Winder_Prepare(void *JobDetails) if (FPGA_Read_limit_Switches(GPI_SW_SPOOL_EXISTS)==LIMIT) { REPORT_MSG(LIMIT, "No cone in winder"); - if (Is_PP_Machine()) + /*if (Is_PP_Machine()) { PrepareReady(Module_Winder,ModuleFail); AlarmHandlingSetAlarm(EVENT_TYPE__WINDER_CONE_DOES_NOT_EXIST,true); return ERROR; - } + }*/ } #ifdef READ_SCREW_ENCODER diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h index 1e730e252..5c9b360f6 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h @@ -81,6 +81,7 @@ void ThreadLoadRequest(MessageContainer* requestContainer); uint32_t StartThreadLoadingFunc(MessageContainer* requestContainer); uint32_t ContinueThreadLoadingFunc(MessageContainer* requestContainer); uint32_t StopThreadLoadingFunc(MessageContainer* requestContainer); +uint32_t TryThreadLoadingFunc(MessageContainer* requestContainer); uint32_t Thread_Load_End(void); diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index 545fb40e6..efcbd5030 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -217,6 +217,7 @@ uint32_t ThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue) if (FeederSpeedIndex>=SPEED_STORE_SIZE) { FeederSpeedIndex = 0; + FeederSpeedAverage = 0; for (Speed_i = 0;Speed_i<SPEED_STORE_SIZE;Speed_i++) FeederSpeedAverage+=FeederSpeedStore[Speed_i]; FeederSpeedAverage = FeederSpeedAverage/SPEED_STORE_SIZE; @@ -316,6 +317,7 @@ uint32_t PoolerThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue) if (PullerSpeedIndex>=SPEED_STORE_SIZE) { PullerSpeedIndex = 0; + PullerSpeedAverage = 0; for (Speed_i = 0;Speed_i<SPEED_STORE_SIZE;Speed_i++) PullerSpeedAverage+=PullerSpeedStore[Speed_i]; PullerSpeedAverage = PullerSpeedAverage/SPEED_STORE_SIZE; @@ -976,16 +978,19 @@ uint32_t ThreadPrepare_Tension (int DancerId, double tension) //return ERROR; }*/ - if (FPGA_Read_limit_Switches(Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DH_LID]) == LIMIT) + if ((FPGA_Read_limit_Switches(Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DH_LID]) == LIMIT)&&(JoggingJobActive == false)) { - ReportWithPackageFilter(ThreadFilter,"Dyeing head is wide open!!!",__FILE__,__LINE__,HARDWARE_MOTOR_TYPE__MOTO_DH_LID,RpFatalError,LIMIT,0); - JobEndReason = JOB_LIDS_OPEN; - PrepareReady(Module_Thread,ModuleFail); - return ERROR; + if(Head_Type != HEAD_TYPE_STAPLE_SPUN) + { + ReportWithPackageFilter(ThreadFilter,"Dyeing head is wide open!!!",__FILE__,__LINE__,HARDWARE_MOTOR_TYPE__MOTO_DH_LID,RpError,LIMIT,0); + JobEndReason = JOB_LIDS_OPEN; + PrepareReady(Module_Thread,ModuleFail); + return ERROR; + } } - if (FPGA_Read_limit_Switches(Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID]) == LIMIT) + if ((FPGA_Read_limit_Switches(Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID]) == LIMIT)&&(JoggingJobActive == false)) { - ReportWithPackageFilter(ThreadFilter,"Dryer lid is wide open!!!",__FILE__,__LINE__,HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID,RpFatalError,LIMIT,0); + ReportWithPackageFilter(ThreadFilter,"Dryer lid is wide open!!!",__FILE__,__LINE__,HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID,RpError,LIMIT,0); JobEndReason = JOB_LIDS_OPEN; PrepareReady(Module_Thread,ModuleFail); return ERROR; diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c index fb5cd884d..095f36d48 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c @@ -82,6 +82,7 @@ uint32_t InitSequenceMachineReadyToDye(void); uint32_t InitSequenceStateMachine( INIT_SEQUENCE_STAGES_ENUM ReadValue); uint32_t PowerUpUpdate(MACHINE_STATE_STAGES_ENUM stage); +int InitFailures = 0; MACHINE_STATE_STAGES_ENUM GetMachineState(void) { @@ -100,12 +101,14 @@ void StopInitSequence(void) uint32_t InitSequenceCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) { MACHINE_STATE_STAGES_ENUM status; - int InitFailures = 0; if (SafeRemoveControlCallback(HWControlId, InitSequenceCallBackFunction )==OK) HWControlId = 0xFF; else Report("Remove control callback failed",__FILE__,__LINE__,(int)HWControlId,RpWarning,(int)InitSequenceCallBackFunction,0); MCU_E2PromRead(EEPROM_INIT_FAILURE_COUNTER,&InitFailures); + InitFailures++; + MCU_E2PromProgram(EEPROM_INIT_FAILURE_COUNTER,InitFailures); + if (InitFailures > 100) { InitFailures = 0; @@ -114,7 +117,7 @@ uint32_t InitSequenceCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) if (InitFailures > 3) { Report("HWConfigurationInit repeated failure",__FILE__,__LINE__,(int)InitFailures,RpWarning,(int)EEPROM_INIT_FAILURE_COUNTER,0); - SetMachineState(status); + SetMachineState(MACHINE_STATE_HW_CONFIG_FAILED); AlarmHandlingSetAlarm (EVENT_TYPE__MACHINE_STATE_HW_CONFIG_FAILED,ON); SetMachineStatus(MACHINE_STATE__Error); return ERROR; @@ -173,7 +176,6 @@ void InitSequenceBuiltInTestCallBack(uint32_t IfIndex, uint32_t BusyFlag) InitStages++; //InitSequenceStateMachine(InitStages); AlarmHandlingSetAlarm(EVENT_TYPE__POWER_UP_BIT_FAILURE,false); - MCU_E2PromProgram(EEPROM_INIT_FAILURE_COUNTER,0); } else { @@ -262,6 +264,7 @@ double MainCurrent,SecondaryCurrent,StableCurrent; double InitDrierAcVoltage = 0.0; int InitDrierAcVoltageCount = 0; double Zone2Resistance = 0.0; +double Zone1Resistance = 0.0; int WaitForCurrentRaise = 0;//let the heater current raise void InitCurrentReadingStable(void) { @@ -302,6 +305,11 @@ bool DetectIfCurrentReadingStable(double HeaterCurrent) } return ret; } + +double GetZone1RMSCurrent(double VAC) +{ + return (VAC/Zone1Resistance); +} double GetZone2RMSCurrent(double VAC) { return (VAC/Zone2Resistance); @@ -326,6 +334,7 @@ uint32_t PowerManagementCallBack(uint32_t IfIndex, uint32_t BusyFlag) InitDrierAcVoltage /= InitDrierAcVoltageCount; MainCurrent = StableCurrent; InitCurrentReadingStable(); + Zone1Resistance = InitDrierAcVoltage/MainCurrent; DeActivateHeater(HEATER_TYPE__DryerMainHeater); ActivateHeater(HEATER_TYPE__DryerSecondaryHeater); ReportWithPackageFilter(InitFilter,"starting secondary heater ", __FILE__,__LINE__,(int)(StableCurrent*100), RpMessage, Maxcount_Heater_Current, 0); @@ -518,6 +527,12 @@ uint32_t InitSequenceWaitForCoolerCallBackFunction(uint32_t IfIndex, uint32_t Bu } uint32_t InitSequenceWaitForCooler(void) { + Trigger_SetWHSFanSpeed(FAN1, SmallFansCfg); + Trigger_SetWHSFanSpeed(FAN2, SmallFansCfg); + Trigger_SetWHSFanSpeed(FAN3, SmallFansCfg); + Trigger_SetWHSFanSpeed(FAN4, SmallFansCfg); + Trigger_SetWHSFanSpeed(FAN5, LargeFansCfg); + Trigger_SetWHSFanSpeed(FAN6, LargeFansCfg); if (WHS_Type == WHS_TYPE_UNKNOWN) { InitStages++; @@ -574,6 +589,7 @@ uint32_t InitSequenceStartHeating(void) { SetMachineReadyForHeating(true); //SetMachineStatus(MACHINE_STATE__Ready); //prevent job while waiting for the cooler + MCU_E2PromProgram(EEPROM_INIT_FAILURE_COUNTER,0); if (InitialHeating) { diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.h b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.h index 8ce835a06..d0157ed47 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.h +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.h @@ -37,6 +37,7 @@ MACHINE_STATE_STAGES_ENUM GetMachineState(void); void SetMachineState(MACHINE_STATE_STAGES_ENUM); void InitSequenceSetStartHeating(bool StartHeating); double GetZone2RMSCurrent(double VAC); +double GetZone1RMSCurrent(double VAC); uint32_t PowerUpUpdateFunc(MessageContainer* requestContainer); uint32_t AbortPowerUpFunc(MessageContainer* requestContainer); diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c index 4b6eb93f3..169772480 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c @@ -251,6 +251,7 @@ uint32_t PowerOffHeatersOff(void) ProcessParametersClear.rblowerflow = 0; ProcessParametersClear.rblowerflow = 0; ProcessParametersClear.dyeingspeed = 40; + ProcessParametersClear.headairflow = 8.0; if (HandleProcessParameters(&ProcessParametersClear,false)!= OK) { LOG_ERROR (PowerOffMachineState, "Turn Off Heaters failed"); @@ -361,30 +362,69 @@ uint32_t PowerOffWaitForTemperatureCallback(uint32_t IfIndex, uint32_t BusyFlag) { uint32_t readTemp; MaxTemp = 0; - readTemp = MillisecGetTemperatures( MIXER_PT100); - if ((readTemp>= MaxTemp)&&(readTemp < 28000)) - MaxTemp = readTemp; - readTemp = MillisecGetTemperatures( TEMP_SENSE_ANALOG_DYEINGH_TEMP1); - if ((readTemp>= MaxTemp)&&(readTemp < 28000)) - MaxTemp = readTemp; - readTemp = MillisecGetTemperatures( TEMP_SENSE_ANALOG_DYEINGH_TEMP2); - if ((readTemp>= MaxTemp)&&(readTemp < 28000)) - MaxTemp = readTemp; - readTemp = MillisecGetTemperatures( TEMP_SENSE_ANALOG_DYEINGH_TEMP3); - if ((readTemp>= MaxTemp)&&(readTemp < 28000)) - MaxTemp = readTemp; - readTemp = MillisecGetTemperatures( TEMP_SENSE_ANALOG_DYEINGH_TEMP4); - if ((readTemp>= MaxTemp)&&(readTemp < 28000)) - MaxTemp = readTemp; - readTemp = MillisecGetTemperatures( TEMP_SENSE_ANALOG_DYEINGH_TEMP5); - if ((readTemp>= MaxTemp)&&(readTemp < 28000)) - MaxTemp = readTemp; - readTemp = MillisecGetTemperatures( HEAD6_PT100); - if ((readTemp>= MaxTemp)&&(readTemp < 28000)) - MaxTemp = readTemp; - readTemp = MillisecGetTemperatures( TEMP_SENSE_ANALOG_DRYER_TEMP1); - if ((readTemp>= MaxTemp)&&(readTemp < 28000)) - MaxTemp = readTemp; + /*if (Head_Type == HEAD_TYPE_SYLKO_WITHOUT_CARD) + { + readTemp = MillisecGetTemperatures( MIXER_PT100); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP1); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP2); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP3); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP4); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP5); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD6_PT100); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + } + if (Head_Type == HEAD_TYPE_SYLKO) + { + readTemp = MillisecGetTemperatures( HEAD_PT100_MIXER_0X8E_0); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_ZONE_1_0X80_0); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_ZONE_2_0X80_1); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_ZONE_3_0X82_0); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_ZONE_4_0X82_1); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_ZONE_5_0X84_0); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_ZONE_6_0X84_1); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_ZONE_7_0X86_0); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_ZONE_8_0X86_1); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_ZONE_9_0X88_0); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_ZONE_10_0X88_1); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_ZONE_11_0X8A_0); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_ZONE_12_0X8A_1); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + } + if (Head_Type == HEAD_TYPE_STAPLE_SPUN) + { + readTemp = MillisecGetTemperatures( HEAD_PT100_MIXER_0X8E_0); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_ZONE_1_0X80_0); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_ZONE_2_0X80_1); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_ZONE_3_0X82_0); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_AIR_HEATER_2_0X8C_1); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + readTemp = MillisecGetTemperatures(HEAD_PT100_AIR_HEATER_1_0X8C_0); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; + }*/ + readTemp = MillisecGetTemperatures(TEMP_SENSE_ANALOG_DRYER_TEMP1); + if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; if (StoreMax == 500) StoreMax = MaxTemp; @@ -409,6 +449,7 @@ uint32_t PowerOffWaitForTemperature(void) { Report("PowerOff Wait For Temperature",__FILE__,__LINE__,(int)PowerOffTemperatureThreshold,RpWarning,(int)3600,0); StoreMax = 500; + WHS_Set_IFS_Clearing_Suction(NUM_OF_MIDTANKS); if (WaitForProcessControlId == 0xFF) { WaitForProcessCounter = 0; diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c index be3b64f0a..97247f90b 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c @@ -382,7 +382,6 @@ uint32_t ThreadJoggingFunc(int speed) //usnprintf(ErrorMsg, 80,"Copy Configured T %d W %d I %d H %d W %d",CopyConfigured[Module_Thread],CopyConfigured[Module_Winder],CopyConfigured[Module_IDS],CopyConfigured[Module_Heaters],CopyConfigured[Module_Waste]); //Report(ErrorMsg, __FILE__, __LINE__, 0, RpWarning, 0, 0); - JoggingJobActive = true; //set the job handler to ignore heaters, ids and waste in the state machine Configured[Module_Thread] = true; Configured[Module_Winder] = true; @@ -419,6 +418,7 @@ uint32_t ThreadJoggingFunc(int speed) Ticket.spool = Tspool; CurrentJob = &Ticket; InternalWindingConfigMessage(Tspool); + JoggingJobActive = true; StartJob(&Ticket); } } @@ -537,7 +537,6 @@ uint32_t ThreadCleaningJob(int speed) else { //memcpy(&CopyConfigured,&Configured,sizeof(CopyConfigured)); - CleaningJobActive = true; //usnprintf(ErrorMsg, 80,"Copy Configured T %d W %d I %d H %d W %d",CopyConfigured[Module_Thread],CopyConfigured[Module_Winder],CopyConfigured[Module_IDS],CopyConfigured[Module_Heaters],CopyConfigured[Module_Waste]); //Report(ErrorMsg, __FILE__, __LINE__, 0, RpWarning, 0, 0); @@ -607,6 +606,7 @@ uint32_t ThreadCleaningJob(int speed) } InternalWindingConfigMessage(Tspool); + CleaningJobActive = true; StartJob(&Ticket); } } diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c index 982687201..61561c6a9 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c @@ -138,11 +138,9 @@ FRESULT RewindJobFile() } return Fresult; } -extern Semaphore_Handle FFS_Sem; FRESULT CloseJobFile() { Fresult = f_close(JobRequestFileHandle); - //Semaphore_post(FFS_Sem); #warning trying not to hold the semaphore and enable the PPC/MS to work on several files simultaneously readbBytes = 0; |
