From 99b3a629a86b644ca0e57691070ae056014d1258 Mon Sep 17 00:00:00 2001 From: James Cotton Date: Sun, 5 Jun 2011 15:22:20 -0500 Subject: [PATCH] OP-493: Force three AccessoryDesired objects to always exist. Routing to Mixing channel now works. However Accessory desired instances do not show up in GCS. --- flight/Modules/ManualControl/manualcontrol.c | 33 ++++++++++++------- flight/Project/gdb/coptercontrol | 2 +- .../manualcontrolsettings.xml | 2 +- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/flight/Modules/ManualControl/manualcontrol.c b/flight/Modules/ManualControl/manualcontrol.c index 4870db6bc..8b972bc6e 100644 --- a/flight/Modules/ManualControl/manualcontrol.c +++ b/flight/Modules/ManualControl/manualcontrol.c @@ -171,6 +171,11 @@ static void manualControlTask(void *parameters) uint8_t disconnected_count = 0; uint8_t connected_count = 0; + // For now manual instantiate extra instances of Accessory Desired. In future should be done dynamically + // this includes not even registering it if not used + AccessoryDesiredCreateInstance(); + AccessoryDesiredCreateInstance(); + // Make sure unarmed on power up ManualControlCommandGet(&cmd); FlightStatusGet(&flightStatus); @@ -268,18 +273,24 @@ static void manualControlTask(void *parameters) flightMode = scaledChannel[settings.FlightMode]; AccessoryDesiredData accessory; + // Set Accessory 0 + if(settings.Accessory0 != MANUALCONTROLSETTINGS_ACCESSORY0_NONE) { + accessory.AccessoryVal = scaledChannel[settings.Accessory0]; + if(AccessoryDesiredInstSet(0, &accessory) != 0) + AlarmsSet(SYSTEMALARMS_ALARM_MANUALCONTROL, SYSTEMALARMS_ALARM_WARNING); + } // Set Accessory 1 - accessory.AccessoryVal = scaledChannel[settings.Accessory1]; - if(AccessoryDesiredInstSet(0, &accessory) != 0) - AccessoryDesiredCreateInstance(); - // Set Accessory 2 - accessory.AccessoryVal = scaledChannel[settings.Accessory2]; - if(AccessoryDesiredInstSet(1, &accessory) != 0) - AccessoryDesiredCreateInstance(); - // Set Accsesory 3 - accessory.AccessoryVal = scaledChannel[settings.Accessory3]; - if(AccessoryDesiredInstSet(2, &accessory) != 0) - AccessoryDesiredCreateInstance(); + if(settings.Accessory1 != MANUALCONTROLSETTINGS_ACCESSORY1_NONE) { + accessory.AccessoryVal = scaledChannel[settings.Accessory1]; + if(AccessoryDesiredInstSet(1, &accessory) != 0) + AlarmsSet(SYSTEMALARMS_ALARM_MANUALCONTROL, SYSTEMALARMS_ALARM_WARNING); + } + // Set Accsesory 2 + if(settings.Accessory2 != MANUALCONTROLSETTINGS_ACCESSORY2_NONE) { + accessory.AccessoryVal = scaledChannel[settings.Accessory2]; + if(AccessoryDesiredInstSet(2, &accessory) != 0) + AlarmsSet(SYSTEMALARMS_ALARM_MANUALCONTROL, SYSTEMALARMS_ALARM_WARNING); + } processFlightMode(&settings, flightMode); diff --git a/flight/Project/gdb/coptercontrol b/flight/Project/gdb/coptercontrol index d08282e50..7e7b53453 100644 --- a/flight/Project/gdb/coptercontrol +++ b/flight/Project/gdb/coptercontrol @@ -1,7 +1,7 @@ define connect target remote localhost:3333 monitor cortex_m3 vector_catch all - file ./build/coptercontrol/CopterControl.elf + file ./build/fw_coptercontrol/fw_coptercontrol.elf end #monitor reset halt diff --git a/shared/uavobjectdefinition/manualcontrolsettings.xml b/shared/uavobjectdefinition/manualcontrolsettings.xml index 63488deee..0828932e4 100644 --- a/shared/uavobjectdefinition/manualcontrolsettings.xml +++ b/shared/uavobjectdefinition/manualcontrolsettings.xml @@ -7,9 +7,9 @@ + -