-
1 # 使用者7424076759961
-
2 # 使用者7424076759961
在開始介面的New欄裡選More...,彈出對話方塊裡會有很多模板可以選擇,因為是從8.2開始用的。對於我們常用的來說,還是Frameworks-Design Patterns裡的幾個模板值得好好研究一下。下面簡單介紹下幾種簡易的框架:
Master/Slave Deisgn Pattern(主從設計模式)
如上圖模板用於建立主/從模式的應用程式。主迴圈始終保持執行狀態,並向一到多個從迴圈傳送通知,使其執行程式碼。從迴圈收到通知後,將連續執行迴圈內部的程式碼直到完成任務,然後等待下一個通知。與改模式相比,生產者/消費者模式僅當佇列中仍有資料時,消費者迴圈才會執行。
在這種模式下,Master迴圈透過Notifier(通知器)來控制Slave迴圈的工作。這種模式有什麼用呢?如果是傳統的單迴圈結構,當程式處理程式碼耗時過長的話,很有可能會造成控制指令響應的滯後。而在主從模式下,Master迴圈可以用來接收控制指令,Slave迴圈用來執行相應的程式碼,從響應上來說,就能夠避免長時間不響應的情況出現。
Producer/Consumer Design Pattern (Events)(響應事件的生產者/消費者模式)
如上圖該模板用於生產者/消費者模式的應用程式,以事件驅動的方式,生成佇列中的項。如需要響應事件實現程式碼的非同步執行,同時不影響使用者介面的響應速度,可考慮用該模式替代“使用者介面事件處理器”模式。
這種模式的結構很類似於主從模式,這裡的兩個迴圈變成了Producer迴圈和Consumer迴圈。在主迴圈裡,用一個Event Structure響應使用者的介面操作,每一步操作透過Queue送到Consumer迴圈裡執行。這樣,實現了介面和事物程式碼的分離,有助於程式碼的模組化設計。
Producer/Consumer Design Pattern (Data)(處理資料的生產者/消費者模式)
該模板用於建立生產者/消費者模式的應用程式。該模板可用於執行諸如資料分析的資料處理,或者在以不均勻速率產生資料的資料來源中(如觸發採集),當資料可用時對資料進行分析。
跟前面一種模式基本一樣。這種模式一個很典型的應用環境就是高速資料採集和儲存。因為高速數採對資料讀取速度要求很高,而對磁碟的操作是一件很花時間的事情,用這種模式把兩者分開,可以保證資料讀取的速度。實際上,這裡的Queue也就是起到了一個Buffer的作用,把資料先暫存在記憶體裡,然後一點一點交給硬碟寫入。
Queued Message Handler(訊息佇列處理器)
這是一個非常有意思的結構,以這種結構為基礎,可以做出非常好的程式結構,可讀性和緊湊性都非常好。
Standard State Machine(標準狀態機)
這也是一種非常好的結構,跟Queued Message Handler配合,用在前面說的三種模式裡,搭建的程式框架,已經是我LabVIEW程式開發的標準框架了。
User Interface Event Handler(使用者事件處理器)
其實就是一個Event Structure,沒有什麼特別之處。
回覆列表
在開始介面的New欄裡選More...,彈出對話方塊裡會有很多模板可以選擇,因為是從8.2開始用的。對於我們常用的來說,還是Frameworks-Design Patterns裡的幾個模板值得好好研究一下。下面簡單介紹下幾種簡易的框架:
Master/Slave Deisgn Pattern(主從設計模式)
如上圖模板用於建立主/從模式的應用程式。主迴圈始終保持執行狀態,並向一到多個從迴圈傳送通知,使其執行程式碼。從迴圈收到通知後,將連續執行迴圈內部的程式碼直到完成任務,然後等待下一個通知。與改模式相比,生產者/消費者模式僅當佇列中仍有資料時,消費者迴圈才會執行。
在這種模式下,Master迴圈透過Notifier(通知器)來控制Slave迴圈的工作。這種模式有什麼用呢?如果是傳統的單迴圈結構,當程式處理程式碼耗時過長的話,很有可能會造成控制指令響應的滯後。而在主從模式下,Master迴圈可以用來接收控制指令,Slave迴圈用來執行相應的程式碼,從響應上來說,就能夠避免長時間不響應的情況出現。
Producer/Consumer Design Pattern (Events)(響應事件的生產者/消費者模式)
如上圖該模板用於生產者/消費者模式的應用程式,以事件驅動的方式,生成佇列中的項。如需要響應事件實現程式碼的非同步執行,同時不影響使用者介面的響應速度,可考慮用該模式替代“使用者介面事件處理器”模式。
這種模式的結構很類似於主從模式,這裡的兩個迴圈變成了Producer迴圈和Consumer迴圈。在主迴圈裡,用一個Event Structure響應使用者的介面操作,每一步操作透過Queue送到Consumer迴圈裡執行。這樣,實現了介面和事物程式碼的分離,有助於程式碼的模組化設計。
Producer/Consumer Design Pattern (Data)(處理資料的生產者/消費者模式)
該模板用於建立生產者/消費者模式的應用程式。該模板可用於執行諸如資料分析的資料處理,或者在以不均勻速率產生資料的資料來源中(如觸發採集),當資料可用時對資料進行分析。
跟前面一種模式基本一樣。這種模式一個很典型的應用環境就是高速資料採集和儲存。因為高速數採對資料讀取速度要求很高,而對磁碟的操作是一件很花時間的事情,用這種模式把兩者分開,可以保證資料讀取的速度。實際上,這裡的Queue也就是起到了一個Buffer的作用,把資料先暫存在記憶體裡,然後一點一點交給硬碟寫入。
Queued Message Handler(訊息佇列處理器)
這是一個非常有意思的結構,以這種結構為基礎,可以做出非常好的程式結構,可讀性和緊湊性都非常好。
Standard State Machine(標準狀態機)
這也是一種非常好的結構,跟Queued Message Handler配合,用在前面說的三種模式裡,搭建的程式框架,已經是我LabVIEW程式開發的標準框架了。
User Interface Event Handler(使用者事件處理器)
其實就是一個Event Structure,沒有什麼特別之處。