diff --git a/flight/Modules/AltitudeHold/altitudehold.c b/flight/Modules/AltitudeHold/altitudehold.c index 9b1ae1798..5f4d75a50 100644 --- a/flight/Modules/AltitudeHold/altitudehold.c +++ b/flight/Modules/AltitudeHold/altitudehold.c @@ -46,7 +46,9 @@ #include "openpilot.h" #include "altitudeholdsettings.h" #include "altitudeholddesired.h" // object that will be updated by the module +#include "baroaltitude.h" #include "positionactual.h" +#include "flightstatus.h" #include "stabilizationdesired.h" // Private constants @@ -58,6 +60,7 @@ // Private variables static xTaskHandle altitudeHoldTaskHandle; static xQueueHandle queue; +static AltitudeHoldSettingsData altitudeHoldSettings; // Private functions static void altitudeHoldTask(void *parameters); @@ -87,17 +90,22 @@ int32_t AltitudeHoldInitialize() // Create object queue queue = xQueueCreate(MAX_QUEUE_SIZE, sizeof(UAVObjEvent)); - + // Listen for updates. AltitudeHoldDesiredConnectQueue(queue); - + FlightStatusConnectQueue(queue); + AltitudeHoldSettingsConnectCallback(&SettingsUpdatedCb); - + return 0; } MODULE_INITCALL(AltitudeHoldInitialize, AltitudeHoldStart) -static float throttleIntegral = 0; +float tau; +float velocity, lastAltitude; +float throttleIntegral; +float decay; +bool running = false; /** * Module thread, should not return. @@ -106,16 +114,15 @@ static void altitudeHoldTask(void *parameters) { AltitudeHoldSettingsData altitudeHoldSettings; AltitudeHoldDesiredData altitudeHoldDesired; - PositionActualData positionActual; + BaroAltitudeData baroAltitude; StabilizationDesiredData stabilizationDesired; - - portTickType thisTime; - portTickType lastSysTime; + + portTickType thisTime, lastSysTime; UAVObjEvent ev; - + // Force update of the settings SettingsUpdatedCb(&ev); - + // Main task loop lastSysTime = xTaskGetTickCount(); while (1) { @@ -124,36 +131,47 @@ static void altitudeHoldTask(void *parameters) if ( xQueueReceive(queue, &ev, 100 / portTICK_RATE_MS) != pdTRUE ) { // Todo: Add alarm if it should be running - throttleIntegral = 0; continue; - } else { - PositionActualGet(&positionActual); + } else if (ev.obj == BaroAltitudeHandle()) { + BaroAltitudeGet(&baroAltitude); StabilizationDesiredGet(&stabilizationDesired); float dT; - + + // Verify that we are still in altitude hold mode + FlightStatusData flightStatus; + FlightStatusGet(&flightStatus); + if(flightStatus.FlightMode != FLIGHTSTATUS_FLIGHTMODE_ALTITUDEHOLD) { + UAVObjDisconnectQueue(BaroAltitudeHandle(), queue); + running = false; + } + thisTime = xTaskGetTickCount(); - if(thisTime > lastSysTime) // reuse dt in case of wraparound - dT = (thisTime - lastSysTime) / portTICK_RATE_MS / 1000.0f; + dT = ((portTickType)(thisTime - lastSysTime)) / portTICK_RATE_MS / 1000.0f; lastSysTime = thisTime; - static float altitude; - const float altitudeTau = 0.1; - - // Flipping sign on error since altitude is "down" - float error = - (altitudeHoldDesired.Down - positionActual.Down); - static float - throttleIntegral += error * altitudeHoldSettings.Ki * dT * 1000; - if(throttleIntegral > altitudeHoldSettings.ILimit) - throttleIntegral = altitudeHoldSettings.ILimit; - else if (throttleIntegral < 0) - throttleIntegral = 0; - stabilizationDesired.Throttle = error * altitudeHoldSettings.Kp + throttleIntegral; - if(stabilizationDesired.Throttle > 1) + float error = (altitudeHoldDesired.Altitude - baroAltitude.Altitude); + + // Estimate velocity by smoothing derivative + decay = expf(-dT / tau); + velocity = velocity * decay + (baroAltitude.Altitude - lastAltitude) / dT * (1-decay); // m/s + lastAltitude = baroAltitude.Altitude; + + // Compute integral off altitude error + throttleIntegral += error * altitudeHoldSettings.Ki * dT; + + // Instead of explicit limit on integral you output limit feedback + stabilizationDesired.Throttle = error * altitudeHoldSettings.Kp + throttleIntegral - + velocity * altitudeHoldSettings.Kd; + if(stabilizationDesired.Throttle > 1) { + throttleIntegral -= (stabilizationDesired.Throttle - 1); stabilizationDesired.Throttle = 1; - else if (stabilizationDesired.Throttle < 0) + } + else if (stabilizationDesired.Throttle < 0) { + throttleIntegral -= stabilizationDesired.Throttle; stabilizationDesired.Throttle = 0; - + } + stabilizationDesired.StabilizationMode[STABILIZATIONDESIRED_STABILIZATIONMODE_ROLL] = STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE; stabilizationDesired.StabilizationMode[STABILIZATIONDESIRED_STABILIZATIONMODE_PITCH] = STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE; stabilizationDesired.StabilizationMode[STABILIZATIONDESIRED_STABILIZATIONMODE_YAW] = STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK; @@ -161,6 +179,20 @@ static void altitudeHoldTask(void *parameters) stabilizationDesired.Pitch = altitudeHoldDesired.Pitch; stabilizationDesired.Yaw = altitudeHoldDesired.Yaw; StabilizationDesiredSet(&stabilizationDesired); + } else if (ev.obj == FlightStatusHandle()) { + FlightStatusData flightStatus; + FlightStatusGet(&flightStatus); + + if(flightStatus.FlightMode == FLIGHTSTATUS_FLIGHTMODE_ALTITUDEHOLD && !running) { + BaroAltitudeConnectQueue(queue); + // Copy the current throttle as a starting point for integral + StabilizationDesiredThrottleGet(&throttleIntegral); + throttleIntegral /= altitudeHoldSettings.Ki; + running = true; + } + + } else if (ev.obj == AltitudeHoldDesiredHandle()) { + AltitudeHoldDesiredGet(&altitudeHoldDesired); } } @@ -168,13 +200,7 @@ static void altitudeHoldTask(void *parameters) static void SettingsUpdatedCb(UAVObjEvent * ev) { - AltitudeHoldDesiredGet(&altitudeHoldDesired); AltitudeHoldSettingsGet(&altitudeHoldSettings); - const float fakeDt = 0.0025; - if(settings.GyroTau < 0.0001) - gyro_alpha = 0; // not trusting this to resolve to 0 - else - gyro_alpha = expf(-fakeDt / settings.GyroTau); - + tau = altitudeHoldSettings.Tau / 1000.0f; } diff --git a/flight/Modules/ManualControl/manualcontrol.c b/flight/Modules/ManualControl/manualcontrol.c index 3fa3d1979..1861971e8 100644 --- a/flight/Modules/ManualControl/manualcontrol.c +++ b/flight/Modules/ManualControl/manualcontrol.c @@ -46,6 +46,7 @@ #include "receiveractivity.h" #include "altitudeholddesired.h" #include "positionactual.h" +#include "baroaltitude.h" // Private constants #if defined(PIOS_MANUAL_STACK_SIZE) @@ -626,12 +627,14 @@ static void altitudeHoldDesired(ManualControlCommandData * cmd) PositionActualDownGet(¤tDown); if(dT > 1) { // After not being in this mode for a while init at current height - altitudeHoldDesired.Down = currentDown; + BaroAltitudeData baroAltitude; + BaroAltitudeGet(&baroAltitude); + altitudeHoldDesired.Altitude = baroAltitude.Altitude; zeroed = false; } else if (cmd->Throttle > DEADBAND_HIGH && zeroed) - altitudeHoldDesired.Down += (DEADBAND_HIGH - cmd->Throttle) * dT; + altitudeHoldDesired.Altitude += (cmd->Throttle - DEADBAND_HIGH) * dT; else if (cmd->Throttle < DEADBAND_LOW && zeroed) - altitudeHoldDesired.Down += (DEADBAND_LOW - cmd->Throttle) * dT; + altitudeHoldDesired.Altitude += (cmd->Throttle - DEADBAND_LOW) * dT; else if (cmd->Throttle >= DEADBAND_LOW && cmd->Throttle <= DEADBAND_HIGH) // Require the stick to enter the dead band before they can move height zeroed = true; diff --git a/flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj b/flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj index a43764d91..180af5ec8 100644 --- a/flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj +++ b/flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj @@ -8,7 +8,6 @@ /* Begin PBXFileReference section */ 65003B31121249CA00C183DD /* pios_wdg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_wdg.c; sourceTree = ""; }; - 65078B09136FCEE600536549 /* flightstatus.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = flightstatus.xml; sourceTree = ""; }; 650D8ED112DFE17500D05CC9 /* uavtalk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = uavtalk.h; sourceTree = ""; }; 650D8ED212DFE17500D05CC9 /* uavtalk.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uavtalk.c; sourceTree = ""; }; 65173C9F12EBFD1700D6A7CB /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; name = Makefile; path = ../../../Makefile; sourceTree = SOURCE_ROOT; }; @@ -28,14 +27,11 @@ 6528CCB412E406B800CF5144 /* pios_adxl345.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_adxl345.c; sourceTree = ""; }; 6528CCE212E40F6700CF5144 /* pios_adxl345.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_adxl345.h; sourceTree = ""; }; 652A445514D116AE00835B68 /* board_hw_defs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = board_hw_defs.c; path = ../../board_hw_defs/revolution/board_hw_defs.c; sourceTree = ""; }; - 652C8568132B632A00BFCC70 /* firmwareiapobj.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = firmwareiapobj.xml; sourceTree = ""; }; - 652C856A132B6EA600BFCC70 /* sonaraltitude.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = sonaraltitude.xml; sourceTree = ""; }; 652EF83814DF229C00C461BB /* Modules */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Modules; path = ../../Modules; sourceTree = ""; }; 65322D3B122841F60046CD7C /* gpstime.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = gpstime.xml; sourceTree = ""; }; 65345C871288668B00A5E4E8 /* guidancesettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = guidancesettings.xml; sourceTree = ""; }; 6534B5571474F78B003DF47C /* pios_mpu6000.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_mpu6000.h; sourceTree = ""; }; 6534B55B1476D3A8003DF47C /* pios_ms5611.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_ms5611.h; sourceTree = ""; }; - 6536D47B1307962C0042A298 /* stabilizationdesired.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = stabilizationdesired.xml; sourceTree = ""; }; 65408AA812BB1648004DACC5 /* i2cstats.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = i2cstats.xml; sourceTree = ""; }; 6543A04514CF1823004EEC4C /* board_hw_defs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = board_hw_defs.c; sourceTree = ""; }; 6543A04B14CF1823004EEC4C /* board_hw_defs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = board_hw_defs.c; sourceTree = ""; }; @@ -2758,45 +2754,6 @@ 65B367FE121C2620003EAD18 /* telemetrysettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = telemetrysettings.xml; sourceTree = ""; }; 65B367FF121C2620003EAD18 /* src.pro */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = src.pro; sourceTree = ""; }; 65BBB6A214CE77EB0003A16F /* pios_iap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_iap.c; sourceTree = ""; }; - 65C35E5012EFB2F3004811C2 /* actuatorcommand.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = actuatorcommand.xml; sourceTree = ""; }; - 65C35E5112EFB2F3004811C2 /* actuatordesired.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = actuatordesired.xml; sourceTree = ""; }; - 65C35E5212EFB2F3004811C2 /* actuatorsettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = actuatorsettings.xml; sourceTree = ""; }; - 65C35E5312EFB2F3004811C2 /* ahrscalibration.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = ahrscalibration.xml; sourceTree = ""; }; - 65C35E5412EFB2F3004811C2 /* ahrssettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = ahrssettings.xml; sourceTree = ""; }; - 65C35E5512EFB2F3004811C2 /* ahrsstatus.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = ahrsstatus.xml; sourceTree = ""; }; - 65C35E5612EFB2F3004811C2 /* attitudeactual.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = attitudeactual.xml; sourceTree = ""; }; - 65C35E5812EFB2F3004811C2 /* attituderaw.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = attituderaw.xml; sourceTree = ""; }; - 65C35E5912EFB2F3004811C2 /* baroaltitude.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = baroaltitude.xml; sourceTree = ""; }; - 65C35E5C12EFB2F3004811C2 /* flightbatterystate.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = flightbatterystate.xml; sourceTree = ""; }; - 65C35E5D12EFB2F3004811C2 /* flightplancontrol.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = flightplancontrol.xml; sourceTree = ""; }; - 65C35E5E12EFB2F3004811C2 /* flightplansettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = flightplansettings.xml; sourceTree = ""; }; - 65C35E5F12EFB2F3004811C2 /* flightplanstatus.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = flightplanstatus.xml; sourceTree = ""; }; - 65C35E6012EFB2F3004811C2 /* flighttelemetrystats.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = flighttelemetrystats.xml; sourceTree = ""; }; - 65C35E6112EFB2F3004811C2 /* gcstelemetrystats.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = gcstelemetrystats.xml; sourceTree = ""; }; - 65C35E6212EFB2F3004811C2 /* gpsposition.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = gpsposition.xml; sourceTree = ""; }; - 65C35E6312EFB2F3004811C2 /* gpssatellites.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = gpssatellites.xml; sourceTree = ""; }; - 65C35E6412EFB2F3004811C2 /* gpstime.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = gpstime.xml; sourceTree = ""; }; - 65C35E6512EFB2F3004811C2 /* guidancesettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = guidancesettings.xml; sourceTree = ""; }; - 65C35E6612EFB2F3004811C2 /* homelocation.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = homelocation.xml; sourceTree = ""; }; - 65C35E6712EFB2F3004811C2 /* i2cstats.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = i2cstats.xml; sourceTree = ""; }; - 65C35E6812EFB2F3004811C2 /* manualcontrolcommand.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = manualcontrolcommand.xml; sourceTree = ""; }; - 65C35E6912EFB2F3004811C2 /* manualcontrolsettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = manualcontrolsettings.xml; sourceTree = ""; }; - 65C35E6A12EFB2F3004811C2 /* mixersettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = mixersettings.xml; sourceTree = ""; }; - 65C35E6B12EFB2F3004811C2 /* mixerstatus.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = mixerstatus.xml; sourceTree = ""; }; - 65C35E6C12EFB2F3004811C2 /* nedaccel.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = nedaccel.xml; sourceTree = ""; }; - 65C35E6D12EFB2F3004811C2 /* objectpersistence.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = objectpersistence.xml; sourceTree = ""; }; - 65C35E6E12EFB2F3004811C2 /* positionactual.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = positionactual.xml; sourceTree = ""; }; - 65C35E6F12EFB2F3004811C2 /* positiondesired.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = positiondesired.xml; sourceTree = ""; }; - 65C35E7012EFB2F3004811C2 /* ratedesired.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = ratedesired.xml; sourceTree = ""; }; - 65C35E7112EFB2F3004811C2 /* stabilizationsettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = stabilizationsettings.xml; sourceTree = ""; }; - 65C35E7212EFB2F3004811C2 /* systemalarms.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = systemalarms.xml; sourceTree = ""; }; - 65C35E7312EFB2F3004811C2 /* systemsettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = systemsettings.xml; sourceTree = ""; }; - 65C35E7412EFB2F3004811C2 /* systemstats.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = systemstats.xml; sourceTree = ""; }; - 65C35E7512EFB2F3004811C2 /* taskinfo.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = taskinfo.xml; sourceTree = ""; }; - 65C35E7612EFB2F3004811C2 /* telemetrysettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = telemetrysettings.xml; sourceTree = ""; }; - 65C35E7712EFB2F3004811C2 /* velocityactual.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = velocityactual.xml; sourceTree = ""; }; - 65C35E7812EFB2F3004811C2 /* velocitydesired.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = velocitydesired.xml; sourceTree = ""; }; - 65C35E7912EFB2F3004811C2 /* watchdogstatus.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = watchdogstatus.xml; sourceTree = ""; }; 65C35E9E12F0A834004811C2 /* uavobjecttemplate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uavobjecttemplate.c; sourceTree = ""; }; 65C35E9F12F0A834004811C2 /* uavobjectsinittemplate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uavobjectsinittemplate.c; sourceTree = ""; }; 65C35EA012F0A834004811C2 /* uavobjectsinit_cc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uavobjectsinit_cc.c; sourceTree = ""; }; @@ -2813,7 +2770,7 @@ 65D2CA851248F9A400B1E7D6 /* mixerstatus.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = mixerstatus.xml; sourceTree = ""; }; 65DEA78513F0FE6000095B06 /* stm32f2xx_conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_conf.h; sourceTree = ""; }; 65DEA78613F1118400095B06 /* pios_bma180.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_bma180.h; sourceTree = ""; }; - 65E410AE12F65AEA00725888 /* attitudesettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = attitudesettings.xml; sourceTree = ""; }; + 65E466BC14E244020075459C /* uavobjectdefinition */ = {isa = PBXFileReference; lastKnownFileType = folder; path = uavobjectdefinition; sourceTree = ""; }; 65E6DF7112E02E8E00058553 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; 65E6DF7312E02E8E00058553 /* alarms.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = alarms.c; sourceTree = ""; }; 65E6DF7412E02E8E00058553 /* coptercontrol.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = coptercontrol.c; sourceTree = ""; }; @@ -2860,7 +2817,6 @@ 65E6E09912E037C800058553 /* pios_adc_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_adc_priv.h; sourceTree = ""; }; 65E8C743139A6D0900E1F979 /* pios_crc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_crc.c; sourceTree = ""; }; 65E8C745139A6D1A00E1F979 /* pios_crc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_crc.h; sourceTree = ""; }; - 65E8C788139AA2A800E1F979 /* accessorydesired.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = accessorydesired.xml; sourceTree = ""; }; 65E8F03211EFF25C00BBF654 /* pios_com.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pios_com.c; path = ../../PiOS/Common/pios_com.c; sourceTree = SOURCE_ROOT; }; 65E8F03311EFF25C00BBF654 /* pios_hmc5843.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pios_hmc5843.c; path = ../../PiOS/Common/pios_hmc5843.c; sourceTree = SOURCE_ROOT; }; 65E8F03411EFF25C00BBF654 /* pios_opahrs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pios_opahrs.c; path = ../../PiOS/Common/pios_opahrs.c; sourceTree = SOURCE_ROOT; }; @@ -3259,7 +3215,6 @@ 65FA9B8314709E9E0019A260 /* pios_tim_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_tim_priv.h; sourceTree = ""; }; 65FA9B8414709E9F0019A260 /* pios_tim.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_tim.h; sourceTree = ""; }; 65FA9B8514709E9F0019A260 /* pios_usb_hid_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_usb_hid_priv.h; sourceTree = ""; }; - 65FAB8CF147FFD76000FF8B2 /* receiveractivity.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = receiveractivity.xml; sourceTree = ""; }; 65FAB8FC1480DA19000FF8B2 /* pios_dsm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_dsm.c; sourceTree = ""; }; 65FAB8FD1480DA19000FF8B2 /* pios_pwm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_pwm.c; sourceTree = ""; }; 65FAB8FE1481A5C5000FF8B2 /* pios_rtc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_rtc.c; sourceTree = ""; }; @@ -7866,65 +7821,12 @@ 65C35E4E12EFB2F3004811C2 /* shared */ = { isa = PBXGroup; children = ( - 65C35E4F12EFB2F3004811C2 /* uavobjectdefinition */, + 65E466BC14E244020075459C /* uavobjectdefinition */, ); name = shared; path = ../../../shared; sourceTree = SOURCE_ROOT; }; - 65C35E4F12EFB2F3004811C2 /* uavobjectdefinition */ = { - isa = PBXGroup; - children = ( - 65E8C788139AA2A800E1F979 /* accessorydesired.xml */, - 65C35E5012EFB2F3004811C2 /* actuatorcommand.xml */, - 65C35E5112EFB2F3004811C2 /* actuatordesired.xml */, - 65C35E5212EFB2F3004811C2 /* actuatorsettings.xml */, - 65C35E5312EFB2F3004811C2 /* ahrscalibration.xml */, - 65C35E5412EFB2F3004811C2 /* ahrssettings.xml */, - 65C35E5512EFB2F3004811C2 /* ahrsstatus.xml */, - 65C35E5612EFB2F3004811C2 /* attitudeactual.xml */, - 65C35E5812EFB2F3004811C2 /* attituderaw.xml */, - 65E410AE12F65AEA00725888 /* attitudesettings.xml */, - 65C35E5912EFB2F3004811C2 /* baroaltitude.xml */, - 652C8568132B632A00BFCC70 /* firmwareiapobj.xml */, - 65C35E5C12EFB2F3004811C2 /* flightbatterystate.xml */, - 65C35E5D12EFB2F3004811C2 /* flightplancontrol.xml */, - 65C35E5E12EFB2F3004811C2 /* flightplansettings.xml */, - 65C35E5F12EFB2F3004811C2 /* flightplanstatus.xml */, - 65C35E6012EFB2F3004811C2 /* flighttelemetrystats.xml */, - 65078B09136FCEE600536549 /* flightstatus.xml */, - 65C35E6112EFB2F3004811C2 /* gcstelemetrystats.xml */, - 65C35E6212EFB2F3004811C2 /* gpsposition.xml */, - 65C35E6312EFB2F3004811C2 /* gpssatellites.xml */, - 65C35E6412EFB2F3004811C2 /* gpstime.xml */, - 65C35E6512EFB2F3004811C2 /* guidancesettings.xml */, - 65C35E6612EFB2F3004811C2 /* homelocation.xml */, - 65C35E6712EFB2F3004811C2 /* i2cstats.xml */, - 65C35E6812EFB2F3004811C2 /* manualcontrolcommand.xml */, - 65C35E6912EFB2F3004811C2 /* manualcontrolsettings.xml */, - 65C35E6A12EFB2F3004811C2 /* mixersettings.xml */, - 65C35E6B12EFB2F3004811C2 /* mixerstatus.xml */, - 65C35E6C12EFB2F3004811C2 /* nedaccel.xml */, - 65C35E6D12EFB2F3004811C2 /* objectpersistence.xml */, - 65C35E6E12EFB2F3004811C2 /* positionactual.xml */, - 65C35E6F12EFB2F3004811C2 /* positiondesired.xml */, - 65C35E7012EFB2F3004811C2 /* ratedesired.xml */, - 65FAB8CF147FFD76000FF8B2 /* receiveractivity.xml */, - 652C856A132B6EA600BFCC70 /* sonaraltitude.xml */, - 6536D47B1307962C0042A298 /* stabilizationdesired.xml */, - 65C35E7112EFB2F3004811C2 /* stabilizationsettings.xml */, - 65C35E7212EFB2F3004811C2 /* systemalarms.xml */, - 65C35E7312EFB2F3004811C2 /* systemsettings.xml */, - 65C35E7412EFB2F3004811C2 /* systemstats.xml */, - 65C35E7512EFB2F3004811C2 /* taskinfo.xml */, - 65C35E7612EFB2F3004811C2 /* telemetrysettings.xml */, - 65C35E7712EFB2F3004811C2 /* velocityactual.xml */, - 65C35E7812EFB2F3004811C2 /* velocitydesired.xml */, - 65C35E7912EFB2F3004811C2 /* watchdogstatus.xml */, - ); - path = uavobjectdefinition; - sourceTree = ""; - }; 65C35EA212F0A834004811C2 /* inc */ = { isa = PBXGroup; children = ( diff --git a/shared/uavobjectdefinition/altitudeholddesired.xml b/shared/uavobjectdefinition/altitudeholddesired.xml index 26d674669..8cb004011 100644 --- a/shared/uavobjectdefinition/altitudeholddesired.xml +++ b/shared/uavobjectdefinition/altitudeholddesired.xml @@ -1,10 +1,10 @@ Holds the desired altitude (from manual control) as well as the desired attitude to pass through - + - + diff --git a/shared/uavobjectdefinition/altitudeholdsettings.xml b/shared/uavobjectdefinition/altitudeholdsettings.xml index 42b13e5ab..b2e6af9c8 100644 --- a/shared/uavobjectdefinition/altitudeholdsettings.xml +++ b/shared/uavobjectdefinition/altitudeholdsettings.xml @@ -4,7 +4,7 @@ - +