# Control deslizante de consigna

> Un cursor entre dos extremos: el arrastre prepara el valor, la tecla lo escribe, y el cursor sigue por lo demás a la planta.

**Control deslizante de consigna** mueve una consigna con un gesto en lugar de tecleándola. Su
protección contra el único accidente que puede tener un control deslizante es la regla de dos
pasos: **el arrastre prepara, la tecla escribe**. Mover el cursor no cambia nada fuera del
sinóptico (solo declara el valor que se está pidiendo) y la planta se toca cuando el operador pulsa
la tecla de envío que hay al lado. Una manga que cruza una pantalla táctil termina en una
liberación como cualquier otro arrastre, así que escribir al soltar enviaría exactamente el gesto
que nadie quiso. Es un componente de *Mando*; uno nuevo ocupa 6 × 1 celdas.

El mando no dibuja ninguna lectura propia; componga un [Valor](component-value) junto al recorrido
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 en la que aterriza la consigna y de la que se lee de vuelta: 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 escriben el valor preparado y la línea de respuesta: los dos sitios en los que este mando escribe un número. 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 |

## Recorrido {#travel}

Por dónde puede ir el cursor y dónde puede pararse. Los extremos son la declaración propia del
mando, no una lectura, y por eso el cursor sigue recorriendo mientras el punto no dice nada.

| Campo | Qué hace | Valores | Por defecto |
|---|---|---|---|
| Mínimo | Dónde empieza el recorrido. | Cualquier número finito | 0 |
| Máximo | Dónde termina el recorrido. En el mínimo o por debajo de él no hay nada que recorrer: el panel avisa, y el control deslizante queda deshabilitado porque no enviaría nada. | Cualquier número finito | 100 |
| Paso | El movimiento más pequeño que hace el cursor. Todas las posiciones en las que se para son un número entero de pasos desde el mínimo, así que el valor enviado es siempre una de las paradas declaradas. Se permite un paso que no divide el recorrido, y el panel dice dónde cae la última parada: el máximo no es entonces un valor que envíe este control deslizante. | Cualquier número finito positivo | 1 |

Sobre un tag con la etapa **Límites** habilitada, el panel avisa además cuando las paradas
del recorrido van más allá de esos límites, y los nombra: un valor preparado fuera de ellos
se rechaza en la tecla de envío en lugar de tomarse en el borde.

## Cómo se comporta {#how-it-behaves}

- **Siguiendo a la planta.** Sin nada preparado, el cursor está en la lectura propia del punto. Una
  lectura *fuera* del recorrido declarado, o ninguna lectura buena en absoluto, no dibuja **ningún
  cursor**: un pulgar aparcado en el mínimo sería una consigna que se inventó el sinóptico.
- **Preparar.** El primer toque congela el cursor donde el punto informó por última vez y tiñe el
  mando, que es la forma de decirle al operador que ahora lo está sosteniendo él. Al arrastrar se
  ajusta a las paradas y se acota dentro del recorrido. El valor preparado es solo de este
  sinóptico: no llega a ningún otro circuito y nada lo dibuja como una lectura.
- **La tecla de envío** nombra su consecuencia antes de que aterrice el dedo: dice "Fijar
  42,5" mientras hay un valor preparado. Un valor enviado devuelve el cursor al punto; uno que el
  punto único de escritura rechazó se queda preparado, así que la corrección es un empujón y no el
  gesto entero otra vez. Su ancho no cambia nunca: desde el principio guarda sitio para el valor
  más ancho que el recorrido puede ponerle, así que preparar un valor o liberar el cursor no mueve
  ni la tecla ✕ ni el recorrido de al lado.
- **La tecla ✕** libera el cursor de vuelta al punto: la salida de una preparación que nadie quiso.
  Está siempre en la fila (deshabilitada mientras no hay nada preparado), así que las teclas no se
  mueven nunca bajo el dedo.
- Para un lector de pantalla, el control deslizante dice el valor preparado ("42,5, todavía sin
  enviar"), la lectura propia del punto, o "Sin lectura", nunca un número del que el punto no
  informó.

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

La tecla de envío escribe el valor preparado por el punto único de escritura de la lógica de la
estación. Un punto que no puede contener un número responde con el rechazo en la línea del mando;
un envío logrado responde "42,5 escrito". Los valores a los que se llega dando pasos se limpian de
residuo binario antes de enviarlos, así que una consigna no llega nunca a la planta como
`0.30000000000000004`. La autorización se vuelve a comprobar en la pulsación, y la línea de
respuesta caduca a los pocos segundos. Uno nuevo tiene una fila de alto y, bajo un título de
esquina, esa fila rara vez deja sitio para la respuesta: la respuesta ocupa entonces el lugar
del título mientras se muestra. Donde ningún título queda sobre el mando (no se escribió
ninguno, o cedió su fila) y la celda sigue sin línea para la respuesta, esta ocupa el rótulo de
la tecla de envío; la tecla conserva su ancho, así que ni la tecla ✕ ni el recorrido se mueven
(véase la [página de los paneles de control](home#commands-permissions-and-the-lock-mark)).

Sobre un tag con la etapa **Límites** habilitada, un valor preparado fuera de esos límites
se rechaza del mismo modo, con un motivo que nombra esos límites, y sigue
preparado: si no, el tag lo tomaría en el borde, y la línea anunciaría un valor que la
planta nunca recibió.

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 valor preparado con decimales se rechaza del mismo modo en lugar de redondearse ("Este punto admite un entero, así que 2.5 no se escribe."), y sigue preparado: sobre ese punto, un paso con decimales convierte esas paradas en valores que nunca se envían.

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

Enviar necesita el permiso del rol para operar los paneles de control. Bloqueado, el recorrido y la
tecla de envío quedan deshabilitados 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; el propio mando sigue
utilizable, ya que una consigna es un valor absoluto y no pide ninguna lectura primero.

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).
