#ifndef ISMAS_CLIENT_H_INCLUDED #define ISMAS_CLIENT_H_INCLUDED #include #include #include class IsmasClient : public QObject { Q_OBJECT public: explicit IsmasClient() = default; enum APISM { DB_PORT = 7777, DIRECT_PORT = 7778 }; enum RESULT_CODE { SUCCESS=0, // if between 00:00 - 04:00 Wait-button state not WAIT, then we assume // that's an automatic nightly (not-necessary) update NO_UPDATE_NECESSARY=1, // if APISM reports the ISMAS is not available (15x, 6s delay each) ISMAS_NO_CONNECTION_ERROR=2, // if not within 00:00-04:00 and WAIT-button was not in state WAIT ISMAS_TRIGGER_ERROR=3, }; enum REASON { TIME_TRIGGERED = 0, SERVICE, DEV_TEST, ENTRIES }; static char const *reason[REASON::ENTRIES]; static std::optional sendRequestReceiveResponse(int port, QString const &request, bool verbose=false); private: static void printDebugMessage(int port, QString const &clientIP, int clientPort, QString const &message); static void printInfoMessage(int port, QString const &clientIP, int clientPort, QString const &message); static void printErrorMessage(int port, QString const &clientIP, int clientPort, QString const &message); }; #endif // ISMAS_CLIENT_H_INCLUDED