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
43Q_DECLARE_LOGGING_CATEGORY(AndroidSerialPortLog)
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;
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.
DataBits
This enum describes the number of data bits used.
Parity
This enum describes the parity scheme used.
SerialPortError
This enum describes the errors that may be contained by the QSerialPort::error property.
StopBits
This enum describes the number of stop bits used.
FlowControl
This enum describes the flow control used.
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