group-broadcast
Opis
Bloczek group-broadcast przyjmuje pojedyncze wejście i nie posiada wyjść. Każda wartość odebrana na wejściu jest rozsyłana do wszystkich pasujących bloczków znajdujących się w wybranym zakresie projektu.
Zakresem tym może być cała zakładka przepływu albo pojedyncza grupa. Dzięki temu jeden sygnał wejściowy może sterować jednocześnie wieloma bloczkami tego samego rodzaju.
Lista odbiorców jest wyznaczana na bieżąco przy każdej nowej wartości wejściowej. Oznacza to, że bloczek uwzględnia aktualny stan projektu i wysyła dane tylko do tych odbiorców, którzy są w danej chwili dostępni.
Odbiorca może być niedostępny między innymi wtedy, gdy znajduje się w projekcie, ale nie został prawidłowo skonfigurowany, jest odłączony albo zgłasza błąd uniemożliwiający normalną pracę.
Parametry konfiguracyjne
| Nazwa parametru | Wartość |
|---|---|
scope_id |
Parametr obowiązkowy określający identyfikator zakresu, w którym mają być wyszukiwani odbiorcy. Może wskazywać całą zakładkę przepływu albo pojedynczą grupę. |
block_type |
Parametr obowiązkowy określający rodzaj docelowych bloczków. Wartość musi dokładnie odpowiadać typowi odbiorców wybranemu w konfiguracji, na przykład dimmer. |
Obsługa wejścia
Bloczek dopuszcza wiele połączeń do jedynego wejścia.
Bloczek obsługuje wszystkie typy wartości wejściowych, ponieważ przekazuje dalej dokładnie tę samą wartość, którą otrzymał.
Każda wartość wejściowa jest przetwarzana w następujący sposób:
- wyszukiwani są odbiorcy w skonfigurowanym
scope_id, - wybierane są tylko bloczki zgodne z podanym
block_type, - pomijani są odbiorcy, którzy w danej chwili nie są dostępni do sterowania,
- do wszystkich pozostałych odbiorców przekazywana jest ta sama wartość wejściowa.
Przypadki ignorowane:
- odbiorcy, którzy w danej chwili nie są dostępni,
- sytuacje, w których w wybranym zakresie nie ma aktualnie żadnego aktywnego odbiorcy pasującego do
block_type.
Wyjścia bloczka
Bloczek nie posiada wyjść.
Opis statusu bloczka
Dla poprawnie zainicjalizowanego bloczka opis statusu ma postać:
X block_type: last_value
gdzie:
Xoznacza liczbę aktualnie dostępnych odbiorców uwzględnionych przy ostatnim odświeżeniu opisu,block_typeto skonfigurowany typ docelowy,last_valueto ostatnia wartość rzeczywiście rozesłana przez bloczek albonull, jeśli jeszcze nic nie zostało wysłane.
Liczba odbiorców w opisie jest odświeżana po uruchomieniu projektu oraz po każdej nowej wartości wejściowej. Pomiędzy kolejnymi zmianami wejścia opis może być chwilowo nieaktualny, jeśli dostępność odbiorców zmieni się samoczynnie.
Błędy zwracane przez bloczek
Bloczek może zwracać następujące błędy:
| Kod błędu | Opis błędu |
|---|---|
Missing scope_id configuration. |
Parametr scope_id nie został podany albo jest pusty. |
Missing block_type configuration. |
Parametr block_type nie został podany albo jest pusty. |
Input disconnected. |
Do wejścia bloczka nie podłączono żadnego innego bloczka. |
No matching blocks in selected scope. |
W wybranym zakresie nie znaleziono żadnego bloczka pasującego do podanego block_type. |
No connected blocks in selected scope. |
W wybranym zakresie istnieją pasujące bloczki, ale żaden z nich nie jest aktualnie dostępny. |
Przykłady działania
-
Jeśli
scope_idwskazuje grupę zawierającą trzy bloczki typudimmer, z czego dwa są w danej chwili dostępne, to opis bloczka po inicjalizacji będzie miał postać2 dimmer: null. -
Jeśli później na wejście pojawi się wartość
75, to bloczek przekaże ją do tych dwóch odbiorców i zaktualizuje opis na2 dimmer: 75.