# Teclas de paso

> Un par − / + que mueve un punto un paso desde donde está, dentro de una banda declarada.

**Teclas de paso** es el par − / + que empuja una consigna en una estación con un dedo y sin
teclado. Cada pulsación escribe *la lectura del punto más un paso*, así que, al contrario que las
teclas de la [Entrada](component-input) y que las opciones del
[Selector de opciones](component-selector), que llevan valores absolutos, el par tiene que conocer
antes la lectura: sin nada que leer, las dos teclas están muertas. Es un componente de *Mando*; uno
nuevo ocupa 4 × 1 celdas.

El par no dibuja ninguna lectura propia; componga un [Valor](component-value) junto a las teclas si
el número tiene que estar en pantalla.

## Datos {#data}

| Campo | Qué hace | Valores | Por defecto |
|---|---|---|---|
| Dirección | La dirección de Logic con raíz del punto que se mueve: una variable de memoria o un tag escribible. La lista se estrecha a los puntos escribibles. | Texto libre; sugerencias de puntos escribibles | vacío |

## Formato {#format}

| Campo | Qué hace | Valores | Por defecto |
|---|---|---|---|
| Decimales | Los decimales con los que se escribe un valor enviado en la línea de respuesta: el único número que escribe este par. En blanco sigue la preferencia decimal de la estación. Los recuentos fuera de banda se toman en el borde y el panel lo dice. | de 0 a 15, o en blanco | en blanco |

## Paso {#step}

| Campo | Qué hace | Valores | Por defecto |
|---|---|---|---|
| Paso | Cuánto mueve el punto una pulsación. | Cualquier número finito positivo | 1 |
| Mínimo | El valor más bajo al que el par mueve el punto. En blanco deja ese lado abierto: un borde no declarado no es un borde en el infinito, es simplemente ningún borde. | Cualquier número, o en blanco | en blanco |
| Máximo | El valor más alto al que el par mueve el punto. En blanco deja ese lado abierto. Un mínimo por encima del máximo no deja ningún valor entre ellos, y el panel avisa de que ninguna de las dos teclas movería el punto. | Cualquier número, o en blanco | en blanco |

## Cómo retiene la banda un paso {#how-the-band-holds-a-step}

- Un paso más allá de un borde se **toma en ese borde**: el operador pidió "un paso, hasta donde
  esto llegue", que no es el número tecleado que una Entrada rechaza en lugar de moverlo por él.
- Una tecla que ya no puede ir a ningún sitio queda **deshabilitada**: el punto ya está en ese borde
  (o más allá).
- La banda solo *para* una tecla, no la hace dar la vuelta nunca: un punto que ya está más allá de
  un borde (escrito ahí por una Acción, por una receta, por otro sinóptico) no lo trae de vuelta la
  tecla que apunta más hacia fuera. La tecla del camino de vuelta hacia dentro sí funciona, y
  retiene en el borde.
- Los límites que declara un tag (con su etapa **Límites** habilitada) también son un borde,
  junto con el mínimo y el máximo de aquí: manda el más estrecho de los dos, así que el paso
  se para donde el tag lo habría recortado y la línea de respuesta nombra el valor que
  salió.

## Semántica de la escritura {#write-semantics}

Las pulsaciones se acumulan; las escrituras no se amontonan. Un dedo apoyado en **+** puede
adelantar a la planta, así que las pulsaciones que llegan mientras una escritura está en vuelo se
cuentan y la escritura siguiente las lleva todas de una vez: diez toques rápidos son diez pasos y
nunca diez escrituras; no se descarta nada de lo que se pidió, y no se envía nada de lo que no se
pidió. Dentro de una misma tanda, cada paso cuenta desde el valor recién enviado, ya que la planta
todavía no lo ha publicado; el sinóptico sigue dibujando solo lo que informa el punto.

Todas las escrituras pasan por el punto único de escritura de la lógica de la estación; cada cruce
vuelve a comprobar la autorización, así que un cierre de sesión o un cambio de rol a mitad de tanda
detiene el resto de los toques. Un rechazo ("Este punto contiene fecha y hora, así que 4 no es un valor
que admita.") y todos los valores enviados ("21,5 escrito") aterrizan en la línea de respuesta del
par, que caduca a los pocos segundos. En una celda sin sitio para esa línea y sin título de esquina
sobre el par, la respuesta ocupa el signo de la tecla que se pulsó mientras se muestra, un rechazo
con la tinta de error. La tecla conserva su ancho, así que lo que no cabe termina en puntos
suspensivos, con la respuesta entera en la información emergente; ninguna de las dos teclas se
mueve, y el signo vuelve cuando la respuesta caduca.

Sobre un punto que contiene enteros (un tag de tipo entero cuya Escala y Calibración dejan el valor sin cambios, o una variable de memoria que contiene enteros), un paso con decimales se rechaza en la pulsación en lugar de redondearse ("Este punto admite un entero, así que 2.5 no se escribe."), y no se escribe nada.

## Permisos y el candado {#permissions-and-the-lock}

Dar pasos necesita el permiso del rol para operar los paneles de control. Bloqueadas, las dos teclas
quedan deshabilitadas y el componente lleva la marca compartida de candado con el motivo en su
información emergente (véase la [página de los paneles de control](home)). Un punto vinculado que
no consigue leer lleva la marca compartida de mala lectura, y deshabilita las teclas de todos modos,
ya que no hay nada desde lo que dar el paso.

Las secciones compartidas Apariencia, Identificación, Posición y capa y Acciones se describen en la
[página de los componentes](components#the-shared-property-sections).
