#pragma once #include #include #include #include namespace N_CoPrtCnv { class COPRTCNV_EXPORT CoPrtCnvCentralTelegram final { public: explicit CoPrtCnvCentralTelegram(TrainingAreaBase::TetraIcd::TelegramId telegramId) : m_telegramId(telegramId) {} explicit CoPrtCnvCentralTelegram(const QByteArray &data) : m_data(data) , m_telegramId(TrainingAreaBase::TetraIcd::UNKNOWN) {} CoPrtCnvCentralTelegram(const QByteArray &data, TrainingAreaBase::TetraIcd::TelegramId telegramId) : m_data(data) , m_telegramId(telegramId) {} CoPrtCnvCentralTelegram(const QByteArray &data, const QJsonObject &json, TrainingAreaBase::TetraIcd::TelegramId telegramId) : m_data(data) , m_json(json) , m_telegramId(telegramId) {} explicit CoPrtCnvCentralTelegram(const TrainingAreaBase::TetraIcd::TrainingAreaTelegram &tele) : m_telegramId(tele.id()) { m_json[QStringLiteral("type")] = tele.type(); m_json[QStringLiteral("typeId")] = tele.id(); m_json[QStringLiteral("data")] = tele.toJson(); } void setData(const QByteArray &data); QByteArray data(); QJsonObject json(); QJsonObject jsonData(); TrainingAreaBase::TetraIcd::TelegramId telegramId(); void setCounter(qint32 counter); qint32 counter(); private: void ensureJson(); void ensureByteArray(); private: QByteArray m_data; QJsonObject m_json; TrainingAreaBase::TetraIcd::TelegramId m_telegramId; }; }