[GELÖST]K8055 Script Talktimer mit Rotlichtsteuerung

Hi zusammen,

ich stecke bei den Scripts aktuell echt in der Klemme.

Bisher funktioniert bei mir das hier:

procedure OnPlayerEOFWarning(PlaylistIndex: integer; PlayerIndex: integer);
begin
  K8055Remote(0).SetDigitalChannel(6);
  Sleep(5000);
  K8055Remote(0).ClearDigitalChannel(6);
end;

Soweit so gut, jedoch würde ich gerne den TalkTimer auch an einen Ausgang legen.
Auf der Karte kommt auf Kanal 1 das Signal vom Mic Fader an, mittels der Fernsteuerungseinstellung wird der Talktimer auch mittels “TALKTIMER START” gestartet,
und beim schließen mittels TALKTIMER STOP;TALKTIMER RESET gestoppt.

Jetzt würde ich gerne solang das Mic offen ist (Talktimer läuft) einen Kanal der K8055 ausgehend schalten lassen (zur steuerung der roten Lampe).
Mit der art wie das gebaut wird komm ich aber nicht parat, das hier ist mein Versuch:

procedure OnLoad;

begin
    EnableTimer(50);
end;


var status: boolean;

procedure OnTimer;

begin
    status := K8055Remote(0).ReadDigitalChannel(1);

    if (status = TRUE) then
        K8055Remote(0).SetDitalChannel(1);
    else then
       K8055Remote(0).SetDigitalChannel(1);
end;

Ich bastel seit Tagen damit herum, aber ich bekomme immer Fehler mit denen ich auch mit Google nicht weiter komme.

Wenn da jemand nen Tipp oder die Lösung hätte wäre das echt nett :slight_smile:
Ich komme hier echt nicht weiter.

Gruß Chris

Es würde sicherlich helfen, wenn du die Fehlermeldungen hier posten würdest. Vielleicht sind wir schlauer als Google.

Ich sehe auch mindestens einen Tippfehler im Script…

Wupps vergessen sorry :slight_smile:

Fehlermeldung ist:

Fehler beim Laden des Hintergrund-Scripts c:\zum\script.mls [Error] (13:30): Unknown identifier 'READDIGITALCHANNEL'
Doch in Delphi war das ja die Funktion zum Auslesen (wurde ja so in der Demo verwendet).

Bin hier echt um jeden Rat dankbar.

ReadDigitalChannel steht in mAirList nicht zur Verfügung. Der Grund ist kompliziert zu erklären, hat etwas mit Multithreading zu tun.

Ich würde das sowieso anders angehen: Du kannst im Script mit OnExecuteCommand direkt auf die TALKTIMER-Befehle reagieren und gleichzeitig das Rotlicht schalten:

procedure OnExecuteCommand(Command: string);
begin
  if Command = 'TALKTIMER START' then
    K8055Remote(0).SetDigitalChannel(1)
  else if Command = 'TALKTIMER STOP' then
    K8055Remote(0).ClearDigitalChannel(1);
end;

Oder wenn du es noch “sauberer” möchtest: Denk dir zwei neue Befehle für das Schalten des Rotlichts aus, zum Beispiel REDLIGHT ON und REDLIGHT off. Diese kannst du dann zunächst mit in die Fernsteuerungskonfiguration eintragen (wie gehabt durch Semikolon getrennt):

TALKTIMER START;REDLIGHT ON
TALKTIMER STOP;TALKTIMER RESET;REDLIGHT OFF

Und dann im Script:

procedure OnExecuteCommand(Command: string);
begin
  if Command = 'REDLIGHT ON' then
    K8055Remote(0).SetDigitalChannel(1)
  else if Command = 'REDLIGHT OFF' then
    K8055Remote(0).ClearDigitalChannel(1);
end;

Das ist ja cool !
Damit wird einiges sehr einfach, echt super.
Vielen Dank für den Rat, mein Problem ist damit gelöst :slight_smile:

Gruß Chris