0:08
Der Block Controller ist eine spezielle Funktion in der Q-SYS Designer Software, die es dir ermöglicht
0:14
ohne jegliche Programmierkenntnisse eigene Programme zu erstellen. Einige grundlegende Konzepte
0:19
der Programmierung solltest du allerdings kennen. Zu diesen kommen wir in einem anderen Video.
0:25
Jetzt verschaffen wir uns erst einmal einen Überblick über den Block Controller. Die
0:29
Benutzeroberfläche ist anders aufgebaut als im Rest der Designer Software. Deshalb schauen wir uns
0:34
anhand eines ganz einfachen Beispielprojekts an, wie die Programmbausteine miteinander verbunden werden.
0:40
Wie immer empfehle ich, die Software zu öffnen und die einzelnen Schritte direkt selbst mit
0:44
duchzugehen. Den Block Controller findest du bei den „Schematic Elements“ unter „Scripting
0:50
Components“. Ziehen wir zuerst einen Block Controller in unser Schema. Ihr seht sofort, dass es hier
0:56
fast keine definierbaren Eigenschaften gibt. Nur die Position und die Füllfarbe lassen sich einstellen.
1:02
Mit einem Doppelklick gelangen wir zum Bedienfeld.
1:06
Hier sieht es gerade ziemlich leer aus. Wenn wir etwas programmieren wollen, benötigen wir in der
1:10
Regel einige Q-SYS Steuerungselemente oder Verbindungen zu Drittanbietergeräten. Diese können
1:16
wir mit den „Plus“-Buttons hinzufügen. Mit einem Klick auf das „Plus“ bei „Controls“ fügen wir nun
1:22
einen neuen Schalter hinzu.
1:24
Wir können nun auswählen, welche Art von Steuerung wir benötigen, doch dazu später mehr.
1:29
Zunächst benennen wir den Schalter einfach nur um. „Control_1“ ist zwar kein so furchtbarer Name,
1:35
aber es ist ein bisschen so, als ob man seine Katze “Katze” nennen würde. Stattdessen wollen wir
1:40
einen individuellen Namen vergeben, der leichter zu identifizieren ist. Ich nenne meinen Schalter
1:45
„AMAZING“. Ihr könnt euren natürlich auch anders nennen.
1:49
Ich füge für dieses einfache Beispiel jetzt keine Verbindungen hinzu. Wir springen daher direkt in die
1:54
eigentliche Benutzeroberfläche des Block Controller. Dazu klicken wir auf „Edit“.
2:00
Das ist die Benutzeroberfläche des Block Controller. Im Großen und Ganzen ist diese ähnlich
2:05
aufgebaut, wie in Q-SYS Designer – Es gibt einen großen leeren Bereich, in dem man Objekte
2:09
hinzufügen und miteinander verbinden kann und eine Übersicht aller verfügbaren Objekte am Rand.
2:15
Aber anders als die Audio-Signalpfade in Designer sind die Block Controller alle Teil eines Logik-
2:21
Puzzles. Richtig zusammengesetzt erhältst du daraus ein Programm.
2:25
Die Blocks sind in verschiedene Kategorien aufgeteilt: Werte, Bedingungen, Verknüpfungen,
2:33
Operatoren und so weiter. Wir schauen später noch genauer an, was das alles bedeutet. Also mach
2:39
dir keine Sorgen, wenn die Elemente noch keinen Sinn ergeben. Und es gibt eine Reihe an Blocks, die
2:44
mit den Steuerungselementen verbunden sind, die wir zuvor angelegt haben – hier finden wir auch
2:50
Wofür sind jetzt all diese Blocks da? Stell dir einen Block Controller vor, der dazu da ist, einen
2:56
deutschen Satz zu erstellen. Die Kategorien wären dann Nomen, Verben, Adjektive, Präpositionen
3:03
Wenn du zum Beispiel ein Verb einfügst, würdest aufgefordert ein Subjekt und ein Objekt für dieses
3:07
Verb zu definieren. Wenn du ein Nomen einfügst, würdest du aufgefordert ein Adjektiv hinzuzufügen.
3:14
Würdest du all diese Elemente dann im Workspace zusammenfügen, stünde am Ende ein
3:18
vollständiger deutscher Satz! Genau das macht den Block Controller aus: Er hilft dir, den Satz richtig
3:26
Er hilft auch Fehler zu vermeiden, wie zum Beispiel den falschen Worttyp zu verwenden. Man
3:30
schreibt also nicht einfach irgendetwas in ein leeres Feld: Sätze mithilfe dieser Blocks zu konstruieren
3:36
stellt sicher, dass das Ergebnis auch einen Sinn ergibt.
3:39
Genau das ist die Idee hinter dem Block Controller; nur, dass wir eben etwas schreiben, das für einen
3:43
Computer lesbar und korrekt ist. Unsere Kategorien sind alle Teil einer Programmiersprache. Wir
3:49
müssen also die Grundregeln von Programmierung verstehen, aber eben nicht die syntaktischen
3:54
Regeln einer bestimmten Programmiersprache. Und gerade diese verursachen die meisten
4:00
Grafische Programmierwerkzeuge wie diese werden häufig verwendet um Anfängern – häufig
4:05
Kindern- das Programmieren beizubringen. Genau darum geht es:Der Block Controller macht das
4:10
Programmieren kinderleicht. Lass uns also einfach ein bisschen mit den Blocks herumspielen und
4:15
schauen, wie sie miteinander verbunden werden. Und keine Sorge, wenn du noch nicht verstehst
4:19
wofür diese Blocks da sind. Wir spielen erst einmal mit Puzzleteilen.
4:24
Als erstes schauen wir uns einmal an, welche Blocks es für unseren AMAZING Schalter gibt. Wenn wir
4:30
einen Block anklicken, wird er dem Workspace hinzugefügt. Mit diesem ersten Block, „on control
4:36
change“, kannst du definieren, was passieren soll, wenn sich der Status eines Elements ändert. In
4:42
unserem Fall also, was passieren soll, wenn der Schalter aktiviert wird.
4:46
Der „do“-Teil ist allerdings noch leer und diese kleinen Tabs hier zeigen an, welcher Block eingesetzt
4:52
werden kann. Jeder Befehlsblock ist mit dem Gegenstück solcher Tabs dargestellt, dem Slot, sodass
4:59
nur passende Blocks verknüpft werden können.
5:02
Sehen wir uns nun die verfügbaren Befehlsblöcke in unserem AMAZING-Schalter an. Viele davon sind
5:08
mit dem dreieckigen Slot für den Tab oben versehen. Wir nehmen mal diesen hier unten, bei dem
5:13
„set control“ und „legend“ steht. Was das bedeutet, erkläre ich gleich noch.
5:18
Wenn ich nun diesen Block in den Workspace ziehe, werden Tab und Slot farbig unterlegt, sobald ich
5:24
das Element in die Nähe eines passenden Feldes bewege. Lasse ich die Maus los, rasten die beiden
5:33
Wenn ich jetzt den übergeordneten Block ziehe, bewegen sich die beiden zusammen. Um die Blöcke
5:37
wieder zu trennen, ziehe ich einfach den unteren Block heraus. Auch jetzt leuchtet dieser kleine
5:43
Hinweis auf und zeigt an, dass die Verknüpfung getrennt wird.
5:47
Ich lasse diese beiden Blöcke aber jetzt mal verbunden.
5:50
Jetzt aber zu diesem „“set control Legend“-Block. „Legend“ ist einfach der angezeigte Name, das
5:56
Label, eines Befehls. Wir haben den Schalter zwar „AMAZING“ genannt, aber wir können dennoch ein
6:02
Label („Legend“) für den Schalter anlegen.
6:06
Bis jetzt ist unser Schalter nicht beschriftet. Das Block-Skript, das wir jetzt geschrieben haben besagt,
6:12
dass, wenn der Schalter gedrückt wird, also sich der Status von „AMAZING“ ändert, das Label
6:16
umbenannt werden soll.
6:19
Einige Blocks haben Abschnitte, die per Ausklappmenü ausgefüllt werden. Wenn ich zum Beispiel
6:24
außer „AMAZING“ noch andere Schalter angelegt hätte, könnte ich diese hier auswählen. Man kann
6:29
auch andere Eigenschaften des Schalters ändern, zum Beispiel die Farbe.
6:33
Hier gibt es nur wenige Auswahlmöglichkeiten, und ein Ausklappmenü ist daher sinnvoll. Insgesamt
6:38
sind es diese fünf – Farbe, Legend, IstUnsichtbar und so weiter. Es sind die gleichen Optionen, die du
6:45
auch in den verfügbaren Blocks siehst.
6:49
Diese fünf Blocks sind genau genommen alle DERSELBE Block, nur mit unterschiedlichen
6:53
vorausgewählten Optionen. Also – auch wenn es aussieht als gäbe es sehr viele Optionen – das ist nur
6:59
dazu da, um dir Zeit zu sparen.
7:02
In manchen Fällen gibt es kein Auswahlmenü, weil zu viele Optionen verfügbar sind. In diesen Fällen
7:08
musst du einen Wert eingeben. Am Ende dieses Blocks sitzt ein weiterer Slot, an den du einen
7:14
weiteren Block mit dem passenden Tab anhängen kannst.
7:18
In diesem Beispiel wird uns bereits ein Block vorgeschlagen – dieser pastellfarbene Block mit
7:23
Anführungszeichen. Das ist ein „String-Block“ – und ein String ist einfach Text. Da der Block ja die
7:30
Beschriftung des Schalters ändern soll, wird uns vorgeschlagen, dass wir Text eingeben.
7:35
Hier oben gibt es zudem eine große Auswahl an weiteren möglichen Strings, mit denen
7:39
unterschiedliche Texteingaben möglich sind. Wir könnten jeden dieser Blocks mit passendem Slot
7:45
auswählen und den String-Block ersetzen.
7:48
Wenn wir die Farbe des Schalters ändern wollten, würde der Block eine Farbauswahl vorschlagen.
7:54
Wie du siehst, stehen hier viele Auswahlmöglichkeiten für verschiedene Werte zur Verfügung: ein
7:59
Block für Text, für Zahlen, für richtig oder falsch und verschiedene Möglichkeiten zur Farbauswahl.
8:05
Um aber unser Beispiel einfach zu halten stellen wir unseren Block zurück auf die Option „Legend“,
8:10
bei der wir eine Beschriftung für unseren Schalter eingeben können. Ich schreibe hier mal „ON“.
8:16
Schauen wir mal, ob das funktioniert hat. Wie bei allen Steuerungen in Q-Sys Designer können wir in
8:22
den Emulationsmodus wechseln, um unser Design zu testen. Zurück im Schema siehst du, dass wir
8:27
keine weiteren Schalter in unserem Block Controller hinzuzufügen oder ändern können. Das geht nur
8:34
Jetzt klicken wir unseren Schalter an – tada! Er trägt nun das Label „ON“. Aber jetzt bekommt er
8:40
immer diese Beschriftung, selbst, wenn wir ausschalten. Das liegt daran, dass unser sehr kurzes Skript
8:45
genau das definiert: Setze bei JEDER Änderung das Label auf „ON“
8:51
Wir haben also bisher nichts gemacht, was wir nicht auch einfach damit hätten lösen können, den
8:55
Schalter direkt zu beschriften. Wir müssen also noch einen weiteren Bedingungs-Block hinzufügen,
9:00
der es uns erlaubt, das Label basierend auf dem Status auch in „OFF“ zu ändern.
9:06
Bevor wir aber weitermachen, legen wir eine Pause ein. Wir haben bisher die grundlegenden
9:11
Einstellmöglichkeiten des Block Controller kennengelernt und gesehen, wie wir einzelne Blöcke
9:15
verbinden. Im nächsten Video werden wir weitere Block-Typen kennenlernen, die komplexere
9:20
Funktionen abbilden können. Mach einfach weiter, wenn du bereit bist.