Dieses Modul implementiert den Gerätemanager von ORBIT.
Das Modul umfasst die folgenden Klassen:
Darüber hinaus enthält es einige Hilfsfunktionen für den Umgang mit TinkerForge-Gerätetypen:
Diese Klasse implementiert den Gerätemanager einer ORBIT-Anwendung.
Parameter
Beschreibung
Der Gerätemanager baut eine Verbindung zu einem TinkerForge-Server auf, ermittelt die angeschlossenen Bricks und Bricklets und stellt den Komponenten in den Jobs die jeweils geforderten Geräte zur Verfügung.
Dabei behält der Gerätemanager die Kontrolle über den Gerätezugriff. Das bedeutet, dass der Gerätemanager die Autorität hat, einer Komponente ein Gerät zur Verügung zu stellen, aber auch wieder zu entziehen.
Eine Komponente bekommt ein von ihm angefordertes Gerät i.d.R. dann zugewiesen, wenn die Komponente aktiv und das Gerät verfügbar ist. Wird die Verbindung zum TinkerForge-Server unterbrochen oder verliert der TinkerForge-Server die Verbindung zum Master-Brick (USB-Kabel herausgezogen), entzieht der Gerätemanager der Komponente automatisch das Gerät, so dass eine Komponente i.d.R. keine Verbindungsprobleme behandeln muss.
Umgesetzt wird dieses Konzept mit Hilfe der Klassen SingleDeviceHandle und MultiDeviceHandle.
Richtet eine Callback-Funktion für ein Ereignis eines Bricks oder eines Bricklets ein.
Parameter
Beschreibung
Da jedes Ereignis andere Ereignisparameter besitzt, muss die richtige Signatur für die Callbackfunktion der TinkerForge-Dokumentation entnommen werden. Die Ereignisparameter werden in der API-Dokumentation für jeden Brick und jedes Bricklet im Abschnitt Callbacks beschrieben.
Bemerkung
Der Gerätemanager stellt einen zentralen Mechanismus für die Registrierung von Callbacks für Geräteereignisse zur Verfügung, weil die TinkerForge-Geräteklassen nur ein Callback per Ereignis zulassen. Der Gerätemanager hingegen unterstützt beliebig viele Callbacks für ein Ereignis eines Gerätes.
Siehe auch: remove_device_callback()
Richtet eine Abschlussfunktion für einen Brick- oder Bricklet-Typ ein.
Parameter
Beschreibung
Sobald der Gerätemanager die Verbindung zu einem Gerät selbstständig aufgibt (d.h. die Verbindung nicht durch eine Störung unterbrochen wurde), ruft er alle Abschlussfunktionen für die entsprechende Geräte-ID auf.
Siehe auch: add_device_initializer()
Richtet eine Initialisierungsfunktion für einen Brick- oder Bricklet-Typ ein.
Parameter
Beschreibung
Sobald der Gerätemanager ein neues Gerät entdeckt, zu dem er bisher keine Verbindung aufgebaut hatte, ruft er alle Initialisierungsfunktionen für die entsprechende Geräte-ID auf.
Siehe auch: add_device_finalizer()
Richtet eine Geräteanforderung (Geräte-Handle) ein.
Eine Geräteanforderung ist eine Instanz einer Sub-Klasse von DeviceHandle. Das kann entweder eine Instanz von SingleDeviceHandle oder von MultiDeviceHandle sein.
Das übergebene Geräte-Handle wird über alle neu entdeckten Geräte mit einem Aufruf von DeviceHandle.on_bind_device() benachrichtigt. Je nach Konfiguration nimmt das Handle das neue Gerät an oder ignoriert es. Verliert der Gerätemanager die Verbindung zu einem Gerät, wird das Geräte-Handle ebenfalls mit einem Aufruf von DeviceHandle.on_unbind_device() benachrichtigt.
Siehe auch: remove_handle()
Ein Dictionary mit allen zur Zeit verfügbaren Geräten. Die UID des Geräts ist der Schlüssel und der Wert ist eine Instanz der TinkerForge-Geräte-Klasse (wie z.B. tinkerforge.bricklet_lcd_20x4.BrickletLCD20x4).
Entfernt eine Callback-Funktion von einem Ereignis eines Bricks oder eines Bricklets.
Parameter
Beschreibung
Für die Aufhebung des Callbacks muss die gleiche Funktionsreferenz übergeben werden wie bei der Einrichtung des Callback.
Siehe auch: add_device_callback()
Entfernt eine Geräteanforderung (Geräte-Handle).
Eine Geräteanforderung ist eine Instanz einer Sub-Klasse von DeviceHandle. Das kann entweder eine Instanz von SingleDeviceHandle oder von MultiDeviceHandle sein.
Siehe auch: add_handle()
Startet den Gerätemanager und baut eine Verbindung zu einem TinkerForge-Server auf. Die Verbindungdaten für den Server werden der ORBIT-Konfiguration entnommen.
Gibt True zurück, wenn die Verbindung aufgebaut werden konnte, sonst False.
Siehe auch: stop()
Trennt die Verbindung zum TinkerForge-Server und beendet den Gerätemanager.
Vor dem Trennen der Verbindung wird die Zuordnung zwischen den Geräten und den Komponenten aufgehoben.
Siehe auch: start()
Schreibt eine Nachverfolgungsmeldung mit dem Ursprung DeviceManager auf die Konsole.
Diese Klasse ist die Basisklasse für Geräteanforderungen.
Anstelle diese Klasse direkt zu verwenden, werden die beiden Kindklassen SingleDeviceHandle und MultiDeviceHandle verwendet.
Parameter
Beschreibung
Eine Geräteanforderung repräsentiert die Fähigkeit einer Komponente mit einem Typ von TinkerForge-Brick(let)s zu kommunizieren. Sie entbindet die Komponente aber von der Aufgabe die Verbindung zu den Brick(let)s zu verwalten. Die Komponente wird durch Callbacks darüber informiert, ab wann ein Brick(let) verfügbar ist und ab wann es nicht mehr verfügbar ist. Eine Geräteanforderung kann mehrere Brick(let)s gleichen Typs umfassen. Eine Komponente kann jederzeit alle verfügbaren Brick(let)s einer Geräteanforderung abfragen und ansteuern.
Geräteanforderungen verwalten auch Ereignis-Callbacks für Brick(let)s. Eine Komponente kann durch den Aufruf von register_callback() ein Callback für ein Brick(let)-Ereignis einrichten und die Geräteanforderung übernimmt gemeinsam mit dem DeviceManager die Verwaltung.
Siehe auch: SingleDeviceHandle, MultiDeviceHandle, orbit_framework.Component.add_device_handle(), register_callback()
Nimmt ein Gerät in die Geräteanforderung auf. Wird von on_bind_device() aufgerufen.
Siehe auch: on_bind_device()
Gibt eine Liste mit allen verfügbaren Brick(let)s zurück.
Ein Brick(let) wird durch ein Objekt der entsprechenden TinkerForge-Geräteklasse (wie z.B. tinkerforge.bricklet_lcd_20x4.BrickletLCD20x4) repräsentiert.
Führt eine Funktion für alle verfügbaren Geräte dieser Geräteanforderung aus.
Gibt den Namen der Geräteanforderung zurück.
Wird aufgerufen, wenn die Geräteanforderung im DeviceManager registriert wurde.
Bemerkung
Kann von einer abgeleiteten Klasse überschrieben werden. Eine überschreibende Methode muss jedoch die Implementierung der Elternklasse aufrufen.
Siehe auch: DeviceManager.add_handle(), on_remove_handle()
Wird aufgerufen, wenn ein beliebiges Gerät verfügbar wird.
Bemerkung
Muss von einer abgeleiteten Klasse überschrieben werden.
Eine Implementierung muss die Methode accept_device() für alle Geräte aufrufen, die der Geräteanforderung entsprechen.
Siehe auch: accept_device()
Wird aufgerufen, wenn die Geräteanforderung im DeviceManager deregistriert wurde.
Bemerkung
Kann von einer abgeleiteten Klasse überschrieben werden. Eine überschreibende Methode muss jedoch die Implementierung der Elternklasse aufrufen.
Siehe auch: DeviceManager.remove_handle(), on_add_handle()
Wird aufgerufen, wenn ein beliebiges Gerät nicht mehr verfügbar ist.
Ruft die Methode release_device() auf, wenn das Gerät in dieser Geräteanforderung gebunden ist.
Siehe auch: release_device()
Richtet ein Callback für ein Brick(let)-Ereignis ein.
Parameter
Beschreibung
Für jeden Ereignis-Code kann in jeder Geräteanforderung immer nur ein Callback registriert werden. Das Callback wird immer aufgerufen, sobald ein verfügbares Brick(let) dieser Geräteanforderung das beschriebene Ereignis auslöst.
Siehe auch: unregister_callback(), DeviceManager.add_device_callback()
Wird aufgerufen, wenn ein Gerät aus der Geräteanforderung nicht mehr verfügbar ist.
Bemerkung
Kann von einer abgeleiteten Klasse überschrieben werden. Eine überschreibende Methode muss jedoch die Implementierung der Elternklasse aufrufen.
Siehe auch: on_unbind_device()
Meldet ein Callback von einem Brick(let)-Ereignis ab.
Parameter
Siehe auch: register_callback(), DeviceManager.remove_device_callback()
Eine Geräteanforderung für ein einzelnes Brick(let).
Parameter
Gibt an, ob nach der Bindung zwischen einem Gerät und der Geräteanforderung andere Geräte gebunden werden dürfen.
Mögliche Werte sind True, wenn nach dem ersten gebundenen Gerät andere Geräte gebunden werden dürfen, und False, wenn nach einer Bindung nur noch dieses Gerät gebunden werden darf. Der Standardwert ist False.
Beschreibung
Diese Variante einer Geräteanforderung akzeptiert zu jeder Zeit immer nur ein Gerät. Wird keine UID angegeben, um ein konkretes Brick(let) zu beschreiben, wird das erste Brick(let) des angegebenen Gerätetyps aktzeptiert. Wird die Verbindung zum gebundenen Gerät getrennt, entscheidet der Parameter auto_fix ob anschließend das nächste verfügbare Gerät mit dem passenden Typ akzeptiert wird oder ob solange gewartet wird, bis das vormals gebundene Brick(let) wieder verfügbar wird.
Siehe auch: DeviceHandle, MultiDeviceHandle
Gibt das gebundene Brick(let) oder None zurück.
Ein Brick(let) wird durch ein Objekt der entsprechenden TinkerForge-Geräteklasse (wie z.B. tinkerforge.bricklet_lcd_20x4.BrickletLCD20x4) repräsentiert.
Eine Geräteanforderung für alle Brick(let)s eines Typs.
Parameter
Beschreibung
Diese Variante einer Geräteanforderung akzeptiert alle Geräte des angegebenen Gerätetyps.
Siehe auch: DeviceHandle, SingleDeviceHandle
Ermittelt die Geräte-ID für einen Gerätetyp. Es kann der Name des Gerätetyps oder die Geräte-ID übergeben werden.
Gibt die Geräte-ID für einen Namen zurück.
Erzeugt eine TinkerForge-Binding-Instanz anhand der Geräte-ID, der UID und der Verbindung.
Gibt den Namen eines Gerätetyps anhand der Geräte-ID zurück.
Überprüft ob eine Geräte-ID bekannt ist.