diff options
| author | Thomas Vanbesien <tvanbesi@proton.me> | 2026-03-23 16:48:32 +0100 |
|---|---|---|
| committer | Thomas Vanbesien <tvanbesi@proton.me> | 2026-03-23 16:48:32 +0100 |
| commit | 8bcf948b76c9564cb38d3611228ccaf73890a548 (patch) | |
| tree | 5d7bc5aec767ff7911c067d1bc137f6905919c91 /mock-jetting-controller/MockServer.h | |
| parent | 61debe99a269bf7e87f6ba2f8d2a376e619fcf12 (diff) | |
| download | QtXpl2-8bcf948b76c9564cb38d3611228ccaf73890a548.tar.gz QtXpl2-8bcf948b76c9564cb38d3611228ccaf73890a548.zip | |
Rename demo/ → jetting-interface/, mock-server/ → mock-jetting-controller/
Executables: QtXpl2Demo → JettingInterfaceDemo, Xpl2MockServer → MockJettingController.
Dev log prefixes: "Demo" → "JI", "MockServer" → "MockJC". Window title → "Jetting Interface".
Diffstat (limited to 'mock-jetting-controller/MockServer.h')
| -rw-r--r-- | mock-jetting-controller/MockServer.h | 90 |
1 files changed, 90 insertions, 0 deletions
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 <QObject> +#include <QTcpSocket> +#include <QTimer> + +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; +}; |
