diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2020-11-26 17:10:36 +0200 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2020-11-26 17:10:36 +0200 |
| commit | 36509bce0c02233b16dcdb39de450bcb30fdc1fc (patch) | |
| tree | d195373257b23082a0c24e2e69c64d252fb3edab | |
| parent | ebe229368ce63bf5a2522fb9b6b3dd248daedc9f (diff) | |
| download | Tango-36509bce0c02233b16dcdb39de450bcb30fdc1fc.tar.gz Tango-36509bce0c02233b16dcdb39de450bcb30fdc1fc.zip | |
shinko to a separate task. test heaters prepare process. NOT TESTED
11 files changed, 99 insertions, 7 deletions
diff --git a/Software/Embedded_SW/Embedded/DataDef.h b/Software/Embedded_SW/Embedded/DataDef.h index 91b3df6bf..58e6ccba0 100644 --- a/Software/Embedded_SW/Embedded/DataDef.h +++ b/Software/Embedded_SW/Embedded/DataDef.h @@ -30,9 +30,9 @@ #define BTSR_NO_PULLER_TFU #endif -#define USE_RFID_STUB //stub only. to use it undef USE_RFID_LOGIC +//#define USE_RFID_STUB //stub only. to use it undef USE_RFID_LOGIC //#define RFID_READ_ONLY // -#define USE_RFID_LOGIC //See more settings in RFID_Settings.h +//#define USE_RFID_LOGIC //See more settings in RFID_Settings.h //#define USE_POWERSTEP01 -NA //#define LIGHT_COLORS //#define EMC_FORCE_MOT_CLOCK_INTERNAL diff --git a/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/WHS_Controller_Comm/WHS_UART/WHS_Uart.c b/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/WHS_Controller_Comm/WHS_UART/WHS_Uart.c index 36bef086d..771a67f81 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/WHS_Controller_Comm/WHS_UART/WHS_Uart.c +++ b/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/WHS_Controller_Comm/WHS_UART/WHS_Uart.c @@ -27,6 +27,8 @@ #include <DataDef.h> #include <Drivers/I2C_Communication/I2C_Task.h> +extern Semaphore_Handle shinkoSem; + //uint8_t Uart3_Tx_Buff[100]; //uint8_t Uart3_Rx_Buff[100]; @@ -293,9 +295,12 @@ unsigned short Calculate_CRC16 ( int Message_Length, char *Message) // for modbu */ uint8_t Shinko_Read_Satage = 0, Shinko_first_read = 0;//public - void Shinko_Cycle_Comm() { + Semaphore_post(shinkoSem); +} +void Shinko_Cycle_Comm_Task() +{ if (WHS_Type == WHS_TYPE_NEW) { if ((Shinko_Read_Satage == 0) || (Shinko_first_read == 0)) @@ -333,3 +338,15 @@ void Shinko_Cycle_Comm() } } } +Void shinkoTask(UArg arg0, UArg arg1) +{ + + // + // Wait until new updTE ARRIVED + // + while (1) + { + Semaphore_pend(shinkoSem, BIOS_WAIT_FOREVER); + Shinko_Cycle_Comm_Task(); + } +} diff --git a/Software/Embedded_SW/Embedded/Embedded.cfg b/Software/Embedded_SW/Embedded/Embedded.cfg index d636d53d1..09c57a89f 100644 --- a/Software/Embedded_SW/Embedded/Embedded.cfg +++ b/Software/Embedded_SW/Embedded/Embedded.cfg @@ -91,6 +91,10 @@ semaphore8Params.instance.name = "FileUpload_sem_param"; semaphore8Params.mode = Semaphore.Mode_BINARY; Program.global.FileUpload_sem_param = Semaphore.create(null, semaphore8Params); +var semaphore9Params = new Semaphore.Params(); +semaphore9Params.instance.name = "shinkoSem"; +semaphore9Params.mode = Semaphore.Mode_BINARY; +Program.global.shinkoSem = Semaphore.create(null, semaphore9Params); var semaphore7Params = new Semaphore.Params(); semaphore7Params.instance.name = "ReconnectSem"; @@ -198,6 +202,12 @@ updateTaskParams.instance.name = "update"; updateTaskParams.priority = 4; Program.global.update = Task.create("&updateTask", updateTaskParams); +var shinkoTaskParams = new Task.Params(); +shinkoTaskParams.instance.name = "shinko"; +shinkoTaskParams.stackSize = 512; +shinkoTaskParams.priority = 3; +Program.global.shinko = Task.create("&shinkoTask", shinkoTaskParams); + /* ================ Text configuration ================ */ var Text = xdc.useModule('xdc.runtime.Text'); /* diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c index 3de362af9..d366e8832 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c @@ -785,6 +785,7 @@ uint32_t MillisecLowLoop(uint32_t tick) PressureCalc[Disp_i] = MillisecCalculatePressures(Disp_i); } } + HeaterPrepareFailureCheck(); if (WHS_Type == WHS_TYPE_NEW) { //Trigger_WHS_PT100_Read_All(); diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c index 6c4293f6f..cdc6afa50 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c @@ -450,7 +450,7 @@ uint32_t HWConfiguration(UploadHardwareConfigurationRequest* UploadRequest) { Report("HWConfigurationInit repeated failure",__FILE__,__LINE__,(int)InitFailures,RpWarning,(int)EEPROM_INIT_FAILURE_COUNTER,0); AlarmHandlingSetAlarm (EVENT_TYPE__POWER_UP_BIT_FAILURE,ON); - return ERROR; + //return ERROR; } else { diff --git a/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c b/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c index bf68b64f0..e6c596d15 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c +++ b/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c @@ -313,8 +313,8 @@ uint32_t CartridgeStateUpdate(CartridgeSlot Slot, int32_t index, CartridgeState SendChars((char*)container_buffer, container_size); //MessageContainer responseContainer; - my_free(response.status); my_free(response.status->cartridgesstatuses); + my_free(response.status); return status; } diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h index b5242bae2..cac543647 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h @@ -27,6 +27,7 @@ void SetHeaterStateRequestFunc(MessageContainer* requestContainer); bool HeaterCheckReady(void); bool isHeaterReady(uint8_t HeaterId); +void HeaterPrepareFailureCheck(void); bool HeaterGetOverTemperatureState(uint8_t HeaterId); void Set_Voltage_Hysteresis (double Hysteresis); diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 6345ff201..c3d163c24 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -1000,6 +1000,36 @@ bool HeaterCheckReady(void) } return true; } +int HeaterPrepareFailureCheckCounter = 0; +uint32_t HeaterPrepareFailureCheckTemperatures[HEATER_TYPE_MAX_HEATERS] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //A/C Heaters Cycle time in milliseconds - one for all heaters + +void HeaterPrepareFailureCheck(void) +{ + int i; + if (GetHeatersPrepareWaiting() == false) + { + HeaterPrepareFailureCheckCounter = 0; + return; + } + if ((HeaterPrepareFailureCheckCounter>=300)&&(HeaterPrepareFailureCheckCounter%60 == 0)) + { + for (i = 0; i<HEATER_TYPE_MAX_HEATERS; i++) + { + if(HeaterReady[i] == false) + { + if (abs (HeaterPrepareFailureCheckTemperatures[i] - HeaterPreviousRead[i])<200) // no temperature move in the last 5 minutes + { + ReportWithPackageFilter(HeatersFilter,"HeaterPrepareFailureCheck",__FILE__,i,HeaterPrepareFailureCheckTemperatures[i],RpWarning,HeaterPreviousRead[i], 0); + //PrepareReady(Module_Heaters,ModuleFail); + //return; + } + } + HeaterPrepareFailureCheckTemperatures[i] = HeaterPreviousRead[i]; + } + //test temp progress + } + HeaterPrepareFailureCheckCounter++; +} void HeaterPrepareReady(void) { int i; diff --git a/Software/Embedded_SW/Embedded/Software Release Notes.txt b/Software/Embedded_SW/Embedded/Software Release Notes.txt index 9b3b4a919..e05978325 100644 --- a/Software/Embedded_SW/Embedded/Software Release Notes.txt +++ b/Software/Embedded_SW/Embedded/Software Release Notes.txt @@ -1,3 +1,13 @@ +Embedded SW Release note - Version 1.5.3(1) - Pack 3 +============================================================= +RFID - suprressed +separate tasks for RFID and dispensers EEPROM, and for the shinko +some bug fixes (persistent alarms, most of temperature spikes +remove repeated restart protections +Blowers - read V0 on job prepare +Temperature build prepare failure handling + + Embedded SW Release note - Version 1.5.2(3) - Pack 3 ============================================================= tweaks to the loading arm reset function (thread load, PPC request) diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c index 565c590f6..802ce81cc 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c @@ -120,10 +120,10 @@ uint32_t InitSequenceCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) if (InitFailures > REPEATED_INIT_FAILURE_LIMIT) { Report("HWConfigurationInit repeated failure",__FILE__,__LINE__,(int)InitFailures,RpWarning,(int)EEPROM_INIT_FAILURE_COUNTER,0); - SetMachineState(MACHINE_STATE_HW_CONFIG_FAILED); + /*SetMachineState(MACHINE_STATE_HW_CONFIG_FAILED); AlarmHandlingSetAlarm (EVENT_TYPE__MACHINE_STATE_HW_CONFIG_FAILED,ON); SetMachineStatus(MACHINE_STATE__Error); - return ERROR; + return ERROR;*/ } status = (MACHINE_STATE_STAGES_ENUM)HWConfigurationInit(); if (status == OK) diff --git a/Software/Stubs Collection/stubs/Delete alarm file.cs b/Software/Stubs Collection/stubs/Delete alarm file.cs new file mode 100644 index 000000000..31ed76216 --- /dev/null +++ b/Software/Stubs Collection/stubs/Delete alarm file.cs @@ -0,0 +1,23 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Hardware; +using Tango.PMR.Stubs; +using Tango.PMR.IO; +using Google.Protobuf; +using System.IO; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + DeleteRequest deleteRequest = new DeleteRequest(); + deleteRequest.Path = "0://SysInfo//Alarm.cfg";; + deleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified; + DeleteResponse response2 = stubManager.Run<DeleteResponse>(deleteRequest); +}
\ No newline at end of file |
