diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2019-03-03 08:43:14 +0200 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2019-03-03 08:43:14 +0200 |
| commit | 76c7cd55ecff7c282761d7a9bdce899c8113ffc0 (patch) | |
| tree | d60e7cfb9a1c5ee8cb3cc63766e84141219d3141 /Software/Embedded_SW | |
| parent | 1f003378a385fdc603ac6fc0e2cde6ab57deeaf2 (diff) | |
| parent | f3dd7087a42cb16bf19da0de998cf7052171d596 (diff) | |
| download | Tango-76c7cd55ecff7c282761d7a9bdce899c8113ffc0.tar.gz Tango-76c7cd55ecff7c282761d7a9bdce899c8113ffc0.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Embedded_SW')
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); |
