| MATLAB Function Reference | ![]() |
表示
fprintf(obj,'cmd') fprintf(obj,'format','cmd') fprintf(obj,'cmd','mode') fprintf(obj,'format','cmd','mode')
引数
obj |
シリアルポートオブジェクト |
'cmd' |
デバイスに書き込まれた文字列 |
'format' |
C 言語変換仕様 |
'mode' |
データが同期、または、非同期的に書き込まれるかを指定 |
詳細
文字列 fprintf(obj,'cmd')
cmd を obj に接続しているデバイスに書き込みます。デフォルトのフォーマットは、%s\n です。書き込み操作は、実行が完成するまで、コマンドラインを同期を取り、停止します。
は、fprintf(obj,'format','cmd')
format で指定されたフォーマットを使って、文字列を書き込みます。format は、C 言語変換指定子です。変換指定子は、% キャラクタや変換キャラクタd, i, o, u, x, X, f, e, E, g, G, c, s も含んでいます。詳細は、sprintfファイル I/O フォーマットの仕様、または、C マニュアルを参照してください。
は、fprintf(obj,'cmd','mode')
mode で指定されたコマンドラインアクセスと共に文字列を書き込みます。mode が sync の場合、cmd は、同期を取りながら書き込まれ、コマンドラインは停止します。mode が async の場合、cmd は、非同期状態で書き込まれ、コマンドラインは停止していません。mode が指定されていない場合、書き込み操作は、同期を取りながら行われます。
は、指定したフォーマットを使って、文字列を書き込みます。fprintf(obj,'format','cmd','mode')
mode が sync の場合、cmd は同期を取りながら書き込まれます。mode が async の場合、cmd は、非同期状態で書き込まれます。
注意
デバイスにテキストを書き込む前に、関数 fopen を使って、obj に接続します。接続されたシリアルポートオブジェクトは、値が open である Status プロパティをもっています。obj が、接続されていない間、書き込み操作を行おうとすると、エラーが生じます。
ValuesSent プロパティ値は、fprintf が起動する度に、書き込まれた値の数だけ増加します。
出力バッファが、書き込まれたデータすべてを保持できない場合に、エラーが生じます。OutputBufferSize プロパティを使って、出力バッファサイズを指定できます。
fprintf に対するヘルプを表示するために、help コマンドを使用する場合、下に示すパス名を与える必要があります。
help serial/fprintf
同期、および、非同期の書き込み操作
デフォルトでは、テキストは、コマンドラインと同期を取りながらデバイスに書き込まれ、その操作が完了するまで、コマンドラインは停止しています。入力引数 mode をasyncに設定することにより、同期を考えない処理も可能になります。非同期の書き込みについて、
BytesToOutput プロパティ値は、出力バッファの中のバイト数を反映して連続的に更新されます。OutputEmptyAction プロパティに対して設定される M-ファイル挙動関数は、出力バッファが空のときに実行されます。非同期書き込み操作が、TransferStatus プロパティと共に進行するか否かを決定することができます。
同期付き、非同期の書き込み操作についての詳細は、データの書き込み を参照してください。
fprintf を使って書き込み操作を完了するためのルール
fprintf を使った同期付き、または、非同期の書き込み操作は、つぎの状態で完了します。
Timeout プロパティで指定した時間が経過する。加えて、関数 stopasync を使って、非同期書き込み操作を停止できます。
終端子を書き込むためのルール
cmd の中の \n のすべての出現は、Terminator プロパティ値と置き換わります。そのために、デフォルトのフォーマット %s\n を使って、デバイスに書き込むすべてのコマンドは、このプロパティ値を最後に設定します。ユーザのデバイスで必要とされる終端子は、このドキュメントの中に記述されています。
例題
シリアルポートオブジェクト s を作成し、Tektronix TDS 210 オシロスコープに接続して、関数 fprintf を使って、コマンド RS232? を使います。RS232? は、シリアルポート通信の設定を戻すためのスコープを作成します。
s = serial('COM1');
fopen(s)
fprintf(s,'RS232?')
fprintf に対するデフォルトフォーマットは、%s\n なので、Terminator プロパティで指定された終端子は、自動的に書き込まれます。しかし、いくつかの場合、終端子を書き込むことを避けたい場合があります。それを行うには、データに対して、終端子を含んでいないフォーマットを明示的に指定する必要があります。
fprintf(s,'%s','RS232?')
関数
プロパティ
BytesToOutput, OutputBufferSize, OutputEmptyAction, Status, TransferStatus, ValuesSent
| fprintf | frame2im | ![]() |