int CopterControl::queryMaxGyroRate() { ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); UAVObjectManager *uavoManager = pm->getObject<UAVObjectManager>(); HwCopterControl *hwCopterControl = HwCopterControl::GetInstance(uavoManager); UAVObjectUtilManager* utilMngr = pm->getObject<UAVObjectUtilManager>(); Q_ASSERT(hwCopterControl); Q_ASSERT(utilMngr); if (!hwCopterControl) return 0; HwCopterControl::DataFields settings = hwCopterControl->getData(); int CC_Version = (utilMngr->getBoardModel() & 0x00FF); if(CC_Version == 1) return 500; switch(settings.GyroRange) { case HwCopterControl::GYRORANGE_250: return 250; case HwCopterControl::GYRORANGE_500: return 500; case HwCopterControl::GYRORANGE_1000: return 1000; case HwCopterControl::GYRORANGE_2000: return 2000; default: return 500; } }
void ConfigStabilizationWidget::onBoardConnected() { ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); UAVObjectUtilManager *utilMngr = pm->getObject<UAVObjectUtilManager>(); Q_ASSERT(utilMngr); boardModel = utilMngr->getBoardModel(); // If Revolution board enable Althold tab, otherwise disable it ui->AltitudeHold->setEnabled((boardModel & 0xff00) == 0x0900); }
ConfigCCHWWidget::ConfigCCHWWidget(QWidget *parent) : ConfigTaskWidget(parent) { m_telemetry = new Ui_CC_HW_Widget(); m_telemetry->setupUi(this); ExtensionSystem::PluginManager *pm=ExtensionSystem::PluginManager::instance(); Core::Internal::GeneralSettings * settings=pm->getObject<Core::Internal::GeneralSettings>(); if(!settings->useExpertMode()) m_telemetry->saveTelemetryToRAM->setVisible(false); UAVObjectUtilManager* utilMngr = pm->getObject<UAVObjectUtilManager>(); int id = utilMngr->getBoardModel(); switch (id) { case 0x0101: m_telemetry->label_2->setPixmap(QPixmap(":/uploader/images/deviceID-0101.svg")); break; case 0x0301: m_telemetry->label_2->setPixmap(QPixmap(":/uploader/images/deviceID-0301.svg")); break; case 0x0401: m_telemetry->label_2->setPixmap(QPixmap(":/configgadget/images/coptercontrol.svg")); break; case 0x0402: m_telemetry->label_2->setPixmap(QPixmap(":/configgadget/images/coptercontrol.svg")); break; case 0x0201: m_telemetry->label_2->setPixmap(QPixmap(":/uploader/images/deviceID-0201.svg")); break; default: m_telemetry->label_2->setPixmap(QPixmap(":/configgadget/images/coptercontrol.svg")); break; } addApplySaveButtons(m_telemetry->saveTelemetryToRAM,m_telemetry->saveTelemetryToSD); addUAVObjectToWidgetRelation("HwCopterControl","FlexiPort",m_telemetry->cbFlexi); addUAVObjectToWidgetRelation("HwCopterControl","MainPort",m_telemetry->cbTele); addUAVObjectToWidgetRelation("HwCopterControl","RcvrPort",m_telemetry->cbRcvr); addUAVObjectToWidgetRelation("HwCopterControl","USB_HIDPort",m_telemetry->cbUsbHid); addUAVObjectToWidgetRelation("HwCopterControl","USB_VCPPort",m_telemetry->cbUsbVcp); addUAVObjectToWidgetRelation("ModuleSettings","TelemetrySpeed",m_telemetry->telemetrySpeed); addUAVObjectToWidgetRelation("ModuleSettings","GPSSpeed",m_telemetry->gpsSpeed); addUAVObjectToWidgetRelation("ModuleSettings","ComUsbBridgeSpeed",m_telemetry->comUsbBridgeSpeed); // Load UAVObjects to widget relations from UI file // using objrelation dynamic property autoLoadWidgets(); connect(m_telemetry->cchwHelp,SIGNAL(clicked()),this,SLOT(openHelp())); enableControls(false); populateWidgets(); refreshWidgetsValues(); forceConnectedState(); }
void ConfigGadgetWidget::onAutopilotConnect() { // qDebug() << "ConfigGadgetWidget::onAutopilotConnect"; // Check what Board type we are talking to, and if necessary, remove/add tabs in the config gadget ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); UAVObjectUtilManager *utilMngr = pm->getObject<UAVObjectUtilManager>(); if (utilMngr) { int board = utilMngr->getBoardModel(); if ((board & 0xff00) == 0x0400) { // CopterControl family ConfigTaskWidget *widget; widget = new ConfigCCAttitudeWidget(this); widget->bind(); stackWidget->replaceTab(ConfigGadgetWidget::Sensors, widget); widget = new ConfigCCHWWidget(this); widget->bind(); stackWidget->replaceTab(ConfigGadgetWidget::Hardware, widget); } else if ((board & 0xff00) == 0x0900) { // Revolution family ConfigTaskWidget *widget; widget = new ConfigRevoWidget(this); widget->bind(); stackWidget->replaceTab(ConfigGadgetWidget::Sensors, widget); if (board == 0x0903 || board == 0x0904) { widget = new ConfigRevoHWWidget(this); } else if (board == 0x0905) { widget = new ConfigRevoNanoHWWidget(this); } widget->bind(); stackWidget->replaceTab(ConfigGadgetWidget::Hardware, widget); } else if ((board & 0xff00) == 0x9200) { // Sparky2 ConfigTaskWidget *widget; widget = new ConfigRevoWidget(this); widget->bind(); stackWidget->replaceTab(ConfigGadgetWidget::Sensors, widget); widget = new ConfigSparky2HWWidget(this); widget->bind(); stackWidget->replaceTab(ConfigGadgetWidget::Hardware, widget); } else { // Unknown board qWarning() << "Unknown board " << board; } } }
SetupWizard::CONTROLLER_TYPE ControllerPage::getControllerType() { ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); UAVObjectUtilManager* utilMngr = pm->getObject<UAVObjectUtilManager>(); int id = utilMngr->getBoardModel(); switch (id) { case 0x0301: return SetupWizard::CONTROLLER_PIPX; case 0x0401: return SetupWizard::CONTROLLER_CC; case 0x0402: return SetupWizard::CONTROLLER_CC3D; case 0x0901: return SetupWizard::CONTROLLER_REVO; default: return SetupWizard::CONTROLLER_UNKNOWN; } }
ConfigCCHWWidget::ConfigCCHWWidget(QWidget *parent) : ConfigTaskWidget(parent) { m_telemetry = new Ui_CC_HW_Widget(); m_telemetry->setupUi(this); ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); Core::Internal::GeneralSettings *settings = pm->getObject<Core::Internal::GeneralSettings>(); if (!settings->useExpertMode()) { m_telemetry->saveTelemetryToRAM->setVisible(false); } UAVObjectUtilManager *utilMngr = pm->getObject<UAVObjectUtilManager>(); int id = utilMngr->getBoardModel(); switch (id) { case 0x0101: m_telemetry->label_2->setPixmap(QPixmap(":/uploader/images/deviceID-0101.svg")); break; case 0x0301: m_telemetry->label_2->setPixmap(QPixmap(":/uploader/images/deviceID-0301.svg")); break; case 0x0401: m_telemetry->label_2->setPixmap(QPixmap(":/configgadget/images/coptercontrol.svg")); break; case 0x0402: m_telemetry->label_2->setPixmap(QPixmap(":/configgadget/images/coptercontrol.svg")); break; case 0x0201: m_telemetry->label_2->setPixmap(QPixmap(":/uploader/images/deviceID-0201.svg")); break; default: m_telemetry->label_2->setPixmap(QPixmap(":/configgadget/images/coptercontrol.svg")); break; } addApplySaveButtons(m_telemetry->saveTelemetryToRAM, m_telemetry->saveTelemetryToSD); addWidgetBinding("HwSettings", "CC_FlexiPort", m_telemetry->cbFlexi); addWidgetBinding("HwSettings", "CC_MainPort", m_telemetry->cbTele); addWidgetBinding("HwSettings", "CC_RcvrPort", m_telemetry->cbRcvr); addWidgetBinding("HwSettings", "USB_HIDPort", m_telemetry->cbUsbHid); addWidgetBinding("HwSettings", "USB_VCPPort", m_telemetry->cbUsbVcp); addWidgetBinding("HwSettings", "TelemetrySpeed", m_telemetry->telemetrySpeed); addWidgetBinding("HwSettings", "GPSSpeed", m_telemetry->gpsSpeed); // Add Gps protocol configuration HwSettings *hwSettings = HwSettings::GetInstance(getObjectManager()); HwSettings::DataFields hwSettingsData = hwSettings->getData(); if (hwSettingsData.OptionalModules[HwSettings::OPTIONALMODULES_GPS] != HwSettings::OPTIONALMODULES_ENABLED) { m_telemetry->gpsProtocol->setEnabled(false); m_telemetry->gpsProtocol->setToolTip(tr("Enable GPS module and reboot the board to be able to select GPS protocol")); } else { addWidgetBinding("GPSSettings", "DataProtocol", m_telemetry->gpsProtocol); } addWidgetBinding("HwSettings", "ComUsbBridgeSpeed", m_telemetry->comUsbBridgeSpeed); connect(m_telemetry->cchwHelp, SIGNAL(clicked()), this, SLOT(openHelp())); enableSaveButtons(false); populateWidgets(); refreshWidgetsValues(); forceConnectedState(); }
void UsageTrackerPlugin::collectUsageParameters(QMap<QString, QString> ¶meters) { ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); UAVObjectUtilManager *utilMngr = pm->getObject<UAVObjectUtilManager>(); QByteArray description = utilMngr->getBoardDescription(); deviceDescriptorStruct devDesc; if (UAVObjectUtilManager::descriptionToStructure(description, devDesc)) { int boardModel = utilMngr->getBoardModel(); parameters["board_type"] = "0x" + QString::number(boardModel, 16).toLower(); parameters["board_serial"] = utilMngr->getBoardCPUSerial().toHex(); parameters["bl_version"] = QString::number(utilMngr->getBootloaderRevision()); parameters["fw_tag"] = devDesc.gitTag; parameters["fw_hash"] = devDesc.gitHash; parameters["os_version"] = QSysInfo::prettyProductName() + " " + QSysInfo::currentCpuArchitecture(); parameters["os_threads"] = QString::number(QThread::idealThreadCount()); parameters["os_timezone"] = QTimeZone::systemTimeZoneId(); parameters["gcs_version"] = VersionInfo::revision(); // Configuration parameters ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); UAVObjectManager *objManager = pm->getObject<UAVObjectManager>(); parameters["conf_receiver"] = getUAVFieldValue(objManager, "ManualControlSettings", "ChannelGroups", 0); parameters["conf_vehicle"] = getUAVFieldValue(objManager, "SystemSettings", "AirframeType"); if ((boardModel & 0xff00) == 0x0400) { // CopterControl family parameters["conf_rport"] = getUAVFieldValue(objManager, "HwSettings", "CC_RcvrPort"); parameters["conf_mport"] = getUAVFieldValue(objManager, "HwSettings", "CC_MainPort"); parameters["conf_fport"] = getUAVFieldValue(objManager, "HwSettings", "CC_FlexiPort"); } else if ((boardModel & 0xff00) == 0x0900) { // Revolution family parameters["conf_rport"] = getUAVFieldValue(objManager, "HwSettings", "RM_RcvrPort"); parameters["conf_mport"] = getUAVFieldValue(objManager, "HwSettings", "RM_MainPort"); parameters["conf_fport"] = getUAVFieldValue(objManager, "HwSettings", "RM_FlexiPort"); parameters["conf_fusion"] = getUAVFieldValue(objManager, "RevoSettings", "FusionAlgorithm"); } parameters["conf_uport"] = getUAVFieldValue(objManager, "HwSettings", "USB_HIDPort"); parameters["conf_vport"] = getUAVFieldValue(objManager, "HwSettings", "USB_VCPPort"); parameters["conf_rotation"] = QString("[%1:%2:%3]") .arg(getUAVFieldValue(objManager, "AttitudeSettings", "BoardRotation", 0)) .arg(getUAVFieldValue(objManager, "AttitudeSettings", "BoardRotation", 1)) .arg(getUAVFieldValue(objManager, "AttitudeSettings", "BoardRotation", 2)); parameters["conf_pidr"] = QString("[%1:%2:%3:%4][%5:%6:%7:%8][%9:%10:%11:%12]") .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "RollRatePID", 0)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "RollRatePID", 1)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "RollRatePID", 2)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "RollRatePID", 3)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "PitchRatePID", 0)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "PitchRatePID", 1)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "PitchRatePID", 2)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "PitchRatePID", 3)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "YawRatePID", 0)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "YawRatePID", 1)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "YawRatePID", 2)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "YawRatePID", 3)); parameters["conf_pia"] = QString("[%1:%2:%3][%4:%5:%6][%7:%8:%9]") .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "RollPI", 0)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "RollPI", 1)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "RollPI", 2)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "PitchPI", 0)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "PitchPI", 1)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "PitchPI", 2)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "YawPI", 0)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "YawPI", 1)) .arg(getUAVFieldValue(objManager, "StabilizationSettingsBank1", "YawPI", 2)); parameters["conf_tps"] = getUAVFieldValue(objManager, "StabilizationSettingsBank1", "EnableThrustPIDScaling"); parameters["conf_piro"] = getUAVFieldValue(objManager, "StabilizationSettingsBank1", "EnablePiroComp"); parameters["conf_fmcount"] = getUAVFieldValue(objManager, "ManualControlSettings", "FlightModeNumber"); parameters["conf_fmodes"] = QString("[%1:%2:%3]").arg(getUAVFieldValue(objManager, "FlightModeSettings", "FlightModePosition", 0)) .arg(getUAVFieldValue(objManager, "FlightModeSettings", "FlightModePosition", 1)) .arg(getUAVFieldValue(objManager, "FlightModeSettings", "FlightModePosition", 2)); } }