Disparadores
El editor del disparador: identidad y ubicación, la tarjeta Programación con Tipo, Intervalo y Acción, el riel Planificación, el planificador de 100 ms con su retardo fijo y sus ticks omitidos, los comandos y lo que un disparador no puede hacer.
Un disparador ata una causa a una acción. Hoy la única clase de causa es el Intervalo: el planificador lanza la acción vinculada con un periodo fijo. Seleccione un disparador bajo la sección Disparadores de la columna de Logic (o cree uno con Nuevo… > Nuevo disparador) para abrir su editor; leerlo necesita Ver Logic y editarlo Configurar Logic. Un disparador no tiene ningún verbo de operación: se lanza solo, y una ejecución manual es el Ejecutar de la propia acción.
El encabezado muestra la marca de disparador, el nombre, la línea "Una programación que ejecuta una acción por sí sola, al intervalo que usted fije." y una pastilla Desactivado mientras está apagado. La columna del formulario lleva IDENTIDAD y PROGRAMACIÓN; el riel lleva PLANIFICACIÓN.
La identidad
| Campo | Qué es | Valores / valor inicial | Efecto |
|---|---|---|---|
| Nombre | El nombre visible; las ejecuciones que lanza el disparador se registran bajo él. | Texto libre; un disparador nuevo es TriggerN; un nombre en blanco se guarda como Trigger. |
Se guarda solo con cada tecla. Los disparadores se referencian por identidad; renombrarlos no afecta a nada más. |
| Línea de ubicación | Dónde está archivado el disparador: Disparadores / <carpeta> / <nombre>. |
De solo lectura. | Un disparador no tiene dirección. Cambie la carpeta con Mover a en el árbol. |
| Descripción (opcional) | Texto libre. | Vacía. | Ninguno. |
La programación
| Campo | Qué es | Valores / valor inicial | Efecto |
|---|---|---|---|
| Tipo | La causa. | Intervalo, la única clase. | Ninguno hoy. |
| Intervalo (ms) | El periodo de disparo. | Un entero de al menos 100 (la resolución de recorrido del planificador); 1000 al inicio. | Una entrada menor, negativa o que no se pueda interpretar conserva el intervalo guardado y muestra "El intervalo debe ser un entero de al menos 100 ms (la resolución del planificador)." Un intervalo cambiado reinicia el reloj: el siguiente tick vence un intervalo nuevo completo después del siguiente recorrido. |
| Acción | La acción que lanza el disparador. | (ninguna) o cualquier acción de la estación; (ninguna) al inicio. |
Un disparador sin acción queda inactivo y dice "Vincule una acción. Hasta entonces el disparador queda inactivo."; uno cuya acción se eliminó dice "La acción vinculada ya no existe. Elija otra."; uno cuya acción está desactivada dice "La acción vinculada 'X' está desactivada, así que el disparador queda inactivo." |
Todos los campos se guardan solos; el mensaje de validación se vuelve a evaluar cada medio segundo debajo de la tarjeta.
La planificación
El planificador recorre cada 100 ms y lanza a la cola de la lógica lo que haya vencido:
- Un disparador recién creado, recién activado o recién editado en su intervalo, su tipo o su acción se siembra en el siguiente recorrido: su primer tick vence un intervalo después de eso.
- Después de un disparo, el siguiente tick vence un intervalo completo a partir de ahora (retardo fijo): nunca hay una ráfaga de recuperación después de un tramo ocupado.
- Un tick que vence mientras la ejecución anterior de ese disparador sigue encolada o ejecutándose se omite, no se encola; la omisión se cuenta y el siguiente tick se reprograma. Detrás de una acción lenta no se puede acumular ninguna fila.
- Un disparador cuya acción falta o está desactivada queda inactivo: se reprograma sin lanzar nada, y quedar inactivo nunca cuenta como una omisión.
- La ejecución se registra bajo el nombre del disparador y su resultado aterriza en el riel ÚLTIMA EJECUCIÓN de la acción. Un disparador desactivado nunca lanza nada.
El riel PLANIFICACIÓN muestra los diagnósticos en vivo: Último disparo, Próximo programado (un guion hasta que el planificador haya sembrado el reloj), Ticks omitidos (un conteo que se guarda en memoria y regresa a 0 después de un reinicio) y la nota "Un tick que llega mientras la ejecución anterior sigue pendiente se omite, no se encola (sin acumulación). Solo una ejecución fallida llega a la consola de Eventos, bajo el nombre de este disparador."
El panel de la raíz Disparadores lista todos los disparadores con su estado en la columna Valor: "Cada 1000 ms · último <cuándo> · omisiones N", o "Desactivado".
Los comandos
| Comando | Qué hace | Gris cuando | No se dibuja cuando |
|---|---|---|---|
| Activar / Desactivar | Cambia Activado; activarlo vuelve a sembrar el reloj. | La estación está bloqueada o en solo lectura. | El rol no tiene Configurar Logic. |
| Copiar | Duplica el disparador (con la misma acción y el mismo intervalo) en la raíz Disparadores con un nombre libre y lo abre; la copia arranca sin programar. | La estación está bloqueada o en solo lectura. | El rol no tiene Configurar Logic. |
| Eliminar el disparador | Pregunta "¿Eliminar 'X'? Esto quita el disparador. Esta acción no se puede deshacer." | La estación está bloqueada o en solo lectura. | El rol no tiene Configurar Logic. |
Eliminar la acción vinculada deja el disparador sin vínculo, en lugar de eliminarlo junto con la acción.
Lo que los disparadores no hacen
No hay ninguna otra clase de causa: nada se lanza por un cambio de valor, por una condición, por una hora del día ni al arrancar. Un disparador lanza una acción, nunca varias, y nunca se lanza a mano: ejecute la acción misma. El planificador se detiene con el runtime, y un disparo rechazado con "Runtime detenido" mientras la estación se cierra se descarta sin ruido.