# Auswahl

> Hinterlegte Optionen über einem Datenpunkt, als Tasten oder als Liste, die zeigen, in welcher die Anlage tatsächlich steht.

**Auswahl** bietet dem Bediener einen geschlossenen Satz hinterlegter Möglichkeiten an, eine
Betriebsart, ein Rezept, eine Drehzahlstufe, über einem schreibbaren Datenpunkt. Eine zu wählen
schreibt den Wert dieser Option; derselbe zurückgelesene Datenpunkt ist es, der die aktive Option
aufleuchten lässt. Dieses Zurücklesen ist der ganze Grund, warum es diese Art gibt: eine Reihe
[Schaltflächen](component-button), von denen jede einen festen Wert schreibt, schreibt genauso gut
und zeigt nichts. Sie ist eine Komponente der Kategorie *Bedienung*; eine neue belegt 5 × 1 Zellen.

## Daten {#data}

| Feld | Was es tut | Werte | Vorgabe |
|---|---|---|---|
| Adresse | Die verwurzelte Logic-Adresse, auf die die Wahl geschrieben und aus der sie zurückgelesen wird: eine Variable im Merker oder ein schreibbares Tag. Die Liste ist auf Datenpunkte eingeengt, die sich tatsächlich schreiben lassen. | Freier Text; Vorschläge schreibbarer Datenpunkte | leer |

## Optionen {#options}

| Feld | Was es tut | Werte | Vorgabe |
|---|---|---|---|
| Zeigt | Wie die Optionen angeboten werden: eine Taste je Option, nebeneinander, jede Wahl auf einen Blick lesbar, oder eine Liste, die sich auf Verlangen öffnet, für eine Zelle ohne Platz für eine Reihe Tasten. | `Eine Taste je Option` · `Eine Liste, die sich öffnet` | `Eine Taste je Option` |

Jede Option ist eine Karte, die die zwei Dinge hält, die eine Option *ist*:

| Feld | Was es tut | Werte | Vorgabe |
|---|---|---|---|
| Text | Das Wort, das der Bediener auf der Taste oder in der Liste liest. Leer fällt auf den Wert selbst zurück, denn eine Taste ohne Aufschrift sagt nichts. | Freier Text | leer |
| Wert | Der Wert, der geschrieben wird, wenn diese Option gewählt wird, und der Messwert, der sie als aktiv zeigt. Er ist ein Code und wird genau verglichen: was zwischen zwei Codes liegt, ist keine Wahl. | Beliebige Zahl | leer (erklärt nichts, bis getippt) |

Die Reihenfolge der Karten ist die Reihenfolge der Tasten unter der Hand des Bedieners: die Pfeile
nach oben und nach unten ordnen um; hier sortiert sich nichts von selbst. Zwei Optionen, die
denselben Wert benennen, können nicht beide eine Taste zeichnen (der Datenpunkt könnte nur eine
von beiden melden, und das Bedienelement könnte nicht sagen, welche); der Bereich sagt das, und
die doppelte zeichnet nichts.

Alle Tasten teilen sich eine Schriftgröße, aus dem breitesten hinterlegten Wort reserviert, damit
die Reihe sich als ein Bedienelement liest und nicht als Reihe zusammenhangloser Tasten. Eine
Auswahl ohne Optionen sagt "Keine Optionen hinterlegt.", statt eine leere Reihe zu zeichnen, die
aussieht wie ein Bild, das noch lädt.

## Was leuchtet, und wann {#what-lights-and-when}

Die leuchtende Taste (oder die Auswahl in der Liste) ist der eigene Messwert des Datenpunkts, nie
der Klick:

| Situation | Das Bedienelement zeigt |
|---|---|
| Der Datenpunkt meldet einen hinterlegten Wert | Diese Option leuchtend, oder in der Liste gewählt |
| Der Datenpunkt meldet einen Wert, den keine Option hinterlegt | Nichts leuchtet: die nächstgelegene Taste leuchten zu lassen hieße, dass das Bild die Betriebsart der Anlage erfindet |
| Der Datenpunkt liest nicht | Nichts leuchtet, und die Komponente trägt das gemeinsame Zeichen für den misslungenen Messwert |

Eine Wahl fragt vorher nach keinem Messwert, denn die Option trägt einen absoluten Wert, schlechte
Qualität lässt das Bedienelement also *nutzbar* und nimmt nur die Anzeige weg.

## Was ein Schreiben bedeutet {#write-semantics}

Eine Option zu wählen schreibt ihren Wert durch den einen Schreibkanal der Logik auf der Station, unter
derselben Prüfung, die jeder Befehl besteht. Ein Datenpunkt, der keine Zahl halten kann, lehnt das
Schreiben mit dem Grund auf der Rückmeldezeile des Bedienelements ab ("Dieser Datenpunkt hält Datum und Uhrzeit,
also ist 2 kein Wert, den er annimmt."); eine geglückte Wahl antwortet mit dem Wort der Option
("Auto geschrieben"). Die Rückmeldezeile verfällt nach einigen Sekunden, und die Berechtigung wird
bei jeder Wahl neu geprüft. Wo die Optionen als Tasten gezeigt werden und die Zelle weder Platz
für diese Zeile noch einen Titel in der Ecke über der Reihe hat, nimmt die Antwort das Wort der
gedrückten Taste ein, solange sie steht, eine Ablehnung in der Fehlerfarbe. Die Taste behält
ihre Breite, was sie nicht fasst, wird also mit Auslassungspunkten gekürzt, mit der ganzen
Antwort im Tooltip; keine Taste rückt, und das Wort kehrt zurück, wenn die Antwort verfällt.
Wo die Optionen als Liste gezeigt werden, nimmt die Antwort ebenso den Platz dessen ein, was die
geschlossene Liste zeigt: Die Liste behält ihre Breite und ihren Pfeil, und was sie zeigte,
kehrt zurück, wenn die Antwort verfällt.

Über einem Tag, dessen Stufe **Grenzen** eingeschaltet ist, wird eine Option, deren Wert
außerhalb dieser Grenzen liegt, genauso abgewiesen, mit einem Grund, der diese Grenzen nennt, und nichts wird geschrieben: am Rand genommen, brächte sie die Anlage
in eine andere Option als die gewählte, und die Zeile bestätigte die gewählte.

Über einem Datenpunkt, der Ganzzahlen hält (ein Tag eines ganzzahligen Typs, dessen Skalierung und Kalibrierung den Wert unverändert lassen, oder eine Variable im Merker, die Ganzzahlen hält), wird eine Option, deren Wert Nachkommastellen hat, genauso abgewiesen, statt gerundet zu werden ("Dieser Datenpunkt nimmt eine Ganzzahl auf, also wird 2.5 nicht geschrieben."), und nichts wird geschrieben.

## Berechtigungen und die Sperre {#permissions-and-the-lock}

Die Auswahl zu bedienen braucht die Berechtigung der Rolle, Dashboards zu bedienen. Ein gesperrter
Druck schaltet die Tasten ab und zeichnet das gemeinsame Sperrzeichen mit dem Grund im Tooltip der
Komponente (siehe die [Seite der Dashboards](home)).

Die gemeinsamen Abschnitte Darstellung, Kennung, Position und Ebene und Aktionen sind auf
der [Seite der Komponenten](components#the-shared-property-sections) beschrieben.
