@libs-scripts-mep/detectors
v1.4.3
Published
Abra o terminal, e na pasta raíz do script, execute:
Downloads
238
Readme
Detectors 🔎
Instalando
Abra o terminal, e na pasta raíz do script, execute:
npm i @libs-scripts-mep/detectorsDesinstalando
Abra o terminal, e na pasta raíz do script, execute:
npm uninstall @libs-scripts-mep/detectorsAtualizando
Abra o terminal, e na pasta raíz do script, execute:
npm update @libs-scripts-mep/detectorsUso básico
A biblioteca fornece duas classes principais:
Detector→ responsável por criar detectores digitais ou analógicos.DetectorRunner→ responsável por executar a detecção e controlar o ciclobefore → detect → after.
Criando um detector digital
import { Detector } from "@libs-scripts-mep/detectors"
import { DetectionMode } from "@libs-scripts-mep/detectors/test-types.js"
// Exemplo: detector digital que dispara na transição RISING
const detector = Detector.createDigital(
"Reed Switch", // Nome do circuito
{ value: false }, // Objeto observado
DetectionMode.RISING, // Modo de detecção
5000 // Timeout em ms
)Modos disponíveis para digitais:
- INSTANT → verifica valor instantâneo (true ou false).
- RISING → detecta transição de false → true.
- FALLING → detecta transição de true → false.
- CHANGE → detecta qualquer mudança de estado.
- HOLD → verifica se o valor permanece por um certo tempo.
Criando um detector analógico
import { Detector } from "../node_modules/@libs-scripts-mep/detectors/detectors.js"
import { DetectionMode } from "../node_modules/@libs-scripts-mep/detectors/test-types.js"
// Exemplo: detector analógico que exige manter valor por 1000ms
const detector = Detector.createAnalog(
"Battery",
{ value: 23.8 },
24, // Valor esperado
1, // Tolerância
DetectionMode.HOLD,
5000, // Timeout
1000 // Hold em ms
)Modos disponíveis para analógicos:
- INSTANT → verifica valor instantâneo.
- HOLD → verifica se o valor permanece por um certo tempo.
Executando a detecção completa (lifecycle before → detect → after)
import { DetectorRunner } from "../node_modules/@libs-scripts-mep/detectors/detectors.js"
async function testFunction() {
const digitalDetector = Detector.createDigital("Relay RL1", { value: false }, DetectionMode.RISING, 5000)
const result = await DetectorRunner.run(
digitalDetector,
() => console.log("➡️ Antes da detecção"),
async () => {
// Simula trigger externo que muda o valor
setTimeout(() => digitalDetector.inputRef.value = true, 1000)
},
() => console.log("✅ Depois da detecção")
)
console.log(result)
}
testFunction()Executando apenas a detecção
import { Detector } from "../node_modules/@libs-scripts-mep/detectors/detectors.js"
async function testFunction() {
const digitalDetector = Detector.createDigital("Relay RL1", { value: false }, DetectionMode.RISING, 5000)
const result = await digitalDetector.detect()
console.log(result)
}
testFunction()Resultado da detecção
Se a detecção for bem-sucedida, o detection irá conter os dados da detecção:
{
"error": null,
"detection": {
"success": true,
"circuitName": "Relay RL1",
"timestamp": 1699999999999,
"message": "Transição RISING detectada"
}
}Se a detecção falhar, o detection irá conter os dados da detecção:
{
"error": null,
"detection": {
"success": false,
"circuitName": "Relay RL1",
"timestamp": 1699999999999,
"message": "Transição RISING não detectada no tempo limite"
}
}Se a detecção falhar (exception), o error irá conter uma mensagem de erro:
{
"error": "Uncaught Error: ❌...",
"detection": null
}