HSL 2.0-Framework
Beschreibung des Frameworks
Öffentliche Methoden | Aufstellung aller Elemente
hsl20_4_udp.hsl20_4_udp.Unicast Klassenreferenz

Alle Methoden für die Kommunikation per UDP-Unicast. Mehr ...

Abgeleitet von hsl20_4_udp.hsl20_4_udp.UdpBase.

Öffentliche Methoden

def set_address (self, ip, port)
 Setzt die Adresse, unter der Daten empfangen werden können. Mehr ...
 
def send_to (self, data, ip, port)
 Sendet Daten an die angegebene Adresse. Mehr ...
 
- Öffentliche Methoden geerbt von hsl20_4_udp.hsl20_4_udp.UdpBase
def __init__ (self, framework, context_map)
 Konstruktor. Mehr ...
 
def set_on_data (self, callback)
 Setzt einen Callback für den Datenempfang. Mehr ...
 
def set_on_error (self, callback)
 Setzt einen Callback für den Fehlerfall. Mehr ...
 
def start_server (self)
 Startet den UDP-Empfangsserver. Mehr ...
 

Ausführliche Beschreibung

Alle Methoden für die Kommunikation per UDP-Unicast.

Veraltet:
Diese Klasse sollte nicht mehr eingesetzt werden.

Bietet die Kommunikation per UDP/IP in beide Richtungen.

Wird abgeleitet von UdpBase.

Beispiel 1

class UDP_Server(hsl20_4.BaseModule):
def __init__(self, homeserver_context):
...
def on_init(self):
self.server=None
def on_input_value(self, index, value):
if index == self.PIN_I_START:
if self.server == None:
self.server = self.FRAMEWORK.create_udp_unicast()
self.server.set_address("", int(self._get_input_value(self.PIN_I_PORT)))
self.server.set_on_data(self.on_data)
self.server.start_server()
def on_data(self, data, addr):
self._set_output_value(self.PIN_O_RECV_DATA, data)

In Beispiel 1 wird beim Eintreffen eines Telegramms auf Eingang 1 (PIN_I_START) ein UDP-Server gestartet. Dieser horcht auf dem Port, der durch Eingang 2 (PIN_I_PORT) festgelegt ist. Alle auf diesem Port eintreffenden UDP-Telegramme werden auf Ausgang 1 (PIN_O_RECV_DATA) ausgegeben.

Beispiel 2

class UDP_Client(hsl20_4.BaseModule):
def __init__(self, homeserver_context):
...
def on_init(self):
self.client=None
def on_input_value(self, index, value):
if index == self.PIN_I_DATA:
if self.client == None:
self.client = self.FRAMEWORK.create_udp_unicast()
self.client.send_to(value, self._get_input_value(self.PIN_I_IP), int(self._get_input_value(self.PIN_I_PORT)))

Beispiel 2 beinhaltet einen einfachen UDP-Client. Trifft auf Eingang 1 (PIN_I_DATA) ein Telegramm ein, wird dieses per UDP versendet. Über die Eingänge 2 (PIN_I_IP) und 3 (PIN_I_PORT) wird der Zielrechner bestimmt.

Zu beachten
Die Klasse arbeitet asynchron. Keine der angebotenen Methoden blockiert.

Dokumentation der Elementfunktionen

◆ send_to()

def hsl20_4_udp.hsl20_4_udp.Unicast.send_to (   self,
  data,
  ip,
  port 
)

Sendet Daten an die angegebene Adresse.

Parameter
datastring
Daten
ipstring
IP-Adresse des Ziels.
portint
IP-Port des Ziels.

◆ set_address()

def hsl20_4_udp.hsl20_4_udp.Unicast.set_address (   self,
  ip,
  port 
)

Setzt die Adresse, unter der Daten empfangen werden können.

Parameter
ipstring
IP-Adresse. Wird ein Leerstring angegeben, werden die Daten unter der HomeServer-Netzwerkadresse empfangen.
portint
IP-Port, unter dem die Daten empfangen und gesendet werden können.
Ausnahmebehandlung
RuntimeError
Wird diese Methode aufgerufen während der Server bereits gestartet wurde, wird eine RuntimeError-Exception ausgelöst.

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: