- 相關推薦
基于USB和多線程的實時數據采集系統
對于廣大用戶而言,與系統的交互是通過應用程序實現,而且整個實時采集系統的主要數據處理都是在這里完成的。因此,運行效率高、界面友好、具有強大數據分析和處理的應用程序的設計,也是系統設計上一個不容忽視的關鍵因素。應用程序的主要功能有:啟動/關閉USB設備,檢測USB設備,設置USB數據傳輸管道/端口,設置A/D,采集數據,顯示/分析數據。這里,我們采用VisualC++6.0作為程序的開發環境,并且充分運用了多線程的編程思想。在這個設備中,設置4個線程:首先是1個主線程,負責用戶界面,并保持中樞地位。它的生存周期也就是整個用戶程序的主存期,用戶的動作(例如鼠標事件、鍵盤事件)都會觸發主線程的消息機制,從而完成對用戶的響應;而3個分離的輔助線程分別負責數據的采集、數據的分析處理以及數據的顯示這3個不同的任務。輔助線程是在主線程運行過程中產生的,它的生命就是線程函數本身,函數一旦return,線程就結束了。因此,輔助線程的生存周期只是整個程序生存期的一部分。
MFC程序只會有一個CwinApp對象,而CwinApp派生自CwinThread,即產生了應用程序的主線程。每當需要一個額外的線程時,應先產生一個CwinThread對象,再調用全局函數AfxBeginThread(),將線程產生出來。
對于輔助線程(workerthread),要為它準備一個線程函數,然后調用AfxBeginThread()。例如:CWinThread*pThread=AfxBeginThread(ThreadFunc,¶m);
UINTThreadFunc(LPVOIDpParam);//線程函數
對于用戶界面線程(UIthread),不能夠光由一個線程函數來代表,因為它要處理消息,它需要一個消息循環。應該先從CWinThread派生一個自己的類,再調用AfxBeginThread()產生一個CWinThread對象。網站m.baimashangsha.com
結語
基于USB技術的實時數據采集系統,在編程上運用了多線程思想;從硬件和軟件兩方面錄求較佳的解決途徑,并將二者結合起來,在實際中取得了良好的運行效果。
【基于USB和多線程的實時數據采集系統】相關文章:
提高實時操作系統的實時性能和可靠性策略08-19
基于Vxworks實時操作系統的串口通信程序設計與實現08-19
利用Delphi 3.0開發微機數據采集與處理軟件系統04-12
基于數據庫技術的實驗室管理系統的研究08-18
基于校園一卡通數據系統的學生行為分析研究08-19
嵌入式實時系統開發的正確選擇08-19