Benutzer-Werkzeuge

Webseiten-Werkzeuge


becki:linux:hmi_technologien

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
becki:linux:hmi_technologien [2010-04-07 11:58]
becki
becki:linux:hmi_technologien [2010-04-12 08:40] (aktuell)
becki
Zeile 1: Zeile 1:
 ====== Übersicht HMI Technologien == ====== Übersicht HMI Technologien ==
 +
 +Dieses Dokument gibt zunächst einen Überblick über die aktuellen Möglichkeiten zur Entwicklung von lokalen, touch-basierten und entfernten, netzwerkbasierten HMIs. Am Ende werden [[hmi_technologien#​konkrete Lösungsmöglichkeiten]] für eine Steuerung mit beiden HMI-Typen vorgestellt.
 +
 ===== Embedded / Mobile Plattformen == ===== Embedded / Mobile Plattformen ==
  
Zeile 5: Zeile 8:
  
 ^ Name ^ Initiator ^ OS-Kern ^ Besonderheit ^ ^ Name ^ Initiator ^ OS-Kern ^ Besonderheit ^
-| Ubuntu Mobile/​Embedded | Canonical Ltd. | Linux | verwendet Hildon für Touch (s.u.), auf Atom-Prozessoren abgestimmt, programmierbar auch in Vala (s.u.), Favorit ​|+| [[http://​www.ubuntu.com/​products/​mobile|Ubuntu Mobile/​Embedded]] | Canonical Ltd. | Linux | verwendet Hildon für Touch (s.u.), auf Atom-Prozessoren abgestimmt, programmierbar auch in Vala (s.u.) |
 | Freesamrtphone.org | FSO | Linux | verwendet D-Bus, programmierbar auch in Vala und Python | | Freesamrtphone.org | FSO | Linux | verwendet D-Bus, programmierbar auch in Vala und Python |
-| Android | Google | Linux | Vollständig in Java programmierbar |+| [[wpde>​Android_(Betriebssystem)|Android]] | Google | Linux | Vollständig in Java programmierbar |
 | Limo | Motorola | Linux | Linux Mobile Foundation (NEC, Panasonic, Samsung, Vodafone, u.a.) | | Limo | Motorola | Linux | Linux Mobile Foundation (NEC, Panasonic, Samsung, Vodafone, u.a.) |
 | webOs | Palm | Linux | GUI verwendet Web Technologie (HTML 5, JavaScript, CSS) | | webOs | Palm | Linux | GUI verwendet Web Technologie (HTML 5, JavaScript, CSS) |
Zeile 18: Zeile 21:
 ===== Touch Libs == ===== Touch Libs ==
  
-Speziell auf Bedienung per //​Finger//​-Touch entwickelte ​Softwarebiblitheken um lokale GUI-Appliktionen zu entwickeln:+Speziell auf Bedienung per //​Finger//​-Touch entwickelte ​Softwarebibliotheken zur Entwicklung //lokaler// GUIs. Diese nutzen die speziellen Möglichkeiten eines Touchscreen voll aus und ermöglichen so z.B. eine gestische Bedienung:
  
-Das aktuelle QT 4.6 unterstützt gestische Bedienung und auch Multitouch, das auch z.B. Zwei-Finger-Zoom ermöglicht. +  * Das aktuelle QT 4.6 unterstützt gestische Bedienung und auch Multitouch, das auch z.B. Zwei-Finger-Zoom ermöglicht. 
- +  ​* ​[[wpde>​Hildon]] ist ein Framework, dass für die Bedienung mit dem Finger optimiert ist. Hildon ist Teil von GTK+ und ist u.a. in Vala programmierbar. 
-[[wpde>​Hildon]] ist ein Framework, dass für die Bedienung mit dem Finger +  ​* ​FIXME [[wp>​Clutter_(toolkit)|Clutter]] für Animationen 
-optimiert ist. Hildon ist Teil von GTK+ und ist u.a. in Vala programmierbar. +  * FIXME Weitere: [[http://​www.fltk.org/​shots.php|FLTK]],​ [[http://​www.wxwidgets.org/​|wxWidgets]],​ [[http://​elinux.org/​EFL|Enlightenment foundation libraries]] (mit Elementary)
- +
-FIXME [[wp>​Clutter_(toolkit)|Clutter]] für Animationen+
  
 ===== Touch Browser == ===== Touch Browser ==
Zeile 31: Zeile 32:
 Webbrowser bzw. HTML Rendering Engines mit spezieller Unterstützung für Touchscreens Webbrowser bzw. HTML Rendering Engines mit spezieller Unterstützung für Touchscreens
  
-^ Name ^ Initiator ​^ Verwendet u.a. von ^ +^ Name ^ Engine ​^ Verwendet u.a. von ^ 
-| WebKit | Palm | Android, Apple'​s iPhone, Palm, Google Chrome+| WebKit | WebKit ​Palm, Android, Apple'​s iPhone, Palm, Google Chrome | 
- +Moblin ​browser | Gecko | Moblin |
-FIXME Welchen Browser verwendet ​Moblin?+
  
 ===== Remote HMI SDKs == ===== Remote HMI SDKs ==
 +
 +Bibliotheken zur Entwicklung //​entfernter//​ GUIs. Die für den Benutzer optimale remote HMI
 +  * erfordert keine Installation auf dem Client
 +  * läuft auf jedem Betriebssystem
 +  * hat den Komfort einer lokalen Applikation
 +  * bietet reichhaltige grafische Elemente
 +  * kommt ohne die Installation einer zusätzlichen Runtime aus
 +  * Aktualisiert sich von selbst
 +
 ==== Web-basiert == ==== Web-basiert ==
  
-Rein web-basierte Technik, die direkt im Broswser ​ohne zusätzliches Plugin läuft. Der Browser erledigt den programmatischen Teil per Javascript, den deklarativen Teil per HTML und die Oberflächengestalltung per CSS. Bekannt ​unter dem Namen AJAX.+Rein web-basierte Technik, die direkt im Browser **ohne zusätzliches Plugin** läuft. Der Browser erledigt den programmatischen Teil per Javascript, den deklarativen Teil per XHTML und die Oberflächengestalltung per CSS. Diese Technik ist bekannt ​unter dem Namen AJAX.
  
-Die Bibliotehken ​liefern eine für alle Broswer ​gleiche API u.a. für GUI-Elemente (Container, Buttons, Slider, Charts, ...). Sie schützen damit den Programmierer ​voer der Komplexität und Aufwand der Anpassung ihres Programmes vor allem an nicht standardkonforme Browser.+Die Bibliotheken ​liefern eine für alle Browser ​gleiche API u.a. für GUI-Elemente (Container, Buttons, Slider, Charts, ...). Sie schützen damit den Programmierer ​vor der Komplexität und Aufwand der Anpassung ihres Programmes vor allem an nicht standardkonforme Browser.
  
 ^ Name ^ Sprache ^ Besonderheit ^ ^ Name ^ Sprache ^ Besonderheit ^
-| Dojo | Javacript | | +| [[wpde>​Dojo_Toolkit|Dojo]] | Javacript | | 
-Scriptaculous ​| Javacript | | +[[wpde>​Google_Web_Toolkit|GWT]] | Java | Java=>​Javascript Cross-Compiler,​ client side processing | 
-GWT | Java | Java=>​Javascript Cross-Compiler | +| Script.aculo.us ​| Javacript | | 
- +YUI | Javacript | | 
-FIXME ZK checken+| ZK | Java | Java=>​Javascript Cross-Compiler, server side processing, benötigt Servlet Container auf Target ​
 +| OpenLaszlo | Javascript+XML | Die DHTML Variante hat möglicherweise eingeschränkten Funktionsumfang |
  
 Beispiele für rein web-basierte Applikationen:​ [[http://​demos.dojotoolkit.org/​demos/​|Dojo Demos]], [[http://​maps.google.de|Google Maps]] oder [[http://​docs.google.com|Google Text und Tabellen]] Beispiele für rein web-basierte Applikationen:​ [[http://​demos.dojotoolkit.org/​demos/​|Dojo Demos]], [[http://​maps.google.de|Google Maps]] oder [[http://​docs.google.com|Google Text und Tabellen]]
Zeile 54: Zeile 64:
 ==== RIAs == ==== RIAs ==
  
-Rich Internet Applications (RIA) /  ​Runtimes ​auf dem Client erforderlich:​+Rich Internet Applications (RIA) / **Runtime ​auf dem Client erforderlich**:
  
 ^ Name ^ Runtime ^ Sprache ^ Besonderheit ^ ^ Name ^ Runtime ^ Sprache ^ Besonderheit ^
-| Apache Pivot | JVM | Java | |+| [[http://​pivot.apache.org/​|Apache Pivot]] | JVM | Java | Wahlweise als Applet, ​ [[wpde>​Java_Web_Start|Websstart]]- oder klassische Applikation einsetzbar ​|
 | JavaFX | JVM | JavaFX Script | proprietär?​ | | JavaFX | JVM | JavaFX Script | proprietär?​ |
 | Silverlight | Dotnet | C# | proprietär | | Silverlight | Dotnet | C# | proprietär |
 | Flash | Flash | ActionScript | proprietär | | Flash | Flash | ActionScript | proprietär |
-| OpenLaszlo | | | +| OpenLaszlo | Flash Javascript+XML ​| | 
-| Curl | | ? |+| Curl | Curl RTE Curl | Verbreitung? |
  
-Im Zeitalter von leistungsfähigen und standardkonformen ​Internetbrowsern ist es jedoch fraglich, ob RIA's noch zeitgemäß sind, bzw. ob sie nicht bald obsolet werden.+Im Zeitalter von leistungsfähigen und standardisierten ​Internetbrowsern ist es jedoch fraglich, ob RIA's noch zeitgemäß sind, bzw. ob sie nicht bald obsolet werden. 
 + 
 +==== Gecko basiert == 
 + 
 +FIXME Anwendung von [[wpde>​XUL]] evtl. in Kombination mit [[wpde>​Mozilla_Prism]]
  
 ===== Enhancements / Besonderheiten == ===== Enhancements / Besonderheiten ==
 ==== Java == ==== Java ==
  
-Alles was eine Java-API besitzt (Android, Apache Pivot, GWT) kann auch in [[wpde>​Groovy]] programmiert werden. Groovy bringt die typischen Vorteile einer Scriptsprache (kompakt, einfach, elegant) auf die Java Platform. In Groovy geschriebene Programme sind wesentlich kompakter und einfacher zu lesen als herkömmlicher Java- oder Csharp-Code+Alles was eine Java-API besitzt (Android, Apache Pivot, GWT) kann auch in [[wpde>​Groovy]] programmiert werden. Groovy bringt die typischen Vorteile einer Scriptsprache (kompakt, einfach, elegant) auf die Java Plattform. In Groovy geschriebene Programme sind wesentlich ​**kompakter und einfacher** zu lesen/​schreiben ​als herkömmlicher Java- oder Csharp-Code
  
 Alles was clientseitig auf die JVM (Apache Pivot, JavaFX) aufsetzt erfordert **keine zusätzliche Installation beim Kunden**, da die JAVA Runtime meist schon vorhanden ist. Alles was clientseitig auf die JVM (Apache Pivot, JavaFX) aufsetzt erfordert **keine zusätzliche Installation beim Kunden**, da die JAVA Runtime meist schon vorhanden ist.
Zeile 75: Zeile 89:
 ==== Vala / GTK == ==== Vala / GTK ==
  
-Alles was auf GTK aufsetzt (z.B. Hildon) kann (neben anderem) auch in [[wpde>​Vala_(Programmiersprache)|Vala]] programmiert werden.+Alles was auf GTK aufsetzt (z.B. Hildon) kann (neben anderem) auch in [[wpde>​Vala_(Programmiersprache)|Vala]] programmiert werden. ​[[http://​live.gnome.org/​Vala/​HildonSample|Beispiel]]
  
-Vala vereinigt die Vorteile einer gemanagten ​Sprache wie (Java/​Csharp) mit den Vorteilen von C/C++. D.h. man bekommt u.a. Objektorientierung,​ Exceptions und automatische Speicherverwaltung mit der Performance einer nativ compilierten Applikation. Dies ist möglich, da Vala ohne Runtime auskommt. Auch lassen sich mit Vala x-beliebige externe C-Bibliotheken verwenden.+Vala vereinigt die Vorteile einer **gemanagte**n **Sprache** wie (Java/​Csharp) mit den Vorteilen von C/C++. D.h. man bekommt u.a. Objektorientierung,​ Exceptions und automatische Speicherverwaltung mit der Performance einer nativ compilierten Applikation. Dies ist möglich, da Vala **ohne Runtime** auskommt. Auch lassen sich mit Vala x-beliebige externe C-Bibliotheken verwenden.
  
 Vala hat eine Csharp-ähnliche Syntax. Vala hat eine Csharp-ähnliche Syntax.
  
-Auf Grund der Performance und Benutzerfreundlichkeit bietet sich Vala auch für die Programmierung der eigentlichen ​Applikationn ​(nicht nur HMI) an.+Auf Grund der Performance und Benutzerfreundlichkeit bietet sich Vala auch für die Programmierung der eigentlichen ​Applikation ​(nicht nur HMI) an.
  
-Für die deklarative ​Gestaltung ​Glade einer GTK-basierten GUI bietet sich [[wpde>​Glade]] an+Für die Projektierung und Gestaltung einer GTK-basierten GUI in deklarativer Form auf Basis von XML bietet sich [[wpde>​Glade]] an.
  
-===== Lösungsmöglichkeiten == +===== Konkrete ​Lösungsmöglichkeiten == 
-==== 1. Lokale ​Touch Lib / Web Technologie für remote HMI ==+ 
 +Drei Vorschläge zur Realisierung einer Steuerung auf einem Panelrechner mit lokaler- und remote HMI: 
 + 
 +==== 1. Lokal: ​Touch Lib / Remote: ​Web-basiert ​==
  
   * Lokale GUI Applikation mit Finger-Touch-GUI (z.B. Hildon)   * Lokale GUI Applikation mit Finger-Touch-GUI (z.B. Hildon)
   * Standardbrowser (Firefox, Chrome, IE, ...) für die remote HMI (keine Plugins nötig) mit AJAX-SDK (z.B. Dojo oder GWT) für die GUI-Programmierung   * Standardbrowser (Firefox, Chrome, IE, ...) für die remote HMI (keine Plugins nötig) mit AJAX-SDK (z.B. Dojo oder GWT) für die GUI-Programmierung
  
-Favorit, da beide HMIs optimal auf ihren Einsatzweck ​abestimmt sind.+Beide HMIs sind optimal auf ihren Einsatzweck ​abgestimmt. Die lokale HMI kann die speziellen Möglichkeiten eines Touchscreens voll ausnutzten, während die remote HMI ohne Installation und Download sofort auf jedem Rechner funktioniert. 
 + 
 +Als Plattform bietet sich derzeit Maemo oder Ubuntu Mobile and Embedded Edition an, die hier Hildon schon als Bordmittel vorhanden ist. Die Plattform kann später jederzeit später noch geändert werden.
  
-==== 2. Reine Web Technologie ​==+==== 2. Lokal und Remote: ​Web-basiert ​==
  
 AJAX für die lokale HMI und remote HMI AJAX für die lokale HMI und remote HMI
Zeile 101: Zeile 120:
   * Web-basierte AJAX-SDK (wie Dojo oder GWT) für die GUI-Programmierung   * Web-basierte AJAX-SDK (wie Dojo oder GWT) für die GUI-Programmierung
  
-Theoretisch ein HMI-Projektierung für lokale HMI und remote HMI nötig. Tatsächlich werden aber wohl spezielle Anpassungen für die unterschiedlichen Bildschirmgrößen und Bedienstrategien (Maus/​Tastatur <=> Fingertouch) nötig werden. Weiterhin ​muß muß die AJAX-SDK den Touch Browser unterstützen+Theoretisch ein HMI-Projektierung für lokale HMI und remote HMI nötig. Tatsächlich werden aber wohl spezielle Anpassungen für die unterschiedlichen Bildschirmgrößen und Bedienstrategien (Maus/​Tastatur <=> Fingertouch) nötig werden. Weiterhin muß die AJAX-SDK den Touch Browser unterstützen.
  
-==== 3. Touch Lib / RIA ==+==== 3. Lokal: ​Touch Lib / Remote: ​RIA ==
  
   * Lokale GUI Applikation mit Finger-Touch-GUI (z.B. Hildon)   * Lokale GUI Applikation mit Finger-Touch-GUI (z.B. Hildon)
   * Remote GUI per RIA (z.B. Apache Pivot)   * Remote GUI per RIA (z.B. Apache Pivot)
  
-===== Unsortiert / Ideen == 
- 
-  * XUL 
-  * Mozilla Prism 
becki/linux/hmi_technologien.1270641530.txt.gz · Zuletzt geändert: 2010-04-07 11:58 von becki

Impressum - Datenschutzerklärung