1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-03-15 07:29:15 +01:00

LP-120 Add conditions for GPS+I2C - SRXL fixes

This commit is contained in:
Laurent Lalanne 2015-10-31 15:11:33 +01:00
parent 89b992176e
commit 7b3a0e504b
4 changed files with 28 additions and 7 deletions

View File

@ -40,8 +40,10 @@ void AirSpeedPage::initializePage(VehicleConfigurationSource *settings)
// Enable all // Enable all
setItemDisabled(-1, false); setItemDisabled(-1, false);
if (settings->getInputType() == VehicleConfigurationSource::INPUT_SBUS || if (settings->getInputType() == VehicleConfigurationSource::INPUT_SBUS ||
settings->getInputType() == VehicleConfigurationSource::INPUT_DSM) { settings->getInputType() == VehicleConfigurationSource::INPUT_DSM ||
// Disable non estimated sensors if ports are taken by receivers settings->getInputType() == VehicleConfigurationSource::INPUT_SRXL ||
settings->getGpsType() == VehicleConfigurationSource::GPS_UBX_FLEXI_I2CMAG) {
// Disable non estimated sensors if ports are taken by receivers or I2C Mag
setItemDisabled(VehicleConfigurationSource::AIRSPEED_EAGLETREE, true); setItemDisabled(VehicleConfigurationSource::AIRSPEED_EAGLETREE, true);
setItemDisabled(VehicleConfigurationSource::AIRSPEED_MS4525, true); setItemDisabled(VehicleConfigurationSource::AIRSPEED_MS4525, true);
if (getSelectedItem()->id() == VehicleConfigurationSource::AIRSPEED_EAGLETREE || if (getSelectedItem()->id() == VehicleConfigurationSource::AIRSPEED_EAGLETREE ||

View File

@ -37,7 +37,18 @@ GpsPage::~GpsPage()
void GpsPage::initializePage(VehicleConfigurationSource *settings) void GpsPage::initializePage(VehicleConfigurationSource *settings)
{ {
Q_UNUSED(settings); // Enable all
setItemDisabled(-1, false);
if (settings->getInputType() == VehicleConfigurationSource::INPUT_SBUS ||
settings->getInputType() == VehicleConfigurationSource::INPUT_DSM ||
settings->getInputType() == VehicleConfigurationSource::INPUT_SRXL) {
// Disable GPS+I2C Mag
setItemDisabled(VehicleConfigurationSource::GPS_UBX_FLEXI_I2CMAG, true);
if (getSelectedItem()->id() == VehicleConfigurationSource::GPS_UBX_FLEXI_I2CMAG) {
// If previously selected invalid GPS, reset to no GPS
setSelectedItem(VehicleConfigurationSource::GPS_DISABLED);
}
}
} }
bool GpsPage::validatePage(SelectionItem *selectedItem) bool GpsPage::validatePage(SelectionItem *selectedItem)

View File

@ -377,6 +377,9 @@ QString SetupWizard::getSummaryText()
case INPUT_DSM: case INPUT_DSM:
summary.append(tr("Spektrum Satellite")); summary.append(tr("Spektrum Satellite"));
break; break;
case INPUT_SRXL:
summary.append(tr("Multiplex SRXL"));
break;
default: default:
summary.append(tr("Unknown")); summary.append(tr("Unknown"));
} }

View File

@ -159,13 +159,16 @@ void VehicleConfigurationHelper::applyHardwareConfiguration()
} }
break; break;
case VehicleConfigurationSource::INPUT_SBUS: case VehicleConfigurationSource::INPUT_SBUS:
// We have to set teletry on flexport since s.bus needs the mainport. // We have to set teletry on flexiport since s.bus needs the mainport.
data.CC_MainPort = HwSettings::CC_MAINPORT_SBUS; data.CC_MainPort = HwSettings::CC_MAINPORT_SBUS;
data.CC_FlexiPort = HwSettings::CC_FLEXIPORT_TELEMETRY; data.CC_FlexiPort = HwSettings::CC_FLEXIPORT_TELEMETRY;
break; break;
case VehicleConfigurationSource::INPUT_DSM: case VehicleConfigurationSource::INPUT_DSM:
data.CC_FlexiPort = HwSettings::CC_FLEXIPORT_DSM; data.CC_FlexiPort = HwSettings::CC_FLEXIPORT_DSM;
break; break;
case VehicleConfigurationSource::INPUT_SRXL:
data.CC_FlexiPort = HwSettings::CC_FLEXIPORT_SRXL;
break;
default: default:
break; break;
} }
@ -193,7 +196,7 @@ void VehicleConfigurationHelper::applyHardwareConfiguration()
break; break;
case VehicleConfigurationSource::INPUT_SBUS: case VehicleConfigurationSource::INPUT_SBUS:
data.RM_MainPort = HwSettings::RM_MAINPORT_SBUS; data.RM_MainPort = HwSettings::RM_MAINPORT_SBUS;
// We have to set telemetry on flexport since s.bus needs the mainport on all but Revo. // We have to set telemetry on flexiport since s.bus needs the mainport on all but Revo.
if (m_configSource->getControllerType() != VehicleConfigurationSource::CONTROLLER_REVO) { if (m_configSource->getControllerType() != VehicleConfigurationSource::CONTROLLER_REVO) {
data.RM_FlexiPort = HwSettings::RM_FLEXIPORT_TELEMETRY; data.RM_FlexiPort = HwSettings::RM_FLEXIPORT_TELEMETRY;
} }
@ -238,6 +241,7 @@ void VehicleConfigurationHelper::applyHardwareConfiguration()
AuxMagSettings *magSettings = AuxMagSettings::GetInstance(m_uavoManager); AuxMagSettings *magSettings = AuxMagSettings::GetInstance(m_uavoManager);
Q_ASSERT(magSettings); Q_ASSERT(magSettings);
AuxMagSettings::DataFields magsData = magSettings->getData(); AuxMagSettings::DataFields magsData = magSettings->getData();
magsData.Type = AuxMagSettings::TYPE_GPSV9;
magsData.Usage = AuxMagSettings::USAGE_AUXONLY; magsData.Usage = AuxMagSettings::USAGE_AUXONLY;
magSettings->setData(magsData); magSettings->setData(magsData);
addModifiedObject(magSettings, tr("Writing External Mag sensor settings")); addModifiedObject(magSettings, tr("Writing External Mag sensor settings"));
@ -251,7 +255,8 @@ void VehicleConfigurationHelper::applyHardwareConfiguration()
AuxMagSettings *magSettings = AuxMagSettings::GetInstance(m_uavoManager); AuxMagSettings *magSettings = AuxMagSettings::GetInstance(m_uavoManager);
Q_ASSERT(magSettings); Q_ASSERT(magSettings);
AuxMagSettings::DataFields magsData = magSettings->getData(); AuxMagSettings::DataFields magsData = magSettings->getData();
magsData.Usage = AuxMagSettings::USAGE_FLEXONLY; magsData.Type = AuxMagSettings::TYPE_FLEXI;
magsData.Usage = AuxMagSettings::USAGE_AUXONLY;
magSettings->setData(magsData); magSettings->setData(magsData);
addModifiedObject(magSettings, tr("Writing I2C Mag sensor settings")); addModifiedObject(magSettings, tr("Writing I2C Mag sensor settings"));
} }