/*! * * Copyright (c) 2024-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 AgentSimController.h * \author (original) Stephen Quong * \date (original) 24-May-2026 * */ #pragma once #include #include #include #include #include #include #include "CloudConnectFrame.h" /*! * \brief Simulates the Agent app that connects the Leahi device to the Cloud System */ class AgentSimController : public QObject { Q_OBJECT public: explicit AgentSimController(const QString &configPath, QObject *parent = nullptr); bool listen(); private Q_SLOTS: void onNewConnection(); void onDisconnected(); void onReadyRead(); private: void handleMessage(const CloudConnectFrame &msg); void logMessage(CloudConnectFrame::MsgId msgId, quint16 sequence, const QByteArray &payload); QSettings _settings; QLocalServer _server; QLocalSocket *_client = nullptr; QByteArray _rxBuf; CloudConnectFrame _rxMsg; };