一、如何管理USB設(shè)備
由于我們的驅(qū)動(dòng)程序采用面向?qū)ο缶幊蹋砸褂迷O(shè)備的一切功能,則必須首先用CreateDevice函數(shù)創(chuàng)建一個(gè)設(shè)備對象句柄hDevice,有了這個(gè)句柄,您就擁有了對該設(shè)備的控制權(quán)。然后將此句柄作為參數(shù)傳遞給其他函數(shù),如InitDeviceDA可以使用hDevice句柄以初始化設(shè)備的DA部件并啟動(dòng)DA設(shè)備,WriteDeviceDA函數(shù)可以用hDevice句柄實(shí)現(xiàn)對DA數(shù)據(jù)的連續(xù)輸出,SetDeviceDO函數(shù)可用實(shí)現(xiàn)開關(guān)量的輸出等。最后可以通過ReleaseDevice將hDevice釋放掉。
二、如何批量輸出DA數(shù)據(jù)
當(dāng)您有了hDevice設(shè)備對象句柄后,便可用InitDeviceDA函數(shù)初始化DA部件,關(guān)于頻率等參數(shù)的設(shè)置是由這個(gè)函數(shù)的pDAPara參數(shù)結(jié)構(gòu)體決定的。您只需要對這個(gè)pDAPara參數(shù)結(jié)構(gòu)體的各個(gè)成員簡單賦值即可實(shí)現(xiàn)所有硬件參數(shù)和設(shè)備狀態(tài)的初始化,然后執(zhí)行EnableDeviceDA這個(gè)函數(shù)來啟動(dòng)DA設(shè)備。接著便可用GetDeviceStatusDA反復(fù)跟蹤DA的FIFO狀態(tài),以實(shí)現(xiàn)連續(xù)不間斷輸出,當(dāng)您需要停止DA設(shè)備時(shí),同樣調(diào)用EnableDeviceDA便可幫您實(shí)現(xiàn)(但設(shè)備對象hDevice依然存在)。具體執(zhí)行流程請看下面的圖2.1.1。

注意:圖中較粗的虛線表示對稱關(guān)系。如紅色虛線表示CreateDevice和ReleaseDevice兩個(gè)函數(shù)的關(guān)系是:最初執(zhí)行一次CreateDevice,在結(jié)束是就須執(zhí)行一次ReleaseDevice。
五、哪些函數(shù)對您不是必須的?
當(dāng)公共函數(shù)如CreateFileObject, WriteFile,ReadFile等一般來說都是輔助性函數(shù),除非您要使用存盤功能。它們只是對我公司驅(qū)動(dòng)程序的一種功能補(bǔ)充,對用戶額外提供的。
|