Biblioteka iHMS_Exstreamer.lib, integracja z urządzeniem audio Exstreamer

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

NazwaZnaczenie
ES_IDLEBezczynność – STOP
ES_PLAYOdtwarzanie – PLAY
ES_PAUSEWstrzymanie odtwarzania – PAUSE
ES_FASTFORWARDPrzyspieszone odtwarzanie – FASTFORWARD

2. ExstreamRepeat

Stałe dla trybów zapętlenia.

NazwaZnaczenie
ER_OFFZapętlanie wyłączone
ER_SONGZapętlanie piosenki włączone
ER_PLAYLISTZapętlanie playlisty włączone

3. ExstreamMode

Stałe dla trybów streamingu.

NazwaZnaczenie
EM_UNKNOWNNieokreślony
EM_STREAMINGWysyłanie ???
EM_PULLOdbieranie ???

4. ExstreamCMD

Lista komend, które możemy wysłać do extreamera.

NazwaZnaczenie
ExCMD_NONEBrak/bez czynność
ExCMD_PLAYJeż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_STOPJeżeli obecny stan to PLAY lub PAUSE odtwarzanie zostanie przerwane i odtwarzacz przejdzie do stanu STOP.
ExCMD_PAUSEJeżeli stan PLAY to odtwarzanie zostanie wstrzymane. Jeżeli obecny stan to PAUSE to odwarzanie zostanie wznowione.
ExCMD_NEXTSONGOdtwarzanie nastepnej piosenki.
ExCMD_PREVSONGOdtwarzanie poprzedniej piosenki.
ExCMD_SHUFFLE_ONWłącza tryb odtwarzania w trybie losowym.
ExCMD_SHUFFLE_OFFWyłącza tryb odtwarzania w losowej kolejności.
ExCMD_MUTEPrzełącza tryb wyciszenia głośności. Zapamiętuje aktualny poziom głośności i przywraca go przy wyłączeniu.
ExCMD_LOUD_ONWłącza zwiększenie głośności.
ExCMD_LOUD_OFFWyłącza zwiększenie głośności.
ExCMD_VOL_LOCK_ONWłącza blokadę poziomu głośności.
ExCMD_VOL_LOCK_OFFWyłącza blokadę poziomu głośności.
ExCMD_NEXT_PLAYLISTPrzejście do następnej playlisty.
ExCMD_PREV_PLAYLISTPrzejście do poprzedniej playlisty.
ExCMD_FASTFORWARDPrzyspiesza prędkość odtwarzania 2x.
ExCMD_VOLINCZwieksza głośność o jeden poziom.
ExCMD_VOLDECZmniejsza głośność o jeden poziom.
ExCMD_BALANCE_RIGHTBalans o jeden krok w prawo.
ExCMD_BALANCE_LEFTBalans o jeden krok w lewo.
ExCMD_BASS_INCZwiększenie basu o jeden poziom.
ExCMD_BASS_DECZmniejszenie basu o jeden poziom.
ExCMD_TREBLE_INCZwiększenie tonów wysokich o jeden poziom.
ExCMD_TREBLE_DECZmniejszenie tonów wysokich o jeden poziom.
ExCMD_SERIALB_INPUTWybiera „Serial B” jako źródło dźwięku.
ExCMD_LINE_INPUTWybiera „Line In” jako źródło dźwięku.
ExCMD_MIC_INPUTWybiera „Mic In” jako źródło dźwięku.
ExCMD_SHUFFLEPrzełącza pomiędzy trybem odtwarzania losowego.
ExCMD_PLAYPLAYTak jak komenda ExCMD_PLAY, ale kiedy jesteśmy na końcu playlisty to pierwsza piosenka ozstanie odtworzona, ExCMD_PLAY odtwarza ostatnią piosenke.
ExCMD_FORCE_PAUSEOdtwarzanie zostanie wstrzymane(bez przełączania po ponownym wysłaniu)
ExCMD_FORCE_MUTEONWyciszenie zostaniue włączone(bez przełączania)
ExCMD_FORCE_MUTEOFFWyciszenie 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_OUTWyjście stereo
ExCMD_MONO_OUTWyjście mono
ExCMD_BRIDGE_OUTTryb wyjścia „most” ???
ExCMD_REPEAT_OFFWyłącza tryb powtarzania.
ExCMD_REPEAT_SONGTryb zapętlania aktualnej piosenki w nieskończoność.
ExCMD_REPREAT_PLAYLISTTryb zapętlania aktualnej playlisty.
ExCMD_PITCH_INC+1 predkość odtwarzania
ExCMD_PITCH_DEC-1 prędkość odtwarzania
ExCMD_STATE_UPDATE_ONWłącza informację zwrotną o stanie Exstreamera(do użytku wewnętrznego biblioteki)
ExCMD_STATE_UPDATE_OFFWyłącza informację zwrotną o stanie Exstreamera(do użytku wewnętrznego biblioteki)
ExCMD_REPEATPrzełącza pomiędzy REPEATSONG, REPEATPLAYLIST, REPEATOFF
ExCMD_VOLLOCK_TOGGLEPrzełącza pomiędzy VOLUMELOCK i VOLUMEUNLOCK
ExCMD_LOUD_TOGGLEPrzełącza pomiędzy LOUDNESSON i LOUDNESSOFF
ExCMD_SET_VOLUMEUstawia 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.

NazwaTyp danychZnaczenie
MODEExstreamModeTryb streamingu(nie używać)
STATEExstreamStateTryb odtwarzania
PLAYLISTSTRINGNazwa aktualnej playlisty
SONGSTRINGNazwa odtwarzanej piosenki
RREPEATExstreamRepeatTryb zapętlania
SHUFFLEBOOLWł/wył odtwarzanie losowe
VOLBYTEGłośność od 0 do 100
VOL_LOCKBOOLBlokada poziomu głośności
MUTEBOOLWyciszenie
LOUDNESSBYTEPoziom zwiększenia głośności od 0 do 20.
USE_LOUDNESSBOOLWł/wył zwiększenie głośności
BASSINTRegulacja tonów niskich od -10 do +10
TREBLEINTRegulacja tonów wysokich od -10 do +10
PITCHINTRegulacja prędkości odtwarzania od -70 do +100
BALANCEINTBalans 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:
EXExstreamerStruktura do której bloczek będzie odczytywał stan odtwarzacza
COMMANDExstreamCMDZapisanie komendy w zmiennej spowoduje jej wykonanie. Po zakończeniu zmienna zostanie ustawiona przez bloczek na ExCMD_NONE
Parametry wejściowe:Typ:Komentarz:
STARTBOOLUruchamia 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_PORTUINT(domyślnie 12301)Port lokalny UDP
REM_HOSTSTRINGAdres IP urządzenia Exstreamer.
REM_PORTUINT(domyślnie 12301)Port zdalny UDP
POLLBOOLWł/wył odczyt stanu odtwarzacza poprzez „polling” w interwałach 5 sekundowych.
STATE_UPDATEBOOLUstawienie na TRUE powoduje włączenie automatycznej informacji o zmianie stanu przez odtwarzacz.
CMD_ARGBYTEArgument komendy. Patrz opis komend, aby sprawdzić, które komendy przyjmują argumenty.
Parametry wyjściowe:Typ:Komentarz:
<brak>

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *