1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-11 19:24:10 +01:00

OP-1222 Renamed some pages. Added support for both esc and servo types.

This commit is contained in:
m_thread 2014-08-22 01:40:05 +02:00
parent a7ab68f539
commit a893f6ff2b
12 changed files with 146 additions and 112 deletions

View File

@ -1,11 +1,11 @@
/** /**
****************************************************************************** ******************************************************************************
* *
* @file outputpage.cpp * @file escpage.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2012. * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2014.
* @addtogroup * @addtogroup
* @{ * @{
* @addtogroup OutputPage * @addtogroup EscPage
* @{ * @{
* @brief * @brief
*****************************************************************************/ *****************************************************************************/
@ -25,29 +25,29 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#include "outputpage.h" #include "escpage.h"
#include "ui_outputpage.h" #include "ui_escpage.h"
#include "setupwizard.h" #include "setupwizard.h"
OutputPage::OutputPage(SetupWizard *wizard, QWidget *parent) : EscPage::EscPage(SetupWizard *wizard, QWidget *parent) :
AbstractWizardPage(wizard, parent), AbstractWizardPage(wizard, parent),
ui(new Ui::OutputPage) ui(new Ui::EscPage)
{ {
ui->setupUi(this); ui->setupUi(this);
} }
OutputPage::~OutputPage() EscPage::~EscPage()
{ {
delete ui; delete ui;
} }
bool OutputPage::validatePage() bool EscPage::validatePage()
{ {
if (ui->rapidESCButton->isChecked()) { if (ui->rapidESCButton->isChecked()) {
getWizard()->setActuatorType(SetupWizard::ESC_RAPID); getWizard()->setEscType(SetupWizard::ESC_RAPID);
} else { } else {
getWizard()->setActuatorType(SetupWizard::ESC_LEGACY); getWizard()->setEscType(SetupWizard::ESC_LEGACY);
} }
return true; return true;

View File

@ -1,11 +1,11 @@
/** /**
****************************************************************************** ******************************************************************************
* *
* @file outputpage.h * @file escpage.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2012. * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2014.
* @addtogroup * @addtogroup
* @{ * @{
* @addtogroup OutputPage * @addtogroup EscPage
* @{ * @{
* @brief * @brief
*****************************************************************************/ *****************************************************************************/
@ -25,25 +25,25 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#ifndef OUTPUTPAGE_H #ifndef ESCPAGE_H
#define OUTPUTPAGE_H #define ESCPAGE_H
#include "abstractwizardpage.h" #include "abstractwizardpage.h"
namespace Ui { namespace Ui {
class OutputPage; class EscPage;
} }
class OutputPage : public AbstractWizardPage { class EscPage : public AbstractWizardPage {
Q_OBJECT Q_OBJECT
public: public:
explicit OutputPage(SetupWizard *wizard, QWidget *parent = 0); explicit EscPage(SetupWizard *wizard, QWidget *parent = 0);
~OutputPage(); ~EscPage();
bool validatePage(); bool validatePage();
private: private:
Ui::OutputPage *ui; Ui::EscPage *ui;
}; };
#endif // OUTPUTPAGE_H #endif // ESCPAGE_H

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>OutputPage</class> <class>EscPage</class>
<widget class="QWizardPage" name="OutputPage"> <widget class="QWizardPage" name="EscPage">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>

View File

@ -120,7 +120,7 @@ void OutputCalibrationPage::setupVehicle()
// The channel number to configure for each step. // The channel number to configure for each step.
m_channelIndex << 0 << 0 << 1 << 2 << 3 << 3 << 3; m_channelIndex << 0 << 0 << 1 << 2 << 3 << 3 << 3;
setupActuatorMinMaxAndNeutral(0, 1, 3); setupActuatorMinMaxAndNeutral(0, 2, 3);
getWizard()->setActuatorSettings(m_actuatorSettings); getWizard()->setActuatorSettings(m_actuatorSettings);
break; break;

View File

@ -25,28 +25,28 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#include "outputfixedwingpage.h" #include "servopage.h"
#include "ui_outputfixedwingpage.h" #include "ui_servopage.h"
#include "setupwizard.h" #include "setupwizard.h"
OutputFixedwingPage::OutputFixedwingPage(SetupWizard *wizard, QWidget *parent) : ServoPage::ServoPage(SetupWizard *wizard, QWidget *parent) :
AbstractWizardPage(wizard, parent), AbstractWizardPage(wizard, parent),
ui(new Ui::OutputFixedwingPage) ui(new Ui::ServoPage)
{ {
ui->setupUi(this); ui->setupUi(this);
} }
OutputFixedwingPage::~OutputFixedwingPage() ServoPage::~ServoPage()
{ {
delete ui; delete ui;
} }
bool OutputFixedwingPage::validatePage() bool ServoPage::validatePage()
{ {
if (ui->ServoTypeButton->isChecked()) { if (ui->ServoTypeButton->isChecked()) {
getWizard()->setActuatorType(SetupWizard::SERVO_DIGITAL); getWizard()->setServoType(SetupWizard::SERVO_DIGITAL);
} else { } else {
getWizard()->setActuatorType(SetupWizard::SERVO_ANALOG); getWizard()->setServoType(SetupWizard::SERVO_ANALOG);
} }
return true; return true;

View File

@ -31,19 +31,19 @@
#include "abstractwizardpage.h" #include "abstractwizardpage.h"
namespace Ui { namespace Ui {
class OutputFixedwingPage; class ServoPage;
} }
class OutputFixedwingPage : public AbstractWizardPage { class ServoPage : public AbstractWizardPage {
Q_OBJECT Q_OBJECT
public: public:
explicit OutputFixedwingPage(SetupWizard *wizard, QWidget *parent = 0); explicit ServoPage(SetupWizard *wizard, QWidget *parent = 0);
~OutputFixedwingPage(); ~ServoPage();
bool validatePage(); bool validatePage();
private: private:
Ui::OutputFixedwingPage *ui; Ui::ServoPage *ui;
}; };
#endif // OUTPUTFIXEDWINGPAGE_H #endif // OUTPUTFIXEDWINGPAGE_H

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>OutputFixedwingPage</class> <class>ServoPage</class>
<widget class="QWizardPage" name="OutputFixedwingPage"> <widget class="QWizardPage" name="ServoPage">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>

View File

@ -35,8 +35,8 @@
#include "pages/helipage.h" #include "pages/helipage.h"
#include "pages/surfacepage.h" #include "pages/surfacepage.h"
#include "pages/inputpage.h" #include "pages/inputpage.h"
#include "pages/outputpage.h" #include "pages/escpage.h"
#include "pages/outputfixedwingpage.h" #include "pages/servopage.h"
#include "pages/biascalibrationpage.h" #include "pages/biascalibrationpage.h"
#include "pages/summarypage.h" #include "pages/summarypage.h"
#include "pages/savepage.h" #include "pages/savepage.h"
@ -54,7 +54,8 @@
SetupWizard::SetupWizard(QWidget *parent) : QWizard(parent), VehicleConfigurationSource(), SetupWizard::SetupWizard(QWidget *parent) : QWizard(parent), VehicleConfigurationSource(),
m_controllerType(CONTROLLER_UNKNOWN), m_controllerType(CONTROLLER_UNKNOWN),
m_vehicleType(VEHICLE_UNKNOWN), m_inputType(INPUT_UNKNOWN), m_escType(ESC_UNKNOWN), m_vehicleType(VEHICLE_UNKNOWN), m_inputType(INPUT_UNKNOWN), m_escType(ESC_UNKNOWN),
m_calibrationPerformed(false), m_restartNeeded(false), m_connectionManager(0) m_servoType(SERVO_UNKNOWN), m_calibrationPerformed(false), m_restartNeeded(false),
m_connectionManager(0)
{ {
setWindowTitle(tr("OpenPilot Setup Wizard")); setWindowTitle(tr("OpenPilot Setup Wizard"));
setOption(QWizard::IndependentPages, false); setOption(QWizard::IndependentPages, false);
@ -112,10 +113,10 @@ int SetupWizard::nextId() const
} }
} }
case PAGE_MULTI: case PAGE_MULTI:
return PAGE_OUTPUT; return PAGE_ESC;
case PAGE_FIXEDWING: case PAGE_FIXEDWING:
return PAGE_OUTPUT_FIXEDWING; return PAGE_SERVO;
case PAGE_INPUT: case PAGE_INPUT:
if (isRestartNeeded()) { if (isRestartNeeded()) {
@ -127,10 +128,14 @@ int SetupWizard::nextId() const
case PAGE_REBOOT: case PAGE_REBOOT:
return PAGE_VEHICLES; return PAGE_VEHICLES;
case PAGE_OUTPUT: case PAGE_ESC:
if (getVehicleSubType() == MULTI_ROTOR_TRI_Y) {
return PAGE_SERVO;
} else {
return PAGE_SUMMARY; return PAGE_SUMMARY;
}
case PAGE_OUTPUT_FIXEDWING: case PAGE_SERVO:
return PAGE_SUMMARY; return PAGE_SUMMARY;
case PAGE_BIAS_CALIBRATION: case PAGE_BIAS_CALIBRATION:
@ -306,24 +311,32 @@ QString SetupWizard::getSummaryText()
} }
summary.append("<br>"); summary.append("<br>");
summary.append("<b>").append(tr("Actuator type: ")).append("</b>"); summary.append("<b>").append(tr("Speed Controller (ESC) type: ")).append("</b>");
switch (getActuatorType()) { switch (getEscType()) {
case ESC_LEGACY: case ESC_LEGACY:
summary.append(tr("Legacy ESC (50 Hz)")); summary.append(tr("Legacy ESC (50 Hz)"));
break; break;
case ESC_RAPID: case ESC_RAPID:
summary.append(tr("Rapid ESC (400 Hz)")); summary.append(tr("Rapid ESC (400 Hz)"));
break; break;
default:
summary.append(tr("Unknown"));
}
if (getVehicleSubType() == MULTI_ROTOR_TRI_Y || getVehicleType() == VEHICLE_FIXEDWING) {
summary.append("<br>");
summary.append("<b>").append(tr("Servo type: ")).append("</b>");
switch (getServoType()) {
case SERVO_ANALOG: case SERVO_ANALOG:
summary.append(tr("Analog Servos (50 Hz)")); summary.append(tr("Analog Servos (50 Hz)"));
break; break;
case SERVO_DIGITAL: case SERVO_DIGITAL:
summary.append(tr("Digital Servos (333 Hz)")); summary.append(tr("Digital Servos (333 Hz)"));
break; break;
default: default:
summary.append(tr("Unknown")); summary.append(tr("Unknown"));
} }
}
/* /*
summary.append("<br>"); summary.append("<br>");
@ -344,8 +357,8 @@ void SetupWizard::createPages()
setPage(PAGE_HELI, new HeliPage(this)); setPage(PAGE_HELI, new HeliPage(this));
setPage(PAGE_SURFACE, new SurfacePage(this)); setPage(PAGE_SURFACE, new SurfacePage(this));
setPage(PAGE_INPUT, new InputPage(this)); setPage(PAGE_INPUT, new InputPage(this));
setPage(PAGE_OUTPUT, new OutputPage(this)); setPage(PAGE_ESC, new EscPage(this));
setPage(PAGE_OUTPUT_FIXEDWING, new OutputFixedwingPage(this)); setPage(PAGE_SERVO, new ServoPage(this));
setPage(PAGE_BIAS_CALIBRATION, new BiasCalibrationPage(this)); setPage(PAGE_BIAS_CALIBRATION, new BiasCalibrationPage(this));
// setPage(PAGE_REVO_CALIBRATION, new RevoCalibrationPage(this)); // setPage(PAGE_REVO_CALIBRATION, new RevoCalibrationPage(this));
setPage(PAGE_OUTPUT_CALIBRATION, new OutputCalibrationPage(this)); setPage(PAGE_OUTPUT_CALIBRATION, new OutputCalibrationPage(this));

View File

@ -78,15 +78,24 @@ public:
return m_inputType; return m_inputType;
} }
void setActuatorType(SetupWizard::ACTUATOR_TYPE type) void setEscType(SetupWizard::ESC_TYPE type)
{ {
m_escType = type; m_escType = type;
} }
SetupWizard::ACTUATOR_TYPE getActuatorType() const SetupWizard::ESC_TYPE getEscType() const
{ {
return m_escType; return m_escType;
} }
void setServoType(SetupWizard::SERVO_TYPE type)
{
m_servoType = type;
}
SetupWizard::SERVO_TYPE getServoType() const
{
return m_servoType;
}
void setGPSSetting(SetupWizard::GPS_SETTING setting) void setGPSSetting(SetupWizard::GPS_SETTING setting)
{ {
m_gpsSetting = setting; m_gpsSetting = setting;
@ -156,8 +165,8 @@ private slots:
void pageChanged(int currId); void pageChanged(int currId);
private: private:
enum { PAGE_START, PAGE_CONTROLLER, PAGE_VEHICLES, PAGE_MULTI, PAGE_FIXEDWING, enum { PAGE_START, PAGE_CONTROLLER, PAGE_VEHICLES, PAGE_MULTI, PAGE_FIXEDWING,
PAGE_HELI, PAGE_SURFACE, PAGE_INPUT, PAGE_OUTPUT, PAGE_OUTPUT_FIXEDWING, PAGE_HELI, PAGE_SURFACE, PAGE_INPUT, PAGE_ESC, PAGE_SERVO,
PAGE_BIAS_CALIBRATION,PAGE_REVO_CALIBRATION, PAGE_OUTPUT_CALIBRATION, PAGE_BIAS_CALIBRATION, PAGE_REVO_CALIBRATION, PAGE_OUTPUT_CALIBRATION,
PAGE_SAVE, PAGE_SUMMARY, PAGE_NOTYETIMPLEMENTED, PAGE_AIRFRAMESTAB_FIXEDWING, PAGE_SAVE, PAGE_SUMMARY, PAGE_NOTYETIMPLEMENTED, PAGE_AIRFRAMESTAB_FIXEDWING,
PAGE_REBOOT, PAGE_END, PAGE_UPDATE }; PAGE_REBOOT, PAGE_END, PAGE_UPDATE };
void createPages(); void createPages();
@ -168,7 +177,8 @@ private:
VEHICLE_TYPE m_vehicleType; VEHICLE_TYPE m_vehicleType;
VEHICLE_SUB_TYPE m_vehicleSubType; VEHICLE_SUB_TYPE m_vehicleSubType;
INPUT_TYPE m_inputType; INPUT_TYPE m_inputType;
ACTUATOR_TYPE m_escType; ESC_TYPE m_escType;
SERVO_TYPE m_servoType;
GPS_SETTING m_gpsSetting; GPS_SETTING m_gpsSetting;
RADIO_SETTING m_radioSetting; RADIO_SETTING m_radioSetting;

View File

@ -22,7 +22,6 @@ HEADERS += setupwizardplugin.h \
pages/helipage.h \ pages/helipage.h \
pages/surfacepage.h \ pages/surfacepage.h \
pages/abstractwizardpage.h \ pages/abstractwizardpage.h \
pages/outputpage.h \
pages/inputpage.h \ pages/inputpage.h \
pages/summarypage.h \ pages/summarypage.h \
vehicleconfigurationsource.h \ vehicleconfigurationsource.h \
@ -36,8 +35,9 @@ HEADERS += setupwizardplugin.h \
pages/revocalibrationpage.h \ pages/revocalibrationpage.h \
biascalibrationutil.h \ biascalibrationutil.h \
pages/biascalibrationpage.h \ pages/biascalibrationpage.h \
pages/outputfixedwingpage.h \ pages/airframestabfixedwingpage.h \
pages/airframestabfixedwingpage.h pages/escpage.h \
pages/servopage.h
SOURCES += setupwizardplugin.cpp \ SOURCES += setupwizardplugin.cpp \
setupwizard.cpp \ setupwizard.cpp \
@ -51,7 +51,6 @@ SOURCES += setupwizardplugin.cpp \
pages/helipage.cpp \ pages/helipage.cpp \
pages/surfacepage.cpp \ pages/surfacepage.cpp \
pages/abstractwizardpage.cpp \ pages/abstractwizardpage.cpp \
pages/outputpage.cpp \
pages/inputpage.cpp \ pages/inputpage.cpp \
pages/summarypage.cpp \ pages/summarypage.cpp \
vehicleconfigurationsource.cpp \ vehicleconfigurationsource.cpp \
@ -65,8 +64,9 @@ SOURCES += setupwizardplugin.cpp \
pages/revocalibrationpage.cpp \ pages/revocalibrationpage.cpp \
biascalibrationutil.cpp \ biascalibrationutil.cpp \
pages/biascalibrationpage.cpp \ pages/biascalibrationpage.cpp \
pages/outputfixedwingpage.cpp \ pages/airframestabfixedwingpage.cpp \
pages/airframestabfixedwingpage.cpp pages/escpage.cpp \
pages/servopage.cpp
OTHER_FILES += SetupWizard.pluginspec OTHER_FILES += SetupWizard.pluginspec
@ -80,7 +80,6 @@ FORMS += \
pages/fixedwingpage.ui \ pages/fixedwingpage.ui \
pages/helipage.ui \ pages/helipage.ui \
pages/surfacepage.ui \ pages/surfacepage.ui \
pages/outputpage.ui \
pages/inputpage.ui \ pages/inputpage.ui \
pages/summarypage.ui \ pages/summarypage.ui \
connectiondiagram.ui \ connectiondiagram.ui \
@ -90,8 +89,9 @@ FORMS += \
pages/autoupdatepage.ui \ pages/autoupdatepage.ui \
pages/revocalibrationpage.ui \ pages/revocalibrationpage.ui \
pages/biascalibrationpage.ui \ pages/biascalibrationpage.ui \
pages/outputfixedwingpage.ui \ pages/airframestabfixedwingpage.ui \
pages/airframestabfixedwingpage.ui pages/escpage.ui \
pages/servopage.ui
RESOURCES += \ RESOURCES += \
wizardResources.qrc wizardResources.qrc

View File

@ -253,6 +253,30 @@ void VehicleConfigurationHelper::applyActuatorConfiguration()
{ {
ActuatorSettings *actSettings = ActuatorSettings::GetInstance(m_uavoManager); ActuatorSettings *actSettings = ActuatorSettings::GetInstance(m_uavoManager);
qint16 escFrequence = LEGACY_ESC_FREQUENCE;
switch (m_configSource->getEscType()) {
case VehicleConfigurationSource::ESC_LEGACY:
escFrequence = LEGACY_ESC_FREQUENCE;
break;
case VehicleConfigurationSource::ESC_RAPID:
escFrequence = RAPID_ESC_FREQUENCE;
break;
default:
break;
}
qint16 servoFrequence = ANALOG_SERVO_FREQUENCE;
switch (m_configSource->getServoType()) {
case VehicleConfigurationSource::SERVO_ANALOG:
servoFrequence = ANALOG_SERVO_FREQUENCE;
break;
case VehicleConfigurationSource::SERVO_DIGITAL:
servoFrequence = DIGITAL_SERVO_FREQUENCE;
break;
default:
break;
}
switch (m_configSource->getVehicleType()) { switch (m_configSource->getVehicleType()) {
case VehicleConfigurationSource::VEHICLE_MULTI: case VehicleConfigurationSource::VEHICLE_MULTI:
{ {
@ -273,31 +297,28 @@ void VehicleConfigurationHelper::applyActuatorConfiguration()
data.ChannelUpdateFreq[i] = LEGACY_ESC_FREQUENCE; data.ChannelUpdateFreq[i] = LEGACY_ESC_FREQUENCE;
} }
qint16 updateFrequence = LEGACY_ESC_FREQUENCE;
switch (m_configSource->getActuatorType()) {
case VehicleConfigurationSource::ESC_LEGACY:
updateFrequence = LEGACY_ESC_FREQUENCE;
break;
case VehicleConfigurationSource::ESC_RAPID:
updateFrequence = RAPID_ESC_FREQUENCE;
break;
default:
break;
}
switch (m_configSource->getVehicleSubType()) { switch (m_configSource->getVehicleSubType()) {
case VehicleConfigurationSource::MULTI_ROTOR_TRI_Y: case VehicleConfigurationSource::MULTI_ROTOR_TRI_Y:
data.ChannelUpdateFreq[0] = updateFrequence; // Servo always on channel 4
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO) { data.ChannelUpdateFreq[0] = escFrequence;
data.ChannelUpdateFreq[1] = updateFrequence; if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_CC ||
m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_CC3D) {
data.ChannelUpdateFreq[1] = servoFrequence;
} else if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO) {
data.ChannelUpdateFreq[1] = escFrequence;
data.ChannelUpdateFreq[2] = servoFrequence;
} else if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_NANO) {
data.ChannelUpdateFreq[1] = escFrequence;
data.ChannelUpdateFreq[2] = escFrequence;
data.ChannelUpdateFreq[3] = servoFrequence;
} }
break; break;
case VehicleConfigurationSource::MULTI_ROTOR_QUAD_X: case VehicleConfigurationSource::MULTI_ROTOR_QUAD_X:
case VehicleConfigurationSource::MULTI_ROTOR_QUAD_PLUS: case VehicleConfigurationSource::MULTI_ROTOR_QUAD_PLUS:
data.ChannelUpdateFreq[0] = updateFrequence; data.ChannelUpdateFreq[0] = escFrequence;
data.ChannelUpdateFreq[1] = updateFrequence; data.ChannelUpdateFreq[1] = escFrequence;
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO) { if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO) {
data.ChannelUpdateFreq[2] = updateFrequence; data.ChannelUpdateFreq[2] = escFrequence;
} }
break; break;
case VehicleConfigurationSource::MULTI_ROTOR_HEXA: case VehicleConfigurationSource::MULTI_ROTOR_HEXA:
@ -309,10 +330,10 @@ void VehicleConfigurationHelper::applyActuatorConfiguration()
case VehicleConfigurationSource::MULTI_ROTOR_OCTO_COAX_X: case VehicleConfigurationSource::MULTI_ROTOR_OCTO_COAX_X:
case VehicleConfigurationSource::MULTI_ROTOR_OCTO_COAX_PLUS: case VehicleConfigurationSource::MULTI_ROTOR_OCTO_COAX_PLUS:
case VehicleConfigurationSource::MULTI_ROTOR_OCTO_V: case VehicleConfigurationSource::MULTI_ROTOR_OCTO_V:
data.ChannelUpdateFreq[0] = updateFrequence; data.ChannelUpdateFreq[0] = escFrequence;
data.ChannelUpdateFreq[1] = updateFrequence; data.ChannelUpdateFreq[1] = escFrequence;
data.ChannelUpdateFreq[2] = updateFrequence; data.ChannelUpdateFreq[2] = escFrequence;
data.ChannelUpdateFreq[3] = updateFrequence; data.ChannelUpdateFreq[3] = escFrequence;
break; break;
default: default:
break; break;
@ -335,27 +356,15 @@ void VehicleConfigurationHelper::applyActuatorConfiguration()
data.ChannelMax[i] = actuatorSettings[i].channelMax; data.ChannelMax[i] = actuatorSettings[i].channelMax;
} }
qint16 updateFrequence = ANALOG_SERVO_FREQUENCE;
switch (m_configSource->getActuatorType()) {
case VehicleConfigurationSource::SERVO_ANALOG:
updateFrequence = ANALOG_SERVO_FREQUENCE;
break;
case VehicleConfigurationSource::SERVO_DIGITAL:
updateFrequence = DIGITAL_SERVO_FREQUENCE;
break;
default:
break;
}
for (quint16 i = 0; i < ActuatorSettings::CHANNELUPDATEFREQ_NUMELEM; i++) { for (quint16 i = 0; i < ActuatorSettings::CHANNELUPDATEFREQ_NUMELEM; i++) {
data.ChannelUpdateFreq[i] = updateFrequence; data.ChannelUpdateFreq[i] = servoFrequence;
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO) { if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO) {
if (i == 1) { if (i == 1) {
data.ChannelUpdateFreq[i] = ANALOG_SERVO_FREQUENCE; data.ChannelUpdateFreq[i] = escFrequence;
} }
} else if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_NANO) { } else if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_NANO) {
if (i == 2) { if (i == 2) {
data.ChannelUpdateFreq[i] = ANALOG_SERVO_FREQUENCE; data.ChannelUpdateFreq[i] = escFrequence;
} }
} }
} }

View File

@ -61,7 +61,8 @@ public:
MULTI_ROTOR_HEXA, MULTI_ROTOR_HEXA_H, MULTI_ROTOR_HEXA_X, MULTI_ROTOR_HEXA_COAX_Y, MULTI_ROTOR_OCTO, MULTI_ROTOR_HEXA, MULTI_ROTOR_HEXA_H, MULTI_ROTOR_HEXA_X, MULTI_ROTOR_HEXA_COAX_Y, MULTI_ROTOR_OCTO,
MULTI_ROTOR_OCTO_X, MULTI_ROTOR_OCTO_V, MULTI_ROTOR_OCTO_COAX_X, MULTI_ROTOR_OCTO_COAX_PLUS, MULTI_ROTOR_OCTO_X, MULTI_ROTOR_OCTO_V, MULTI_ROTOR_OCTO_COAX_X, MULTI_ROTOR_OCTO_COAX_PLUS,
FIXED_WING_AILERON, FIXED_WING_VTAIL, FIXED_WING_ELEVON, HELI_CCPM }; FIXED_WING_AILERON, FIXED_WING_VTAIL, FIXED_WING_ELEVON, HELI_CCPM };
enum ACTUATOR_TYPE { ESC_RAPID, ESC_LEGACY, SERVO_ANALOG, SERVO_DIGITAL, ESC_UNKNOWN }; enum ESC_TYPE { ESC_RAPID, ESC_LEGACY, ESC_UNKNOWN };
enum SERVO_TYPE { SERVO_ANALOG, SERVO_DIGITAL, SERVO_UNKNOWN };
enum INPUT_TYPE { INPUT_PWM, INPUT_PPM, INPUT_SBUS, INPUT_DSMX10, INPUT_DSMX11, INPUT_DSM2, INPUT_UNKNOWN }; enum INPUT_TYPE { INPUT_PWM, INPUT_PPM, INPUT_SBUS, INPUT_DSMX10, INPUT_DSMX11, INPUT_DSM2, INPUT_UNKNOWN };
enum GPS_SETTING { GPS_UBX, GPS_NMEA, GPS_DISABLED }; enum GPS_SETTING { GPS_UBX, GPS_NMEA, GPS_DISABLED };
@ -71,7 +72,8 @@ public:
virtual VehicleConfigurationSource::VEHICLE_TYPE getVehicleType() const = 0; virtual VehicleConfigurationSource::VEHICLE_TYPE getVehicleType() const = 0;
virtual VehicleConfigurationSource::VEHICLE_SUB_TYPE getVehicleSubType() const = 0; virtual VehicleConfigurationSource::VEHICLE_SUB_TYPE getVehicleSubType() const = 0;
virtual VehicleConfigurationSource::INPUT_TYPE getInputType() const = 0; virtual VehicleConfigurationSource::INPUT_TYPE getInputType() const = 0;
virtual VehicleConfigurationSource::ACTUATOR_TYPE getActuatorType() const = 0; virtual VehicleConfigurationSource::ESC_TYPE getEscType() const = 0;
virtual VehicleConfigurationSource::SERVO_TYPE getServoType() const = 0;
virtual VehicleConfigurationSource::GPS_SETTING getGPSSetting() const = 0; virtual VehicleConfigurationSource::GPS_SETTING getGPSSetting() const = 0;
virtual VehicleConfigurationSource::RADIO_SETTING getRadioSetting() const = 0; virtual VehicleConfigurationSource::RADIO_SETTING getRadioSetting() const = 0;