Files
qt5-legatus-legacy/Lts/Tools/DotMatrixDisplay/displayPanelSimulatorTcpServer.h
T
2026-08-13 18:33:10 +02:00

68 lines
1.8 KiB
C++
Executable File

/**
* @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 <QtCore/QObject>
#include <NGLLogger/INGLLogger.h>
#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);
};
//===========================================================================