/*! * * Copyright (c) 2026 Diality Inc. - All Rights Reserved. * \copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * \file DCSSimController.h * \author (original) Stephen Quong * \date (original) 30-Jul-2026 * */ #pragma once #include #include #include #include #include #include "MqttPacket.h" /*! * \brief Diality Cloud System (DCS) simulator */ class DCSSimController : public QObject { Q_OBJECT public: explicit DCSSimController(quint16 port, QObject *parent = nullptr); bool listen(); private Q_SLOTS: void onNewConnection(); void onReadyRead(); void onDisconnected(); private: void handlePacket(const Mqtt::Packet &packet); void handleConnectPacket(const Mqtt::Packet &packet); void handlePublishPacket(const Mqtt::Packet &packet); void dumpPayload(const QByteArray &payload); QTcpServer _server; QPointer _client; QByteArray _rxBuf; quint16 _port; quint64 _publishCount = 0; };