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 | ![]() |