aboutsummaryrefslogtreecommitdiffstats
path: root/Software
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-11-26 17:10:36 +0200
committerShlomo Hecht <shlomo@twine-s.com>2020-11-26 17:10:36 +0200
commit36509bce0c02233b16dcdb39de450bcb30fdc1fc (patch)
treed195373257b23082a0c24e2e69c64d252fb3edab /Software
parentebe229368ce63bf5a2522fb9b6b3dd248daedc9f (diff)
downloadTango-36509bce0c02233b16dcdb39de450bcb30fdc1fc.tar.gz
Tango-36509bce0c02233b16dcdb39de450bcb30fdc1fc.zip
shinko to a separate task. test heaters prepare process. NOT TESTED
Diffstat (limited to 'Software')
-rw-r--r--Software/Embedded_SW/Embedded/DataDef.h4
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Uart_Comm/WHS_Controller_Comm/WHS_UART/WHS_Uart.c19
-rw-r--r--Software/Embedded_SW/Embedded/Embedded.cfg10
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c30
-rw-r--r--Software/Embedded_SW/Embedded/Software Release Notes.txt10
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c4
-rw-r--r--Software/Stubs Collection/stubs/Delete alarm file.cs23
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