/** * @RDE_HEADER@ * Display Panel Simulator TCP Server; observes the given port and emits the incoming messages * $Id$ * $HeadURL$ * $Author$ * Created by Florian Schult, SLSE, 2016-03-18 */ #pragma once //===Include specifications================================================== #include #include #include "customMapsAndEnum.h" //===Forward declarations==================================================== class QLabel; class QTcpServer; class QTcpSocket; class QLedLine; //===Class specifications==================================================== /** * Display panel simulator TCP server. */ class DisplayPanelSimulatorTcpServer: public QObject { Q_OBJECT // References ------------------------------------------------------------- private: /** * Reference of the display panel simulator TCP server. */ QTcpServer *mp_server; /** * Reference of the display panel simulator TCP socket. */ QTcpSocket *mp_socket; int m_port; NGL::INGLLogger &m_logger; // Slots ------------------------------------------------------------------ private Q_SLOTS: void handleServerNewConnection(); void handleSocketReadyRead(); // Signals ---------------------------------------------------------------- Q_SIGNALS: void debugMessage(int port, const QString &message, MsgLvl lvl); void plainMessage(const QString &message); // Methods ---------------------------------------------------------------- private: void evaluateData(const QByteArray &data); static char calculateChecksum(const QByteArray &data); public: explicit DisplayPanelSimulatorTcpServer(QObject *parent = nullptr); virtual ~DisplayPanelSimulatorTcpServer(); void start(int port); }; //===========================================================================