MiniDisplay/minidisplay.h
author sl
Sun, 01 Jun 2014 21:15:33 +0200
changeset 23 1f607fa8542f
parent 18 79801cc3bc94
child 29 a42cc76a2d5a
permissions -rw-r--r--
Adding an option to disable frame differencing.
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@18
    14
    Q_PROPERTY(bool offScreenMode READ offScreenMode WRITE setOffScreenMode NOTIFY offScreenModeChanged)
sl@5
    15
    Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged)
sl@8
    16
    Q_PROPERTY(QString vendor READ vendor)
sl@8
    17
    Q_PROPERTY(QString product READ product)
sl@8
    18
    Q_PROPERTY(QString serialNumber READ serialNumber)
sl@10
    19
    Q_PROPERTY(int brightness READ brightness WRITE setBrightness NOTIFY brightnessChanged)
sl@10
    20
    Q_PROPERTY(int maxBrightness READ maxBrightness NOTIFY opened)
sl@10
    21
    Q_PROPERTY(int minBrightness READ minBrightness NOTIFY opened)
sl@23
    22
    Q_PROPERTY(bool frameDifferencing READ frameDifferencing WRITE setFrameDifferencing NOTIFY frameDifferencingChanged)
sl@23
    23
    //Debug only
sl@11
    24
    Q_PROPERTY(QPoint framePosition READ framePosition WRITE setFramePosition NOTIFY closed)
sl@4
    25
sl@4
    26
public:
sl@5
    27
    //Methods
sl@4
    28
    Q_INVOKABLE void open();
sl@4
    29
    Q_INVOKABLE void close();
sl@4
    30
    //
sl@4
    31
    Q_INVOKABLE void clear();
sl@4
    32
    Q_INVOKABLE void fill();
sl@4
    33
    Q_INVOKABLE void swapBuffers();
sl@9
    34
    //
sl@9
    35
    Q_INVOKABLE void requestPowerStatus();
sl@9
    36
    Q_INVOKABLE void requestDeviceId();
sl@9
    37
    Q_INVOKABLE void requestFirmwareVersion();
sl@4
    38
sl@15
    39
    Q_INVOKABLE void renderOwnWindow();
sl@15
    40
    Q_INVOKABLE void renderWindow(QQuickWindow* aWindow);
sl@15
    41
    Q_INVOKABLE void renderImage(QImage* aImage);
sl@16
    42
    //
sl@16
    43
    Q_INVOKABLE void setPixel(int x, int y, bool on);
sl@16
    44
sl@16
    45
sl@16
    46
sl@15
    47
sl@5
    48
public:
sl@5
    49
    //Properties
sl@5
    50
    bool isOpen();
sl@5
    51
    QFont font() const {return iFont;}
sl@5
    52
    void setFont(const QFont& aFont);
sl@8
    53
    //
sl@18
    54
    bool offScreenMode();
sl@18
    55
    void setOffScreenMode(bool aOn);
sl@18
    56
    //
sl@8
    57
    QString vendor();
sl@8
    58
    QString product();
sl@8
    59
    QString serialNumber();
sl@10
    60
    //
sl@10
    61
    int maxBrightness() const;
sl@10
    62
    int minBrightness() const;
sl@10
    63
    int brightness() const;
sl@10
    64
    void setBrightness(int aBrightness);
sl@11
    65
    //
sl@23
    66
    bool frameDifferencing() const;
sl@23
    67
    void setFrameDifferencing(bool aOn);
sl@23
    68
    //Debug only
sl@11
    69
    QPoint framePosition() const;
sl@11
    70
    void setFramePosition(const QPoint& aPoint);
sl@5
    71
sl@4
    72
signals:
sl@5
    73
    void opened();
sl@5
    74
    void openError();
sl@11
    75
    void closing();
sl@5
    76
    void closed();
sl@5
    77
    void statusChanged();
sl@5
    78
    void fontChanged();
sl@10
    79
    void brightnessChanged();
sl@18
    80
    void offScreenModeChanged();
sl@23
    81
    void frameDifferencingChanged();
sl@9
    82
    //
sl@9
    83
    void powerStatus(bool powerOn);
sl@9
    84
    void deviceId(QString deviceId);
sl@9
    85
    void firmwareVersion(QString version);
sl@9
    86
sl@9
    87
public slots:
sl@9
    88
    void readTimer();
sl@9
    89
sl@2
    90
sl@2
    91
public:
sl@2
    92
    MiniDisplay(QQuickItem *parent = 0);
sl@2
    93
    ~MiniDisplay();
sl@4
    94
sl@4
    95
private:
sl@4
    96
    GP1212A01A iDisplay;
sl@5
    97
    QFont iFont;
sl@9
    98
    int iReadAttempt;
sl@10
    99
    int iBrightness;
sl@11
   100
    QPoint iFramePosition;
sl@2
   101
};
sl@2
   102
sl@2
   103
#endif // MINIDISPLAY_H
sl@2
   104