前言: 身為 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文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

arrow
arrow

    安伯伯 發表在 痞客邦 留言(5) 人氣()