ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

シリアル ポート オブジェクトの作成

シリアル ポート オブジェクトの概要

関数 serial は、デバイスに接続されているシリアル ポート名を入力引数として必要とします。さらに、オブジェクト作成中にプロパティ値を構成することができます。シリアル ポートに関連付けられているシリアル ポート オブジェクトを作成するには、以下を入力します。

s = serial('port');

これは、'port' で指定されたシリアル ポートに関連付けられているシリアル ポート オブジェクトを作成します。'port' が存在しない場合、あるいは既に使用されている場合は、そのシリアル ポート オブジェクトをデバイスに接続できません。'port' オブジェクト名はシリアル ポートが存在するプラットフォームに依存します。

関数 seriallist はシステムのすべてのシリアル ポートのリストを返します。リストには、USB-to-Serial デバイスおよび Bluetooth シリアル ポート プロファイル デバイスで提供されるバーチャル シリアル ポートも含まれます。これにより、コンピューター上でアクセスでき、シリアル ポート通信に使用できるシリアル ポートのリストが提供されます。以下に例を示します。

seriallist

ans = 

  1×2 string array

  "COM1"    "COM3"

以下の表は、異なるプラットフォーム上でのシリアル コンストラクターの例を示します。

プラットフォーム

シリアル コンストラクター

Linux® 64 ビット

serial('/dev/ttyS0');

macOS 64 ビット

serial('/dev/tty.KeySerial1');

Microsoft® Windows® 64 ビット

serial('com1');

シリアル ポート オブジェクト s は MATLAB® ワークスペースに存在するようになりました。s のクラスを表示するには、whos コマンドを使用します。

whos s
  Name      Size         Bytes  Class

  s         1x1            512  serial object

Grand total is 11 elements using 512 bytes

メモ

s = serial('port') 呼び出しを使用して MATLAB のシリアル ポートに最初にアクセスしたときには、ポートがフリーで、他のアプリケーションで既に開いていないことを確認します。ポートが他のアプリケーションで既に開いていると、MATLAB はポートにアクセスできません。MATLAB でアクセスした後は、同じポートを別のアプリケーションで開くことができ、そのポートを開いたアプリケーションと一緒に MATLAB を継続して使用することができます。

いったんシリアル ポート オブジェクトが作成されると、次のプロパティには自動的に値が指定されます。これらの汎用プロパティは、オブジェクト タイプやシリアル ポートに基づいてシリアル ポート オブジェクトに関する説明的な情報を提供します。

説明的な汎用プロパティ

プロパティ名説明

Name

シリアル ポート オブジェクトにわかりやすい名前を指定する

'port'

プラットフォーム固有のシリアル ポート名を示す

Type

オブジェクト タイプを識別する

関数 get を使用して s のこれらのプロパティの値を表示します。Windows プラットフォームでは、これは以下のように表示されます。

get(s,{'Name','Port','Type'})
ans = 
    'Serial-COM1'    'COM1'    'serial'

オブジェクト作成中のプロパティの構成

オブジェクト作成中にシリアル ポート プロパティを構成することができます。serial はプロパティ名とプロパティ値を関数 set と同じ形式で受け入れることができます。たとえば、プロパティ名/プロパティ値のペアを指定できます。

s = serial('port','BaudRate',4800,'Parity','even');

無効なプロパティ名を指定すると、オブジェクトが作成されません。ただし、あるプロパティに無効な値を指定した場合 (例: BaudRate を 50 に設定)、オブジェクトが作成されても、そのオブジェクトを関数 fopen でデバイスに接続するまで値が無効なことは知らされません。

シリアル ポート オブジェクト表示

シリアル ポート オブジェクトは重要な構成と状態の情報をまとめた便利なサマリーを表示します。サマリー表示を起動するには、以下の 3 つの方法が使用できます。

  • コマンド ラインでシリアル ポート オブジェクト変数名を入力する。

  • シリアル ポート オブジェクトを作成するときにセミコロンを除外する。

  • ドット表記を使用してプロパティを構成するときにセミコロンを除外する。

ワークスペース ブラウザーを使用して概要を表示するには、インストルメント オブジェクトを右クリックして、コンテキスト メニューから [Display Summary] を選択します。

以下は、Windows プラットフォーム上のシリアル ポート オブジェクト s のサマリー表示です。

Serial Port Object : Serial-COM1

Communication Settings 
   Port:               COM1
   BaudRate:           9600
   Terminator:         'LF'

Communication State 
   Status:             closed
   RecordStatus:       off
Read/Write State  
   TransferStatus:     idle
   BytesAvailable:     0
   ValuesReceived:     0
   ValuesSent:         0

シリアル ポート オブジェクト配列の作成

MATLAB では、既存の変数を連結することで、配列を作成することができます。シリアル ポート オブジェクトについても同様です。たとえば、シリアル ポート オブジェクト s1s2 を Windows プラットフォーム上に作成するとします。

s1 = serial('COM1');
s2 = serial('COM2');

ここで、通常の MATLAB 構文を使用して、s1s2 から成るシリアル ポート オブジェクト配列を作成します。行配列 x を作成するには以下を入力します。

x = [s1 s2]

Instrument Object Array

   Index:   Type:        Status:      Name:  
   1        serial       closed       Serial-COM1
   2        serial       closed       Serial-COM2

列配列 y を作成するには以下を入力します。

y = [s1;s2];

シリアル ポート オブジェクトの行列は作成できないことにご注意ください。たとえば、以下の行列は作成できません。

z = [s1 s2;s1 s2]; ???Error using ==> serial/vertcat instrument オブジェクトの行ベクトルまたは列ベクトルのみ作成可能です。

お使いのアプリケーションによっては、シリアル ポート オブジェクトの配列を関数に渡す場合もあります。たとえば、関数 set への 1 つの呼び出しを使用して、s1s2 にボー レートとパリティを構成します。

set(x,'BaudRate',19200,'Parity','even')