在LabVIEW Queue Message Handler - QMH Template中處理錯誤以及未知訊息

更新 Aug 3, 2023

環境

軟體

  • LabVIEW

本文是“QMH”系列文章的一部份。有關QMH Design pattern架構的相關資訊,請參閱 Queued Message Handling (QMH) overview documentation

在使用(QMH)很重要的一點是要讓應用程式具有足夠的彈性以處理您不打算處理的message,並且還應足夠完整以處理可以預見到的錯誤。如果您的QHM程式允許使用者輸入來發送messages,則很可能會收到無法辨識的messages,這些messages在MHL中沒有對應的case去進行處裡。又或者,您可能會在程式中接收到一些已知的錯誤,並希望忽略這些錯誤以避免停止應用程式。

在本文中,您將會設計讓QMH更具彈性和完整性。本文利用Queued Message Handler LabVIEW模板。這是一種進階的LabVIEW Design patter架構,本文預設讀者您是具有基本的LabVIEW程式知識。

處理無法辨識的message

設計接收多個輸入的QMH時,您可能會收到未被MHL case structure設計要處裡的case message。為避免產生錯誤,請確保MHL中的所有Case結構都有Deafult message case。當MHL讀取沒有相應case的message時,將執行Default message case中的程式碼。擁有Default case非常重要,因為message是在程式時或在UI期間輸入的字串,而不是您從enum中選擇的值。

從message queue中讀取時忽略錯誤

  1. 從Project Explorer window中,打開Message Queue.lvlib:Dequeue Message.vi並顯示Block Diagram(程式區)。
  2. 查找嵌在錯誤case中的case內容
  3. 要在從message queue中讀取message時忽略錯誤,請將錯誤程式碼增加到nested case結構的case selector標籤中。
    • 要忽略的錯誤取決於您的應用。例如,如果您正在透過網路讀取queue,則可能要忽略timeout (超時)錯誤。