aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW
diff options
context:
space:
mode:
authorRonen Sberlo <ronen.s@twine-s.com>2020-10-27 14:38:35 +0200
committerRonen Sberlo <ronen.s@twine-s.com>2020-10-27 14:38:35 +0200
commitd2308f122017b8efd08d4a08863826dc28dbb985 (patch)
treeb89f7a6a0f815d6aeb89e85816c41e1d649f5351 /Software/Embedded_SW
parentfba4984f4d08397f7f1b897953d5d8cb068ee2bc (diff)
parent2d36ca07a6b43cf997aea3a987ed97cd3afcb655 (diff)
downloadTango-d2308f122017b8efd08d4a08863826dc28dbb985.tar.gz
Tango-d2308f122017b8efd08d4a08863826dc28dbb985.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Embedded_SW')
-rw-r--r--Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c17
-rw-r--r--Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c6
-rw-r--r--Software/Embedded_SW/Embedded/Common/report/reportInit.c5
-rw-r--r--Software/Embedded_SW/Embedded/Communication/Connection.c4
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_SPI_Comm.c9
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.h2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c10
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c16
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/control.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c9
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c2
14 files changed, 48 insertions, 41 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
index 56888b742..10f33c62b 100644
--- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
+++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
@@ -662,15 +662,6 @@ uint32_t GetFilesRequestFunc(MessageContainer* requestContainer)
FRESULT Fresult = FR_OK;
FileInfo **FilesInfo = (FileInfo**)my_malloc(sizeof(FileInfo *)*(MAX_NUM_OF_FILES));
FileInfo Data[MAX_NUM_OF_FILES];
- /*
- time_t t;
- struct tm *ltm;
- char *curTime;
- t = time(NULL);
- ltm = localtime(&t);
- curTime = asctime(ltm);
- Report(curTime, __FILE__, ltm->tm_hour,ltm->tm_min , RpWarning, ltm->tm_sec, 0);
- */
if (1)//(Semaphore_pend(FFS_Sem, BIOS_NO_WAIT))
{
@@ -727,14 +718,6 @@ uint32_t GetFilesRequestFunc(MessageContainer* requestContainer)
Data[i].lastmodifieddate = fno[i]->fdate;
Data[i].has_lastmodifiedtime = true;
Data[i].lastmodifiedtime = fno[i]->ftime;
- /*
- t = (fno[i]->fdate<<16)+fno[i]->ftime;
- ltm = localtime(&t);
- curTime = asctime(ltm);
- usnprintf(&Datestr, 100, "File info %s %s",fno[i]->fname, curTime);
- Report(Datestr, __FILE__, __LINE__, t, RpWarning, (int)Data[i].lastmodifiedtime, 0);
- Task_sleep(50);
- */
if (i==0)
usnprintf(&FullPath[i], 50, "%s", request->path);
diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c
index dbbe47ddb..2d39d25ec 100644
--- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c
+++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c
@@ -165,6 +165,8 @@ uint32_t ActivateVersionRequestFunc(MessageContainer* requestContainer)
usnprintf(FullPath, 50, "%s%s%s", request->path,"/", VersionPackage->filedescriptors[File_i]->filename);
FFresult = f_unlink("//SYSINFO//EMBPARAM.CFG");
FFresult |= f_rename (FullPath, "//SYSINFO//EMBPARAM.CFG");
+ FlashInit();
+ Reboot = true;
LoadConfigurationParamsFromFile(true);
Report("ConfigParams",__FILE__,FFresult,(int)NumberOfFiles,RpWarning,CurrentRunningFile,0);
CurrentRunningFile++;
@@ -173,7 +175,9 @@ uint32_t ActivateVersionRequestFunc(MessageContainer* requestContainer)
usnprintf(FullPath, 50, "%s%s%s", request->path,"/", VersionPackage->filedescriptors[File_i]->filename);
FFresult = f_unlink("//SYSINFO//PROCESSP.CFG");
FFresult |= f_rename (FullPath, "//SYSINFO//PROCESSP.CFG");
- LoadProcessParamsFromFile();
+ //LoadProcessParamsFromFile();
+ FlashInit();
+ Reboot = true;
Report("ProcessParams",__FILE__,FFresult,(int)NumberOfFiles,RpWarning,CurrentRunningFile,0);
CurrentRunningFile++;
break;
diff --git a/Software/Embedded_SW/Embedded/Common/report/reportInit.c b/Software/Embedded_SW/Embedded/Common/report/reportInit.c
index 8890fa8b9..2778943f3 100644
--- a/Software/Embedded_SW/Embedded/Common/report/reportInit.c
+++ b/Software/Embedded_SW/Embedded/Common/report/reportInit.c
@@ -109,6 +109,10 @@ uint32_t OpenLogFile(void)
uint32_t CloseLogFile(void)
{
/* perform default error output */
+ int len;
+ uint32_t Bytes = 0;
+ len = usnprintf(RepMessage, 80, "Closing Log File %s %s",__DATE__, __TIME__);
+ LogFresult = f_write(LogFileHandle,RepMessage,len,&Bytes );
LogFresult = f_close(LogFileHandle);
LogFileHandle = NULL;
return LogFresult;
@@ -329,6 +333,7 @@ uint32_t ReportInitMessage(MessageContainer* requestContainer)
// ReportInitParams InitParams;
StartDebugLogRequest* request = start_debug_log_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+ Report("==============Saving file=================", __FILE__, __LINE__, _gTangoVersion.m_patch, RpWarning, _gTangoVersion.m_build, 0);
ustrncpy (protobufToken, requestContainer->token,36);
if (LogFileHandle != NULL)
f_sync(LogFileHandle);
diff --git a/Software/Embedded_SW/Embedded/Communication/Connection.c b/Software/Embedded_SW/Embedded/Communication/Connection.c
index 0e90e5dbf..b566aa0e0 100644
--- a/Software/Embedded_SW/Embedded/Communication/Connection.c
+++ b/Software/Embedded_SW/Embedded/Communication/Connection.c
@@ -186,8 +186,8 @@ void KeepAliveRequest1Second(void)
KARequestId++;
//Report("keepalive request sent",__FILE__,__LINE__,KARequestId,RpWarning,msec_millisecondCounter, 0);
- if (keepalivetest == false)
- KeepAliveOneSecondCounter = 0;
+ //if (keepalivetest == false)
+ // KeepAliveOneSecondCounter = 0;
//KeepAliveActive = true;
responseContainer = createContainer(MESSAGE_TYPE__KeepAliveRequest, KARequestToken, true, &request, &keep_alive_request__pack, &keep_alive_request__get_packed_size);
//-------------------------------------------------------------------------------------------
diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_SPI_Comm.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_SPI_Comm.c
index 9d20d37a4..2ebaa4732 100644
--- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_SPI_Comm.c
+++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_SPI_Comm.c
@@ -166,8 +166,7 @@ void Read_Motors_Driver_ADC(void)
}
else
{
- ReportWithPackageFilter(GeneralFilter,"the motor's combined driver adc",__FILE__,__LINE__,i,RpMessage,MotorDriverResponse[i].ADC,0);
-
+ //ReportWithPackageFilter(GeneralFilter,"the motor's combined driver adc",__FILE__,__LINE__,i,RpMessage,MotorDriverResponse[i].ADC,0);
}
}
@@ -192,9 +191,7 @@ void Read_Motors_Driver_ADC(void)
{
FPGA_Get_Res(i);
MotorDriverResponse[i].ADC = Fpga_Spi[i].RX_MISO;
- LOG_ERROR (i, "the motor's driver type");
- ReportWithPackageFilter(GeneralFilter,"the motor's driver adc",__FILE__,__LINE__,i,RpMessage,MotorDriverResponse[i].ADC,0);
-
+ //ReportWithPackageFilter(GeneralFilter,"the motor's driver adc",__FILE__,__LINE__,i,RpMessage,MotorDriverResponse[i].ADC,0);
}
}
}
@@ -491,6 +488,8 @@ void FPGA_SetMotorsInit()
{
uint8_t i=0;
+ MotorConfiguredTimeout = 100;
+
//since powerstep in stby on powerup)
F1_Moto_Driver_NSTBYRST1 = 0xFFFF;
F1_Moto_Driver_NSTBYRST2 = 0xFFFF;
diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.h b/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.h
index 655a980db..7da9f92a7 100644
--- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.h
+++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.h
@@ -26,6 +26,8 @@
#define FLASH_SIZE 0X8000
+extern int base_flashErased;
+
//*****************************************************************************
//
// Read application data from a buffer and program it into flash.
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
index 42f60a151..6df2c27c6 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
@@ -73,6 +73,7 @@ bool AlarmHandlingActive = false;
uint32_t AlarmHandlingControlId = 0xFF;
uint32_t AlarmHandlingTick = 0;
+int MotorConfiguredTimeout = 100;
double CurrentAlarmHighLimit ,CurrentAlarmLowLimit;
bool CheckHardLimitAlarms = false,CheckCurrentAlarms = false,CheckTamperAlarms = false,CheckMotorAlarms = false;
uint8_t alarm_response_buffer[500];
@@ -504,7 +505,7 @@ uint32_t AlarmHandlingLoadFile(void)
if (F_count == 4)
{
- ReportWithPackageFilter(AlarmFilter,"Writing four alarms", __FILE__,AlarmPtr,F_count, RpMessage, p_size, 0);
+ //ReportWithPackageFilter(AlarmFilter,"Writing four alarms", __FILE__,AlarmPtr,F_count, RpMessage, p_size, 0);
F_count = 0;
ReadAppAndProgram(AlarmPtr, p_size,FileAlarmItem);
AlarmPtr+=p_size;
@@ -976,7 +977,7 @@ JobEndReasonEnum AlarmHandlingPrepareJob(void *CurrentJob)
if ((IFS_Availability[1] == IFS_RECOGNIZED_INIT_PASSED)&&(IFS_Availability[2] == IFS_RECOGNIZED_INIT_PASSED)) //ifs installed -check cartridges
{
- tempFoundReason = Waste_Prepare();
+ tempFoundReason = Waste_CheckState();
if (tempFoundReason!=JOB_OK)
{
FoundReason = tempFoundReason;
@@ -1192,6 +1193,9 @@ uint32_t AlarmHandlingLoop(uint32_t tick)
if (AlarmItem == NULL)
return ERROR;
int AlarmCounter=0;
+ if (MotorConfiguredTimeout)
+ MotorConfiguredTimeout--;
+
for (Alarm_i = 0;Alarm_i < NumOfSystemAlarms;Alarm_i++)
{
Status = false;
@@ -1368,7 +1372,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick)
case ALARM_SOURCE_TYPE__MotorAlarm:
if (CheckMotorAlarms)
{
- if ((FPGA_WD_Occurred == true)||(MachineReadyForHeating == false))
+ if ((FPGA_WD_Occurred == true)||(MotorConfiguredTimeout > 0))
{
Status = false;
}
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h
index 3b39370bf..0ce6d4816 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h
@@ -10,6 +10,8 @@
#include "StateMachines/Printing/PrintingSTM.h"
#include <PMR/Diagnostics/EventType.pb-c.h>
+extern int MotorConfiguredTimeout;
+
uint32_t AlarmHandlingFlashLoad(void);
uint32_t AlarmHandlingLoadFile(void);
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
index 8a14a1d67..689219583 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
@@ -822,14 +822,6 @@ uint32_t MillisecLowLoop(uint32_t tick)
}
if (Tensecond_Tick)
{
- #ifndef RUN_AS_MAIN_JIG
- //Trigger_MidTank_Pressure_Read();
- for (Disp_i = 0;Disp_i < MAX_SYSTEM_DISPENSERS;Disp_i++)
- {
- Read_MidTank_Pressure_Sensor(Disp_i);
- }
- #endif
-
}
if (OneMinute_Tick)
{
@@ -864,6 +856,14 @@ uint32_t MillisecLowLoop(uint32_t tick)
{
Shinko_Cycle_Comm();
}
+#ifndef RUN_AS_MAIN_JIG
+ //Trigger_MidTank_Pressure_Read();
+ for (Disp_i = 0;Disp_i < MAX_SYSTEM_DISPENSERS;Disp_i++)
+ {
+ Read_MidTank_Pressure_Sensor(Disp_i);
+ }
+#endif
+
}
if (OneHourTick)
{
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/control.c b/Software/Embedded_SW/Embedded/Modules/Control/control.c
index 14275533e..2047e9910 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/control.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/control.c
@@ -198,6 +198,8 @@ uint32_t ControlActivityLed( uint32_t Parameter1)
ReportWithPackageFilter(FPGAFilter, "FPGA Watchdog Error",__FILE__,__LINE__,0,RpError, 0,0);
ACTIVITY_GREEN_LED_ON;
+ MotorConfiguredTimeout = 100;
+
FPGA_SetMotorsInit();
Motor_ReconfigAllMotors();
}
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
index 2f9088cf1..90c18caa0 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
@@ -467,6 +467,7 @@ uint32_t HWConfiguration(UploadHardwareConfigurationRequest* UploadRequest)
//if (request->n_winders == 1)
// status += InternalWinderConfigMessage(request->winders);
+ MotorConfiguredTimeout = 100;
status += MotorsInit();
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
index 4fe32e7cd..2c2ebfd07 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
@@ -84,7 +84,7 @@ uint32_t InitialDispenserSpeed = INITIAL_DISPENSER_SPEED;
uint32_t ControlIdtoInactiveDispenserId [MAX_SYSTEM_DISPENSERS] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
-uint32_t IDS_StopHomeDispenserBuildPressure (uint32_t deviceID);
+//uint32_t IDS_StopHomeDispenserBuildPressure (uint32_t deviceID);
AutoHoming_Config_enum AutoHoming_Config = AutoHoming_off;
void IDS_Dispenser_SetAutoHoming_Config(AutoHoming_Config_enum Config)
@@ -350,6 +350,7 @@ uint32_t IDS_StopHomeDispenser (uint32_t DispenserId)
CurrentDispenserSpeed[DispenserId] = 0;
return OK;
}
+/*
uint32_t IDS_StopHomeDispenserBuildPressure (uint32_t DispenserId)
{
assert(DispenserId < MAX_SYSTEM_DISPENSERS);
@@ -380,7 +381,7 @@ uint32_t IDS_StopHomeDispenserBuildPressure (uint32_t DispenserId)
}
// HomingActive[DispenserId]= false;
ReportWithPackageFilter(IDSFilter,"End homing for job start",__FILE__,millisecondCounter,(int)DispenserId,RpWarning,(int)DispenserHomingTime[DispenserId],0);
- /* else
+ /`* else
{
ReportWithPackageFilter(IDSFilter,"homing aborted,start backlash",__FILE__,millisecondCounter,(int)DispenserId,RpWarning,(int)DispenserHomingTime[DispenserId],0);
DispenserHomingControlId[DispenserId] = AddControlCallback( IDS_HomeDispenserBackMoveCallback, InitialDispenserTimeLag, GetDispenserPressure,motorId, motorId, 0 );
@@ -389,12 +390,12 @@ uint32_t IDS_StopHomeDispenserBuildPressure (uint32_t DispenserId)
Task_sleep(10);
MotorSetSpeed(motorId, 1000);
CurrentDispenserSpeed[DispenserId] = 1000;
- }*/
+ }*`/
//IDS_Dispenser_RefillEnded ( DispenserId, MotorsCfg[motorId].microstep);
return OK;
}
-
+*/
uint32_t IDS_CheckDispenserLimitSwitch (LimitSwitchAlarms LS_Id)
{
int DispenserId;
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
index fb8e97898..0d5d60af0 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
@@ -948,7 +948,11 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
if((request->amount == 0x0CD) && (request->delay == 0x0CD)) //Get Gas Sensor
{
LOG_ERROR(request->delay,"Load embedded parameters from file and restart");
+ base_flashErased = false;
LoadConfigurationParamsFromFile(true);
+ LOG_ERROR(255,"Update successful, Rebooting in 5 seconds");
+ Task_sleep (eOneSecond*5);
+ Power_Reset();
response.progress = (double)OK;
response.has_progress = true;
diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c
index d552c444e..bbd67e82b 100644
--- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c
+++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c
@@ -37,7 +37,7 @@ bool DoorState = OPEN;
uint32_t timeout_counter = 0;
int wasteLevel = 0;
WasteCartridgeEnum SelectedCard = MaxWasteCartridges;
-CartridgeStateEnum CartState[MaxWasteCartridges];
+CartridgeStateEnum CartState[MaxWasteCartridges];// = {CartridgeStateOUT,CartridgeStateOUT,CartridgeStateOUT};
uint32_t Cartridge_Cover_Control;
button *CartLed[MaxWasteCartridges] = {0, &cart2, &cart3};
WasteTankStateEnum WasteTankState = WasteTankStateIdle;