serial のプロパティ
(削除予定) シリアル プロパティへのアクセス
serial
およびそのオブジェクト プロパティは推奨されません。代わりに、serialport
およびそのプロパティを使用してください。互換性についての考慮事項を参照してください。
シリアル プロパティは、serial
オブジェクトを使用した通信の構成と読み取りと書き込みの動作の構成に使用されます。
一部のプロパティは関数 serial
を使用したオブジェクトの作成中に設定できます。Port
、BaudRate
、ByteOrder
、DataBits
、Parity
、StopBits
および Terminator
などのプロパティの詳細については、serial
のリファレンス ページを参照してください。
通信プロパティは、データ ビット転送の設定に使用されます。読み取りと書き込みのプロパティは、操作を完了するタイムアウトの設定など、データの読み取りと書き込みに関連する要因の設定に使用されます。コールバック プロパティを使用して、イベントからコールバック関数を実行します。制御ピン プロパティを使用して、制御ピンとデータ フロー制御の状態を構成します。記録プロパティを使用して、ディスクへの記録情報を設定および制御します。
メモ
すべてのプロパティについてのこのサンプル構文では、シリアル オブジェクト s
が作成されていることが前提です。プロパティの多くは、オブジェクトで fopen
を呼び出す前にしか設定できません。一部はオブジェクトが開いている間に変更できます。
プロパティは serial
オブジェクトを作成した後に設定できます。読み取り専用プロパティは以下のように呼び出されます。
s = serial('COM1');
s.TransferStatus
ans = idle
構成可能なプロパティを以下のように設定します。
s = serial('COM1');
s.Timeout = 30;
汎用プロパティ
Name
— シリアル ポート オブジェクトの説明的な名前
文字ベクトル | string
シリアル ポート オブジェクトの説明的な名前。文字ベクトルまたは string として指定します。シリアル ポート オブジェクトの作成時に、説明的な名前は自動的に生成され、Name
に保存されます。この名前は、単語 "Serial" と関数 serial
で指定したシリアル ポートを連結することによって与えられます。ただし、Name
の値はいつでも変更可能です。
シリアル ポートは、Port
プロパティで与えられます。このプロパティ値を変更すると、Name
は自動的に更新されて変更が反映されます。
例: s.Name = 'MySerialDevice';
データ型: char
| string
Port
— シリアル ポート名
文字ベクトル | string
この プロパティ は読み取り専用です。
シリアル ポート名。文字ベクトルまたは string として指定します。関数 seriallist
は利用できるシリアル ポートのリストを提供します。シリアル ポート オブジェクトを作成するポートを指定しなければなりません。
ポート名はシリアル ポートがあるプラットフォームに依存します。以下のリストに、異なるプラットフォーム上でのシリアル コンストラクターの例を示します。
プラットフォーム | シリアル ポート コンストラクター |
---|---|
Linux® 64 | s = serial('/dev/ttyS0') |
macOS 64 | s = serial('/dev/tty.KeySerial1') |
Windows® 64 | s = serial('COM1') |
例: s.Port
データ型: char
| string
Tag
— シリアル ポート オブジェクトに関連付けるラベル
文字ベクトル | string
シリアル ポート オブジェクトに関連付けるラベル。文字ベクトルまたは string として指定します。Tag
は、シリアル ポート オブジェクトを一意に識別します。Tag
はそもそも、シリアル ポート オブジェクトをグローバル変数として定義したり、オブジェクトをコールバック ルーチン間で引数として渡したりする必要があるプログラムの作成に特に有用です。
Tag
プロパティ値を指定することにより、関数 instrfind
を使用してシリアル ポート オブジェクトを返すことができます。
例: s.Tag = 'MySerialObj';
データ型: char
| string
Type
— オブジェクト タイプ
serial
(既定値)
この プロパティ は読み取り専用です。
オブジェクト タイプ。serial
として指定します。Type
は、関数 serial
を使用してシリアル ポート オブジェクトが作成された後で自動的に定義されます。Type
の値は常に serial
です。
例: s.Type
データ型: char
| string
UserData
— シリアル ポート オブジェクトに関連付けるデータ
[ ] (既定値) | 配列
シリアル ポート オブジェクトに関連付けるデータ。MATLAB 配列として指定します。シリアル ポート オブジェクトと関連付けるデータを保存するために UserData
を構成します。オブジェクトは、このデータを直接には使用しませんが、関数 get またはドット表記を使用してアクセスできます。
ObjectVisibility
— シリアル ポート オブジェクトへのアクセスを制御する
'on'
(既定値) | 'off'
シリアル ポート オブジェクトへのアクセスの制御。'on'
または 'off'
として指定します。これを使用すると、アプリケーション開発者は、アプリケーションで作成したシリアル ポート オブジェクトへのエンド ユーザー アクセスを禁止できます。オブジェクトの ObjectVisibility
プロパティが 'off'
に設定されている場合、関数 instrfind
はそのオブジェクトを返したり、削除したりしません。
オブジェクトは、表示されませんが有効です。オブジェクトにアクセスする場合 (たとえば、オブジェクトを作成するファイル内から)、そのプロパティを設定および取得して、シリアル ポート オブジェクトで機能する関数に渡すことができます。
例: s.ObjectVisibility = 'off';
データ型: char
| string
通信プロパティ
ByteOrder
— デバイスのバイト順
littleEndian
(既定値) | bigEndian
デバイスのバイト順。littleEndian
または bigEndian
として指定します。ByteOrder
が littleEndian
の場合は、デバイスは最初のバイトを最初のメモリ アドレスに保存します。ByteOrder
が bigEndian
の場合は、デバイスは最後のバイトを最初のメモリ アドレスに保存します。
たとえば、16 進数値 4F52 がデバイス メモリに保存されると仮定します。この値は 4F と 52 の 2 つのバイトで構成されているので、2 つのメモリ位置が利用されます。ビッグ エンディアン形式を使用すると、4F が先に小さいストレージ アドレスに保存されます。リトル エンディアン形式を使用すると、52 が先に小さいストレージ アドレスに保存されます。
littleEndian
のバイト順は既定の設定であり、プロパティを指定しない場合に読み取りと書き込みの操作で使用されます。プロパティを指定しなければならないのは、バイト順を bigEndian
に変更する場合のみです。
次の構文を使用して、シリアル オブジェクトを作成した後に ByteOrder
プロパティを設定することもできます。
s.ByteOrder = 'bigEndian';
メモ
読み取りまたは書き込み操作を行う前に、ByteOrder
をデバイスに対して適切な値に構成します。バイトを保存する順番に関する詳細は、デバイスのドキュメンテーションを参照してください。
例: s.ByteOrder = 'bigEndian';
データ型: char
| string
BaudRate
— ビットが送信されるレート
9600 (既定値) | double
ビットが送信されるレート。double として指定します。ボー レートはビット/秒として設定されます。送信されるビットには、スタート ビット、データ ビット、パリティ ビット (使用される場合)、ストップ ビットが含まれます。ただし、データ ビットのみが格納されます。
ボー レートは、情報が通信チャネルで送信される速度です。シリアル ポートのコンテキストでは、9600 ボーはシリアル ポートが 1 秒に最大 9600 ビットを送信できることを意味します。情報の単位が 1 ボー (1 ビット) である場合、ビット レートとボー レートは同一です。1 ボーが 10 ビット (8 データ ビットと 2 フレーミング ビットなど) として与えられている場合、ビット レートは 9600 のままですが、ボー レートは 9600/10 または 960 になります。BaudRate
は常にビット/秒として設定されます。
メモ
コンピューターと周辺デバイスでデータの読み取りおよび書き込みを正常に行うには、同じボー レートに構成しなければなりません。
標準のボー レートは、110、300、600、1200、2400、4800、9600、14400、19200、38400、57600、115200、128000、256000 ビット/秒です。
次の構文を使用して、シリアル オブジェクトを作成した後に BaudRate
プロパティを設定することもできます。
s.BaudRate = 4800;
例: s.BaudRate = 4800;
データ型: double
DataBits
— 送信するデータ ビット数
8 (既定値) | 5 | 6 | 7
送信するデータ ビット数。5
、6
、7
または 8
として指定します。データは 5、6、7、8 個の一連のビットとして送信され、最下位ビットが最初に送信されます。ASCII 文字を送信するには少なくとも 7 個のデータ ビットが必要です。バイナリ データを送信するには 8 ビットが必要です。5 ビットおよび 6 ビット データ形式は、特殊な通信機器に利用されます。
メモ
コンピューターと周辺デバイスは、同数のデータ ビットを送信するように構成しなければなりません。
データ ビットに加えて、シリアル データ形式はスタート ビット、1 個または 2 個のストップ ビット、およびパリティ ビット (必要な場合) で構成されます。StopBits
プロパティを使用してストップ ビットの数を指定し、Parity
プロパティを使用してパリティ チェックのタイプを指定します。
次の構文を使用して、シリアル オブジェクトを作成した後に DataBits
プロパティを設定することもできます。
s.DataBits = 7;
例: s.DataBits = 7;
データ型: double
Parity
— パリティ チェックのタイプ
'none'
(既定値) | 'odd'
| 'even'
| 'mark'
| 'space'
パリティ チェックのタイプ。none
、odd
、even
、mark
または space
として指定します。
| 既定の設定。パリティ チェックは行いません。パリティ チェックは行われず、パリティ ビットは送信されません。 |
| Odd パリティ チェック。データ内の mark ビット (1 の) 数がカウントされ、奇数の mark ビットを取得するためにパリティ ビットはアサートされるか、またはアンアサートされます。 |
| Even パリティ チェック。データ内の mark ビット数がカウントされ、偶数の mark ビットを取得するためにパリティ ビットはアサートされるか、またはアンアサートされます。 |
| Mark パリティ チェック。パリティ ビットはアサートされます。 |
| Space パリティ チェック。パリティ ビットはアンアサートされます。 |
パリティ チェックは、1 ビットのエラーのみを検出できます。2 ビットのエラーが発生した場合は、データが実際には不正確であっても、表面上有効なパリティをもつ場合があります。
パリティ ビットに加えて、シリアル データ形式はスタート ビット、5 から 8 のデータ ビット、1 つまたは 2 つのストップ ビットで構成されます。DataBits
プロパティを使用してデータ ビット数を指定し、StopBits
プロパティを使用してストップ ビット数を指定します。
次の構文を使用して、シリアル オブジェクトを作成した後に Parity
プロパティを設定することもできます。
s.Parity = 'even';
例: s.Parity = 'even';
データ型: char
| string
StopBits
— バイトの終了を示すためのビット数
1 (既定値) | 1.5 | 2
バイトの終了を示すためのビット数。1
、1.5
または 2
として指定します。StopBits
が 1
の場合は、データ送信の終了を示すために 1 個のストップ ビットが利用されます。StopBits
が 2
の場合は、データ送信の終了を示すために 2 個のストップ ビットが利用されます。StopBits
が 1.5
の場合は、ストップ ビットは 1 ビットの送信のための標準的な時間の 150% で送信されます。
メモ
コンピューターと周辺デバイスは、同数のストップ ビットを送信するように構成されていなければなりません。
可能な値の一覧です。
| 既定の設定。バイトの終了を示すために 1 つのストップ ビットが送信されます。 |
| ストップ ビットは、1 ビットの標準的な送信時間の 150% で送信されます。 |
| バイトの終了を示すために 2 つのストップ ビットが送信されます。 |
ストップ ビットに加えて、シリアル データ形式は、スタート ビット、5 個から 8 個のデータ ビット、パリティ ビット (必要な場合) で構成されます。DataBits
プロパティを使用してデータ ビット数を指定し、Parity
プロパティを使用してパリティ チェックのタイプを指定します。
次の構文を使用して、シリアル オブジェクトを作成した後に StopBits
プロパティを設定することもできます。
s.StopBits = 2;
例: s.StopBits = 2;
データ型: double
Terminator
— 終端文字
string | cell 配列
終端文字。string または cell 配列として指定します。Terminator
を 0 ~ 127 の範囲の整数値に構成します。これは、文字に対する ASCII コードを示します。または Terminator
を ASCII 文字に構成することもできます。たとえば、Terminator
をキャリッジ リターンに構成するには、値を CR
または 13
に指定します。Terminator
を改行に構成するには、値を LF
または 10
に指定します。Terminator
を CR/LF
または LF/CR
に設定することもできます。Terminator
が CR/LF
の場合は、終端文字はキャリッジ リターン (CR) の後に改行文字 (LF) が続きます。終端文字が LF/CR
の場合は、終端文字は改行文字 (LF) の後にキャリッジ リターン (CR) が続きます。これらの 2 つの値と等価な整数はないことに注意してください。
また、Terminator
を 1 行 2 列の cell 配列に設定できます。セルの最初の要素は読み取り終端文字で、cell 配列の 2 番目の要素は書き込み終端文字です。
関数 fprintf
を使用して書き込み操作を実行する際、発生するすべての \n
は Terminator
プロパティ値で置き換えられます。%s\n
は、関数 fprintf
に対する既定の形式です。関数 fgetl
、fgets
、fscanf
を使用した読み取り操作は、Terminator
の値が読み取られると終了します。終端文字は、二項演算では無視されます。
BytesAvailableFcnMode
が terminator
に設定されているとき、終端文字を使用してバイト利用可能なイベントを生成することもできます。
次の構文を使用して、シリアル オブジェクトを作成した後に Terminator
プロパティを設定することもできます。
s.Terminator = 'CR';
例: s.Terminator = 'CR';
データ型: char
| string
| cell
読み取りと書き込みのプロパティ
BytesAvailable
— 入力バッファーで利用可能なバイト数
0 (既定値) | double
この プロパティ は読み取り専用です。
入力バッファーで利用可能なバイト数。double として指定します。この読み取り専用プロパティは、入力バッファーから現在読み取り可能なバイト数を示します。プロパティ値は、入力バッファーが満たされると連続的に更新され、関数 fopen
が実行された後に 0
に設定されます。
データを非同期で読み取るときにのみ BytesAvailable
を使用できます。これは、データを同期して読み取る場合、入力バッファーが空になった後にのみ制御が MATLAB® コマンド ラインに戻るためです。そのため、BytesAvailable
の値は常に 0 です。
BytesAvailable
の値は、ゼロから入力バッファーのサイズまでの範囲です。入力バッファーのサイズを指定するには、InputBufferSize
プロパティを使用します。読み取られる値の総数を返すには、ValuesReceived
プロパティを使用します。
例: s.BytesAvailable
データ型: double
InputBufferSize
— 入力バッファーのサイズ (バイト)
512 (既定値) | double
入力バッファーのサイズ (バイト)。double として指定します。InputBufferSize
は、読み取り操作中に入力バッファーに保存可能なバイトの総数として構成します。
読み取り操作は、入力バッファーに保存されたデータ量が InputBufferSize
の値と等しくなったときに終了します。関数 fgetl
、fget
または fscanf
を使用してテキスト データを読み取ることができます。関数 fread
を使用してバイナリ データを読み取ることができます。
InputBufferSize
は、シリアル ポート オブジェクトがデバイスから切断されているときにのみ設定可能です。これは、関数 fopen
を呼び出す前に設定できます。関数 fclose
を使用してオブジェクトを切断します。切断されたオブジェクトは、Status
プロパティの値が closed
です。
データが入力バッファーにあるときに InputBufferSize
を設定する場合、そのデータは消去されます。
例: s.InputBufferSize = 768;
データ型: double
ReadAsyncMode
— 非同期の読み取り操作が連続的に行われるか、手動で行われるかを指定
'continuous'
(既定値) | 'manual'
非同期の読み取り操作が連続的に行われるか、手動で行われるかを 'manual'
または 'continuous'
として指定します。ReadAsyncMode
が continuous
である場合は、シリアル ポート オブジェクトは、データが読み取り可能であるかどうかを決定するために連続的にデバイスにクエリします。データが読み取り可能の場合は、自動的に読み取られ、入力バッファーに保存されます。実行された場合、関数 readasync
は無視されます。
ReadAsyncMode
が manual
の場合は、オブジェクトはデータが読み取り可能であるかどうかをデバイスにクエリしません。代わりに、手動で関数 readasync
を実行して、非同期読み取り操作を行わなければなりません。readasync
は終端文字をチェックするため、この関数は処理が遅くなる場合があります。速度を上げるには、ReadAsyncMode
を continuous
に構成します。
メモ
デバイスがデータ送信の準備ができている場合は、ReadAsyncMode
の値にかかわらず送信します。そのため、ReadAsyncMode
が manual
で読み取り操作が進行中でない場合は、データは失われる場合があります。すべての送信データが入力バッファーに保存されるように保証するには、ReadAsyncMode
を continuous
に構成します。
入力バッファー内のデータ量を決定するには、BytesAvailable
プロパティを使用します。いずれの ReadAsyncMode
の値に対しても、fscanf
、fgetl
、fgets
、fread
などの同期読み取り関数を使用して MATLAB ワークスペースにデータを置くことができます。
例: s.ReadAsyncMode = 'manual';
データ型: char
| string
Timeout
— 読み取りまたは書き込みの操作完了までの待ち時間
10 (既定値) | double
読み取りまたは書き込みの操作完了までの待ち時間。double として指定します。Timeout
を、読み取りまたは書き込みの操作完了までの最大待ち時間 (秒) になるように設定します。10
秒の既定値は、別の値を指定しない場合に使用されます。タイムアウトは秒単位に丸められます。
タイムアウトが発生した場合、読み取りまたは書き込みの操作は中止されます。さらに、タイムアウトが非同期の読み取りまたは書き込みの操作中に発生した場合は、以下のようになります。
エラー イベントが生成されます。
ErrorFcn
に対して指定されたコールバック関数が実行されます。
例: s.Timeout = 30;
データ型: double
TransferStatus
— 非同期の読み取りまたは書き込み操作のステータス
idle
(既定値) | read
| write
| read&write
この プロパティ は読み取り専用です。
非同期の読み取りまたは書き込み操作のステータス。idle
、read
、write
または read&write
として指定します。この読み取り専用プロパティは、非同期の読み取りと書き混み操作が進行しているかどうかを示します。TransferStatus
が idle
の場合は、進行中の非同期読み取りまたは書き込み操作はありません。read
の場合は、非同期読み取り操作が進行中です。write
の場合は、非同期書き込み操作が進行中です。TransferStatus
が read&write
の場合は、非同期の読み取りと書き込みの両方の操作が進行中です。
関数 fprintf
または fwrite
を使用してデータを非同期的に書き込むことができます。関数 readasync
を使用するか、ReadAsyncMode
プロパティを continuous
に設定すると、非同期的にデータを読み込むことができます。関数 readasync
が実行中のとき、TransferStatus
はデータが入力バッファーに入力されていなくても読み取り中であることを示す場合があります。ReadAsyncMode
が continuous
の場合、TransferStatus
はデータが入力バッファー内にあるときにのみ、データが読み取られることを示します。
シリアル ポートは別々の読み取りと書き込みのピンをもつので、非同期読み取りと非同期書き込みの操作を同時に実行できます。
可能な値の一覧です。
| 非同期操作は進行中ではありません。 |
| 非同期読み取り操作が進行中です。 |
| 非同期書き込み操作が進行中です。 |
| 非同期の読み取りと書き込みの操作が進行中です。 |
例: s.TransferStatus
データ型: char
| string
ValuesReceived
— デバイスから読み取られる値の総数
0 (既定値) | double
この プロパティ は読み取り専用です。
デバイスから読み取られる値の総数。double として指定します。これは読み取り専用プロパティです。この値は読み取り操作が正常終了するたびに更新され、関数 fopen
の発行後 0
に設定されます。終端文字がデバイスから読み取られた場合は、この値は ValuesReceived
によって反映されます。
データを非同期的に読み取る場合は、BytesAvailable
プロパティを使用して入力バッファーで現在利用可能なバイト数を返します。
読み取り操作の実行時に、受信されたデータは、バイトではなく値で表されます。値は、1 つ以上のバイトで構成されます。たとえば、1 つの値 uint32
は、4 つのバイトで構成されます。
たとえば、シリアル ポート COM1 に関連付けられているシリアル ポート オブジェクトを作成して、接続を開きます。
s = serial('COM1'); fopen(s)
RS232?
コマンドを書き込み、関数 fscanf
を使用して応答を読み取る場合、機器は LF
終端文字を送信するように構成されるので ValuesReceived
は 17
です。
fprintf(s,'RS232?') out = fscanf(s) out = 9600;0;0;NONE;LF s.ValuesReceived ans = 17
例: s.ValuesReceived
データ型: double
BytesToOutput
— 現在出力バッファーにあるバイト数
0 (既定値) | double
この プロパティ は読み取り専用です。
現在出力バッファーにあるバイト数。double として指定します。この読み取り専用プロパティは、デバイスに書き込まれるのを待つ出力バッファー内の現在のバイトの数を示します。プロパティ値は、出力バッファーが満たされるか空のときに連続的に更新され、関数 fopen
が実行された後で 0
に設定されます。
データを非同期で書き込むときにのみ BytesToOutput
を使用できます。これは、データを同期して書き込む場合、出力バッファーが空になった後にのみ制御が MATLAB コマンド ラインに戻るためです。そのため、BytesToOutput
の値は常に 0
です。
デバイスに書き込まれる値の総数を返すには、ValuesSent
プロパティを使用します。
メモ
出力バッファーに入る量よりも多くのデータを書き込もうとした場合は、エラーが返され、BytesToOutput
は 0
です。OutputBufferSize
プロパティを使用して、出力バッファーのサイズを指定します。
例: s.BytesToOutput
データ型: double
OutputBufferSize
— 出力バッファーのサイズ (バイト)
512 (既定値) | double
出力バッファーのサイズ (バイト)。double として指定します。OutputBufferSize
は、書き込み操作中に出力バッファーに保存可能なバイトの総数として設定します。
OutputBufferSize
は、シリアル ポート オブジェクトがデバイスから切断されているときにのみ設定可能です。これは、関数 fopen
を呼び出す前に設定できます。関数 fclose
を使用してオブジェクトを切断します。切断されたオブジェクトは、Status
プロパティの値が closed
です。
出力バッファーが書き込まれるすべてのデータを保持できない場合は、エラーが発生します。関数 fprintf
を使用してテキスト データを書き込みます。関数 fwrite
を使用してバイナリ データを書き込みます。
例: s.OutputBufferSize = 256;
データ型: double
ValuesSent
— デバイスに書き込まれる値の総数
0 (既定値) | double
この プロパティ は読み取り専用です。
デバイスに書き込まれる値の総数。double として指定します。これは読み取り専用プロパティです。この値は書き込み操作が正常終了するたびに更新され、関数 fopen
の発行後 0
に設定されます。終端文字を書き込む場合は、ValuesSent
はこの値を反映します。
データを非同期的に書き込む場合は、BytesToOutput
プロパティを使用して出力バッファーで現在利用可能なバイト数を返します。
書き込み操作の実行時に、送信されたデータは、バイトではなく値で表されます。値は、1 つ以上のバイトで構成されます。たとえば、1 つの値 uint32
は、4 つのバイトで構成されます。
たとえば、シリアル ポート COM1 に関連付けられているシリアル ポート オブジェクトを作成して、接続を開きます。
s = serial('COM1'); fopen(s)
関数 fprintf
を使用して *IDN?
コマンドを書き込む場合には、既定のデータ形式が %s\n
で、終端文字が書き込まれたため、ValuesSent
は 6
です。
fprintf(s,'*IDN?') s.ValuesSent ans = 6
例: s.ValuesSent
データ型: double
Status
— シリアル ポート デバイスの接続ステータス
closed (既定値) | open
この プロパティ は読み取り専用です。
シリアル ポート デバイスの接続ステータス。closed
または open
が返されます。この読み取り専用プロパティは、シリアル ポート オブジェクトがデバイスに接続されているかどうかを示します。Status
が closed
の場合は、シリアル ポート オブジェクトはデバイスに接続されていません。Status
が open
の場合は、シリアル ポート オブジェクトはデバイスに接続されます。
データの読み取りまたは書き込み前に、関数 fopen
を使用してシリアル ポート オブジェクトをデバイスに接続しなければなりません。関数 fclose
を使用してデバイスからシリアル ポート オブジェクトを切断します。
例: s.Status
データ型: char
| string
コールバック プロパティ
BreakInterruptFcn
— ブレーク割り込みイベントの発生時に実行するコールバック関数
関数ハンドル
ブレーク割り込みイベントの発生時に実行するコールバック関数。関数ハンドルとして指定します。ブレーク割り込みイベントは、受信したデータが 1 バイトに対する送信時間よりも長くオフ (スペース) 状態であるときに、シリアル ポートによって生成されます。
メモ
ブレーク割り込みイベントは、シリアル ポート セッション中にいつでも生成される可能性があります。
RecordStatus
プロパティ値が on
で、ブレーク割り込みイベントが発生する場合は、レコード ファイルは以下の情報を記録します。
BreakInterrupt
のイベント タイプイベントの発生時刻 (日-月-年 時:分:秒:ミリ秒)
データ型: function_handle
BytesAvailableFcn
— バイト利用可能なイベントの発生時に実行するコールバック関数
関数ハンドル
バイト利用可能なイベントの発生時に実行するコールバック関数。関数ハンドルとして指定します。バイトを利用可能なイベントは、BytesAvailableFcnCount
プロパティで指定されたバイト数が入力バッファーで利用可能なとき、または BytesAvailableFcnMode
プロパティで指定された終端文字が読み取られた後に発生します。
メモ
バイトを利用可能なイベントは、非同期の読み取り操作に対してのみ生成されます。
RecordStatus
プロパティ値が on
で、バイトを利用可能なイベントが発生する場合は、レコード ファイルは以下の情報を記録します。
BytesAvailable
のイベント タイプイベントの発生時刻 (日-月-年 時:分:秒:ミリ秒)
メモ
127 文字数を超える ASCII 値を使用することはできません。この関数は、バイナリ文字数 127 に制限されています。
例: s.BytesAvailableFcn = @instrcallback;
データ型: function_handle
BytesAvailableFcnCount
— 入力バッファーで使用できるバイト数
48 (既定値) | 数値
バイト利用可能なイベントを生成するために入力バッファーで使用できるバイト数。数値として指定します。
あるバイト数が利用可能になった後、または終端文字が読み取られた後のどちらにバイトを利用可能なイベントが発生するかを指定するには BytesAvailableFcnMode
プロパティを使用します。
バイトを利用可能なイベントは、BytesAvailableFcn
プロパティに対して指定されたコールバック関数を実行します。
オブジェクトがデバイスから切断されているときにのみ BytesAvailableFcnCount
を構成できます。関数 fclose
を使用してオブジェクトを切断します。切断されたオブジェクトは、Status
プロパティの値が closed
です。
例: s.BytesAvailableFcnCount = 40;
データ型: double
BytesAvailableFcnMode
— バイト利用可能な関数の種類
'terminator'
(既定値) | 'byte'
バイト利用可能なイベントを生成するバイト利用可能な関数の種類。'terminator'
または 'byte'
として指定します。BytesAvailableFcnMode
が 'terminator'
の場合は、バイト利用可能なイベントは Terminator
プロパティで指定された終端文字に達したときに発生します。BytesAvailableFcnMode
が 'byte'
の場合は、バイト利用可能なイベントは BytesAvailableFcnCount
プロパティで指定されたバイト数が利用可能なときに発生します。
バイトを利用可能なイベントは、BytesAvailableFcn
プロパティに対して指定されたコールバック関数を実行します。
オブジェクトがデバイスから切断されているときにのみ BytesAvailableFcnMode
を構成できます。関数 fclose
を使用してオブジェクトを切断します。切断されたオブジェクトは、Status
プロパティの値が closed
です。
例: s.BytesAvailableFcnMode = 'byte';
データ型: char
| string
ErrorFcn
— エラー イベントの発生時に実行するコールバック関数
関数ハンドル
エラー イベントの発生時に実行するコールバック関数。関数ハンドルとして指定します。
メモ
エラー イベントは、非同期読み取りおよび書き込み操作に対してのみ生成されます。
エラー イベントは、タイムアウトの発生時に生成されます。タイムアウトは、読み取りまたは書き込み操作が Timeout
プロパティで指定した時間内に終了しなかった場合に発生します。エラー イベントは、無効なプロパティ値の設定などの構成エラーに対して生成されません。
RecordStatus
プロパティ値が on
で、エラー イベントが発生する場合は、レコード ファイルは以下の情報を記録します。
イベント タイプを
Error
とするエラー メッセージ
イベントの発生時刻 (日-月-年 時:分:秒:ミリ秒)
データ型: function_handle
OutputEmptyFcn
— 出力が空のイベントの発生時に実行するコールバック関数
関数ハンドル
出力が空のイベントの発生時に実行するコールバック関数。関数ハンドルとして指定します。出力が空のイベントは、最後のバイトが出力バッファーからデバイスに送信されたときに発生します。
メモ
出力が空であるイベントは、非同期の書き込み操作に対してのみ生成されます。
RecordStatus
プロパティ値が on
で、出力が空であるイベントが発生する場合は、レコード ファイルは以下の情報を記録します。
イベント タイプを
OutputEmpty
とするイベントの発生時刻 (日-月-年 時:分:秒:ミリ秒)
データ型: function_handle
PinStatusFcn
— ピン ステータス イベントの発生時に実行するコールバック関数
関数ハンドル
ピン ステータス イベントの発生時に実行するコールバック関数。関数ハンドルとして指定します。ピン ステータス イベントは、Carrier Detect (CD)、Clear to Send (CTS)、Data Set Ready (DSR)、Ring Indicator (RI) のピンの状態が変更されたときに発生します。シリアル ポート ピンは、アサートされたとき、またはアンアサートされたときに状態を変更します。これらのピンの状態に関する情報は、PinStatus
プロパティに記録されます。
メモ
ピン ステータス イベントは、シリアル ポート セッション中にいつでも生成されます。
RecordStatus
プロパティ値が on
で、ピンのステータス イベントが発生する場合は、レコード ファイルは以下の情報を記録します。
イベント タイプを
PinStatus
とする状態が変化したピン、およびピンの状態を
on
またはoff
とするイベントの発生時刻 (日-月-年 時:分:秒:ミリ秒)
データ型: function_handle
TimerFcn
— タイマー イベントの発生時に実行するコールバック関数
関数ハンドル
タイマー イベントの発生時に実行するコールバック関数。関数ハンドルとして指定します。タイマー イベントは、TimerPeriod
プロパティで指定した時間が経過したときに発生します。時間は、シリアル ポート オブジェクトが関数 fopen
を使用してデバイスに接続されたときからの相対時間です。
メモ
タイマー イベントは、シリアル ポート セッション中にいつでも生成できます。
RecordStatus
プロパティ値が on
で、タイマー イベントが発生する場合は、レコード ファイルは以下の情報を記録します。
イベント タイプを
Timer
とするイベントの発生時刻 (日-月-年 時:分:秒:ミリ秒)
システムの処理速度が大幅に低下した場合や、TimerPeriod
値が小さすぎる場合は、一部のタイマー イベントが処理されないことがあります。
データ型: function_handle
TimerPeriod
— タイマー イベント間の時間
1 (既定値) | 数値
タイマー イベント間の時間。秒数として指定します。これは、TimerFcn
に対して指定されたコールバック関数が呼び出されるまでの時間です。時間は、シリアル ポート オブジェクトが関数 fopen
を使用してデバイスに接続されたときからの相対時間です。
システムの処理速度が大幅に低下した場合や、TimerPeriod
値が小さすぎる場合は、一部のタイマー イベントが処理されないことがあります。
データ型: double
制御ピン プロパティ
DataTerminalReady
— DTR ピンの状態
on (既定値) | off
DTR ピンの状態。on
または off
として指定します。DataTerminalReady
が on
の場合、Data Terminal Ready (DTR、データ端末レディ) ピンはアサートされます。DataTerminalReady
が off
の場合は、DTR ピンはアンアサートされます。
通常の利用法では、DTR と Data Set Ready (DSR、データセット レディ) ピンは共に機能し、デバイスが接続され電源が入っているかどうかを通知するために利用されます。ただし、DTR ピンを特定の方法で利用する必要があることを示す記述は RS-232 標準にはありません。たとえば、DTR と DSR はハンドシェーキング用に利用することがあります。特定のピンの動作を決定するには、デバイスのドキュメンテーションを参照してください。
PinStatus
プロパティを使用して DSR ピンの値を返します。
例: s.DataTerminalReady = 'off';
データ型: char
| string
FlowControl
— データ フロー制御法
none (既定値) | hardware | software
データ フロー制御法。none
、hardware
、または software
として指定します。FlowControl
が none
の場合は、データ フロー制御 (ハンドシェーキング) は使用されません。FlowControl
が hardware
である場合は、データ フローの制御にハードウェア ハンドシェーキングが使用されます。FlowControl
が software
である場合は、データ フローの制御にソフトウェア ハンドシェーキングが使用されます。
ハードウェア ハンドシェーキングは、一般的に Request to Send (RTS) ピンと Clear to Send (CTS) ピンを使用してデータ フローを制御します。ソフトウェア ハンドシェーキングは、制御文字 (Xon と Xoff) を使用してデータ フローを制御します。
PinStatus
プロパティを使用して、CTS ピンの値を返すことができます。RequestToSend
プロパティを使用して、RTS ピンの値を指定できます。ただし、FlowControl
が hardware
で、RequestToSend
に対して値を指定する場合は、その値は与えられない場合があります。
メモ
デバイスをハードウェア ハンドシェーキングとソフトウェア ハンドシェーキング用に同時に構成することは可能ですが、MATLAB はこの動作はサポートしません。
例: s.FlowControl = 'hardware';
データ型: char
| string
PinStatus
— CD、CTS、DSR および RI ピンの状態
構造体
この プロパティ は読み取り専用です。
CD、CTS、DSR および RI ピンの状態。構造体として返されます。この読み取り専用プロパティは、CarrierDetect
、ClearToSend
、DataSetReady
、RingIndicator
フィールドを含む構造体配列を返します。これらのフィールドは、それぞれ Carrier Detect (CD)、Clear to Send (CTS)、Data Set Ready (DSR)、Ring Indicator (RI) の各ピンの状態を示します。
PinStatus
は、これらのフィールドに対して on
または off
を設定します。値 on
は、関連付けられているピンがアサートされることを示します。値 off
は、関連付けられているピンがアンアサートされることを示します。ピン ステータス イベントは、これらのピンのいずれかの状態が変化したときに発生します。ピン ステータス イベントは、PinStatusFcn
で指定したコールバック関数を実行します。
通常の利用法では、Data Terminal Ready (DTR) ピンと DSR ピンは共に機能し、Request to Send (RTS) ピンと CTS ピンが共に機能します。DataTerminalReady
プロパティを使用して DTR ピンの状態を指定できます。RequestToSend
プロパティを使用して RTS ピンの状態を指定できます。
例: s.PinStatus
データ型: struct
RequestToSend
— RTS ピンの状態
on (既定値) | off
RTS ピンの状態。on
または off
として指定します。RequestToSend
が on
の場合は、Request to Send (RTS) ピンがアサートされます。RequestToSend
が off
の場合は、RTS ピンはアンアサートされます。
通常の利用法では、RTS ピンと Clear to Send (CTS) ピンは共に機能し、データ送信に対する標準のハンドシェーキングとして利用されます。この場合に、RTS と CTS は DTE と DCE によって自動的に管理されます。ただし、RS-232 標準では、RTS ピンを特定の方法で使用することを要求していません。そのため、RequestToSend
の値を手動で構成する場合は、この値は非標準の操作用になります。
デバイスが標準的な方法でハードウェア ハンドシェーキングを利用しない場合は、RequestToSend
プロパティを手動で構成し、FlowControl
プロパティを none
に構成する必要があります。そうでない場合は、ユーザーが指定する RequestToSend
の値は与えられない場合があります。特定のピンの動作については、お使いのデバイスのドキュメンテーションを参照してください。
PinStatus
プロパティを使用して、CTS ピンの値を返すことができます。
例: s.RequestToSend = 'off';
データ型: char
| string
記録プロパティ
RecordDetail
— レコード ファイルに保存される情報の詳細レベル
compact (既定値) | verbose
レコード ファイルに保存される情報の詳細レベル。compact
または verbose
として指定します。RecordDetail
が compact
の場合は、デバイスに書き込まれる値の数、デバイスから読み取られる値の数、値のデータ型、イベント情報がレコード ファイルに保存されます。RecordDetail
が verbose
の場合は、デバイスに書き込まれるデータ、デバイスから読み取られるデータもレコード ファイルに保存されます。
可能な値の一覧です。
| デバイスに書き込まれる値の数、デバイスから読み取られる値の数、値のデータ型、イベント情報がレコード ファイルに保存されます。 |
| デバイスに書き込まれるデータ、デバイスから読み取られるデータもレコード ファイルに保存されます。 |
例: s.RecordDetail = 'verbose';
データ型: char
| string
RecordMode
— データおよびイベント情報のレコード ファイルへの保存方法
overwrite (既定値) | append | index
データおよびイベント情報のレコード ファイルへの保存方法。overwrite
、append
、または index
として指定します。RecordMode
が overwrite
の場合、レコード ファイルは記録が開始されるたびに上書きされます。RecordMode
が append
の場合は、データは記録が開始されるたびにレコード ファイルに追加されます。RecordMode
が index
の場合は、記録が開始されるたびにインデックス付きのファイル名をもつ異なるレコード ファイルが作成されます。
RecordMode
は、オブジェクトが記録中でないときにのみ構成できます。関数 record
を使用して記録を終了します。記録中でないオブジェクトは、RecordStatus
プロパティの値が off
です。
RecordName
プロパティを使用してレコード ファイル名を指定します。インデックス付きのファイル名は、所定の規則に従います。
可能な値の一覧です。
| レコード ファイルは上書きされます。 |
| データは既存のレコード ファイルに追加されます。 |
| それぞれインデックス付きのファイル名をもつ別のレコード ファイルが作成されます。 |
たとえば、レコード プロパティを使用してシリアル データを記録します。シリアル ポート オブジェクトを作成して接続を開きます。
s = serial('COM1'); fopen(s)
RecordName
プロパティを使用してレコード ファイル名を指定し、RecordMode
を index
に構成して記録を開始します。
s.RecordName = 'MyRecord.txt'; s.RecordMode = 'index'; record(s)
レコード ファイル名は、記録がオフになった後でインデックス付きファイル名を使用して自動的に更新されます。
record(s,'off') s.RecordName ans = MyRecord01.txt
周辺デバイスから s
を切断し、メモリから s
を削除します。また、MATLAB ワークスペースからも s
を削除します。
fclose(s) delete(s) clear s
例: s.RecordMode = 'index';
データ型: char
| string
RecordName
— レコード ファイル名
string
レコード ファイル名。string として指定します。ファイル名がオペレーティング システムによってサポートされている限り、ディレクトリ パスを含む任意の値を RecordName
に対して指定できます。
既定のレコード ファイル名は record.txt
です。これは、データ ファイルを記録するときに、別の名前を指定しない場合に使用します。
MATLAB は、オペレーティング システムでサポートされている任意のファイル名をサポートします。関数 type
を使用してファイルにアクセスできます。たとえば、レコード ファイルに MyRecord.txt
という名前を付ける場合、このファイルを MATLAB コマンド ラインで入力するには、次のように入力します。
type('MyRecord.txt')
データとイベント情報が、1 つのディスク ファイルあるいは複数のディスク ファイルのいずれかに保存されることを RecordMode
プロパティを使用して指定できます。RecordMode
が index
の場合は、ファイル名は所定の規則に従います。
RecordName
は、オブジェクトが記録中でないときにのみ構成できます。関数 record
を使用して記録を終了します。記録中でないオブジェクトは、RecordStatus
プロパティの値が off
です。
例: s.RecordName = 'MonthlyDataFile_April';
データ型: char
| string
RecordStatus
— シリアル データとイベント情報の記録のステータス
off (既定値) | on
この プロパティ は読み取り専用です。
シリアル データとイベント情報の記録のステータス。on
または off
として返されます。この読み取り専用プロパティは、関数 record
によって制御される記録がオンとオフのどちらであるかを示します。RecordStatus
が off
の場合は、データとイベント情報はレコード ファイルに保存されません。RecordStatus
が on
の場合は、データとイベント情報は RecordName
で指定されたレコード ファイルに保存されます。
記録を開始または完了するには、関数 record
を使用します。RecordStatus
は、自動的に構成されて記録の状態を反映します。
例: s.RecordStatus
データ型: char
| string
バージョン履歴
R2006a より前に導入R2021a: serial
オブジェクト インターフェイスは削除予定
serial
およびそのオブジェクト プロパティは推奨されません。代わりに、serialport
およびそのプロパティを使用してください。
この例では、推奨される機能を使用してシリアル ポート デバイスに接続する方法を説明します。
機能 | 代替方法 |
---|---|
s = serial("COM1");
s.BaudRate = 115200;
fopen(s) | s = serialport("COM1",115200); |
推奨されるインターフェイスには追加の性能があり、パフォーマンスも改善されています。推奨される機能の使用の詳細については、serialport インターフェイスへのコードの遷移を参照してください。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)