From 8bcf948b76c9564cb38d3611228ccaf73890a548 Mon Sep 17 00:00:00 2001 From: Thomas Vanbesien Date: Mon, 23 Mar 2026 16:48:32 +0100 Subject: Rename demo/ → jetting-interface/, mock-server/ → mock-jetting-controller/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Executables: QtXpl2Demo → JettingInterfaceDemo, Xpl2MockServer → MockJettingController. Dev log prefixes: "Demo" → "JI", "MockServer" → "MockJC". Window title → "Jetting Interface". --- mock-jetting-controller/MockServer.h | 90 ++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 mock-jetting-controller/MockServer.h (limited to 'mock-jetting-controller/MockServer.h') diff --git a/mock-jetting-controller/MockServer.h b/mock-jetting-controller/MockServer.h new file mode 100644 index 0000000..242cb32 --- /dev/null +++ b/mock-jetting-controller/MockServer.h @@ -0,0 +1,90 @@ +/** + * @file MockServer.h + * @brief Mock XPL2 server — connects out to the client on three protocol + * ports. + */ +#pragma once + +#include +#include +#include + +class MockServer : public QObject +{ + Q_OBJECT + +public: + explicit MockServer (const QString &host, QObject *parent = nullptr); + static void enableWireDebug (); + +private slots: + void onSocketConnected (); + void onSocketDisconnected (); + void onSocketMessageReady (); + /* Send KA_PING on connected sockets, retry connection on disconnected. */ + void tick (); + void sendJcStatusMsg (); + void sendPhStatusMsg (); + +private: + struct Port + { + QTcpSocket socket; + const char *name = nullptr; + quint16 number = 0; + }; + + void setupPort (Port &port, const char *name, quint16 number); + void connectAll (); + /* Return a fixed-width "[Name:port]" tag for log lines. */ + QString logTag (const QTcpSocket *socket) const; + /* Parse incoming line, log RX, and dispatch to the matching handler. */ + void handleCommand (Port &port, const QByteArray &line); + void sendReply (QTcpSocket &socket, const QByteArray &data); + void handleKaPing (Port &port, const QByteArray ¶ms); + void handleGsJcVersion (QTcpSocket &socket); + void handleGsPhVersion (QTcpSocket &socket, const QByteArray ¶ms); + /* CN_ control command handlers */ + void handleCnJcSuccess (QTcpSocket &socket, const QByteArray &cmd); + void handleCnPhSuccess (QTcpSocket &socket, const QByteArray &cmd, + const QByteArray ¶ms); + void handleCnPhCalibrationData (QTcpSocket &socket, + const QByteArray ¶ms); + void handleCnPhCalibrationRawData (QTcpSocket &socket, + const QByteArray ¶ms); + void handleCnPhCalibratedBaseFrequency (QTcpSocket &socket, + const QByteArray ¶ms); + void handleCnStatusMessagingStart (QTcpSocket &socket, const QByteArray &cmd, + const QByteArray ¶ms); + void handleCnStatusMessagingStop (QTcpSocket &socket, const QByteArray &cmd); + /* CF_ configuration command handlers */ + void handleCfJcSetPurgeSettings (QTcpSocket &socket, + const QByteArray ¶ms); + void handleCfJcSetJettingParams (QTcpSocket &socket, + const QByteArray ¶ms); + void handleCfPhJettingParams (QTcpSocket &socket, const QByteArray &cmd, + const QByteArray ¶ms); + void handleCfJcSetter (QTcpSocket &socket, const QByteArray ¶ms); + void handleCfPhSetter (QTcpSocket &socket, const QByteArray ¶ms); + void handleCfJcGetter (QTcpSocket &socket, const QByteArray ¶ms); + void handleCfPhGetter (QTcpSocket &socket, const QByteArray ¶ms); + /* Imaging command handlers */ + void handleImagingStart (QTcpSocket &socket, const QByteArray ¶ms); + void handleImagingStop (QTcpSocket &socket); + void handleImagingMaskStart (QTcpSocket &socket, const QByteArray &cmd, + const QByteArray ¶ms); + void handleImagingMaskEnd (QTcpSocket &socket, const QByteArray &cmd, + const QByteArray ¶ms); + void handleImageCount (QTcpSocket &socket); + + QString m_host; + Port m_command; + Port m_imaging; + Port m_status; + QTimer m_tickTimer; + QTimer m_jcStatusTimer; + QTimer m_phStatusTimer; + int m_jcStatusLevel = 1; + int m_phStatusLevel = 1; + static bool s_wireDebug; +}; -- cgit v1.2.3