Disparadores
El editor de disparadores: identidad y ubicación, la tarjeta Programación con Tipo, Intervalo y Acción, el carril 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 liga 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; leer necesita Ver Logic, y editar Configurar Logic. En un disparador no hay ningún verbo de operación: se lanza solo, y una ejecución manual es el propio Ejecutar de la acción.
La cabecera 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 insignia Deshabilitado mientras está apagado. La columna del formulario lleva IDENTIDAD y PROGRAMACIÓN; el carril lleva PLANIFICACIÓN.
Identidad
| Campo | Qué es | Valores / por defecto | Efecto |
|---|---|---|---|
| Nombre | El nombre visible; las ejecuciones que lanza el disparador se anotan en el diario bajo él. | Texto libre; un disparador nuevo es TriggerN; un nombre en blanco se guarda como Trigger. |
Se guarda solo con cada pulsación de tecla. Los disparadores se referencian por identidad; cambiar el nombre no afecta a nada más. |
| Línea de ubicación | Dónde está archivado el disparador: Triggers / <folder> / <name>. |
Solo lectura. | Un disparador no tiene dirección. La carpeta se cambia con Mover a en el árbol. |
| Descripción (opcional) | Texto libre. | Vacía. | Ninguno. |
Programación
| Campo | Qué es | Valores / por defecto | Efecto |
|---|---|---|---|
| Tipo | La causa. | Intervalo, la única clase. | Ninguno hoy. |
| Intervalo (ms) | El periodo de disparo. | Un entero de 100 como mínimo (la resolución de análisis del planificador); 1000 por defecto. | Una entrada más pequeña, negativa o que no se puede 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 toca un intervalo nuevo completo después del siguiente análisis. |
| Acción | La acción que lanza el disparador. | (ninguna) o cualquier acción de la estación; (ninguna) por defecto. |
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á deshabilitada dice "La acción vinculada 'X' está deshabilitada, así que el disparador queda inactivo." |
Todos los campos se guardan solos; el mensaje de validación se vuelve a evaluar cada medio segundo bajo la tarjeta.
Planificación
El planificador analiza cada 100 ms y lanza a la cola de la lógica lo que toca:
- Un disparador recién creado, habilitado, o editado en su intervalo, su tipo o su acción se siembra en el siguiente análisis: su primer tick toca un intervalo después de ese momento.
- Tras un disparo, el siguiente tick toca un intervalo completo desde ahora (retardo fijo): nunca hay una ráfaga de recuperación después de un tramo ocupado.
- Un tick que toca mientras la ejecución anterior de ese disparador sigue encolada o corriendo 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 ningún atraso.
- Un disparador cuya acción falta o está deshabilitada queda inactivo: se reprograma sin lanzar nada, y quedar inactivo no cuenta nunca como una omisión.
- La ejecución se anota en el diario bajo el nombre del disparador y su resultado aterriza en el carril ÚLTIMA EJECUCIÓN de la acción. Un disparador deshabilitado no se lanza nunca.
El carril PLANIFICACIÓN muestra los diagnósticos en vivo: Último disparo, Próximo previsto (un guion hasta que el planificador ha sembrado el reloj), Ticks omitidos (un recuento que se guarda en memoria y vuelve a 0 tras 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 <when> · omisiones N", o "Deshabilitado".
Comandos
| Comando | Qué hace | En gris cuando | No se dibuja cuando |
|---|---|---|---|
| Habilitar / Deshabilitar | Cambia Habilitado; habilitarlo vuelve a sembrar el reloj. | La estación está bloqueada o de solo lectura. | El rol no tiene Configurar Logic. |
| Copiar | Duplica el disparador (misma acción, mismo intervalo) en la raíz Disparadores con un nombre libre y lo abre; la copia empieza sin programar. | La estación está bloqueada o de 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 de solo lectura. | El rol no tiene Configurar Logic. |
Eliminar la acción vinculada deja el disparador sin vínculo, en vez 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, a 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 en sí. El planificador se detiene con el runtime, y un disparo rechazado con "Runtime detenido" mientras la estación se cierra se descarta en silencio.