VMCPlugin/atb_system.h

121 lines
2.8 KiB
C++

#ifndef ATB_SYSTEM_H
#define ATB_SYSTEM_H
#include <QObject>
#include <QFile>
#include <QTextStream>
#include "version.h"
#define SYS_COMMAND_SLEEP 0x0001
#define SYS_COMMAND_DIMLOW 0x0002
#define SYS_COMMAND_DIMHIGH 0x0003
#define SYS_COMMAND_BEEP 0x0004
#define SYS_COMMAND_MACHINE_NUMBER 0x0005
#define SYS_COMMAND_HALT 0x0006
#define SYS_COMMAND_REBOOT 0x0007
#define SYS_COMMAND_LED_CONTROL 0x3600
#if defined (ARCH_PTU2)
#define BEEPTIMEOUT 200
#elif defined (ARCH_PTU4)
#define BEEPTIMEOUT 100
#else
#define BEEPTIMEOUT 100
#endif
class ATBHMIconfig;
class ATB_system : public QObject {
Q_OBJECT
private:
int init_touch_feedback();
int init_sc_dbus();
ATBHMIconfig *config;
QFile *tf_gpio;
QTextStream *tf_gpio_outstream;
quint8 current_dim_value;
void privateConfigLED(const QByteArray & cmd);
void privateSetLEDTrigger(const QString & led, const QString & trigger);
void privateSetLEDDelayOn(const QString & led, const QString & delayOn);
void privateSetLEDDelayOff(const QString & led, const QString & delayOff);
void privateSwitchBlinkButton(bool on);
public:
explicit ATB_system(ATBHMIconfig *config, QObject *parent = nullptr);
~ATB_system();
static quint8 setPSAConfigInt(const QString & filename, quint16 iValue);
static quint16 readPSAConfigInt(const QString &filename);
static quint8 setPSAConfigString(const QString & filename, const QString & sValue);
static QString readPSAConfigString(const QString & filename);
enum LED_NAME {
ATB_LED1 = 1,
ATB_LED2,
ATB_LED3,
ATB_LED4
};
enum LED_TRIGGER {
LED_TRIGGER_NONE = 1,
LED_TRIGGER_TIMER,
LED_TRIGGER_DEFAULT_ON
};
enum DEVICE_TYPE {
EVENT_DEVICE_BARCODEREADER,
EVENT_DEVICE_TOUCHSCREEN,
EVENT_DEVICE_GPIO_KEYBOARD,
EVENT_DEVICE_KEYBOARD,
EVENT_DEVICE_RFIDREADER,
EVENT_DEVICE_USBMOUSE
};
static QString getEventDeviceName(DEVICE_TYPE type);
static quint8 setupInductionLoops();
void dbus_permitSuspend();
void dbus_preventSuspend();
void dbus_DimHighPermanent();
void dbus_DimControlStart();
void dbus_wakeSystem();
signals:
/* emitted, after waking up from suspend...
*/
void wakeUp();
public slots:
void executeSystemCommand(quint16 cmd, QByteArray data);
void DimHigh();
void DimLow();
void Dim(quint8 value);
void DimStart();
void DimStop();
void Beep();
void BeepStop();
void setDateTime(const QString &dateTimeString);
void onConfigLED(LED_NAME LED, LED_TRIGGER trigger, quint16 delayOn = 0, quint16 delayOff = 0);
void switchBlinkButtonOn();
void switchBlinkButtonOff();
void onWakeVMC();
void halt();
void reboot();
};
#endif // ATB_SYSTEM_H