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
dict_device
Device Dictionary mit allen IO/mems aus der piCtory Konfiguration - kwargs
kwargs
Folgende optionale Keyword-Parameter können übergeben werden:- autoupdate
autoupdate
Devicedaten werden aus Prozessabbild mit aktualisiert, wenn dies über RevPiDeviceList veranlasst wird. - simulator
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
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
address
Byteadresse auf dem Device
get_iobyname(name)
Gibt das IO-Objekt mit angegebenen Namen zurück
- name
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
inp_name
Name des Inputs als str(), der überwacht werden soll - func
func
Funktion, die ausgelöst wird, wenn sich der Intputwert ändert - kwargs
kwargs
Folgende optionale Keyword-Parameter können übergeben werden:- as_thread
as_thread
Führt die Funktion als RevPiCallback-Thread aus - edge
edge
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
inp_name
Name des Inputs als str(), dessen Überwachung deaktiviert werden soll. - func
func
Nur Events mit angegebener Funktion löschen - edge
edge
Nur Events mit angegebener Funktion und angegebener Edge löschen