1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-27 16:54:15 +01:00

OP-39 Fixed a bug when changing receiver type in wizard. The channel group type was not correctly set in manual control settings.

Added support in code for all known DSM types (2/X10Bit/X11Bit). Still have to add/create GUI/Icons to enable selection of specific protocol.
Renamed some enums to have better and more correct names.
This commit is contained in:
Fredrik Arvidsson 2012-09-17 21:40:42 +02:00
parent 30c1523b80
commit 57169ceeb2
5 changed files with 47 additions and 12 deletions

View File

@ -133,7 +133,9 @@ void ConnectionDiagram::setupGraphicsScene()
case VehicleConfigurationSource::INPUT_SBUS:
elementsToShow << "sbus";
break;
case VehicleConfigurationSource::INPUT_DSM:
case VehicleConfigurationSource::INPUT_DSMX10:
case VehicleConfigurationSource::INPUT_DSMX11:
case VehicleConfigurationSource::INPUT_DSM2:
elementsToShow << "satellite";
break;
default:

View File

@ -57,7 +57,7 @@ bool InputPage::validatePage()
getWizard()->setInputType(SetupWizard::INPUT_SBUS);
}
else if(ui->spectrumButton->isChecked()) {
getWizard()->setInputType(SetupWizard::INPUT_DSM);
getWizard()->setInputType(SetupWizard::INPUT_DSM2);
}
else {
getWizard()->setInputType(SetupWizard::INPUT_PWM);
@ -82,7 +82,7 @@ bool InputPage::restartNeeded(VehicleConfigurationSource::INPUT_TYPE selectedTyp
return data.CC_RcvrPort != HwSettings::CC_RCVRPORT_PPM;
case VehicleConfigurationSource::INPUT_SBUS:
return data.CC_MainPort != HwSettings::CC_MAINPORT_SBUS;
case VehicleConfigurationSource::INPUT_DSM:
case VehicleConfigurationSource::INPUT_DSM2:
// TODO: Handle all of the DSM types ?? Which is most common?
return data.CC_MainPort != HwSettings::CC_MAINPORT_DSM2;
default:

View File

@ -217,9 +217,15 @@ QString SetupWizard::getSummaryText()
case INPUT_SBUS:
summary.append(tr("Futaba S.Bus"));
break;
case INPUT_DSM:
case INPUT_DSM2:
summary.append(tr("Spectrum satellite (DSM2)"));
break;
case INPUT_DSMX10:
summary.append(tr("Spectrum satellite (DSMX10BIT)"));
break;
case INPUT_DSMX11:
summary.append(tr("Spectrum satellite (DSMX11BIT)"));
break;
default:
summary.append(tr("Unknown"));
}

View File

@ -118,8 +118,13 @@ void VehicleConfigurationHelper::applyHardwareConfiguration()
case VehicleConfigurationSource::INPUT_SBUS:
data.CC_MainPort = HwSettings::CC_MAINPORT_SBUS;
break;
case VehicleConfigurationSource::INPUT_DSM:
// TODO: Handle all of the DSM types ?? Which is most common?
case VehicleConfigurationSource::INPUT_DSMX10:
data.CC_MainPort = HwSettings::CC_MAINPORT_DSMX10BIT;
break;
case VehicleConfigurationSource::INPUT_DSMX11:
data.CC_MainPort = HwSettings::CC_MAINPORT_DSMX11BIT;
break;
case VehicleConfigurationSource::INPUT_DSM2:
data.CC_MainPort = HwSettings::CC_MAINPORT_DSM2;
break;
default:
@ -357,11 +362,33 @@ void VehicleConfigurationHelper::applyManualControlDefaults()
ManualControlSettings *mcSettings = ManualControlSettings::GetInstance(m_uavoManager);
Q_ASSERT(mcSettings);
ManualControlSettings::DataFields cData = mcSettings->getData();
cData.ChannelGroups[ManualControlSettings::CHANNELGROUPS_THROTTLE] = ManualControlSettings::CHANNELGROUPS_PWM;
cData.ChannelGroups[ManualControlSettings::CHANNELGROUPS_ROLL] = ManualControlSettings::CHANNELGROUPS_PWM;
cData.ChannelGroups[ManualControlSettings::CHANNELGROUPS_YAW] = ManualControlSettings::CHANNELGROUPS_PWM;
cData.ChannelGroups[ManualControlSettings::CHANNELGROUPS_PITCH] = ManualControlSettings::CHANNELGROUPS_PWM;
cData.ChannelGroups[ManualControlSettings::CHANNELGROUPS_FLIGHTMODE] = ManualControlSettings::CHANNELGROUPS_PWM;
ManualControlSettings::ChannelGroupsOptions channelType = ManualControlSettings::CHANNELGROUPS_PWM;
switch(m_configSource->getInputType())
{
case VehicleConfigurationSource::INPUT_PWM:
channelType = ManualControlSettings::CHANNELGROUPS_PWM;
break;
case VehicleConfigurationSource::INPUT_PPM:
channelType = ManualControlSettings::CHANNELGROUPS_PPM;
break;
case VehicleConfigurationSource::INPUT_SBUS:
channelType = ManualControlSettings::CHANNELGROUPS_SBUS;
break;
case VehicleConfigurationSource::INPUT_DSMX10:
case VehicleConfigurationSource::INPUT_DSMX11:
case VehicleConfigurationSource::INPUT_DSM2:
channelType = ManualControlSettings::CHANNELGROUPS_DSMMAINPORT;
break;
default:
break;
}
cData.ChannelGroups[ManualControlSettings::CHANNELGROUPS_THROTTLE] = channelType;
cData.ChannelGroups[ManualControlSettings::CHANNELGROUPS_ROLL] = channelType;
cData.ChannelGroups[ManualControlSettings::CHANNELGROUPS_YAW] = channelType;
cData.ChannelGroups[ManualControlSettings::CHANNELGROUPS_PITCH] = channelType;
cData.ChannelGroups[ManualControlSettings::CHANNELGROUPS_FLIGHTMODE] = channelType;
cData.ChannelNumber[ManualControlSettings::CHANNELGROUPS_THROTTLE] = 1;
cData.ChannelNumber[ManualControlSettings::CHANNELGROUPS_ROLL] = 2;

View File

@ -63,7 +63,7 @@ public:
MULTI_ROTOR_OCTO_V, MULTI_ROTOR_OCTO_COAX_X, MULTI_ROTOR_OCTO_COAX_PLUS, FIXED_WING_AILERON,
FIXED_WING_VTAIL, HELI_CCPM};
enum ESC_TYPE {ESC_RAPID, ESC_LEGACY, ESC_UNKNOWN};
enum INPUT_TYPE {INPUT_PWM, INPUT_PPM, INPUT_SBUS, INPUT_DSM, INPUT_UNKNOWN};
enum INPUT_TYPE {INPUT_PWM, INPUT_PPM, INPUT_SBUS, INPUT_DSMX10, INPUT_DSMX11, INPUT_DSM2, INPUT_UNKNOWN};
virtual VehicleConfigurationSource::CONTROLLER_TYPE getControllerType() const = 0;
virtual VehicleConfigurationSource::VEHICLE_TYPE getVehicleType() const = 0;