| MATLAB Function Reference |
fscanf (serial)
デバイスからデータを読みます。そして、テキストとして書式化します。
表示
A = fscanf(obj) A = fscanf(obj,'format') A = fscanf(obj,'format',size) [A,count] = fscanf(...) [A,count,msg] = fscanf(...)
引数
obj |
シリアルポートオブジェクト |
'format' |
C 言語変換指定子 |
size |
読み込む値の数 |
A |
デバイスから読み込まれたデータで、テキストとして書式化されます。 |
count |
読み込んだ値の数 |
msg |
読み込み操作が失敗した場合に示すメッセージ |
詳細
A = fscanf(obj) は、obj
に接続しているデバイスからデータを読み、A
に出力します。データは、%c
フォーマットを使って、テキストに変換されます。
A = fscanf(obj,'は、データを読み、format') format
に従って変換します。format は、C
言語変換指定子です。変換指定子は、%
キャラクタや変換キャラクタ d, i, o, u, x, X, f, e, E, g, G, c, s
を含んでいます。より詳細は、sscanf
ファイル I/O フォーマット指定子やC
マニュアルを参照してください。
A = fscanf(obj,'は、format',size)
size
で指定された値の数を読みます。size
で設定できる正しいオプションは、つぎのものです。
n |
高々n 個の値を列ベクトルの中に読む |
[m,n] |
m 行 n 列の行列の高々 |
size では、inf
を設定することはできません。size
に指定した値が、入力バッファ内にストアできない場合は、エラーを出力します。size
が、[m,n]
の型をしていなく、キャラクタ変換が指定されている場合、A
は、行ベクトルとして出力されます。InputBufferSize
プロパティを使って、入力バッファのサイズを指定することができます。
[A,count] = fscanf(...)
は、読み込んだ値の数を count に出力します。
[A,count,msg] = fscanf(...)
は、読み込み操作が失敗した場合、ワーニングメッセージを msg
に出力します。
注意
デバイスからデータを読む前に、関数 fopen を使って、obj
に接続する必要があります。接続したシリアルポートオブジェクトは、open
を Status
プロパティ値としています。obj
がデバイスに接続していない場合に読み込み操作を実行しようとすると、エラーを生じます。
msg
が、出力引数として含まれていなく、読み込み操作が失敗した場合、ワーニングメッセージがコマンドラインに出力されます。
ValuesReceived
プロパティ値は、fscanf
が起動する度に、読み込んだ値の数だけ増加します。この中には、終端子も含まれます。
fscanf に関するヘルプ表示を help
コマンドを使って行う場合、つぎのパス名を与える必要があります。
help serial/fscanf
fscanf
を使って、読み込み操作を完了するときのルール
fscanf
を使った読み取り操作は、つぎの事柄が終了するまで、MATLAB
コマンドへのアクセスを停止します。
Terminator
プロパティで指定される終端子が読み込まれます。Timeout
プロパティで設定される時間が経過する。size で設定する値の数が読み込まれる。size が設定されていない場合)例題
シリアルポートオブジェクト s
を作成し、Tektronix TDS 210 オシロスコープに接続します。Tektronix TDS
210 は、サイン波を表示しています。
s = serial('COM1');
fopen(s)
関数 fprintf
を使って、サイン波のピークからピークまでの電圧を測定するためにスコープを作成し、測定タイプを出力し、電圧を出力します。
fprintf(s,'MEASUREMENT:IMMED:TYPE PK2PK') fprintf(s,'MEASUREMENT:IMMED:TYPE?') fprintf(s,'MEASUREMENT:IMMED:VALUE?')
ReadAsyncMode
プロパティに対するデフォルト値は、continuous なので、2つの抽出コマンドに関連したデータは、自動的に入力バッファに戻ります。
s.BytesAvailable
ans =
21
fscanf
を使って、測定タイプを読みます。操作は、最初の終端子が読み込まれると終了します。
meas = fscanf(s) meas = PK2PK
fscanf
を使って、ピークからピークまでの電圧を浮動小数点で終端子を含まないで読みます。
pk2pk = fscanf(s,'%e',14)
pk2pk =
2.0200
スコープから s の接続を外し,
メモリとワークスペースから s を取り除きます。
fclose(s) delete(s) clear s
関数
fgetl, fgets, fopen,
fread, strread
プロパティ
BytesAvailable,
BytesAvailableAction,
Status, Terminator, Timeout
| fscanf | fseek |