aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2019-03-03 08:43:14 +0200
committerShlomo Hecht <shlomo@twine-s.com>2019-03-03 08:43:14 +0200
commit76c7cd55ecff7c282761d7a9bdce899c8113ffc0 (patch)
treed60e7cfb9a1c5ee8cb3cc63766e84141219d3141 /Software/Embedded_SW
parent1f003378a385fdc603ac6fc0e2cde6ab57deeaf2 (diff)
parentf3dd7087a42cb16bf19da0de998cf7052171d596 (diff)
downloadTango-76c7cd55ecff7c282761d7a9bdce899c8113ffc0.tar.gz
Tango-76c7cd55ecff7c282761d7a9bdce899c8113ffc0.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/Modules/AlarmHandling/AlarmHandling.c11
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c6
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c9
4 files changed, 16 insertions, 11 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
index c8b660dc0..f4da887c7 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
@@ -124,8 +124,8 @@ AlarmStatusItem AlarmState[MAX_SYSTEM_ALARMS];
* or static variable whose declaration follows the pragma directive (only if using it without #define for example: #pragma location = MOTOR_MAP_IN_FLASH)
* The variables must be declared either __no_init or const!
*/
-AlarmHandlingItemStruc *AlarmItem;
-const AlarmHandlingItemStruc HardCodedAlarmItem[MAX_SYSTEM_ALARMS]={
+//AlarmHandlingItemStruc *AlarmItem;
+const AlarmHandlingItemStruc AlarmItem[MAX_SYSTEM_ALARMS]={
{eHundredMillisecond,LimitSwitchAlarm,LimitSwitchAlarmEmpty_1,0,false,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,EVENT_TYPE__DISPENSER_1_EMPTY,"Dispenser 1 Empty"},
{eHundredMillisecond,LimitSwitchAlarm,LimitSwitchAlarmEmpty_2,1,false,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,EVENT_TYPE__DISPENSER_2_EMPTY,"Dispenser 2 Empty"},
{eHundredMillisecond,LimitSwitchAlarm,LimitSwitchAlarmEmpty_3,2,false,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,EVENT_TYPE__DISPENSER_3_EMPTY,"Dispenser 3 Empty"},
@@ -330,9 +330,9 @@ void AlarmHandlingInit(void)
AlarmState[Alarm_i].EventPtr = NULL;
}
- AlarmItem = (AlarmHandlingItemStruc *)MOTOR_MAP_IN_FLASH;
- ReadAppAndProgram(AlarmItem, sizeof(AlarmHandlingItemStruc)*MAX_SYSTEM_ALARMS, HardCodedAlarmItem);
- LOG_ERROR(AlarmItem[2].EventName,"Flash Test");
+ //AlarmItem = (AlarmHandlingItemStruc *)MOTOR_MAP_IN_FLASH;
+ //ReadAppAndProgram(AlarmItem, sizeof(AlarmHandlingItemStruc)*MAX_SYSTEM_ALARMS, HardCodedAlarmItem);
+ //LOG_ERROR(AlarmItem[2].EventName,"Flash Test");
return;
}
@@ -395,6 +395,7 @@ uint32_t AlarmHandlingConsequentActions(uint32_t AlarmId, DebugLogCategory Sever
case DEBUG_LOG_CATEGORY__Safety:
watchdogCriticalAlarm = true;
+ LOG_ERROR(AlarmId,"Critical Alarm - Watchdog activated to reset hardware");
/*
//stop all dispensers
for (Disp_i = 0;Disp_i < MAX_SYSTEM_DISPENSERS;Disp_i++)
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
index 8c308d2f4..580648842 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
@@ -221,7 +221,11 @@ uint32_t HWConfiguration(UploadHardwareConfigurationRequest* UploadRequest)
{
return ERROR;
}
-
+ if (watchdogCriticalAlarm == true)
+ {
+ LOG_ERROR(1,"Critical Alarm cleared - Watchdog de-activated");
+ watchdogCriticalAlarm = false;
+ }
EmbeddedParametersInit();
PrintingHWConfiguration(request);
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
index 7d851936c..db5d2738e 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
@@ -191,6 +191,7 @@ uint32_t IDS_StopHomeDispenser (uint32_t deviceID)
//close dry air valve in the dispenser
Disable_MidTank_Pressure_Reading(deviceID);
Valve_Set(IDS_Id_to_AirValve[deviceID], Atm_MidTank_OFF);
+ Control3WayValvesWithCallback ((Valves_t)deviceID, MidTank_Dispenser, NULL); //direction: MidTank_Dispenser or Dispenser_Mixer
MotorSetMicroStep(deviceID, MotorsCfg[deviceID].microstep);
return OK;
}
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
index ed91f194a..d77d6f082 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
@@ -30,7 +30,7 @@ typedef struct
bool m_isReady;
PID_Config_Params m_params;
}DispenserControlConfig_t;
-HardwarePidControl *DispensersControl = (HardwarePidControl *)GENHWCFG_MAP_IN_FLASH + 0x4000;;
+HardwarePidControl DispensersControl[MAX_SYSTEM_DISPENSERS] = {0};
int32_t DispenserSamples[MAX_SYSTEM_DISPENSERS][MAX_CONTROL_SAMPLES] = {0};
int DispenserSamplePointer[MAX_SYSTEM_DISPENSERS] = {0};
@@ -67,10 +67,9 @@ uint32_t IDS_DispenserPidRequestMessage(HardwarePidControl* request)
break;
}
}
- if (request->pvinputfilterfactormode > MAX_CONTROL_SAMPLES)
- request->pvinputfilterfactormode = MAX_CONTROL_SAMPLES;
- ReadAppAndProgram(&DispensersControl[Dispenser_i], sizeof(HardwarePidControl), request);
-
+ memcpy (&DispensersControl[Dispenser_i],request,sizeof(HardwarePidControl));
+ if (DispensersControl[Dispenser_i].pvinputfilterfactormode > MAX_CONTROL_SAMPLES)
+ DispensersControl[Dispenser_i].pvinputfilterfactormode = MAX_CONTROL_SAMPLES;
for (i = 0;i < DispensersControl[Dispenser_i].pvinputfilterfactormode; i++)
DispenserSamples[Dispenser_i][i] = 0; //reset the samples value for control beginning
/*DispenserNormalizedErrorCoEfficient[Dispenser_i] = (2*PI*DancersCfg[ThreadDispenserIdToDancerId[Dispenser_i]].armlength);