Gatilhos
O editor de gatilho: identidade e localização, o cartão Agenda com Tipo, Intervalo e Ação, o trilho Agendamento, o agendador de 100 ms com o atraso fixo e os disparos pulados, os comandos, e o que um gatilho não pode fazer.
Um gatilho liga uma causa a uma ação. O único tipo de causa hoje é o Intervalo: o agendador dispara a ação ligada num período fixo. Selecione um gatilho sob a seção Gatilhos da coluna da Logic (ou crie um com Novo… > Novo gatilho) para abrir o editor dele; ler exige Ver a lógica, editar exige Configurar a lógica. Não existe verbo de operação num gatilho: ele dispara sozinho, e uma execução manual é o Executar da própria ação.
O cabeçalho mostra a marca de gatilho, o nome, a frase "Uma agenda que executa uma ação sozinha, no intervalo que você definir." e uma pílula Desabilitado enquanto ele está desligado. A coluna do formulário contém IDENTIDADE e AGENDA; o trilho contém AGENDAMENTO.
Identidade
| Campo | O que é | Valores / padrão | Efeito |
|---|---|---|---|
| Nome | O nome de exibição; as execuções que o gatilho dispara são registradas no diário sob ele. | Texto livre; um gatilho novo é TriggerN; um nome em branco salva como Trigger. |
Salva sozinho a cada tecla. Gatilhos são referenciados por identidade; renomear não afeta mais nada. |
| Linha de localização | Onde o gatilho está arquivado: Triggers / <folder> / <name>. |
Somente leitura. | Um gatilho não tem endereço. Mude a pasta com o Mover para da árvore. |
| Descrição (opcional) | Texto livre. | Vazia. | Nenhum. |
Agenda
| Campo | O que é | Valores / padrão | Efeito |
|---|---|---|---|
| Tipo | A causa. | Intervalo, o único tipo. | Nenhum hoje. |
| Intervalo (ms) | O período de disparo. | Um inteiro de no mínimo 100 (a resolução de varredura do agendador); 1000 por padrão. | Uma entrada menor, negativa ou não interpretável mantém o intervalo guardado e mostra "O intervalo precisa ser um inteiro de no mínimo 100 ms (a resolução do agendador)." Um intervalo alterado zera o relógio: o próximo disparo vence um intervalo novo inteiro depois da próxima varredura. |
| Ação | A ação que o gatilho dispara. | (nenhuma) ou qualquer ação da estação; (nenhuma) por padrão. |
Um gatilho sem ação fica ocioso e diz "Ligue uma ação. O gatilho fica ocioso até lá."; um cuja ação foi excluída diz "A ação ligada não existe mais. Escolha outra."; um cuja ação está desabilitada diz "A ação ligada 'X' está desabilitada, então o gatilho fica ocioso." |
Todo campo salva sozinho; a mensagem de validação é reavaliada a cada meio segundo abaixo do cartão.
Agendamento
O agendador varre a cada 100 ms e dispara na fila da lógica o que estiver vencido:
- Um gatilho recém-criado, habilitado ou editado no intervalo, no tipo ou na ação é semeado na varredura seguinte: o primeiro disparo dele vence um intervalo depois disso.
- Depois de um disparo, o próximo vence um intervalo inteiro a partir de agora (atraso fixo): nunca há uma rajada de recuperação depois de um trecho ocupado.
- Um disparo que vence enquanto a execução anterior daquele gatilho ainda está na fila ou executando é pulado, não enfileirado; o pulo é contado e o disparo seguinte é reagendado. Nenhuma pilha se acumula atrás de uma ação lenta.
- Um gatilho cuja ação está ausente ou desabilitada fica ocioso: ele é reagendado sem disparar, e ficar ocioso nunca conta como pulo.
- A execução é registrada no diário sob o nome do gatilho, e o resultado dela cai no trilho ÚLTIMA EXECUÇÃO da ação. Um gatilho desabilitado nunca dispara.
O trilho AGENDAMENTO mostra os diagnósticos ao vivo: Último disparo, Próximo vencimento (um traço até o agendador ter semeado o relógio), Disparos pulados (uma contagem mantida em memória, de volta a 0 depois de um reinício) e a nota "Um disparo que chega enquanto a execução anterior ainda está pendente é pulado, não enfileirado (sem pilha). Só uma execução que falha chega ao console de Eventos, sob o nome deste gatilho."
O painel da raiz Gatilhos lista todo gatilho com o estado dele na coluna Valor: "A cada 1000 ms · último <quando> · pulos N", ou "Desabilitado".
Comandos
| Comando | O que faz | Esmaecido quando | Não aparece quando |
|---|---|---|---|
| Habilitar / Desabilitar | Vira o Habilitado; habilitar semeia o relógio de novo. | A estação está travada ou em somente leitura. | O papel não tem Configurar a lógica. |
| Copiar | Duplica o gatilho (mesma ação, mesmo intervalo) na raiz Gatilhos, com um nome livre, e o abre; a cópia começa sem agenda. | A estação está travada ou em somente leitura. | O papel não tem Configurar a lógica. |
| Excluir gatilho | Pergunta "Excluir 'X'? Isso remove o gatilho. Isso não pode ser desfeito." | A estação está travada ou em somente leitura. | O papel não tem Configurar a lógica. |
Excluir a ação ligada deixa o gatilho sem ligação, em vez de excluí-lo junto com a ação.
O que os gatilhos não fazem
Não existe outro tipo de causa: nada dispara por mudança de valor, por condição, por hora do dia ou na inicialização. Um gatilho dispara uma ação, nunca várias, e nunca dispara à mão: execute a própria ação. O agendador para junto com o runtime, e um disparo recusado como "Runtime parado" enquanto a estação fecha é descartado em silêncio.