diff --git a/flight/OpenPilot/Modules/Actuator/actuator.c b/flight/OpenPilot/Modules/Actuator/actuator.c index a83a46546..e5fd7d2a9 100644 --- a/flight/OpenPilot/Modules/Actuator/actuator.c +++ b/flight/OpenPilot/Modules/Actuator/actuator.c @@ -166,10 +166,10 @@ static void actuatorTask(void* parameters) ActuatorSettingsGet(&settings); int nMixers = 0; - Mixer_t * mixers = (Mixer_t *)&mixerSettings.Mixer0Type; + Mixer_t * mixers = (Mixer_t *)&mixerSettings.Mixer1Type; for(int ct=0; ct < MAX_MIX_ACTUATORS; ct++) { - if(mixers[ct].type != MIXERSETTINGS_MIXER0TYPE_DISABLED) + if(mixers[ct].type != MIXERSETTINGS_MIXER1TYPE_DISABLED) { nMixers ++; } @@ -189,12 +189,12 @@ static void actuatorTask(void* parameters) float curve2 = MixerCurve(desired.Throttle,mixerSettings.ThrottleCurve2); for(int ct=0; ct < MAX_MIX_ACTUATORS; ct++) { - if(mixers[ct].type != MIXERSETTINGS_MIXER0TYPE_DISABLED) + if(mixers[ct].type != MIXERSETTINGS_MIXER1TYPE_DISABLED) { status[ct] = ProcessMixer(ct, curve1, curve2, &mixerSettings, &desired, dT); if(!armed && - mixers[ct].type == MIXERSETTINGS_MIXER0TYPE_MOTOR) + mixers[ct].type == MIXERSETTINGS_MIXER1TYPE_MOTOR) { command.Channel[ct] = settings.ChannelMin[ct]; //force zero throttle filterAccumulator[ct] = 0; @@ -232,14 +232,14 @@ static void actuatorTask(void* parameters) float ProcessMixer(const int index, const float curve1, const float curve2, MixerSettingsData* mixerSettings, ActuatorDesiredData* desired, const float period) { - Mixer_t * mixers = (Mixer_t *)&mixerSettings->Mixer0Type; //pointer to array of mixers in UAVObjects + Mixer_t * mixers = (Mixer_t *)&mixerSettings->Mixer1Type; //pointer to array of mixers in UAVObjects Mixer_t * mixer = &mixers[index]; - float result = ((mixer->matrix[MIXERSETTINGS_MIXER0VECTOR_THROTTLECURVE1] / 128.0f) * curve1) + - ((mixer->matrix[MIXERSETTINGS_MIXER0VECTOR_THROTTLECURVE2] / 128.0f) * curve2) + - ((mixer->matrix[MIXERSETTINGS_MIXER0VECTOR_ROLL] / 128.0f) * desired->Roll) + - ((mixer->matrix[MIXERSETTINGS_MIXER0VECTOR_PITCH] / 128.0f) * desired->Pitch) + - ((mixer->matrix[MIXERSETTINGS_MIXER0VECTOR_YAW] / 128.0f) * desired->Yaw); - if(mixer->type == MIXERSETTINGS_MIXER0TYPE_MOTOR) + float result = ((mixer->matrix[MIXERSETTINGS_MIXER1VECTOR_THROTTLECURVE1] / 128.0f) * curve1) + + ((mixer->matrix[MIXERSETTINGS_MIXER1VECTOR_THROTTLECURVE2] / 128.0f) * curve2) + + ((mixer->matrix[MIXERSETTINGS_MIXER1VECTOR_ROLL] / 128.0f) * desired->Roll) + + ((mixer->matrix[MIXERSETTINGS_MIXER1VECTOR_PITCH] / 128.0f) * desired->Pitch) + + ((mixer->matrix[MIXERSETTINGS_MIXER1VECTOR_YAW] / 128.0f) * desired->Yaw); + if(mixer->type == MIXERSETTINGS_MIXER1TYPE_MOTOR) { if(result < 0) //idle throttle { @@ -364,12 +364,12 @@ static void setFailsafe() MixerSettingsData mixerSettings; MixerSettingsGet (&mixerSettings); - Mixer_t * mixers = (Mixer_t *)&mixerSettings.Mixer0Type; //pointer to array of mixers in UAVObjects + Mixer_t * mixers = (Mixer_t *)&mixerSettings.Mixer1Type; //pointer to array of mixers in UAVObjects // Reset ActuatorCommand to safe values for (int n = 0; n < ACTUATORCOMMAND_CHANNEL_NUMELEM; ++n) { - if(mixers[n].type == MIXERSETTINGS_MIXER0TYPE_MOTOR) + if(mixers[n].type == MIXERSETTINGS_MIXER1TYPE_MOTOR) { command.Channel[n] = settings.ChannelMin[n]; } diff --git a/flight/OpenPilot/UAVObjects/inc/actuatorsettings.h b/flight/OpenPilot/UAVObjects/inc/actuatorsettings.h index 42f94c03c..dd5e1b682 100644 --- a/flight/OpenPilot/UAVObjects/inc/actuatorsettings.h +++ b/flight/OpenPilot/UAVObjects/inc/actuatorsettings.h @@ -95,46 +95,46 @@ typedef struct { // Field information // Field FixedWingRoll1 information /* Enumeration options for field FixedWingRoll1 */ -typedef enum { ACTUATORSETTINGS_FIXEDWINGROLL1_CHANNEL0=0, ACTUATORSETTINGS_FIXEDWINGROLL1_CHANNEL1=1, ACTUATORSETTINGS_FIXEDWINGROLL1_CHANNEL2=2, ACTUATORSETTINGS_FIXEDWINGROLL1_CHANNEL3=3, ACTUATORSETTINGS_FIXEDWINGROLL1_CHANNEL4=4, ACTUATORSETTINGS_FIXEDWINGROLL1_CHANNEL5=5, ACTUATORSETTINGS_FIXEDWINGROLL1_CHANNEL6=6, ACTUATORSETTINGS_FIXEDWINGROLL1_CHANNEL7=7, ACTUATORSETTINGS_FIXEDWINGROLL1_NONE=8 } ActuatorSettingsFixedWingRoll1Options; +typedef enum { ACTUATORSETTINGS_FIXEDWINGROLL1_CHANNEL1=0, ACTUATORSETTINGS_FIXEDWINGROLL1_CHANNEL2=1, ACTUATORSETTINGS_FIXEDWINGROLL1_CHANNEL3=2, ACTUATORSETTINGS_FIXEDWINGROLL1_CHANNEL4=3, ACTUATORSETTINGS_FIXEDWINGROLL1_CHANNEL5=4, ACTUATORSETTINGS_FIXEDWINGROLL1_CHANNEL6=5, ACTUATORSETTINGS_FIXEDWINGROLL1_CHANNEL7=6, ACTUATORSETTINGS_FIXEDWINGROLL1_CHANNEL8=7, ACTUATORSETTINGS_FIXEDWINGROLL1_NONE=8 } ActuatorSettingsFixedWingRoll1Options; // Field FixedWingRoll2 information /* Enumeration options for field FixedWingRoll2 */ -typedef enum { ACTUATORSETTINGS_FIXEDWINGROLL2_CHANNEL0=0, ACTUATORSETTINGS_FIXEDWINGROLL2_CHANNEL1=1, ACTUATORSETTINGS_FIXEDWINGROLL2_CHANNEL2=2, ACTUATORSETTINGS_FIXEDWINGROLL2_CHANNEL3=3, ACTUATORSETTINGS_FIXEDWINGROLL2_CHANNEL4=4, ACTUATORSETTINGS_FIXEDWINGROLL2_CHANNEL5=5, ACTUATORSETTINGS_FIXEDWINGROLL2_CHANNEL6=6, ACTUATORSETTINGS_FIXEDWINGROLL2_CHANNEL7=7, ACTUATORSETTINGS_FIXEDWINGROLL2_NONE=8 } ActuatorSettingsFixedWingRoll2Options; +typedef enum { ACTUATORSETTINGS_FIXEDWINGROLL2_CHANNEL1=0, ACTUATORSETTINGS_FIXEDWINGROLL2_CHANNEL2=1, ACTUATORSETTINGS_FIXEDWINGROLL2_CHANNEL3=2, ACTUATORSETTINGS_FIXEDWINGROLL2_CHANNEL4=3, ACTUATORSETTINGS_FIXEDWINGROLL2_CHANNEL5=4, ACTUATORSETTINGS_FIXEDWINGROLL2_CHANNEL6=5, ACTUATORSETTINGS_FIXEDWINGROLL2_CHANNEL7=6, ACTUATORSETTINGS_FIXEDWINGROLL2_CHANNEL8=7, ACTUATORSETTINGS_FIXEDWINGROLL2_NONE=8 } ActuatorSettingsFixedWingRoll2Options; // Field FixedWingPitch1 information /* Enumeration options for field FixedWingPitch1 */ -typedef enum { ACTUATORSETTINGS_FIXEDWINGPITCH1_CHANNEL0=0, ACTUATORSETTINGS_FIXEDWINGPITCH1_CHANNEL1=1, ACTUATORSETTINGS_FIXEDWINGPITCH1_CHANNEL2=2, ACTUATORSETTINGS_FIXEDWINGPITCH1_CHANNEL3=3, ACTUATORSETTINGS_FIXEDWINGPITCH1_CHANNEL4=4, ACTUATORSETTINGS_FIXEDWINGPITCH1_CHANNEL5=5, ACTUATORSETTINGS_FIXEDWINGPITCH1_CHANNEL6=6, ACTUATORSETTINGS_FIXEDWINGPITCH1_CHANNEL7=7, ACTUATORSETTINGS_FIXEDWINGPITCH1_NONE=8 } ActuatorSettingsFixedWingPitch1Options; +typedef enum { ACTUATORSETTINGS_FIXEDWINGPITCH1_CHANNEL1=0, ACTUATORSETTINGS_FIXEDWINGPITCH1_CHANNEL2=1, ACTUATORSETTINGS_FIXEDWINGPITCH1_CHANNEL3=2, ACTUATORSETTINGS_FIXEDWINGPITCH1_CHANNEL4=3, ACTUATORSETTINGS_FIXEDWINGPITCH1_CHANNEL5=4, ACTUATORSETTINGS_FIXEDWINGPITCH1_CHANNEL6=5, ACTUATORSETTINGS_FIXEDWINGPITCH1_CHANNEL7=6, ACTUATORSETTINGS_FIXEDWINGPITCH1_CHANNEL8=7, ACTUATORSETTINGS_FIXEDWINGPITCH1_NONE=8 } ActuatorSettingsFixedWingPitch1Options; // Field FixedWingPitch2 information /* Enumeration options for field FixedWingPitch2 */ -typedef enum { ACTUATORSETTINGS_FIXEDWINGPITCH2_CHANNEL0=0, ACTUATORSETTINGS_FIXEDWINGPITCH2_CHANNEL1=1, ACTUATORSETTINGS_FIXEDWINGPITCH2_CHANNEL2=2, ACTUATORSETTINGS_FIXEDWINGPITCH2_CHANNEL3=3, ACTUATORSETTINGS_FIXEDWINGPITCH2_CHANNEL4=4, ACTUATORSETTINGS_FIXEDWINGPITCH2_CHANNEL5=5, ACTUATORSETTINGS_FIXEDWINGPITCH2_CHANNEL6=6, ACTUATORSETTINGS_FIXEDWINGPITCH2_CHANNEL7=7, ACTUATORSETTINGS_FIXEDWINGPITCH2_NONE=8 } ActuatorSettingsFixedWingPitch2Options; +typedef enum { ACTUATORSETTINGS_FIXEDWINGPITCH2_CHANNEL1=0, ACTUATORSETTINGS_FIXEDWINGPITCH2_CHANNEL2=1, ACTUATORSETTINGS_FIXEDWINGPITCH2_CHANNEL3=2, ACTUATORSETTINGS_FIXEDWINGPITCH2_CHANNEL4=3, ACTUATORSETTINGS_FIXEDWINGPITCH2_CHANNEL5=4, ACTUATORSETTINGS_FIXEDWINGPITCH2_CHANNEL6=5, ACTUATORSETTINGS_FIXEDWINGPITCH2_CHANNEL7=6, ACTUATORSETTINGS_FIXEDWINGPITCH2_CHANNEL8=7, ACTUATORSETTINGS_FIXEDWINGPITCH2_NONE=8 } ActuatorSettingsFixedWingPitch2Options; // Field FixedWingYaw information /* Enumeration options for field FixedWingYaw */ -typedef enum { ACTUATORSETTINGS_FIXEDWINGYAW_CHANNEL0=0, ACTUATORSETTINGS_FIXEDWINGYAW_CHANNEL1=1, ACTUATORSETTINGS_FIXEDWINGYAW_CHANNEL2=2, ACTUATORSETTINGS_FIXEDWINGYAW_CHANNEL3=3, ACTUATORSETTINGS_FIXEDWINGYAW_CHANNEL4=4, ACTUATORSETTINGS_FIXEDWINGYAW_CHANNEL5=5, ACTUATORSETTINGS_FIXEDWINGYAW_CHANNEL6=6, ACTUATORSETTINGS_FIXEDWINGYAW_CHANNEL7=7, ACTUATORSETTINGS_FIXEDWINGYAW_NONE=8 } ActuatorSettingsFixedWingYawOptions; +typedef enum { ACTUATORSETTINGS_FIXEDWINGYAW_CHANNEL1=0, ACTUATORSETTINGS_FIXEDWINGYAW_CHANNEL2=1, ACTUATORSETTINGS_FIXEDWINGYAW_CHANNEL3=2, ACTUATORSETTINGS_FIXEDWINGYAW_CHANNEL4=3, ACTUATORSETTINGS_FIXEDWINGYAW_CHANNEL5=4, ACTUATORSETTINGS_FIXEDWINGYAW_CHANNEL6=5, ACTUATORSETTINGS_FIXEDWINGYAW_CHANNEL7=6, ACTUATORSETTINGS_FIXEDWINGYAW_CHANNEL8=7, ACTUATORSETTINGS_FIXEDWINGYAW_NONE=8 } ActuatorSettingsFixedWingYawOptions; // Field FixedWingThrottle information /* Enumeration options for field FixedWingThrottle */ -typedef enum { ACTUATORSETTINGS_FIXEDWINGTHROTTLE_CHANNEL0=0, ACTUATORSETTINGS_FIXEDWINGTHROTTLE_CHANNEL1=1, ACTUATORSETTINGS_FIXEDWINGTHROTTLE_CHANNEL2=2, ACTUATORSETTINGS_FIXEDWINGTHROTTLE_CHANNEL3=3, ACTUATORSETTINGS_FIXEDWINGTHROTTLE_CHANNEL4=4, ACTUATORSETTINGS_FIXEDWINGTHROTTLE_CHANNEL5=5, ACTUATORSETTINGS_FIXEDWINGTHROTTLE_CHANNEL6=6, ACTUATORSETTINGS_FIXEDWINGTHROTTLE_CHANNEL7=7, ACTUATORSETTINGS_FIXEDWINGTHROTTLE_NONE=8 } ActuatorSettingsFixedWingThrottleOptions; +typedef enum { ACTUATORSETTINGS_FIXEDWINGTHROTTLE_CHANNEL1=0, ACTUATORSETTINGS_FIXEDWINGTHROTTLE_CHANNEL2=1, ACTUATORSETTINGS_FIXEDWINGTHROTTLE_CHANNEL3=2, ACTUATORSETTINGS_FIXEDWINGTHROTTLE_CHANNEL4=3, ACTUATORSETTINGS_FIXEDWINGTHROTTLE_CHANNEL5=4, ACTUATORSETTINGS_FIXEDWINGTHROTTLE_CHANNEL6=5, ACTUATORSETTINGS_FIXEDWINGTHROTTLE_CHANNEL7=6, ACTUATORSETTINGS_FIXEDWINGTHROTTLE_CHANNEL8=7, ACTUATORSETTINGS_FIXEDWINGTHROTTLE_NONE=8 } ActuatorSettingsFixedWingThrottleOptions; // Field VTOLMotorN information /* Enumeration options for field VTOLMotorN */ -typedef enum { ACTUATORSETTINGS_VTOLMOTORN_CHANNEL0=0, ACTUATORSETTINGS_VTOLMOTORN_CHANNEL1=1, ACTUATORSETTINGS_VTOLMOTORN_CHANNEL2=2, ACTUATORSETTINGS_VTOLMOTORN_CHANNEL3=3, ACTUATORSETTINGS_VTOLMOTORN_CHANNEL4=4, ACTUATORSETTINGS_VTOLMOTORN_CHANNEL5=5, ACTUATORSETTINGS_VTOLMOTORN_CHANNEL6=6, ACTUATORSETTINGS_VTOLMOTORN_CHANNEL7=7, ACTUATORSETTINGS_VTOLMOTORN_NONE=8 } ActuatorSettingsVTOLMotorNOptions; +typedef enum { ACTUATORSETTINGS_VTOLMOTORN_CHANNEL1=0, ACTUATORSETTINGS_VTOLMOTORN_CHANNEL2=1, ACTUATORSETTINGS_VTOLMOTORN_CHANNEL3=2, ACTUATORSETTINGS_VTOLMOTORN_CHANNEL4=3, ACTUATORSETTINGS_VTOLMOTORN_CHANNEL5=4, ACTUATORSETTINGS_VTOLMOTORN_CHANNEL6=5, ACTUATORSETTINGS_VTOLMOTORN_CHANNEL7=6, ACTUATORSETTINGS_VTOLMOTORN_CHANNEL8=7, ACTUATORSETTINGS_VTOLMOTORN_NONE=8 } ActuatorSettingsVTOLMotorNOptions; // Field VTOLMotorNE information /* Enumeration options for field VTOLMotorNE */ -typedef enum { ACTUATORSETTINGS_VTOLMOTORNE_CHANNEL0=0, ACTUATORSETTINGS_VTOLMOTORNE_CHANNEL1=1, ACTUATORSETTINGS_VTOLMOTORNE_CHANNEL2=2, ACTUATORSETTINGS_VTOLMOTORNE_CHANNEL3=3, ACTUATORSETTINGS_VTOLMOTORNE_CHANNEL4=4, ACTUATORSETTINGS_VTOLMOTORNE_CHANNEL5=5, ACTUATORSETTINGS_VTOLMOTORNE_CHANNEL6=6, ACTUATORSETTINGS_VTOLMOTORNE_CHANNEL7=7, ACTUATORSETTINGS_VTOLMOTORNE_NONE=8 } ActuatorSettingsVTOLMotorNEOptions; +typedef enum { ACTUATORSETTINGS_VTOLMOTORNE_CHANNEL1=0, ACTUATORSETTINGS_VTOLMOTORNE_CHANNEL2=1, ACTUATORSETTINGS_VTOLMOTORNE_CHANNEL3=2, ACTUATORSETTINGS_VTOLMOTORNE_CHANNEL4=3, ACTUATORSETTINGS_VTOLMOTORNE_CHANNEL5=4, ACTUATORSETTINGS_VTOLMOTORNE_CHANNEL6=5, ACTUATORSETTINGS_VTOLMOTORNE_CHANNEL7=6, ACTUATORSETTINGS_VTOLMOTORNE_CHANNEL8=7, ACTUATORSETTINGS_VTOLMOTORNE_NONE=8 } ActuatorSettingsVTOLMotorNEOptions; // Field VTOLMotorE information /* Enumeration options for field VTOLMotorE */ -typedef enum { ACTUATORSETTINGS_VTOLMOTORE_CHANNEL0=0, ACTUATORSETTINGS_VTOLMOTORE_CHANNEL1=1, ACTUATORSETTINGS_VTOLMOTORE_CHANNEL2=2, ACTUATORSETTINGS_VTOLMOTORE_CHANNEL3=3, ACTUATORSETTINGS_VTOLMOTORE_CHANNEL4=4, ACTUATORSETTINGS_VTOLMOTORE_CHANNEL5=5, ACTUATORSETTINGS_VTOLMOTORE_CHANNEL6=6, ACTUATORSETTINGS_VTOLMOTORE_CHANNEL7=7, ACTUATORSETTINGS_VTOLMOTORE_NONE=8 } ActuatorSettingsVTOLMotorEOptions; +typedef enum { ACTUATORSETTINGS_VTOLMOTORE_CHANNEL1=0, ACTUATORSETTINGS_VTOLMOTORE_CHANNEL2=1, ACTUATORSETTINGS_VTOLMOTORE_CHANNEL3=2, ACTUATORSETTINGS_VTOLMOTORE_CHANNEL4=3, ACTUATORSETTINGS_VTOLMOTORE_CHANNEL5=4, ACTUATORSETTINGS_VTOLMOTORE_CHANNEL6=5, ACTUATORSETTINGS_VTOLMOTORE_CHANNEL7=6, ACTUATORSETTINGS_VTOLMOTORE_CHANNEL8=7, ACTUATORSETTINGS_VTOLMOTORE_NONE=8 } ActuatorSettingsVTOLMotorEOptions; // Field VTOLMotorSE information /* Enumeration options for field VTOLMotorSE */ -typedef enum { ACTUATORSETTINGS_VTOLMOTORSE_CHANNEL0=0, ACTUATORSETTINGS_VTOLMOTORSE_CHANNEL1=1, ACTUATORSETTINGS_VTOLMOTORSE_CHANNEL2=2, ACTUATORSETTINGS_VTOLMOTORSE_CHANNEL3=3, ACTUATORSETTINGS_VTOLMOTORSE_CHANNEL4=4, ACTUATORSETTINGS_VTOLMOTORSE_CHANNEL5=5, ACTUATORSETTINGS_VTOLMOTORSE_CHANNEL6=6, ACTUATORSETTINGS_VTOLMOTORSE_CHANNEL7=7, ACTUATORSETTINGS_VTOLMOTORSE_NONE=8 } ActuatorSettingsVTOLMotorSEOptions; +typedef enum { ACTUATORSETTINGS_VTOLMOTORSE_CHANNEL1=0, ACTUATORSETTINGS_VTOLMOTORSE_CHANNEL2=1, ACTUATORSETTINGS_VTOLMOTORSE_CHANNEL3=2, ACTUATORSETTINGS_VTOLMOTORSE_CHANNEL4=3, ACTUATORSETTINGS_VTOLMOTORSE_CHANNEL5=4, ACTUATORSETTINGS_VTOLMOTORSE_CHANNEL6=5, ACTUATORSETTINGS_VTOLMOTORSE_CHANNEL7=6, ACTUATORSETTINGS_VTOLMOTORSE_CHANNEL8=7, ACTUATORSETTINGS_VTOLMOTORSE_NONE=8 } ActuatorSettingsVTOLMotorSEOptions; // Field VTOLMotorS information /* Enumeration options for field VTOLMotorS */ -typedef enum { ACTUATORSETTINGS_VTOLMOTORS_CHANNEL0=0, ACTUATORSETTINGS_VTOLMOTORS_CHANNEL1=1, ACTUATORSETTINGS_VTOLMOTORS_CHANNEL2=2, ACTUATORSETTINGS_VTOLMOTORS_CHANNEL3=3, ACTUATORSETTINGS_VTOLMOTORS_CHANNEL4=4, ACTUATORSETTINGS_VTOLMOTORS_CHANNEL5=5, ACTUATORSETTINGS_VTOLMOTORS_CHANNEL6=6, ACTUATORSETTINGS_VTOLMOTORS_CHANNEL7=7, ACTUATORSETTINGS_VTOLMOTORS_NONE=8 } ActuatorSettingsVTOLMotorSOptions; +typedef enum { ACTUATORSETTINGS_VTOLMOTORS_CHANNEL1=0, ACTUATORSETTINGS_VTOLMOTORS_CHANNEL2=1, ACTUATORSETTINGS_VTOLMOTORS_CHANNEL3=2, ACTUATORSETTINGS_VTOLMOTORS_CHANNEL4=3, ACTUATORSETTINGS_VTOLMOTORS_CHANNEL5=4, ACTUATORSETTINGS_VTOLMOTORS_CHANNEL6=5, ACTUATORSETTINGS_VTOLMOTORS_CHANNEL7=6, ACTUATORSETTINGS_VTOLMOTORS_CHANNEL8=7, ACTUATORSETTINGS_VTOLMOTORS_NONE=8 } ActuatorSettingsVTOLMotorSOptions; // Field VTOLMotorSW information /* Enumeration options for field VTOLMotorSW */ -typedef enum { ACTUATORSETTINGS_VTOLMOTORSW_CHANNEL0=0, ACTUATORSETTINGS_VTOLMOTORSW_CHANNEL1=1, ACTUATORSETTINGS_VTOLMOTORSW_CHANNEL2=2, ACTUATORSETTINGS_VTOLMOTORSW_CHANNEL3=3, ACTUATORSETTINGS_VTOLMOTORSW_CHANNEL4=4, ACTUATORSETTINGS_VTOLMOTORSW_CHANNEL5=5, ACTUATORSETTINGS_VTOLMOTORSW_CHANNEL6=6, ACTUATORSETTINGS_VTOLMOTORSW_CHANNEL7=7, ACTUATORSETTINGS_VTOLMOTORSW_NONE=8 } ActuatorSettingsVTOLMotorSWOptions; +typedef enum { ACTUATORSETTINGS_VTOLMOTORSW_CHANNEL1=0, ACTUATORSETTINGS_VTOLMOTORSW_CHANNEL2=1, ACTUATORSETTINGS_VTOLMOTORSW_CHANNEL3=2, ACTUATORSETTINGS_VTOLMOTORSW_CHANNEL4=3, ACTUATORSETTINGS_VTOLMOTORSW_CHANNEL5=4, ACTUATORSETTINGS_VTOLMOTORSW_CHANNEL6=5, ACTUATORSETTINGS_VTOLMOTORSW_CHANNEL7=6, ACTUATORSETTINGS_VTOLMOTORSW_CHANNEL8=7, ACTUATORSETTINGS_VTOLMOTORSW_NONE=8 } ActuatorSettingsVTOLMotorSWOptions; // Field VTOLMotorW information /* Enumeration options for field VTOLMotorW */ -typedef enum { ACTUATORSETTINGS_VTOLMOTORW_CHANNEL0=0, ACTUATORSETTINGS_VTOLMOTORW_CHANNEL1=1, ACTUATORSETTINGS_VTOLMOTORW_CHANNEL2=2, ACTUATORSETTINGS_VTOLMOTORW_CHANNEL3=3, ACTUATORSETTINGS_VTOLMOTORW_CHANNEL4=4, ACTUATORSETTINGS_VTOLMOTORW_CHANNEL5=5, ACTUATORSETTINGS_VTOLMOTORW_CHANNEL6=6, ACTUATORSETTINGS_VTOLMOTORW_CHANNEL7=7, ACTUATORSETTINGS_VTOLMOTORW_NONE=8 } ActuatorSettingsVTOLMotorWOptions; +typedef enum { ACTUATORSETTINGS_VTOLMOTORW_CHANNEL1=0, ACTUATORSETTINGS_VTOLMOTORW_CHANNEL2=1, ACTUATORSETTINGS_VTOLMOTORW_CHANNEL3=2, ACTUATORSETTINGS_VTOLMOTORW_CHANNEL4=3, ACTUATORSETTINGS_VTOLMOTORW_CHANNEL5=4, ACTUATORSETTINGS_VTOLMOTORW_CHANNEL6=5, ACTUATORSETTINGS_VTOLMOTORW_CHANNEL7=6, ACTUATORSETTINGS_VTOLMOTORW_CHANNEL8=7, ACTUATORSETTINGS_VTOLMOTORW_NONE=8 } ActuatorSettingsVTOLMotorWOptions; // Field VTOLMotorNW information /* Enumeration options for field VTOLMotorNW */ -typedef enum { ACTUATORSETTINGS_VTOLMOTORNW_CHANNEL0=0, ACTUATORSETTINGS_VTOLMOTORNW_CHANNEL1=1, ACTUATORSETTINGS_VTOLMOTORNW_CHANNEL2=2, ACTUATORSETTINGS_VTOLMOTORNW_CHANNEL3=3, ACTUATORSETTINGS_VTOLMOTORNW_CHANNEL4=4, ACTUATORSETTINGS_VTOLMOTORNW_CHANNEL5=5, ACTUATORSETTINGS_VTOLMOTORNW_CHANNEL6=6, ACTUATORSETTINGS_VTOLMOTORNW_CHANNEL7=7, ACTUATORSETTINGS_VTOLMOTORNW_NONE=8 } ActuatorSettingsVTOLMotorNWOptions; +typedef enum { ACTUATORSETTINGS_VTOLMOTORNW_CHANNEL1=0, ACTUATORSETTINGS_VTOLMOTORNW_CHANNEL2=1, ACTUATORSETTINGS_VTOLMOTORNW_CHANNEL3=2, ACTUATORSETTINGS_VTOLMOTORNW_CHANNEL4=3, ACTUATORSETTINGS_VTOLMOTORNW_CHANNEL5=4, ACTUATORSETTINGS_VTOLMOTORNW_CHANNEL6=5, ACTUATORSETTINGS_VTOLMOTORNW_CHANNEL7=6, ACTUATORSETTINGS_VTOLMOTORNW_CHANNEL8=7, ACTUATORSETTINGS_VTOLMOTORNW_NONE=8 } ActuatorSettingsVTOLMotorNWOptions; // Field ChannelUpdateFreq information /* Number of elements for field ChannelUpdateFreq */ #define ACTUATORSETTINGS_CHANNELUPDATEFREQ_NUMELEM 2 diff --git a/flight/OpenPilot/UAVObjects/inc/manualcontrolsettings.h b/flight/OpenPilot/UAVObjects/inc/manualcontrolsettings.h index 77367f48d..50d1c1695 100644 --- a/flight/OpenPilot/UAVObjects/inc/manualcontrolsettings.h +++ b/flight/OpenPilot/UAVObjects/inc/manualcontrolsettings.h @@ -99,28 +99,28 @@ typedef struct { typedef enum { MANUALCONTROLSETTINGS_INPUTMODE_PWM=0, MANUALCONTROLSETTINGS_INPUTMODE_PPM=1, MANUALCONTROLSETTINGS_INPUTMODE_SPEKTRUM=2 } ManualControlSettingsInputModeOptions; // Field Roll information /* Enumeration options for field Roll */ -typedef enum { MANUALCONTROLSETTINGS_ROLL_CHANNEL0=0, MANUALCONTROLSETTINGS_ROLL_CHANNEL1=1, MANUALCONTROLSETTINGS_ROLL_CHANNEL2=2, MANUALCONTROLSETTINGS_ROLL_CHANNEL3=3, MANUALCONTROLSETTINGS_ROLL_CHANNEL4=4, MANUALCONTROLSETTINGS_ROLL_CHANNEL5=5, MANUALCONTROLSETTINGS_ROLL_CHANNEL6=6, MANUALCONTROLSETTINGS_ROLL_CHANNEL7=7, MANUALCONTROLSETTINGS_ROLL_NONE=8 } ManualControlSettingsRollOptions; +typedef enum { MANUALCONTROLSETTINGS_ROLL_CHANNEL1=0, MANUALCONTROLSETTINGS_ROLL_CHANNEL2=1, MANUALCONTROLSETTINGS_ROLL_CHANNEL3=2, MANUALCONTROLSETTINGS_ROLL_CHANNEL4=3, MANUALCONTROLSETTINGS_ROLL_CHANNEL5=4, MANUALCONTROLSETTINGS_ROLL_CHANNEL6=5, MANUALCONTROLSETTINGS_ROLL_CHANNEL7=6, MANUALCONTROLSETTINGS_ROLL_CHANNEL8=7, MANUALCONTROLSETTINGS_ROLL_NONE=8 } ManualControlSettingsRollOptions; // Field Pitch information /* Enumeration options for field Pitch */ -typedef enum { MANUALCONTROLSETTINGS_PITCH_CHANNEL0=0, MANUALCONTROLSETTINGS_PITCH_CHANNEL1=1, MANUALCONTROLSETTINGS_PITCH_CHANNEL2=2, MANUALCONTROLSETTINGS_PITCH_CHANNEL3=3, MANUALCONTROLSETTINGS_PITCH_CHANNEL4=4, MANUALCONTROLSETTINGS_PITCH_CHANNEL5=5, MANUALCONTROLSETTINGS_PITCH_CHANNEL6=6, MANUALCONTROLSETTINGS_PITCH_CHANNEL7=7, MANUALCONTROLSETTINGS_PITCH_NONE=8 } ManualControlSettingsPitchOptions; +typedef enum { MANUALCONTROLSETTINGS_PITCH_CHANNEL1=0, MANUALCONTROLSETTINGS_PITCH_CHANNEL2=1, MANUALCONTROLSETTINGS_PITCH_CHANNEL3=2, MANUALCONTROLSETTINGS_PITCH_CHANNEL4=3, MANUALCONTROLSETTINGS_PITCH_CHANNEL5=4, MANUALCONTROLSETTINGS_PITCH_CHANNEL6=5, MANUALCONTROLSETTINGS_PITCH_CHANNEL7=6, MANUALCONTROLSETTINGS_PITCH_CHANNEL8=7, MANUALCONTROLSETTINGS_PITCH_NONE=8 } ManualControlSettingsPitchOptions; // Field Yaw information /* Enumeration options for field Yaw */ -typedef enum { MANUALCONTROLSETTINGS_YAW_CHANNEL0=0, MANUALCONTROLSETTINGS_YAW_CHANNEL1=1, MANUALCONTROLSETTINGS_YAW_CHANNEL2=2, MANUALCONTROLSETTINGS_YAW_CHANNEL3=3, MANUALCONTROLSETTINGS_YAW_CHANNEL4=4, MANUALCONTROLSETTINGS_YAW_CHANNEL5=5, MANUALCONTROLSETTINGS_YAW_CHANNEL6=6, MANUALCONTROLSETTINGS_YAW_CHANNEL7=7, MANUALCONTROLSETTINGS_YAW_NONE=8 } ManualControlSettingsYawOptions; +typedef enum { MANUALCONTROLSETTINGS_YAW_CHANNEL1=0, MANUALCONTROLSETTINGS_YAW_CHANNEL2=1, MANUALCONTROLSETTINGS_YAW_CHANNEL3=2, MANUALCONTROLSETTINGS_YAW_CHANNEL4=3, MANUALCONTROLSETTINGS_YAW_CHANNEL5=4, MANUALCONTROLSETTINGS_YAW_CHANNEL6=5, MANUALCONTROLSETTINGS_YAW_CHANNEL7=6, MANUALCONTROLSETTINGS_YAW_CHANNEL8=7, MANUALCONTROLSETTINGS_YAW_NONE=8 } ManualControlSettingsYawOptions; // Field Throttle information /* Enumeration options for field Throttle */ -typedef enum { MANUALCONTROLSETTINGS_THROTTLE_CHANNEL0=0, MANUALCONTROLSETTINGS_THROTTLE_CHANNEL1=1, MANUALCONTROLSETTINGS_THROTTLE_CHANNEL2=2, MANUALCONTROLSETTINGS_THROTTLE_CHANNEL3=3, MANUALCONTROLSETTINGS_THROTTLE_CHANNEL4=4, MANUALCONTROLSETTINGS_THROTTLE_CHANNEL5=5, MANUALCONTROLSETTINGS_THROTTLE_CHANNEL6=6, MANUALCONTROLSETTINGS_THROTTLE_CHANNEL7=7, MANUALCONTROLSETTINGS_THROTTLE_NONE=8 } ManualControlSettingsThrottleOptions; +typedef enum { MANUALCONTROLSETTINGS_THROTTLE_CHANNEL1=0, MANUALCONTROLSETTINGS_THROTTLE_CHANNEL2=1, MANUALCONTROLSETTINGS_THROTTLE_CHANNEL3=2, MANUALCONTROLSETTINGS_THROTTLE_CHANNEL4=3, MANUALCONTROLSETTINGS_THROTTLE_CHANNEL5=4, MANUALCONTROLSETTINGS_THROTTLE_CHANNEL6=5, MANUALCONTROLSETTINGS_THROTTLE_CHANNEL7=6, MANUALCONTROLSETTINGS_THROTTLE_CHANNEL8=7, MANUALCONTROLSETTINGS_THROTTLE_NONE=8 } ManualControlSettingsThrottleOptions; // Field FlightMode information /* Enumeration options for field FlightMode */ -typedef enum { MANUALCONTROLSETTINGS_FLIGHTMODE_CHANNEL0=0, MANUALCONTROLSETTINGS_FLIGHTMODE_CHANNEL1=1, MANUALCONTROLSETTINGS_FLIGHTMODE_CHANNEL2=2, MANUALCONTROLSETTINGS_FLIGHTMODE_CHANNEL3=3, MANUALCONTROLSETTINGS_FLIGHTMODE_CHANNEL4=4, MANUALCONTROLSETTINGS_FLIGHTMODE_CHANNEL5=5, MANUALCONTROLSETTINGS_FLIGHTMODE_CHANNEL6=6, MANUALCONTROLSETTINGS_FLIGHTMODE_CHANNEL7=7, MANUALCONTROLSETTINGS_FLIGHTMODE_NONE=8 } ManualControlSettingsFlightModeOptions; +typedef enum { MANUALCONTROLSETTINGS_FLIGHTMODE_CHANNEL1=0, MANUALCONTROLSETTINGS_FLIGHTMODE_CHANNEL2=1, MANUALCONTROLSETTINGS_FLIGHTMODE_CHANNEL3=2, MANUALCONTROLSETTINGS_FLIGHTMODE_CHANNEL4=3, MANUALCONTROLSETTINGS_FLIGHTMODE_CHANNEL5=4, MANUALCONTROLSETTINGS_FLIGHTMODE_CHANNEL6=5, MANUALCONTROLSETTINGS_FLIGHTMODE_CHANNEL7=6, MANUALCONTROLSETTINGS_FLIGHTMODE_CHANNEL8=7, MANUALCONTROLSETTINGS_FLIGHTMODE_NONE=8 } ManualControlSettingsFlightModeOptions; // Field Accessory1 information /* Enumeration options for field Accessory1 */ -typedef enum { MANUALCONTROLSETTINGS_ACCESSORY1_CHANNEL0=0, MANUALCONTROLSETTINGS_ACCESSORY1_CHANNEL1=1, MANUALCONTROLSETTINGS_ACCESSORY1_CHANNEL2=2, MANUALCONTROLSETTINGS_ACCESSORY1_CHANNEL3=3, MANUALCONTROLSETTINGS_ACCESSORY1_CHANNEL4=4, MANUALCONTROLSETTINGS_ACCESSORY1_CHANNEL5=5, MANUALCONTROLSETTINGS_ACCESSORY1_CHANNEL6=6, MANUALCONTROLSETTINGS_ACCESSORY1_CHANNEL7=7, MANUALCONTROLSETTINGS_ACCESSORY1_NONE=8 } ManualControlSettingsAccessory1Options; +typedef enum { MANUALCONTROLSETTINGS_ACCESSORY1_CHANNEL1=0, MANUALCONTROLSETTINGS_ACCESSORY1_CHANNEL2=1, MANUALCONTROLSETTINGS_ACCESSORY1_CHANNEL3=2, MANUALCONTROLSETTINGS_ACCESSORY1_CHANNEL4=3, MANUALCONTROLSETTINGS_ACCESSORY1_CHANNEL5=4, MANUALCONTROLSETTINGS_ACCESSORY1_CHANNEL6=5, MANUALCONTROLSETTINGS_ACCESSORY1_CHANNEL7=6, MANUALCONTROLSETTINGS_ACCESSORY1_CHANNEL8=7, MANUALCONTROLSETTINGS_ACCESSORY1_NONE=8 } ManualControlSettingsAccessory1Options; // Field Accessory2 information /* Enumeration options for field Accessory2 */ -typedef enum { MANUALCONTROLSETTINGS_ACCESSORY2_CHANNEL0=0, MANUALCONTROLSETTINGS_ACCESSORY2_CHANNEL1=1, MANUALCONTROLSETTINGS_ACCESSORY2_CHANNEL2=2, MANUALCONTROLSETTINGS_ACCESSORY2_CHANNEL3=3, MANUALCONTROLSETTINGS_ACCESSORY2_CHANNEL4=4, MANUALCONTROLSETTINGS_ACCESSORY2_CHANNEL5=5, MANUALCONTROLSETTINGS_ACCESSORY2_CHANNEL6=6, MANUALCONTROLSETTINGS_ACCESSORY2_CHANNEL7=7, MANUALCONTROLSETTINGS_ACCESSORY2_NONE=8 } ManualControlSettingsAccessory2Options; +typedef enum { MANUALCONTROLSETTINGS_ACCESSORY2_CHANNEL1=0, MANUALCONTROLSETTINGS_ACCESSORY2_CHANNEL2=1, MANUALCONTROLSETTINGS_ACCESSORY2_CHANNEL3=2, MANUALCONTROLSETTINGS_ACCESSORY2_CHANNEL4=3, MANUALCONTROLSETTINGS_ACCESSORY2_CHANNEL5=4, MANUALCONTROLSETTINGS_ACCESSORY2_CHANNEL6=5, MANUALCONTROLSETTINGS_ACCESSORY2_CHANNEL7=6, MANUALCONTROLSETTINGS_ACCESSORY2_CHANNEL8=7, MANUALCONTROLSETTINGS_ACCESSORY2_NONE=8 } ManualControlSettingsAccessory2Options; // Field Accessory3 information /* Enumeration options for field Accessory3 */ -typedef enum { MANUALCONTROLSETTINGS_ACCESSORY3_CHANNEL0=0, MANUALCONTROLSETTINGS_ACCESSORY3_CHANNEL1=1, MANUALCONTROLSETTINGS_ACCESSORY3_CHANNEL2=2, MANUALCONTROLSETTINGS_ACCESSORY3_CHANNEL3=3, MANUALCONTROLSETTINGS_ACCESSORY3_CHANNEL4=4, MANUALCONTROLSETTINGS_ACCESSORY3_CHANNEL5=5, MANUALCONTROLSETTINGS_ACCESSORY3_CHANNEL6=6, MANUALCONTROLSETTINGS_ACCESSORY3_CHANNEL7=7, MANUALCONTROLSETTINGS_ACCESSORY3_NONE=8 } ManualControlSettingsAccessory3Options; +typedef enum { MANUALCONTROLSETTINGS_ACCESSORY3_CHANNEL1=0, MANUALCONTROLSETTINGS_ACCESSORY3_CHANNEL2=1, MANUALCONTROLSETTINGS_ACCESSORY3_CHANNEL3=2, MANUALCONTROLSETTINGS_ACCESSORY3_CHANNEL4=3, MANUALCONTROLSETTINGS_ACCESSORY3_CHANNEL5=4, MANUALCONTROLSETTINGS_ACCESSORY3_CHANNEL6=5, MANUALCONTROLSETTINGS_ACCESSORY3_CHANNEL7=6, MANUALCONTROLSETTINGS_ACCESSORY3_CHANNEL8=7, MANUALCONTROLSETTINGS_ACCESSORY3_NONE=8 } ManualControlSettingsAccessory3Options; // Field Pos1StabilizationSettings information /* Enumeration options for field Pos1StabilizationSettings */ typedef enum { MANUALCONTROLSETTINGS_POS1STABILIZATIONSETTINGS_NONE=0, MANUALCONTROLSETTINGS_POS1STABILIZATIONSETTINGS_RATE=1, MANUALCONTROLSETTINGS_POS1STABILIZATIONSETTINGS_ATTITUDE=2 } ManualControlSettingsPos1StabilizationSettingsOptions; diff --git a/flight/OpenPilot/UAVObjects/inc/mixersettings.h b/flight/OpenPilot/UAVObjects/inc/mixersettings.h index 6d4af05fb..d54908986 100644 --- a/flight/OpenPilot/UAVObjects/inc/mixersettings.h +++ b/flight/OpenPilot/UAVObjects/inc/mixersettings.h @@ -41,7 +41,7 @@ #define MIXERSETTINGS_H // Object constants -#define MIXERSETTINGS_OBJID 1945801048U +#define MIXERSETTINGS_OBJID 1336817486U #define MIXERSETTINGS_NAME "MixerSettings" #define MIXERSETTINGS_METANAME "MixerSettingsMeta" #define MIXERSETTINGS_ISSINGLEINST 1 @@ -77,8 +77,6 @@ typedef struct { float DecelTime; float ThrottleCurve1[5]; float ThrottleCurve2[5]; - uint8_t Mixer0Type; - int8_t Mixer0Vector[5]; uint8_t Mixer1Type; int8_t Mixer1Vector[5]; uint8_t Mixer2Type; @@ -93,6 +91,8 @@ typedef struct { int8_t Mixer6Vector[5]; uint8_t Mixer7Type; int8_t Mixer7Vector[5]; + uint8_t Mixer8Type; + int8_t Mixer8Vector[5]; } __attribute__((packed)) MixerSettingsData; @@ -111,14 +111,6 @@ typedef enum { MIXERSETTINGS_THROTTLECURVE1_0=0, MIXERSETTINGS_THROTTLECURVE1_25 typedef enum { MIXERSETTINGS_THROTTLECURVE2_0=0, MIXERSETTINGS_THROTTLECURVE2_25=1, MIXERSETTINGS_THROTTLECURVE2_50=2, MIXERSETTINGS_THROTTLECURVE2_75=3, MIXERSETTINGS_THROTTLECURVE2_100=4 } MixerSettingsThrottleCurve2Elem; /* Number of elements for field ThrottleCurve2 */ #define MIXERSETTINGS_THROTTLECURVE2_NUMELEM 5 -// Field Mixer0Type information -/* Enumeration options for field Mixer0Type */ -typedef enum { MIXERSETTINGS_MIXER0TYPE_DISABLED=0, MIXERSETTINGS_MIXER0TYPE_MOTOR=1, MIXERSETTINGS_MIXER0TYPE_SERVO=2 } MixerSettingsMixer0TypeOptions; -// Field Mixer0Vector information -/* Array element names for field Mixer0Vector */ -typedef enum { MIXERSETTINGS_MIXER0VECTOR_THROTTLECURVE1=0, MIXERSETTINGS_MIXER0VECTOR_THROTTLECURVE2=1, MIXERSETTINGS_MIXER0VECTOR_ROLL=2, MIXERSETTINGS_MIXER0VECTOR_PITCH=3, MIXERSETTINGS_MIXER0VECTOR_YAW=4 } MixerSettingsMixer0VectorElem; -/* Number of elements for field Mixer0Vector */ -#define MIXERSETTINGS_MIXER0VECTOR_NUMELEM 5 // Field Mixer1Type information /* Enumeration options for field Mixer1Type */ typedef enum { MIXERSETTINGS_MIXER1TYPE_DISABLED=0, MIXERSETTINGS_MIXER1TYPE_MOTOR=1, MIXERSETTINGS_MIXER1TYPE_SERVO=2 } MixerSettingsMixer1TypeOptions; @@ -175,6 +167,14 @@ typedef enum { MIXERSETTINGS_MIXER7TYPE_DISABLED=0, MIXERSETTINGS_MIXER7TYPE_MOT typedef enum { MIXERSETTINGS_MIXER7VECTOR_THROTTLECURVE1=0, MIXERSETTINGS_MIXER7VECTOR_THROTTLECURVE2=1, MIXERSETTINGS_MIXER7VECTOR_ROLL=2, MIXERSETTINGS_MIXER7VECTOR_PITCH=3, MIXERSETTINGS_MIXER7VECTOR_YAW=4 } MixerSettingsMixer7VectorElem; /* Number of elements for field Mixer7Vector */ #define MIXERSETTINGS_MIXER7VECTOR_NUMELEM 5 +// Field Mixer8Type information +/* Enumeration options for field Mixer8Type */ +typedef enum { MIXERSETTINGS_MIXER8TYPE_DISABLED=0, MIXERSETTINGS_MIXER8TYPE_MOTOR=1, MIXERSETTINGS_MIXER8TYPE_SERVO=2 } MixerSettingsMixer8TypeOptions; +// Field Mixer8Vector information +/* Array element names for field Mixer8Vector */ +typedef enum { MIXERSETTINGS_MIXER8VECTOR_THROTTLECURVE1=0, MIXERSETTINGS_MIXER8VECTOR_THROTTLECURVE2=1, MIXERSETTINGS_MIXER8VECTOR_ROLL=2, MIXERSETTINGS_MIXER8VECTOR_PITCH=3, MIXERSETTINGS_MIXER8VECTOR_YAW=4 } MixerSettingsMixer8VectorElem; +/* Number of elements for field Mixer8Vector */ +#define MIXERSETTINGS_MIXER8VECTOR_NUMELEM 5 // Generic interface functions diff --git a/flight/OpenPilot/UAVObjects/inc/mixerstatus.h b/flight/OpenPilot/UAVObjects/inc/mixerstatus.h index 570aa5e0f..cd8a1f4f7 100644 --- a/flight/OpenPilot/UAVObjects/inc/mixerstatus.h +++ b/flight/OpenPilot/UAVObjects/inc/mixerstatus.h @@ -41,7 +41,7 @@ #define MIXERSTATUS_H // Object constants -#define MIXERSTATUS_OBJID 2468388390U +#define MIXERSTATUS_OBJID 4137893648U #define MIXERSTATUS_NAME "MixerStatus" #define MIXERSTATUS_METANAME "MixerStatusMeta" #define MIXERSTATUS_ISSINGLEINST 1 @@ -71,7 +71,6 @@ // Object data typedef struct { - float Mixer0; float Mixer1; float Mixer2; float Mixer3; @@ -79,11 +78,11 @@ typedef struct { float Mixer5; float Mixer6; float Mixer7; + float Mixer8; } __attribute__((packed)) MixerStatusData; // Field information -// Field Mixer0 information // Field Mixer1 information // Field Mixer2 information // Field Mixer3 information @@ -91,6 +90,7 @@ typedef struct { // Field Mixer5 information // Field Mixer6 information // Field Mixer7 information +// Field Mixer8 information // Generic interface functions diff --git a/flight/OpenPilot/UAVObjects/mixersettings.c b/flight/OpenPilot/UAVObjects/mixersettings.c index 43f267dde..a71e77787 100644 --- a/flight/OpenPilot/UAVObjects/mixersettings.c +++ b/flight/OpenPilot/UAVObjects/mixersettings.c @@ -94,12 +94,6 @@ static void setDefaults(UAVObjHandle obj, uint16_t instId) data.ThrottleCurve2[2] = 0.5; data.ThrottleCurve2[3] = 0.75; data.ThrottleCurve2[4] = 1; - data.Mixer0Type = 0; - data.Mixer0Vector[0] = 0; - data.Mixer0Vector[1] = 0; - data.Mixer0Vector[2] = 0; - data.Mixer0Vector[3] = 0; - data.Mixer0Vector[4] = 0; data.Mixer1Type = 0; data.Mixer1Vector[0] = 0; data.Mixer1Vector[1] = 0; @@ -142,6 +136,12 @@ static void setDefaults(UAVObjHandle obj, uint16_t instId) data.Mixer7Vector[2] = 0; data.Mixer7Vector[3] = 0; data.Mixer7Vector[4] = 0; + data.Mixer8Type = 0; + data.Mixer8Vector[0] = 0; + data.Mixer8Vector[1] = 0; + data.Mixer8Vector[2] = 0; + data.Mixer8Vector[3] = 0; + data.Mixer8Vector[4] = 0; UAVObjSetInstanceData(obj, instId, &data); diff --git a/ground/src/plugins/config/airframe.ui b/ground/src/plugins/config/airframe.ui index aa2793d7f..f49a33e41 100644 --- a/ground/src/plugins/config/airframe.ui +++ b/ground/src/plugins/config/airframe.ui @@ -1,2253 +1,2247 @@ - - - AircraftWidget - - - - 0 - 0 - 730 - 559 - - - - Form - - - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - 5 - - - - - - - Aircraft type: - - - - - - - - 10 - - - - Select aircraft type here - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - Qt::Horizontal - - - - - - - 2 - - - - true - - - false - - - - - - - - - - - 0 - 0 - - - - Airplane type: - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 75 - true - - - - Mixer OK - - - - - - - - - Channel Assignment - - - - - - - - - QFormLayout::AllNonFixedFieldsGrow - - - - - Engine - - - - - - - - - - - 60 - 0 - - - - Aileron 1 - - - - - - - - - - false - - - - 60 - 0 - - - - Aileron 2 - - - - - - - - 67 - 0 - - - - Elevator 1 - - - - - - - - - - Rudder - - - - - - - - - - false - - - - - - - false - - - - 67 - 0 - - - - Elevator 2 - - - - - - - false - - - - - - - - - Elevon Mix - - - - - - - - - - - 65 - 0 - - - - Rudder % - - - - - - - 100 - - - 50 - - - Qt::Vertical - - - - - - - 50 - - - - - - - - - - - - 50 - 0 - - - - Pitch % - - - - - - - 100 - - - 50 - - - Qt::Vertical - - - - - - - 50 - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - Throttle Curve - - - - - - - Reset - - - - - - - - - - 0 - 0 - - - - - 100 - 100 - - - - - 200 - 200 - - - - - 10 - 10 - - - - - - - - Val: 0.00 - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - - - - - - - Frame type: - - - - - - - Select the Multirotor frame type here. - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 75 - true - - - - Mixer OK - - - - - - - - - - - - - - 75 - true - - - - Mix Level - - - - - - - - - - - 100 - - - Qt::AlignCenter - - - - - - - Weight of Roll mixing in percent. -Typical values are 100% for + configuration and 50% for X configuration on quads. - - - 100 - - - 100 - - - Qt::Vertical - - - - - - - R - - - Qt::AlignCenter - - - - - - - - - - - 100 - - - Qt::AlignCenter - - - - - - - Weight of Pitch mixing in percent. -Typical values are 100% for + configuration and 50% for X configuration on quads. - - - 100 - - - 100 - - - Qt::Vertical - - - - - - - P - - - Qt::AlignCenter - - - - - - - - - - - 50 - - - Qt::AlignCenter - - - - - - - Weight of Yaw mixing in percent. -Typical value is 50% for + or X configuration on quads. - - - 100 - - - 50 - - - Qt::Vertical - - - - - - - false - - - Y - - - Qt::AlignCenter - - - - - - - - - - - - - - - - 75 - true - - - - Feed Forward - - - - - - - QFormLayout::AllNonFixedFieldsGrow - - - - - - - FeedForward - - - - - - - - 30 - 0 - - - - 000 - - - - - - - - - true - - - Overall level of feed forward (in percentage). - - - 100 - - - 1 - - - Qt::Horizontal - - - QSlider::NoTicks - - - - - - - Accel Time Constant - - - - - - - true - - - In miliseconds. -When tuning: Slowly raise accel time from zero to just -under the level where the motor starts to overshoot -its target speed. - - - 3 - - - 100.000000000000000 - - - 0.010000000000000 - - - - - - - Decel Time Constant - - - - - - - true - - - When tuning: Slowly raise decel time from zero to just -under the level where the motor starts to undershoot -its target speed when decelerating. - -Do it after accel time is setup. - - - 3 - - - 100.000000000000000 - - - 0.010000000000000 - - - - - - - - - MaxAccel - - - - - - - 1000 - - - - - - - - - Limits how much the engines can accelerate or decelerate. -In 'units per second', a sound default is 1000. - - - 500 - - - 2000 - - - 1000 - - - Qt::Horizontal - - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">Beware! Check </span><span style=" font-family:'Sans'; font-size:10pt; font-weight:600;">all three</span><span style=" font-family:'Sans'; font-size:10pt;"> checkboxes to test Feed Forward.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">It will run only if your airframe armed.</span></p></body></html> - - - - - - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">Beware! Check </span><span style=" font-family:'Sans'; font-size:10pt; font-weight:600;">all three</span><span style=" font-family:'Sans'; font-size:10pt;"> checkboxes to test Feed Forward.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">It will run only if your airframe armed.</span></p></body></html> - - - - - - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">Beware! Check </span><span style=" font-family:'Sans'; font-size:10pt; font-weight:600;">all three</span><span style=" font-family:'Sans'; font-size:10pt;"> checkboxes to test Feed Forward.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">It will run only if your airframe armed.</span></p></body></html> - - - Enable FF tuning - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - 0 - 0 - - - - - 0 - 40 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:10pt; font-weight:600;">Beware</span><span style=" font-family:'Ubuntu'; font-size:10pt;">: Feed Forward Tuning will launch all engines around mid-throttle, you have been warned!</span></p></body></html> - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - QLayout::SetDefaultConstraint - - - - - - - Throttle Curve - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 0 - 0 - - - - - 10 - - - - Reset - - - - - - - - - - 0 - 0 - - - - - 110 - 110 - - - - - - - - Val: 0.00 - - - - - - - - - - - - - - - Cyclic Rate - - - - - - - false - - - - 0 - 0 - - - - - 40 - 0 - - - - - - - - Tricopter Yaw Ch - - - - - - - false - - - - 0 - 0 - - - - - 40 - 0 - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - Motors - - - - 1 - - - 1 - - - - - QFormLayout::AllNonFixedFieldsGrow - - - 3 - - - - - 1 - - - - - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Assign your motor channels using the drawing</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">on the right as a reference. Respect propeller rotation!</p></body></html> - - - - - - - 2 - - - - - - - - 8 - - - - - - - - 3 - - - - - - - - 8 - - - - - - - - 4 - - - - - - - - 8 - - - - - - - - - - QFormLayout::AllNonFixedFieldsGrow - - - 3 - - - - - 5 - - - - - - - false - - - - 0 - 0 - - - - - 8 - - - - - - - - 6 - - - - - - - false - - - - 8 - - - - - - - - 7 - - - - - - - false - - - - 8 - - - - - - - - 8 - - - - - - - false - - - - 8 - - - - - - - - - - - - - - 0 - 0 - - - - - 110 - 110 - - - - - - - - - - - - - - 0 - - - 0 - - - - - 0 - - - - - - - - - - - - - - 2 - - - - - - - - - - - - 9 - - - - Throttle Curve 1 - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 9 - - - - Reset - - - - - - - - - - 0 - 0 - - - - - 100 - 100 - - - - - 200 - 200 - - - - - - - - Val: 0.00 - - - - - - - - - - - - - - 9 - - - - Throttle Curve 2 - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 9 - - - - Reset - - - - - - - - - - 0 - 0 - - - - - 100 - 100 - - - - - 200 - 200 - - - - - - - - Val: 0.00 - - - - - - - - - - - - - FeedForward - - - - - - - - 30 - 0 - - - - 000 - - - - - - - - - 100 - - - Qt::Horizontal - - - - - - - AccelTime - - - - - - - - - - DecelTime - - - - - - - - - - - - MaxAccel - - - - - - - 1000 - - - - - - - - - 500 - - - 2000 - - - 1000 - - - Qt::Horizontal - - - - - - - - - - - - 0 - 0 - - - - - 8 - - - - true - - - 50 - - - false - - - false - - - 50 - - - - Type - - - - - Curve 1 - - - - - Curve 2 - - - - - Roll - - - - - Pitch - - - - - Yaw - - - - - Ch 0 - - - - - Ch 1 - - - - - Ch 2 - - - - - Ch 3 - - - - - Ch 4 - - - - - Ch 5 - - - - - Ch 6 - - - - - Ch 7 - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Retrieve settings from OpenPilot - - - Get Current - - - - - - - Send to OpenPilot but don't write in SD. - - - Save to RAM - - - - - - - Applies and Saves all settings to SD - - - Save to SD - - - - - - - - - - - - - MixerCurveWidget - QWidget -
mixercurvewidget.h
- 1 -
- - ConfigccpmWidget - QWidget -
configccpmwidget.h
- 1 -
-
- - - - elevonSlider2 - valueChanged(int) - label_25 - setNum(int) - - - 97 - 100 - - - 97 - 100 - - - - - elevonSlider1 - valueChanged(int) - label_18 - setNum(int) - - - 93 - 100 - - - 93 - 100 - - - - - feedForwardSlider - valueChanged(int) - feedForwardValue - setNum(int) - - - 118 - 91 - - - 118 - 91 - - - - - maxAccelSlider - valueChanged(int) - label_33 - setNum(int) - - - 118 - 91 - - - 118 - 91 - - - - - mrPitchMixLevel - valueChanged(int) - label_44 - setNum(int) - - - 95 - 91 - - - 99 - 91 - - - - - mrYawMixLevel - valueChanged(int) - label_45 - setNum(int) - - - 118 - 91 - - - 118 - 91 - - - - - mrRollMixLevel - valueChanged(int) - label_43 - setNum(int) - - - 58 - 91 - - - 62 - 91 - - - - - customFFSlider - valueChanged(int) - customFeedForwardValue - setNum(int) - - - 641 - 86 - - - 584 - 87 - - - - - customFFMaxAccel - valueChanged(int) - label_OSD - setNum(int) - - - 664 - 189 - - - 569 - 191 - - - - -
+ + + AircraftWidget + + + + 0 + 0 + 730 + 559 + + + + Form + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 5 + + + + + + + Aircraft type: + + + + + + + + 10 + + + + Select aircraft type here + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Qt::Horizontal + + + + + + + 0 + + + + true + + + false + + + + + + + + + + + 0 + 0 + + + + Airplane type: + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 75 + true + + + + Mixer OK + + + + + + + + + Channel Assignment + + + + + + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + Engine + + + + + + + + + + + 60 + 0 + + + + Aileron 1 + + + + + + + + + + false + + + + 60 + 0 + + + + Aileron 2 + + + + + + + + 67 + 0 + + + + Elevator 1 + + + + + + + + + + Rudder + + + + + + + + + + false + + + + + + + false + + + + 67 + 0 + + + + Elevator 2 + + + + + + + false + + + + + + + + + Elevon Mix + + + + + + + + + + + 65 + 0 + + + + Rudder % + + + + + + + 100 + + + 50 + + + Qt::Vertical + + + + + + + 50 + + + + + + + + + + + + 50 + 0 + + + + Pitch % + + + + + + + 100 + + + 50 + + + Qt::Vertical + + + + + + + 50 + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Throttle Curve + + + + + + + Reset + + + + + + + + + + 0 + 0 + + + + + 100 + 100 + + + + + 200 + 200 + + + + + 10 + 10 + + + + + + + + Val: 0.00 + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + + + + + Frame type: + + + + + + + Select the Multirotor frame type here. + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 75 + true + + + + Mixer OK + + + + + + + + + + + + + + 75 + true + + + + Mix Level + + + + + + + + + + + 100 + + + Qt::AlignCenter + + + + + + + Weight of Roll mixing in percent. +Typical values are 100% for + configuration and 50% for X configuration on quads. + + + 100 + + + 100 + + + Qt::Vertical + + + + + + + R + + + Qt::AlignCenter + + + + + + + + + + + 100 + + + Qt::AlignCenter + + + + + + + Weight of Pitch mixing in percent. +Typical values are 100% for + configuration and 50% for X configuration on quads. + + + 100 + + + 100 + + + Qt::Vertical + + + + + + + P + + + Qt::AlignCenter + + + + + + + + + + + 50 + + + Qt::AlignCenter + + + + + + + Weight of Yaw mixing in percent. +Typical value is 50% for + or X configuration on quads. + + + 100 + + + 50 + + + Qt::Vertical + + + + + + + false + + + Y + + + Qt::AlignCenter + + + + + + + + + + + + + + + + 75 + true + + + + Feed Forward + + + + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + + + FeedForward + + + + + + + + 30 + 0 + + + + 000 + + + + + + + + + true + + + Overall level of feed forward (in percentage). + + + 100 + + + 1 + + + Qt::Horizontal + + + QSlider::NoTicks + + + + + + + Accel Time Constant + + + + + + + true + + + In miliseconds. +When tuning: Slowly raise accel time from zero to just +under the level where the motor starts to overshoot +its target speed. + + + 3 + + + 100.000000000000000 + + + 0.010000000000000 + + + + + + + Decel Time Constant + + + + + + + true + + + When tuning: Slowly raise decel time from zero to just +under the level where the motor starts to undershoot +its target speed when decelerating. + +Do it after accel time is setup. + + + 3 + + + 100.000000000000000 + + + 0.010000000000000 + + + + + + + + + MaxAccel + + + + + + + 1000 + + + + + + + + + Limits how much the engines can accelerate or decelerate. +In 'units per second', a sound default is 1000. + + + 500 + + + 2000 + + + 1000 + + + Qt::Horizontal + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">Beware! Check </span><span style=" font-family:'Sans'; font-size:10pt; font-weight:600;">all three</span><span style=" font-family:'Sans'; font-size:10pt;"> checkboxes to test Feed Forward.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">It will run only if your airframe armed.</span></p></body></html> + + + + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">Beware! Check </span><span style=" font-family:'Sans'; font-size:10pt; font-weight:600;">all three</span><span style=" font-family:'Sans'; font-size:10pt;"> checkboxes to test Feed Forward.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">It will run only if your airframe armed.</span></p></body></html> + + + + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">Beware! Check </span><span style=" font-family:'Sans'; font-size:10pt; font-weight:600;">all three</span><span style=" font-family:'Sans'; font-size:10pt;"> checkboxes to test Feed Forward.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">It will run only if your airframe armed.</span></p></body></html> + + + Enable FF tuning + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + 0 + 0 + + + + + 0 + 40 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt; font-weight:600;">Beware</span><span style=" font-size:10pt;">: Feed Forward Tuning will launch all engines around mid-throttle, you have been warned!</span></p></body></html> + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + QLayout::SetDefaultConstraint + + + + + + + Throttle Curve + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 10 + + + + Reset + + + + + + + + + + 0 + 0 + + + + + 110 + 110 + + + + + + + + Val: 0.00 + + + + + + + + + + + + + + + Cyclic Rate + + + + + + + false + + + + 0 + 0 + + + + + 40 + 0 + + + + + + + + Tricopter Yaw Ch + + + + + + + false + + + + 0 + 0 + + + + + 40 + 0 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + Motors + + + + 1 + + + 1 + + + + + QFormLayout::AllNonFixedFieldsGrow + + + 3 + + + + + 1 + + + + + + + + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Assign your motor channels using the drawing</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">on the right as a reference. Respect propeller rotation!</p></body></html> + + + + + + + 2 + + + + + + + + 8 + + + + + + + + 3 + + + + + + + + 8 + + + + + + + + 4 + + + + + + + + 8 + + + + + + + + + + QFormLayout::AllNonFixedFieldsGrow + + + 3 + + + + + 5 + + + + + + + false + + + + 0 + 0 + + + + + 8 + + + + + + + + 6 + + + + + + + false + + + + 8 + + + + + + + + 7 + + + + + + + false + + + + 8 + + + + + + + + 8 + + + + + + + false + + + + 8 + + + + + + + + + + + + + + 0 + 0 + + + + + 110 + 110 + + + + + + + + + + + + + + 0 + + + 0 + + + + + 0 + + + + + + + + + + + + + + 2 + + + + + + + + + + + + 9 + + + + Throttle Curve 1 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 9 + + + + Reset + + + + + + + + + + 0 + 0 + + + + + 100 + 100 + + + + + 200 + 200 + + + + + + + + Val: 0.00 + + + + + + + + + + + + + + 9 + + + + Throttle Curve 2 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 9 + + + + Reset + + + + + + + + + + 0 + 0 + + + + + 100 + 100 + + + + + 200 + 200 + + + + + + + + Val: 0.00 + + + + + + + + + + + + + FeedForward + + + + + + + + 30 + 0 + + + + 000 + + + + + + + + + 100 + + + Qt::Horizontal + + + + + + + AccelTime + + + + + + + + + + DecelTime + + + + + + + + + + + + MaxAccel + + + + + + + 1000 + + + + + + + + + 500 + + + 2000 + + + 1000 + + + Qt::Horizontal + + + + + + + + + + + + 0 + 0 + + + + + 8 + + + + true + + + 50 + + + false + + + + Type + + + + + Curve 1 + + + + + Curve 2 + + + + + Roll + + + + + Pitch + + + + + Yaw + + + + + Ch 1 + + + + + Ch 2 + + + + + Ch 3 + + + + + Ch 4 + + + + + Ch 5 + + + + + Ch 6 + + + + + Ch 7 + + + + + Ch 8 + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Retrieve settings from OpenPilot + + + Get Current + + + + + + + Send to OpenPilot but don't write in SD. + + + Save to RAM + + + + + + + Applies and Saves all settings to SD + + + Save to SD + + + + + + + + + + + + + MixerCurveWidget + QWidget +
mixercurvewidget.h
+ 1 +
+ + ConfigccpmWidget + QWidget +
configccpmwidget.h
+ 1 +
+
+ + + + elevonSlider2 + valueChanged(int) + label_25 + setNum(int) + + + 97 + 100 + + + 97 + 100 + + + + + elevonSlider1 + valueChanged(int) + label_18 + setNum(int) + + + 93 + 100 + + + 93 + 100 + + + + + feedForwardSlider + valueChanged(int) + feedForwardValue + setNum(int) + + + 118 + 91 + + + 118 + 91 + + + + + maxAccelSlider + valueChanged(int) + label_33 + setNum(int) + + + 118 + 91 + + + 118 + 91 + + + + + mrPitchMixLevel + valueChanged(int) + label_44 + setNum(int) + + + 95 + 91 + + + 99 + 91 + + + + + mrYawMixLevel + valueChanged(int) + label_45 + setNum(int) + + + 118 + 91 + + + 118 + 91 + + + + + mrRollMixLevel + valueChanged(int) + label_43 + setNum(int) + + + 58 + 91 + + + 62 + 91 + + + + + customFFSlider + valueChanged(int) + customFeedForwardValue + setNum(int) + + + 641 + 86 + + + 584 + 87 + + + + + customFFMaxAccel + valueChanged(int) + label_OSD + setNum(int) + + + 664 + 189 + + + 569 + 191 + + + + +
diff --git a/ground/src/plugins/config/ccpm.ui b/ground/src/plugins/config/ccpm.ui index 9d6fdc1ca..a25ea3009 100644 --- a/ground/src/plugins/config/ccpm.ui +++ b/ground/src/plugins/config/ccpm.ui @@ -1,2535 +1,2517 @@ - - - ccpmWidget - - - - 0 - 0 - 660 - 572 - - - - - 0 - 0 - - - - - 300 - 300 - - - - Form - - - false - - - - - - - - QFormLayout::AllNonFixedFieldsGrow - - - 0 - - - - - Swashplate config: - - - - - - - - 10 - - - - Select aircraft type here - - - - - - - - - - 0 - 0 - - - - - 400 - 300 - - - - 0 - - - - Basic settings - - - - 0 - - - 2 - - - - - - - - - - 0 - 0 - - - - Outputs - - - - 3 - - - 2 - - - 3 - - - - - - 0 - 0 - - - - - 85 - 0 - - - - - 85 - 16777215 - - - - - - - - - 0 - 0 - - - - - 85 - 0 - - - - - 85 - 16777215 - - - - - - - - - 0 - 0 - - - - - 80 - 0 - - - - - 80 - 16777215 - - - - Tail Rotor - - - - - - - - 0 - 0 - - - - - 80 - 0 - - - - - 80 - 16777215 - - - - Engine - - - - - - - - - - - 0 - 0 - - - - Swashplate Outputs - - - - 3 - - - 2 - - - 3 - - - - - true - - - - 1 - 1 - - - - - 80 - 0 - - - - - 80 - 16777215 - - - - Servo W - - - - - - - true - - - - 0 - 0 - - - - - 85 - 0 - - - - - 85 - 16777215 - - - - - - - - - 0 - 0 - - - - - 85 - 0 - - - - - 85 - 16777215 - - - - - - - - true - - - - 0 - 0 - - - - - 85 - 0 - - - - - 85 - 16777215 - - - - - - - - - 1 - 1 - - - - - 80 - 0 - - - - - 80 - 16777215 - - - - Servo X - - - - - - - - 0 - 0 - - - - - 85 - 0 - - - - - 85 - 16777215 - - - - - Front - - - - - Right - - - - - Rear - - - - - Left - - - - - - - - - 1 - 1 - - - - - 80 - 0 - - - - - 80 - 16777215 - - - - Single Servo - - - - - - - - 0 - 0 - - - - - 85 - 0 - - - - - 85 - 16777215 - - - - - - - - - 1 - 1 - - - - - 80 - 0 - - - - - 80 - 16777215 - - - - Servo Z - - - - - - - true - - - - 1 - 1 - - - - - 80 - 0 - - - - - 80 - 16777215 - - - - Servo Y - - - - - - - - - - - 0 - 0 - - - - - 70 - 0 - - - - Swashplate Servo Angles - - - - 3 - - - 2 - - - 3 - - - - - - 0 - 0 - - - - - 85 - 0 - - - - - 85 - 16777215 - - - - 0 - - - 360.000000000000000 - - - 15.000000000000000 - - - - - - - true - - - - 0 - 0 - - - - - 80 - 0 - - - - - 80 - 16777215 - - - - Angle W - - - - - - - - 0 - 0 - - - - - 80 - 0 - - - - - 80 - 16777215 - - - - Angle X - - - - - - - true - - - - 0 - 0 - - - - - 80 - 0 - - - - - 80 - 16777215 - - - - Angle Y - - - - - - - - 0 - 0 - - - - - 80 - 0 - - - - - 80 - 16777215 - - - - Angle Z - - - - - - - true - - - - 0 - 0 - - - - - 80 - 0 - - - - - 80 - 16777215 - - - - CorrectionAngle - - - - - - - - 0 - 0 - - - - - 85 - 0 - - - - - 85 - 16777215 - - - - 0 - - - 360.000000000000000 - - - 15.000000000000000 - - - - - - - true - - - - 0 - 0 - - - - - 85 - 0 - - - - - 85 - 16777215 - - - - 0 - - - 360.000000000000000 - - - 15.000000000000000 - - - - - - - - 0 - 0 - - - - - 85 - 0 - - - - - 85 - 16777215 - - - - 0 - - - 360.000000000000000 - - - 15.000000000000000 - - - - - - - - 0 - 0 - - - - - 85 - 0 - - - - - 85 - 16777215 - - - - 0 - - - 360.000000000000000 - - - 15.000000000000000 - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - true - - - - 0 - 0 - - - - - 50 - 100 - - - - - 50 - 400 - - - - - 8 - - - - CCPM - - - Qt::AlignCenter - - - - 0 - - - 3 - - - - - true - - - - 7 - - - - Collective - - - true - - - Qt::AlignCenter - - - - - - - - - Qt::Horizontal - - - - 5 - 25 - - - - - - - - true - - - - 0 - 0 - - - - - 0 - 100 - - - - 100 - - - 5 - - - 50 - - - Qt::Vertical - - - - - - - Qt::Horizontal - - - - 5 - 25 - - - - - - - - - - true - - - - 7 - - - - Cyclic - - - Qt::AlignCenter - - - - - - - 100 - - - 5 - - - 50 - - - - - - - - - - - 0 - 0 - - - - - 50 - 100 - - - - - 400 - 400 - - - - REVO - - - - 0 - - - 3 - - - - - false - - - - 7 - - - - 100% - - - Qt::AlignCenter - - - - - - - - - Qt::Horizontal - - - - 5 - 25 - - - - - - - - false - - - - 0 - 0 - - - - - 0 - 100 - - - - 100 - - - 5 - - - Qt::Vertical - - - - - - - Qt::Horizontal - - - - 5 - 25 - - - - - - - - - - false - - - - 7 - - - - 0% - - - Qt::AlignCenter - - - - - - - - - - - - - - - - - - 1 - 1 - - - - - 200 - 200 - - - - - 600 - 600 - - - - - 10 - 10 - - - - - 200 - 200 - - - - Swashplate Layout - - - Qt::AlignHCenter|Qt::AlignTop - - - false - - - false - - - - 3 - - - 3 - - - - - Qt::Vertical - - - - - 1 - 1 - - - - - 200 - 200 - - - - - 500 - 500 - - - - - 10 - 10 - - - - - 200 - 200 - - - - QFrame::NoFrame - - - QFrame::Plain - - - 0 - - - Qt::ScrollBarAlwaysOn - - - Qt::ScrollBarAlwaysOn - - - - - 220 - 220 - 220 - - - - - - - 0 - 0 - 0 - - - - - Qt::AlignHCenter|Qt::AlignTop - - - QGraphicsView::AnchorViewCenter - - - - - - - - - - - - - - - - Curve settings - - - - 0 - - - 2 - - - - - 4 - - - - - - - - 150 - 0 - - - - - 10 - - - - Select aircraft type here - - - - Linear - - - - - Flat - - - - - Step - - - - - Exp - - - - - Log - - - - - Custom - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 0 - 0 - - - - Number of points - - - - - - - - 0 - 0 - - - - 2 - - - 10 - - - 5 - - - - - - - - - - - Min - - - - - - - Max - - - - - - - Step point - - - - - - - 1 - - - 10.000000000000000 - - - - - - - 1 - - - 10.000000000000000 - - - 1.000000000000000 - - - - - - - 1 - - - 100.000000000000000 - - - 50.000000000000000 - - - - - - - - - - - - 0 - 0 - - - - - 150 - 0 - - - - - 10 - - - - Select aircraft type here - - - - Throttle - - - - - Pitch - - - - - - - - - 0 - 0 - - - - - 150 - 0 - - - - Generate curves based on settings - - - <-- Generate Curve - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - - - 0 - 0 - - - - - 142 - 148 - - - - - 250 - 273 - - - - - 8 - - - - Qt::ScrollBarAsNeeded - - - Qt::ScrollBarAsNeeded - - - true - - - true - - - true - - - true - - - true - - - 25 - - - 25 - - - 25 - - - true - - - true - - - 25 - - - - 0% - - - - - 25% - - - - - 50% - - - - - 75% - - - - - 100% - - - - - none - - - - - none - - - - - none - - - - - none - - - - - none - - - - - Throttle Curve - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - Blade Pitch Curve - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - 0.000 - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - 0.000 - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - 0.250 - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - 0.250 - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - 0.500 - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - 0.500 - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - 0.750 - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - 0.750 - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - 1.000 - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - 1.000 - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - Qt::Vertical - - - QSizePolicy::Preferred - - - - 20 - 40 - - - - - - - - - - - - - - - 1 - 1 - - - - - 0 - 0 - - - - - 10 - 10 - - - - - 100 - 100 - - - - Qt::LeftToRight - - - Throttle Curve - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - false - - - - 0 - - - 0 - - - - - - 1 - 1 - - - - - 50 - 50 - - - - - 1000 - 1000 - - - - - 10 - 10 - - - - - 200 - 200 - - - - - - - - - - - - 1 - 1 - - - - - 10 - 10 - - - - - 100 - 100 - - - - Pitch Curve - - - - 0 - - - 0 - - - - - - 1 - 1 - - - - - 50 - 50 - - - - - 1000 - 1000 - - - - - 10 - 10 - - - - - 200 - 200 - - - - - - - - - - - - - Qt::Vertical - - - QSizePolicy::Preferred - - - - 20 - 40 - - - - - - - - - - - - - - - Advanced settings - - - - 0 - - - - - - 0 - 0 - - - - - 0 - 200 - - - - - 1000 - 203 - - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - true - - - true - - - QAbstractItemView::NoSelection - - - false - - - true - - - 75 - - - 20 - - - 20 - - - 75 - - - - Engine - - - - - Tail Rotor - - - - - Servo W - - - - - Servo X - - - - - Servo Y - - - - - Servo Z - - - - - Channel - - - - - Curve 1 - - - - - Curve 2 - - - - - Roll - - - - - Pitch - - - - - Yaw - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - - AlignHCenter|AlignVCenter|AlignCenter - - - - - - - - Qt::Vertical - - - QSizePolicy::MinimumExpanding - - - - 20 - 40 - - - - - - - - - - - - - - - MixerCurveWidget - QWidget -
mixercurvewidget.h
- 1 -
-
- - TabObject - ccpmType - ccpmCollectivespinBox - ccpmRevoSlider - ccpmREVOspinBox - SwashplateImage - CurveType - CurveValue1 - CurveValue2 - CurveValue3 - ccpmAdvancedSettingsTable - - - - - ccpmCollectiveSlider - sliderMoved(int) - ccpmCollectivespinBox - setValue(int) - - - 246 - 309 - - - 259 - 467 - - - - - ccpmCollectivespinBox - valueChanged(int) - ccpmCollectiveSlider - setValue(int) - - - 259 - 467 - - - 243 - 391 - - - - - ccpmREVOspinBox - valueChanged(int) - ccpmRevoSlider - setValue(int) - - - 344 - 467 - - - 326 - 393 - - - - - ccpmRevoSlider - sliderMoved(int) - ccpmREVOspinBox - setValue(int) - - - 303 - 222 - - - 344 - 467 - - - - -
+ + + ccpmWidget + + + + 0 + 0 + 660 + 572 + + + + + 0 + 0 + + + + + 300 + 300 + + + + Form + + + false + + + + + + + + QFormLayout::AllNonFixedFieldsGrow + + + 0 + + + + + Swashplate config: + + + + + + + + 10 + + + + Select aircraft type here + + + + + + + + + + 0 + 0 + + + + + 400 + 300 + + + + 0 + + + + Basic settings + + + + 0 + + + 2 + + + + + + + + + + 0 + 0 + + + + Outputs + + + + 3 + + + 2 + + + 3 + + + + + + 0 + 0 + + + + + 85 + 0 + + + + + 85 + 16777215 + + + + + + + + + 0 + 0 + + + + + 85 + 0 + + + + + 85 + 16777215 + + + + + + + + + 0 + 0 + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + Tail Rotor + + + + + + + + 0 + 0 + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + Engine + + + + + + + + + + + 0 + 0 + + + + Swashplate Outputs + + + + 3 + + + 2 + + + 3 + + + + + true + + + + 1 + 1 + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + Servo W + + + + + + + true + + + + 0 + 0 + + + + + 85 + 0 + + + + + 85 + 16777215 + + + + + + + + + 0 + 0 + + + + + 85 + 0 + + + + + 85 + 16777215 + + + + + + + + true + + + + 0 + 0 + + + + + 85 + 0 + + + + + 85 + 16777215 + + + + + + + + + 1 + 1 + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + Servo X + + + + + + + + 0 + 0 + + + + + 85 + 0 + + + + + 85 + 16777215 + + + + + Front + + + + + Right + + + + + Rear + + + + + Left + + + + + + + + + 1 + 1 + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + Single Servo + + + + + + + + 0 + 0 + + + + + 85 + 0 + + + + + 85 + 16777215 + + + + + + + + + 1 + 1 + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + Servo Z + + + + + + + true + + + + 1 + 1 + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + Servo Y + + + + + + + + + + + 0 + 0 + + + + + 70 + 0 + + + + Swashplate Servo Angles + + + + 3 + + + 2 + + + 3 + + + + + + 0 + 0 + + + + + 85 + 0 + + + + + 85 + 16777215 + + + + 0 + + + 360.000000000000000 + + + 15.000000000000000 + + + + + + + true + + + + 0 + 0 + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + Angle W + + + + + + + + 0 + 0 + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + Angle X + + + + + + + true + + + + 0 + 0 + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + Angle Y + + + + + + + + 0 + 0 + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + Angle Z + + + + + + + true + + + + 0 + 0 + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + CorrectionAngle + + + + + + + + 0 + 0 + + + + + 85 + 0 + + + + + 85 + 16777215 + + + + 0 + + + 360.000000000000000 + + + 15.000000000000000 + + + + + + + true + + + + 0 + 0 + + + + + 85 + 0 + + + + + 85 + 16777215 + + + + 0 + + + 360.000000000000000 + + + 15.000000000000000 + + + + + + + + 0 + 0 + + + + + 85 + 0 + + + + + 85 + 16777215 + + + + 0 + + + 360.000000000000000 + + + 15.000000000000000 + + + + + + + + 0 + 0 + + + + + 85 + 0 + + + + + 85 + 16777215 + + + + 0 + + + 360.000000000000000 + + + 15.000000000000000 + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + true + + + + 0 + 0 + + + + + 50 + 100 + + + + + 50 + 400 + + + + + 8 + + + + CCPM + + + Qt::AlignCenter + + + + 0 + + + 3 + + + + + true + + + + 7 + + + + Collective + + + true + + + Qt::AlignCenter + + + + + + + + + Qt::Horizontal + + + + 5 + 25 + + + + + + + + true + + + + 0 + 0 + + + + + 0 + 100 + + + + 100 + + + 5 + + + 50 + + + Qt::Vertical + + + + + + + Qt::Horizontal + + + + 5 + 25 + + + + + + + + + + true + + + + 7 + + + + Cyclic + + + Qt::AlignCenter + + + + + + + 100 + + + 5 + + + 50 + + + + + + + + + + + 0 + 0 + + + + + 50 + 100 + + + + + 400 + 400 + + + + REVO + + + + 0 + + + 3 + + + + + false + + + + 7 + + + + 100% + + + Qt::AlignCenter + + + + + + + + + Qt::Horizontal + + + + 5 + 25 + + + + + + + + false + + + + 0 + 0 + + + + + 0 + 100 + + + + 100 + + + 5 + + + Qt::Vertical + + + + + + + Qt::Horizontal + + + + 5 + 25 + + + + + + + + + + false + + + + 7 + + + + 0% + + + Qt::AlignCenter + + + + + + + + + + + + + + + + + + 1 + 1 + + + + + 200 + 200 + + + + + 600 + 600 + + + + + 10 + 10 + + + + + 200 + 200 + + + + Swashplate Layout + + + Qt::AlignHCenter|Qt::AlignTop + + + false + + + false + + + + 3 + + + 3 + + + + + Qt::Vertical + + + + + 1 + 1 + + + + + 200 + 200 + + + + + 500 + 500 + + + + + 10 + 10 + + + + + 200 + 200 + + + + QFrame::NoFrame + + + QFrame::Plain + + + 0 + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + + + 220 + 220 + 220 + + + + + + + 0 + 0 + 0 + + + + + Qt::AlignHCenter|Qt::AlignTop + + + QGraphicsView::AnchorViewCenter + + + + + + + + + + + + + + + + Curve settings + + + + 0 + + + 2 + + + + + 4 + + + + + + + + 150 + 0 + + + + + 10 + + + + Select aircraft type here + + + + Linear + + + + + Flat + + + + + Step + + + + + Exp + + + + + Log + + + + + Custom + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + Number of points + + + + + + + + 0 + 0 + + + + 2 + + + 10 + + + 5 + + + + + + + + + + + Min + + + + + + + Max + + + + + + + Step point + + + + + + + 1 + + + 10.000000000000000 + + + + + + + 1 + + + 10.000000000000000 + + + 1.000000000000000 + + + + + + + 1 + + + 100.000000000000000 + + + 50.000000000000000 + + + + + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + + 10 + + + + Select aircraft type here + + + + Throttle + + + + + Pitch + + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Generate curves based on settings + + + <-- Generate Curve + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + + + + + 142 + 148 + + + + + 250 + 273 + + + + + 8 + + + + Qt::ScrollBarAsNeeded + + + Qt::ScrollBarAsNeeded + + + true + + + true + + + true + + + true + + + true + + + 25 + + + 25 + + + + 0% + + + + + 25% + + + + + 50% + + + + + 75% + + + + + 100% + + + + + none + + + + + none + + + + + none + + + + + none + + + + + none + + + + + Throttle Curve + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + Blade Pitch Curve + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + 0.000 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + 0.000 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + 0.250 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + 0.250 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + 0.500 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + 0.500 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + 0.750 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + 0.750 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + 1.000 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + 1.000 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + + + + Qt::Vertical + + + QSizePolicy::Preferred + + + + 20 + 40 + + + + + + + + + + + + + + + 1 + 1 + + + + + 0 + 0 + + + + + 10 + 10 + + + + + 100 + 100 + + + + Qt::LeftToRight + + + Throttle Curve + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + false + + + + 0 + + + 0 + + + + + + 1 + 1 + + + + + 50 + 50 + + + + + 1000 + 1000 + + + + + 10 + 10 + + + + + 200 + 200 + + + + + + + + + + + + 1 + 1 + + + + + 10 + 10 + + + + + 100 + 100 + + + + Pitch Curve + + + + 0 + + + 0 + + + + + + 1 + 1 + + + + + 50 + 50 + + + + + 1000 + 1000 + + + + + 10 + 10 + + + + + 200 + 200 + + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Preferred + + + + 20 + 40 + + + + + + + + + + + + + + + Advanced settings + + + + 0 + + + + + + 0 + 0 + + + + + 0 + 200 + + + + + 1000 + 203 + + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + true + + + true + + + QAbstractItemView::NoSelection + + + false + + + true + + + 75 + + + 20 + + + + Engine + + + + + Tail Rotor + + + + + Servo W + + + + + Servo X + + + + + Servo Y + + + + + Servo Z + + + + + Channel + + + + + Curve 1 + + + + + Curve 2 + + + + + Roll + + + + + Pitch + + + + + Yaw + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + - + + + AlignHCenter|AlignVCenter|AlignCenter + + + + + + + + Qt::Vertical + + + QSizePolicy::MinimumExpanding + + + + 20 + 40 + + + + + + + + + + + + + + + MixerCurveWidget + QWidget +
mixercurvewidget.h
+ 1 +
+
+ + TabObject + ccpmType + ccpmCollectivespinBox + ccpmRevoSlider + ccpmREVOspinBox + SwashplateImage + CurveType + CurveValue1 + CurveValue2 + CurveValue3 + ccpmAdvancedSettingsTable + + + + + ccpmCollectiveSlider + sliderMoved(int) + ccpmCollectivespinBox + setValue(int) + + + 246 + 309 + + + 259 + 467 + + + + + ccpmCollectivespinBox + valueChanged(int) + ccpmCollectiveSlider + setValue(int) + + + 259 + 467 + + + 243 + 391 + + + + + ccpmREVOspinBox + valueChanged(int) + ccpmRevoSlider + setValue(int) + + + 344 + 467 + + + 326 + 393 + + + + + ccpmRevoSlider + sliderMoved(int) + ccpmREVOspinBox + setValue(int) + + + 303 + 222 + + + 344 + 467 + + + + +
diff --git a/ground/src/plugins/config/configairframewidget.cpp b/ground/src/plugins/config/configairframewidget.cpp index 6bc72bda4..a74873868 100644 --- a/ground/src/plugins/config/configairframewidget.cpp +++ b/ground/src/plugins/config/configairframewidget.cpp @@ -92,10 +92,10 @@ ConfigAirframeWidget::ConfigAirframeWidget(QWidget *parent) : ConfigTaskWidget(p ffTuningInProgress = false; ffTuningPhase = false; - mixerTypes << "Mixer0Type" << "Mixer1Type" << "Mixer2Type" << "Mixer3Type" - << "Mixer4Type" << "Mixer5Type" << "Mixer6Type" << "Mixer7Type"; - mixerVectors << "Mixer0Vector" << "Mixer1Vector" << "Mixer2Vector" << "Mixer3Vector" - << "Mixer4Vector" << "Mixer5Vector" << "Mixer6Vector" << "Mixer7Vector"; + mixerTypes << "Mixer1Type" << "Mixer2Type" << "Mixer3Type" + << "Mixer4Type" << "Mixer5Type" << "Mixer6Type" << "Mixer7Type" << "Mixer8Type"; + mixerVectors << "Mixer1Vector" << "Mixer2Vector" << "Mixer3Vector" + << "Mixer4Vector" << "Mixer5Vector" << "Mixer6Vector" << "Mixer7Vector" << "Mixer8Vector"; QStringList airframeTypes; airframeTypes << "Fixed Wing" << "Multirotor" << "Helicopter" << "Custom"; @@ -114,8 +114,8 @@ ConfigAirframeWidget::ConfigAirframeWidget(QWidget *parent) : ConfigTaskWidget(p QStringList channels; - channels << "None" << "Channel0" << "Channel1" << "Channel2" << - "Channel3" << "Channel4" << "Channel5" << "Channel6" << "Channel7"; + channels << "None" << "Channel1" << "Channel2" << "Channel3" << + "Channel4" << "Channel5" << "Channel6" << "Channel7" << "Channel8"; // Now load all the channel assignements for fixed wing m_aircraft->fwElevator1Channel->addItems(channels); m_aircraft->fwElevator2Channel->addItems(channels); @@ -148,7 +148,7 @@ ConfigAirframeWidget::ConfigAirframeWidget(QWidget *parent) : ConfigTaskWidget(p // Put combo boxes in line one of the custom mixer table: UAVDataObject* obj = dynamic_cast(getObjectManager()->getObject(QString("MixerSettings"))); - UAVObjectField* field = obj->getField(QString("Mixer0Type")); + UAVObjectField* field = obj->getField(QString("Mixer1Type")); QStringList list = field->getOptions(); for (int i=0;i<8;i++) { QComboBox* qb = new QComboBox(m_aircraft->customMixerTable); diff --git a/ground/src/plugins/config/configccpmwidget.cpp b/ground/src/plugins/config/configccpmwidget.cpp index 005f02639..d3c7ed468 100644 --- a/ground/src/plugins/config/configccpmwidget.cpp +++ b/ground/src/plugins/config/configccpmwidget.cpp @@ -118,8 +118,8 @@ ConfigccpmWidget::ConfigccpmWidget(QWidget *parent) : ConfigTaskWidget(parent) QStringList channels; - channels << "Channel0" << "Channel1" << "Channel2" << - "Channel3" << "Channel4" << "Channel5" << "Channel6" << "Channel7" << "None" ; + channels << "Channel1" << "Channel2" << + "Channel3" << "Channel4" << "Channel5" << "Channel6" << "Channel7" << "Channel8" << "None" ; m_ccpm->ccpmEngineChannel->addItems(channels); m_ccpm->ccpmEngineChannel->setCurrentIndex(8); m_ccpm->ccpmTailChannel->addItems(channels); @@ -699,10 +699,10 @@ void ConfigccpmWidget::UpdateMixer() ThisEnable[4] = m_ccpm->ccpmServoYChannel->isEnabled(); ThisEnable[5] = m_ccpm->ccpmServoZChannel->isEnabled(); - ServoWText->setPlainText(QString("%1").arg( MixerChannelData[2] )); - ServoXText->setPlainText(QString("%1").arg( MixerChannelData[3] )); - ServoYText->setPlainText(QString("%1").arg( MixerChannelData[4] )); - ServoZText->setPlainText(QString("%1").arg( MixerChannelData[5] )); + ServoWText->setPlainText(QString("%1").arg( MixerChannelData[2]+1 )); + ServoXText->setPlainText(QString("%1").arg( MixerChannelData[3]+1 )); + ServoYText->setPlainText(QString("%1").arg( MixerChannelData[4]+1 )); + ServoZText->setPlainText(QString("%1").arg( MixerChannelData[5]+1 )); //go through the user data and update the mixer matrix @@ -719,7 +719,7 @@ void ConfigccpmWidget::UpdateMixer() */ if ((MixerChannelData[i]<8)&&((ThisEnable[i])||(i<2))) { - m_ccpm->ccpmAdvancedSettingsTable->item(i,0)->setText(QString("%1").arg( MixerChannelData[i] )); + m_ccpm->ccpmAdvancedSettingsTable->item(i,0)->setText(QString("%1").arg( MixerChannelData[i]+1 )); //config the vector if (i==0) {//motor-engine @@ -759,7 +759,7 @@ void ConfigccpmWidget::UpdateMixer() for (i=0;i<6;i++) { Channel =m_ccpm->ccpmAdvancedSettingsTable->item(i,0)->text(); - if (Channel == "-") Channel = QString("8"); + if (Channel == "-") Channel = QString("9"); MixerChannelData[i]= Channel.toInt(); } } @@ -797,7 +797,7 @@ void ConfigccpmWidget::requestccpmUpdate() //go through the user data and update the mixer matrix for (i=0;i<8;i++) { - field = obj->getField(tr( "Mixer%1Vector" ).arg(i)); + field = obj->getField(tr( "Mixer%1Vector" ).arg(i+1)); //config the vector for (j=0;j<5;j++) { @@ -807,7 +807,7 @@ void ConfigccpmWidget::requestccpmUpdate() } for (i=0;i<8;i++) { - field = obj->getField(tr( "Mixer%1Type" ).arg(i)); + field = obj->getField(tr( "Mixer%1Type" ).arg(i+1)); MixerOutputType[i] = field->getValue().toString(); } @@ -1064,7 +1064,7 @@ void ConfigccpmWidget::sendccpmUpdate() //clear the output types for (i=0;i<8;i++) { - field = obj->getField(tr( "Mixer%1Type" ).arg( i )); + field = obj->getField(tr( "Mixer%1Type" ).arg( i+1 )); //clear the mixer type field->setValue("Disabled"); } @@ -1085,7 +1085,7 @@ void ConfigccpmWidget::sendccpmUpdate() if (MixerChannelData[i]<8) { //select the correct mixer for this config element - field = obj->getField(tr( "Mixer%1Type" ).arg( MixerChannelData[i] )); + field = obj->getField(tr( "Mixer%1Type" ).arg( MixerChannelData[i]+1 )); //set the mixer type if (i==0) { @@ -1097,7 +1097,7 @@ void ConfigccpmWidget::sendccpmUpdate() } //select the correct mixer for this config element - field = obj->getField(tr( "Mixer%1Vector" ).arg( MixerChannelData[i] )); + field = obj->getField(tr( "Mixer%1Vector" ).arg( MixerChannelData[i]+1 )); //config the vector for (j=0;j<5;j++) { diff --git a/ground/src/plugins/config/configservowidget.cpp b/ground/src/plugins/config/configservowidget.cpp index 5db4e8133..e25853db5 100644 --- a/ground/src/plugins/config/configservowidget.cpp +++ b/ground/src/plugins/config/configservowidget.cpp @@ -42,6 +42,9 @@ ConfigServoWidget::ConfigServoWidget(QWidget *parent) : ConfigTaskWidget(parent) // First of all, put all the channel widgets into lists, so that we can // manipulate those: + + // NOTE: for historical reasons, we have objects below called ch0 to ch7, but the + // convention for OP is Channel 1 to Channel 8. outLabels << m_config->ch0OutValue << m_config->ch1OutValue << m_config->ch2OutValue @@ -163,7 +166,7 @@ ConfigServoWidget::ConfigServoWidget(QWidget *parent) : ConfigTaskWidget(parent) m_config->ch1Output->addItem(field->getName()); m_config->ch2Output->addItem(field->getName()); m_config->ch3Output->addItem(field->getName()); - m_config->ch4Output->addItem(field->getName()); + m_config->ch4Output->addItem(field->getName()); m_config->ch5Output->addItem(field->getName()); m_config->ch6Output->addItem(field->getName()); m_config->ch7Output->addItem(field->getName()); @@ -303,7 +306,7 @@ void ConfigServoWidget::requestRCOutputUpdate() QList fieldList = obj->getFields(); foreach (UAVObjectField* field, fieldList) { if (field->getUnits().contains("channel")) { - assignOutputChannel(obj,field,field->getName()); + assignOutputChannel(obj,field->getName()); } } @@ -590,7 +593,7 @@ void ConfigServoWidget::requestRCInputUpdate() QList fieldList = obj->getFields(); foreach (UAVObjectField* field, fieldList) { if (field->getUnits().contains("channel")) { - assignChannel(obj, field, field->getName()); + assignChannel(obj, field->getName()); } } @@ -765,9 +768,9 @@ void ConfigServoWidget::saveRCInputObject() /** * Set the dropdown option for a channel Input assignement */ -void ConfigServoWidget::assignChannel(UAVDataObject *obj, UAVObjectField *field, QString str) +void ConfigServoWidget::assignChannel(UAVDataObject *obj, QString str) { - field = obj->getField(str); + UAVObjectField* field = obj->getField(str); QStringList options = field->getOptions(); switch (options.indexOf(field->getValue().toString())) { case 0: @@ -800,9 +803,9 @@ void ConfigServoWidget::assignChannel(UAVDataObject *obj, UAVObjectField *field, /** * Set the dropdown option for a channel output assignement */ -void ConfigServoWidget::assignOutputChannel(UAVDataObject *obj, UAVObjectField *field, QString str) +void ConfigServoWidget::assignOutputChannel(UAVDataObject *obj, QString str) { - field = obj->getField(str); + UAVObjectField* field = obj->getField(str); QStringList options = field->getOptions(); switch (options.indexOf(field->getValue().toString())) { case 0: diff --git a/ground/src/plugins/config/configservowidget.h b/ground/src/plugins/config/configservowidget.h index 7f8be7b08..095df6cf9 100644 --- a/ground/src/plugins/config/configservowidget.h +++ b/ground/src/plugins/config/configservowidget.h @@ -50,8 +50,8 @@ private: Ui_SettingsWidget *m_config; QList sliders; void updateChannelSlider(QSlider* slider, QLabel* min, QLabel* Max, QCheckBox* rev, int value); - void assignChannel(UAVDataObject *obj, UAVObjectField *field, QString str); - void assignOutputChannel(UAVDataObject *obj, UAVObjectField *field, QString str); + void assignChannel(UAVDataObject *obj, QString str); + void assignOutputChannel(UAVDataObject *obj, QString str); int mccDataRate; UAVObject::Metadata accInitialData; QList outSliders; diff --git a/ground/src/plugins/config/settingswidget.ui b/ground/src/plugins/config/settingswidget.ui index 50dc0410e..4982bc228 100644 --- a/ground/src/plugins/config/settingswidget.ui +++ b/ground/src/plugins/config/settingswidget.ui @@ -1125,7 +1125,7 @@ Neutral should be put at the bottom of the slider for the throttle. - Channel 0 + Channel 1 @@ -1138,7 +1138,7 @@ Neutral should be put at the bottom of the slider for the throttle. - Channel 1 + Channel 2 @@ -1151,7 +1151,7 @@ Neutral should be put at the bottom of the slider for the throttle. - Channel 2 + Channel 3 @@ -1164,7 +1164,7 @@ Neutral should be put at the bottom of the slider for the throttle. - Channel 3 + Channel 4 @@ -1177,7 +1177,7 @@ Neutral should be put at the bottom of the slider for the throttle. - Channel 4 + Channel 5 @@ -1190,7 +1190,7 @@ Neutral should be put at the bottom of the slider for the throttle. - Channel 5 + Channel 6 @@ -1325,7 +1325,7 @@ p, li { white-space: pre-wrap; } - Channel 6 + Channel 7 @@ -1338,7 +1338,7 @@ p, li { white-space: pre-wrap; } - Channel 7 + Channel 8 diff --git a/ground/src/plugins/uavobjects/OPLogConvert.m b/ground/src/plugins/uavobjects/OPLogConvert.m index aeedb7eaf..10f35b545 100644 --- a/ground/src/plugins/uavobjects/OPLogConvert.m +++ b/ground/src/plugins/uavobjects/OPLogConvert.m @@ -245,8 +245,6 @@ function [] = OPLogConvert() MixerSettings(1).DecelTime = 0; MixerSettings(1).ThrottleCurve1 = zeros(1,5); MixerSettings(1).ThrottleCurve2 = zeros(1,5); - MixerSettings(1).Mixer0Type = 0; - MixerSettings(1).Mixer0Vector = zeros(1,5); MixerSettings(1).Mixer1Type = 0; MixerSettings(1).Mixer1Vector = zeros(1,5); MixerSettings(1).Mixer2Type = 0; @@ -261,10 +259,11 @@ function [] = OPLogConvert() MixerSettings(1).Mixer6Vector = zeros(1,5); MixerSettings(1).Mixer7Type = 0; MixerSettings(1).Mixer7Vector = zeros(1,5); + MixerSettings(1).Mixer8Type = 0; + MixerSettings(1).Mixer8Vector = zeros(1,5); mixerstatusIdx = 1; MixerStatus.timestamp = 0; - MixerStatus(1).Mixer0 = 0; MixerStatus(1).Mixer1 = 0; MixerStatus(1).Mixer2 = 0; MixerStatus(1).Mixer3 = 0; @@ -272,6 +271,7 @@ function [] = OPLogConvert() MixerStatus(1).Mixer5 = 0; MixerStatus(1).Mixer6 = 0; MixerStatus(1).Mixer7 = 0; + MixerStatus(1).Mixer8 = 0; objectpersistenceIdx = 1; ObjectPersistence.timestamp = 0; @@ -465,10 +465,10 @@ function [] = OPLogConvert() case 157988682 ManualControlSettings(manualcontrolsettingsIdx) = ReadManualControlSettingsObject(fid, timestamp); manualcontrolsettingsIdx = manualcontrolsettingsIdx + 1; - case 1945801048 + case 1336817486 MixerSettings(mixersettingsIdx) = ReadMixerSettingsObject(fid, timestamp); mixersettingsIdx = mixersettingsIdx + 1; - case 2468388390 + case 4137893648 MixerStatus(mixerstatusIdx) = ReadMixerStatusObject(fid, timestamp); mixerstatusIdx = mixerstatusIdx + 1; case 572614706 @@ -990,8 +990,6 @@ function [MixerSettings] = ReadMixerSettingsObject(fid, timestamp) MixerSettings.DecelTime = double(fread(fid, 1, 'float32')); MixerSettings.ThrottleCurve1 = double(fread(fid, 5, 'float32')); MixerSettings.ThrottleCurve2 = double(fread(fid, 5, 'float32')); - MixerSettings.Mixer0Type = double(fread(fid, 1, 'uint8')); - MixerSettings.Mixer0Vector = double(fread(fid, 5, 'int8')); MixerSettings.Mixer1Type = double(fread(fid, 1, 'uint8')); MixerSettings.Mixer1Vector = double(fread(fid, 5, 'int8')); MixerSettings.Mixer2Type = double(fread(fid, 1, 'uint8')); @@ -1006,6 +1004,8 @@ function [MixerSettings] = ReadMixerSettingsObject(fid, timestamp) MixerSettings.Mixer6Vector = double(fread(fid, 5, 'int8')); MixerSettings.Mixer7Type = double(fread(fid, 1, 'uint8')); MixerSettings.Mixer7Vector = double(fread(fid, 5, 'int8')); + MixerSettings.Mixer8Type = double(fread(fid, 1, 'uint8')); + MixerSettings.Mixer8Vector = double(fread(fid, 5, 'int8')); % read CRC fread(fid, 1, 'uint8'); end @@ -1019,7 +1019,6 @@ function [MixerStatus] = ReadMixerStatusObject(fid, timestamp) end MixerStatus.timestamp = timestamp; - MixerStatus.Mixer0 = double(fread(fid, 1, 'float32')); MixerStatus.Mixer1 = double(fread(fid, 1, 'float32')); MixerStatus.Mixer2 = double(fread(fid, 1, 'float32')); MixerStatus.Mixer3 = double(fread(fid, 1, 'float32')); @@ -1027,6 +1026,7 @@ function [MixerStatus] = ReadMixerStatusObject(fid, timestamp) MixerStatus.Mixer5 = double(fread(fid, 1, 'float32')); MixerStatus.Mixer6 = double(fread(fid, 1, 'float32')); MixerStatus.Mixer7 = double(fread(fid, 1, 'float32')); + MixerStatus.Mixer8 = double(fread(fid, 1, 'float32')); % read CRC fread(fid, 1, 'uint8'); end diff --git a/ground/src/plugins/uavobjects/actuatorsettings.cpp b/ground/src/plugins/uavobjects/actuatorsettings.cpp index b595bb631..e18579d0f 100644 --- a/ground/src/plugins/uavobjects/actuatorsettings.cpp +++ b/ground/src/plugins/uavobjects/actuatorsettings.cpp @@ -45,7 +45,6 @@ ActuatorSettings::ActuatorSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI QStringList FixedWingRoll1ElemNames; FixedWingRoll1ElemNames.append("0"); QStringList FixedWingRoll1EnumOptions; - FixedWingRoll1EnumOptions.append("Channel0"); FixedWingRoll1EnumOptions.append("Channel1"); FixedWingRoll1EnumOptions.append("Channel2"); FixedWingRoll1EnumOptions.append("Channel3"); @@ -53,12 +52,12 @@ ActuatorSettings::ActuatorSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI FixedWingRoll1EnumOptions.append("Channel5"); FixedWingRoll1EnumOptions.append("Channel6"); FixedWingRoll1EnumOptions.append("Channel7"); + FixedWingRoll1EnumOptions.append("Channel8"); FixedWingRoll1EnumOptions.append("None"); fields.append( new UAVObjectField(QString("FixedWingRoll1"), QString("channel"), UAVObjectField::ENUM, FixedWingRoll1ElemNames, FixedWingRoll1EnumOptions) ); QStringList FixedWingRoll2ElemNames; FixedWingRoll2ElemNames.append("0"); QStringList FixedWingRoll2EnumOptions; - FixedWingRoll2EnumOptions.append("Channel0"); FixedWingRoll2EnumOptions.append("Channel1"); FixedWingRoll2EnumOptions.append("Channel2"); FixedWingRoll2EnumOptions.append("Channel3"); @@ -66,12 +65,12 @@ ActuatorSettings::ActuatorSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI FixedWingRoll2EnumOptions.append("Channel5"); FixedWingRoll2EnumOptions.append("Channel6"); FixedWingRoll2EnumOptions.append("Channel7"); + FixedWingRoll2EnumOptions.append("Channel8"); FixedWingRoll2EnumOptions.append("None"); fields.append( new UAVObjectField(QString("FixedWingRoll2"), QString("channel"), UAVObjectField::ENUM, FixedWingRoll2ElemNames, FixedWingRoll2EnumOptions) ); QStringList FixedWingPitch1ElemNames; FixedWingPitch1ElemNames.append("0"); QStringList FixedWingPitch1EnumOptions; - FixedWingPitch1EnumOptions.append("Channel0"); FixedWingPitch1EnumOptions.append("Channel1"); FixedWingPitch1EnumOptions.append("Channel2"); FixedWingPitch1EnumOptions.append("Channel3"); @@ -79,12 +78,12 @@ ActuatorSettings::ActuatorSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI FixedWingPitch1EnumOptions.append("Channel5"); FixedWingPitch1EnumOptions.append("Channel6"); FixedWingPitch1EnumOptions.append("Channel7"); + FixedWingPitch1EnumOptions.append("Channel8"); FixedWingPitch1EnumOptions.append("None"); fields.append( new UAVObjectField(QString("FixedWingPitch1"), QString("channel"), UAVObjectField::ENUM, FixedWingPitch1ElemNames, FixedWingPitch1EnumOptions) ); QStringList FixedWingPitch2ElemNames; FixedWingPitch2ElemNames.append("0"); QStringList FixedWingPitch2EnumOptions; - FixedWingPitch2EnumOptions.append("Channel0"); FixedWingPitch2EnumOptions.append("Channel1"); FixedWingPitch2EnumOptions.append("Channel2"); FixedWingPitch2EnumOptions.append("Channel3"); @@ -92,12 +91,12 @@ ActuatorSettings::ActuatorSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI FixedWingPitch2EnumOptions.append("Channel5"); FixedWingPitch2EnumOptions.append("Channel6"); FixedWingPitch2EnumOptions.append("Channel7"); + FixedWingPitch2EnumOptions.append("Channel8"); FixedWingPitch2EnumOptions.append("None"); fields.append( new UAVObjectField(QString("FixedWingPitch2"), QString("channel"), UAVObjectField::ENUM, FixedWingPitch2ElemNames, FixedWingPitch2EnumOptions) ); QStringList FixedWingYawElemNames; FixedWingYawElemNames.append("0"); QStringList FixedWingYawEnumOptions; - FixedWingYawEnumOptions.append("Channel0"); FixedWingYawEnumOptions.append("Channel1"); FixedWingYawEnumOptions.append("Channel2"); FixedWingYawEnumOptions.append("Channel3"); @@ -105,12 +104,12 @@ ActuatorSettings::ActuatorSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI FixedWingYawEnumOptions.append("Channel5"); FixedWingYawEnumOptions.append("Channel6"); FixedWingYawEnumOptions.append("Channel7"); + FixedWingYawEnumOptions.append("Channel8"); FixedWingYawEnumOptions.append("None"); fields.append( new UAVObjectField(QString("FixedWingYaw"), QString("channel"), UAVObjectField::ENUM, FixedWingYawElemNames, FixedWingYawEnumOptions) ); QStringList FixedWingThrottleElemNames; FixedWingThrottleElemNames.append("0"); QStringList FixedWingThrottleEnumOptions; - FixedWingThrottleEnumOptions.append("Channel0"); FixedWingThrottleEnumOptions.append("Channel1"); FixedWingThrottleEnumOptions.append("Channel2"); FixedWingThrottleEnumOptions.append("Channel3"); @@ -118,12 +117,12 @@ ActuatorSettings::ActuatorSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI FixedWingThrottleEnumOptions.append("Channel5"); FixedWingThrottleEnumOptions.append("Channel6"); FixedWingThrottleEnumOptions.append("Channel7"); + FixedWingThrottleEnumOptions.append("Channel8"); FixedWingThrottleEnumOptions.append("None"); fields.append( new UAVObjectField(QString("FixedWingThrottle"), QString("channel"), UAVObjectField::ENUM, FixedWingThrottleElemNames, FixedWingThrottleEnumOptions) ); QStringList VTOLMotorNElemNames; VTOLMotorNElemNames.append("0"); QStringList VTOLMotorNEnumOptions; - VTOLMotorNEnumOptions.append("Channel0"); VTOLMotorNEnumOptions.append("Channel1"); VTOLMotorNEnumOptions.append("Channel2"); VTOLMotorNEnumOptions.append("Channel3"); @@ -131,12 +130,12 @@ ActuatorSettings::ActuatorSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI VTOLMotorNEnumOptions.append("Channel5"); VTOLMotorNEnumOptions.append("Channel6"); VTOLMotorNEnumOptions.append("Channel7"); + VTOLMotorNEnumOptions.append("Channel8"); VTOLMotorNEnumOptions.append("None"); fields.append( new UAVObjectField(QString("VTOLMotorN"), QString("channel"), UAVObjectField::ENUM, VTOLMotorNElemNames, VTOLMotorNEnumOptions) ); QStringList VTOLMotorNEElemNames; VTOLMotorNEElemNames.append("0"); QStringList VTOLMotorNEEnumOptions; - VTOLMotorNEEnumOptions.append("Channel0"); VTOLMotorNEEnumOptions.append("Channel1"); VTOLMotorNEEnumOptions.append("Channel2"); VTOLMotorNEEnumOptions.append("Channel3"); @@ -144,12 +143,12 @@ ActuatorSettings::ActuatorSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI VTOLMotorNEEnumOptions.append("Channel5"); VTOLMotorNEEnumOptions.append("Channel6"); VTOLMotorNEEnumOptions.append("Channel7"); + VTOLMotorNEEnumOptions.append("Channel8"); VTOLMotorNEEnumOptions.append("None"); fields.append( new UAVObjectField(QString("VTOLMotorNE"), QString("channel"), UAVObjectField::ENUM, VTOLMotorNEElemNames, VTOLMotorNEEnumOptions) ); QStringList VTOLMotorEElemNames; VTOLMotorEElemNames.append("0"); QStringList VTOLMotorEEnumOptions; - VTOLMotorEEnumOptions.append("Channel0"); VTOLMotorEEnumOptions.append("Channel1"); VTOLMotorEEnumOptions.append("Channel2"); VTOLMotorEEnumOptions.append("Channel3"); @@ -157,12 +156,12 @@ ActuatorSettings::ActuatorSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI VTOLMotorEEnumOptions.append("Channel5"); VTOLMotorEEnumOptions.append("Channel6"); VTOLMotorEEnumOptions.append("Channel7"); + VTOLMotorEEnumOptions.append("Channel8"); VTOLMotorEEnumOptions.append("None"); fields.append( new UAVObjectField(QString("VTOLMotorE"), QString("channel"), UAVObjectField::ENUM, VTOLMotorEElemNames, VTOLMotorEEnumOptions) ); QStringList VTOLMotorSEElemNames; VTOLMotorSEElemNames.append("0"); QStringList VTOLMotorSEEnumOptions; - VTOLMotorSEEnumOptions.append("Channel0"); VTOLMotorSEEnumOptions.append("Channel1"); VTOLMotorSEEnumOptions.append("Channel2"); VTOLMotorSEEnumOptions.append("Channel3"); @@ -170,12 +169,12 @@ ActuatorSettings::ActuatorSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI VTOLMotorSEEnumOptions.append("Channel5"); VTOLMotorSEEnumOptions.append("Channel6"); VTOLMotorSEEnumOptions.append("Channel7"); + VTOLMotorSEEnumOptions.append("Channel8"); VTOLMotorSEEnumOptions.append("None"); fields.append( new UAVObjectField(QString("VTOLMotorSE"), QString("channel"), UAVObjectField::ENUM, VTOLMotorSEElemNames, VTOLMotorSEEnumOptions) ); QStringList VTOLMotorSElemNames; VTOLMotorSElemNames.append("0"); QStringList VTOLMotorSEnumOptions; - VTOLMotorSEnumOptions.append("Channel0"); VTOLMotorSEnumOptions.append("Channel1"); VTOLMotorSEnumOptions.append("Channel2"); VTOLMotorSEnumOptions.append("Channel3"); @@ -183,12 +182,12 @@ ActuatorSettings::ActuatorSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI VTOLMotorSEnumOptions.append("Channel5"); VTOLMotorSEnumOptions.append("Channel6"); VTOLMotorSEnumOptions.append("Channel7"); + VTOLMotorSEnumOptions.append("Channel8"); VTOLMotorSEnumOptions.append("None"); fields.append( new UAVObjectField(QString("VTOLMotorS"), QString("channel"), UAVObjectField::ENUM, VTOLMotorSElemNames, VTOLMotorSEnumOptions) ); QStringList VTOLMotorSWElemNames; VTOLMotorSWElemNames.append("0"); QStringList VTOLMotorSWEnumOptions; - VTOLMotorSWEnumOptions.append("Channel0"); VTOLMotorSWEnumOptions.append("Channel1"); VTOLMotorSWEnumOptions.append("Channel2"); VTOLMotorSWEnumOptions.append("Channel3"); @@ -196,12 +195,12 @@ ActuatorSettings::ActuatorSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI VTOLMotorSWEnumOptions.append("Channel5"); VTOLMotorSWEnumOptions.append("Channel6"); VTOLMotorSWEnumOptions.append("Channel7"); + VTOLMotorSWEnumOptions.append("Channel8"); VTOLMotorSWEnumOptions.append("None"); fields.append( new UAVObjectField(QString("VTOLMotorSW"), QString("channel"), UAVObjectField::ENUM, VTOLMotorSWElemNames, VTOLMotorSWEnumOptions) ); QStringList VTOLMotorWElemNames; VTOLMotorWElemNames.append("0"); QStringList VTOLMotorWEnumOptions; - VTOLMotorWEnumOptions.append("Channel0"); VTOLMotorWEnumOptions.append("Channel1"); VTOLMotorWEnumOptions.append("Channel2"); VTOLMotorWEnumOptions.append("Channel3"); @@ -209,12 +208,12 @@ ActuatorSettings::ActuatorSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI VTOLMotorWEnumOptions.append("Channel5"); VTOLMotorWEnumOptions.append("Channel6"); VTOLMotorWEnumOptions.append("Channel7"); + VTOLMotorWEnumOptions.append("Channel8"); VTOLMotorWEnumOptions.append("None"); fields.append( new UAVObjectField(QString("VTOLMotorW"), QString("channel"), UAVObjectField::ENUM, VTOLMotorWElemNames, VTOLMotorWEnumOptions) ); QStringList VTOLMotorNWElemNames; VTOLMotorNWElemNames.append("0"); QStringList VTOLMotorNWEnumOptions; - VTOLMotorNWEnumOptions.append("Channel0"); VTOLMotorNWEnumOptions.append("Channel1"); VTOLMotorNWEnumOptions.append("Channel2"); VTOLMotorNWEnumOptions.append("Channel3"); @@ -222,6 +221,7 @@ ActuatorSettings::ActuatorSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI VTOLMotorNWEnumOptions.append("Channel5"); VTOLMotorNWEnumOptions.append("Channel6"); VTOLMotorNWEnumOptions.append("Channel7"); + VTOLMotorNWEnumOptions.append("Channel8"); VTOLMotorNWEnumOptions.append("None"); fields.append( new UAVObjectField(QString("VTOLMotorNW"), QString("channel"), UAVObjectField::ENUM, VTOLMotorNWElemNames, VTOLMotorNWEnumOptions) ); QStringList ChannelUpdateFreqElemNames; diff --git a/ground/src/plugins/uavobjects/actuatorsettings.h b/ground/src/plugins/uavobjects/actuatorsettings.h index d307d27ab..2e3dd56d3 100644 --- a/ground/src/plugins/uavobjects/actuatorsettings.h +++ b/ground/src/plugins/uavobjects/actuatorsettings.h @@ -67,46 +67,46 @@ public: // Field information // Field FixedWingRoll1 information /* Enumeration options for field FixedWingRoll1 */ - typedef enum { FIXEDWINGROLL1_CHANNEL0=0, FIXEDWINGROLL1_CHANNEL1=1, FIXEDWINGROLL1_CHANNEL2=2, FIXEDWINGROLL1_CHANNEL3=3, FIXEDWINGROLL1_CHANNEL4=4, FIXEDWINGROLL1_CHANNEL5=5, FIXEDWINGROLL1_CHANNEL6=6, FIXEDWINGROLL1_CHANNEL7=7, FIXEDWINGROLL1_NONE=8 } FixedWingRoll1Options; + typedef enum { FIXEDWINGROLL1_CHANNEL1=0, FIXEDWINGROLL1_CHANNEL2=1, FIXEDWINGROLL1_CHANNEL3=2, FIXEDWINGROLL1_CHANNEL4=3, FIXEDWINGROLL1_CHANNEL5=4, FIXEDWINGROLL1_CHANNEL6=5, FIXEDWINGROLL1_CHANNEL7=6, FIXEDWINGROLL1_CHANNEL8=7, FIXEDWINGROLL1_NONE=8 } FixedWingRoll1Options; // Field FixedWingRoll2 information /* Enumeration options for field FixedWingRoll2 */ - typedef enum { FIXEDWINGROLL2_CHANNEL0=0, FIXEDWINGROLL2_CHANNEL1=1, FIXEDWINGROLL2_CHANNEL2=2, FIXEDWINGROLL2_CHANNEL3=3, FIXEDWINGROLL2_CHANNEL4=4, FIXEDWINGROLL2_CHANNEL5=5, FIXEDWINGROLL2_CHANNEL6=6, FIXEDWINGROLL2_CHANNEL7=7, FIXEDWINGROLL2_NONE=8 } FixedWingRoll2Options; + typedef enum { FIXEDWINGROLL2_CHANNEL1=0, FIXEDWINGROLL2_CHANNEL2=1, FIXEDWINGROLL2_CHANNEL3=2, FIXEDWINGROLL2_CHANNEL4=3, FIXEDWINGROLL2_CHANNEL5=4, FIXEDWINGROLL2_CHANNEL6=5, FIXEDWINGROLL2_CHANNEL7=6, FIXEDWINGROLL2_CHANNEL8=7, FIXEDWINGROLL2_NONE=8 } FixedWingRoll2Options; // Field FixedWingPitch1 information /* Enumeration options for field FixedWingPitch1 */ - typedef enum { FIXEDWINGPITCH1_CHANNEL0=0, FIXEDWINGPITCH1_CHANNEL1=1, FIXEDWINGPITCH1_CHANNEL2=2, FIXEDWINGPITCH1_CHANNEL3=3, FIXEDWINGPITCH1_CHANNEL4=4, FIXEDWINGPITCH1_CHANNEL5=5, FIXEDWINGPITCH1_CHANNEL6=6, FIXEDWINGPITCH1_CHANNEL7=7, FIXEDWINGPITCH1_NONE=8 } FixedWingPitch1Options; + typedef enum { FIXEDWINGPITCH1_CHANNEL1=0, FIXEDWINGPITCH1_CHANNEL2=1, FIXEDWINGPITCH1_CHANNEL3=2, FIXEDWINGPITCH1_CHANNEL4=3, FIXEDWINGPITCH1_CHANNEL5=4, FIXEDWINGPITCH1_CHANNEL6=5, FIXEDWINGPITCH1_CHANNEL7=6, FIXEDWINGPITCH1_CHANNEL8=7, FIXEDWINGPITCH1_NONE=8 } FixedWingPitch1Options; // Field FixedWingPitch2 information /* Enumeration options for field FixedWingPitch2 */ - typedef enum { FIXEDWINGPITCH2_CHANNEL0=0, FIXEDWINGPITCH2_CHANNEL1=1, FIXEDWINGPITCH2_CHANNEL2=2, FIXEDWINGPITCH2_CHANNEL3=3, FIXEDWINGPITCH2_CHANNEL4=4, FIXEDWINGPITCH2_CHANNEL5=5, FIXEDWINGPITCH2_CHANNEL6=6, FIXEDWINGPITCH2_CHANNEL7=7, FIXEDWINGPITCH2_NONE=8 } FixedWingPitch2Options; + typedef enum { FIXEDWINGPITCH2_CHANNEL1=0, FIXEDWINGPITCH2_CHANNEL2=1, FIXEDWINGPITCH2_CHANNEL3=2, FIXEDWINGPITCH2_CHANNEL4=3, FIXEDWINGPITCH2_CHANNEL5=4, FIXEDWINGPITCH2_CHANNEL6=5, FIXEDWINGPITCH2_CHANNEL7=6, FIXEDWINGPITCH2_CHANNEL8=7, FIXEDWINGPITCH2_NONE=8 } FixedWingPitch2Options; // Field FixedWingYaw information /* Enumeration options for field FixedWingYaw */ - typedef enum { FIXEDWINGYAW_CHANNEL0=0, FIXEDWINGYAW_CHANNEL1=1, FIXEDWINGYAW_CHANNEL2=2, FIXEDWINGYAW_CHANNEL3=3, FIXEDWINGYAW_CHANNEL4=4, FIXEDWINGYAW_CHANNEL5=5, FIXEDWINGYAW_CHANNEL6=6, FIXEDWINGYAW_CHANNEL7=7, FIXEDWINGYAW_NONE=8 } FixedWingYawOptions; + typedef enum { FIXEDWINGYAW_CHANNEL1=0, FIXEDWINGYAW_CHANNEL2=1, FIXEDWINGYAW_CHANNEL3=2, FIXEDWINGYAW_CHANNEL4=3, FIXEDWINGYAW_CHANNEL5=4, FIXEDWINGYAW_CHANNEL6=5, FIXEDWINGYAW_CHANNEL7=6, FIXEDWINGYAW_CHANNEL8=7, FIXEDWINGYAW_NONE=8 } FixedWingYawOptions; // Field FixedWingThrottle information /* Enumeration options for field FixedWingThrottle */ - typedef enum { FIXEDWINGTHROTTLE_CHANNEL0=0, FIXEDWINGTHROTTLE_CHANNEL1=1, FIXEDWINGTHROTTLE_CHANNEL2=2, FIXEDWINGTHROTTLE_CHANNEL3=3, FIXEDWINGTHROTTLE_CHANNEL4=4, FIXEDWINGTHROTTLE_CHANNEL5=5, FIXEDWINGTHROTTLE_CHANNEL6=6, FIXEDWINGTHROTTLE_CHANNEL7=7, FIXEDWINGTHROTTLE_NONE=8 } FixedWingThrottleOptions; + typedef enum { FIXEDWINGTHROTTLE_CHANNEL1=0, FIXEDWINGTHROTTLE_CHANNEL2=1, FIXEDWINGTHROTTLE_CHANNEL3=2, FIXEDWINGTHROTTLE_CHANNEL4=3, FIXEDWINGTHROTTLE_CHANNEL5=4, FIXEDWINGTHROTTLE_CHANNEL6=5, FIXEDWINGTHROTTLE_CHANNEL7=6, FIXEDWINGTHROTTLE_CHANNEL8=7, FIXEDWINGTHROTTLE_NONE=8 } FixedWingThrottleOptions; // Field VTOLMotorN information /* Enumeration options for field VTOLMotorN */ - typedef enum { VTOLMOTORN_CHANNEL0=0, VTOLMOTORN_CHANNEL1=1, VTOLMOTORN_CHANNEL2=2, VTOLMOTORN_CHANNEL3=3, VTOLMOTORN_CHANNEL4=4, VTOLMOTORN_CHANNEL5=5, VTOLMOTORN_CHANNEL6=6, VTOLMOTORN_CHANNEL7=7, VTOLMOTORN_NONE=8 } VTOLMotorNOptions; + typedef enum { VTOLMOTORN_CHANNEL1=0, VTOLMOTORN_CHANNEL2=1, VTOLMOTORN_CHANNEL3=2, VTOLMOTORN_CHANNEL4=3, VTOLMOTORN_CHANNEL5=4, VTOLMOTORN_CHANNEL6=5, VTOLMOTORN_CHANNEL7=6, VTOLMOTORN_CHANNEL8=7, VTOLMOTORN_NONE=8 } VTOLMotorNOptions; // Field VTOLMotorNE information /* Enumeration options for field VTOLMotorNE */ - typedef enum { VTOLMOTORNE_CHANNEL0=0, VTOLMOTORNE_CHANNEL1=1, VTOLMOTORNE_CHANNEL2=2, VTOLMOTORNE_CHANNEL3=3, VTOLMOTORNE_CHANNEL4=4, VTOLMOTORNE_CHANNEL5=5, VTOLMOTORNE_CHANNEL6=6, VTOLMOTORNE_CHANNEL7=7, VTOLMOTORNE_NONE=8 } VTOLMotorNEOptions; + typedef enum { VTOLMOTORNE_CHANNEL1=0, VTOLMOTORNE_CHANNEL2=1, VTOLMOTORNE_CHANNEL3=2, VTOLMOTORNE_CHANNEL4=3, VTOLMOTORNE_CHANNEL5=4, VTOLMOTORNE_CHANNEL6=5, VTOLMOTORNE_CHANNEL7=6, VTOLMOTORNE_CHANNEL8=7, VTOLMOTORNE_NONE=8 } VTOLMotorNEOptions; // Field VTOLMotorE information /* Enumeration options for field VTOLMotorE */ - typedef enum { VTOLMOTORE_CHANNEL0=0, VTOLMOTORE_CHANNEL1=1, VTOLMOTORE_CHANNEL2=2, VTOLMOTORE_CHANNEL3=3, VTOLMOTORE_CHANNEL4=4, VTOLMOTORE_CHANNEL5=5, VTOLMOTORE_CHANNEL6=6, VTOLMOTORE_CHANNEL7=7, VTOLMOTORE_NONE=8 } VTOLMotorEOptions; + typedef enum { VTOLMOTORE_CHANNEL1=0, VTOLMOTORE_CHANNEL2=1, VTOLMOTORE_CHANNEL3=2, VTOLMOTORE_CHANNEL4=3, VTOLMOTORE_CHANNEL5=4, VTOLMOTORE_CHANNEL6=5, VTOLMOTORE_CHANNEL7=6, VTOLMOTORE_CHANNEL8=7, VTOLMOTORE_NONE=8 } VTOLMotorEOptions; // Field VTOLMotorSE information /* Enumeration options for field VTOLMotorSE */ - typedef enum { VTOLMOTORSE_CHANNEL0=0, VTOLMOTORSE_CHANNEL1=1, VTOLMOTORSE_CHANNEL2=2, VTOLMOTORSE_CHANNEL3=3, VTOLMOTORSE_CHANNEL4=4, VTOLMOTORSE_CHANNEL5=5, VTOLMOTORSE_CHANNEL6=6, VTOLMOTORSE_CHANNEL7=7, VTOLMOTORSE_NONE=8 } VTOLMotorSEOptions; + typedef enum { VTOLMOTORSE_CHANNEL1=0, VTOLMOTORSE_CHANNEL2=1, VTOLMOTORSE_CHANNEL3=2, VTOLMOTORSE_CHANNEL4=3, VTOLMOTORSE_CHANNEL5=4, VTOLMOTORSE_CHANNEL6=5, VTOLMOTORSE_CHANNEL7=6, VTOLMOTORSE_CHANNEL8=7, VTOLMOTORSE_NONE=8 } VTOLMotorSEOptions; // Field VTOLMotorS information /* Enumeration options for field VTOLMotorS */ - typedef enum { VTOLMOTORS_CHANNEL0=0, VTOLMOTORS_CHANNEL1=1, VTOLMOTORS_CHANNEL2=2, VTOLMOTORS_CHANNEL3=3, VTOLMOTORS_CHANNEL4=4, VTOLMOTORS_CHANNEL5=5, VTOLMOTORS_CHANNEL6=6, VTOLMOTORS_CHANNEL7=7, VTOLMOTORS_NONE=8 } VTOLMotorSOptions; + typedef enum { VTOLMOTORS_CHANNEL1=0, VTOLMOTORS_CHANNEL2=1, VTOLMOTORS_CHANNEL3=2, VTOLMOTORS_CHANNEL4=3, VTOLMOTORS_CHANNEL5=4, VTOLMOTORS_CHANNEL6=5, VTOLMOTORS_CHANNEL7=6, VTOLMOTORS_CHANNEL8=7, VTOLMOTORS_NONE=8 } VTOLMotorSOptions; // Field VTOLMotorSW information /* Enumeration options for field VTOLMotorSW */ - typedef enum { VTOLMOTORSW_CHANNEL0=0, VTOLMOTORSW_CHANNEL1=1, VTOLMOTORSW_CHANNEL2=2, VTOLMOTORSW_CHANNEL3=3, VTOLMOTORSW_CHANNEL4=4, VTOLMOTORSW_CHANNEL5=5, VTOLMOTORSW_CHANNEL6=6, VTOLMOTORSW_CHANNEL7=7, VTOLMOTORSW_NONE=8 } VTOLMotorSWOptions; + typedef enum { VTOLMOTORSW_CHANNEL1=0, VTOLMOTORSW_CHANNEL2=1, VTOLMOTORSW_CHANNEL3=2, VTOLMOTORSW_CHANNEL4=3, VTOLMOTORSW_CHANNEL5=4, VTOLMOTORSW_CHANNEL6=5, VTOLMOTORSW_CHANNEL7=6, VTOLMOTORSW_CHANNEL8=7, VTOLMOTORSW_NONE=8 } VTOLMotorSWOptions; // Field VTOLMotorW information /* Enumeration options for field VTOLMotorW */ - typedef enum { VTOLMOTORW_CHANNEL0=0, VTOLMOTORW_CHANNEL1=1, VTOLMOTORW_CHANNEL2=2, VTOLMOTORW_CHANNEL3=3, VTOLMOTORW_CHANNEL4=4, VTOLMOTORW_CHANNEL5=5, VTOLMOTORW_CHANNEL6=6, VTOLMOTORW_CHANNEL7=7, VTOLMOTORW_NONE=8 } VTOLMotorWOptions; + typedef enum { VTOLMOTORW_CHANNEL1=0, VTOLMOTORW_CHANNEL2=1, VTOLMOTORW_CHANNEL3=2, VTOLMOTORW_CHANNEL4=3, VTOLMOTORW_CHANNEL5=4, VTOLMOTORW_CHANNEL6=5, VTOLMOTORW_CHANNEL7=6, VTOLMOTORW_CHANNEL8=7, VTOLMOTORW_NONE=8 } VTOLMotorWOptions; // Field VTOLMotorNW information /* Enumeration options for field VTOLMotorNW */ - typedef enum { VTOLMOTORNW_CHANNEL0=0, VTOLMOTORNW_CHANNEL1=1, VTOLMOTORNW_CHANNEL2=2, VTOLMOTORNW_CHANNEL3=3, VTOLMOTORNW_CHANNEL4=4, VTOLMOTORNW_CHANNEL5=5, VTOLMOTORNW_CHANNEL6=6, VTOLMOTORNW_CHANNEL7=7, VTOLMOTORNW_NONE=8 } VTOLMotorNWOptions; + typedef enum { VTOLMOTORNW_CHANNEL1=0, VTOLMOTORNW_CHANNEL2=1, VTOLMOTORNW_CHANNEL3=2, VTOLMOTORNW_CHANNEL4=3, VTOLMOTORNW_CHANNEL5=4, VTOLMOTORNW_CHANNEL6=5, VTOLMOTORNW_CHANNEL7=6, VTOLMOTORNW_CHANNEL8=7, VTOLMOTORNW_NONE=8 } VTOLMotorNWOptions; // Field ChannelUpdateFreq information /* Number of elements for field ChannelUpdateFreq */ static const quint32 CHANNELUPDATEFREQ_NUMELEM = 2; diff --git a/ground/src/plugins/uavobjects/actuatorsettings.py b/ground/src/plugins/uavobjects/actuatorsettings.py index 3ec6cb061..0122913ea 100644 --- a/ground/src/plugins/uavobjects/actuatorsettings.py +++ b/ground/src/plugins/uavobjects/actuatorsettings.py @@ -45,14 +45,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -64,14 +64,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -83,14 +83,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -102,14 +102,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -121,14 +121,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -140,14 +140,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -159,14 +159,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -178,14 +178,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -197,14 +197,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -216,14 +216,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -235,14 +235,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -254,14 +254,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -273,14 +273,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -292,14 +292,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), diff --git a/ground/src/plugins/uavobjects/manualcontrolsettings.cpp b/ground/src/plugins/uavobjects/manualcontrolsettings.cpp index 3d0aeb491..3b1613177 100644 --- a/ground/src/plugins/uavobjects/manualcontrolsettings.cpp +++ b/ground/src/plugins/uavobjects/manualcontrolsettings.cpp @@ -52,7 +52,6 @@ ManualControlSettings::ManualControlSettings(): UAVDataObject(OBJID, ISSINGLEINS QStringList RollElemNames; RollElemNames.append("0"); QStringList RollEnumOptions; - RollEnumOptions.append("Channel0"); RollEnumOptions.append("Channel1"); RollEnumOptions.append("Channel2"); RollEnumOptions.append("Channel3"); @@ -60,12 +59,12 @@ ManualControlSettings::ManualControlSettings(): UAVDataObject(OBJID, ISSINGLEINS RollEnumOptions.append("Channel5"); RollEnumOptions.append("Channel6"); RollEnumOptions.append("Channel7"); + RollEnumOptions.append("Channel8"); RollEnumOptions.append("None"); fields.append( new UAVObjectField(QString("Roll"), QString("channel"), UAVObjectField::ENUM, RollElemNames, RollEnumOptions) ); QStringList PitchElemNames; PitchElemNames.append("0"); QStringList PitchEnumOptions; - PitchEnumOptions.append("Channel0"); PitchEnumOptions.append("Channel1"); PitchEnumOptions.append("Channel2"); PitchEnumOptions.append("Channel3"); @@ -73,12 +72,12 @@ ManualControlSettings::ManualControlSettings(): UAVDataObject(OBJID, ISSINGLEINS PitchEnumOptions.append("Channel5"); PitchEnumOptions.append("Channel6"); PitchEnumOptions.append("Channel7"); + PitchEnumOptions.append("Channel8"); PitchEnumOptions.append("None"); fields.append( new UAVObjectField(QString("Pitch"), QString("channel"), UAVObjectField::ENUM, PitchElemNames, PitchEnumOptions) ); QStringList YawElemNames; YawElemNames.append("0"); QStringList YawEnumOptions; - YawEnumOptions.append("Channel0"); YawEnumOptions.append("Channel1"); YawEnumOptions.append("Channel2"); YawEnumOptions.append("Channel3"); @@ -86,12 +85,12 @@ ManualControlSettings::ManualControlSettings(): UAVDataObject(OBJID, ISSINGLEINS YawEnumOptions.append("Channel5"); YawEnumOptions.append("Channel6"); YawEnumOptions.append("Channel7"); + YawEnumOptions.append("Channel8"); YawEnumOptions.append("None"); fields.append( new UAVObjectField(QString("Yaw"), QString("channel"), UAVObjectField::ENUM, YawElemNames, YawEnumOptions) ); QStringList ThrottleElemNames; ThrottleElemNames.append("0"); QStringList ThrottleEnumOptions; - ThrottleEnumOptions.append("Channel0"); ThrottleEnumOptions.append("Channel1"); ThrottleEnumOptions.append("Channel2"); ThrottleEnumOptions.append("Channel3"); @@ -99,12 +98,12 @@ ManualControlSettings::ManualControlSettings(): UAVDataObject(OBJID, ISSINGLEINS ThrottleEnumOptions.append("Channel5"); ThrottleEnumOptions.append("Channel6"); ThrottleEnumOptions.append("Channel7"); + ThrottleEnumOptions.append("Channel8"); ThrottleEnumOptions.append("None"); fields.append( new UAVObjectField(QString("Throttle"), QString("channel"), UAVObjectField::ENUM, ThrottleElemNames, ThrottleEnumOptions) ); QStringList FlightModeElemNames; FlightModeElemNames.append("0"); QStringList FlightModeEnumOptions; - FlightModeEnumOptions.append("Channel0"); FlightModeEnumOptions.append("Channel1"); FlightModeEnumOptions.append("Channel2"); FlightModeEnumOptions.append("Channel3"); @@ -112,12 +111,12 @@ ManualControlSettings::ManualControlSettings(): UAVDataObject(OBJID, ISSINGLEINS FlightModeEnumOptions.append("Channel5"); FlightModeEnumOptions.append("Channel6"); FlightModeEnumOptions.append("Channel7"); + FlightModeEnumOptions.append("Channel8"); FlightModeEnumOptions.append("None"); fields.append( new UAVObjectField(QString("FlightMode"), QString("channel"), UAVObjectField::ENUM, FlightModeElemNames, FlightModeEnumOptions) ); QStringList Accessory1ElemNames; Accessory1ElemNames.append("0"); QStringList Accessory1EnumOptions; - Accessory1EnumOptions.append("Channel0"); Accessory1EnumOptions.append("Channel1"); Accessory1EnumOptions.append("Channel2"); Accessory1EnumOptions.append("Channel3"); @@ -125,12 +124,12 @@ ManualControlSettings::ManualControlSettings(): UAVDataObject(OBJID, ISSINGLEINS Accessory1EnumOptions.append("Channel5"); Accessory1EnumOptions.append("Channel6"); Accessory1EnumOptions.append("Channel7"); + Accessory1EnumOptions.append("Channel8"); Accessory1EnumOptions.append("None"); fields.append( new UAVObjectField(QString("Accessory1"), QString("channel"), UAVObjectField::ENUM, Accessory1ElemNames, Accessory1EnumOptions) ); QStringList Accessory2ElemNames; Accessory2ElemNames.append("0"); QStringList Accessory2EnumOptions; - Accessory2EnumOptions.append("Channel0"); Accessory2EnumOptions.append("Channel1"); Accessory2EnumOptions.append("Channel2"); Accessory2EnumOptions.append("Channel3"); @@ -138,12 +137,12 @@ ManualControlSettings::ManualControlSettings(): UAVDataObject(OBJID, ISSINGLEINS Accessory2EnumOptions.append("Channel5"); Accessory2EnumOptions.append("Channel6"); Accessory2EnumOptions.append("Channel7"); + Accessory2EnumOptions.append("Channel8"); Accessory2EnumOptions.append("None"); fields.append( new UAVObjectField(QString("Accessory2"), QString("channel"), UAVObjectField::ENUM, Accessory2ElemNames, Accessory2EnumOptions) ); QStringList Accessory3ElemNames; Accessory3ElemNames.append("0"); QStringList Accessory3EnumOptions; - Accessory3EnumOptions.append("Channel0"); Accessory3EnumOptions.append("Channel1"); Accessory3EnumOptions.append("Channel2"); Accessory3EnumOptions.append("Channel3"); @@ -151,6 +150,7 @@ ManualControlSettings::ManualControlSettings(): UAVDataObject(OBJID, ISSINGLEINS Accessory3EnumOptions.append("Channel5"); Accessory3EnumOptions.append("Channel6"); Accessory3EnumOptions.append("Channel7"); + Accessory3EnumOptions.append("Channel8"); Accessory3EnumOptions.append("None"); fields.append( new UAVObjectField(QString("Accessory3"), QString("channel"), UAVObjectField::ENUM, Accessory3ElemNames, Accessory3EnumOptions) ); QStringList Pos1StabilizationSettingsElemNames; diff --git a/ground/src/plugins/uavobjects/manualcontrolsettings.h b/ground/src/plugins/uavobjects/manualcontrolsettings.h index 174e3e12f..99f6788af 100644 --- a/ground/src/plugins/uavobjects/manualcontrolsettings.h +++ b/ground/src/plugins/uavobjects/manualcontrolsettings.h @@ -71,28 +71,28 @@ public: typedef enum { INPUTMODE_PWM=0, INPUTMODE_PPM=1, INPUTMODE_SPEKTRUM=2 } InputModeOptions; // Field Roll information /* Enumeration options for field Roll */ - typedef enum { ROLL_CHANNEL0=0, ROLL_CHANNEL1=1, ROLL_CHANNEL2=2, ROLL_CHANNEL3=3, ROLL_CHANNEL4=4, ROLL_CHANNEL5=5, ROLL_CHANNEL6=6, ROLL_CHANNEL7=7, ROLL_NONE=8 } RollOptions; + typedef enum { ROLL_CHANNEL1=0, ROLL_CHANNEL2=1, ROLL_CHANNEL3=2, ROLL_CHANNEL4=3, ROLL_CHANNEL5=4, ROLL_CHANNEL6=5, ROLL_CHANNEL7=6, ROLL_CHANNEL8=7, ROLL_NONE=8 } RollOptions; // Field Pitch information /* Enumeration options for field Pitch */ - typedef enum { PITCH_CHANNEL0=0, PITCH_CHANNEL1=1, PITCH_CHANNEL2=2, PITCH_CHANNEL3=3, PITCH_CHANNEL4=4, PITCH_CHANNEL5=5, PITCH_CHANNEL6=6, PITCH_CHANNEL7=7, PITCH_NONE=8 } PitchOptions; + typedef enum { PITCH_CHANNEL1=0, PITCH_CHANNEL2=1, PITCH_CHANNEL3=2, PITCH_CHANNEL4=3, PITCH_CHANNEL5=4, PITCH_CHANNEL6=5, PITCH_CHANNEL7=6, PITCH_CHANNEL8=7, PITCH_NONE=8 } PitchOptions; // Field Yaw information /* Enumeration options for field Yaw */ - typedef enum { YAW_CHANNEL0=0, YAW_CHANNEL1=1, YAW_CHANNEL2=2, YAW_CHANNEL3=3, YAW_CHANNEL4=4, YAW_CHANNEL5=5, YAW_CHANNEL6=6, YAW_CHANNEL7=7, YAW_NONE=8 } YawOptions; + typedef enum { YAW_CHANNEL1=0, YAW_CHANNEL2=1, YAW_CHANNEL3=2, YAW_CHANNEL4=3, YAW_CHANNEL5=4, YAW_CHANNEL6=5, YAW_CHANNEL7=6, YAW_CHANNEL8=7, YAW_NONE=8 } YawOptions; // Field Throttle information /* Enumeration options for field Throttle */ - typedef enum { THROTTLE_CHANNEL0=0, THROTTLE_CHANNEL1=1, THROTTLE_CHANNEL2=2, THROTTLE_CHANNEL3=3, THROTTLE_CHANNEL4=4, THROTTLE_CHANNEL5=5, THROTTLE_CHANNEL6=6, THROTTLE_CHANNEL7=7, THROTTLE_NONE=8 } ThrottleOptions; + typedef enum { THROTTLE_CHANNEL1=0, THROTTLE_CHANNEL2=1, THROTTLE_CHANNEL3=2, THROTTLE_CHANNEL4=3, THROTTLE_CHANNEL5=4, THROTTLE_CHANNEL6=5, THROTTLE_CHANNEL7=6, THROTTLE_CHANNEL8=7, THROTTLE_NONE=8 } ThrottleOptions; // Field FlightMode information /* Enumeration options for field FlightMode */ - typedef enum { FLIGHTMODE_CHANNEL0=0, FLIGHTMODE_CHANNEL1=1, FLIGHTMODE_CHANNEL2=2, FLIGHTMODE_CHANNEL3=3, FLIGHTMODE_CHANNEL4=4, FLIGHTMODE_CHANNEL5=5, FLIGHTMODE_CHANNEL6=6, FLIGHTMODE_CHANNEL7=7, FLIGHTMODE_NONE=8 } FlightModeOptions; + typedef enum { FLIGHTMODE_CHANNEL1=0, FLIGHTMODE_CHANNEL2=1, FLIGHTMODE_CHANNEL3=2, FLIGHTMODE_CHANNEL4=3, FLIGHTMODE_CHANNEL5=4, FLIGHTMODE_CHANNEL6=5, FLIGHTMODE_CHANNEL7=6, FLIGHTMODE_CHANNEL8=7, FLIGHTMODE_NONE=8 } FlightModeOptions; // Field Accessory1 information /* Enumeration options for field Accessory1 */ - typedef enum { ACCESSORY1_CHANNEL0=0, ACCESSORY1_CHANNEL1=1, ACCESSORY1_CHANNEL2=2, ACCESSORY1_CHANNEL3=3, ACCESSORY1_CHANNEL4=4, ACCESSORY1_CHANNEL5=5, ACCESSORY1_CHANNEL6=6, ACCESSORY1_CHANNEL7=7, ACCESSORY1_NONE=8 } Accessory1Options; + typedef enum { ACCESSORY1_CHANNEL1=0, ACCESSORY1_CHANNEL2=1, ACCESSORY1_CHANNEL3=2, ACCESSORY1_CHANNEL4=3, ACCESSORY1_CHANNEL5=4, ACCESSORY1_CHANNEL6=5, ACCESSORY1_CHANNEL7=6, ACCESSORY1_CHANNEL8=7, ACCESSORY1_NONE=8 } Accessory1Options; // Field Accessory2 information /* Enumeration options for field Accessory2 */ - typedef enum { ACCESSORY2_CHANNEL0=0, ACCESSORY2_CHANNEL1=1, ACCESSORY2_CHANNEL2=2, ACCESSORY2_CHANNEL3=3, ACCESSORY2_CHANNEL4=4, ACCESSORY2_CHANNEL5=5, ACCESSORY2_CHANNEL6=6, ACCESSORY2_CHANNEL7=7, ACCESSORY2_NONE=8 } Accessory2Options; + typedef enum { ACCESSORY2_CHANNEL1=0, ACCESSORY2_CHANNEL2=1, ACCESSORY2_CHANNEL3=2, ACCESSORY2_CHANNEL4=3, ACCESSORY2_CHANNEL5=4, ACCESSORY2_CHANNEL6=5, ACCESSORY2_CHANNEL7=6, ACCESSORY2_CHANNEL8=7, ACCESSORY2_NONE=8 } Accessory2Options; // Field Accessory3 information /* Enumeration options for field Accessory3 */ - typedef enum { ACCESSORY3_CHANNEL0=0, ACCESSORY3_CHANNEL1=1, ACCESSORY3_CHANNEL2=2, ACCESSORY3_CHANNEL3=3, ACCESSORY3_CHANNEL4=4, ACCESSORY3_CHANNEL5=5, ACCESSORY3_CHANNEL6=6, ACCESSORY3_CHANNEL7=7, ACCESSORY3_NONE=8 } Accessory3Options; + typedef enum { ACCESSORY3_CHANNEL1=0, ACCESSORY3_CHANNEL2=1, ACCESSORY3_CHANNEL3=2, ACCESSORY3_CHANNEL4=3, ACCESSORY3_CHANNEL5=4, ACCESSORY3_CHANNEL6=5, ACCESSORY3_CHANNEL7=6, ACCESSORY3_CHANNEL8=7, ACCESSORY3_NONE=8 } Accessory3Options; // Field Pos1StabilizationSettings information /* Enumeration options for field Pos1StabilizationSettings */ typedef enum { POS1STABILIZATIONSETTINGS_NONE=0, POS1STABILIZATIONSETTINGS_RATE=1, POS1STABILIZATIONSETTINGS_ATTITUDE=2 } Pos1StabilizationSettingsOptions; diff --git a/ground/src/plugins/uavobjects/manualcontrolsettings.py b/ground/src/plugins/uavobjects/manualcontrolsettings.py index 26e7958fd..a20d330d5 100644 --- a/ground/src/plugins/uavobjects/manualcontrolsettings.py +++ b/ground/src/plugins/uavobjects/manualcontrolsettings.py @@ -58,14 +58,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -77,14 +77,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -96,14 +96,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -115,14 +115,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -134,14 +134,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -153,14 +153,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -172,14 +172,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), @@ -191,14 +191,14 @@ _fields = [ \ '0', ], { - '0' : 'Channel0', - '1' : 'Channel1', - '2' : 'Channel2', - '3' : 'Channel3', - '4' : 'Channel4', - '5' : 'Channel5', - '6' : 'Channel6', - '7' : 'Channel7', + '0' : 'Channel1', + '1' : 'Channel2', + '2' : 'Channel3', + '3' : 'Channel4', + '4' : 'Channel5', + '5' : 'Channel6', + '6' : 'Channel7', + '7' : 'Channel8', '8' : 'None', } ), diff --git a/ground/src/plugins/uavobjects/mixersettings.cpp b/ground/src/plugins/uavobjects/mixersettings.cpp index 0b98c43a6..dba5e1893 100644 --- a/ground/src/plugins/uavobjects/mixersettings.cpp +++ b/ground/src/plugins/uavobjects/mixersettings.cpp @@ -68,20 +68,6 @@ MixerSettings::MixerSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, N ThrottleCurve2ElemNames.append("75"); ThrottleCurve2ElemNames.append("100"); fields.append( new UAVObjectField(QString("ThrottleCurve2"), QString("percent"), UAVObjectField::FLOAT32, ThrottleCurve2ElemNames, QStringList()) ); - QStringList Mixer0TypeElemNames; - Mixer0TypeElemNames.append("0"); - QStringList Mixer0TypeEnumOptions; - Mixer0TypeEnumOptions.append("Disabled"); - Mixer0TypeEnumOptions.append("Motor"); - Mixer0TypeEnumOptions.append("Servo"); - fields.append( new UAVObjectField(QString("Mixer0Type"), QString(""), UAVObjectField::ENUM, Mixer0TypeElemNames, Mixer0TypeEnumOptions) ); - QStringList Mixer0VectorElemNames; - Mixer0VectorElemNames.append("ThrottleCurve1"); - Mixer0VectorElemNames.append("ThrottleCurve2"); - Mixer0VectorElemNames.append("Roll"); - Mixer0VectorElemNames.append("Pitch"); - Mixer0VectorElemNames.append("Yaw"); - fields.append( new UAVObjectField(QString("Mixer0Vector"), QString(""), UAVObjectField::INT8, Mixer0VectorElemNames, QStringList()) ); QStringList Mixer1TypeElemNames; Mixer1TypeElemNames.append("0"); QStringList Mixer1TypeEnumOptions; @@ -180,6 +166,20 @@ MixerSettings::MixerSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, N Mixer7VectorElemNames.append("Pitch"); Mixer7VectorElemNames.append("Yaw"); fields.append( new UAVObjectField(QString("Mixer7Vector"), QString(""), UAVObjectField::INT8, Mixer7VectorElemNames, QStringList()) ); + QStringList Mixer8TypeElemNames; + Mixer8TypeElemNames.append("0"); + QStringList Mixer8TypeEnumOptions; + Mixer8TypeEnumOptions.append("Disabled"); + Mixer8TypeEnumOptions.append("Motor"); + Mixer8TypeEnumOptions.append("Servo"); + fields.append( new UAVObjectField(QString("Mixer8Type"), QString(""), UAVObjectField::ENUM, Mixer8TypeElemNames, Mixer8TypeEnumOptions) ); + QStringList Mixer8VectorElemNames; + Mixer8VectorElemNames.append("ThrottleCurve1"); + Mixer8VectorElemNames.append("ThrottleCurve2"); + Mixer8VectorElemNames.append("Roll"); + Mixer8VectorElemNames.append("Pitch"); + Mixer8VectorElemNames.append("Yaw"); + fields.append( new UAVObjectField(QString("Mixer8Vector"), QString(""), UAVObjectField::INT8, Mixer8VectorElemNames, QStringList()) ); // Initialize object initializeFields(fields, (quint8*)&data, NUMBYTES); @@ -227,12 +227,6 @@ void MixerSettings::setDefaultFieldValues() data.ThrottleCurve2[2] = 0.5; data.ThrottleCurve2[3] = 0.75; data.ThrottleCurve2[4] = 1; - data.Mixer0Type = 0; - data.Mixer0Vector[0] = 0; - data.Mixer0Vector[1] = 0; - data.Mixer0Vector[2] = 0; - data.Mixer0Vector[3] = 0; - data.Mixer0Vector[4] = 0; data.Mixer1Type = 0; data.Mixer1Vector[0] = 0; data.Mixer1Vector[1] = 0; @@ -275,6 +269,12 @@ void MixerSettings::setDefaultFieldValues() data.Mixer7Vector[2] = 0; data.Mixer7Vector[3] = 0; data.Mixer7Vector[4] = 0; + data.Mixer8Type = 0; + data.Mixer8Vector[0] = 0; + data.Mixer8Vector[1] = 0; + data.Mixer8Vector[2] = 0; + data.Mixer8Vector[3] = 0; + data.Mixer8Vector[4] = 0; } diff --git a/ground/src/plugins/uavobjects/mixersettings.h b/ground/src/plugins/uavobjects/mixersettings.h index 05bea39cc..005e7a481 100644 --- a/ground/src/plugins/uavobjects/mixersettings.h +++ b/ground/src/plugins/uavobjects/mixersettings.h @@ -49,8 +49,6 @@ public: float DecelTime; float ThrottleCurve1[5]; float ThrottleCurve2[5]; - quint8 Mixer0Type; - qint8 Mixer0Vector[5]; quint8 Mixer1Type; qint8 Mixer1Vector[5]; quint8 Mixer2Type; @@ -65,6 +63,8 @@ public: qint8 Mixer6Vector[5]; quint8 Mixer7Type; qint8 Mixer7Vector[5]; + quint8 Mixer8Type; + qint8 Mixer8Vector[5]; } __attribute__((packed)) DataFields; @@ -83,14 +83,6 @@ public: typedef enum { THROTTLECURVE2_0=0, THROTTLECURVE2_25=1, THROTTLECURVE2_50=2, THROTTLECURVE2_75=3, THROTTLECURVE2_100=4 } ThrottleCurve2Elem; /* Number of elements for field ThrottleCurve2 */ static const quint32 THROTTLECURVE2_NUMELEM = 5; - // Field Mixer0Type information - /* Enumeration options for field Mixer0Type */ - typedef enum { MIXER0TYPE_DISABLED=0, MIXER0TYPE_MOTOR=1, MIXER0TYPE_SERVO=2 } Mixer0TypeOptions; - // Field Mixer0Vector information - /* Array element names for field Mixer0Vector */ - typedef enum { MIXER0VECTOR_THROTTLECURVE1=0, MIXER0VECTOR_THROTTLECURVE2=1, MIXER0VECTOR_ROLL=2, MIXER0VECTOR_PITCH=3, MIXER0VECTOR_YAW=4 } Mixer0VectorElem; - /* Number of elements for field Mixer0Vector */ - static const quint32 MIXER0VECTOR_NUMELEM = 5; // Field Mixer1Type information /* Enumeration options for field Mixer1Type */ typedef enum { MIXER1TYPE_DISABLED=0, MIXER1TYPE_MOTOR=1, MIXER1TYPE_SERVO=2 } Mixer1TypeOptions; @@ -147,10 +139,18 @@ public: typedef enum { MIXER7VECTOR_THROTTLECURVE1=0, MIXER7VECTOR_THROTTLECURVE2=1, MIXER7VECTOR_ROLL=2, MIXER7VECTOR_PITCH=3, MIXER7VECTOR_YAW=4 } Mixer7VectorElem; /* Number of elements for field Mixer7Vector */ static const quint32 MIXER7VECTOR_NUMELEM = 5; + // Field Mixer8Type information + /* Enumeration options for field Mixer8Type */ + typedef enum { MIXER8TYPE_DISABLED=0, MIXER8TYPE_MOTOR=1, MIXER8TYPE_SERVO=2 } Mixer8TypeOptions; + // Field Mixer8Vector information + /* Array element names for field Mixer8Vector */ + typedef enum { MIXER8VECTOR_THROTTLECURVE1=0, MIXER8VECTOR_THROTTLECURVE2=1, MIXER8VECTOR_ROLL=2, MIXER8VECTOR_PITCH=3, MIXER8VECTOR_YAW=4 } Mixer8VectorElem; + /* Number of elements for field Mixer8Vector */ + static const quint32 MIXER8VECTOR_NUMELEM = 5; // Constants - static const quint32 OBJID = 1945801048U; + static const quint32 OBJID = 1336817486U; static const QString NAME; static const bool ISSINGLEINST = 1; static const bool ISSETTINGS = 1; diff --git a/ground/src/plugins/uavobjects/mixersettings.py b/ground/src/plugins/uavobjects/mixersettings.py index 90a377a07..38cc34121 100644 --- a/ground/src/plugins/uavobjects/mixersettings.py +++ b/ground/src/plugins/uavobjects/mixersettings.py @@ -105,33 +105,6 @@ _fields = [ \ { } ), - uavobject.UAVObjectField( - 'Mixer0Type', - 'b', - 1, - [ - '0', - ], - { - '0' : 'Disabled', - '1' : 'Motor', - '2' : 'Servo', - } - ), - uavobject.UAVObjectField( - 'Mixer0Vector', - 'b', - 5, - [ - 'ThrottleCurve1', - 'ThrottleCurve2', - 'Roll', - 'Pitch', - 'Yaw', - ], - { - } - ), uavobject.UAVObjectField( 'Mixer1Type', 'b', @@ -321,12 +294,39 @@ _fields = [ \ { } ), + uavobject.UAVObjectField( + 'Mixer8Type', + 'b', + 1, + [ + '0', + ], + { + '0' : 'Disabled', + '1' : 'Motor', + '2' : 'Servo', + } + ), + uavobject.UAVObjectField( + 'Mixer8Vector', + 'b', + 5, + [ + 'ThrottleCurve1', + 'ThrottleCurve2', + 'Roll', + 'Pitch', + 'Yaw', + ], + { + } + ), ] class MixerSettings(uavobject.UAVObject): ## Object constants - OBJID = 1945801048 + OBJID = 1336817486 NAME = "MixerSettings" METANAME = "MixerSettingsMeta" ISSINGLEINST = 1 diff --git a/ground/src/plugins/uavobjects/mixerstatus.cpp b/ground/src/plugins/uavobjects/mixerstatus.cpp index 677963f36..17aef4fed 100644 --- a/ground/src/plugins/uavobjects/mixerstatus.cpp +++ b/ground/src/plugins/uavobjects/mixerstatus.cpp @@ -42,9 +42,6 @@ MixerStatus::MixerStatus(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME) { // Create fields QList fields; - QStringList Mixer0ElemNames; - Mixer0ElemNames.append("0"); - fields.append( new UAVObjectField(QString("Mixer0"), QString(""), UAVObjectField::FLOAT32, Mixer0ElemNames, QStringList()) ); QStringList Mixer1ElemNames; Mixer1ElemNames.append("0"); fields.append( new UAVObjectField(QString("Mixer1"), QString(""), UAVObjectField::FLOAT32, Mixer1ElemNames, QStringList()) ); @@ -66,6 +63,9 @@ MixerStatus::MixerStatus(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME) QStringList Mixer7ElemNames; Mixer7ElemNames.append("0"); fields.append( new UAVObjectField(QString("Mixer7"), QString(""), UAVObjectField::FLOAT32, Mixer7ElemNames, QStringList()) ); + QStringList Mixer8ElemNames; + Mixer8ElemNames.append("0"); + fields.append( new UAVObjectField(QString("Mixer8"), QString(""), UAVObjectField::FLOAT32, Mixer8ElemNames, QStringList()) ); // Initialize object initializeFields(fields, (quint8*)&data, NUMBYTES); diff --git a/ground/src/plugins/uavobjects/mixerstatus.h b/ground/src/plugins/uavobjects/mixerstatus.h index 82c22e3a2..316210313 100644 --- a/ground/src/plugins/uavobjects/mixerstatus.h +++ b/ground/src/plugins/uavobjects/mixerstatus.h @@ -43,7 +43,6 @@ class UAVOBJECTS_EXPORT MixerStatus: public UAVDataObject public: // Field structure typedef struct { - float Mixer0; float Mixer1; float Mixer2; float Mixer3; @@ -51,11 +50,11 @@ public: float Mixer5; float Mixer6; float Mixer7; + float Mixer8; } __attribute__((packed)) DataFields; // Field information - // Field Mixer0 information // Field Mixer1 information // Field Mixer2 information // Field Mixer3 information @@ -63,10 +62,11 @@ public: // Field Mixer5 information // Field Mixer6 information // Field Mixer7 information + // Field Mixer8 information // Constants - static const quint32 OBJID = 2468388390U; + static const quint32 OBJID = 4137893648U; static const QString NAME; static const bool ISSINGLEINST = 1; static const bool ISSETTINGS = 0; diff --git a/ground/src/plugins/uavobjects/mixerstatus.py b/ground/src/plugins/uavobjects/mixerstatus.py index e5424bcf4..9110fc56c 100644 --- a/ground/src/plugins/uavobjects/mixerstatus.py +++ b/ground/src/plugins/uavobjects/mixerstatus.py @@ -37,16 +37,6 @@ from collections import namedtuple # This is a list of instances of the data fields contained in this object _fields = [ \ - uavobject.UAVObjectField( - 'Mixer0', - 'f', - 1, - [ - '0', - ], - { - } - ), uavobject.UAVObjectField( 'Mixer1', 'f', @@ -117,12 +107,22 @@ _fields = [ \ { } ), + uavobject.UAVObjectField( + 'Mixer8', + 'f', + 1, + [ + '0', + ], + { + } + ), ] class MixerStatus(uavobject.UAVObject): ## Object constants - OBJID = 2468388390 + OBJID = 4137893648 NAME = "MixerStatus" METANAME = "MixerStatusMeta" ISSINGLEINST = 1 diff --git a/ground/src/shared/uavobjectdefinition/actuatorsettings.xml b/ground/src/shared/uavobjectdefinition/actuatorsettings.xml index f78908d2e..eb444b560 100644 --- a/ground/src/shared/uavobjectdefinition/actuatorsettings.xml +++ b/ground/src/shared/uavobjectdefinition/actuatorsettings.xml @@ -1,20 +1,20 @@ Settings for the @ref ActuatorModule that controls the channel assignments for the mixer based on AircraftType - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/ground/src/shared/uavobjectdefinition/manualcontrolsettings.xml b/ground/src/shared/uavobjectdefinition/manualcontrolsettings.xml index 0f79578c8..363456ad4 100644 --- a/ground/src/shared/uavobjectdefinition/manualcontrolsettings.xml +++ b/ground/src/shared/uavobjectdefinition/manualcontrolsettings.xml @@ -2,14 +2,14 @@ Settings to indicate how to decode receiver input by @ref ManualControlModule. - - - - - - - - + + + + + + + + diff --git a/ground/src/shared/uavobjectdefinition/mixersettings.xml b/ground/src/shared/uavobjectdefinition/mixersettings.xml index 051b2d2ef..18681d837 100644 --- a/ground/src/shared/uavobjectdefinition/mixersettings.xml +++ b/ground/src/shared/uavobjectdefinition/mixersettings.xml @@ -7,8 +7,6 @@ - - @@ -23,6 +21,8 @@ + + diff --git a/ground/src/shared/uavobjectdefinition/mixerstatus.xml b/ground/src/shared/uavobjectdefinition/mixerstatus.xml index d87ba1a11..2d39a0307 100644 --- a/ground/src/shared/uavobjectdefinition/mixerstatus.xml +++ b/ground/src/shared/uavobjectdefinition/mixerstatus.xml @@ -1,7 +1,6 @@ Status for the matrix mixer showing the output of each mixer after all scaling - @@ -9,6 +8,7 @@ +