外部インタフェース/API | ![]() ![]() |
例題: strreadを使ったデータの解釈
この例題は、関数strread
を使ってデバイスから読み込んだデータを書式化する方法を説明します。strread
は、特に1つまたは複数の変数に文字列を構文解析したい場合に役立ちます。ここで、各変数は独自に指定されたフォーマットを持ちます。
機器は、シリアルポートCOM1に接続されたTektronix TDS 210 two-channel oscilloscopeです。
1. シリアルポートオブジェクトを作成します。- シリアルポートCOM1に対応するシリアルポートオブジェクトs
を作成します。
s = serial('COM1');
2. デバイスを接続します。 - s
をオシロスコープに接続します。ReadAsyncMode
プロパティに対するデフォルト値はcontinuous
なので、データは機器から利用可能になるとすぐに入力バッファに非同期的に出力されます。
fopen(s)
3. データの書き出しと読み込み - fprintf
を使ってRS232?
コマンドを機器に書き出し、fscanf
を使ってコマンドの結果を読み込みます。RS232?
は、RS-232の設定を質問し、ボーレート、ソフトウェアのフローコントロールの設定、ハードウェアのフローコントロールの設定、パリティタイプ、ターミネータを出力します。
fprintf(s,'RS232?') data = fscanf(s) data = 9600;0;0;NONE;LF
関数strread
を使ってデータ変数を構文解釈し、変数data
を5個の新規の変数に書式化します。
[baud,swfc,hwfc,par,term] = strread(data,'%d%d%d%s%s', 'delimiter',';') baud = 9600 swfc = 0 hwfc = 0 par = 'NONE' term = 'LF'
4. 切断とクリーンアップ - s
が必要なくなったときは、機器から切断し、メモリおよびMATLABワークスペースから削除します。
fclose(s) delete(s) clear s
![]() | 例題: テキストデータの書き出しと読み込み | 例題: バイナリデータの読み込み | ![]() |