全部產品
Search
文件中心

DataV:流程式控制制

更新時間:Dec 12, 2024

流程式控制制內的邏輯節點包括單路判斷、條件判斷、多路判斷、計時器(原定時器)、序列執行、websocketwebsocket-pro。本文介紹在藍圖編輯器中,配置流程式控制制類節點的方法。

單路判斷

條件判斷節點屬於If判斷條件節點。當滿足設定條件時,拋出滿足事件。

說明

拋出事件意味著,如果事件節點串連其他邏輯,系統將執行該邏輯。本文“拋出”均為同一個意思。

使用情境

例如,根據開關狀態觸發圖層的顯示效果情境。可以通過單路判斷節點來判斷當前開關的狀態。處於開啟狀態,則顯示圖層。

使用方法

添加單路判斷節點至藍圖畫布中,可查看單路判斷節點支援的事件/動作,以及配置參數。添加方式請參見使用邏輯節點

節點配置

image

判斷條件配置,可採用可視化介面和代碼編輯兩種方式。

  • 可視化編輯:選擇並且模式以滿足全部條件,選擇或者模式以滿足任一條件。

  • 代碼編輯:通過新增資料過濾器的方法編寫過濾條件,返回結果為BOOLEAN型。返回結果為TRUE時拋出條件滿足時事件。可以添加多個資料過濾器。

錨點配置image

事件/動作參數說明

事件/動作

說明

條件滿足時

上遊節點輸出的結果,滿足設定條件。可自訂事件名稱。

判斷

輸入上遊節點的輸出結果,用於條件判斷。可自訂動作名稱。

條件判斷

條件判斷節點屬於If-Else判斷條件節點。當滿足設定條件時,拋出滿足事件,不滿足設定條件,拋出不滿足事件。

使用情境

例如,根據開關狀態觸發兩個圖層的顯隱效果情境。可以通過條件判斷節點來判斷當前開關的狀態。處於開啟狀態,則僅顯示圖層A;處於關閉狀態,則僅顯示圖層B。

使用方法

添加條件判斷節點至藍圖畫布中,可查看條件判斷節點支援的事件/動作,以及配置參數。添加方式請參見使用邏輯節點

節點配置

image

配置項說明

參數

說明

判斷類型

  • 同時滿足所有條件:當上遊節點的輸出結果滿足所有設定的條件時,拋出滿足事件;只要有一個條件不滿足,則拋出不滿足事件。

  • 滿足任一條件:當上遊節點輸出結果滿足任一設定的條件時,拋出滿足事件;全部不滿足拋出不滿足事件。

條件列表

通過新增資料過濾器的方法編寫過濾條件,返回結果為BOOLEAN型。返回結果為TRUE時拋出滿足時事件,返回結果為FALSE時拋出不滿足時事件。可以添加多個資料過濾器。

錨點配置image

事件/動作參數說明

事件/動作

說明

滿足

上遊節點輸出的結果,滿足設定條件。可自訂事件名稱。

不滿足

上遊節點輸出的結果,不滿足設定條件。可自訂事件名稱。

判斷

輸入上遊節點的輸出結果,用於條件判斷。可自訂動作名稱。

多路判斷

多路判斷節點屬於Case-When節點。通過對上遊節點的輸出結果進行判斷,觸發第一個滿足條件的下遊節點執行對應動作。

使用情境

例如,根據數字輸入框內,當前的輸入值設定地圖散點的顏色。可通過多路判斷節點,判斷當前的輸入值處於哪個範圍,進而觸發散點顏色的設定。例如在配置項中設定,當數值大於100時,為紅色;50~100之間,為黃色;小於50,為藍色。

使用方法

添加多路判斷節點至藍圖畫布中,可查看多路判斷節點支援的事件/動作,以及配置參數。添加方式請參見使用邏輯節點

image

事件/動作參數說明

事件/動作

說明

當滿足此條件時

滿足此條件,則拋出該事件。可在配置面板中添加多個處理方法,添加後,多路判斷節點中顯示您添加的處理方法;不同處理方法可串連不同的下遊節點,實現多路判斷。

當不滿足以上條件時

當不滿足在此之前設定的處理方法時,則拋出該事件。

判斷

輸入上遊節點的輸出結果,用於多路判斷。

配置項說明

參數

說明

處理方法

通過新增資料過濾器的方法編寫處理方法,返回結果為BOOLEAN型。返回結果為TRUE時拋出當滿足此條件時事件,滿足後即拋出對應事件,且不再執行後續處理方法。當不滿足所有的條件設定時,則拋出當不滿足以上條件時事件。

計時器

計時器節點支援延遲定時、定點定時、迴圈延時定時和重複持續時間定時。

使用情境

計時器適用於需要定時的情境需求。當時間計數到達配置項設定的時間點時,計時器節點拋出當到計時點時事件,輸出上遊節點的輸出結果,觸發後續動作。

使用方法

添加計時器節點至藍圖畫布中,可查看計時器節點支援的事件/動作,以及配置參數。添加方式請參見使用邏輯節點

節點配置

image

配置項說明

參數

說明

定時方式

支援延時定時定點定時兩種方式。

是否迴圈

是否需要重複計時。當定時方式定點定時是否迴圈開啟後,會配置定點周期,自訂設定定點周期內的起始時間、間隔時間和單位。

延遲/間隔時間

以秒為單位進行倒計時。僅當定時方式延時定時時有效。

定點時間

以秒為單位進行倒計時,到達具體的標準時間點,拋出事件。僅當定時方式定點定時,且迴圈計時關閉時有效。

錨點配置image

事件/動作參數說明

事件/動作

說明

當到計時點時

到達計時點時拋出事件,觸發下遊節點執行動作。迴圈計時情況下,將迴圈拋出該事件。

開始計時

啟動計時器。

停止計時

停止計時器,下次觸發開始計時時,將重新計時。一般用在迴圈計時中。

序列執行

序列執行節點屬於順序執行節點。通過對上遊節點的輸出結果進行當前方法過濾後,再傳遞給下遊節點執行對應動作。

使用情境

例如,當您需要切換不同情境的資料面板時,每個情境有很多資料面板,先把情境A相關的資料面板切出,再把情境B相關的資料面板切進。可使用序列執行節點,對不同情境的資料面板進行分組,再按照先A後B的順序執行。

使用方法

添加序列執行節點至藍圖畫布中,可查看序列執行節點支援的事件或動作,以及配置參數。添加方式請參見使用邏輯節點

image

事件或動作參數說明

事件或動作

說明

當執行此方法後

序列執行節點的資料處理方法。可在配置面板中添加多個處理方法,添加後,序列執行節點中顯示您添加的處理方法;各方法按照順序進行資料處理。

執行

輸入上遊節點的輸出結果,用於該節點的結果計算。

配置項說明

參數

說明

處理方法

通過新增資料過濾器的方法編寫處理方法,返回結果為BOOLEAN型。返回結果為TRUE拋出當執行此方法後事件,可疊加多個。每個處理方法獨立計算,輸入均為上一個節點的輸出結果,輸出為每個處理方法自己的計算結果,相互不影響。

websocket節點

websocket節點為屏間通訊節點。每個訊息由訊息名稱和資料群組成,訊息名稱在配置項中自訂,資料為上一個節點的輸出結果。

使用情境

websocket節點用於多端之間的命令和資料轉送。例如大屏與移動端、大屏與觸控螢幕端的資料轉送等。

使用方法

添加websocket節點至藍圖畫布中,可查看websocket節點支援的事件/動作,以及配置參數。添加方式請參見使用邏輯節點

節點配置

image

配置項說明

參數

說明

socket服務地址

socket後端服務的地址。

大屏ID

該websocket節點所在大屏的ID號,平台自動識別並填充。

分組

websocket節點訊息只在同socket服務下的同分組中進行廣播。一般同一專案約定使用一個分組名稱。

為確保分組名稱唯一,平台會自動產生一個預設的分組名稱,您也可按需修改。

大屏ID過濾

在同一分組下,websocket節點發送的訊息預設分組內的大屏都能接收到。您可通過當前參數,指定哪些大屏需要過濾websocket節點訊息,即配置的大屏將無法接收該訊息。

說明

支援輸入多個大屏ID,多個大屏使用英文逗號(,)隔離。

錨點配置

image

事件/動作參數說明

事件/動作

說明

當接收此訊息時

websocket節點接收到來自其他端的同名訊息時,觸發此事件。可在配置面板中編輯接收訊息名。單擊右側的新增事件按鈕,添加一個接收訊息。單擊右側的image表徵圖,刪除接收訊息。

發送此訊息

輸入上遊節點的輸出結果,發送到其他端。可在配置面板中編輯發送訊息名。單擊右側的新增動作按鈕,添加一個發送訊息。單擊右側的image表徵圖,刪除發送訊息。

配置樣本

image

註冊訊息

websocket節點發送訊息格式如下。

{
  event: "register",
  data: {
    sid: "99326",                                      //大屏的ID
    group: "g_a9b9x"                                  //自動產生的分組名稱
  },
  callback: "callback_15832235175585251131307383912" //當前註冊時間戳記,自動產生
}

websocket節點服務擷取註冊訊息之後,需返回如下訊息才能成功註冊。

{
  event: "callback_15832235175585251131307383912",   //返回與之前同樣的註冊時間戳記
  data: {
    isError: false,                                  //置為false
    data: "ok"
  }
}

發送訊息

websocket節點發送訊息格式如下。

{
  event: 'broadcast',
  data: {
    event: "發送出去的訊息1",                         //發送訊息名稱
    data: {}                                         //data為任意格式
  }
}

接收訊息

websocket節點接收訊息格式如下。

{
  event: "broadcast_接收到的訊息1",                  //broadcast_${接收訊息名稱}
  data: {}                                          //data為任意格式
}

問題排查

無法正常串連websocket的服務端時,可根據以下步驟排查問題:

  1. WS服務不能直接在HTTPS協議下訪問,需要用WSS服務,在使用自己的SSL認證去代理WS服務地址後,才能在HTTPS下訪問。

  2. 使用功能鍵F12,開啟瀏覽器調試頁面,查看瀏覽器network頁簽下的WS標籤串連提示資訊,檢查是否因跨域未配置以及在串連返回的responseheader裡是否有設定Sec-WebSocket-Protocol為echo-protocol。

  3. 串連成功後,根據文檔中的訊息格式傳遞參數即可。

websocket-pro節點

websocket-pro節點為屏間通訊節點,相較於websocket節點,它提供了更精細的配置選項,可以更好地控制屏間通訊的細節。與websocket節點一致,每個訊息由自訂的訊息名稱和上一個節點輸出的資料群組成。

使用情境

websocket節點相同,websocket-pro節點用於多端之間的命令和資料轉送。

使用方法

添加websocket-pro節點至藍圖畫布中,可查看websocket-pro節點的配置參數。添加方式請參見使用邏輯節點

節點配置

image配置項說明

參數

說明

服務地址

socket後端服務的地址。

分組

websocket-pro節點訊息只在同socket服務下的同分組中進行廣播。一般同一專案約定一個分組名稱。

螢幕ID

websocket-pro節點所在螢幕的ID號,自訂輸入。

螢幕名稱

Websocket-pro節點所在螢幕的名稱,自訂輸入。

包含的螢幕

發送訊息時,在同分組下預設都能接收到訊息,可以通過在該配置添加螢幕ID,指定需要接收到訊息的螢幕。

排除的螢幕

發送訊息時,在同分組下預設都能接收到訊息,可以通過添加螢幕ID增加不要接收到訊息的螢幕,優先順序高於包含的螢幕。

接收訊息

websocket-pro節點發送到其他端的訊息名稱。單擊右側的新增事件按鈕,添加一個接收訊息。單擊右側的image表徵圖,刪除接收訊息。

接收訊息標識:等同於ws訊息內容中的event欄位,命中該欄位就能接收對應的訊息。

接收訊息別名:藍圖節點上錨點展示的名稱。

處理方法:串列的資料處理方法。可在配置面板中添加多個處理方法,添加後,串列資料處理節點中顯示您添加的處理方法;各方法共同實現資料處理,其中方法的輸入為訊息返回內容,輸出為下遊節點的輸入。

接收訊息別名:藍圖節點上錨點展示的名稱。

處理方法:串列的資料處理方法。可在配置面板中添加多個處理方法,添加後,串列資料處理節點中顯示您添加的處理方法;各方法共同實現資料處理,其中方法的輸入為訊息返回內容,輸出為下遊節點的輸入。

發送訊息

websocket-pro節點發送到其他端的訊息名稱。單擊右側的新增動作按鈕,添加一個發送訊息。單擊右側的image表徵圖,刪除發送訊息。

發送訊息標識:以該配置項的值作為訊息體的event值發送訊息。

發送訊息別名:藍圖節點上錨點展示的名稱。

處理方法:串列的資料處理方法。可在配置面板中添加多個處理方法,添加後,串列資料處理節點中顯示您添加的處理方法;各方法共同實現資料處理,其中方法的輸入為訊息返回內容,輸出為下遊節點的輸入。

擴充配置

websocket-pro節點所在螢幕進行其他配置。

註冊訊息廣播:對當前螢幕註冊廣播訊息,方便通訊。

未響應斷開時間長度:設定當網路服務未響應時自動中斷連線的時間。

心跳檢測:設定網路通訊的心跳檢測,檢測通訊始終處於串連狀態。

心跳活動訊號間隔時間:設定通訊串連狀態檢測的時間間隔。

錨點配置

image事件/動作參數說明

事件/動作

說明

當接收此訊息時

當接收此訊息時,彈出的事件。通過設定接收訊息標識接收後處理方法,接收來自其他螢幕的訊息。

自訂串連

設定網路通訊的自訂串連。

發送此訊息

發送此訊息時,通過設定發送訊息標識發送前處理方法,發送給不同的螢幕。

配置樣本

image

註冊訊息

websocket-pro節點發送訊息格式如下。

{
	"source":"407194",
	"target":["10000","20000"]
	"data":{
		"name":"資料來源受控模式測試",
		"group":"預設分組",
		"hasCbMsg":true,
		"disconnectTime":60000
	},
	"event":"register"
}

websocket-pro節點服務擷取註冊訊息之後,需內部處理註冊訊息。如註冊成功,再由用戶端的hasCbMsg參數決定是否需要發送到接收端。如10s內用戶端沒有註冊成功,斷開該用戶端串連。發出的訊息格式如下:

{
  "event":"register",
  "source":"407194",
  "data":{
    "isError":false,
    "data":"ok"
  }
}

心跳檢測

websocket-pro節點開啟心跳檢測時,需要的應答格式如下。

{
  "event": "heartbeat",
  "data": {
    "group": "預設分組",
    "hasCbMsg":true,
    "disconnectTime": 60000
  }
}

發送訊息/接收訊息

websocket-pro節點發送/接收訊息結構一致,格式如下。

{
  "event":"send_test",
  "source":"407194",
  "target":["10000","20000"],
  "data":{
    "zoom":12
  }
}
說明

websocket-pro附帶的心跳、斷開重連、包含的螢幕/排除的螢幕配置如果要生效,需要服務端根據用戶端發送的訊息體結構自訂滿足。