mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-23 07:15:35 +08:00
refs #196, encapsulated transponder mode selection (combo box)
* promoted QComboBox in GUI * features automatic reset for ident * Conversion to CTransponder::TransponderMode from string
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
#include "blackcore/context_application.h"
|
||||
#include "blackcore/context_simulator.h"
|
||||
#include "blackcore/coreruntime.h"
|
||||
#include "blackgui/transpondermodeselector.h"
|
||||
#include "blackgui/atcstationlistmodel.h"
|
||||
#include "blackgui/serverlistmodel.h"
|
||||
#include "blackgui/aircraftlistmodel.h"
|
||||
|
||||
@@ -454,7 +454,7 @@ QStatusBar QLabel {
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>7</number>
|
||||
<number>4</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="pg_StatusPage">
|
||||
<property name="sizePolicy">
|
||||
@@ -1388,7 +1388,7 @@ QStatusBar QLabel {
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="3">
|
||||
<widget class="QComboBox" name="cb_CockpitTransponderMode">
|
||||
<widget class="BlackGui::CTransponderModeSelector" name="cbp_CockpitTransponderMode">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
@@ -1401,21 +1401,6 @@ QStatusBar QLabel {
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>S</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>C</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>I</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
@@ -1800,7 +1785,7 @@ QStatusBar QLabel {
|
||||
<item>
|
||||
<widget class="QTabWidget" name="Simulator">
|
||||
<property name="currentIndex">
|
||||
<number>3</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tb_SettingsTrafficNetwork">
|
||||
<attribute name="title">
|
||||
@@ -3195,6 +3180,13 @@ QStatusBar QLabel {
|
||||
</action>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>BlackGui::CTransponderModeSelector</class>
|
||||
<extends>QComboBox</extends>
|
||||
<header>blackgui/transpondermodeselector.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<tabstops>
|
||||
<tabstop>cb_StatusWithDBus</tabstop>
|
||||
<tabstop>le_StatusNetworkContext</tabstop>
|
||||
@@ -3223,7 +3215,7 @@ QStatusBar QLabel {
|
||||
<tabstop>cb_CockpitSelcal1</tabstop>
|
||||
<tabstop>cb_CockpitSelcal2</tabstop>
|
||||
<tabstop>ds_CockpitTransponder</tabstop>
|
||||
<tabstop>cb_CockpitTransponderMode</tabstop>
|
||||
<tabstop>cbp_CockpitTransponderMode</tabstop>
|
||||
<tabstop>le_CockpitVoiceRoomCom1</tabstop>
|
||||
<tabstop>cb_CockpitVoiceRoom1Override</tabstop>
|
||||
<tabstop>le_CockpitVoiceRoomCom2</tabstop>
|
||||
|
||||
@@ -42,15 +42,15 @@ void MainWindow::cockpitValuesChanged()
|
||||
else if (sender == this->ui->pb_CockpitIdent)
|
||||
{
|
||||
// trigger the real button
|
||||
if (this->ui->cb_CockpitTransponderMode->currentText() == "I")
|
||||
if (this->ui->cbp_CockpitTransponderMode->isIdentSelected())
|
||||
{
|
||||
this->ui->pb_CockpitIdent->setStyleSheet("");
|
||||
this->resetTransponderMode();
|
||||
this->ui->cbp_CockpitTransponderMode->resetTransponderMode();
|
||||
}
|
||||
else
|
||||
{
|
||||
this->ui->pb_CockpitIdent->setStyleSheet("background: red");
|
||||
this->ui->cb_CockpitTransponderMode->setCurrentText("I"); // trigger real button and whole process
|
||||
this->ui->cbp_CockpitTransponderMode->setSelectedTransponderModeStateIdent(); // trigger real button and whole process
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -92,25 +92,7 @@ void MainWindow::updateCockpitFromContext()
|
||||
this->ui->ds_CockpitTransponder->setValue(tc);
|
||||
}
|
||||
|
||||
QString tm = this->ui->cb_CockpitTransponderMode->currentText().trimmed().toUpper();
|
||||
switch (transponder.getTransponderMode())
|
||||
{
|
||||
case CTransponder::StateStandby:
|
||||
case CTransponder::ModeS:
|
||||
if (tm != "S")
|
||||
this->ui->cb_CockpitTransponderMode->setCurrentText("S");
|
||||
break;
|
||||
case CTransponder::ModeC:
|
||||
if (tm != "C")
|
||||
this->ui->cb_CockpitTransponderMode->setCurrentText("C");
|
||||
break;
|
||||
case CTransponder::StateIdent:
|
||||
if (tm != "I")
|
||||
this->ui->cb_CockpitTransponderMode->setCurrentText("I");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
this->ui->cbp_CockpitTransponderMode->setSelectedTransponderMode(transponder.getTransponderMode());
|
||||
|
||||
if (this->m_contextNetworkAvailable)
|
||||
{
|
||||
@@ -228,11 +210,6 @@ void MainWindow::updateComFrequencyDisplays(const CComSystem &com1, const CComSy
|
||||
void MainWindow::resetTransponderMode()
|
||||
{
|
||||
this->ui->pb_CockpitIdent->setStyleSheet("");
|
||||
if (this->ui->cb_CockpitTransponderMode->currentText() == "I")
|
||||
{
|
||||
// only reset if still "I"
|
||||
this->ui->cb_CockpitTransponderMode->setCurrentText(this->m_transponderResetValue);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -258,25 +235,11 @@ void MainWindow::sendCockpitUpdates()
|
||||
this->ui->ds_CockpitTransponder->setValue(transponder.getTransponderCode());
|
||||
}
|
||||
|
||||
QString tm = this->ui->cb_CockpitTransponderMode->currentText().toUpper();
|
||||
if (tm == "S")
|
||||
transponder.setTransponderMode(CTransponder::ModeS);
|
||||
else if (tm == "C")
|
||||
transponder.setTransponderMode(CTransponder::ModeC);
|
||||
else if (tm == "I")
|
||||
transponder.setTransponderMode(this->ui->cbp_CockpitTransponderMode->getSelectedTransponderMode());
|
||||
if (this->ui->cbp_CockpitTransponderMode->isIdentSelected())
|
||||
{
|
||||
// ident shall be sent for some time, then reset
|
||||
transponder.setTransponderMode(CTransponder::StateIdent);
|
||||
this->ui->pb_CockpitIdent->setStyleSheet("background: red");
|
||||
if (this->m_ownAircraft.getTransponderMode() == CTransponder::ModeS)
|
||||
{
|
||||
this->m_transponderResetValue = "S";
|
||||
}
|
||||
else
|
||||
{
|
||||
this->m_transponderResetValue = "C";
|
||||
}
|
||||
QTimer::singleShot(5000, this, SLOT(resetTransponderMode()));
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
@@ -317,7 +317,7 @@ void MainWindow::initGuiSignals()
|
||||
this->connect(this->ui->le_CommandLineInput, &QLineEdit::returnPressed, this, &MainWindow::commandEntered);
|
||||
|
||||
// cockpit
|
||||
connected = this->connect(this->ui->cb_CockpitTransponderMode, SIGNAL(currentIndexChanged(QString)), this, SLOT(cockpitValuesChanged()));
|
||||
connected = this->connect(this->ui->cbp_CockpitTransponderMode, SIGNAL(currentIndexChanged(QString)), this, SLOT(cockpitValuesChanged()));
|
||||
Q_ASSERT(connected);
|
||||
this->connect(this->ui->ds_CockpitCom1Active, &QDoubleSpinBox::editingFinished, this, &MainWindow::cockpitValuesChanged);
|
||||
this->connect(this->ui->ds_CockpitCom2Active, &QDoubleSpinBox::editingFinished, this, &MainWindow::cockpitValuesChanged);
|
||||
@@ -333,6 +333,7 @@ void MainWindow::initGuiSignals()
|
||||
this->connect(this->ui->pb_CockpitToggleCom2, &QPushButton::clicked, this, &MainWindow::cockpitValuesChanged);
|
||||
this->connect(this->ui->pb_CockpitIdent, &QPushButton::clicked, this, &MainWindow::cockpitValuesChanged);
|
||||
this->connect(this->ui->pb_CockpitSelcalTest, &QPushButton::clicked, this, &MainWindow::testSelcal);
|
||||
this->connect(this->ui->cbp_CockpitTransponderMode, &CTransponderModeSelector::identEnded, this, &MainWindow::resetTransponderMode);
|
||||
this->connect(qApp, &QApplication::focusChanged, this, &MainWindow::inputFocusChanged);
|
||||
|
||||
// voice
|
||||
|
||||
80
src/blackgui/transpondermodeselector.cpp
Normal file
80
src/blackgui/transpondermodeselector.cpp
Normal file
@@ -0,0 +1,80 @@
|
||||
#include "transpondermodeselector.h"
|
||||
|
||||
using namespace BlackMisc::Aviation;
|
||||
|
||||
namespace BlackGui
|
||||
{
|
||||
|
||||
CTransponderModeSelector::CTransponderModeSelector(QWidget *parent) : QComboBox(parent),
|
||||
m_currentMode(CTransponder::StateStandby), m_resetMode(CTransponder::StateStandby)
|
||||
{
|
||||
QComboBox::insertItems(0, CTransponderModeSelector::modes());
|
||||
connect(&this->m_resetTimer, &QTimer::timeout, this, &CTransponderModeSelector::resetTransponderMode);
|
||||
connect(this, &CTransponderModeSelector::currentTextChanged, this, &CTransponderModeSelector::setSelectedTransponderModeAsString);
|
||||
this->m_resetTimer.setInterval(5000);
|
||||
}
|
||||
|
||||
const QString &CTransponderModeSelector::transponderStateStandby()
|
||||
{
|
||||
static const QString s(BlackMisc::Aviation::CTransponder::modeAsString(BlackMisc::Aviation::CTransponder::StateStandby));
|
||||
return s;
|
||||
}
|
||||
|
||||
const QString &CTransponderModeSelector::transponderStateIdent()
|
||||
{
|
||||
static const QString s(BlackMisc::Aviation::CTransponder::modeAsString(BlackMisc::Aviation::CTransponder::StateIdent));
|
||||
return s;
|
||||
}
|
||||
|
||||
const QString &CTransponderModeSelector::transponderModeC()
|
||||
{
|
||||
static const QString s(BlackMisc::Aviation::CTransponder::modeAsString(BlackMisc::Aviation::CTransponder::ModeC));
|
||||
return s;
|
||||
}
|
||||
|
||||
const QStringList &CTransponderModeSelector::modes()
|
||||
{
|
||||
static QStringList modes;
|
||||
if (modes.isEmpty())
|
||||
{
|
||||
modes << CTransponderModeSelector::transponderStateStandby();
|
||||
modes << CTransponderModeSelector::transponderModeC();
|
||||
modes << CTransponderModeSelector::transponderStateIdent();
|
||||
}
|
||||
return modes;
|
||||
}
|
||||
|
||||
BlackMisc::Aviation::CTransponder::TransponderMode CTransponderModeSelector::getSelectedTransponderMode() const
|
||||
{
|
||||
return this->m_currentMode;
|
||||
}
|
||||
|
||||
void CTransponderModeSelector::setSelectedTransponderMode(CTransponder::TransponderMode mode)
|
||||
{
|
||||
if (mode != CTransponder::StateIdent) this->m_resetMode = mode;
|
||||
if (this->m_currentMode == mode) return;
|
||||
if (this->m_currentMode == CTransponder::StateIdent) emit this->identEnded();
|
||||
this->m_currentMode = mode;
|
||||
QString m = CTransponder::modeAsString(mode);
|
||||
QComboBox::setCurrentText(m);
|
||||
if (mode == CTransponder::StateIdent)
|
||||
{
|
||||
this->m_resetTimer.start();
|
||||
}
|
||||
else
|
||||
{
|
||||
this->m_resetTimer.stop();
|
||||
}
|
||||
}
|
||||
|
||||
void CTransponderModeSelector::setSelectedTransponderModeAsString(const QString &mode)
|
||||
{
|
||||
this->setSelectedTransponderMode(CTransponder::modeFromString(mode));
|
||||
}
|
||||
|
||||
void CTransponderModeSelector::resetTransponderMode()
|
||||
{
|
||||
if (!this->isIdentSelected()) return;
|
||||
this->setSelectedTransponderMode(this->m_resetMode);
|
||||
}
|
||||
}
|
||||
73
src/blackgui/transpondermodeselector.h
Normal file
73
src/blackgui/transpondermodeselector.h
Normal file
@@ -0,0 +1,73 @@
|
||||
#ifndef BLACKGUI_QWITRANSPONDERMODESELECTOR_H
|
||||
#define BLACKGUI_QWITRANSPONDERMODESELECTOR_H
|
||||
|
||||
#include "../blackmisc/aviotransponder.h"
|
||||
#include "blackmisc/aviotransponder.h"
|
||||
#include <QTimer>
|
||||
#include <QComboBox>
|
||||
#include <QStringList>
|
||||
|
||||
|
||||
namespace BlackGui
|
||||
{
|
||||
|
||||
/*!
|
||||
* \brief Selector for the transponder mode
|
||||
*/
|
||||
class CTransponderModeSelector : public QComboBox
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
BlackMisc::Aviation::CTransponder::TransponderMode m_currentMode;
|
||||
BlackMisc::Aviation::CTransponder::TransponderMode m_resetMode;
|
||||
QTimer m_resetTimer;
|
||||
|
||||
public:
|
||||
//! \brief Constructor
|
||||
explicit CTransponderModeSelector(QWidget *parent = nullptr);
|
||||
|
||||
//! \brief Standby string
|
||||
static const QString &transponderStateStandby();
|
||||
|
||||
//! \brief Ident string
|
||||
static const QString &transponderStateIdent();
|
||||
|
||||
//! \brief Mode C string
|
||||
static const QString &transponderModeC();
|
||||
|
||||
//! \brief All relevant modes for GUI
|
||||
static const QStringList &modes();
|
||||
|
||||
//! \brief Selected transponder mode
|
||||
BlackMisc::Aviation::CTransponder::TransponderMode getSelectedTransponderMode() const;
|
||||
|
||||
//! \brief Selected transponder mode
|
||||
void setSelectedTransponderMode(BlackMisc::Aviation::CTransponder::TransponderMode mode);
|
||||
|
||||
//!\ brief Set to ident
|
||||
void setSelectedTransponderModeStateIdent()
|
||||
{
|
||||
this->setSelectedTransponderMode(BlackMisc::Aviation::CTransponder::StateIdent);
|
||||
}
|
||||
|
||||
//! \brief Ident selected
|
||||
bool isIdentSelected() const
|
||||
{
|
||||
return this->getSelectedTransponderMode() == BlackMisc::Aviation::CTransponder::StateIdent;
|
||||
}
|
||||
|
||||
public slots:
|
||||
//! \brief reset to last mode (unequal ident)
|
||||
void resetTransponderMode();
|
||||
|
||||
//! \brief Selected transponder mode
|
||||
void setSelectedTransponderModeAsString(const QString &mode);
|
||||
|
||||
signals:
|
||||
//! \brief Ident ended
|
||||
void identEnded();
|
||||
};
|
||||
} // namespace
|
||||
|
||||
#endif // guard
|
||||
@@ -47,89 +47,18 @@ namespace BlackMisc
|
||||
/*
|
||||
* Mode as readable string
|
||||
*/
|
||||
QString CTransponder::getModeAsString() const
|
||||
CTransponder::TransponderMode CTransponder::modeFromString(const QString &modeString)
|
||||
{
|
||||
QString m;
|
||||
switch (this->getTransponderMode())
|
||||
{
|
||||
case StateIdent:
|
||||
m = "Ident";
|
||||
break;
|
||||
case StateStandby:
|
||||
m = "Standby";
|
||||
break;
|
||||
case ModeC:
|
||||
m = "Mode C";
|
||||
break;
|
||||
case ModeS:
|
||||
m = "Mode S";
|
||||
break;
|
||||
case ModeMil1:
|
||||
m = "Mil.Mode 1";
|
||||
break;
|
||||
case ModeMil2:
|
||||
m = "Mil.Mode 2";
|
||||
break;
|
||||
case ModeMil3:
|
||||
m = "Mil.Mode 3";
|
||||
break;
|
||||
case ModeMil4:
|
||||
m = "Mil.Mode 4";
|
||||
break;
|
||||
case ModeMil5:
|
||||
m = "Mil.Mode 5";
|
||||
break;
|
||||
default:
|
||||
throw std::range_error("Illegal Transponder Mode");
|
||||
}
|
||||
return m;
|
||||
}
|
||||
|
||||
/*
|
||||
* Mode as readable string
|
||||
*/
|
||||
void CTransponder::setModeAsString(const QString &m)
|
||||
{
|
||||
if (m.startsWith("Ident", Qt::CaseInsensitive))
|
||||
{
|
||||
this->setTransponderMode(StateIdent);
|
||||
}
|
||||
else if (m.startsWith("Standby", Qt::CaseInsensitive) || m.startsWith("Stdby", Qt::CaseInsensitive))
|
||||
{
|
||||
this->setTransponderMode(StateStandby);
|
||||
}
|
||||
else if (m.startsWith("Mode C", Qt::CaseInsensitive))
|
||||
{
|
||||
this->setTransponderMode(ModeC);
|
||||
}
|
||||
else if (m.startsWith("Mode S", Qt::CaseInsensitive))
|
||||
{
|
||||
this->setTransponderMode(ModeS);
|
||||
}
|
||||
else if (m.contains("Mode 1", Qt::CaseInsensitive))
|
||||
{
|
||||
this->setTransponderMode(ModeMil1);
|
||||
}
|
||||
else if (m.contains("Mode 2", Qt::CaseInsensitive))
|
||||
{
|
||||
this->setTransponderMode(ModeMil2);
|
||||
}
|
||||
else if (m.contains("Mode 3", Qt::CaseInsensitive))
|
||||
{
|
||||
this->setTransponderMode(ModeMil3);
|
||||
}
|
||||
else if (m.contains("Mode 4", Qt::CaseInsensitive))
|
||||
{
|
||||
this->setTransponderMode(ModeMil4);
|
||||
}
|
||||
else if (m.contains("Mode 5", Qt::CaseInsensitive))
|
||||
{
|
||||
this->setTransponderMode(ModeMil5);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw std::range_error("Illegal Transponder Mode");
|
||||
}
|
||||
if (modeString.startsWith("Ident", Qt::CaseInsensitive)) return StateIdent;
|
||||
if (modeString.startsWith("Standby", Qt::CaseInsensitive) || modeString.startsWith("Stdby", Qt::CaseInsensitive)) return StateStandby;
|
||||
if (modeString.startsWith("Mode C", Qt::CaseInsensitive)) return ModeC;
|
||||
if (modeString.startsWith("Mode S", Qt::CaseInsensitive)) return ModeS;
|
||||
if (modeString.contains("Mode 1", Qt::CaseInsensitive)) return ModeMil1;
|
||||
if (modeString.contains("Mode 2", Qt::CaseInsensitive)) return ModeMil2;
|
||||
if (modeString.contains("Mode 3", Qt::CaseInsensitive)) return ModeMil3;
|
||||
if (modeString.contains("Mode 4", Qt::CaseInsensitive)) return ModeMil4;
|
||||
if (modeString.contains("Mode 5", Qt::CaseInsensitive)) return ModeMil5;
|
||||
return StateStandby;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -239,6 +168,47 @@ namespace BlackMisc
|
||||
qDBusRegisterMetaType<CTransponder>();
|
||||
}
|
||||
|
||||
/*
|
||||
* Mode as readable string
|
||||
*/
|
||||
const QString &CTransponder::modeAsString(CTransponder::TransponderMode mode)
|
||||
{
|
||||
static QString m;
|
||||
switch (mode)
|
||||
{
|
||||
case StateIdent:
|
||||
m = "Ident";
|
||||
break;
|
||||
case StateStandby:
|
||||
m = "Standby";
|
||||
break;
|
||||
case ModeC:
|
||||
m = "Mode C";
|
||||
break;
|
||||
case ModeS:
|
||||
m = "Mode S";
|
||||
break;
|
||||
case ModeMil1:
|
||||
m = "Mil.Mode 1";
|
||||
break;
|
||||
case ModeMil2:
|
||||
m = "Mil.Mode 2";
|
||||
break;
|
||||
case ModeMil3:
|
||||
m = "Mil.Mode 3";
|
||||
break;
|
||||
case ModeMil4:
|
||||
m = "Mil.Mode 4";
|
||||
break;
|
||||
case ModeMil5:
|
||||
m = "Mil.Mode 5";
|
||||
break;
|
||||
default:
|
||||
qFatal("Illegal Transponder Mode");
|
||||
}
|
||||
return m;
|
||||
}
|
||||
|
||||
/*
|
||||
* Members
|
||||
*/
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace BlackMisc
|
||||
* \brief Validate values by assert and exception
|
||||
* \param strict
|
||||
* \throws std::range_error
|
||||
* \remarks Cannot be virtualsince already used in constructor
|
||||
* \remarks Cannot be virtual since already used in constructor
|
||||
* \return
|
||||
*/
|
||||
bool validate(bool strict = true) const;
|
||||
@@ -64,7 +64,7 @@ namespace BlackMisc
|
||||
|
||||
public:
|
||||
//! \brief Default constructor
|
||||
CTransponder() : CAvionicsBase("transponder"), m_transponderCode(0), m_transponderMode(ModeS) {}
|
||||
CTransponder() : CAvionicsBase("transponder"), m_transponderCode(0), m_transponderMode(StateStandby) {}
|
||||
|
||||
//! \brief Copy constructor
|
||||
CTransponder(const CTransponder &other) : CAvionicsBase(other.getName()),
|
||||
@@ -133,10 +133,16 @@ namespace BlackMisc
|
||||
}
|
||||
|
||||
//! \brief Transponder mode as string
|
||||
QString getModeAsString() const;
|
||||
QString getModeAsString() const
|
||||
{
|
||||
return CTransponder::modeAsString(this->getTransponderMode());
|
||||
}
|
||||
|
||||
//! \brief Transponder mode as string
|
||||
void setModeAsString(const QString &mode);
|
||||
void setModeAsString(const QString &mode)
|
||||
{
|
||||
this->setTransponderMode(CTransponder::modeFromString(mode));
|
||||
}
|
||||
|
||||
//! \brief Transponder mode
|
||||
TransponderMode getTransponderMode() const
|
||||
@@ -144,6 +150,9 @@ namespace BlackMisc
|
||||
return this->m_transponderMode;
|
||||
}
|
||||
|
||||
//! \brief Transponder mode as string
|
||||
static const QString &modeAsString(TransponderMode mode);
|
||||
|
||||
//! \brief Transponder code
|
||||
qint32 getTransponderCode() const
|
||||
{
|
||||
@@ -166,6 +175,9 @@ namespace BlackMisc
|
||||
//! \brief Set transponder code
|
||||
void setTransponderCode(const QString &transponderCode);
|
||||
|
||||
//! \brief Mode from string
|
||||
static TransponderMode modeFromString(const QString &modeString);
|
||||
|
||||
//! \brief Set transponder mode
|
||||
void setTransponderMode(TransponderMode mode)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user