From d1447ca3f8140fc3b78afbb5649dcf650f8eade3 Mon Sep 17 00:00:00 2001 From: Corvus Corax Date: Sun, 11 Nov 2012 17:23:07 +0100 Subject: [PATCH] Rise Botfault error whenever hwsettings has been changed but no reboot took place yet --- flight/Modules/System/systemmod.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/flight/Modules/System/systemmod.c b/flight/Modules/System/systemmod.c index f477c6042..8f5193c14 100644 --- a/flight/Modules/System/systemmod.c +++ b/flight/Modules/System/systemmod.c @@ -50,6 +50,7 @@ #include "taskinfo.h" #include "watchdogstatus.h" #include "taskmonitor.h" +#include "hwsettings.h" //#define DEBUG_THIS_FILE @@ -90,6 +91,7 @@ static bool mallocFailed; // Private functions static void objectUpdatedCb(UAVObjEvent * ev); static void configurationUpdatedCb(UAVObjEvent * ev); +static void hwSettingsUpdatedCb(UAVObjEvent * ev); static void updateStats(); static void updateSystemAlarms(); static void systemTask(void *parameters); @@ -178,6 +180,7 @@ static void systemTask(void *parameters) // Whenever the configuration changes, make sure it is safe to fly SystemSettingsConnectCallback(configurationUpdatedCb); ManualControlSettingsConnectCallback(configurationUpdatedCb); + HwSettingsConnectCallback(hwSettingsUpdatedCb); // Main system loop while (1) { @@ -325,6 +328,14 @@ static void configurationUpdatedCb(UAVObjEvent * ev) configuration_check(); } +/** + * Called whenever hardware settings changed + */ +static void hwSettingsUpdatedCb(UAVObjEvent * ev) +{ + AlarmsSet(SYSTEMALARMS_ALARM_BOOTFAULT,SYSTEMALARMS_ALARM_ERROR); +} + /** * Called periodically to update the I2C statistics */