TCP Client/Server Library

Module import: from tcpcom import *

Klasse TCPServer

server = TCPServer(port, stateChanged, isVerbose = False) erzeugt einen TCP-Socket-Server, der auf dem TCP-Port port auf Clients hört. Zustandsänderungen rufen stateChanged() auf. Für isVerbose = True werden Debug-Mitteilungen im Ausgabefenster ausgeschrieben
stateChanged(state, msg)

Callback, der bei Zustandsänderungen aufgerufen wird.
state: TCPServer.PORT_IN_USE, msg: port
state: TCPServer.CONNECTED, msg: IP Adresse des Clients
state: TCPServer.LISTENING, msg: port
state: TCPSever.TERMINATED, msg: leer
state: TCPServer.MESSAGE, msg: vom Client erhaltene Message (String)

server.disconnect() beendet die Verbindung mit dem Client und geht in den LISTENING-Zustand
server.isConnected() gibt True zurück, falls ein Client mit dem Server verbunden ist
server.terminate() beendet die Verbindung und den LISTENNG-Zustand, gibt den IP-Port frei
server.isTerminated() gibt True zurück, falls der Server terminiert wurde
server.sendMessage(msg) sendet die Information msg zum Client (als String, das Zeichen \0 (ASCII 0) dient als Endzeichen, automatisch transparent hinzugefügt und wieder entfernt).
TCPServer.getVersion() gibt die Version des Moduls als String zurück


Klasse TCPClient

client = TCPClient(ipAddress, port, stateChanged, isVerbose = False)

erzeugt einen TCP-Socket-Client, der für eine Verbindung mit einem TCPServer mit der IP-Adresse ipAddress (String) und dem TCP-Port port vorbereitet ist. Zustandsänderungen rufen stateChanged() auf. Für isVerbose = True werden Debug-Messages im Ausgabefenster ausgeschrieben

stateChanged(state, msg) Callback, der bei Zustandsänderungen aufgerufen wird.
state: TCPClient.CONNECTING, msg: IP Adresse:Port des Servers
state: TCPClient.CONNECTION_FAILED, msg: IP Adresse:Port des Servers
state: TCPClient.CONNECTED, msg: IP Adresse:Port des Servers
state: TCPClient.SERVER_OCCUPIED, msg: IP Adresse:Port des Servers
state: TCPClient.DISCONNECTED, msg: leer
state: TCPClient.MESSAGE, msg: vom Server erhaltene Message (String)
client.connect() erstellt eine Verbindung zum Server (blockierend bis Timeout). Gibt True zurück, falls die Verbindung zustande gekommen ist, sonst wird False zurückgegeben
client.connect(timeout) dasselbe, aber Angabe des Timeouts (in s) für den Verbindungsversuch
client.isConnecting() gibt True zurück, während der Client einen Verbindungsversuch unternimmt
client.isConnected() gibt True zurück, falls der Client mit einem Server verbunden ist
client.disconnect() beendet die Verbindung mit dem Server
client.sendMessage(msg, responseTime) sendet die Information msg zum Server (als String, das Zeichen \0 (ASCII 0) dient als Endzeichen, automatisch transparent hinzugefügt und wieder entfernt). Für responseTime > 0 ist die Methode blockierend und erwartet innerhalb von responseTime (in s) eine Antwort. Die Antwort wird als Rückgabewert geliefert. Falls die Antwort nicht ankommt, wird None zurückgegeben
TCPClient.getVersion() gibt die Version des Moduls als String zurück

 

Bluetooth Client/Server Library

Module import: from btcom import *

Klasse BTServer

server = BTServer(serviceName, stateChanged, isVerbose = False) erzeugt einen Bluetooth-Server, der den RFCOMM-Service mit dem Namen serviceName anbietet. Zustandsänderungen rufen stateChanged() auf. Für isVerbose = True werden Debug-Mitteilungen im Ausgabefenster ausgeschrieben
stateChanged(state, msg)

Callback, der bei Zustandsänderungen aufgerufen wird.
state: "LISTENING" , msg: leer
state: "CONNECTED", msg: Remote info: Bluetooth name (MAC-Adresse)
state: "TERMINATED", msg: leer
state: "MESSAGE", msg: erhaltene Message

server.disconnect() beendet die Verbindung mit dem Client und geht in den LISTENING-Zustand
server.isConnected() gibt True zurück, falls ein Client mit dem Server verbunden ist
server.terminate() beendet den LISTENING-Zustand und gibt interne Ressourcen frei
server.isTerminated() gibt True zurück, falls der Server terminiert wurde
server.sendMessage(msg) sendet die Information msg zum Client (als String, das Zeichen \0 (ASCII 0) dient als Endzeichen, automatisch transparent hinzugefügt und wieder entfernt).
BTServer.getVersion() gibt die Version des Moduls als String zurück


Klasse BTClient

client = BTClient(stateChanged, isVerbose = False)

erzeugt einen Bluetooth-Client, der für eine Verbindung mit einem BTServer vorbereitet ist. Zustandsänderungen rufen stateChanged() auf. Für isVerbose = True werden Debug-Messages im Ausgabefenster ausgeschrieben

client.findServer(serverName, timeout) führt eine Bluetooth-Inquiry durch, um den Server mit dem gegebenen Bluetooth-Namen zu finden. Gibt das Tupel serverInfo zurück: ("nn:nn:nn:nn:nn:nn", channel) , z.B. ("B8:27:EB:04:A6:7E", 1). Falls der Server nicht antwortet, wird None zurückgegeben. Die Suche wird bis zum Erreichen des timeout (in s) wiederholt
client.findService(serviceName, timeout) führt eine Bluetooth-Inquiry durch, um einen Bluetooth-Server mit dem gegebenen RFCOMM-Servicenamen zu finden. Gibt das Tupel serverInfo zurück: ("nn:nn:nn:nn:nn:nn", channel) , z.B. ("B8:27:EB:04:A6:7E", 1). Falls der server nicht antwortet, wird None zurückgegeben. Die Suche wird bis zum Erreichen des timeout (in s) wiederholt
stateChanged(state, msg) Callback, der bei Zustandsänderungen aufgerufen wird.
state: "CONNECTING" , msg: server info (MAC-Adresse, Bluetooth-Kanal)
state: "CONNECTED" , msg: server info
state: "CONNECTION_FAILED", msg: sever info
state: "DISCONNECTED", msg: leer
state: "MESSAGE", msg: erhaltene Message
client.connect(serverInfo, timeout) erstellt eine Verbindung zum Server (blockierend bis maximal timeout in s). Gibt True zurück, falls die Verbindung zustande gekommen ist, sonst wird False zurückgegeben. serverInfo ist ein Tupel mit MAC-Adresse und Kanal ("nn:nn:nn:nn:nn:nn", channel) , z.B. ("B8:27:EB:04:A6:7E", 1)
client.isConnecting() gibt True zurück, während der Client einen Verbindungsversuch unternimmt
client.isConnected() gibt True zurück, falls der Client mit einem Server verbunden ist
client.disconnect() schliesst die Verbindung mit dem Server
client.sendMessage(msg,) sendet die Information msg zum Server (als String, das Zeichen \0 (ASCII 0) dient als Endzeichen, automatisch transparent hinzugefügt und wieder entfernt).
BTClient.getVersion() gibt die Version des Moduls als String zurück