VMCPlugin/ATBHMIconfig.h

339 lines
7.2 KiB
C++

#ifndef ATBHMICONFIG_H
#define ATBHMICONFIG_H
#include <QObject>
#include <QSettings>
#include <ATBAPP.h>
#include "version.h"
/***************************************
* Sample configuration:
*
* [General]
* com_port_name=/dev/pts/16
* machine_nr=99
*
* suspend_methode=sysfs
* suspend_program=
* suspend_time=10
*
* touch_feedback=on
* touch_feedback_gpio=115 // 115 = beep; 121 = vibration motor
* touch_feedback_on_value=0 // 0 (buzzer) 1 (vibration)
* touch_feedback_off_value=1 // 1 (buzzer) 0 (vibration)
*
* log=on // loggin is on
*
* lang1=de_DE
* lang2=en_US
* lang3=fr_FR
* lang4=ja_JP
*
* textfile=HMI_Texte.xml
*
*/
enum class OOO_MODE : quint8;
class ATBHMIconfig : public QObject
{
Q_OBJECT
QString ComPortName;
QString SuspendMethode;
QString SuspendProgram;
QString SuspendTime;
QString SellTimeoutTime;
QString qmPath;
QString touch_feedback_gpio;
QString touch_feedback_on_value;
QString touch_feedback_off_value;
QString lang1;
QString lang2;
QString lang3;
QString lang4;
QString lang5;
quint8 useLanguage;
quint8 useVehicle;
quint8 useProduct;
quint8 usePayment;
QString country1;
QString country2;
QString country3;
QString country4;
QString country5;
QSettings *settings;
quint16 features;
static const quint16 featureMaskTF = 0x0001;
static const quint16 featureMaskLog = 0x0002;
static const quint16 featureMaskDC = 0x0004; // manuell display control, (in future deprecated)
static const quint16 featureMaskSusp = 0x0008; // manuell suspend control, (in future deprecated)
static const quint16 featureMaskStartButton = 0x0010;
static const quint16 featureMaskSelfOOO = 0x0020;
static const quint16 featureMaskDBusDisplayControl = 0x0040;
static const quint16 featureMaskDBusSuspendControl = 0x0080;
static const quint16 featureMaskShowParkingTime = 0x0100;
QString logfilename;
QString textfilename;
QString alternativeLogoFilename;
QString oooServiceNumber;
QString oooServiceEmail;
QString oooAlternativeLocation;
QString qrCodeLink;
QString lpLocalExample;
QString currencySymbol;
#ifdef USE_BARCODESCANNER
bool useBarcode;
QString barcodeScannerInputDeviceName;
#endif
#ifdef USE_RFIDREADER
bool useRFID;
QString rfidReaderInputDeviceName;
#endif
#ifdef USE_EXTERNAL_TICKETMANAGER
// for ticket management
QString endOfSellingTime;
int blockingTimeMin;
#endif
quint8 defaultLanguage;
bool HelpButtonUsed;
bool InfoButtonUsed;
bool DiscountUsed;
bool QRCodeReceiptUsed;
int ComBaudRate;
QString cust_nr;
QString group_nr;
QString zone_nr;
QString machine_nr;
bool validPSAconfig;
QByteArray characterSet;
#ifdef USE_ISMAS
QString ismasHost;
quint16 ismasPort;
QString ismasID;
bool ismasDebug;
bool ismasCheckEntries;
quint16 ismasConnectionTimeout;
bool usePINgenerator;
#endif
quint32 ScreenChangeTimeoutTime;
PAYMENT_VARIANTS::CASH_VARIANT cashVariant;
// ErrorCode-mapping
QHash<QString,QString> errorTextHash;
public:
explicit ATBHMIconfig(QObject *parent = nullptr);
~ATBHMIconfig();
QSettings *getSettingsPtr();
const QSettings & getSettings();
void initEarly();
void initDefered();
QString getComPortName();
QString getSuspendMethode();
QString getSuspendProgram();
QString getSuspendTime();
QString getSellTimeoutTime();
quint32 getHMIScreenChangeTimeoutTime();
QString getQmPath();
QString getLang(int lang);
QString getCountry(int country);
bool isLanguageUsed(int lang);
bool isInfoButtonUsed();
bool isHelpButtonUsed();
bool isPaymentUsed(int payment);
bool isVehicleUsed(int vehicle);
bool isProductUsed(int product);
bool isProcductUsed(int product);
QString getTouchFeedbackGPIO();
QString getTouchFeedbackOnValue();
QString getTouchFeedbackOffValue();
bool hasFeatureTF(); // touch feedback
bool hasFeatureLog(); // log serial communication
bool hasFeatureDC(); // display control
bool hasFeatureStartButton(); // StartButton
bool hasFeatureSelfOOO(); // self ooo capability
bool hasFeatureDBusDisplayControl();
bool hasFeatureDBusSuspendControl();
bool hasFeatureShowParkingTime(); // show parking time in addition to parking end time
QString getTextfileName();
QString getAlternativeLogoFilename();
const QByteArray & getDefaultCharacterSet() const;
QString getOOOServiceNumber();
QString getOOOServiceEmail();
QString getOOOAlternativeLocation();
QString getLicensePlateExampleString();
QString getQrCodeLink();
const QString & getPaymentCurrencySymbol();
#ifdef USE_BARCODESCANNER
bool getUseBarcodeScanner();
QString & getBarcodeScannerInputDevice();
#endif
#ifdef USE_RFIDREADER
bool getUseRFIDReader();
QString & getRFIDReaderInputDevice();
#endif
#ifdef USE_EXTERNAL_TICKETMANAGER
QString getEndOfSellingTime();
int getBlockingTime();
#endif
#ifdef USE_ISMAS
QString getISMASHost();
quint16 getISMASPort();
QString getISMASId();
bool isIsmasDebug();
bool IsmasCheckEntries();
bool UsePINgenerator();
quint16 getIsmasConnectionTimeout();
#endif
void setFeatureTF();
void unsetFeatureTF();
void setFeatureLog();
void unsetFeatureLog();
void setFeatureDC();
void unsetFeatureDC();
void setFeatureStartButton();
void unsetFeatureStartButton();
void setFeatureSelfOOO();
void unsetFeatureSelfOOO();
void setFeatureDBusDisplayControl();
void unsetFeatureDBusDisplayControl();
void setFeatureDBusSuspendControl();
void unsetFeatureDBusSuspendControl();
void setFeatureShowParkingTime();
void unsetFeatureShowParkingTime();
QString getLogFileName();
int getDefaultLanguage();
QStringList getConfiguredLanguages();
int getComBaudRate();
QString getErrorText(const QString & errorCode);
// machine configuration
QString & getCustNr();
QString & getGroupNr();
QString & getZoneNr();
QString & getMachineNr();
quint8 readPSAConfig();
PAYMENT_VARIANTS::CASH_VARIANT getCashVariant();
bool discountIsUsed();
bool qrCodeReceiptIsUsed();
// service programs
QString & getNetworkDiagTool();
//QString & getPTUConfig();
//QString & getPTUUpdate();
OOO_MODE getOOOMode();
QString getOOOModeString();
PAYMENT_POINTINTIME getPaymentPointInTime();
bool useHonestPayment();
QStringList configGroups;
private:
OOO_MODE oooMode;
PAYMENT_POINTINTIME paymentPointInTime;
bool honestPayment;
void privateReadInputDevices();
QString networkDiagToolName;
signals:
public slots:
void setDefaultLanguage(quint8 lang);
void setCustNr(const QString& cust_nr);
void setGroupNr(const QString& group_nr);
void setZoneNr(const QString& zone_nr);
void setMachineNr(const QString& machine_nr);
void reReadSettings();
};
enum class OOO_MODE : quint8 {
DEFAULT = 0,
USE_PARKDISK = 1,
USE_OTHER_MACHINE = 2
};
#endif // ATBHMICONFIG_H