# Touches de pas

> Une paire − / + qui déplace un point d'un pas depuis là où il est, à l'intérieur d'une plage déclarée.

Les **Touches de pas** sont la paire − / + qui pousse une consigne sur une station avec un doigt et
sans clavier. Chaque appui écrit *la lecture du point plus un pas*, si bien que, contrairement aux
touches de la [Saisie](component-input) et aux options du [Sélecteur](component-selector), qui
portent des valeurs absolues, la paire doit connaître la lecture d'abord : sans rien à lire, les
deux touches sont mortes. C'est un composant de *Commande* ; un nouveau occupe 4 × 1 cellules.

La paire ne dessine aucune lecture à elle ; composez une [Valeur](component-value) à côté des
touches si le nombre doit être à l'écran.

## Données {#data}

| Champ | Ce qu'il fait | Valeurs | Par défaut |
|---|---|---|---|
| Adresse | L'adresse Logic enracinée du point déplacé : une variable mémoire ou un tag inscriptible. La liste est réduite aux points inscriptibles. | Texte libre ; propositions de points inscriptibles | vide |

## Mise en forme {#format}

| Champ | Ce qu'il fait | Valeurs | Par défaut |
|---|---|---|---|
| Décimales | Les décimales avec lesquelles une valeur envoyée est écrite sur la ligne de retour, le seul nombre que cette paire écrit. Vide suit la préférence décimale de la station. Les décomptes hors plage sont pris au bord et le volet le dit. | de 0 à 15, ou vide | vide |

## Pas {#step}

| Champ | Ce qu'il fait | Valeurs | Par défaut |
|---|---|---|---|
| Pas | De combien un appui déplace le point. | N'importe quel nombre fini positif | 1 |
| Valeur minimale | La plus petite valeur vers laquelle la paire déplace le point. Vide laisse ce côté ouvert : un bord non déclaré n'est pas un bord à l'infini, c'est simplement pas de bord. | N'importe quel nombre, ou vide | vide |
| Valeur maximale | La plus grande valeur vers laquelle la paire déplace le point. Vide laisse ce côté ouvert. Un minimum au-dessus du maximum ne laisse aucune valeur entre les deux, et le volet avertit qu'aucune des deux touches ne déplacerait le point. | N'importe quel nombre, ou vide | vide |

## Comment la plage retient un pas {#how-the-band-holds-a-step}

- Un pas qui dépasse un bord est **pris à ce bord** : l'opérateur a demandé « un pas, aussi loin que
  cela va », ce qui n'est pas le nombre tapé qu'une Saisie refuse plutôt que de se déplacer à sa
  place.
- Une touche qui n'a plus nulle part où aller est **désactivée** : le point se trouve déjà à ce bord
  (ou au-delà).
- La plage ne fait jamais qu'*arrêter* une touche, elle n'en retourne jamais une : un point déjà
  au-delà d'un bord (écrit là par une Action, une recette, une autre vue) n'est pas ramené par la
  touche qui pointe plus loin encore. La touche du retour vers l'intérieur fonctionne toujours, et
  tient au bord.
- Les limites qu'un tag déclare (son étape **Limites** activée) sont aussi un bord, tenu
  avec le minimum et le maximum d'ici : le plus serré des deux l'emporte, si bien que le pas
  s'arrête là où le tag l'aurait écrêté et que la ligne de retour nomme la valeur qui est
  partie.

## Ce que l'écriture signifie {#write-semantics}

Les appuis s'accumulent ; les écritures ne s'empilent pas. Un doigt tenu sur **+** peut devancer
l'installation, donc les appuis qui arrivent pendant qu'une écriture est en cours sont comptés et
l'écriture suivante les porte tous d'un coup : dix contacts rapides font dix pas et jamais dix
écritures, rien de ce qui a été demandé n'est perdu, et rien de ce qui n'a pas été demandé n'est
envoyé. À l'intérieur d'une même rafale, chaque pas compte depuis la valeur qui vient d'être
envoyée, puisque l'installation ne l'a pas encore publiée ; la vue continue de ne dessiner que ce
que le point signale.

Chaque écriture passe par le canal d'écriture unique de la station ; chaque passage revérifie
l'autorisation, si bien qu'une déconnexion ou un changement de rôle au milieu d'une rafale arrête
les contacts restants. Un refus (« Ce point contient date et heure, donc 4 n'est pas une valeur qu'il
accepte. ») et chaque valeur envoyée (« 21,5 écrit ») se posent sur la ligne de retour de la paire,
qui expire au bout de quelques secondes. Dans une cellule sans place pour cette ligne et sans titre
de coin au-dessus de la paire, la réponse prend le signe de la touche qui a été appuyée tant
qu'elle s'affiche, un refus à l'encre d'erreur. La touche garde sa largeur, si bien que ce qu'elle
ne peut pas contenir se termine par des points de suspension, avec la réponse entière dans
l'infobulle ; aucune des deux touches ne bouge, et le signe revient quand la réponse expire.

Sur un point qui contient des entiers (un tag de type entier dont la Mise à l'échelle et l'Étalonnage laissent la valeur inchangée, ou une variable mémoire qui contient des entiers), un pas décimal est refusé à l'appui au lieu d'être arrondi (« Ce point attend un entier, donc 2.5 n'y est pas écrit. »), et rien n'est écrit.

## Permissions et verrou {#permissions-and-the-lock}

Avancer d'un pas demande la permission de rôle de piloter les tableaux de bord. Sous verrou, les
deux touches sont désactivées et le composant porte la marque de verrou partagée avec la raison dans
son infobulle (voir la [page des tableaux de bord](home)). Un point lié qui ne lit pas porte la
marque de lecture mauvaise partagée, et désactive les touches de toute façon, puisqu'il n'y a rien
d'où partir.

Les sections partagées Apparence, Identification du composant, Position et couche et Actions du composant sont décrites sur la
[page des composants](components#the-shared-property-sections).
