/** * @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 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(data[2] & 0xFF); rep.m_codeNo = static_cast(data[3] & 0xFF); rep.m_detectorNo = static_cast(data[4] & 0xFF); rep.m_originatorId = decode_ushort_little(data, 5, bOk); return bOk ? new PanObserverController(rep) : nullptr; } } // namespace Telegrams } // namespace BSM } // namespace BuildingControlUnit