RadioCalibrationWindow.h 2.6 KB
Newer Older
1 2 3 4 5 6 7 8
#ifndef RADIOCALIBRATIONWINDOW_H
#define RADIOCALIBRATIONWINDOW_H

#include <QWidget>
#include <QLabel>
#include <QGroupBox>
#include <QPushButton>
#include <QVector>
9
#include <QGridLayout>
10 11
#include <QHBoxLayout>
#include <QDebug>
12 13 14 15

#include "AirfoilServoCalibrator.h"
#include "SwitchCalibrator.h"
#include "CurveCalibrator.h"
16

17 18
#include "UASManager.h"
#include "UASInterface.h"
19
#include "UAS.h"
20 21
#include "mavlink.h"

22 23 24
class RadioCalibrationWindow : public QWidget
{
Q_OBJECT
25

26 27 28 29 30 31
public:
    explicit RadioCalibrationWindow(QWidget *parent = 0);

signals:

public slots:
32
    void setChannel(int ch, float raw, float normalized);
33 34 35 36 37 38
    void loadFile() {this->radio->loadFile();}
    void saveFile() {this->radio->saveFile();}
    void send() {this->radio->send();}
    void receive() {this->radio->receive();}
    void setUASId(int id) {this->radio->setUASId(id);}

39 40

protected:
41 42 43 44 45 46
        AirfoilServoCalibrator *aileron;
        AirfoilServoCalibrator *elevator;
        AirfoilServoCalibrator *rudder;
        SwitchCalibrator *gyro;        
        CurveCalibrator *pitch;
        CurveCalibrator *throttle;
47

48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
        class RadioCalibrationData
        {
        public:
            explicit RadioCalibrationData(RadioCalibrationWindow *parent=0);
            RadioCalibrationData(RadioCalibrationData&);            
            RadioCalibrationData(const QVector<float>& aileron,
                                 const QVector<float>& elevator,
                                 const QVector<float>& rudder,
                                 const QVector<float>& gyro,
                                 const QVector<float>& pitch,
                                 const QVector<float>& throttle,
                                 RadioCalibrationWindow *parent=0);

            enum RadioElement
            {
                AILERON=0,
                ELEVATOR,
                RUDDER,
                GYRO,
                PITCH,
                THROTTLE
            };

            void loadFile();
            void saveFile();
            void send();
            void receive();
            void setUASId(int id);

        protected:
            QVector<QVector<float> > *data;
79
            int uasId;
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94

            void init(const QVector<float>& aileron,
                      const QVector<float>& elevator,
                      const QVector<float>& rudder,
                      const QVector<float>& gyro,
                      const QVector<float>& pitch,
                      const QVector<float>& throttle);

        private:
            RadioCalibrationWindow *parent;


        };

        RadioCalibrationData *radio;
95 96 97
};

#endif // RADIOCALIBRATIONWINDOW_H