From 6dfb127aaac2dce6e5ed48e72053fe9ffe913fe4 Mon Sep 17 00:00:00 2001 From: Burak Hancerli <burak.hancerli@qt.io> Date: Fri, 17 Nov 2023 17:43:50 +0100 Subject: [PATCH] add: simple protocol for transferring the project over tcp --- src/dsConnector.cpp | 44 ++++++++++++++++++-------------------------- src/dsConnector.h | 2 +- 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/src/dsConnector.cpp b/src/dsConnector.cpp index 93785da..97f2c37 100644 --- a/src/dsConnector.cpp +++ b/src/dsConnector.cpp @@ -29,31 +29,25 @@ void DesignStudioConnector::receiveProject() { - qDebug() << "Reading data from Design Studio"; - emit networkStatusUpdated("Reading data from Design Studio"); QByteArray data = m_tcpSocket->readAll(); - qDebug() << "Data from Design Studio:" << data; - // if (data.startsWith(":qmlrc_project_starts:")) { - // qDebug() << "Received qmlrc_project"; - // emit networkStatusUpdated("Received qmlrc_project"); - // m_projectData.append(data.mid(21, data.size() - 21)); - // m_receivingData = true; - // } else if (data.contains(":qmlrc_project_ends:")) { - // qDebug() << "Received qmlrc_project_ends"; - // emit networkStatusUpdated("Received qmlrc_project_ends"); - // m_projectData.append(data.mid(0, data.size() - 20)); - // emit projectReceived(m_projectData); - // m_projectData.clear(); - // m_receivingData = false; - // } else if (m_receivingData) { - // qDebug() << "Received data:" << data; - // emit networkStatusUpdated("Receiving project data"); - // m_projectData.append(data); - // } else { - // qDebug() << "Received unknown data:" << data; - // emit networkStatusUpdated("Received unknown data"); - // } - m_projectData.append(data); + // qDebug() << "Data from Design Studio:" << data; + if (data.startsWith("qres")) { + qDebug() << "TCP:: Received project start delimeter"; + m_projectData.clear(); + m_projectData.append(data); + m_receivingData = true; + } else if (data.contains("::qmlrc-end::")) { + qDebug() << "TCP:: Received project end delimeter"; + // qDebug() << "TCP:: Last data sequence: " << data; + m_projectData.append(data.mid(0, data.size() - 13)); + emit projectReceived(m_projectData); + m_receivingData = false; + } else if (m_receivingData) { + qDebug() << "TCP:: Received data sequence"; + m_projectData.append(data); + } else { + qDebug() << "TCP:: Received unknown data:" << data; + } } bool DesignStudioConnector::initTcpServer() @@ -78,8 +72,6 @@ bool DesignStudioConnector::initTcpServer() emit networkStatusUpdated("\nLocal IP: " + m_ipv4Addr + "\nWaiting for Design Studio to connect..."); m_broadcastTimer.start(); - m_receivingData = false; - emit projectReceived(m_projectData); m_projectData.clear(); }); diff --git a/src/dsConnector.h b/src/dsConnector.h index 5e577cc..28d3f03 100644 --- a/src/dsConnector.h +++ b/src/dsConnector.h @@ -51,7 +51,7 @@ private: QUdpSocket m_udpSocket; QTimer m_broadcastTimer; QString m_ipv4Addr; - const quint32 m_udpPort = 39000; + const quint32 m_udpPort = 45000; // Other members QByteArray m_projectData; -- GitLab