RevPiDevice

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 Konfiguration
  • kwargs 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 soll
  • func Funktion, die ausgelöst wird, wenn sich der Intputwert ändert
  • kwargs Folgende optionale Keyword-Parameter können übergeben werden:
    • as_thread Führt die Funktion als RevPiCallback-Thread aus
    • 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 Name des Inputs als str(), dessen Überwachung deaktiviert werden soll.
  • func Nur Events mit angegebener Funktion löschen
  • edge Nur Events mit angegebener Funktion und angegebener Edge löschen