6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

QtAdvent Calendar 2014

Day 18

QtSerialPortをいじってみる

Posted at

こんにちは。この記事はQt Advent Calendar 18日目となります。

#QtSerialPort
##QtSerialPortとは
QtSerialPortとは、その名の通りQtでシリアルポートを動かすためのクラスです。たとえば、

  • ロボットの操作インターフェイスをQtで作りたい
  • 組み込みシステムを作りたい

といった時に必要となるシリアルポートの操作が可能となります。

QtSerialPortには二つのクラスがあります。
###QSerialPort
QSerialPortとはQtSerialPortの基盤となるクラスであり、またシリアルポートへの基本的なアクセスができます。Qt5.1から使用可能となりました。
QSerialPort Class | QtSerialPort 5.3

###QSerialPortInfo
QSerialPortInfoクラスではシステムにおいて利用できるシリアルポートの情報を取得することができます。Qt5.1から使用可能となりました。
QSerialPortInfo Class | QtSerialPort 5.3

QtSerialPortはQIODeviceを継承して作られているため、QIODeviceの関数である.writeや.read()なども使用することができます。

###使い方

QtSerialPortを利用する際は、プロジェクトファイルに次のように追記します

.pro
//Qt4の場合
CONFIG += serialport //これは.proファイルの一行目もしくは二行目に
//Qt5の場合
QT += serialport

また、次の二つのヘッダーを読み込みます。

#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>

###対応OS

OS サポート状況
Windows
GNU/Linux
MAC OSX

他にもWindowsCEとかでも使えるみたいです。凄いなぁ...

###簡単なサンプル

#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
 
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
 
QT_USE_NAMESPACE
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
    // Example use QSerialPortInfo
    foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) { //availablePorts()で利用可能なすべてのシリアルポートが取得できる
        qDebug() << "Name        : " << info.portName();
        qDebug() << "Description : " << info.description();
        qDebug() << "Manufacturer: " << info.manufacturer();
 
        // Example use QSerialPort
        QSerialPort serial;
        serial.setPort(info);
        if (serial.open(QIODevice::ReadWrite))
            serial.close();
    }
   
    return a.exec();
}

057.png

##参考資料
というか、ほとんどこのページの要約と翻訳って感じです...
QtSerialPort | Qt Wiki | Qt Project

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?