Skip to content
Snippets Groups Projects
SHmessage.cpp 1.29 KiB
Newer Older
  • Learn to ignore specific revisions
  • Peter Altenbernd's avatar
    Peter Altenbernd committed
    #include "SHmessage.h"
    
    
    
    SHmessage::SHmessage(const QByteArray & data)
    {
        QString dataQS = data;
        QStringList dataQL = dataQS.split(QLatin1Char(';'));
    
        // Format: "node-id ; child-sensor-id ; command ; ack ; type ; payload \n"
    
    
    
        // Defaults
        m_nodeId = m_sensorId = m_command = m_ack = m_type = -1;
        m_payload = "ERROR";
        m_error = true;
    
        bool ok;
    
        if (dataQL.size() != 6) // falsches Format
            return;
    
        m_nodeId   = dataQL.at(0).toInt(&ok);
        if (not ok)
            return;
    
        m_sensorId = dataQL.at(1).toInt(&ok);
        if (not ok)
            return;
    
        m_command  = dataQL.at(2).toInt(&ok);
        if (not ok)
            return;
    
        m_ack      = dataQL.at(3).toInt(&ok);
        if (not ok)
            return;
    
        m_type     = dataQL.at(4).toInt(&ok);
        if (not ok)
            return;
    
    
    Peter Altenbernd's avatar
    Peter Altenbernd committed
        m_payload = dataQL.at(5);
        m_payload.remove(m_payload.size()-1, 1); // remove \n
    
    
        // qDebug() << "SHmessage" << m_nodeId << m_sensorId << m_command << m_ack << m_type << m_payload;
    
        m_error = false;
    
    Peter Altenbernd's avatar
    Peter Altenbernd committed
    
    }
    
    int SHmessage::command() const
    {
        return m_command;
    }
    
    int SHmessage::nodeId() const
    {
        return m_nodeId;
    }
    
    int SHmessage::sensorId() const
    {
        return m_sensorId;
    }
    
    QString SHmessage::payload() const
    {
        return m_payload;
    }
    
    
    
    bool SHmessage::error() const
    {
        return m_error;
    }