Integrierte Komponenten

ORBIT bringt einige integrierte Komponenten mit. Diese gliedern sich in die folgenden Bereiche:

Common

Dieses Modul enthält einige Komponenten für den allgemeinen Einsatz.

Enthalten sind die folgenden Komponenten:

EventCallbackComponent

class orbit_framework.components.common.EventCallbackComponent(name, slot, callback, **nargs)

Diese Komponente wartet mit Hilfe eines Empfangsmusters auf Nachrichten, und ruft ein Callback auf, wenn eine passende Nachricht eintrifft.

Parameter

name
Der Name der Komponente.
slot
Das Empfangsmuster für den Empfang der Nachrichten.
callback
Eine parameterlose Funktion.

Timer

Dieses Modul enthält einige Komponenten für die zeitabhängige Steuerung.

Enthalten sind die folgenden Komponenten:

ActivityTimerComponent

class orbit_framework.components.timer.ActivityTimerComponent(name, slot, initial_state=True, timeout=6, **nargs)

Diese Komponente schaltet zwischen den zwei Zuständen aktiv und inaktiv um und versendet Nachrichten bei einer Änderung des Zustands. Der Zustand wird durch Nachrichtenaktivität gesteuert. Dazu empfängt die Komponente Nachrichten mit einem Empfangsmuster und schaltet auf aktiv, sobald eine Nachricht eintrifft. Vergeht eine vorgegebene Zeitspanne ohne eingehende Nachrichten, schaltet die Komponente auf inaktiv.

Parameter

name
Der Name der Komponente.
slot
Das Empfangsmuster für den Empfang der Nachrichten.
initial_state (optional)
Der Anfangszustand der Komponente. Mögliche Werte sind True für aktiv und False für inaktiv. Standardwert ist True für aktiv.
timeout
Die Zeitspanne in Sekunden ohne Nachrichten, bis die Komponente in den Zustand inaktiv wechselt.

Nachrichten

Wenn die Komponente in den Zustand aktiv wechselt, werden die folgenden beiden Nachrichten versandt:

  • name: 'state', value: True
  • name: 'on', value: None

Wenn die Komponente in den Zustand inaktiv wechselt, werden die folgenden beiden Nachrichten versandt:

  • name: 'state', value: False
  • name: 'off', value: None

IntervalTimerComponent

class orbit_framework.components.timer.IntervalTimerComponent(name, interval=1, **nargs)

Diese Komponente implementiert einen Zeitgeber, der in regelmäßigen Abständen eine Nachricht versendet.

Parameter

name
Der Name der Komponente.
interval
Das Interval für den Nachrichtenversand in Sekunden.

Nachrichten

Die Komponente sendet im angegebenen Intervall die folgende Nachricht:

  • name: 'timer', value: Der Zeitpunkt an dem die Nachricht versandt wurde.

LCD

Dieses Modul enthält einige Komponenten für die Steuerung von LCD-Displays.

Enthalten sind die folgenden Komponenten:

LCD20x4ButtonsComponent

class orbit_framework.components.lcd.LCD20x4ButtonsComponent(name, **nargs)

Diese Komponente reagiert auf Tastendruck an allen angeschlossenen LCD-20x4-Displays und versendet entsprechende Nachrichten.

Parameter

name
Der Name der Komponente.

Nachrichten

Wenn eine Taste gedrückt wird, versendet die Komponente die folgende Nachricht:

name: 'button_pressed', value: (uid, no)

Wenn eine Taste losgelassen wird, versendet die Komponente die folgende Nachricht:

name: 'button_released', value: (uid, no)

Der Nachrichteninhalt ist jeweils ein Tupel aus UID des LCD-Displays und der Tastennummer.

LCD20x4BacklightComponent

class orbit_framework.components.lcd.LCD20x4BacklightComponent(name, slot, initial_state=False, **nargs)

Diese Komponente schaltet die Hintergrundbeleuchtung aller angeschlossener LCD-20x4-Displays entsprechend dem Nachrichteninhalt eintreffender Nachrichten.

Parameter

name
Der Name der Komponente.
slot
Das Empfangsmuster für den Nachrichtenempfang.
initial_state (optional)
Der Anfangszustand der Hintergrundbeleuchtung. Mögliche Werte sind True für eingeschaltet und False für ausgeschaltet. Der Standardwert ist False.

Beschreibung

Trifft eine Nachricht ein, die dem abgegebenen Empfangsmuster entspricht, wird der Nachrichteninhalt entsprechend der Python-Semantik als Wahrheitswert interpretiert. Ist der Wert Wahr, wird die Hintergrundbeleuchtung für aller angeschlossenen LCD-20x4-Displays eingeschaltet, andernfalls wird sie ausgeschaltet.

LCD20x4WatchComponent

class orbit_framework.components.lcd.LCD20x4WatchComponent(name, slot, lcd_uid=None, lines={0: '%d.%m.%Y %H:%M:%S'}, **nargs)

Diese Komponente zeigt beim Eintreffen einer Nachricht auf einem oder allen LCD-20x4-Displays eine formatierte Uhrzeit an.

Parameter

name
Der Name der Komponente.
slot
Das Empfangsmuster für den Nachrichtenempfang.
lcd_uid (optional)
Die UID eines LCD-20x4-Displays oder None. Wird None angegeben, wird die Uhrzeit auf allen angeschlossenen Displays angezeigt. Der Standardwert ist None.
lines (optional)
Ein Dictionary welches eine Zeilennummer auf eine Formatierungszeichenkette abbildet. Die Zeilennummer gibt die 0-basierte Zeile im LCD-Display an. Die Formatierungszeichenkette muss der Formatierungssyntax von datetime.strftime() entsprechen. Standardwert ist {0: '%d.%m.%Y  %H:%M:%S'}.

Beschreibung

Sobald eine Nachricht empfangen wird, die dem angegebenen Empfangsmuster entspricht, wird die aktuelle Uhrzeit mit dem im Parameter lines angegebenen Format formatiert angezeigt. Wenn für Parameter lcd_uid eine UID übergeben wird, wird die Uhrzeit nur auf dem Display mit dieser UID angezeigt, andernfalls wird die Uhrzeit auf allen angeschlossenen LCD-20x4-Displays angezeigt.

LCD20x4MessageComponent

class orbit_framework.components.lcd.LCD20x4MessageComponent(name, lines, lcd_uid=None, **nargs)

Diese Komponente zeigt eine konstante Nachricht auf einem oder allen LCD-20x4-Displays an.

Parameter

name
Der Name der Komponente.
slot
Das Empfangsmuster für den Nachrichtenempfang.
lcd_uid (optional)
Die UID eines LCD-20x4-Displays oder None. Wird None angegeben, wird die Nachricht auf allen angeschlossenen Displays angezeigt. Der Standardwert ist None.
lines
Eine Sequenz mit Zeichenketten. Es werden maximal 4 Zeichenketten ausgegeben. Ist eine Zeichenkette länger als 20 Zeichen, wird der Rest abgeschnitten.

Beschreibung

Sobald eine Nachricht empfangen wird, die dem angegebenen Empfangsmuster entspricht, wird die Nachricht aus dem Parameter lines angezeigt. Wenn für Parameter lcd_uid eine UID übergeben wird, wird die Nachricht nur auf dem Display mit dieser UID angezeigt, andernfalls wird die Nachricht auf allen angeschlossenen LCD-20x4-Displays angezeigt.

LCD20x4MenuComponent

class orbit_framework.components.lcd.LCD20x4MenuComponent(name, lcd_uid=None, entries=[('None', 'none')], **nargs)

Diese Komponente stellt ein Menü mit bis zu 8 Menüpunkten auf einem LCD-20x4-Display zur Verfügung. Die Navigation im Menü erfolgt mit Hilfe der 4 Tasten des LCD-20x4-Bricklets. Wird ein Menüpunkt ausgewählt, wird eine Nachricht mit der ID des gewählten Menüpunktes versandt.

Parameter

name
Der Name der Komponente.
lcd_uid (optional)
Die UID eines LCD-20x4-Displays oder None.
entries (optional)
Eine Sequenz von Menüpunkten. Jeder Menüpunkt wird durch ein Tuple aus zwei Zeichenketten definiert. Die erste Zeichenkette ist die Beschriftung des Menüpunktes und die zweite Zeichekette ist die ID des Menüpunktes. Der Standardwert ist [('None', 'none')].

Beschreibung

Wenn für den Parameter lcd_uid eine UID übergeben wird, wird das Menü auf dem Display mit der angegebenen UID angezeigt, andernfalls wird es auf dem ersten angeschlossenen LCD-20x4-Display angezeigt.

Die Navigation im Menü erfolgt mit den vier Tasten am Display. Die Tasten sind von links nach rechts zwischen 0 und 3 durchnummeriert. Die Tasten sind wie folgt belegt:

  1. Escape oder Verlassen - sendet eine Nachricht mit dem Ereignisnamen 'escape'.
  2. Zurück - markiert den vorhergehenden Menüpunkt.
  3. Vorwärts - markiert den nächsten Menüpunkt.
  4. Enter oder Auswählen - sendet eine Nachricht mit der ID des Menüpunkts als Ereignisname.

Nachrichten

Wenn die Taste 0 gedrückt wird, sendet die Komponente die folgende Nachricht:

  • name: 'escape', value: None

Wenn die Taste 3 gedrückt wird, sendet die Komponente die folgende Nachricht:

  • name: '<ID>', value: None

Wobei <ID> durch die ID des aktuell markierten Menüpunkts ersetzt wird.

Remote Switch

Dieses Modul enthält Komponenten für die Steuerung mit einem Remote-Switch-Bricklet.

Enthalten sind die folgenden Komponenten:

RemoteSwitchComponent

class orbit_framework.components.remoteswitch.RemoteSwitchComponent(name, group, socket, on_slot, off_slot, typ='A', switch_uid=None, **nargs)

Diese Komponente steuert eine Funksteckdose mit Hilfe des Remote-Switch-Bricklets wenn Nachrichten über das Nachrichtensystem empfangen werden.

Parameter

name
Der Name der Komponente.
group
Die Gruppennummer der Funksteckdose.
socket
Die ID der Funksteckdose.
on_slot
Ein Empfangsmuster welches die Funksteckdose einschalten soll.
on_off
Ein Emfpangsmuster welches die Funksteckdose ausschalten soll.
typ (optional)
Der Typ der Funksteckdose. Mögliche Werte sind 'A', 'B' oder 'C'. Der Standardwert ist 'A'. Mehr Informationen zu Steckdosentypen sind in der Remote-Switch-Dokumentation zu finden.
switch_uid (optional)
Die UID des Remote-Switch-Bricklets oder None für den ersten der gefunden wird. Der Standardwert ist None.

Beschreibung

Wenn eine Nachricht mit dem Empfangsmuster von on_slot eintrifft, wird der Einschaltbefehl an die angegebene Steckdose gesendet. Wenn eine Nachricht mit dem Empfangsmuster von off_slot eintrifft, wird der Ausschaltbefehl an die angegebene Steckdose gesendet.

Siehe auch: Remote-Switch-Dokumentation