<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[QSerialPort Close unexpectedly]]></title><description><![CDATA[<p dir="auto">Hi all,</p>
<p dir="auto">I am using QSerialPort Module for communicating with the Esp32  When the Esp32 requests the data Qt application gives the data it will work fine for around 4 hours but after some time Qserialport close unexpectedly.</p>
<p dir="auto">However, When I Disconnect and reconnect Qserialport it will work again for around 4 hours and this cycle repeats.</p>
<p dir="auto">Does anyone have any idea what's going on...</p>
<p dir="auto">Here is my Code for the serial port.</p>
<p dir="auto">m_serialport::m_serialport(QObject *parent)<br />
: QObject{parent}<br />
{</p>
<p dir="auto">}</p>
<p dir="auto">void m_serialport::init_Serial_Port()<br />
{<br />
m_serial = new QSerialPort();<br />
}</p>
<p dir="auto">uint8_t m_serialport::Open_Serial_Port()<br />
{<br />
m_serial-&gt;setPortName(Serial_Port_Settings.Port);<br />
qDebug() &lt;&lt; m_serial-&gt;setBaudRate(Serial_Port_Settings.baud);<br />
m_serial-&gt;setDataBits(Serial_Port_Settings.dataBits);<br />
m_serial-&gt;setParity(Serial_Port_Settings.parity);<br />
m_serial-&gt;setStopBits(Serial_Port_Settings.stopBits);<br />
m_serial-&gt;setFlowControl(QSerialPort::NoFlowControl);</p>
<pre><code>if (m_serial-&gt;open(QIODevice::ReadWrite)) {

    return QSerialPort::NoError;

} else {

    Serial_Port_Error_String = m_serial-&gt;errorString();

    return QSerialPort::DeviceNotFoundError;

}

return QSerialPort::DeviceNotFoundError;
</code></pre>
<p dir="auto">}</p>
<p dir="auto">void m_serialport::Close_Serial_Port()<br />
{<br />
m_serial-&gt;close();<br />
}</p>
<p dir="auto">int ack_count =0;<br />
QByteArray data ="";</p>
<p dir="auto">void m_serialport::Read__data()<br />
{</p>
<pre><code>qDebug() &lt;&lt; "Serial running " &lt;&lt; QThread::currentThread();

QByteArray serial_data = m_serial-&gt;readAll();

qDebug() &lt;&lt; " data =  " &lt;&lt; serial_data;
qDebug() &lt;&lt; " last =  " &lt;&lt; serial_data[serial_data.size()-1];

if(serial_data[serial_data.size()-1] == '#')
{
    serial_data[serial_data.size()-1] = ' ';
    if(serial_data[0] == '@')
    {
        data = serial_data;
    }
    else
    {
        data.append(serial_data);
    }
    data[0] = ' ';

    QJsonObject data_json ;

    QJsonDocument jsonDocument = QJsonDocument::fromJson(data);

    if (!jsonDocument.isNull() &amp;&amp; jsonDocument.isObject())
    {
        data_json = jsonDocument.object();
    }
    qDebug() &lt;&lt; data_json;
  
    if(data_json.contains("Request") == true  &amp;&amp; data_json.value("Request").toString() == "DATA")
    {
    
          // logic portion that will collect data from JSON object and make packet 

                QJsonValue value = jsonDoc.object().value(key);
                if( jsonDoc.object().value(key).isObject())
                {    qDebug() &lt;&lt; "Key = " &lt;&lt; key &lt;&lt; "is group ";
                    foreach(const QString&amp; key1, jsonDoc.object().value(key).toObject().keys()) {
                        QJsonValue value1 = jsonDoc.object().value(key).toObject().value(key1);
                        qDebug() &lt;&lt; "Key = " &lt;&lt; key1 &lt;&lt; ", Value = " &lt;&lt; value1.toString();
                    }
                }
                else
                {
                    qDebug() &lt;&lt; "Key = " &lt;&lt; key &lt;&lt; ", Value = " &lt;&lt; value.toString();
                }
            
            m_serial-&gt;write(jsonDoc.toJson(QJsonDocument::Compact) + '\0');
        

    }
    else
    {
        DATA_Read-&gt;Add_Modbus_write_string(data);
    }
}
else
{
    if(serial_data[0] == '@')
    {
        data = serial_data;
    }
    else if(serial_data[0] != '@')
    {
        data.append(serial_data);
    }
}
</code></pre>
<p dir="auto">}</p>
]]></description><link>https://forum.qt.io/topic/146276/qserialport-close-unexpectedly</link><generator>RSS for Node</generator><lastBuildDate>Thu, 05 Nov 2026 05:12:02 GMT</lastBuildDate><atom:link href="https://forum.qt.io/topic/146276.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 06 Jul 2023 08:07:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to QSerialPort Close unexpectedly on Thu, 06 Jul 2023 19:22:05 GMT]]></title><description><![CDATA[<p dir="auto">Hi,</p>
<p dir="auto">Did you check your system logs to see if there's anything happening at that time ?</p>
]]></description><link>https://forum.qt.io/post/763889</link><guid isPermaLink="true">https://forum.qt.io/post/763889</guid><dc:creator><![CDATA[SGaist]]></dc:creator><pubDate>Thu, 06 Jul 2023 19:22:05 GMT</pubDate></item></channel></rss>