Linux EIB Home Server
Dokumentation
Autoren:
Vladimir Vinarski (volodimir@users.sourceforge.net)
Jens Neumann (jneumann@users.sourceforge.net)
Stand |
Datum |
Bearbeiter |
Anlass |
0.1 |
13.03.02 |
V.Vinarskyi J. Neumann |
Erstellung |
0.2 |
16.06.03 |
J.Neumann |
Dokumentation für SourceForge |
0.3 |
01.04.04 |
V.Vinarski J.Neumann |
Ergänzungen und Korrekturen |
0.4 |
21.06.04 |
J.Neumann |
Teilweise neue Klassennamen und Anpassung der entsprechenden Abbildungen |
·Beispielapplikationen
·Unterstützung aller EIB-Datentypen
·UPnP-Unterstützung
·Windows Version
·Internet-Anbindung
·Handy- / SMS-Interface
·BCU 1 Unterstützung
·...
5.1.1 Die
Schnittstellen zu Clients
5.1.2 Die interne
Schnittstelle „homeserver <-> homedriver“
5.2.1
Schnittstelle zwischen Linux EIB Home
Server und EIB-Bus
5.3 Beteiligte
Dateien des homedriver und homeserver
5.4
Modulbeschreibung: homedriver
5.4.2 Klassen und
deren Assoziationen
5.4.3 Klassen,
Attribute und Methoden
5.5
Modulbeschreibung: homeserver
5.5.2 Klassen und
deren Assoziationen
5.5.3 Klassen,
Attribute und Methoden
Abbildung
2: Die Klassen des homedrivers und deren Assoziationen.
Abbildung
3: Die Treiber-Klasse
Abbildung
4: Die Verbindungsklasse
Abbildung
5: Vererbungshierarchie der Zustands-Klassen.
Abbildung
7: Vererbungshierarchie der Nachrichten-Klassen.
Abbildung 8
Exceptions des homedrivers.
Abbildung 9
Klassendiagramm des homeserver.
Abbildung
10 Die Klasse HomeServer
Abbildung
12 Die Klasse DatenBank.
Abbildung
13 Die Klasse Driver.
Abbildung
14 Die Klasse DriverMessages.
Abbildung
15 Die Klasse Client.
Abbildung
16 Die Klasse ClientMessages
Abbildung
17 Die Klasse Interest.
Abbildung
18 Die Klasse PathData.
Abbildung
19 Die Klasse Instruction.
Der Linux EIB Home Server bietet Schnittstellen für die Steuerung und Überwachung einer EIB-Installation.
Der Europäische Installationsbus (EIB) dient der automatischen Steuerung der Funktionen in Wohn- und Zweckbauten. Der EIB trennt klar die Übertragung von elektrischer Energie und Information. Neben einem Stromnetz werden alle EIB-Sensoren und Aktoren über ein zusätzliches informationsübertragendes Netzwerk miteinander verbunden, über das der gesamte Informationsaustausch stattfindet.
Die Zuordnung zwischen Betätigungselement und Verbraucher ist über das Netzwerk programmierbar und beliebig oft veränderbar. Für den Betrieb wird kein zentrales Busmanagement benötigt. Die Verwaltung und Speicherung aller Daten erfolgt dezentralisiert in den einzelnen Busgeräten. Jedoch stehen alle Informationen des EIB-Netzes bei Bedarf an jedem Punkt lückenlos zur Verfügung, so dass eine Integration der Elektroinstallation in ein Überwachungs- und Steuerungssystem, z.B. Embassi [1], ohne zusätzliche Installationskosten möglich ist.
Der Home Server besteht im Wesentlichen aus zwei Komponenten (siehe Abbildung 1):
-homedriver: Steuerung des EIB-Bus und Kommunikationsschnittstelle zwischen dem Home-Server und den EIB-Bus, d.h. den Geräten.
-homeserver: Kommunikationsschnittstelle zwischen den Anwendungsprogrammen, im Folgenden auch als Clients bezeichnet, und dem homedriver. Die Anzahl der Anwendungsprogramme ist unbegrenzt.
|
Nachrichten- bzw. Informations-Verlauf:
EIB bus -> FT 1.2 Datenschnittstelle -> homedriver -> homeserver -> Clients
Client -> homeserver -> homedriver -> -> FT 1.2 Datenschnittstelle -> EIB-Bus
Bei den Clients ist prinzipiell zwischen normalen Anwendungsprogrammen und HTTP-Clients zu unterscheiden. Die Anzahl der Clients ist unbegrenzt.
Die beiden Komponenten homedriver und homeserver verwenden unterschiedliche zusätzliche Bibliotheken:
-lfc: Eine Collection -Klassen Bibliothek (Strings, HashMaps, Queues, Vectoren, ...) die intern vom homedriver benutzt wird.
-vector: Eine Collection-Klassen Bibliothek (String, Vector, Array, ...) die intern von homeserver benutzt wird.
-ixml: XML-DOM Parser (von Intel [2])
Ein Client ist ein belibiger Prozess, der eine tcp/ip-Verbindung zum homeserver aufbaut und die in diesem Kapitel beschriebenen Befehle zum homeserver sendet.
Es gibt folgende Befehle:
·„read“ um momentane Zustände von EIB-Geräten, d.h. EIB-Gruppenadressen, abzufragen.
·„write“ um den Zustand von EIB-Geräten, d.h. EIB-Gruppenadressen, zu setzen.
·„subscribe“ um vom Home-Server über jede Zustandsänderungen eines EIB-Gerätes, genauer einer EIB-Gruppenadresse, informiert zu werden.
·„unsubscribe“ um die ständige Benachrichtigung durch den Home-Server (siehe „subscribe“-Befehl) aufzuheben.
Beispiel READ:
Ziel: Den Wert der (Geräte mit der) Gruppenadresse 2/0/2 ermitteln.
Format:
<eib
type="read" path="/eib/groups/2/0/2/curvalue"/>
Antwort vom HomeServer:
<eib
state="true"
path="database.value/eib/groups/2/0/2/curvalue"
data="0"/>
(falls der momentane Wert der zugehörigen Gruppenadresse 0 beträgt.)
Fehlerantwort:
<eib state="false"
path="database.value/eib/groups/2/0/2"
error="$error0007"/>
Fehlerantwort bei falschem Befehl:
<eib
state="false" error="instruction isn't correct"/>
Beispiel WRITE:
Ziel: Der Wert der Gruppenadresse 2/0/2 soll auf „11“ gesetzt werden., d.h. die zugehörigen Geräte entsprechend umgeschaltet.
Format:
<eib
type="write" path="/eib/groups/2/0/2/curvalue"
data="11">
Antwort vom HomeServer:
<eib
state="true" path="database.value/eib/groups/2/0/2/curvalue"
data="11"/>
Fehlerantwort: siehe READ.
Beispiel SUBSCRIBE:
Ziel: Der Client möchte den Wert der Gruppenadresse 2/1/0 überwachen,d.h über alle Änderungen (der Geräte mit) dieser Gruppenadresse informiert werden.
Format:
<eib
type="subscribe" path="/eib/groups/2/1/0"/>
Antwort vom
Home-Server:
<eib state="true"
type="subscribe" path="/eib/groups/2/1/0"/>
Anschliessend bekommt der Client alle bestellten Nachrichten.
Fehlerantwort: siehe READ.
Dieser Befehl unterstützt Platzhalter, d.h. mit
<eib
type="subscribe" path="*"/>
bestellt man alle Nachrichten vom EIB-Bus, d.h. alle Gruppenadressen werden überwacht.
Antwort vom Server:
<eib
state="true" type="subscribe" path="*"/>
Beispiel UNSUBSCRIBE:
Ziel: Aufhebung eines SUBSCRIBE-Befehls.
Format:
<eib
type="unsubscribe" path="/eib/groups/2/1/0"/>
Antwort vom Server:
<eib
state="true" type="unsubscribe"
path="/eib/groups/2/1/0"/>
Auch hier werden Platzhalter unterstützt, d.h. mit
<eib
type="unsubscribe" path="*"/>
bestellt man alle Nachrichten vom EIB-Bus ab.
Antwort vom Server:
<eib
state="true" type="unsubscribe" path="*"/>
Bemerkungen:
Die Verbindung zum Client besteht bis der Client selber die Socketverbindung schliesst.
Der Read-Befehl wirkt gleichzeitig als SUBSCRIBE-Befehl !!!
Format des Befehles (wenn der Home-Server auf einem Rechner mit der IP-Adresse 192.168.169.33 läuft):
http://192.168.169.33:8080/eibhomeserver?instruction=<eib
type="read" path="/eib/groups/2/0/2/curvalue"/>
Nach instruction= muß entweder der oben beschriebene vollständige
READ- oder WRITE-Befehl (siehe voriges Kapitel) folgen. Ein HTTP-Client kann keine SUBSCRIBE- oder UNSUBSCRIBE-Befehle
auszuführen!
Antwort vom HomeServer:
HTTP/1.0 200 OK
Server: Loewe HomeServer 1.0
MIME-version: 1.0
Content-type: text/html
<html><script>var
answer='<eib state="true"
path="database.value/eib/groups/2/0/2/curvalue"
data="11"/>’;</script></html>
Ein Beispiel für einen Write-Befehl:
http://192.168.169.33:8080/eibhomeserver?instruction=<eib
type="write" path="/eib/groups/2/0/2/curvalue"
data="11"/>
Antwort vom HomeServer:
HTTP/1.0 200 OK
Server: Loewe HomeServer 1.0
MIME-version: 1.0
Content-type: text/html
<html><script>var
answer='<eib state="true"
path="database.value/eib/groups/2/0/2/curvalue"
data="11"/>';</script></html>
Fehlerantwort:
HTTP/1.0 200 OK
Server: Loewe HomeServer 1.0
MIME-version: 1.0
Content-type: text/html
<html><script>var
answer='<eib state="false" error="instruction isn't
correct"/>';</script></html>
Bemerkungen:
Die Verbindung zur HTTP-Applikation wird nach der Antwort durch den Linux EIB Home Server geschlossen.
Zwischen homedriver und homeserver werden Datentelegramme folgenden Formats ausgetauscht (siehe dazu auch EIBA Handbuch [3]):
Das Telegramm besteht aus 12 oder mehr Bytes:
Byte 0(type): definiert den Typ des Telegrammes
0: EIB-Message
1: Interne Message zwischen homedriver und homeserver.
Byte 1 (total length): Gesammte Länge der Message vom 2. Byte bis zum Checksum-Byte.
Byte 2 (control
field): defaultmäßig
0x9c.
Bytes 3, 4 (source address): definiert die Adresse der Quelle des
Telegrammes
Bytes 5, 6 (group address): definiert die Adresse des Empfängers des Telegrammes
Bytes 7 (routing counter / length): Dieses Byte ist ein kombiniertes Feld, das aus dem Teil “routing counter” und „data length“ besteht. Defaultmäßig ist routing counter = [110] und definiert die Bits Nummer 6,5 und 4. Das Bit 7 definiert Gruppenadressierung bzw. physikalische Adressierung (1 bedeutet Gruppenadressierung). Die Bits 3, 2, 1 und 0 sind Längen- Bits und definieren die gesammte Anzahl Bytes für den übertragenden Wert. Bei length = 1 wird z.B. nur sogenannte short user data übertragen.
Byte 8 (transport control field / APCI ): defaultmäßig gleich 0, wobei die Bits 7, 6, 5, 4, 3, 2 zum transport control field gehören, die Bits 1 und 0 den Anfang des APCI definieren.
Byte 9 (APCI / short user data ): 2 Bits (Nummer 7 und 6) definieren den Rest des APCI und 6 Bits (Nummer 5, 4, 3, 2, 1, 0) das Feld short user data. Das Feld short user data wird nur dann verwendet, wenn der zu übertragen Wert mit 6 Bits dargestellt werden kann, sonst benutzt man das user data Byte (oder Bytes), welches die Nummer 10 hat (die Nummern 10, 11 hat).
Byte 10 (Bytes 10, 11, ... – user data): Definiert die zu übertragen Daten, falls diese nicht mit 6 Bits dargestelt werden können.
Abschliessendes Byte (checksum): Eine spezielle Checksumme der Bytes von Byte 2 bis zum Checksum-Byte. Es wird die Bit-Funktion (not (b0 Å b1 Å b2 Å ... Å bn) ) verwendet, wobei „Å“ die Bit-Operation „xor“ bedeutet.
Der homedriver leitet die Nachrichten vom homeserver auf den EIB-Bus weiter, wobei dem Telegramm zusätzliche Header der anderen OSI-Layer hinzugefügt werden. (siehe EIBA-Handbuch [3])
Der homedriver kommuniziert mit dem EIB-Bus über eine FT1.2 kompatible Datenschnittstelle. Das FT1.2 Übertragungsprotokoll basiert auf den internationalen Standards IEC 870-5-1 und 870-5-2 (DIN 19244) (siehe EIBA Handbuch [3]). Der Anschluß der Schnittstelle an den PC erfolgt über die serielle Schnittstelle, der Anschluß an den EIB-Bus über eine sogenannte „Bus-Access-Unit“ (BAU) vom Typ 2 (siehe EIBA Handbuch, Kapitel 9/4/2, [3]).
Der homedriver setzt die Datenschnittstelle in den sogenannten Busmonitor-Modus. In diesem Modus werden alle Nachrichten auf dem EIB-Bus an den homedriver weitergeleitet. Dadurch registriert der Linux EIB Home Server jede Änderung in der angeschlossenen EIB-Installation.
Jede Busmonitor-Nachricht wird vom homedriver zum homeserver weitergeleitet. Andere Nachrichten werden vom homedriver verarbeitet.
Modul / Include-File / Source-File |
Beschreibung |
homeserver/include/client.h homeserver/src/client.cpp |
Kommunikation mit den verschiedenen Klienten. Klienten sind alle Programme, die den EIB-Bus steuern wollen oder Informationen über die EIB-Installation benötigen. Lauschen nach neuen Klienten. |
homeserver/include/homeserver.h homeserver/src /datenbank.cpp |
Kommunikation des homeservers mit einer internen Datenbank. |
homeserver/include/homeserver.h homeserver/src/driver.cpp |
Kommunikation mit dem homedriver. Der homedriver stellt dem homeserver die Verbindung zum EIB-Bus zur Verfügung. |
homeserver/include/homeserver.h homeserver/src/homeserver.cpp |
Die zentrale Klasse des homeservers. Verwaltet alle Prozesse im homeserver. |
homedriver/main/eibmain.cpp |
Main-Programm des homedrivers. Kann zum Starten des homedrivers verwendet werden. Der homedriver kann aber auch als Thread in einem anderen Programm aufgerufen werden. |
homedriver/include/eibdriver.h homedriver/src/eibdriver.cpp |
Zentrale Klasse des homedrivers. Startet alle Threads und Verwaltung sowohl die Verbindung zum homeserver als auch zum EIB-Bus. |
homedriver/include/eibsocket.h homedriver/src/eibsocket.cpp |
Verbindung zum homeserver über einen Socket. |
homedriver/include/
eibconnection .h homedriver/src/eibconnection.cpp |
Serielle RS232-Verbindung zum EIB-Bus. |
homedriver/include/
eibstate .h homedriver/src/eibstate.cpp |
Status der FT1.2-Verbindung zum EIB-Bus |
homedriver/include/
eibmessage .h homedriver/src/eibmessage.cpp |
EIB-Nachrichtenformate |
homedriver/include/eibexception
.h homedriver/src/eibexception.cpp |
Fehler- und Ausnahmezustände |
homedriver/include/
eibstd.h |
Verschiedene Definitionen zur Fehlerausgabe oder Nachrichtenformate oder Standard-Schnittstellen und Ports. |
Der homedriver hat zwei Aufgaben:
1.Er empfängt „Write“- und „Read“-Anfragen sowie „Response“-Nachrichten von dem homeserver und leitet diese an den EIB-Bus weiter
a.Write: Der Wert einer Gruppenadresse wird in den entsprechenden Geräten verändert.
b.Read: Der Wert einer Gruppenadresse wird gelesen.
2.Der homedriver leitet empfangene „Busmonitor“-Nachrichten an den homeserver weiter.
Der homedriver kann als selbstandiges Programm gestartet werden oder in einem anderen Programm aufgerufen werden:
1.Selbstandiges
Programm: Dazu kompiliert man die Datei eibmain.cpp und erhält ein ausführbares
Programm. Beim Start können mehrere Parameter angegeben werden. Syntax:
homedriver
[–d device] [–p portnumber] [–f inputfile outputfile]
device: Gibt die serielle Schnittstelle zum EIB-bus an, z.B. /dev/ttyS4
portnumber: Gibt den Port für die Socketverbindung zum homeserver an.
inputfile, outputfile: Für Simulationszwecke kann aus bzw. in eine Datei
gelesen bzw. geschrieben werden. Dieser Modus ist sinnvoll, wenn kein
EIB-Anschluß zur Verfügung steht. Die Dateien müssen existieren. An einem
reinen Simulationsmodus ohne Dateien wird gearbeitet. Die Option –f darf nicht
mit –d angegeben werden.
Alle Parameter sind optional.
Ohne Parameter gelten die Defaultwerte:
device:
/dev/ttyS0
portnumber: 8083
2.Aufruf von
anderem Programm: Dazu instanziiert man ein Objekt des homedriver durch Aufruf der statischen Methode:
EibDriver::createInstance(
int portNumber, char* inputDevice, char* outputDevice, bool simulation)
portnumber: Gibt den Port für die Socketverbindung zum homeserver an.
inputDevice: Gibt die serielle Schnittstelle zum EIB-bus an, z.B. /dev/ttyS1,
oder eine Eingabedatei.
outputDevice: Gibt die serielle Schnittstelle zum EIB-bus an, z.B. /dev/ttyS1,
oder eine Ausgabedatei.
simulation: True für Simulation, d.h. input/outputDevice sind Dateien. False
für Realbetrieb, d.h input/ouputdevice gibt die gleiche serielle Schnittstelle
an.
Das Klassendiagramm in Abbildung 2 zeigt die Klassen des Moduls homedriver und die Beziehungen der einzelnen Klassen zueinander. Bis auf die beiden Klassen EibReceiveMessage und EibSendMessage, die die zu versendenden und empfangenen EIBNachrichten repräsentieren, sind alle anderen Klassen als Singleton realisiert. Aus diesem Grund entspricht das Klassendiagramm nahezu dem Objektdiagramm.
Der homedriver kommuniziert mit dem homeserver über einen Socket. Die Standardeinstellung für den Port ist 8083. Der Socket wird in der Klasse EibDriverSocket realisiert, von der ein Objekt instanziiert wird.
Ein Thread schreibt Nachrichten in den Socket und ein anderer Thread liest Nachrichten von dem Socket. Alle Nachrichten werden in zwei Nachrichtenschlangen gehalten, die durch die Klasse lfcdllist der LFC realisiert sind. Auf den EIB-Bus zu versendende Nachrichten werden durch die Klasse EibSendMessage implementiert und empfangene Nachrichten durch die Klasse EibReceiveMessage.
Der homedriver kommuniziert mit dem EIB-Bus über die serielle Schnittstelle. Während der Initialisierungsphase des Systems wird die FT1.2 Datenschnittstelle durch entsprechende Nachrichten in den Busmonitormodus geschaltet. Anschließend empfängt der homedriver sämliche Nachrichten, die auf dem EIB-Bus gesendet werden. Er quittiert jede Nachricht mit einem Acknowledge. Die Verbindung zum EIB-Bus wird durch die Klasse EibConnection repräsentiert. Der Zustand der Verbindung wird durch eine Klasse beschrieben, die sich von der abstrakten Basisklasse EibState ableitet.
Abbildung 2: Die Klassen des homedrivers und deren Assoziationen.
Momentan gibt es die Verbindungszustände
1.EibStateReady: Nachrichten können empfangen und versendet werden.
2.EibStateSent: Es ist ein Write- (siehe 1.a in Kapitel 5.4.1) oder Response-Befehl (siehe 1.c in Kapitel 5.4.1) an die BAU versendet worden. Es kann keine weitere Nachricht versendet werden. Der homedriver wartet auf das Acknowledge der BAU. Wenn das Acknowledge empfangen wird, kehrt der homedriver in den State EibStateReady zurück. Wird innerhalb von 200ms kein Acknowledge empfangen, wird die Nachricht bis zu dreimal wiederholt. Nach vier erfolglosen Versuchen wird die gesamte Verbindung neu initialisiert.
3.EibStateRequest: Es ist ein Read-Befehl (siehe in Kapitel ) an die BAU versendet worden. Es kann keine weitere Nachricht versendet werden. Der homedriver wartet auf das Acknowledge der BAU. Wird innerhalb einer bestimmten Zeit kein Acknowledge empfangen, wird die Nachricht bis zu dreimal wiederholt. Nach vier erfolglosen Versuchen wird die gesamte Verbindung neu initialisiert.
4.EibStateWait: Ein Acknowledge für einen Read-Befehl wurde empfangen. Der homedriver wartet auf eine Response von einem Gerät. Es kann keine weitere Nachricht versendet werden. Wenn die Response empfangen wird oder nach einem bestimmten TimeOut (siehe EIBA Handbuch [3]), kehrt der homedriver in den State EibStateReady zurück.
Von allen empfangenen Busmonitor-Nachrichten wird der FT1.2-Protokoll-Rahmen, das Status-Byte und der TimeStamp entfernt und die Nachricht an den homeserver weitergeleitet. Vorher werden Wiederholungen aussortiert. Das Nachrichtenformat ist in Kapitel beschriebenen.
Die Methoden der Klasse EibDriver sind in Abbildung 3 dargestellt.
Abbildung 3: Die Treiber-Klasse
Die Methoden der Klasse EibConnection sind in Abbildung 4 dargestellt.
Abbildung 4: Die Verbindungsklasse
Die Methoden der Klasse EibState, und die zugehörige Vererbungshierarchie ist in Abbildung 5 dargestellt.
Abbildung 5: Vererbungshierarchie der Zustands-Klassen.
Die Methoden der Klasse EibSocket sind in Abbildung 6 dargestellt.
Abbildung 6: Die Socketklasse
Die Klasse EibMessage und die davon abgeleiteten Klassen sind in Abbildung 7 dargestellt.
Abbildung 7: Vererbungshierarchie der Nachrichten-Klassen.
Die Klasse EibException und die davon abgeleiteten Klassen sind in Abbildung 7 dargestellt.
Abbildung 8 Exceptions des homedrivers.
In dem Modul homedriver gibt es bis auf main() keine Funktionen, die nicht „Klassenmember-Methoden“ sind. Die Beschreibung der Klassenmember-Methoden“ findet man bei den jeweiligen Klassen.
Der homedriver lässt sich von außen entweder
·über die Methode run() der Klasse EibDriver
·oder über die Main-Routine in der Datei eibmain.cpp
starten (siehe dazu Kapitel ). Die Dokumentation der Klassen bzw. Methoden findet man im Quellcode.
Der homeserver hat zwei Aufgaben:
1.Er kommuniziert über TCP/IP bzw. HTTP mit Applikationen (siehe Abschnitt 5.1.1)
2.Er kommuniziert mit dem homedriver (siehe voriger Abschnitt 5.4)
3.Er verwaltet die Datenbank mit den Gruppenadressen und aktuellen Werten.
Der homeserver speichert die aktuellen Werte der Gruppenadresse in einer XML-Datenbank. Die Datenbank wird in einer Datei (Defaultname:eibdb.xml) abgelegt. In diese Datei müssen bei der Installation des Servers einmalig die Daten der EIB-Installation eingetragen werden. Während des Betriebs werden die Werte der konfigurierten Gruppenadressen ständig in der Datenbank aktualisiert und die Datei eibdb.xml gelegentlich synchronisiert.
Die Synchronisationsintervalle können beim Start mit dem Parameter
-s <Anzahl in Sekunden>
angegeben werden ( Deafult: -s 300,
d.h. Synchronisation alle 5 Minuten, falls überhaupt Änderungen vorliegen.
Keine Synchronisation durch -s 0).
Syntax:
homeserver
-dr driver-host -db database -dp driver-port -ap applications-port
-wp http-port -s synctimeout
Beschreibung der Parameter:
•driverhost: IP-Addresse oder Name des Rechners, auf dem der homedriver läuft (homedriver und homeserver können auf unterschiedlichen Rechnern gestartet werden.)
•driver-port: IP-Port des homedrivers.
•database: Name der Datenbank-Datei
•applications-port: Port für TCP/IP-Anwendungen
•http-port:Port für HTTP-Anwendungen
•synctimeout: Synchronisations-Intervall der Datenbank (siehe oben)
Default-Werte:
driverhost: localhost
driver-port: 8083
database: eibdb.xml
applications-port: 8081
http-port:
8080
synctimeout: 300 (in sec)
Das Klassendiagramm in Abbildung 9 zeigt die Klassen des Moduls homeserver und die Beziehungen der einzelnen Klassen zueinander.
|
Die Methoden der Klasse
HomeServer sind in Abbildung
10dargestellt.
|
Die Methoden der Klasse DatenBank
sind in Abbildung
12 dargestellt.
Abbildung
12 Die Klasse
DatenBank.
Die Methoden der Klasse Driver
sind in Abbildung
13 dargestellt.
Abbildung
13 Die Klasse
Driver.
Die Methoden der Klasse
DriverMessages sind in Abbildung
14 dargestellt.
Abbildung
14 Die Klasse
DriverMessages.
Die Methoden der Klasse Client
sind in Abbildung
15 dargestellt.
Abbildung
15 Die Klasse
Client.
Die Methoden der Klasse
ClientMessages sind in Abbildung
16 dargestellt.
Abbildung
16 Die Klasse
ClientMessages
Die Methoden der Klasse Interest
sind in Abbildung
17 dargestellt.
Abbildung
17 Die Klasse
Interest.
Die Methoden der Klasse PathData
sind in Abbildung
18 dargestellt.
Abbildung
18 Die Klasse
PathData.
Die Methoden der Klasse
Instruction sind in Abbildung
19 dargestellt.
Abbildung 19 Die Klasse Instruction.
[1]BMBF-Leitprojekt „Eletronische Multimediale Bedienassistenz“ (Embassi) www.embassi.de
[2]Intel: The Universal Plug and Play
(UPnP) SDK for Linux, http://sourceforge.net/projects/upnp/
[3]EIB Association: www.eiba.org