19#include <QtCore/QLoggingCategory>
20#include <QtCore/QMutex>
21#include <QtCore/QWaitCondition>
22#include <QtCore/private/qiodevice_p.h>
23#include <QtCore/private/qproperty_p.h>
39#ifndef QSERIALPORT_BUFFERSIZE
40#define QSERIALPORT_BUFFERSIZE DEFAULT_WRITE_BUFFER_SIZE
51 const QString& newErrorString = QString());
63 bool open(QIODevice::OpenMode mode);
67 bool clear(QSerialPort::Directions directions);
75 bool setBaudRate(qint32 baudRate, QSerialPort::Directions directions);
94 return q_func()->setDataBits(dataBits_);
101 return q_func()->setParity(parity_);
108 return q_func()->setStopBits(stopBits_);
115 return q_func()->setFlowControl(flowControl_);
120 bool setBindableBreakEnabled(
bool isBreakEnabled_)
122 return q_func()->setBreakEnabled(isBreakEnabled_);
125 &QSerialPortPrivate::setBindableBreakEnabled,
false)
127 bool waitForReadyRead(
int msec);
132 qint64
writeData(const
char* data, qint64 maxSize);
146 qint64 _writeToPort(const
char* data, qint64 maxSize,
int timeout =
DEFAULT_WRITE_TIMEOUT,
bool async = false);
147 bool _stopAsyncRead();
148 void _scheduleReadyRead();
149 qsizetype _pendingSizeLocked() const;
150 void _compactPendingDataLocked();
151 qint64 _drainPendingDataLocked(qint64 maxBytes = -1);
156 static
int _stopBitsToAndroidStopBits(
QSerialPort::StopBits stopBits);
157 static
int _dataBitsToAndroidDataBits(
QSerialPort::DataBits dataBits);
158 static
int _parityToAndroidParity(
QSerialPort::Parity parity);
159 static
int _flowControlToAndroidFlowControl(
QSerialPort::FlowControl flowControl);
163 std::atomic<
bool> _readyReadPending{
false};
164 std::atomic<qint64> _bufferBytesEstimate{0};
166 QWaitCondition _readWaitCondition;
167 QByteArray _pendingData;
168 qsizetype _pendingDataOffset = 0;
Q_DECLARE_LOGGING_CATEGORY(AndroidSerialLog)
QSerialPort::SerialPortError errorCode
Q_OBJECT_COMPAT_PROPERTY_WITH_ARGS(QSerialPortPrivate, QSerialPort::Parity, parity, &QSerialPortPrivate::setBindableParity, QSerialPort::NoParity) bool setBindableStopBits(QSerialPort
bool waitForBytesWritten(int msec)
void setError(const QSerialPortErrorInfo &errorInfo)
bool setDataTerminalReady(bool set)
bool setStopBits(QSerialPort::StopBits stopBits)
bool setFlowControl(QSerialPort::FlowControl flowControl)
Q_OBJECT_COMPAT_PROPERTY_WITH_ARGS(QSerialPortPrivate, QSerialPort::StopBits, stopBits, &QSerialPortPrivate::setBindableStopBits, QSerialPort::OneStop) bool setBindableFlowControl(QSerialPort
Q_OBJECT_COMPAT_PROPERTY_WITH_ARGS(QSerialPortPrivate, QSerialPort::DataBits, dataBits, &QSerialPortPrivate::setBindableDataBits, QSerialPort::Data8) bool setBindableParity(QSerialPort
QSerialPort::PinoutSignals pinoutSignals()
bool clear(QSerialPort::Directions directions)
bool setDataBits(QSerialPort::DataBits dataBits)
bool open(QIODevice::OpenMode mode)
void setBindableError(QSerialPort::SerialPortError error_)
Q_OBJECT_COMPAT_PROPERTY_WITH_ARGS(QSerialPortPrivate, QSerialPort::SerialPortError, error, &QSerialPortPrivate::setBindableError, QSerialPort::NoError) bool setBindableDataBits(QSerialPort
static QList< qint32 > standardBaudRates()
qint64 writeData(const char *data, qint64 maxSize)
bool setRequestToSend(bool set)
void exceptionArrived(const QString &ex)
Q_OBJECT_COMPAT_PROPERTY_WITH_ARGS(QSerialPortPrivate, bool, isBreakEnabled, &QSerialPortPrivate::setBindableBreakEnabled, false) bool waitForReadyRead(int msec)
bool setParity(QSerialPort::Parity parity)
void newDataArrived(const char *bytes, int length)
bool setBreakEnabled(bool set)
Q_OBJECT_COMPAT_PROPERTY_WITH_ARGS(QSerialPortPrivate, QSerialPort::FlowControl, flowControl, &QSerialPortPrivate::setBindableFlowControl, QSerialPort::NoFlowControl) bool setBindableBreakEnabled(bool isBreakEnabled_)
Provides functions to access serial ports.
constexpr qint64 DEFAULT_WRITE_BUFFER_SIZE
constexpr qint64 MAX_READ_SIZE
constexpr int MIN_READ_TIMEOUT
constexpr int DEFAULT_READ_TIMEOUT
constexpr int EMIT_THRESHOLD
constexpr int INVALID_DEVICE_ID
constexpr qint64 DEFAULT_READ_BUFFER_SIZE
constexpr int DEFAULT_WRITE_TIMEOUT