EHID für Entwickler
Wollen Sie den EHID einfach nur benutzten. Dann sehen Sie sich doch die Seite EHID für Endnutzer an.
Der EHID stellt eine Abstraktionsebene für die Kommunikation zwischen Applikationen und Simulationshardware zur Verfügung.
Situation ohne EHID
Im Simulationsbereich gibt es keine definierte Schnittstelle zwischen proprietäre Hardware und proprietäre Software. Jeder Hersteller von Simulationshardware muss für die unterschiedlichen Simulatoren wie MS FS9, MS FSX, X-Plane usw. unterschiedliche Treiber mit unterschiedlichem Funktionsumfang herstellen und pflegen. Auf der anderen Seite gibt es unzählige Autoren von Erweiterungen die verschiedene Funktionen der Simulatoren wirklichkeitsgetreuer gestalten. Dazu muss wiederum mit verschiedene Methoden jeder Simulator getrennt angesprochen werden.
Zumindest zu den Microsoft Flugsimulatoren steht mit FSUIPC von Peter Dawson eine viel verwendete Schnittstelle zur Verfügung. Diese bildet aber im Wesentlichen einige Variablen des Flugsimulator ab. Es gelingt kein dedizierte Zugriff auf einzelne Schalter, Knöpfe und die anderen Bedienelemente in einem Flugzeug.
Genau dies ist beim EHID anders.
Situation mit EHID
Der EHID schafft eine gut dokumentierte Schnittstelle mittels der einzelne Hardwarekomponenten angesprochen werden können, ohne eine zusätzliche funktionale Logik mit einzubringen.
Im Klartext heißt das, ein Schalter mit drei Schaltstellungen kann die Werte 0,1 oder 2 annehmen unabhängig von anderen Objekten, der Vorgeschichte oder eines wie auf immer gearteten Betriebsmodus. Der EHID erkennt die Position des Schalter und schickt immer dann eine Nachricht an die Applikation, wenn der Schalter seine Position verändert. Ebenso funktioniert es in der anderen Richtung. Die Applikation beauftragt den EHID z.B. eine LED einzuschalten und der EHID kümmert sich darum, dass die LED eingeschaltet wird.
Jedem Bedienelement eines A320 und B737 Cockpits, ob Schalter, Anzeige, Bremse, Schubhebel oder Instrumentenzeiger, ist eine eindeutige Nummer zugewiesen und grafisch dokumentiert. So kann eine Applikation auf einfachste Weise spezifische Funktionen ansprechen und ein passendes Gerät kann ohne weiteres die Verbindung zur realen Welt herstellen.
Mit diesem Konzept müssen Hardwareentwickler nur eine einzige Umsetzung für EHID implementieren und Softwareentwickler müssen sich nicht mit den Eigenheiten einer Hardware oder der Schnittstelle dazu auseinandersetzen.
Virtuelle Geräte mit EHID
Jeder Simulator stellt eine eigene Konfiguration dar. Es sind nicht immer alle Geräte vorhanden und nicht jede denkbare Erweiterung ist installiert. Als zusätzliches Feature sind im EHID Virtuelle Geräte definiert. An diese Geräte können Ausgaben gesendet und Schalterzustände abgefragt werden ohne das ein physikalisches Gerät vorhanden ist. Sobald ein passendes Gerät angeschlossen wird, kümmert sich der EHID um den Abgleich, ohne das der Entwickler dafür spezielle Funktionen vorsehen muss.
Gleichzeitig können aber auch andere Programme das virtuelle Gerät ansprechen. So können GUI basierende Geräte programmiert werden, ohne dass für die Applikation ein Unterschied zu einem echten Gerät zu erkennen wäre.
Module im EHID
Darüber hinaus können Applikationen, Treiber und andere auf EHID aufbauende Applikationen als Module mit in den EHID eingebunden werden. So kann der EHID um zusätzliche Funktionen erweitert werden, als wären sie direkt integriert.
Ein Schlüssel dazu sind virtuellen Objekte, die auch Basis für die virtuellen Geräte sind. Sie dienen als Platzhalter solange das tatsächlichen Objekt nicht mit dem EHID verbunden ist. Sie können aber auch abstraktere Funktionen abbilden und z.B. Objekte definieren, die nicht der eigentlichen Bedienung dienen. So kann z.B. der Druck eines Hydraulikkreises abgebildet werden.
Mit diesen virtuellen Objekten ist es also möglich eine definierte Schnittstelle zwischen verschieden Modulen auch auf einer komplexeren Ebene zu implementieren. So könnte ein Modul z.B. die Funktionen des Funksystems abbilden und so z.B. die aktive Frequenz des NAV-Radios abbilden. Eine Applikation kann sich dann auf die eigentliche Funktionalität beschränken. Wie der Benutzer diese Frequenz an welchen Radio eingegeben hat, ist nicht mehr von Interesse.
Darüber hinaus gibt es die Möglichkeit Objekte von zahlreichen Applikation mehrfach anzusprechen. So kann das Modul eines anderen Herstellers als Basis benutzt werden, um mit einem eigenen Modul zusätzliche Funktionen nachzurüsten oder bestehende abzuändern.
Wie funktioniert der EHID
Der EHID läuft als Programm innerhalb es Windows Systems. Die gesamte Kommunikation mit dem EHID erfolgt über TCP/IP, wobei es möglich ist mehrere EHID auf unterschiedlichen Rechnern zu starten und anzusprechen. Applikationen, die mit dem EHID verbunden werden, können in jeder Programmiersprache geschrieben sein und auf jeder Plattform ablaufen, solange eine TCP/IP-Kommunikation möglich ist.
Als eindeutige Identifikation einzelner Objekte dient eine 32-Bit Objekt-Id, die bei Bedarf auf 64-Bit oder mehr erweitert werden kann. Einige wenige Nachrichten ermöglichen unter Angabe der Objekt-Id das Verändern von Werten. Dabei können auch Wildcards verwendet werden, um mehrere Events gleichzeitig zu setzten. Sobald sich ein Eingabeelement ändert sendet der EHID ebenfalls unter Angabe der Objekt-ID eine entsprechende Nachricht an die Applikation.
Unterstützung für Entwickler
Um Herstellern von Applikationen und Modulen den Einstieg in die Verwendung von EHID zu erleichtern, bieten wir ein komplettes Entwicklungskit mit Beispiel-Sourcen für Applikationen und Module und der kompletten Dokumentation an.
Zusätzlich bietet der EHID die Möglichkeit zur Rechteverwaltung mittels Zertifikaten und Schlüsseln. Jeder Softwarehersteller kann individuell bestimmen in welchem Umfang er wem welche Funktionen zur Verfügung stellt und wie lange. Mit dem von uns erhältlichen Lizenzwerkzeug können Lizenzen für freie Demoversionen mit eingeschränktem Funktionsumfang oder begrenzter Laufzeit erzeugt werden. Dazu bedienen wir uns kryptografisch sicherer Methoden mit ausreichend langen Schlüsseln.
Weitere Informationen
Interessieren Sie sich für die technischen Details oder möchten Sie EHID für Ihre eigene Hardware oder Software verwenden?
Für weitere Informationen stehen wir Ihnen gerne zur Verfügung.
Bitte wenden Sie sich per E-Mail an uns oder rufen Sie uns an.