CTransponder::setModeAsString

This commit is contained in:
Mathew Sutcliffe
2014-01-14 23:17:21 +00:00
parent 84ec984e0e
commit b5f1b101f6
2 changed files with 85 additions and 2 deletions

View File

@@ -84,6 +84,53 @@ namespace BlackMisc
return m;
}
/*
* Mode as readable string
*/
void CTransponder::setModeAsString(const QString &m)
{
if (m == "Ident")
{
this->setTransponderMode(StateIdent);
}
else if (m == "Standby")
{
this->setTransponderMode(StateStandby);
}
else if (m == "Mode C")
{
this->setTransponderMode(ModeC);
}
else if (m == "Mode S")
{
this->setTransponderMode(ModeS);
}
else if (m == "Mil.Mode 1")
{
this->setTransponderMode(ModeMil1);
}
else if (m == "Mil.Mode 2")
{
this->setTransponderMode(ModeMil2);
}
else if (m == "Mil.Mode 3")
{
this->setTransponderMode(ModeMil3);
}
else if (m == "Mil.Mode 4")
{
this->setTransponderMode(ModeMil4);
}
else if (m == "Mil.Mode 5")
{
this->setTransponderMode(ModeMil5);
}
else
{
throw std::range_error("Illegal Transponder Mode");
}
}
/*
* Formatted transponder code
*/

View File

@@ -139,7 +139,20 @@ namespace BlackMisc
* \param transponderCode
* \param transponderMode
*/
CTransponder(const QString &name, const QString &transponderCode, TransponderMode transponderMode) :
CTransponder(const QString &name, qint32 transponderCode, QString transponderMode) :
CAvionicsBase(name), m_transponderCode(transponderCode), m_transponderMode(StateStandby)
{
this->setModeAsString(transponderMode);
this->validate(true);
}
/*!
* \brief Constructor
* \param name
* \param transponderCode
* \param transponderMode
*/
CTransponder(const QString &name, QString transponderCode, TransponderMode transponderMode) :
CAvionicsBase(name), m_transponderCode(0), m_transponderMode(transponderMode)
{
bool ok = false;
@@ -148,6 +161,22 @@ namespace BlackMisc
this->validate(true);
}
/*!
* \brief Constructor
* \param name
* \param transponderCode
* \param transponderMode
*/
CTransponder(const QString &name, QString transponderCode, QString transponderMode) :
CAvionicsBase(name), m_transponderCode(0), m_transponderMode(StateStandby)
{
bool ok = false;
this->m_transponderCode = transponderCode.toUInt(&ok);
if (!ok) this->m_transponderCode = -1; // will cause assert / exception
this->setModeAsString(transponderMode);
this->validate(true);
}
/*!
* \brief QVariant, required for DBus QVariant lists
* \return
@@ -160,13 +189,20 @@ namespace BlackMisc
/*!
* \brief Transponder mode as string
* \return
* \throws std::range_erros
*/
QString getModeAsString() const;
/*!
* \brief Transponder mode as string
* \param mode
* \throws std::range_error
*/
void setModeAsString(const QString &mode);
/*!
* \brief Transponder mode
* \return
* \throws std::range_error
*/
TransponderMode getTransponderMode() const
{