Hauptmenü  

   

Elektronik  

   

Login  

   

Beitragsseiten


Programm MP3-Message-ausgeben

Dieses Programm reagiert auf eine Aktualisierung der Systemvariable "MP3-MsgText" und bedient einen MP3-Lautsprecher. Das Programme wird nur ausgeführt, wenn aktuell kein Alarm ansteht, ansonsten wird die Ausgabe verworfen.

Sollten mehrere Lautsprecher vorhanden sein, können hier zeitversetzt zusätzliche Scripte aufgerufen werden. Die Erfahrung hat aber gezeigt, daß dies nur sinnvoll ist, wenn wirklich alle Ausgaben auf alle Lautsprecher erfolgen sollen. Sobald es nötig wird, die Ausgaben zu differenzieren, sollten für die zusätzlichen Lautsprecher jeweils eigene Systemvariable mit eigenen Ausgabeprogrammen erstellt werden.

Möchte man eine zeitversetzte Ausgabe löschen, kann man einfach den Text der Systemvariablen auf "" setzen und somit die Ausgabe verhindern.

 

Name Beschreibung Bedingung (Wenn...) Aktivität (Dann.., Sonst..) Aktion
MP3-Message-ausgeben Message ausgeben, sofern Anlage Alarmfrei Systemzustand: MP3-MsgText bei im Wertebereich von Stop bis kleiner bei Aktualisierung auslösen Skript: ... sofort ausführen
Bedingung: Wenn...
Systemzustand MP3-MsgTextbeiStop bei Aktualisierung auslösen
ODER
Systemzustand CCU_BOOT bei nein nur prüfen
UND
Systemzustand Alarm bei Ruhe nur prüfen
UND
Systemzustand CCU_BOOT bei nein nur prüfen
 
Aktivität: Dann...
Skript
! Message Ausgabe auf MP-Player veranlassen, Text wird aus der Systemvariable "MP3-MsgText" ausgelesen
! Der Text kann einen Lautstärke Anteil haben, dieser wird aber durch die Vorgabe ersetzt
! Lautstärke wird von der Systemvariable "MP3-Kueche-MSG-SoundLevel" abgeleitet
! Beispiel: 1,108000,1,2,4,1,4+1,4,108000,50,17,18,34,81,97,0,0,0,0
! MP3 Anteil und LED Anteil wird durch "+" getrennt

string textAll;
string mpText;
string ledText;
string mpLeft;
string mpTitle;
string repeat;
string textOut;
string mark = ",108000,";
var index;
var list;
var loud;
var mp;
var mp3;

! Ausgabeinformation aus SysVar holen
string textAll = dom.GetObject("MP3-MsgText").Value();

!Text in MP3 Anteil und LED Anteil splitten
mpText = textAll.StrValueByIndex("+",0);
ledText = textAll.StrValueByIndex("+",1);

!MP Text in Lautstärke Anteil/Wiederholungen und Titelliste splitten
integer cut = mpText.Find(mark);
mpLeft = mpText.Substr(0, cut);
mpTitle = mpText.Substr(cut + 8, mpText.Length());
repeat = mpLeft.StrValueByIndex(",",1);
if(!repeat) {repeat = mpLeft;}

! Index der Lautstärke auswahl aus Systemvariable holen
index = dom.GetObject("MP3-Kueche-MSG-SoundLevel").Value();

! Liste der Lautstärke Indexe holen
list = dom.GetObject("MP3-Kueche-MSG-SoundLevel").ValueList();

! Lautstärke aus der Liste holen
loud = list.StrValueByIndex(";",index);
! Textzeile für MP3 Steuerung neu bilden
mpText = loud #"," #repeat #mark #mpTitle;


!WriteLine("Lautstärke: " #loud);
!WriteLine("Repeats: " #repeat);
!WriteLine("Titelliste: " #mpTitle);
!WriteLine("MP3 Ausgabe: " #mpText);
!WriteLine("LED Text: " #ledText);

if (mpText) {
!Ausgabe auf MP3 Küche generieren
mp = dom.GetObject("MP3-Kueche-Sound");
mp3 = mp.DPByHssDP("SUBMIT");
mp3.State(mpText);
}

!if (ledText) {
! ! Text für LED Ansteuerung ist vorhanden, dann ausgeben
! mp = dom.GetObject("MP3-Kueche-LED");
! mp3 = mp.DPByHssDP("SUBMIT");
! mp3.State(ledText);
!}

sofort
Skript
! LED Ausgabe auf MP-Player veranlassen, Text wird aus der Systemvariable "MP3-MsgText" ausgelesen
! Der Text kann einen Lautstärke Anteil haben, dieser wird aber durch die Vorgabe ersetzt
! Lautstärke wird von der Systemvariable "MP3-Kueche-MSG-SoundLevel" abgeleitet
! Beispiel: 1,108000,1,2,4,1,4+1,4,108000,50,17,18,34,81,97,0,0,0,0
! MP3 Anteil und LED Anteil wird durch "+" getrennt

string textAll;
string mpText;
string ledText;
string mpLeft;
string mpTitle;
string repeat;
string textOut;
string mark = ",108000,";
var index;
var list;
var loud;
var mp;
var mp3;

! Ausgabeinformation aus SysVar holen
string textAll = dom.GetObject("MP3-MsgText").Value();

!Text in MP3 Anteil und LED Anteil splitten
mpText = textAll.StrValueByIndex("+",0);
ledText = textAll.StrValueByIndex("+",1);

!MP Text in Lautstärke Anteil/Wiederholungen und Titelliste splitten
integer cut = mpText.Find(mark);
mpLeft = mpText.Substr(0, cut);
mpTitle = mpText.Substr(cut + 8, mpText.Length());
repeat = mpLeft.StrValueByIndex(",",1);
if(!repeat) {repeat = mpLeft;}

! Index der Lautstärke auswahl aus Systemvariable holen
index = dom.GetObject("MP3-Kueche-MSG-SoundLevel").Value();

! Liste der Lautstärke Indexe holen
list = dom.GetObject("MP3-Kueche-MSG-SoundLevel").ValueList();

! Lautstärke aus der Liste holen
loud = list.StrValueByIndex(";",index);
! Textzeile für MP3 Steuerung neu bilden
mpText = loud #"," #repeat #mark #mpTitle;


!WriteLine("Lautstärke: " #loud);
!WriteLine("Repeats: " #repeat);
!WriteLine("Titelliste: " #mpTitle);
!WriteLine("MP3 Ausgabe: " #mpText);
!WriteLine("LED Text: " #ledText);

!if (mpText) {
! !Ausgabe auf MP3 Küche generieren
! mp = dom.GetObject("MP3-Kueche-Sound");
! mp3 = mp.DPByHssDP("SUBMIT");
! mp3.State(mpText);
!}

if (ledText) {
! Text für LED Ansteuerung ist vorhanden, dann ausgeben
mp = dom.GetObject("MP3-Kueche-LED");
mp3 = mp.DPByHssDP("SUBMIT");
mp3.State(ledText);
}

verzögert um 1 Sekunden
Aktivität:Sonst...
   
© WagoTec.de