94 lines
2.0 KiB
C++
Executable File
94 lines
2.0 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
* Definition des PAN-Telegramms PanObserverController
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
* Created by Gerlinde Rudolphus, SLSA, 2013-03-05
|
|
*/
|
|
|
|
#include "bsm_telegrams_observer_controller.h"
|
|
#include <QStringBuilder>
|
|
|
|
namespace BuildingControlUnit
|
|
{
|
|
namespace BSM
|
|
{
|
|
namespace Telegrams
|
|
{
|
|
|
|
QByteArray PanObserverController::print() const
|
|
{
|
|
QByteArray ret = Telegram::print() ;
|
|
|
|
ret += "\n TimeofEvent = " + QByteArray::number(m_timeofEvent);
|
|
ret += "\n AmmunitionId = " + QByteArray::number(m_ammunitionId);
|
|
switch (m_ammunitionId)
|
|
{
|
|
case 208:
|
|
ret += " (Observer/Controller)";
|
|
break;
|
|
case 209:
|
|
ret += " (Medical Gun)";
|
|
break;
|
|
case 210:
|
|
ret += " (Logistic Gun)";
|
|
break;
|
|
case 211:
|
|
ret += " (Configuration Tool)";
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
ret += "\n Code Number = " + QByteArray::number(m_codeNo);
|
|
ret += "\n Detector Number = " + QByteArray::number(m_detectorNo);
|
|
switch (m_codeNo)
|
|
{
|
|
case 1:
|
|
ret += " (Test)";
|
|
break;
|
|
case 2:
|
|
ret += " (Zerstoerung, Ausfall)";
|
|
break;
|
|
case 4:
|
|
ret += " (Aktivierung)";
|
|
break;
|
|
case 18:
|
|
ret += " (Reaktivierung)";
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
ret += "\n ID Originator = " + QByteArray::number(m_originatorId);
|
|
|
|
return ret;
|
|
}
|
|
|
|
QByteArray PanObserverController::payload() const
|
|
{
|
|
Q_ASSERT(false);
|
|
return QByteArray();
|
|
}
|
|
|
|
Telegram *PanObserverController::fromBytestream(const QByteArray &data)
|
|
{
|
|
if (data.length() < 6)
|
|
return nullptr;
|
|
|
|
bool bOk = true;
|
|
PanObserverController rep;
|
|
rep.m_timeofEvent = decode_ushort_little(data, 0, bOk);
|
|
rep.m_ammunitionId = static_cast<unsigned short>(data[2] & 0xFF);
|
|
rep.m_codeNo = static_cast<unsigned short>(data[3] & 0xFF);
|
|
rep.m_detectorNo = static_cast<unsigned short>(data[4] & 0xFF);
|
|
rep.m_originatorId = decode_ushort_little(data, 5, bOk);
|
|
|
|
return bOk ? new PanObserverController(rep) : nullptr;
|
|
}
|
|
|
|
} // namespace Telegrams
|
|
} // namespace BSM
|
|
} // namespace BuildingControlUnit
|