Übungsbeschreibung
 
            Block Controller A             
            9m 27s             
          Dein Einstieg in das revolutionäre Programmierwerkzeug, den Block Controller: Übersicht zur Navigation und Arbeit mit einfachen Buttons mithilfe von Steuerblocks.
Video Transkript
 
            Block Controller A             
            9m 27s             
          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:48
 „AMAZING“ wieder.
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:01
 so weiter.
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:24
 zusammenzusetzen.
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 
3:58
 Skriptfehler.
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:30
 Blöcke ineinander.
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:32
 im Design-Modus.
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.
Downloads & Links
 
            Block Controller A             
            9m 27s             
                  
