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> |