diff options
| author | Thomas Vanbesien <tvanbesi@proton.me> | 2026-03-16 15:14:13 +0100 |
|---|---|---|
| committer | Thomas Vanbesien <tvanbesi@proton.me> | 2026-03-16 15:14:13 +0100 |
| commit | 50034b142dc851da7118032f7218cb1d25ea98e4 (patch) | |
| tree | b506a4dec9c10ee0510bcbb570c6c06433252960 /mock-server | |
| parent | 9ac64169720fb2b9852589b74f7300bcfebcaf62 (diff) | |
| download | QtXpl2-50034b142dc851da7118032f7218cb1d25ea98e4.tar.gz QtXpl2-50034b142dc851da7118032f7218cb1d25ea98e4.zip | |
CN_ control commands: typed API, dispatch, mock responses, demo UI
Diffstat (limited to 'mock-server')
| -rw-r--r-- | mock-server/MockServer.cpp | 103 | ||||
| -rw-r--r-- | mock-server/MockServer.h | 13 |
2 files changed, 116 insertions, 0 deletions
diff --git a/mock-server/MockServer.cpp b/mock-server/MockServer.cpp index 981bd1c..d83ad17 100644 --- a/mock-server/MockServer.cpp +++ b/mock-server/MockServer.cpp @@ -121,6 +121,32 @@ MockServer::handleCommand (QTcpSocket *client, const QByteArray &line) handleGsJcVersion (client); else if (cmd == "GS_PH_VERSION") handleGsPhVersion (client, params); + /* CN_ JC success shape (no params needed) */ + else if (cmd == "CN_JETTING_ALL_ON" || cmd == "CN_JETTING_ON" + || cmd == "CN_JETTING_OFF" || cmd == "CN_JC_ID_LED_ON" + || cmd == "CN_JC_ID_LED_OFF" || cmd == "CN_JC_CALIBRATION" + || cmd == "CN_JC_RESET_FAULT_CODES") + handleCnJcSuccess (client, cmd); + /* CN_ PH success shape (params carry printheadId) */ + else if (cmd == "CN_PH_JETTING_ON" || cmd == "CN_PH_JETTING_OFF" + || cmd == "CN_PH_ID_LED_ON" || cmd == "CN_PH_ID_LED_OFF" + || cmd == "CN_PH_CALIBRATION" || cmd == "CN_PH_RESET_FAULT_CODES" + || cmd == "CN_PH_NOZZLES_DISABLED") + handleCnPhSuccess (client, cmd, params); + /* CN_ custom-shape commands */ + else if (cmd == "CN_PH_CALIBRATION_DATA") + handleCnPhCalibrationData (client, params); + else if (cmd == "CN_PH_CALIBRATION_RAW_DATA") + handleCnPhCalibrationRawData (client, params); + else if (cmd == "CN_PH_CALIBRATED_BASE_FREQUENCY") + handleCnPhCalibratedBaseFrequency (client, params); + /* CN_ status messaging (arrives on status port) */ + else if (cmd == "CN_JC_STATUS_MESSAGING_START" + || cmd == "CN_PH_STATUS_MESSAGING_START") + handleCnStatusMessagingStart (client, cmd, params); + else if (cmd == "CN_JC_STATUS_MESSAGING_STOP" + || cmd == "CN_PH_STATUS_MESSAGING_STOP") + handleCnStatusMessagingStop (client, cmd); else qWarning ("%s Unknown command: %s", qPrintable (logTag (client->localPort ())), cmd.constData ()); @@ -167,3 +193,80 @@ MockServer::handleGsPhVersion (QTcpSocket *client, const QByteArray ¶ms) + ",\"3.10\",\"1.00\",\"Standard\"," "\"2.05\",\"1.02\",\"0.9.1\"\n"); } + +void +MockServer::handleCnJcSuccess (QTcpSocket *client, const QByteArray &cmd) +{ + qDebug ("%s RX %s", qPrintable (logTag (client->localPort ())), + cmd.constData ()); + sendReply (client, cmd + ",1,1\n"); +} + +void +MockServer::handleCnPhSuccess (QTcpSocket *client, const QByteArray &cmd, + const QByteArray ¶ms) +{ + qDebug ("%s RX %s,%s", qPrintable (logTag (client->localPort ())), + cmd.constData (), params.constData ()); + /* Extract printhead ID (first field before any comma). */ + int comma = params.indexOf (','); + QByteArray phId = (comma >= 0) ? params.left (comma) : params; + sendReply (client, cmd + ",1," + phId + ",1\n"); +} + +void +MockServer::handleCnPhCalibrationData (QTcpSocket *client, + const QByteArray ¶ms) +{ + qDebug ("%s RX CN_PH_CALIBRATION_DATA,%s", + qPrintable (logTag (client->localPort ())), params.constData ()); + /* Reply: controllerId, phId, then 48 floats (-1 = uncalibrated). */ + QByteArray reply = "CN_PH_CALIBRATION_DATA,1," + params; + for (int i = 0; i < 48; ++i) + reply += ",-1"; + reply += '\n'; + sendReply (client, reply); +} + +void +MockServer::handleCnPhCalibrationRawData (QTcpSocket *client, + const QByteArray ¶ms) +{ + qDebug ("%s RX CN_PH_CALIBRATION_RAW_DATA,%s", + qPrintable (logTag (client->localPort ())), params.constData ()); + QByteArray reply = "CN_PH_CALIBRATION_RAW_DATA,1," + params; + for (int i = 0; i < 48; ++i) + reply += ",-1"; + reply += '\n'; + sendReply (client, reply); +} + +void +MockServer::handleCnPhCalibratedBaseFrequency (QTcpSocket *client, + const QByteArray ¶ms) +{ + qDebug ("%s RX CN_PH_CALIBRATED_BASE_FREQUENCY,%s", + qPrintable (logTag (client->localPort ())), params.constData ()); + sendReply (client, + "CN_PH_CALIBRATED_BASE_FREQUENCY,1," + params + ",10.0,10.0\n"); +} + +void +MockServer::handleCnStatusMessagingStart (QTcpSocket *client, + const QByteArray &cmd, + const QByteArray ¶ms) +{ + qDebug ("%s RX %s,%s", qPrintable (logTag (client->localPort ())), + cmd.constData (), params.constData ()); + /* Echo back: controllerId, level, interval, success. */ + sendReply (client, cmd + ",1," + params + ",1\n"); +} + +void +MockServer::handleCnStatusMessagingStop (QTcpSocket *client, + const QByteArray &cmd) +{ + qDebug ("%s RX %s", qPrintable (logTag (client->localPort ())), + cmd.constData ()); + sendReply (client, cmd + ",1,1\n"); +} diff --git a/mock-server/MockServer.h b/mock-server/MockServer.h index ce76889..c07cdbe 100644 --- a/mock-server/MockServer.h +++ b/mock-server/MockServer.h @@ -43,6 +43,19 @@ private: void handleKaPing (QTcpSocket *client, const QByteArray ¶ms); void handleGsJcVersion (QTcpSocket *client); void handleGsPhVersion (QTcpSocket *client, const QByteArray ¶ms); + /* CN_ control command handlers */ + void handleCnJcSuccess (QTcpSocket *client, const QByteArray &cmd); + void handleCnPhSuccess (QTcpSocket *client, const QByteArray &cmd, + const QByteArray ¶ms); + void handleCnPhCalibrationData (QTcpSocket *client, + const QByteArray ¶ms); + void handleCnPhCalibrationRawData (QTcpSocket *client, + const QByteArray ¶ms); + void handleCnPhCalibratedBaseFrequency (QTcpSocket *client, + const QByteArray ¶ms); + void handleCnStatusMessagingStart (QTcpSocket *client, const QByteArray &cmd, + const QByteArray ¶ms); + void handleCnStatusMessagingStop (QTcpSocket *client, const QByteArray &cmd); Port m_command; Port m_imaging; |
