目 錄
C#通訊(串口和網絡)框架的設計與實現... 1
(SuperIO)- 框架的總體設計... 1
第二章 框架總體的設計... 2
2.1 宿主程序設計... 2
2.2 通訊機制設計... 7
2.2.1 串口通訊機制... 8
2.2.1.1 輪詢模式... 9
2.2.2 網絡通訊機制... 9
2.2.2.1 輪詢模式... 9
2.2.2.2 並發模式... 10
2.2.2.3 自控模式... 11
2.3 層次示意圖... 12
2.4 模型對象示意圖... 13
2.5 小結... 13
作為插件式應用框架,要有一個宿主程序來承載、加載插件,為插件、驅動提供可運行的環境,使宿主程序與插件無縫對接。宿主程序與插件的關系是水和魚的關系,有水沒魚,水就失去了價值;有魚沒水,魚就會死去。從關系的角度來分析,開發框架的目的是什麼?是與其他事物發生關系,包括:開發者、二次開發者、應用者、插件、甚至其他軟件或組件等。發生的關系越多、相處越融洽,證明這個框架的價值越高。所以說,一個好的框架平台,不僅體現了開發者的技術,同時反應了開發者的情商。
SuperIO框架使用NET反射技術開發插件管理機制,在本章中不詳細介紹具體的技術細節,在《第8章 插件引擎設計》中再進行詳細的介紹技術應用。
那麼一個框架的宿主程序應該怎麼樣去設計呢?或是說從哪些方面去考慮設計問題?在開發SuperIO框架的時候,一直在思考這個問題。首先,這個問題不應該從技術角度去考慮,而應該從人的角度去考慮如何做,應用者的角度、二次開發者的角度來規劃宿主程序。
從應用角度來分析,宿主程序應該包括:用戶管理、設備驅動管理、設備狀態監視方式、自定義UI插件顯示方式、自定義輸出數據插件操作方式、服務插件的服務方式、軟件運行的監視方式、串口IO通道監視方式、網絡IO通道監視方式等等。這些是我們從大的方向規劃的,還需要再進一步細化,指引我們的開發工作。
用戶管理,要支持多用戶以及用戶權限分配。針對實時數據采集框架,面對現場應用的時候,肯定會涉及到兩個角色:使用人員、工程師人員。針對使用人員的權限定位:可以查看參數和數據信息。針對工程師人員的權限定位:不僅擁有使用人員的權限,還可以修改參數。用戶管理的菜單,如下圖:
作者:唯笑志在