/** * @RDE_HEADER@ * Definition des PAN-Telegramms PanTechnicalStatus * $Id$ * $HeadURL$ * $Author$ * Created by Gerlinde Rudolphus, SLSA, 2013-03-05 */ #include "bsm_telegrams_technical_status.h" #include namespace BuildingControlUnit { namespace BSM { namespace Telegrams { QByteArray PanTechnicalStatus::print() const { QByteArray ret = Telegram::print() ; unsigned short first = m_failures; unsigned short failRFComm = (first & 0x80) >> 7; unsigned short failRAM = (first & 0x40) >> 6; unsigned short failFlashRom = (first & 0x20) >> 5; unsigned short batteryLow = (first & 0x10) >> 4; unsigned short batteryEol = (first & 0x8) >> 3; unsigned short optical = (first & 0x4) >> 2; unsigned short flashlight = (first & 0x2) >> 1; ret += "\n TimeofEvent = " + QByteArray::number(m_timeofEvent); ret += "\n Failures = " + QByteArray::number(m_failures); ret += "\n FailRFComm = " + QByteArray::number(failRFComm); ret += "\n FailRAM = " + QByteArray::number(failRAM); ret += "\n FailROM = " + QByteArray::number(failFlashRom); ret += "\n MCBattery = " + QByteArray::number(batteryLow); ret += "\n OSBattery = " + QByteArray::number(batteryEol); ret += "\n Optical = " + QByteArray::number(optical); ret += "\n Flashlight = " + QByteArray::number(flashlight); ret += "\n RFCommCRCErrorCount = " + QByteArray::number(m_rfCommCRCErrorCount); ret += "\n LostBeaconsCount = " + QByteArray::number(m_lostBeaconsCount); ret += "\n DetectorNo = " + QByteArray::number(m_detectorNo); return ret; } QByteArray PanTechnicalStatus::payload() const { Q_ASSERT(false); return QByteArray(); } Telegram *PanTechnicalStatus::fromBytestream(const QByteArray &data) { if (data.length() < 6) return nullptr; bool bOk = true; PanTechnicalStatus rep; rep.m_timeofEvent = decode_ushort_little(data, 0, bOk); rep.m_failures = static_cast(data[2] & 0xFF); rep.m_rfCommCRCErrorCount = static_cast(data[3] & 0xFF); rep.m_lostBeaconsCount = static_cast(data[4] & 0xFF); rep.m_detectorNo = static_cast(data[5] & 0xFF); return bOk ? new PanTechnicalStatus(rep) : nullptr; } } // namespace Telegrams } // namespace BSM } // namespace BuildingControlUnit