TUTORIAL: Encoder ON/OFF Script mit visueller Darstellung

Hallo zusammen,

inzwischen wurde ich von einigen Leuten gefragt wie ich in meinem Layout die Encoderbox bewerkstelligt habe. Da sich die einzelnen Puzzleteile im Forum verstreut befinden, hier ein kleines Tutorial dazu, das am Beispiel “Aircheck” auf das von mir hier gezeigte Design zugeschnitten ist.
Ich habe das hier absichtlich etwas ausführlicher geschrieben um auch Einsteigern die Möglichkeit zu bieten sich diese Box einzurichten.

Insgesamt besteht das Ganze bei mir aus fünf Teilbereichen:

  • Hintergrundgrafik
  • Scripte
  • erweiterte Buttons
  • statische Texte
  • Rückstellungs-Script für den Programmstart

1. Hintergrundgrafik:
Über diese Grafik erzeuge ich den schwarzen Hintergrund und den Rahmen, das hat also nichts mit mAirList an sich zu tun.
Eingefügt wird diese Hintergrundgrafik in der “skin.ini” im Verzeichnis “C:\ProgramData\mAirList\4.2\config”

[MainWindow] Background=C:\ProgramData\mAirList\4.2\config\Hintergunrdgrafik.jpg

2. Scripte:
Pro Encoder benötigt man zwei Scripte
- Aircheck_On.mls

begin Encoder.GetConnections.GetItem(0).SetEnabled(true); end.
- Aircheck_Off.mls

begin Encoder.GetConnections.GetItem(0).SetEnabled(false); end.
In den Klammern (0) wird die Nummer des Encoders vorgegeben, die Encoder beginnen mit dem ersten bei “0”.
Mit (true) und (false) wird der jeweilige Encoder aktiviert oder deaktiviert.

Zwei Punkte wären hier noch zu klären, aber das muß ich erst noch herausfinden. Zum einen ob man die beiden Scripte in einem schreiben kann und zum anderen wie man schon beim Start von mAirList den Status des Encoders abfragen kann und dann mittels der Fernsteuerungs-ID den erweiterten Button passend umstellt.

3. erweiterte Buttons:
Der wohl aufwändigste Teil sind die Buttons selbst.
In der Konfiguration - “GUI - Bildschirmobjekte” - legt man einen “Erweiterten Button” an.
Das Aussehen:
Umschalt-Button - “aktiviert”
Beim Programmstart aktiv - “deaktiviert”
Aktionen ausführen bei Fernsteuerung - “aktiviert”
- Inaktiv:
Name: “r”
Hintergrundfarbe: “schwarz”
Rahmenfarbe: “schwarz”
Schriftart: “Webdings” - “Fett” - “10” “Rot”
- Maus:
Name: “r”
Hintergrundfarbe: “schwarz”
Rahmenfarbe: “rot”
Schriftart: “Webdings” - “Fett” - “10” “Rot”
- Aktiv:
Name: “a”
Hintergrundfarbe: “schwarz”
Rahmenfarbe: “schwarz”
Schriftart: “Webdings” - “Fett” - “10” “Gelbgrün”
- Aktiv+Maus:
Name: “a”
Hintergrundfarbe: “schwarz”
Rahmenfarbe: “rot”
Schriftart: “Webdings” - “Fett” - “10” “Gelbgrün”
Aktionen:

  • Aktionen wenn angeklickt bzw. aktiviert:
    “Hinzufügen - Verschiedenes - Script ausführen”
    Hier das Script “Aircheck_On.mls” auswählen.
  • Aktionen ausführen wenn deaktiviert:
    “Hinzufügen - Verschiedenes - Script ausführen”
    Hier das Script “Aircheck_Off.mls” auswählen.
    Erweitert:
    ID für Fernsteuerung: “AIRCHECK”

In Zusammenhang mit der Schriftart “Webdings” erzeugen das “a” oder “r” entsprechend ein Häkchen oder ein Kreuz.

4. statischer Text:
Ich denke dazu muß ich nicht viel schreiben? :slight_smile:

Danach das Ganze im Layout-Designer ordentlich platzieren und fertig ist die Encoder-Box.

5. Rückstellungs-Scripte:
Da sich in diesem Script die Buttons nicht automatisch an den realen Status der Encoder anpassen, ist zur Sicherheit noch ein Rückstellungs-Script notwendig, das beim Start von mAirList alle Encoder deaktiviert.

Zuerst benötigt ihr das Script:
- Encoder-Deactivation.mls

begin Encoder.GetConnections.GetItem(0).SetEnabled(false); Encoder.GetConnections.GetItem(1).SetEnabled(false); Encoder.GetConnections.GetItem(2).SetEnabled(false); Encoder.GetConnections.GetItem(3).SetEnabled(false); end.
Wenn ihr mehr als vier Encoder habt müßt ihr die Liste entsprechend erweitern.

Danach legt ihr in der Konfiguration die entsprechende Startup-Aktion fest.
“Aktionen - Nach dem Programmstart - Hinzufügen - Verschiedenes - Script ausführen” und wählt dort die “Encoder-Deactivation.mls” aus.
Und schon werden beim Start von mAirList alle Encoder deaktiviert und befinden sich im identischen Status wie die Buttons.
Danke hierfür an “Ryan Encore” und “Scrat” für die Denkanstöße :slight_smile:

Ich hoffe ich konnte damit helfen. :smiley:

Gruß
Anna


Encoderbox.jpg

Wow :slight_smile:

Aber check mal den Code, das mit color=red funktioniert da nicht.

UPS … das habe ich nicht bemerkt :slight_smile: - Schon behoben.

Liebste Anna, meinen allerherzlichsten Dank!

Ich werde mich da vielleicht sogar heute noch dransetzen, bin aber von der Maloche ein wenig kaputt! Aber ich denke, anhand deiner sehr ausführlichen Beschreibung kriege ich das wohl hin.

Brauche ich zwingend eine Hintergrundgrafik? Mein mAirList-Hintergrund ist sowieso schwarz, deshalb frage ich.

Hi Scrat,

Nein … wie gesagt ist die Anleitung an den Screenshot meines mAirList angepasst. :wink:

Okay, prima. Und: Very good job! :smiley:

grübel… Wäre es denkbar, per Notification-Skript beim Start von mAirList alle Encoderverbindungen zu deselektieren? Wie das umzusetzen ist übersteigt meine Fähigkeiten, aber das wäre zumindest eine Lösung.

Sollte man ins Auge fassen :slight_smile:

Ich erweitere das ganze mal um die Entsprechende Funktion in der Startup.mla… Werde das Tutorial entsprechend erweitern. :slight_smile: Danke

Ich frage mich ob man in der “startup.mla”

z.B.:

<?xml version="1.0" encoding="utf-8"?> <ActionList> <Action Class="EncoderMicInputDisable" /> <Action Class="EncoderLineInputEnable" /> </ActionList>

Auch die Aktivierung der Encoder mit einbinden kann?
z.B.:

<?xml version="1.0" encoding="utf-8"?> <ActionList> <Action Class="EncoderMicInputDisable" /> <Action Class="EncoderLineInputEnable" /> <Action Class="EncoderItem(0)Disable" /> <Action Class="EncoderItem(1)Disable" /> <Action Class="EncoderItem(2)Disable" /> </ActionList>

Aber dafür kenne ich keine entsprechende Option.

Hallo Anna,

zwischendurch einfach mal ein Riesen-Lob für das Tutorial. Finde ich großartig!

Danke und schöne Grüße
Martin

Oh … Dankeschön … das freut mich natürlich zu hören :slight_smile:

Anna, warum lässt du nicht ganz einfach “Nach Programmstart” mittels “Aktionsliste abarbeiten” einmal alle Scripte aufrufen die zum Deselectieren der Encoder vorhanden sind ?

Nice Day
Ryan

Gibt es denn schon entsprechende Skripte?

Hat Anna oben doch geschrieben :slight_smile:

- Aircheck_Off.mls [code] begin Encoder.GetConnections.GetItem(0).SetEnabled(false); end. [/code]

So mache ich es jedenfalls, lasse nach Programmstart eine Aktionsliste abarbeiten wo alle “Encoder_Off”-Scripte einmal aufgerufen werden.

Mann, bin ich bekloppt. Ich brauche das ja nur als einmalig nach Programmstart laufen lassen…

Bitte sehr, auszuführen als Aktion nach Programmstart -> Skript ausführen.

begin Encoder.GetConnections.GetItem(0).SetEnabled(false); Encoder.GetConnections.GetItem(1).SetEnabled(false); Encoder.GetConnections.GetItem(2).SetEnabled(false); Encoder.GetConnections.GetItem(3).SetEnabled(false); end.

Funktioniert, alle Verbindungen sind bei Programmstart deaktiviert. Auf die Weise liesse sich auch ein Button in die Encoderbox integrieren, der das Skript ausführt. Natürlich auch ein zweiter Button, der alle Verbindungen selektiert. Das lässt sich beliebig fortführen…

EDIT: Nicht als Notification-Skript starten lassen, dann tut sich nix.

Super, ich werde das dann noch in das Tutorial integrieren :smiley:

:smiley:

Freut mich, das ich etwas beitragen konnte!

So, Tutorial korrigiert und erweitert :slight_smile:

Klasse!