| 外部インタフェース/API | ![]() |
プロパティ値を設定することによって、希望するシリアルポートオブジェクトの挙動を設定します。関数set、関数get、ドット表記を使ってプロパティ値の表示や設定が可能です。
シリアルポートオブジェクトが作成されると、関数setを使ってすべての設定可能なプロパティをコマンドラインに表示することができます。さらに、プロパティが有限個の文字列の値をもつ場合は、setはこれらの値も表示します。
s = serial('COM1');
set(s)
ByteOrder: [ {littleEndian} | bigEndian ]
BytesAvailableAction
BytesAvailableActionCount
BytesAvailableActionMode: [ {terminator} | byte ]
ErrorAction
InputBufferSize
Name
OutputBufferSize
OutputEmptyAction
RecordDetail: [ {compact} | verbose ]
RecordMode: [ {overwrite} | append | index ]
RecordName
Tag
Timeout
TimerAction
TimerPeriod
UserData
SERIAL specific properties:
BaudRate
BreakInterruptAction
DataBits
DataTerminalReady: [ {on} | off ]
FlowControl: [ {none} | hardware | software ]
Parity: [ {none} | odd | even | mark | space ]
PinStatusAction
Port
ReadAsyncMode: [ {continuous} | manual ]
RequestToSend: [ {on} | off ]
StopBits
Terminator: [ CR | {LF} | CR/LF | LF/CR ]
関数getを使って1つまたは複数のプロパティとそれらのカレント値をコマンドラインに表示することができます。すべてのプロパティとそれらのカレント値を表示するには、以下のようにします。
get(s)
ByteOrder = littleEndian
BytesAvailable = 0
BytesAvailableAction =
BytesAvailableActionCount = 48
BytesAvailableActionMode = terminator
BytesToOutput = 0
ErrorAction =
InputBufferSize = 512
Name = Serial-COM1
OutputBufferSize = 512
OutputEmptyAction =
RecordDetail = compact
RecordMode = overwrite
RecordName = record.txt
RecordStatus = off
Status = closed
Tag =
Timeout = 10
TimerAction =
TimerPeriod = 1
TransferStatus = idle
Type = serial
UserData = []
ValuesReceived = 0
ValuesSent = 0
SERIAL specific properties:
BaudRate = 9600
BreakInterruptAction =
DataBits = 8
DataTerminalReady = on
FlowControl = none
Parity = none
PinStatus = [1x1 struct]
PinStatusAction =
Port = COM1
ReadAsyncMode = continuous
RequestToSend = on
StopBits = 1
Terminator = LF
1つのプロパティに対するカレント値を表示するには、getでプロパティ名を指定します。
get(s,'OutputBufferSize') ans = 512
複数のプロパティに対するカレント値を表示するには、プロパティ名をセル配列の要素として指定する必要があります。
get(s,{'Parity','TransferStatus'})
ans =
'none' 'idle'
ドット表記を使って1つのプロパティ値を表示することもできます。
s.Parity ans = none
プロパティ値の設定
関数setを使ってプロパティ値を設定することができます。
set(s,'BaudRate',4800);
s.BaudRate = 4800;
複数のプロパティに対して値を設定するには、setで複数のプロパティ名とプロパティ値の組を指定します。
set(s,'DataBits',7,'Name','Test1-serial')
ドット表記では、一度に1つのプロパティ値しか設定できないことに注意してください。
実際には、シリアルポートオブジェクトが存在するときには、オブジェクトの生成中を含め、いつでも多くのプロパティを設定することが可能です。しかし、プロパティの中には、オブジェクトがデバイスに接続されているときあるいは情報をディスクに記録中には設定できないものがあります。プロパティがいつ設定可能かに関する情報は、「プロパティリファレンス」を参照してください。
プロパティ名の指定
シリアルポートのプロパティ名は、大文字と小文字が混在して表わされます。これによりプロパティ名が読みやすくなり、プロパティ名の指定時に任意の文字を使うことができます。さらに、プロパティを一意的に識別するために必要な文字のみを利用して、ほとんどのプロパティ名を短縮することが可能です。たとえば、つぎの方法でBaudRateプロパティを設定することができます。
set(s,'BaudRate',4800) set(s,'baudrate',4800) set(s,'BAUD',4800)
プロパティ名をM-ファイルで設定するときは、完全なプロパティ名を使う必要があります。これは、新規プロパティの追加により短縮名が一意でなくなる場合に、将来のMATLABのリリースでの問題を予防します。
デフォルトのプロパティ値
プロパティに対して値を明示的に定義しない場合には、デフォルト値が利用されます。すべての設定可能なプロパティは、デフォルト値を持ちます。
| 注意 オペレーティングシステムは、ボーレートのようなすべてのシリアルポートの設定に対してデフォルト値を与えます。しかし、これらの設定は、ユーザのMATLABコードによって変更され、シリアルポートアプリケーションに影響を与えません。 |
プロパティが有限個の文字列の値を持つ場合は、デフォルト値は{}で囲まれます。たとえば、Parityプロパティに対するデフォルト値はnoneです。
set(s,'Parity')
[ {none} | odd | even | mark | space ]
プロパティリファレンスページには、プロパティに対するデフォルト値が記述されています。
| シリアルポートセッション | シリアルポートオブジェクトの作成 | ![]() |