Einfach code zwischen try… except… finally einbinden.
Tritt ein Fehler auf, wird der Code bei except ausgefuehrt. Hier kann dann I’m einfachsten Fall z.B. exit stehen.
Der Code hinter finally wird immer ausgefuehrt.
Habe heute das bestehende Script mit try… except… finally erweitert. Funktioniert super.
Nun soll noch, wenn kein IO-Warrior gefunden wird, eine aktive Meldung in der Playlist erscheinen.
Das ganze Funktioniert. Element wird nicht angezeigt.
CurrentPlaylist.GetCount gibt ein Element zurück.
Eine Idee?
DANKE Michel
Folgendes Script wird im StartupActions.mla aufgerufen
procedure AddDummyPlaylistItem(strTitel: string);
var
pi: IBreakPlaylistItem;
begin
pi := Factory.CreateBreakPlaylistItem;
pi.SetTitle('Automations-Unterbrechung');
//Def. Farbe
pi.SetColor($000000FF);
pi.SetColored(true);
//Füge ein Break-Element der Playlist hinzu.
CurrentPlaylist.Add(pi);
SystemLog('Es wurde ein Break-Element am Ende der Playlist hinzugefügt');
end;
begin
try
// Setze IO-Warrior RedLED (Port 6.7)
IOWarriorRemote(0).SetPort(pRedLED,true)
SystemLog('IO-Warrior wurde erfolgreich initialisiert.');
except
SystemLog('ACHTUNG: IO-Warrior ist nicht vorhanden!!!');
AddDummyPlaylistItem('ACHTUNG: IO-Warrior ist nicht vorhanden!!!');
exit;
finally
end;
end.
Ich verstehe die Frage nicht ganz. Ich habe das Script getestet (vorher pRedLED durch 0 ersetzt, da Konstante bei mir nicht definiert), ohne angeschlossenen IOWarrior. Es erscheint eine Meldung im Systemprotokoll und am Ende der Playlist das rote Warnelement.
Mein Script erstellt gar kein Dummy Element, sondern ein BreakPlaylistItem. Schon mal falsch
mAirList schmeist diese Elemente im Assist direkt in den Papierkorb.
Habe auf CreateDummyPlaylistItem gewechselt. Nun wird das Element jedoch noch immer nicht angezeigt.
Eventuell muss ich noch eine Einstellung wechseln.
procedure AddDummyPlaylistItem(strTitel: string);
var
dpi: IDummyPlaylistItem;
begin
dpi := Factory.CreateDummyPlaylistItem;
dpi.SetTitle(strTitel);
//Def. Farbe
dpi.SetColor($000000FF);
dpi.SetColored(true);
//Füge ein Dummy-Element der Playlist hinzu.
CurrentPlaylist.Add(dpi);
SystemLog('Es wurde ein Dummy-Element am Ende der Playlist hinzugefügt');
end;
Habe gerade gesehen, dass mAirList einen nicht vorhandenen IO-Warrior sauber im SystemLog vermerkt.
Kann ich diese Fehler auch irgendwie weiterleiten z.B. als E-Mail?