Skip to content
Snippets Groups Projects
MAVLinkDecoder.h 1.68 KiB
Newer Older
  • Learn to ignore specific revisions
  • lm's avatar
    lm committed
    #ifndef MAVLINKDECODER_H
    #define MAVLINKDECODER_H
    
    #include <QObject>
    #include "MAVLinkProtocol.h"
    
    class MAVLinkDecoder : public QObject
    {
        Q_OBJECT
    public:
        MAVLinkDecoder(MAVLinkProtocol* protocol, QObject *parent = 0);
    
    signals:
        void textMessageReceived(int uasid, int componentid, int severity, const QString& text);
    
        void valueChanged(const int uasId, const QString& name, const QString& unit, const QVariant& value, const quint64 msec);
    
    lm's avatar
    lm committed
    
    public slots:
        /** @brief Receive one message from the protocol and decode it */
        void receiveMessage(LinkInterface* link,mavlink_message_t message);
    protected:
        /** @brief Emit the value of one message field */
        void emitFieldValue(mavlink_message_t* msg, int fieldid, quint64 time);
    
    pixhawk's avatar
    pixhawk committed
        /** @brief Shift a timestamp in Unix time if necessary */
        quint64 getUnixTimeFromMs(int systemID, quint64 time);
    
    lm's avatar
    lm committed
    
        mavlink_message_t receivedMessages[256]; ///< Available / known messages
    
        mavlink_message_info_t messageInfo[256]; ///< Message information
        QMap<uint16_t, bool> messageFilter;               ///< Message/field names not to emit
    
        QMap<uint16_t, bool> textMessageFilter;           ///< Message/field names not to emit in text mode
    
        int componentID[256];                             ///< Multi component detection
        bool componentMulti[256];                         ///< Multi components detected
    
    pixhawk's avatar
    pixhawk committed
        quint64 onboardTimeOffset[256];                   ///< Offset of onboard time from Unix epoch (of the receiving GCS)
        qint64 onboardToGCSUnixTimeOffsetAndDelay[256];   ///< Offset of onboard time and GCS Unix time
        quint64 firstOnboardTime[256];                    ///< First seen onboard time
    
    lm's avatar
    lm committed
    
    };
    
    #endif // MAVLINKDECODER_H