Files
qt5-legatus-legacy/Lts/Proxies/Buildings/BuildingControlUnit/BSM/bsm_telegrams_observer_controller.cpp
T
2026-08-13 18:33:10 +02:00

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