MiniDisplay/minidisplay.h
author sl
Thu, 29 May 2014 14:27:08 +0200
changeset 15 737f8bb110be
parent 11 b935de604982
child 16 35f01a0d460a
permissions -rw-r--r--
Adding MiniDisplay methods to display image and window.
Using our test tab to render our display frame in QML and send it to our display.
Using a timer and frame counter to profile our performance.
sl@2
     1
#ifndef MINIDISPLAY_H
sl@2
     2
#define MINIDISPLAY_H
sl@2
     3
sl@2
     4
#include <QQuickItem>
sl@15
     5
#include <QQuickWindow>
sl@4
     6
#include "FutabaVfd.h"
sl@2
     7
sl@2
     8
class MiniDisplay : public QQuickItem
sl@2
     9
{
sl@2
    10
    Q_OBJECT
sl@2
    11
    Q_DISABLE_COPY(MiniDisplay)
sl@4
    12
    //
sl@5
    13
    Q_PROPERTY(bool isOpen READ isOpen NOTIFY statusChanged)
sl@5
    14
    Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged)
sl@8
    15
    Q_PROPERTY(QString vendor READ vendor)
sl@8
    16
    Q_PROPERTY(QString product READ product)
sl@8
    17
    Q_PROPERTY(QString serialNumber READ serialNumber)
sl@10
    18
    Q_PROPERTY(int brightness READ brightness WRITE setBrightness NOTIFY brightnessChanged)
sl@10
    19
    Q_PROPERTY(int maxBrightness READ maxBrightness NOTIFY opened)
sl@10
    20
    Q_PROPERTY(int minBrightness READ minBrightness NOTIFY opened)
sl@11
    21
    Q_PROPERTY(QPoint framePosition READ framePosition WRITE setFramePosition NOTIFY closed)
sl@4
    22
sl@4
    23
public:
sl@5
    24
    //Methods
sl@4
    25
    Q_INVOKABLE void open();
sl@4
    26
    Q_INVOKABLE void close();
sl@4
    27
    //
sl@4
    28
    Q_INVOKABLE void clear();
sl@4
    29
    Q_INVOKABLE void fill();
sl@4
    30
    Q_INVOKABLE void swapBuffers();
sl@9
    31
    //
sl@9
    32
    Q_INVOKABLE void requestPowerStatus();
sl@9
    33
    Q_INVOKABLE void requestDeviceId();
sl@9
    34
    Q_INVOKABLE void requestFirmwareVersion();
sl@4
    35
sl@15
    36
    Q_INVOKABLE void renderOwnWindow();
sl@15
    37
    Q_INVOKABLE void renderWindow(QQuickWindow* aWindow);
sl@15
    38
    Q_INVOKABLE void renderImage(QImage* aImage);
sl@15
    39
sl@5
    40
public:
sl@5
    41
    //Properties
sl@5
    42
    bool isOpen();
sl@5
    43
    QFont font() const {return iFont;}
sl@5
    44
    void setFont(const QFont& aFont);
sl@8
    45
    //
sl@8
    46
    QString vendor();
sl@8
    47
    QString product();
sl@8
    48
    QString serialNumber();
sl@10
    49
    //
sl@10
    50
    int maxBrightness() const;
sl@10
    51
    int minBrightness() const;
sl@10
    52
    int brightness() const;
sl@10
    53
    void setBrightness(int aBrightness);
sl@11
    54
    //
sl@11
    55
    QPoint framePosition() const;
sl@11
    56
    void setFramePosition(const QPoint& aPoint);
sl@5
    57
sl@4
    58
signals:
sl@5
    59
    void opened();
sl@5
    60
    void openError();
sl@11
    61
    void closing();
sl@5
    62
    void closed();
sl@5
    63
    void statusChanged();
sl@5
    64
    void fontChanged();
sl@10
    65
    void brightnessChanged();
sl@9
    66
    //
sl@9
    67
    void powerStatus(bool powerOn);
sl@9
    68
    void deviceId(QString deviceId);
sl@9
    69
    void firmwareVersion(QString version);
sl@9
    70
sl@9
    71
public slots:
sl@9
    72
    void readTimer();
sl@9
    73
sl@2
    74
sl@2
    75
public:
sl@2
    76
    MiniDisplay(QQuickItem *parent = 0);
sl@2
    77
    ~MiniDisplay();
sl@4
    78
sl@4
    79
private:
sl@4
    80
    GP1212A01A iDisplay;
sl@5
    81
    QFont iFont;
sl@9
    82
    int iReadAttempt;
sl@10
    83
    int iBrightness;
sl@11
    84
    QPoint iFramePosition;
sl@2
    85
};
sl@2
    86
sl@2
    87
#endif // MINIDISPLAY_H
sl@2
    88