#ifndef ATBHMICONFIG_H #define ATBHMICONFIG_H #include #include #include #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; 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; PAYMENT_VARIANTS::CASH_VARIANT cashVariant; // ErrorCode-mapping QHash 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(); 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