Biblioteka ta pozwala na sterowanie po sieci Ethernet urządzeniami Exstreamer z poziomu WAGO I/O, które stanowią niezależne odtwarzacze strumienia audio. Bardzo ciekawa biblioteka, która umożliwia stworzenie strefowego sterowania audio/multiroom. Na przykład czujnik w łazience uruchomi automatycznie muzykę, lub przycisk czy pokrętło na ścianie zmieni poziom dźwięku w danej strefie.
Struktury danych
1. ExtreamerState
Lista stanów odtwarzacza
| Nazwa | Znaczenie |
| ES_IDLE | Bezczynność – STOP |
| ES_PLAY | Odtwarzanie – PLAY |
| ES_PAUSE | Wstrzymanie odtwarzania – PAUSE |
| ES_FASTFORWARD | Przyspieszone odtwarzanie – FASTFORWARD |
2. ExstreamRepeat
Stałe dla trybów zapętlenia.
| Nazwa | Znaczenie |
| ER_OFF | Zapętlanie wyłączone |
| ER_SONG | Zapętlanie piosenki włączone |
| ER_PLAYLIST | Zapętlanie playlisty włączone |
3. ExstreamMode
Stałe dla trybów streamingu.
| Nazwa | Znaczenie |
| EM_UNKNOWN | Nieokreślony |
| EM_STREAMING | Wysyłanie ??? |
| EM_PULL | Odbieranie ??? |
4. ExstreamCMD
Lista komend, które możemy wysłać do extreamera.
| Nazwa | Znaczenie |
| ExCMD_NONE | Brak/bez czynność |
| ExCMD_PLAY | Jeżeli brak wybranej playlisty pierwsza piosenka będzie odtwarzana. Jeżeli obecny stan to PAUSE, odtwarzanie zostanie wznowione. Jeżeli obecny stan to PLAY – bez efektu. Po uruchomieniu extsreamer znajduje się w stanie STOP. |
| ExCMD_STOP | Jeżeli obecny stan to PLAY lub PAUSE odtwarzanie zostanie przerwane i odtwarzacz przejdzie do stanu STOP. |
| ExCMD_PAUSE | Jeżeli stan PLAY to odtwarzanie zostanie wstrzymane. Jeżeli obecny stan to PAUSE to odwarzanie zostanie wznowione. |
| ExCMD_NEXTSONG | Odtwarzanie nastepnej piosenki. |
| ExCMD_PREVSONG | Odtwarzanie poprzedniej piosenki. |
| ExCMD_SHUFFLE_ON | Włącza tryb odtwarzania w trybie losowym. |
| ExCMD_SHUFFLE_OFF | Wyłącza tryb odtwarzania w losowej kolejności. |
| ExCMD_MUTE | Przełącza tryb wyciszenia głośności. Zapamiętuje aktualny poziom głośności i przywraca go przy wyłączeniu. |
| ExCMD_LOUD_ON | Włącza zwiększenie głośności. |
| ExCMD_LOUD_OFF | Wyłącza zwiększenie głośności. |
| ExCMD_VOL_LOCK_ON | Włącza blokadę poziomu głośności. |
| ExCMD_VOL_LOCK_OFF | Wyłącza blokadę poziomu głośności. |
| ExCMD_NEXT_PLAYLIST | Przejście do następnej playlisty. |
| ExCMD_PREV_PLAYLIST | Przejście do poprzedniej playlisty. |
| ExCMD_FASTFORWARD | Przyspiesza prędkość odtwarzania 2x. |
| ExCMD_VOLINC | Zwieksza głośność o jeden poziom. |
| ExCMD_VOLDEC | Zmniejsza głośność o jeden poziom. |
| ExCMD_BALANCE_RIGHT | Balans o jeden krok w prawo. |
| ExCMD_BALANCE_LEFT | Balans o jeden krok w lewo. |
| ExCMD_BASS_INC | Zwiększenie basu o jeden poziom. |
| ExCMD_BASS_DEC | Zmniejszenie basu o jeden poziom. |
| ExCMD_TREBLE_INC | Zwiększenie tonów wysokich o jeden poziom. |
| ExCMD_TREBLE_DEC | Zmniejszenie tonów wysokich o jeden poziom. |
| ExCMD_SERIALB_INPUT | Wybiera „Serial B” jako źródło dźwięku. |
| ExCMD_LINE_INPUT | Wybiera „Line In” jako źródło dźwięku. |
| ExCMD_MIC_INPUT | Wybiera „Mic In” jako źródło dźwięku. |
| ExCMD_SHUFFLE | Przełącza pomiędzy trybem odtwarzania losowego. |
| ExCMD_PLAYPLAY | Tak jak komenda ExCMD_PLAY, ale kiedy jesteśmy na końcu playlisty to pierwsza piosenka ozstanie odtworzona, ExCMD_PLAY odtwarza ostatnią piosenke. |
| ExCMD_FORCE_PAUSE | Odtwarzanie zostanie wstrzymane(bez przełączania po ponownym wysłaniu) |
| ExCMD_FORCE_MUTEON | Wyciszenie zostaniue włączone(bez przełączania) |
| ExCMD_FORCE_MUTEOFF | Wyciszenie zostanie wyłączone(bez przełączania) |
| ExCMD_LOUD_INC | +1 zwiększenie głośności |
| ExCMD_LOUD_DEC | -1 zwiększenie głośności |
| ExCMD_STEREO_OUT | Wyjście stereo |
| ExCMD_MONO_OUT | Wyjście mono |
| ExCMD_BRIDGE_OUT | Tryb wyjścia „most” ??? |
| ExCMD_REPEAT_OFF | Wyłącza tryb powtarzania. |
| ExCMD_REPEAT_SONG | Tryb zapętlania aktualnej piosenki w nieskończoność. |
| ExCMD_REPREAT_PLAYLIST | Tryb zapętlania aktualnej playlisty. |
| ExCMD_PITCH_INC | +1 predkość odtwarzania |
| ExCMD_PITCH_DEC | -1 prędkość odtwarzania |
| ExCMD_STATE_UPDATE_ON | Włącza informację zwrotną o stanie Exstreamera(do użytku wewnętrznego biblioteki) |
| ExCMD_STATE_UPDATE_OFF | Wyłącza informację zwrotną o stanie Exstreamera(do użytku wewnętrznego biblioteki) |
| ExCMD_REPEAT | Przełącza pomiędzy REPEATSONG, REPEATPLAYLIST, REPEATOFF |
| ExCMD_VOLLOCK_TOGGLE | Przełącza pomiędzy VOLUMELOCK i VOLUMEUNLOCK |
| ExCMD_LOUD_TOGGLE | Przełącza pomiędzy LOUDNESSON i LOUDNESSOFF |
| ExCMD_SET_VOLUME | Ustawia zadany poziom głośności. |
5. Exstreamer
Struktura służąca do prezentacji stanu odtwarzacza. Bloczek sterownika uaktualnie strukturę reagując na informację odbierane z portu UDP.
| Nazwa | Typ danych | Znaczenie |
| MODE | ExstreamMode | Tryb streamingu(nie używać) |
| STATE | ExstreamState | Tryb odtwarzania |
| PLAYLIST | STRING | Nazwa aktualnej playlisty |
| SONG | STRING | Nazwa odtwarzanej piosenki |
| RREPEAT | ExstreamRepeat | Tryb zapętlania |
| SHUFFLE | BOOL | Wł/wył odtwarzanie losowe |
| VOL | BYTE | Głośność od 0 do 100 |
| VOL_LOCK | BOOL | Blokada poziomu głośności |
| MUTE | BOOL | Wyciszenie |
| LOUDNESS | BYTE | Poziom zwiększenia głośności od 0 do 20. |
| USE_LOUDNESS | BOOL | Wł/wył zwiększenie głośności |
| BASS | INT | Regulacja tonów niskich od -10 do +10 |
| TREBLE | INT | Regulacja tonów wysokich od -10 do +10 |
| PITCH | INT | Regulacja prędkości odtwarzania od -70 do +100 |
| BALANCE | INT | Balans od -5(lewy) do +5(prawy) |
Bloczki funkcyjne
Bloczek służy do śledzenia stanu i sterowania odtwarzaczem Exstreamer. Aby zacząć pracę z bloczkiem należy zadeklarować zmienne struktury Exstreamer w której będzie zapisywany stan odtwarzacza oraz zmienną typu ExstreamCMD do wykonywania komend. Adres IP urządzenia Exstreamer podajemy w zmiennej wejściowej REM_HOST i uruchamiamy bloczek ustawiając START na TRUE.
Odczyt stanu odtwarzacza może być zrelizowany poprzez polling lub włączenie informacji zwrotnej w Exstreamer:
a) POLL – ustaw na TRUE, aby odświeżać cały stan odtwarzacza co 5 sekund.
b) STATE_UPDATE – ustaw na TRUE, aby odtwarzacz wysyłał informację przy każdej zmianie stanu na port UDP/adres broadcast. Jest to tryb ZALECANY.
Wykonywanie poleceń
W celu wykonania polecenia należy ustawić zmienną COMMAND na polecenie ExstreamCMD oraz ewentualnie CMD_ARG jako argument polecenia. Patrz opis struktury ExstreamCMD, aby sprawdzić listę poleceń oraz ewentualny zakres wartości argumentów.
| Nazwa: | EXSTREAMER_UDP | |
| Typ: | Blok funkcyjny | |
| Parametry wejściowo/wyjściowe: | Typ: | Komentarz: |
| EX | Exstreamer | Struktura do której bloczek będzie odczytywał stan odtwarzacza |
| COMMAND | ExstreamCMD | Zapisanie komendy w zmiennej spowoduje jej wykonanie. Po zakończeniu zmienna zostanie ustawiona przez bloczek na ExCMD_NONE |
| Parametry wejściowe: | Typ: | Komentarz: |
| START | BOOL | Uruchamia bloczek, otwiera lokalne gniazdko UDP i zaczyna czytać dane przychodzące z odtwarzacza. Po uruchomieniu powinno zapisać aktualny stan odtwarzacza do struktury wejściowo-wyjściowej EX. |
| LOCAL_PORT | UINT(domyślnie 12301) | Port lokalny UDP |
| REM_HOST | STRING | Adres IP urządzenia Exstreamer. |
| REM_PORT | UINT(domyślnie 12301) | Port zdalny UDP |
| POLL | BOOL | Wł/wył odczyt stanu odtwarzacza poprzez „polling” w interwałach 5 sekundowych. |
| STATE_UPDATE | BOOL | Ustawienie na TRUE powoduje włączenie automatycznej informacji o zmianie stanu przez odtwarzacz. |
| CMD_ARG | BYTE | Argument komendy. Patrz opis komend, aby sprawdzić, które komendy przyjmują argumenty. |
| Parametry wyjściowe: | Typ: | Komentarz: |
| <brak> | ||
