前言: 身為 LabVIEW 的開發者,每當我們想要新增功能時,就必須考量到:旗下的多數客戶,皆不是程式設計人員。本技術文章將說明,如何建立簡易的LabVIEW 物件導向程式設計 (LVOOP) 專案,包含使用 LabVIEW 物件導向程式設計的優點與方法,以及 LabVIEW 物件導向程式設計的技術細節與更多資源 。這篇的下一篇是LabVIEW_淺談(LV)OOP物件導向怎麼寫?實作範例_Part2,另外我還將國內中文的LVOOP資源作整理,LabVIEW_物件導向(LVOOP)資料、範例程式蒐集整理,可以給大家參考。物件導向(LVOOP)在LabVIEW學習初期,並不是一個很強調的學習項目,初期的程式架構主要為Event+State Machine、Producer Consumer...等架構,但是當程式專案越來越大時,這類程式架構卻越來越不敷使用,很容易讓專案呈現巣狀結構,往往在debug或是維護上造成困難。
巣狀結構程式(Nested VI)- 明明程式功能沒有很多,程式碼卻層層包層層,不容易閱讀
下面舉個例子,比較OOP架構和普通的Case架構所完成的專案,讓大家比較可以比較其中的差別。
現在有手機專案要開發,其中有三種不同款式的手機程式,分別是 :一般手機、兒童機、網美機, 它們個別有各自功能的需求如下:
- 一般手機功能: 撥電話、拍照,文字大小為 20
- 兒童手機功能: 撥電話、 ,文字大小為 40
- 網美手機功能: 撥電話、拍照,文字大小為 12,另外拍照須加上美肌功能
依照需求整理如下表:
依照需求用Case寫後,呈現這樣
展開case的結構:
這時候客戶需求又來了,需要加上第四種手機,而這支是針對網美手機加上超美肌的進階版,另外相機的光圈參數也要加到最大
這樣的修改,看似簡單,但是又要多加上獨立的case來區分不同的美肌模式,程式更改如下:
從這樣的程式演變,可以看出在程式不斷修改下,程式越來越多case越來越複雜,變成巣狀結構邁進
如果換成OOP 物件導向後程式會變成這樣
從程式簡潔度來看,可以發現OOP寫的程式變簡單許多(這邊呢就不多解釋程式碼,有興趣的人可以到下一篇會做程式的詳細介紹)
如果Case展開,將個別的class帶入用動畫呈現會比較清楚;可以看到如果接上不同的Class,就會產生相對應不同的功能。
寫到這裡,有感覺到OOP的一點好處了嗎? 其實LVOOP的優點不只如下,後續介紹如何寫的時候也會慢慢地介紹LVOOP的其他優點,但我必須先強調,並不是所有的程式專案都適合LVOOP的架構,在簡單的程式中使用OOP反倒會讓人閱讀更不容易。
下面擷取一段NI官方的LVOOP常見問題集:
4. 誰應該使用 LabVIEW 物件導向程式設計?
- 需要長時間維護的 VI
- 大型應用
- 於相同 VI 中作業的多個開發者
5. 誰不應該使用 LabVIEW 物件導向程式設計?
- Express 的使用者
- 若想以快速、單一的 VI 進行量測,則 LabVIEW 類別 (Class) 的功能過強
總而言之,如果你要開始的專案是一個龐大而且多人維護的程式,建議用LVOOP的架構,會讓開發更順利
下一章會針對程式手把手的來教導怎麼做出這個簡易的範例。
程式碼可在這邊下載,請不要吝嗇按下側邊的廣告唷~ 謝謝~
下面整理了關於LVOOP的參考資料:
LabVIEW_物件導向(LVOOP)資料、範例程式蒐集整理
這篇的下一篇是LabVIEW_淺談(LV)OOP物件導向怎麼寫?實作範例_Part2,另外我還將國內中文的LVOOP資源作整理,LabVIEW_物件導向(LVOOP)資料、範例程式蒐集整理,可以給大家參考。
如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
留言列表