fscanf (serial)
(削除予定) デバイスから ASCII データを読み取り、テキストとして書式化する
このオブジェクト関数 serial
は将来のリリースで削除される予定です。代わりにオブジェクト関数 serialport
を使用してください。コードの更新の詳細については、互換性についての考慮事項を参照してください。
構文
A = fscanf(obj)
A = fscanf(obj,'format
')
A = fscanf(obj,'format
',size)
[A,count] = fscanf(...)
[A,count,msg] = fscanf(...)
説明
A = fscanf(obj)
は、シリアル ポート オブジェクト obj
に接続しているデバイスから ASCII データを読み取り、A
に返します。データは、%c
書式を使用してテキストに変換されます。バイナリ データの場合は fread
を使用してください。
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
に指定できる有効なオプションは以下のとおりです。
| 列ベクトルに最大 |
| 列順で m 行 n 列の行列を最大 m 行 n 列読み込みます。 |
size
に inf
を設定することはできません。指定した個数の値が入力バッファーに保存できない場合はエラーが発生します。size
が、[m,n]
の型ではなく、文字変換が指定されている場合、A
は行ベクトルとして返されます。size は InputBufferSize
プロパティを使用して入力バッファーのバイト数でも指定できます。ASCII 値は、1 バイトです。
[A,count] = fscanf(...)
は、読み取った値の数を count
に返します。
[A,count,msg] = fscanf(...)
は、読み取り操作が失敗した場合、警告メッセージを msg
に返します。
例
シリアル ポート オブジェクト s
を作成し、s
を正弦波を表示している Tektronix® TDS 210 オシロスコープに接続します。この例は、Windows® プラットフォーム上で使用できます。
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
ヒント
デバイスからデータを読み取るには、関数 fopen
を使用して obj
に接続されていなければなりません。接続されたシリアル ポート オブジェクトでは、Status
プロパティの値が open
になります。obj
がデバイスに接続されていない間に、読み込み演算を行うと、エラーが返されます。
msg
が出力引数として含まれていない場合に読み取り操作が正常に実行できなかった場合は、コマンド ラインに警告メッセージが返されます。
ValuesReceived
プロパティ値は、fscanf
が実行される度に読み取られた値の数 (終端文字を含む) ずつ増加します。
fscanf を使用して読み取り操作を完了するための規則
fscanf
を使用した読み取り操作では、以下の状態になるまで、MATLAB® コマンド ラインへのアクセスができなくなります。
Terminator
プロパティにより指定された終端文字が読み取られるTimeout
プロパティで指定した時間が経過するsize
で指定された個数の値が読み込まれた入力バッファーが満杯になった (
size
が指定されていない場合)