外部インタフェース/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 ]
プロパティリファレンスページには、プロパティに対するデフォルト値が記述されています。
![]() | シリアルポートセッション | シリアルポートオブジェクトの作成 | ![]() |