#ifndef ATB_SYSTEM_H #define ATB_SYSTEM_H #include #include #include #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: 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