MATLAB Function Reference | ![]() ![]() |
表示
readasync(obj)
readasync(obj,size
)
引数
obj |
シリアルポートオブジェクト |
size |
デバイスから読み込むバイト数 |
詳細
readasync(obj)
は、非同期読み取り演算を初期化します。
readasync(obj,size)
は、最高で、size
で与えられるバイト数を非同期で読みます。
注意
データを読む前に、オブジェクトを関数 fopen
を使って、デバイスと接続する必要があります。接続されるシリアルポートオブジェクトは、open
の Status
プロパティ値をもちます。obj
がデバイスに接続されていない間に読み込む演算を行おうとすると、エラーが戻ります。
ReadAsyncMode
プロパティが、manual
の場合のみ、readasync
を使ってください。readasync
は、ReadAsyncMode
が、continuous
の場合は、無視されます。
TransferStatus
プロパティは、非同期読み書き演算が進行しているか否かを示します。シリアルポートは、読むピンと書き込むピンを別々にもっているので、非同期の読み取りが、進んでいる間にデータを書くことができます。関数 stopasync
を使って、非同期の読み書き演算を停止することができます。
ユーザは、BytesAvailable
プロパティを使って、入力バッファ内にソトアされているデータ全体をモニタすることができます。加えて、BytesAvailableAction
プロパティを使って、終端子、または、指定したデータ量を読んだときに、M-ファイルで設定した機能を実行することができます。
非同期読み演算を完了するルール
readasync
を使って、非同期読み演算は、つぎの条件の一つにマッチしたときに、完了します。
Terminator
プロパティにより指定された終端子が読まれる。Timeout
プロパティにより指定される時刻に達する。size
が指定されていない)。readasync
は、終端子をチェックするので、この関数は、計算を遅らせるものになります。処理スピードを増すためには、ReadAsyncMode
プロパティを、 continuous
にし、データがデバイスから使用可能になればすぐに、入力バッファにデータを連続的に戻すような構成を作成してください。
例題
つぎの例題は、シリアルポートオブジェクト s
を作成し、Tektronix TDS 210 オシロスコープに接続し、readasync
が起動した場合にのみ、非同期で、データを読み、チャンネル1の信号のピーク-ピーク値を戻すように設計するものです。
s = serial('COM1'); fopen(s) s.ReadAsyncMode = 'manual'; fprintf(s,'Measurement:Meas1:Source CH1') fprintf(s,'Measurement:Meas1:Type Pk2Pk') fprintf(s,'Measurement:Meas1:Value?')
readasync
を使って、インスツールメントから非同期でデータを読み始めます。読む演算が完了すると、fscanf
を使って、データを MATLAB ワークスペースに戻します。
readasync(s) s.BytesAvailable ans = 15 out = fscanf(s) out = 2.0399999619E0 fclose(s)
関数
プロパティ
BytesAvailable
, BytesAvailableAction
, ReadAsyncMode
, Status
, TransferStatus
![]() | rcond | real | ![]() |