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@29
|
43 |
Q_INVOKABLE void connectWindow(QQuickWindow* aWindow, QJSValue aFunction);
|
sl@29
|
44 |
//
|
sl@16
|
45 |
Q_INVOKABLE void setPixel(int x, int y, bool on);
|
sl@16
|
46 |
|
sl@16
|
47 |
|
sl@16
|
48 |
|
sl@15
|
49 |
|
sl@5
|
50 |
public:
|
sl@5
|
51 |
//Properties
|
sl@5
|
52 |
bool isOpen();
|
sl@5
|
53 |
QFont font() const {return iFont;}
|
sl@5
|
54 |
void setFont(const QFont& aFont);
|
sl@8
|
55 |
//
|
sl@18
|
56 |
bool offScreenMode();
|
sl@18
|
57 |
void setOffScreenMode(bool aOn);
|
sl@18
|
58 |
//
|
sl@8
|
59 |
QString vendor();
|
sl@8
|
60 |
QString product();
|
sl@8
|
61 |
QString serialNumber();
|
sl@10
|
62 |
//
|
sl@10
|
63 |
int maxBrightness() const;
|
sl@10
|
64 |
int minBrightness() const;
|
sl@10
|
65 |
int brightness() const;
|
sl@10
|
66 |
void setBrightness(int aBrightness);
|
sl@11
|
67 |
//
|
sl@23
|
68 |
bool frameDifferencing() const;
|
sl@23
|
69 |
void setFrameDifferencing(bool aOn);
|
sl@23
|
70 |
//Debug only
|
sl@11
|
71 |
QPoint framePosition() const;
|
sl@11
|
72 |
void setFramePosition(const QPoint& aPoint);
|
sl@5
|
73 |
|
sl@29
|
74 |
public slots:
|
sl@29
|
75 |
void onAfterAnimating();
|
sl@29
|
76 |
|
sl@4
|
77 |
signals:
|
sl@5
|
78 |
void opened();
|
sl@5
|
79 |
void openError();
|
sl@11
|
80 |
void closing();
|
sl@5
|
81 |
void closed();
|
sl@5
|
82 |
void statusChanged();
|
sl@5
|
83 |
void fontChanged();
|
sl@10
|
84 |
void brightnessChanged();
|
sl@18
|
85 |
void offScreenModeChanged();
|
sl@23
|
86 |
void frameDifferencingChanged();
|
sl@9
|
87 |
//
|
sl@9
|
88 |
void powerStatus(bool powerOn);
|
sl@9
|
89 |
void deviceId(QString deviceId);
|
sl@9
|
90 |
void firmwareVersion(QString version);
|
sl@9
|
91 |
|
sl@9
|
92 |
public slots:
|
sl@9
|
93 |
void readTimer();
|
sl@9
|
94 |
|
sl@2
|
95 |
|
sl@2
|
96 |
public:
|
sl@2
|
97 |
MiniDisplay(QQuickItem *parent = 0);
|
sl@2
|
98 |
~MiniDisplay();
|
sl@4
|
99 |
|
sl@4
|
100 |
private:
|
sl@4
|
101 |
GP1212A01A iDisplay;
|
sl@5
|
102 |
QFont iFont;
|
sl@9
|
103 |
int iReadAttempt;
|
sl@10
|
104 |
int iBrightness;
|
sl@11
|
105 |
QPoint iFramePosition;
|
sl@29
|
106 |
QJSValue iAfterAnimatingCallback;
|
sl@29
|
107 |
QQuickWindow* iWindow;
|
sl@2
|
108 |
};
|
sl@2
|
109 |
|
sl@2
|
110 |
#endif // MINIDISPLAY_H
|
sl@2
|
111 |
|