Diese Klasse beherbergt alle Inputs, Outputs und Mems als RevPiIO-Objekte, welche von der Klasse RevPiIOBase abgeleitet werden.
Klassen, die von RevPiDevice erben:
- Diese Klasse wird direkt verwendet für DIO / DI / DO Module.
- RevPiCore bildet das RevPi Core Modul ab.
- RevPiGateway bildet je ein Gateway Modul ab.
Alle hier genannten Attribute und Funktionen sind auch in den erbenden Klassen verfügbar.
class RevPiDevice(dict_device, **kwargs)
dict_device
Device Dictionary mit allen IO/mems aus der piCtory Konfigurationkwargs
Folgende optionale Keyword-Parameter können übergeben werden:autoupdate
Devicedaten werden aus Prozessabbild mit aktualisiert, wenn dies über RevPiDeviceList veranlasst wird.simulator
Läd das Modul als Simulator und vertauscht IOs
Alle Werte werden von der RevPiDeviceList-Klasse übergeben.
Folgende Attribute werden bereitgestellt:
autoupdate
Dieser Wert bestimmt, ob die Prozessabbildaktualisierung dieses Devices durch den zentralen Aufruf von readprocimg(), updateprocimg(), writeprocimg() oder syncoutputs() der Klasse RevPiDevicelist durchgeführt werden soll. Der Standardwert zur Instanziierung ist True.
length
Gibt die Bytelänge des Devices im Prozessabbild zurück
name
Gibt den Devicename aus piCtory zurück
position
Gibt die piCtory Position zurück
Folgende Funktionen werden bereitgestellt:
get_inps()
Gibt eine Liste aller Inputs auf diesem Device zurück
get_iobyabsaddress(address)
Gibt eine Liste zurück, die alle IO-Objekte an dem angegebenen Byte enthält. Dabei ist das nullte Byte, auch das nullte Byte im gesamten Prozessabbild!
WICHTIG: Siehe auch get_iobyaddress()
!
address
Byteadresse im Prozessabbild
get_iobyaddress(address)
Gibt eine Liste zurück, die alle IO-Objekte an dem angegebenen Byte enthält. Dabei ist das nullte Byte, auch das nullte Byte auf diesem Device!
WICHTIG: Die Liste kann leer sein, wenn an dem Byte kein IO liegt, z.B. ist sie auch leer, wenn sich ein IO über mehrere Bytes erstreckt und das angegebene Byte eine der überspannten Bytes ist. Sie kann genau ein Elemente enthalten, welches auch mehrere Bytes lang sein kann. Sie kann genau 8 Einträge enthalten, wenn auf dem Byte Bits definiert sind. Dabei sind definierte Bits ein RevPiIOBase-Objekt und nicht definierte Bits ein None()-Objekt!
address
Byteadresse auf dem Device
get_iobyname(name)
Gibt das IO-Objekt mit angegebenen Namen zurück
name
Name für das IO-Objekt
get_mems()
Gibt eine Liste aller Mems auf diesem Device zurück
get_outs()
Gibt eine Liste aller Outputs auf diesem Device zurück
reg_event(inp_name, func, **kwargs)
Registriert eine Funktion, die bei Änderung des angegebenen Inputs ausgelöst werden soll. Das Eventhandling findet nur statt, wenn das Programm sich im RevPiDevicelist.mainloop() befindet.
inp_name
Name des Inputs als str(), der überwacht werden sollfunc
Funktion, die ausgelöst wird, wenn sich der Intputwert ändertkwargs
Folgende optionale Keyword-Parameter können übergeben werden:as_thread
Führt die Funktion als RevPiCallback-Thread ausedge
Ausführen bei RISING, FALLING oder BOTH Wertänderung (nur für BIT Inputs)
unreg_event(inp_name, [func, edge])
Entfernt den Input aus dem Eventhandling und ruft dessen Funktion bei Datenänderung nicht mehr auf
inp_name
Name des Inputs als str(), dessen Überwachung deaktiviert werden soll.func
Nur Events mit angegebener Funktion löschenedge
Nur Events mit angegebener Funktion und angegebener Edge löschen