UASParameterDataModel.h 1.79 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#ifndef UASPARAMETERDATAMODEL_H
#define UASPARAMETERDATAMODEL_H

#include <QMap>
#include <QObject>
#include <QVariant>

class UASParameterDataModel : public QObject
{
    Q_OBJECT
public:
    explicit UASParameterDataModel(QObject *parent = 0);
    

15 16
    virtual void addComponent(int componentId);

17
    /** @brief Write a new pending parameter value that may be eventually sent to the UAS */
tstellanova's avatar
tstellanova committed
18
    virtual void setPendingParameter(int componentId,  QString& paramKey,  QVariant& paramValue);
19 20 21 22 23 24
    virtual void setOnboardParameter(int componentId, QString& key,  QVariant &value);

    /** @brief add this parameter to pending list iff it has changed from onboard value */
    virtual void addPendingIfParameterChanged(int componentId, QString& key,  QVariant &value);


25 26
    void handleParameterUpdate(int componentId, QString& key, QVariant& value);

27 28 29 30 31 32 33
    QMap<QString , QVariant>* getPendingParametersForComponent(int componentId) {
        return pendingParameters.value(componentId);
    }

    QMap<QString , QVariant>* getOnbardParametersForComponent(int componentId) {
        return onboardParameters.value(componentId);
    }
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59

    QMap<int, QMap<QString, QVariant>* >  getPendingParameters() {
       return pendingParameters;
   }

    QMap<int, QMap<QString, QVariant>* > getOnboardParameters() {
       return onboardParameters;
   }


    void setUASID(int anId) {  this->uasId = anId; }

signals:
    
public slots:


protected:
    int     uasId; ///< The UAS / MAV to which this data model pertains
    QMap<int, QMap<QString, QVariant>* > pendingParameters; ///< Changed values that have not yet been transmitted to the UAS, by component ID
    QMap<int, QMap<QString, QVariant>* > onboardParameters; ///< All parameters confirmed to be stored onboard the UAS, by component ID

    
};

#endif // UASPARAMETERDATAMODEL_H