Util
Die Kategorie Util beinhaltet bei ROBO Pro Coding Blöcke folgender Art:
- Farbauswahl
- Warten
- Python Code
- Funktionsausführung
- Zeitstempel
Die Kategorie Util beinhaltet bei ROBO Pro Coding Blöcke folgender Art:
Dieser Block dient als Eingabewert, wenn nach einer Farbe gefragt wird (z.B. beim Farbabgleich durch die Kamera). Durch Klicken bzw. Tippen auf die Farbe kann aus einer Farbpalette ausgewählt werden.
Der Block "warte ... " hindert das Programm für die angegebene Wartezeit daran, weiterzulaufen. Dabei kann im Dropdown-Menü (kleines Dreieck) die Zeiteinheit und im Eingabefeld dahinter die gewünschte Länge der Pause gewählt werden. Im untenstehenden Beispiel wird beispielsweise eine Wartezeit von einer Sekunde festgelegt.
Beim "warte bis"-Block ist die Pause nicht an die Zeit, sondern an die Erfüllung einer Bedingung (z.B. ob ein Taster gedrückt ist) geknüpft. Die Bedingung wird an den "warte bis"-Block angehängt.
Im gezeigten Beispiel lautet die Bedingung "ist Mini-Taster RX_L1 geöffnet". Das führt dazu, dass das Programm anhält und wartet, dass der Mini-Taster RX_L1 in den Zustand "geöffnet" übergeht, bevor das Programm weitermacht.
Möchte man bestehenden Python-Code in ROBO Pro Coding integrieren, so kann man ihn in den "Python Code"-Block einfügen. Das Programm führt dann alles aus, was in dem Block in Python geschrieben wurde. Der Block "Python-Importe" ermöglicht es, notwendige Bibliotheken zu importieren, die für die Ausführung des Codes erforderlich sind.
In dem Beispiel wird der euklidische Algorithmus zur Bestimmung des größten gemeinsamen Teilers (GGT) zweier Zahlen dargestellt. Innerhalb des Blocks wird Python-Code geschrieben. Eine while-Schleife beginnt, die solange läuft, bis b nicht gleich 0 ist. Dies ist der Kern des euklidischen Algorithmus, bei dem wiederholt der Rest der Division von a durch b berechnet wird, und a und b dann aktualisiert werden. a bekommt den Wert von b, und b den Rest der Division a % b. Sobald b 0 wird (was bedeutet, dass kein Rest mehr vorhanden ist und der Algorithmus sein Ende erreicht hat), ist der Wert in a der GGT der ursprünglich eingegebenen Werte 60 und 48, also 12.
Mit dem "führe Funktion ... in einem Thread aus"-Block lässt sich die ausgewählte Funktion in einem separaten Thread ausführen. Ein Thread ist im Wesentlichen ein Weg für ein Programm, mehrere Aufgaben gleichzeitig (parallel) auszuführen. Diese Maßnahme kann zum Beispiel ermöglichen, dass ein Programm weiterhin auf Eingaben reagieren kann, während es andere zeitaufwendige Aufgaben ausführt.
Das unten stehende Beispiel zeigt, wie eine Python-Funktion in einem separaten Thread ausgeführt werden kann, um Mehrfachaufgaben innerhalb des Programms zu ermöglichen. Zunächst wird eine Funktion "etwas tun" definiert und diese wird dann in einem Thread gestartet. Die Funktion "etwas tun" beinhaltet Python-Code, der eine zeitaufwendige Aufgabe simuliert. Durch das Verwenden des Threads kann die zeitaufwendige Funktion im Hintergrund ausgeführt werden, während der Hauptthread weiterläuft. Dies verhindert, dass das gesamte Programm während der Ausführung der Funktion für 10 Sekunden blockiert wird. Unmittelbar nach dem Starten des Threads druckt das Hauptprogramm den Text "Der Text wird direkt ausgegeben!". Da der Hauptthread durch den Start des Nebenthreads nicht blockiert wird, erfolgt diese Ausgabe sofort, ohne auf das Ende der Funktion etwas tun zu warten.
Der Block "Zeitstempel" wird verwendet, um den aktuellen Zeitpunkt (in Sekunden oder Millisekunden seit dem Beginn der Programmausführung) zu erfassen. Dies wird typischerweise genutzt, um einen genauen Zeitpunkt zu markieren, an dem etwas im Programm beginnt oder endet. Der Zeitstempel wird in einer Variablen gespeichert und kann verwendet werden, um die Dauer von Ereignissen zu messen, indem man die Differenz zwischen einem Anfangs- und einem Endzeitstempel berechnet.
Im Beispiel wird der Zeitstempel genutzt, um die Dauer der Methode "etwas tun" zu messen. Die Verwendung der Start- und Endzeitstempel ermöglicht es, genau zu bestimmen, wie lange die durch den "etwas tun"-Block repräsentierte Aktion dauert.