QSerialPort Class

シリアル・ポートにアクセスする機能を提供する。詳細...

Header: #include <QSerialPort>
CMake: find_package(Qt6 REQUIRED COMPONENTS SerialPort)
target_link_libraries(mytarget PRIVATE Qt6::SerialPort)
qmake: QT += serialport
Inherits: QIODevice

注意:このクラスの関数はすべてリエントラントです。

パブリック型

enum BaudRate { Baud1200, Baud2400, Baud4800, Baud9600, Baud19200, …, Baud115200 }
enum DataBits { Data5, Data6, Data7, Data8 }
enum Direction { Input, Output, AllDirections }
flags Directions
enum FlowControl { NoFlowControl, HardwareControl, SoftwareControl }
enum Parity { NoParity, EvenParity, OddParity, SpaceParity, MarkParity }
enum PinoutSignal { NoSignal, DataTerminalReadySignal, DataCarrierDetectSignal, DataSetReadySignal, RingIndicatorSignal, …, SecondaryReceivedDataSignal }
flags PinoutSignals
enum SerialPortError { NoError, DeviceNotFoundError, PermissionError, OpenError, NotOpenError, …, UnknownError }
enum StopBits { OneStop, OneAndHalfStop, TwoStop }

プロパティ

パブリック関数

QSerialPort(QObject *parent = nullptr)
QSerialPort(const QSerialPortInfo &serialPortInfo, QObject *parent = nullptr)
QSerialPort(const QString &name, QObject *parent = nullptr)
virtual ~QSerialPort()
qint32 baudRate(QSerialPort::Directions directions = AllDirections) const
QBindable<QSerialPort::DataBits> bindableDataBits()
QBindable<QSerialPort::SerialPortError> bindableError() const
QBindable<QSerialPort::FlowControl> bindableFlowControl()
QBindable<bool> bindableIsBreakEnabled()
QBindable<QSerialPort::Parity> bindableParity()
QBindable<QSerialPort::StopBits> bindableStopBits()
bool clear(QSerialPort::Directions directions = AllDirections)
void clearError()
QSerialPort::DataBits dataBits() const
QSerialPort::SerialPortError error() const
QSerialPort::FlowControl flowControl() const
bool flush()
QSerialPort::Handle handle() const
bool isBreakEnabled() const
bool isDataTerminalReady()
bool isRequestToSend()
QSerialPort::Parity parity() const
QSerialPort::PinoutSignals pinoutSignals()
QString portName() const
qint64 readBufferSize() const
bool setBaudRate(qint32 baudRate, QSerialPort::Directions directions = AllDirections)
bool setBreakEnabled(bool set = true)
bool setDataBits(QSerialPort::DataBits dataBits)
bool setDataTerminalReady(bool set)
bool setFlowControl(QSerialPort::FlowControl flowControl)
bool setParity(QSerialPort::Parity parity)
void setPort(const QSerialPortInfo &serialPortInfo)
void setPortName(const QString &name)
void setReadBufferSize(qint64 size)
bool setRequestToSend(bool set)
bool setStopBits(QSerialPort::StopBits stopBits)
QSerialPort::StopBits stopBits() const

再実装パブリック関数

virtual qint64 bytesAvailable() const override
virtual qint64 bytesToWrite() const override
virtual bool canReadLine() const override
virtual void close() override
virtual bool isSequential() const override
virtual bool open(QIODeviceBase::OpenMode mode) override
virtual bool waitForBytesWritten(int msecs = 30000) override
virtual bool waitForReadyRead(int msecs = 30000) override

シグナル

void baudRateChanged(qint32 baudRate, QSerialPort::Directions directions)
void breakEnabledChanged(bool set)
void dataBitsChanged(QSerialPort::DataBits dataBits)
void dataTerminalReadyChanged(bool set)
void errorOccurred(QSerialPort::SerialPortError error)
void flowControlChanged(QSerialPort::FlowControl flow)
void parityChanged(QSerialPort::Parity parity)
void requestToSendChanged(bool set)
void stopBitsChanged(QSerialPort::StopBits stopBits)

再実装された保護された関数

virtual qint64 readData(char *data, qint64 maxSize) override
virtual qint64 readLineData(char *data, qint64 maxSize) override
virtual qint64 writeData(const char *data, qint64 maxSize) override

詳しい説明

QSerialPortInfo ヘルパークラスを使うと、使用可能なシリアルポートについての情報を得ることができます。これは、使用したいシリアルポートの正しい名前を取得するのに便利です。このヘルパー・クラスのオブジェクトをsetPort() またはsetPortName() メソッドの引数として渡すと、目的のシリアル・デバイスを割り当てることができます。

ポートを設定した後、open ()メソッドを使用して、読み取り専用(r/o)、書き込み専用(w/o)、または読み取り/書き込み(r/w)モードでポートを開くことができます。

注意: シリアル・ポートは常に排他アクセスでオープンされる(つまり、他のプロセスやスレッドは、すでにオープンされているシリアル・ポートにアクセスできない)。

ポートを閉じて I/O 操作をキャンセルするには、close() メソッドを使用します。

正常にオープンされると、QSerialPort はポートの現在の設定を確認し、自分自身を初期化します。setBaudRate(),setDataBits(),setParity(),setStopBits(),setFlowControl() メソッドを使用して、ポートを希望の設定に再構成できます。

ピンアウト信号を扱うためのプロパティがいくつかあります:QSerialPort::dataTerminalReady QSerialPort::requestToSend 。また、pinoutSignals() メソッドを使用して、現在のピンアウト信号セットを問い合わせることも可能です。

ポートの読み書きの準備ができたら、read() またはwrite() メソッドを使用できます。また、readLine() およびreadAll() コンビニエンス・メソッドを呼び出すこともできる。すべてのデータが一度に読み込まれない場合、新しい受信データがQSerialPortの内部読み取りバッファに追加されるため、残りのデータは後で利用できるようになります。setReadBufferSize() を使用して、読み取りバッファのサイズを制限できます。

QSerialPortは、特定のシグナルが発せられるまで呼び出し元のスレッドを一時停止する一連の関数を提供します。これらの関数は、ブロッキング・シリアル・ポートを実装するために使用できます:

  • waitForReadyRead() は、新しいデータが読み出せるようになるまで呼び出しをブロックする。
  • waitForBytesWritten() は、新しいデータが読み出し可能になるまで呼び出しをブロックします。

次の例を参照のこと:

int numRead = 0, numReadTotal = 0;
char buffer[50];

for (;;) {
    numRead  = serial.read(buffer, 50);

    // Do whatever with the array

    numReadTotal += numRead;
    if (numRead == 0 && !serial.waitForReadyRead())
        break;
}

waitForReadyRead() がfalse を返した場合、接続が閉じられたか、エラーが発生したことになります。

任意の時点でエラーが発生した場合、QSerialPort はerrorOccurred() シグナルを発信します。最後に発生したエラーの種類を調べるためにerror() を呼び出すこともできます。

ブロッキング・シリアル・ポートを使ったプログラミングは、ノンブロッキング・シリアル・ポートを使ったプログラミングとは根本的に異なります。ブロッキング・シリアル・ポートはイベント・ループを必要としないため、一般的にシンプルなコードになります。しかし、GUIアプリケーションでは、ユーザー・インターフェースのフリーズを避けるため、ブロッキング・シリアル・ポートは非GUIスレッドでのみ使用する必要があります。

これらのアプローチの詳細については、サンプル・アプリケーションを参照してください。

QSerialPortクラスは、QTextStream およびQDataStream のストリーム演算子(operator<<()および operator>>())でも使用できます。operator>>()オーバーロード演算子を使用して読み込もうとする前に、十分なデータが利用可能であることを確認してください。

QSerialPortInfoも参照

メンバ型ドキュメント

enum QSerialPort::BaudRate

この列挙型は、通信デバイスが動作するボーレートを記述する。

注意: この列挙型には、最も一般的な標準ボーレートのみが列挙されています。

定数説明
QSerialPort::Baud120012001200 ボー。
QSerialPort::Baud240024002400ボー。
QSerialPort::Baud480048004800ボー。
QSerialPort::Baud960096009600ボー。
QSerialPort::Baud192001920019200ボー
QSerialPort::Baud384003840038400ボー
QSerialPort::Baud576005760057600ボー
QSerialPort::Baud115200115200115200 ボー。

QSerialPort::baudRateも参照のこと

enum QSerialPort::DataBits

この列挙型は、使用されるデータビットの数を記述する。

定数説明
QSerialPort::Data55各文字のデータビット数は5である。一般に、テレプリンターのような古い機器でのみ意味がある。
QSerialPort::Data66各キャラクタのデータビット数は 6 である。
QSerialPort::Data77各文字のデータビット数は7で、真のASCIIに使用されます。一般に、テレプリンターのような古い機器でのみ意味がある。
QSerialPort::Data88各文字のデータビット数は8です。このサイズはバイトのサイズと一致するため、ほとんどの種類のデータに使用されます。新しいアプリケーションではほとんど普遍的に使われている。

QSerialPort::dataBitsも参照してください

enum QSerialPort::Direction
flags QSerialPort::Directions

この列挙型は、データ転送の可能な方向を記述します。

注意: この列挙は、いくつかのオペレーティングシステム(例えばPOSIXライク)で、デバイスのボーレートを方向ごとに個別に設定するために使用されます。

定数説明
QSerialPort::Input1入力方向。
QSerialPort::Output2出力方向。
QSerialPort::AllDirectionsInput | Output同時に2つの方向。

Directions型はQFlags<Direction>のtypedefである。Direction値のORの組み合わせを格納する。

enum QSerialPort::FlowControl

この列挙型は、使用されるフロー制御を記述します。

定数説明
QSerialPort::NoFlowControl0フロー制御なし。
QSerialPort::HardwareControl1ハードウェアフロー制御(RTS/CTS)。
QSerialPort::SoftwareControl2ソフトウェア・フロー制御(XON/XOFF)。

QSerialPort::flowControlも参照のこと

enum QSerialPort::Parity

この列挙型は、使用されるパリティ方式を記述する。

定数説明
QSerialPort::NoParity0パリティビットは送信されない。これは最も一般的なパリティ設定である。エラー検出は通信プロトコルで処理されます。
QSerialPort::EvenParity2パリティ・ビットを含む各文字の 1 ビットの数は、常に偶数です。
QSerialPort::OddParity3パリティ・ビットを含む各文字の 1 ビットの数は常に奇数である。これにより、各文字で少なくとも 1 つの状態遷移が発生することが保証されます。
QSerialPort::SpaceParity4スペース・パリティ。パリティ・ビットはスペース信号の状態で送られる。エラー検出情報は提供しない。
QSerialPort::MarkParity5マークパリティ。パリティ・ビットは常にマーク信号状態(論理1)に設定される。これはエラー検出情報を提供しない。

QSerialPort::parityも参照

enum QSerialPort::PinoutSignal
flags QSerialPort::PinoutSignals

この列挙型は、可能な RS-232 ピンアウト信号を記述します。

定数説明
QSerialPort::NoSignal0x00アクティブなラインなし
QSerialPort::DataTerminalReadySignal0x04DTR(データ・ターミナル・レディ)。
QSerialPort::DataCarrierDetectSignal0x08DCD(Data Carrier Detect)。
QSerialPort::DataSetReadySignal0x10DSR(Data Set Ready)。
QSerialPort::RingIndicatorSignal0x20RNG(Ring Indicator)。
QSerialPort::RequestToSendSignal0x40RTS(Request To Send)。
QSerialPort::ClearToSendSignal0x80CTS(Clear To Send)。
QSerialPort::SecondaryTransmittedDataSignal0x100STD(Secondary Transmitted Data)。
QSerialPort::SecondaryReceivedDataSignal0x200SRD(Secondary Received Data)。

PinoutSignals型はQFlags<PinoutSignal>の型定義である。PinoutSignal値のORの組み合わせが格納される。

pinoutSignals(),QSerialPort::dataTerminalReady,QSerialPort::requestToSendも参照のこと

enum QSerialPort::SerialPortError

この列挙型は、QSerialPort::error プロパティが含む可能性のあるエラーを記述します。

定数説明
QSerialPort::NoError0エラーは発生しませんでした。
QSerialPort::DeviceNotFoundError1存在しないデバイスを開こうとしてエラーが発生した。
QSerialPort::PermissionError2他のプロセスによって既にオープンされているデバイスをオープンしようとしてエラーが発生しました。
QSerialPort::OpenError3このオブジェクトで既にオープンされているデバイスを開こうとしてエラーが発生しました。
QSerialPort::NotOpenError10このエラーは、デバイスがオープンされていなければ正常に実行できない操作が実行されたときに発生します。この値はQtSerialPort 5.2 で導入された。
QSerialPort::WriteError4データの書き込み中にI/Oエラーが発生しました。
QSerialPort::ReadError5データの読み取り中にI/Oエラーが発生した。
QSerialPort::ResourceError6デバイスが予期せずシステムから削除された場合など、リソースが使用できなくなったときにI/Oエラーが発生した。
QSerialPort::UnsupportedOperationError7要求されたデバイス操作は、実行中のオペレーティング・システムではサポートされていないか、禁止されている。
QSerialPort::TimeoutError9タイムアウトエラーが発生した。この値はQtSerialPort 5.2で導入された。
QSerialPort::UnknownError8不明なエラーが発生した。

QSerialPort::errorも参照のこと

enum QSerialPort::StopBits

この列挙型は、使用されるストップビットの数を記述する。

定数説明
QSerialPort::OneStop11 ストップ・ビット。
QSerialPort::OneAndHalfStop31.5ストップビット。これはWindowsプラットフォームのみ。
QSerialPort::TwoStop22ストップビット。

QSerialPort::stopBitsも参照のこと

プロパティの説明

baudRate : qint32

このプロパティは、希望する方向のデータ・ボーレートを保持する。

設定が成功した場合、またはポートを開く前に設定された場合は、true を返す。そうでない場合は、false を返し、QSerialPort::error プロパティの値にアクセスすることで取得できるエラーコードを設定する。ボーレートを設定するには、列挙型QSerialPort::BaudRate または任意の正の qint32 値を使用する。

注意: ポートをオープンする前に設定が行われた場合、実際のシリアル・ポートの設定は、ポートのオープンが成功した直後のQSerialPort::open() メソッドで自動的に行われます。

警告 AllDirections フラグの設定は、すべてのプラットフォームでサポートされています。Windowsはこのモードのみをサポートしています。

警告 Windows では、どの方向でも等しいボーレートを返す。

デフォルト値はBaud9600、すなわち毎秒9600ビット。

アクセス関数:

qint32 baudRate(QSerialPort::Directions directions = AllDirections) const
bool setBaudRate(qint32 baudRate, QSerialPort::Directions directions = AllDirections)

Notifier シグナル:

void baudRateChanged(qint32 baudRate, QSerialPort::Directions directions)

[bindable] breakEnabled : bool

注意: このプロパティは、QProperty バインディングをサポートする。

このプロパティは、ブレーク中の伝送路の状態を保持する。

成功した場合はtrue を、そうでない場合はfalse を返す。フラグがtrue の場合、伝送線路はブレーク状態であり、そうでない場合は非ブレーク状態である。

注: このプロパティを設定または取得しようとする前に、シリアル・ポートが開いていなければならない。そうでない場合は、false を返し、NotOpenError エラー・コードを設定する。これは、通常のクラスのQtプロパティ設定とは異なり、少し特殊です。しかし、このプロパティはカーネルやハードウェアとのインタラクションを通して設定されるため、これは特殊な使用例です。したがって、2つのシナリオを完全に比較することはできません。

[bindable] dataBits : DataBits

注: このプロパティは、QProperty バインディングをサポートしています。

このプロパティは、フレーム内のデータビットを保持します。

設定が成功した場合、またはポートを開く前に設定された場合は、true を返す。そうでない場合は、false を返し、QSerialPort::error プロパティの値にアクセスすることで取得できるエラーコードを設定する。

注意: ポートをオープンする前に設定が行われた場合、実際のシリアル・ポートの設定は、ポートのオープンが成功した直後のQSerialPort::open() メソッドで自動的に行われます。

デフォルト値は Data8、すなわち 8 データ・ビットである。

dataTerminalReady : bool

このプロパティは、ライン信号 DTR の状態(High または Low)を保持する。

成功すればtrue を返し、そうでなければfalse を返す。フラグがtrue の場合、DTR信号はHighに設定され、そうでない場合はLowに設定される。

注: このプロパティを設定または取得しようとする前に、シリアル・ポートがオープンされている必要がある。そうでない場合は、false が返され、エラー・コードはNotOpenError に設定される。

アクセス関数:

bool isDataTerminalReady()
bool setDataTerminalReady(bool set)

ノーティファイア・シグナル:

void dataTerminalReadyChanged(bool set)

pinoutSignals()も参照のこと

[bindable read-only] error : SerialPortError

注: このプロパティは、QProperty バインディングをサポートしている。

このプロパティは、シリアルポートのエラー状態を保持する。

I/O デバイスの状態は、エラー・コードを返します。例えば、open() がfalse を返した場合、または読み取り/書き込み操作が-1 を返した場合、このプロパティを使用して、操作が失敗した理由を把握することができます。

エラー・コードは、clearError() を呼び出した後、デフォルトのQSerialPort::NoError に設定されます。

[bindable] flowControl : FlowControl

注: このプロパティは、QProperty バインディングをサポートしている。

このプロパティは、希望するフロー制御モードを保持します。

設定が成功した場合、またはポートを開く前に設定された場合、true を返す。そうでない場合、false を返し、QSerialPort::error プロパティの値にアクセスすることで取得できるエラーコードを設定する。

注意: ポートをオープンする前に設定が行われた場合、実際のシリアル・ポートの設定は、ポートのオープンが成功した直後のQSerialPort::open() メソッドで自動的に行われます。

デフォルト値はNoFlowControl 、つまりフロー制御なし。

[bindable] parity : Parity

注: このプロパティは、QProperty バインディングをサポートしています。

このプロパティは、パリティ検査モードを保持します。

設定が成功した場合、またはポートを開く前に設定された場合は、true を返し、そうでない場合は、false を返し、QSerialPort::error プロパティの値にアクセスすることで取得できるエラーコードを設定する。

注意: ポートをオープンする前に設定が行われた場合、実際のシリアル・ポートの設定は、ポートのオープンが成功した直後のQSerialPort::open() メソッドで自動的に行われます。

デフォルト値はNoParity 、つまりパリティなしです。

requestToSend : bool

このプロパティは、ライン信号 RTS の状態(High または Low)を保持します。

成功すればtrue を返し、そうでなければfalse を返す。フラグがtrue の場合、RTS信号はHighに設定され、そうでない場合はLowに設定される。

注: このプロパティを設定または取得しようとする前に、シリアル・ポートがオープンされている 必要がある。そうでない場合は、false が返され、エラー・コードはNotOpenError に設定される。

注意 :RTS信号はドライバによって自動的に制御されるため、HardwareControl モードでRTS信号を制御しようとすると、エラーコードがUnsupportedOperationError に設定されて失敗する。

アクセス関数:

bool isRequestToSend()
bool setRequestToSend(bool set)

ノーティファイア信号:

void requestToSendChanged(bool set)

pinoutSignals()も参照のこと

[bindable] stopBits : StopBits

注: このプロパティは、QProperty バインディングをサポートする。

このプロパティは、フレームのストップビット数を保持する。

設定が成功した場合、またはポートを開く前に設定された場合は、true を返します。そうでない場合は、false を返し、QSerialPort::error プロパティの値にアクセスすることで取得できるエラーコードを設定します。

注意: ポートをオープンする前に設定が行われた場合、実際のシリアル・ポートの設定は、ポートのオープンが成功した直後のQSerialPort::open() メソッドで自動的に行われます。

デフォルト値はOneStop 、すなわち1ストップビットである。

メンバー関数ドキュメント

[explicit] QSerialPort::QSerialPort(QObject *parent = nullptr)

与えられたparent で新しいシリアル・ポート・オブジェクトを構築する。

[explicit] QSerialPort::QSerialPort(const QSerialPortInfo &serialPortInfo, QObject *parent = nullptr)

指定されたヘルパークラスserialPortInfo を持つシリアルポートを表すために、指定されたparent を持つ新しいシリアルポートオブジェクトを構築します。

[explicit] QSerialPort::QSerialPort(const QString &name, QObject *parent = nullptr)

指定されたname を持つシリアル・ポートを表すために、指定されたparent を持つ新しいシリアル・ポート・オブジェクトを構築します。

setPort() メソッドを参照してください。

[virtual noexcept] QSerialPort::~QSerialPort()

必要に応じてシリアル・ポートを閉じ、オブジェクトを破棄します。

[signal] void QSerialPort::baudRateChanged(qint32 baudRate, QSerialPort::Directions directions)

このシグナルは、ボーレートが変更された後に発せられる。新しいボーレートはbaudRate として渡され、方向はdirections として渡される。

注: baudRate プロパティのノーティファイア・シグナル。

QSerialPort::baudRateも参照。

[override virtual] qint64 QSerialPort::bytesAvailable() const

再インプリメント:QIODevice::bytesAvailable() const.

読み込み待ちの受信バイト数を返します。

bytesToWrite() およびread() も参照

[override virtual] qint64 QSerialPort::bytesToWrite() const

再リプルメント: () const:QIODevice::bytesToWrite() const.

書き込み待ちのバイト数を返します。このバイト数は、制御がイベントループに戻るか、flush() が呼び出されたときに書き込まれる。

bytesAvailable() およびflush()も参照

[override virtual] bool QSerialPort::canReadLine() const

再インプリメント:QIODevice::canReadLine() const.

シリアルポートからデータ行を読み込める場合はtrue を返し、そうでない場合はfalse を返す。

readLine()も参照

bool QSerialPort::clear(QSerialPort::Directions directions = AllDirections)

指定された方向に応じて、出力バッファまたは入力バッファからすべての文字を破棄するdirections 。これには、内部クラス・バッファとUART(ドライバ)バッファのクリアも含まれます。また、保留中の読み取りまたは書き込み操作を終了する。成功すればtrue を返し、そうでなければfalse を返す。

注意: バッファリングされたデータをクリアしようとする前に、シリアル・ポートがオープンされていなければなりません。そうでない場合は、false を返し、NotOpenError エラー・コードを設定します。

[override virtual] void QSerialPort::close()

再インプリメント:QIODevice::close().

注意: シリアル・ポートを閉じようとする前に、シリアル・ポートが開いていなければならない。そうでない場合は、NotOpenError エラー・コードが設定される。

QIODevice::close()も参照のこと

[signal] void QSerialPort::dataBitsChanged(QSerialPort::DataBits dataBits)

このシグナルは、フレームのデータビットが変更された後に発せられる。フレームの新しいデータビットはdataBits として渡されます。

注意: dataBits プロパティのノーティファイアシグナル。

QSerialPort::dataBitsも参照

[signal] void QSerialPort::dataTerminalReadyChanged(bool set)

この信号は、ライン信号DTRの状態(HighまたはLow)が変化した後に発せられる。回線信号DTRの新しい状態(ハイまたはロー)は、set として渡される。

注: dataTerminalReady プロパティのノーティファイア・シグナル。

QSerialPort::dataTerminalReadyも参照のこと。

[signal] void QSerialPort::errorOccurred(QSerialPort::SerialPortError error)

このシグナルは、シリアル・ポートでエラーが発生したときに発せられる。指定されたerror には、発生したエラーのタイプが記述される。

注: error プロパティの通知シグナル。

QSerialPort::errorも参照のこと

[signal] void QSerialPort::flowControlChanged(QSerialPort::FlowControl flow)

このシグナルは、フロー制御モードが変更された後に発行される。新しいフロー制御モードはflow として渡される。

注: プロパティflowControl に対するノーティファイアシグナル。

QSerialPort::flowControlも参照

bool QSerialPort::flush()

この関数は、内部書き込みバッファから基礎となるシリアル・ポートへ、ブロックすることなく可能な限り書き込む。データが書き込まれた場合、この関数はtrue を返し、そうでない場合はfalse を返します。

バッファリングされたデータを直ちにシリアル・ポートに送信するには、この関数を呼 び出します。書き込みに成功したバイト数はオペレーティング・システムによって異なります。ほとんどの場合、イベント・ループに制御が戻るとQSerialPort クラスが自動的にデータ送信を開始するので、この関数を呼び出す必要はありません。イベント・ループがない場合は、代わりにwaitForBytesWritten() を呼び出してください。

注意: バッファリングされたデータをフラッシュしようとする前に、シリアル・ポートが開いている必要があります。そうでない場合は、false を返し、NotOpenError エラー・コードを設定します。

write() およびwaitForBytesWritten()も参照のこと

QSerialPort::Handle QSerialPort::handle() const

プラットフォームがサポートされており、シリアル・ポートが開いている場合は、ネイティブの シリアル・ポート・ハンドルを返し、そうでない場合は-1 を返す。

そうでない場合は を返す: この関数は専門家のみが使用できる。さらに、この関数はマイナーな Qt リリース間の互換性を約束するものではありません。

[override virtual] bool QSerialPort::isSequential() const

再実装しています:QIODevice::isSequential() const.

常にtrue を返します。シリアルポートはシーケンシャルデバイスです。

[override virtual] bool QSerialPort::open(QIODeviceBase::OpenMode mode)

再インプリメントです:QIODevice::open(QIODeviceBase::OpenMode mode).

OpenModemode を使用してシリアル・ポートをオープンし、成功した場合はtrue を返します。そうでない場合はfalse を返し、error() メソッドを呼び出すことで取得できるエラー・コードを設定します。

注意: このメソッドは、ポートのオープンには成功したが、ポート設定のいずれかを正常に設定できなかっ た場合、false を返します。この場合、ポートは自動的にクローズされ、誤った設定のまま放置されることはありません。

警告 mode は、QIODeviceBase::ReadOnlyQIODeviceBase::WriteOnlyQIODeviceBase::ReadWrite のいずれかでなければなりません。その他のモードはサポートされていません。

QIODeviceBase::OpenMode およびsetPort()も参照のこと

[signal] void QSerialPort::parityChanged(QSerialPort::Parity parity)

このシグナルは、パリティ検査モードが変更された後に発行される。新しいパリティ検査モードはparity として渡される。

注: parity プロパティのノーティファイア・シグナル。

QSerialPort::parityも参照のこと。

QSerialPort::PinoutSignals QSerialPort::pinoutSignals()

ラインシグナルの状態をビットマップ形式で返す。

この結果から、マスク "AND "を適用することで、希望する信号の状態を割り当てることができる。マスクは、QSerialPort::PinoutSignals から希望する列挙値である。

注: このメソッドはシステムコールを実行するため、ライン信号の状態が適切に返される。これは、基礎となるオペレーティング・システムが変更に関する適切な通知を提供できない場合に必要である。

注意: ピンアウト信号の取得を試みる前に、シリアル・ポートが開いていなければならない。そうでない場合は、NoSignal を返し、NotOpenError エラー・コードを設定する。

QSerialPort::dataTerminalReady およびQSerialPort::requestToSendも参照のこと

QString QSerialPort::portName() const

setPort() によって設定された名前、またはQSerialPort コンストラクタに渡された名前を返す。この名前は短いもので、デバイスの内部変数システムの位置から抽出され変換されたものです。変換アルゴリズムはプラットフォーム固有である:

プラットフォーム簡単な説明
Windowsシステムロケーションから接頭辞"˶.˶"または"//./"を削除し、残りの文字列を返します。
Unix、BSDシステム位置から接頭辞 "/dev/" を削除し、残りの文字列を返す。

setPortName()、setPort()、QSerialPortInfo::portName()も参照

qint64 QSerialPort::readBufferSize() const

内部読み込みバッファのサイズを返す。これにより、read() またはreadAll() メソッドを呼び出す前にクライアントが受信できるデータ量が制限される。

読み込みバッファのサイズが0 (デフォルト) の場合は、バッファにサイズ制限がないことを意味し、データが失われることはありません。

setReadBufferSize() およびread()も参照

[override virtual protected] qint64 QSerialPort::readData(char *data, qint64 maxSize)

再実装:QIODevice::readData(char *data, qint64 maxSize)。

[override virtual protected] qint64 QSerialPort::readLineData(char *data, qint64 maxSize)

再実装:QIODevice::readLineData(char *data, qint64 maxSize)。

[signal] void QSerialPort::requestToSendChanged(bool set)

この信号は、回線信号RTSの状態(HighまたはLow)が変更された後に発せられる。ラインシグナルRTSの新しい状態(highまたはlow)は、set として渡される。

注: requestToSend プロパティのノーティファイア・シグナル。

QSerialPort::requestToSendも参照のこと

void QSerialPort::setPort(const QSerialPortInfo &serialPortInfo)

シリアル・ポート情報インスタンスserialPortInfo に格納されているポートを設定する。

portName() およびQSerialPortInfoも参照

void QSerialPort::setPortName(const QString &name)

シリアル・ポートのname を設定します。

シリアル・ポートの名前は、必要に応じて、短い名前または長いシス テム・ロケーションとして渡すことができます。

portName() およびQSerialPortInfo参照

void QSerialPort::setReadBufferSize(qint64 size)

QSerialPort の内部読み取りバッファのサイズをsize バイトに設定する。

バッファサイズがあるサイズに制限されている場合、QSerialPort は、このサイズを超えるデータをバッファリングしない。バッファ・サイズが0 の特殊なケースは、読み取りバッファが無制限であり、すべての 受信データがバッファリングされることを意味する。これがデフォルトである。

このオプションは、データが特定の時点でのみ読み込まれる場合(例えばリアルタイムのストリーミング・アプリケーションなど)や、シリアル・ポートが多すぎるデータを受信しないように保護する必要があり、最終的にアプリケーションがメモリ不足に陥る可能性がある場合に便利です。

readBufferSize() およびread()も参照の こと。

[signal] void QSerialPort::stopBitsChanged(QSerialPort::StopBits stopBits)

このシグナルは、フレーム内のストップビット数が変更された後に発せられる。フレームの新しいストップビット数はstopBits として渡されます。

注: stopBits プロパティの通知シグナル。

QSerialPort::stopBitsも参照してください

[override virtual] bool QSerialPort::waitForBytesWritten(int msecs = 30000)

再インプリメント:QIODevice::waitForBytesWritten(int msecs).

この関数は、少なくとも 1 バイトがシリアル・ポートに書き込まれ、bytesWritten() シグナルが発せられるまでブロックします。この関数はmsecs ミリ秒後にタイムアウトする。デフォルトのタイムアウトは 30000 ミリ秒である。msecs が -1 の場合、この関数はタイムアウトしない。

この関数は、bytesWritten() シグナルが発せられた場合はtrue を返し、そうでない場合はfalse を返します(エラーが発生した場合、または操作がタイムアウトした場合)。

[override virtual] bool QSerialPort::waitForReadyRead(int msecs = 30000)

再インプリメント:QIODevice::waitForReadyRead(int msecs)。

この関数は、新しいデータが読み取り可能になり、readyRead() シグナルが発せられるまでブロックする。この関数は、msecs ミリ秒後にタイムアウトする。デフォルトのタイムアウトは 30000 ミリ秒である。msecs が -1 の場合、この関数はタイムアウトしない。

この関数は、readyRead() シグナルが発せられ、読み取り可能な新しいデータがある場合はtrue を返し、そうでない場合はfalse を返す(エラーが発生したか、操作がタイムアウトした場合)。

waitForBytesWritten()も参照

[override virtual protected] qint64 QSerialPort::writeData(const char *data, qint64 maxSize)

再実装:QIODevice::writeData(const char *data, qint64 maxSize)を参照してください。

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。