Talktimer blinken lassen

Der talktimer reagiert nicht auf ON/OFF sondern nur auf START/STOP aber auch wenn ich auf
TALKTIMER START/STOP; ENCODER INPUT MIC ON/OFF
umstelle funktioniet es nicht korrekt, wie gesagt der Timer wird zwar wieder auf 0.00 gesetzt und die Anzeige erlischt wie gewünscht, das Script zählt wohl dennoch weiter.

Jetzt lasse bitte TALKTIMER ON/OFF; bei der Zirkumflex-Taste weg und probiere folgendes Skript aus:

const
  TALK_TIME = 90;                // Zeit in Sekunden bis zur Warnung

  BUTTON_NAME = 'BUTTON.TALK';   // Name des statischen Textes

  BCOLOR_ON  = '#FF0000';        // Hintergrundfarbe "an"
  BCOLOR_OFF = '#8A0808';        // Hintergrundfarbe "aus"
  FCOLOR_ON  = '#F7F8E0';        // Schriftfarbe "an"
  FCOLOR_OFF = '#848484';        // Schriftfarbe "aus"
      
var
  TalktimerOn, ButtonStatus: boolean;
  
procedure ButtonOn;
begin
  ExecuteCommand(BUTTON_NAME + ' FONTCOLOR ' + FCOLOR_ON);
  ExecuteCommand(BUTTON_NAME + ' BACKGROUNDCOLOR ' + BCOLOR_ON);
  ButtonStatus := true;
end;

procedure ButtonOff;
begin
  ExecuteCommand(BUTTON_NAME + ' FONTCOLOR ' + FCOLOR_OFF);
  ExecuteCommand(BUTTON_NAME + ' BACKGROUNDCOLOR ' + BCOLOR_OFF);
  ButtonStatus := false;
end;

procedure ButtonFlash;
begin
  EnableTimerEx('Flash', 750);
end;

procedure ButtonStop;
begin
  DisableTimerEx('Flash');
  ButtonOff;
end;

procedure OnLoad;
begin
  TalktimerOn := false;
  ButtonOff;
end;

procedure OnTimerEx(ID: string);
begin
  if ID = 'Time' then
  begin
    ButtonFlash;
    DisableTimerEx('Time');
  end;
  if ID = 'Flash' then
  begin
    if ButtonStatus then
      ButtonOff
    else
      ButtonOn;
  end;
end;

procedure OnEncoderInputToggle(Input: TEncoderInput; NewState: boolean);
begin
  if Input = eiMic then begin
    if NewState = true then
    begin
      ExecuteCommand('TALKTIMER START');
      if TALK_TIME > 0 then
        EnableTimerEx('Time', TALK_TIME * 1000);
    end
    else begin
      ExecuteCommand('TALKTIMER STOP');
      ButtonStop;
    end;
  end;
end;

begin
end.

(Die Farben mußt Du jetzt nochmal anpassen, sorry.)

Nick,

ich bin im Moment überfragt. Ich habe hier V 6.3.5 Build 4382 (wieso eigentlich?), und da funktioniert es bestens. Es klingt jetzt blöd, aber bitte schaue nochmal nach, in welcher Version Du das Skript wirklich ausprobiert hast (nach Klick auf Button ).

Habe ich natürlich sofort getestet, leider das gleich Ergenis. :unamused:

Talk_03

Ob es wichtig ist? :thinking:

Version

Ich kann mich jetzt nicht erinnern, dass die Changelogs seither elementare Änderungen aufweisen.

Sollte sowohl mit v6.3.8 wie auch mit älteren Versionen der v6.3 klappen.

Guten Abend @Tondose,

ich habe nochmals geschaut und ich habe “mAirList-6.3.8-snapshot - Build 4403”. Ich habe dann einmal “mAirList-6.3.5-snapshot - Build 4380” und “mAirList-6.3.6-snapshot - Build 4382” installiert.
Es ist bei allen Versionen das selbige Problem. Deine Mairlistversion habe ich irgendwie nicht auf dem Rechner um diese zu testen. Ich denke aber einmal, das es sich nicht anders verhalten wird.

Trotzdem bin ich alle bei mir verfügbaren Builds von Version 6.3.3 bis zur aktuellen 6.3.8 Build 4403 nochmals durchgegangen. Bei allen Versionen ist es identisch.

Ich stehe da genauso wie Du vor einem Rätsel. Vielleicht sehen wir aber auch den Wald vor lauter Bäume nicht.

Abendliche Grüße
Nick

@NickTheRipper: Ich habe keinen Schimmer, warum das nicht gehen sollte. Bei mir funktioniert es reibungslos. Da muß @Torben schauen.

@MrBeat: Ich habe keinen Schimmer, warum das nicht gehen sollte. Bei mir funktioniert es reibungslos. Beim Startbefehl fängt es an zu blinken (nach der entsprechenden Zeit) und beim Stopbefehl hört es auf. Vielleicht funkt da irgendwas dazwischen, was wir noch nicht entdeckt haben.

Alles gut Tondose,
so ist es bei mir ja auch, trotzdem wenn das Mic wieder aus ist und die Zeitspanne größer als 90 Sekunden wird blinkt der statische Text wieder auf egal ob ich den Knopp gedrückt habe oder nicht.

Es ist allerdings auch kein Beinbruch, ist kein Must to Have sondern ein Nice to Have für mich.

Wie gesagt für mich ist die Programmiersprache ein Buch mit sieben Siegeln, von der Logik würde ich sagen der Talktimer stoppt aber das Script als solches nicht. Andere Hintergrundscripte oder Fernsteuerungen habe ich nicht eingetragen. lediglich die skin.ini nach meinen Wünschen angepasst.
Muss evtl in der screenobject.ini noch ein Eintrag gesetzt werden? Aber das betrifft ja nur wenn ich den Button klicken will, oder?
Gut, aber das haben wir ja schon mehrfach beschrieben.
Ich sage trotzdem ganz herzlichen Dank für Deine Zeit und Mühe eine Lösung zu finden.
Herzlichst MrBeat

@MrBeat, ein Versuch noch: Bitte öffne die Fernsteuerungs-Konsole und lasse einen kompletten Zyklus durchlaufen, Mikro an bis es blinkt, Mikro aus, bis es wieder (fälschlich) blinkt. Dann kopiere das Ergebnis und poste es hier.

Sorry dass ich mich mal kurz einklinke, aber ich hab das jetzt mal getestet, nur mit dem Unterschied, dass ich das nicht über einen statischen Text gemacht habe, sondern direkt über meine Studioampel und ich kann mit TonDose nur anschließen, es funktioniert tadellos.

Lg

Mache ich doch sehr gerne

 20:03:45.419: BUTTON.TALK FONTCOLOR #202020
 20:03:45.729: BUTTON.TALK BACKGROUNDCOLOR #202020

*Mic Taste gedrückt zum sprechen

20:03:52.138: ENCODER INPUT MIC ON/OFF
20:03:52.139: TALKTIMER START
20:05:22.884: BUTTON.TALK FONTCOLOR #FF0000
20:05:22.887: BUTTON.TALK BACKGROUNDCOLOR #202020
20:05:23.636: BUTTON.TALK FONTCOLOR #202020
20:05:23.638: BUTTON.TALK BACKGROUNDCOLOR #202020
20:05:24.391: BUTTON.TALK FONTCOLOR #FF0000
20:05:24.393: BUTTON.TALK BACKGROUNDCOLOR #202020
20:05:25.141: BUTTON.TALK FONTCOLOR #202020
20:05:25.145: BUTTON.TALK BACKGROUNDCOLOR #202020

*Mic Taste gedrückt zum beenden des Spechen

20:05:25.636: ENCODER INPUT MIC ON/OFF
20:05:25.638: TALKTIMER STOP
20:05:25.641: BUTTON.TALK FONTCOLOR #202020
20:05:25.644: BUTTON.TALK BACKGROUNDCOLOR #202020

ca. 2 Minuten gewartet (Info Blinkt NICHT nach 90 Sekunden) dann
Mic kurz gedrückt für ca. 7 Sekunden und beendet

20:07:08.728: ENCODER INPUT MIC ON/OFF
20:07:08.731: TALKTIMER START
20:07:14.009: ENCODER INPUT MIC ON/OFF
20:07:14.011: TALKTIMER STOP

Info blinkt nach 90 Sekunden

20:07:14.014: BUTTON.TALK FONTCOLOR #202020
20:07:14.017: BUTTON.TALK BACKGROUNDCOLOR #202020
20:08:39.479: BUTTON.TALK FONTCOLOR #FF0000
20:08:39.482: BUTTON.TALK BACKGROUNDCOLOR #202020
20:08:40.227: BUTTON.TALK FONTCOLOR #202020
20:08:40.230: BUTTON.TALK BACKGROUNDCOLOR #202020
20:08:40.981: BUTTON.TALK FONTCOLOR #FF0000
20:08:40.984: BUTTON.TALK BACKGROUNDCOLOR #202020
20:08:41.732: BUTTON.TALK FONTCOLOR #202020
20:08:41.736: BUTTON.TALK BACKGROUNDCOLOR #202020
20:08:42.482: BUTTON.TALK FONTCOLOR #FF0000
20:08:42.487: BUTTON.TALK BACKGROUNDCOLOR #202020
20:08:43.233: BUTTON.TALK FONTCOLOR #202020
20:08:43.238: BUTTON.TALK BACKGROUNDCOLOR #202020

Bedeutet doch eigentlich wenn ich weniger als 90 Sekunden die Taste aktiv habe zählt es einfach weiter, wenn die Kriterien mit 90 Sekunden erfüllt sind hält auch das Script an.

Guten Abend @Tondose,

ich habe jetzt alles noch einmal komplett neu angelegt (Script, GUI-Objekt, Hintergrundaktion). Was soll ich Dir sagen, es funktioniert auf einmal.

Keinen Plan warum auf einmal. Das muss ich nicht verstehen.

Auf jedenfall, vielen Dank für Deine tolle Arbeit für die Umsetzung des Scriptes. Alleine hätte ich so ein Script nicht programmieren können.

Ich kann zwar, wenn so ein Script besteht, die Zusammenhänge erkennen, aber ich hätte es alleine nicht umsetzen können. Ich lese auch immer viel hier im Forum, um auch selber Scripte anzupassen, was mir schon gut gelingt, aber zu mehr reicht es bei mir noch nicht.

Abendliche Grüße
Nick

1 Like

Fein, @NickTheRipper, daß es bei Dir jetzt klappt, vielleicht war irgendeine .dll verrutscht. Hast Du denn die gleichen Probleme damit wie @MrBeat?

Guten Morgen @Tondose,

es funktioniert alles wie es soll. Bei mir trat das Problem, was @MrBeat beschreibt, nur auf, als ich auch dem Talktimer selbst die ID BUTTON.TALK zugewiesen hatte. Ich dachte, vielleicht könnte man den ja direkt blinken lassen.

Bei mir ist der Talktimer normalerweise mit der ID TALKTIMER versehen, da bei mir noch eine andere Routine in Verbindung mit dem Airlite läuft. Vielleicht hat sich das dann nicht vertragen.

Nachdem ich es rückgängig machte funktionierte das mit dem Blinken so wie es soll. Ich habe mir einen Hintergrund für den Talktimer erstellt und mit Deinem Script lasse ich den dann blinken, wenn die eingestellte Talktime erreicht ist.

Morgendliche Grüße
Nick

1 Like

Aha. Einerseits beruhigt mich das, andererseits haben wir ein MrBeat-idiosynkratisches Problem. Irgendwas funkt da dazwischen und startet den Timer, wenn er nicht soll. :thinking:

Hallo @Tondose,

um bei mir den Fehler einzugrenzen bin ich wie folgt vorgegangen und habe nach jedem Schritt getestet.

  1. Zusätzliche Sicherung von Mairlist komplett aus beiden Ordnern Programfiles und ProgramData.
  2. Deaktivierung aller Hintergrundskripte. Ausser das, um den Talktimer blinken zu lassen.
  3. Deaktivierung aller Aktionen nach Programmstart, wo ich ein Skript mit startete.
  4. Prüfen von vergebenen ID’s (TALKTIMER und BUTTON.TALK). Gegebenenfalls korrigieren.
  5. Anderes GUI Objekt testen mit den richtigen ID’s.
  6. Andere und ältere Mairlistversionen getestet.
  7. Frisches Mairlist als Standardkonfiguration (wie neu ohne meine Änderungen und Designanpassungen).

Als bei einer Cleaninstallation das mit dem blinkenden Button ging, habe ich diese genommen und in den Konfigurationsordner nur meine Änderungen (Konfigurationsdatei, Datenbank, ini-Dateien für Layout und Scripte) zurück kopiert.

Habe das entsprechende GUI-Objekt, was blinken sollte noch einmal neu erstellt und alles ging.

War zwar ein sehr großer Aufwand, aber das Endergebnis zählt.

Vielleicht hätte ich es gleich an einer Cleaninstallation testen sollen, aber hinterher ist man immer schlauer. :rofl:

Morgendliche Grüße
Nick

1 Like

Na, dann ans Werk, @MrBeat. Du weißt, was zu tun ist. (Backups nicht vergessen!!)

Guten Morgen zusammen,
als erstes vielen Dank an Euch für die Zahlreichen Tipps und Hilfestellungen.

BTW @NickTheRipper andere Hintergrundscripte die ggf. dazwschen funken könnten nutze ich nicht, lediglich Tastenkombis zum Steuern der Player und Cartwall, daran kanns also nicht liegen.

Ich bin dem Tipp von Nick gefolgt, habe alles gesichert, neuinstalliert und nur das Script und die dementsprechenden Bildschirmobjekte erstellt und verlinkt. Leider wieder ohne Erfolg bzw. so wie oben und mehrfach beschrieben.
Aktiviere ich den Talktimer über die Mic Taste und das Script läuft minimum oder länger als 90 Sekunden erledigt er problemlos seinen Job, ich stoppe den Talktimer über die Mic-Taste und die Meldung verschwindet. Funktioniert also in dem Punkt tadellos.
Allerdings redet man ja nicht immer genau oder länger als 90 Sekunden, für diesen Fall aktiviere ich natürlich genauso den Talktimer über den Mic-Botton und stoppe den Talktimer durch erneutes drücken der MIC-Taste innerhalb bzw. vor Ablauf der 90 Sekunden, z.B. nach 45 Sekunden, dann läuft das Script einfach weiter und gibt mir nach Ablauf der restlichen 45 Sekunden die Meldung Talktime Over

Wenn ich das Script über die Konfiguration - Hintergrundscripte einbinde nimmt das Programm das Script an, benutze ich den Script-Import über Script ausführen bekomme ich die Fehlermeldung die auch Nick hatte.

111

Getestet habe ich das mit den Versionen:

Version 6.3.6 Build 4382
Version 6.3.8 Build 4403

Ich gebs nun auf, wie gesagt es ist ein Nice to Have, kein Must Have

Nochmal Danke für Eure intensive Hilfe

Gruß MrBeat

Guten Tag @Tondose,

ich habe mal versucht das Problem von @MrBeat nachzustellen und es ist mir gelungen.
Im Skript reduzierte ich einmal die Zeit von 90 Sekunden auf 5 Sekunden. Danach aktivierte ich das Mikrofon und zog den Regler bei 3 Sekunden wieder zu. Tatsächlich beginnt dann der Button nach einigen Sekunden an zu blinken. Erreicht man Overtime (5 Sekunden) und zieht dann den Mikrofonregler runter, dann läuft alles super.

Sprich zieht man den Regler vor erreichen der angegebenen Zeit wieder nach unten, dann stoppt zwar der Talktimer, aber der Overtimebutton fängt trotzdem nach der abgelaufenen Overtime an zu blinken.

Ich habe nun schon einige Sachen versucht im Skript anzupassen, aber ich habe noch nicht das Problem beseitigen können.

Wir alle haben offenbar nur geprüft (bzw. ich), ob Overtime funktioniert und das geht ohne Probleme.

@MrBeat
Sorry, ich hatte Dich offenbar erst nicht richtig verstanden und nach Deiner letzten Beschreibung habe ich es noch einmal bei mir getestet und kann es nun auch nachvollziehen.

Mittagliche Grüße
Nick

Ich glaube, ich sehe eine Spur.