102 lines
3.9 KiB
C++
102 lines
3.9 KiB
C++
//
|
|
// Created by Lenn on 2025/12/16.
|
|
//
|
|
|
|
#ifndef TACTILEIPC3D_BACKEND_H
|
|
#define TACTILEIPC3D_BACKEND_H
|
|
#include <QObject>
|
|
#include <QString>
|
|
#include <QColor>
|
|
#include <qcolor.h>
|
|
#include <qtmetamacros.h>
|
|
|
|
#include "data_backend.h"
|
|
#include "serial/serial_backend.h"
|
|
|
|
class AppBackend : public QObject {
|
|
Q_OBJECT
|
|
Q_PROPERTY(bool lightMode READ lightMode WRITE setLightMode NOTIFY lightModeChanged)
|
|
Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged)
|
|
Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged)
|
|
Q_PROPERTY(bool showGrid READ showGrid WRITE setShowGrid NOTIFY showGridChanged);
|
|
Q_PROPERTY(bool useHeatmap READ useHeatmap WRITE setUseHeatmap NOTIFY useHeatmapChanged);
|
|
Q_PROPERTY(SerialBackend* serial READ serial CONSTANT)
|
|
Q_PROPERTY(DataBackend* data READ data CONSTANT)
|
|
Q_PROPERTY(int sensorCol READ sensorCol WRITE setSensorCol NOTIFY sensorColChanged);
|
|
Q_PROPERTY(int sensorRow READ sensorRow WRITE setSensorRow NOTIFY sensorRowChanged);
|
|
Q_PROPERTY(int rangeMin READ rangeMin WRITE setRangeMin NOTIFY rangeMinChanged);
|
|
Q_PROPERTY(int rangeMax READ rangeMax WRITE setRangeMax NOTIFY rangeMaxChanged);
|
|
Q_PROPERTY(QColor colorZero READ colorZero WRITE setColorZero NOTIFY colorZeroChanged);
|
|
Q_PROPERTY(QColor colorLow READ colorLow WRITE setColorLow NOTIFY colorLowChanged);
|
|
Q_PROPERTY(QColor colorMid READ colorMid WRITE setColorMid NOTIFY colorMidChanged);
|
|
Q_PROPERTY(QColor colorHigh READ colorHigh WRITE setColorHigh NOTIFY colorHighChanged);
|
|
|
|
public:
|
|
explicit AppBackend(QObject* parent=nullptr);
|
|
|
|
bool lightMode() const { return m_lightMode; }
|
|
QString language() const { return m_language; }
|
|
bool connected() const;
|
|
|
|
SerialBackend* serial() const { return m_serial; }
|
|
DataBackend* data() const { return m_data; }
|
|
|
|
void setLanguage(const QString& lang);
|
|
void setLightMode(bool on);
|
|
|
|
bool showGrid() const { return m_showGrid; }
|
|
void setShowGrid(bool on);
|
|
bool useHeatmap() const { return m_useHeatmap; }
|
|
void setUseHeatmap(bool on);
|
|
int sensorCol() const { qInfo() << "col:" << m_sensorCol; return m_sensorCol; }
|
|
int sensorRow() const { qInfo() << "row:" << m_sensorRow; return m_sensorRow; }
|
|
void setSensorRow(int r);
|
|
void setSensorCol(int c);
|
|
int rangeMin() const { return m_rangeMin; }
|
|
int rangeMax() const { return m_rangeMax; }
|
|
void setRangeMin(int v);
|
|
void setRangeMax(int v);
|
|
QColor colorZero() const { return m_colorZero; }
|
|
QColor colorLow() const { return m_colorLow; }
|
|
QColor colorMid() const { return m_colorMid; }
|
|
QColor colorHigh() const { return m_colorHigh; }
|
|
void setColorZero(const QColor& color);
|
|
void setColorLow(const QColor& color);
|
|
void setColorMid(const QColor& color);
|
|
void setColorHigh(const QColor& color);
|
|
|
|
signals:
|
|
void lightModeChanged();
|
|
void languageChanged();
|
|
void connectedChanged();
|
|
void showGridChanged(bool on);
|
|
void useHeatmapChanged(bool on);
|
|
void sensorColChanged(int c);
|
|
void sensorRowChanged(int r);
|
|
void rangeMinChanged(int v);
|
|
void rangeMaxChanged(int v);
|
|
void rangeChanged(int minV, int maxV);
|
|
void colorZeroChanged(const QColor& color);
|
|
void colorLowChanged(const QColor& color);
|
|
void colorMidChanged(const QColor& color);
|
|
void colorHighChanged(const QColor& color);
|
|
private:
|
|
SerialBackend* m_serial = nullptr;
|
|
DataBackend* m_data = nullptr;
|
|
bool m_lightMode = true;
|
|
QString m_language = QStringLiteral("zh_CN");
|
|
|
|
bool m_showGrid = true;
|
|
bool m_useHeatmap = false;
|
|
int m_sensorRow = 12;
|
|
int m_sensorCol = 7;
|
|
int m_rangeMin = 0;
|
|
int m_rangeMax = 1000;
|
|
QColor m_colorZero = QColor::fromRgbF(0.10, 0.75, 1.00);
|
|
QColor m_colorLow = QColor::fromRgbF(0.10, 0.75, 1.00);
|
|
QColor m_colorMid = QColor::fromRgbF(0.10, 0.95, 0.35);
|
|
QColor m_colorHigh = QColor::fromRgbF(1.00, 0.22, 0.10);
|
|
};
|
|
|
|
#endif //TACTILEIPC3D_BACKEND_H
|