Forum: Mikrocontroller und Digitale Elektronik Benutzerschnittstelleneingabereigniswarteschlange (ui input event queue)?


von Nichtig (Gast)


Lesenswert?

Hallo Welt,

ich glaube, ich habe hier im Forum irgendwann mal gelesen, dass ein 
Queue für Eingaben einer Benutzerschnittstelle unsinnig sind, weil bei 
Verzögerungen der Abarbeitung dann irgendwann noch auf "veraltete" 
Eingaben erfolgen, und den Benutzer verwirren könnten.

Wie macht man das richtig?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Nichtig schrieb:
> Wie macht man das richtig?

Ich beherzige meistens den Grundsatz 'do the visible work first', so 
erkennt der Benutzer schon mal, das sein Tastendruck erkannt wurde und 
die Mimik nun ihren Zauber im Hintergrund beginnt.
Lange Operationen kann man dem Benutzer durch irgendwelche 'Busy' LED 
oder Fortschrittsbalken kundtun oder einfach nur entrüstet piepsen, wenn 
da schon wieder jemand die Taste drückt, obwohl es noch gar nicht soweit 
ist.
Im Idealfall ist die Technik so schnell, das man gar nicht erst eine 
Warteschlange aufbauen kann.

: Bearbeitet durch User
von Noch ein Kommentar (Gast)


Lesenswert?

Grundsätzliche Regel - zwischen einer menschlichen Eingabe und der 
Aktualisierung des Bildschirmes dürfen maximal 20ms vergehen.

Auch wenn die Warteschlange immer leer sein sollte - du brauchst sie 
trotzdem.

Zum einen startest du Hintergrundprozesse, die ihre Rückmeldungen in die 
Warteschlange schieben. Zum anderen kannst du nicht alle Verzögerungen 
vermeiden. Z.B. Ein anderes Programm hatte den gesamten Hauptspeicher 
belegt und  dein Programm in die Auslagerungsdatei verschoben.

von Peter D. (peda)


Lesenswert?

Noch ein Kommentar schrieb:
> zwischen einer menschlichen Eingabe und der
> Aktualisierung des Bildschirmes dürfen maximal 20ms vergehen.

Völlig praxisfremd. In 20ms hat die FB das Kommando noch nicht mal 
abgesendet.
In meinen Entwicklungen verzögert die Entprell-Lib schon um 40ms. Und 
die Benutzer sind oft erstaunt, wie schnell das Gerät gegenüber üblichen 
Kaufgeräten reagiert.
Viele andere Geräte mit 32Bit-Boliden und RTOS sind dagegen extrem 
lahmarschig.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Nichtig schrieb:
> Wie macht man das richtig?
Man reagiert umgehend auf eine Benutzereingabe. Und wenn die Reaktion 
eine Sanduhr ist.

Und wenn die Reaktion eine Sanduhr ist, dann werden alle 
Benutzereingaben gelöscht, die während der Sanduhrphase getätigt werden.

Ein wirklich grausames Gerät ist z.B. mein DVD-Player: wenn ich da auf 
die "Schubladentaste" zum Auswerfen drücke, dann ist die einzige 
Reaktion, die ich erwarte, dass das Ding sofort mit allem aufhört, 
was es sonst grade so macht und die Scheibe auswirft.
Was das Ding tut: es rödelt mit variabler Drehzahl noch 30 Sekunden 
weiter auf der DVD herum und versucht das unleserliche Ding einzulesen. 
Und irgendwann kommt die Schublade herausgefahren und fährt danach 
sofort wieder ein, weil ich natürlich wiederholt auf die 
"Schubladentaste" gedrückt habe. Und das Spiel beginnt von Neuem.

Für dieses unheimlich simple UI hätte ich also schon 2 
Verbesserungsvorschläge...

von Dussel (Gast)


Lesenswert?

Matthias S. schrieb:
> Ich beherzige meistens den Grundsatz 'do the visible work first', so
> erkennt der Benutzer schon mal, das sein Tastendruck erkannt wurde und
> die Mimik nun ihren Zauber im Hintergrund beginnt.
Dem würde ich zustimmen. Wir haben einen Fernsehen von Philips (der war 
schon in der Wohnung drin, Geld würde  ich dafür nicht ausgeben) und da 
dauert die Reaktion auf eine Eingabe schonmal mehrere Sekunden. Da weiß 
man nicht, ob der Fernseher das jetzt mitgekriegt hat und arbeitet oder 
nicht. Also drückt man nach z.B. fünf Sekunden nochmal und nach acht 
Sekunden öffnet sich das Menü und schließt sich sofort wieder. Dann ist 
zumindest ein leeres Fenster, das sich sofort öffnet, doch besser.

von c-hater (Gast)


Lesenswert?

Lothar M. schrieb:

> Ein wirklich grausames Gerät ist z.B. mein DVD-Player: wenn ich da auf
> die "Schubladentaste" zum Auswerfen drücke, dann ist die einzige
> Reaktion, die ich erwarte, dass das Ding sofort mit allem aufhört,
> was es sonst grade so macht und die Scheibe auswirft.
> Was das Ding tut: es rödelt mit variabler Drehzahl noch 30 Sekunden
> weiter auf der DVD herum und versucht das unleserliche Ding einzulesen.
> Und irgendwann kommt die Schublade herausgefahren und fährt danach
> sofort wieder ein, weil ich natürlich wiederholt auf die
> "Schubladentaste" gedrückt habe. Und das Spiel beginnt von Neuem.

Das ist leider nichts unübliches. Man könnte es auch so bezeichnen: "Der 
Fluch der Libs"...

OK, längst nicht immer sind die Libs schuld, viele stellen auch 
asynchrone APIs bereit. Aber natürlich: deren Nutzung überfordert die 
Lib-Gluer oder erzeugt bei ihnen zumindest mehr Aufwand, als sie bereit 
sind zu investieren.

Und dann kommt halt recht regelmäßig genau sowas raus...

von W.S. (Gast)


Lesenswert?

Lothar M. schrieb:
> wenn ich da auf
> die "Schubladentaste" zum Auswerfen drücke,...

Das Spielchen kenne ich auch.
Ich hab da so den Eindruck, daß es für alle handelsüblichen DVD Player 
(und auch die CD-Player) nur einen einzigen Firmwarehersteller auf der 
Welt gibt und daß bei diesem der Lehrling oder die Putzfrau das 
komplette Userinterface geschrieben hat.

Aber laß mal, die User-Interfaces bei billigen China-MP3-Playern waren 
und sind zwar anders, aber nicht weniger kröpelig.

W.S.

von Rainer V. (a_zip)


Lesenswert?

W.S. schrieb:
> und daß bei diesem der Lehrling oder die Putzfrau das
> komplette Userinterface geschrieben hat

Oder solche Experten, wie gerade in einem Heizungsforum gefunden. Mensch 
berichtet von Problemen mit seiner Buderus-Gastherme. Gerät geht in 
Störung und muß dann - logo - neu gestartet werden und wiederholt das 
Spiel natürlich, wenn die Fehlerursache nicht behoben wurde. Erster Satz 
von Mensch, er sei Softwarespezialist und die Software von Buderus wäre 
sowas von Grottenschlecht!! Kein Wort über die Störungsursache, aber 
Genörgel, dass die Resetversuche offensichtlich (der Softwarespezialist) 
nicht "durchkommen", wenn zu schnell gedrückt wird. Und das Steuergerät 
im Wohnzimmer wäre sowieso auch unterirdisch, wegen des bescheuerten 
Softwareprotokolls!!! Selten so einen sinnfreien Beitrag gesehen...aber 
natürlich Spezialist :-)
Gruß Rainer

von Nichtig (Gast)


Lesenswert?

Rainer V. schrieb:
> Selten so einen sinnfreien Beitrag gesehen...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Rainer V. schrieb:
> Erster Satz
> von Mensch, er sei Softwarespezialist und die Software von Buderus wäre
> sowas von Grottenschlecht!!

Man könnte sich darüber beschweren, wenn da kein Grund für die Störung 
angezeigt wird oder wie heute in Autos üblich nur ein 'Service rufen'. 
Wenn die Steuerung aber sinnvolle Störungsgründe anzeigt, hat Buderus 
sicher richtig programmiert.
Den Vogel in der Konsumerelektronik hat m.E. Loewe abgeschossen, mit 
einer derart langsamen Benutzerführung, das du ein paar Stunden vor der 
schweineteuren Glotze sitzt, nur um Programme zu ordnen.

: Bearbeitet durch User
von Einer (Gast)


Lesenswert?

Nichtig schrieb:
> Rainer V. schrieb:
>> Selten so einen sinnfreien Beitrag gesehen...

+1

von Rainer V. (a_zip)


Lesenswert?

Matthias S. schrieb:
> Wenn die Steuerung aber sinnvolle Störungsgründe anzeigt, hat Buderus
> sicher richtig programmiert.

Na ja, der Spezialist ist eben anderer Ansicht...Ich bin da auch nur 
hin, weil ich z.Z. auch Probleme mit den Temperaturfühlern habe und 
sehen wollte, ob ich was Interessantes finde...
Rainer

von Nichtig (Gast)


Lesenswert?

Rainer V. schrieb:
> was Interessantes

Ich habe heute keine Pizza zu mittag gegessen!

von EGS (Gast)


Lesenswert?

Matthias S. schrieb:
>
> Den Vogel in der Konsumerelektronik hat m.E. Loewe abgeschossen, mit
> einer derart langsamen Benutzerführung, das du ein paar Stunden vor der
> schweineteuren Glotze sitzt, nur um Programme zu ordnen.

Da lob ich mir den alten Sony meiner Eltern, hatte eine am PC 
sortierbare Senderliste. Mein Panasonic kanns auch, sogar übers Netzwerk 
😎

von mIstA (Gast)


Lesenswert?

Lothar M. schrieb:
> DVD-Player: wenn ich da auf die "Schubladentaste" zum
> Auswerfen drücke, dann ist die einzige Reaktion, die ich
> erwarte, dass das Ding sofort mit allem aufhört,
> was es sonst grade so macht und die Scheibe auswirft.

Das würde mich ja jetzt wirklich interessieren: Kennt irgendjemand einen 
DVD-Player, der diesen Test bestehen würde?

von Wolfgang (Gast)


Lesenswert?

Peter D. schrieb:
> In meinen Entwicklungen verzögert die Entprell-Lib schon um 40ms. Und
> die Benutzer sind oft erstaunt, wie schnell das Gerät gegenüber üblichen
> Kaufgeräten reagiert.

Man muss ja nicht unbedingt eine Fahrstuhlsteuerung, bei der man während 
des Tastendrucks gefühlt langsam bis drei zählen muss, damit die 
Steuerung den Fahrbefehl erkennt, als Maßstab nehmen ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.