(translator=chinghuei, ChineseSource=chinghuei-20020731-17.5\readasync.html, EnglishSource=c:\matlabr12\help\techdoc\ref\readasync.html)
MATLAB Function Reference    
readasync

從裝置非同步讀取資料

Syntax

Arguments

obj
A serial port object.
size
The number of bytes to read from the device.

Description

readasync(obj) 會開始進行一個非同步的(asynchronous)讀取操作。

readasync(obj,size) 非同步地讀取參數 size 所指定的位元組資料量(至多)。若 size 大於 InputBufferSize 屬性值與 BytesAvailable 屬性值間的差距,會回傳一個錯誤。

Remarks

在你能夠讀取資料前,你必須利用 fopen 函式將 obj 與裝置連結。一個經連結的序列埠物件會有一個 openStatus 屬性值。當 obj 未與此裝置連結時,若你企圖執行一個讀取操作,會回傳一個錯誤。

唯有當你將 ReadAsyncMode 屬性設定為 manual 時,才必須使用 readasync 函式。當 ReadAsyncModecontinuous 時,若使用 readasync 會被忽略。

TransferStatus 屬性會指示出讀或寫的操作是否在進行中。在一個非同步的讀取操作進行中時,你是可以寫入資料的。因為序列埠擁有分離的讀和寫的插腳(pins)。你可以利用 stopasync 函式來停止非同步的讀及寫的操作。

你可以利用 BytesAvailable 屬性來監視儲存在輸入緩衝區(input buffer)的資料量。此外,在讀至檔案結束字元(terminator)或指定的資料量已被讀取時,你可以使用 BytesAvailableFcn 性質來執行一個 M 檔案的反應函式( callback function)。

Rules for Completing an Asynchronous Read Operation

當下列這些條件之一成立時,一個利用 readasync 函式的非同步的讀取操作已完成:

由於 readasync 會檢查終止字元,因此該函式可能是相當慢的。為了增進速度,你可能會想要將 ReadAsyncMode 設定成 continuous,並將資料從該裝置連續地回傳至輸入緩衝區,只要該緩衝區是可使用的。

Example

這個範例建立了序列埠物件 s,並將 s 連結至一個 Tektronix TDS 210 示波器,且將 s 設定成唯有給予 readasync 命令時,才非同步地讀取資料。並設定該儀器在頻道 1 回傳訊號的峰值到峰值(peak-to-peak value)。

使用 readasync 自該儀器開始非同步地讀取資料。當該讀取操作完成時,使用 fscanf 將資料回傳至 MATLAB 的工作空間。

See Also

Functions

fopen, stopasync

Properties

BytesAvailable, BytesAvailableFcn, ReadAsyncMode, Status, TransferStatus


 rcond real