**Version 1.3.2**

- Hemos colocado un codigo de dos lineas para eliminar el boton del menu activo "COMPLETAR INFO" en caso que se presente una tarjeta o un codigo QR.
Esto lo hicimos en el nodo "Analisis del modo de Operacion" en la linea 70 donde chequeamos si estamos en movimiento inicial.

- Corregido un "error" que no permitia cerrar el movimiento inicial cuando se pasaba una tarjeta si teniamos el menu activo y la firma obligatoria.
Se agrego una condicion ("ID_verificado") en la condicion global para llamar a la firma. Esto es en el nodo "Analisis de Operacion" en las primeras lineas
if (flow.get("firma_obligatoria") && !flow.get("firma_flag") && !flow.get("firma_ok_flag") && !flow.get("supervisor") && (!flow.get("menu_activo") || (flow.get("menu_activo") && (flow.get("menu_seleccionado_flag") || ID_verificado))))
Con esto permite continuar con la firma en caso que tengamos menu_activo y firma obligatoria y entremos con tarjeta o con codigo QR.

**Version 1.3.1**
- Hemos colocado una opcion mas en el menu de configuración en "Pruebas del Sistema" -> "Probar Sensor". Esto permite visualizar la salida del valor
de la distancia que esta midiendo el sensor cada segundo. Para que el medidor no este continuamente inundando el configurador con el dato de distancia
hemos colocado un switch el cual solo deja pasar ese dato cuando se activa el menu, lo inhabilita cuando se sale del menu.

- Hemos puesto el flag flow.set("RFID_ok_flag", false) cuando leemos un QR y flow.set("QR_ok_flag", false) cuando leemos una tarjeta, esto permite
que se utilice un QR aunque primero hayamos metido una tarjeta invalida y viceversa. Se hizo en el nodo "envio QR/RFID".
This commit is contained in:
2026-03-16 09:04:42 +01:00
parent 24b3cdf70f
commit bfcf67fe83
4 changed files with 311 additions and 127 deletions
+209 -127
View File
File diff suppressed because one or more lines are too long
+53
View File
@@ -524,6 +524,59 @@ td[contenteditable="true"] {
font-size: 12px; font-size: 12px;
} }
} }
/* =============================== PANTALLA SENSOR AÑADIDO POR DAVID=============================== */
.sensor-info-block {
display: flex;
justify-content: space-between;
align-items: center;
margin: 10px 0;
padding: 10px 14px;
background: #f4f6f8;
border-radius: 8px;
}
.sensor-label {
font-size: 14px;
font-weight: bold;
color: #555;
}
.sensor-valor {
font-size: 28px;
font-weight: bold;
color: #2c3e50;
}
.sensor-valor-min {
font-size: 22px;
font-weight: bold;
color: #e67e22;
}
.sensor-barra-wrap {
padding: 0 4px;
}
.sensor-barra-bg {
position: relative;
height: 46px;
background: #dce3ea;
border-radius: 10px;
overflow: visible;
max-height: 20px;
}
.sensor-barra-fill {
height: 100%;
width: 0%;
border-radius: 10px;
background: #3498db;
transition: width 0.5s ease, background-color 0.3s;
}
/*-------------------------------------------------- IMAGEN INICIAL DEL SNAPSHOT ---------------------------------------------------------------------*/ /*-------------------------------------------------- IMAGEN INICIAL DEL SNAPSHOT ---------------------------------------------------------------------*/
/* /*
#foto { #foto {
+30
View File
@@ -112,6 +112,7 @@
<button class="btn aqua" data-action="barrera">ACTIVAR BARRERA</button> <button class="btn aqua" data-action="barrera">ACTIVAR BARRERA</button>
<button class="btn orange" data-action="snapshot">PEDIR SNAPSHOT</button> <button class="btn orange" data-action="snapshot">PEDIR SNAPSHOT</button>
<button class="btn green" data-action="escuchar">ESCUCHAR CAMARA</button> <button class="btn green" data-action="escuchar">ESCUCHAR CAMARA</button>
<button class="btn purple" data-action="sensor">PROBAR SENSOR</button>
<button class="btn teal" data-action="regresar">SALIR</button> <button class="btn teal" data-action="regresar">SALIR</button>
</div> </div>
</div> </div>
@@ -220,6 +221,35 @@
<button class="btn teal big" data-action="salir-escuchar">SALIR</button> <button class="btn teal big" data-action="salir-escuchar">SALIR</button>
</div> </div>
</div> </div>
<!-- -------------------------------------- PANTALLA PRUEBA DEL SENSOR AÑADIDO POR DAVID--------------------------------------------------- -->
<div id="pantalla-sensor" class="pantalla">
<div class="container">
<div class="header">
<img src="/logo-trypton2.png" class="logo" alt="Logo">
<h2>Trypton Software</h2>
</div>
<h3 class="titulo">PRUEBA DEL SENSOR</h3>
<hr>
<div class="sensor-info-block">
<span class="sensor-label">Distancia mínima configurada</span>
<span class="sensor-valor-min" id="sensor-dmin">--- mm</span>
</div>
<div class="sensor-info-block">
<span class="sensor-label">Distancia detectada</span>
<span class="sensor-valor" id="sensor-dist">--- mm</span>
</div>
<div class="sensor-barra-wrap">
<div class="sensor-barra-bg">
<div class="sensor-barra-fill" id="sensor-fill"></div>
</div>
</div>
<button class="btn teal big" data-action="salir-sensor">SALIR</button>
</div>
</div>
<!-- ------------------------------- PANTALLA DE TABLA DINAMICA PARA MOSTRAR PARAMETROS DE CONFIGURACION-------------------------------------------------> <!-- ------------------------------- PANTALLA DE TABLA DINAMICA PARA MOSTRAR PARAMETROS DE CONFIGURACION------------------------------------------------->
<div id="pantalla-tabla-general" class="pantalla"> <div id="pantalla-tabla-general" class="pantalla">
+19
View File
@@ -137,7 +137,26 @@ uibuilder.onChange('msg', msg => {
if (msg.hasOwnProperty("totem_id")) document.getElementById('totem-id').textContent = msg.totem_id; if (msg.hasOwnProperty("totem_id")) document.getElementById('totem-id').textContent = msg.totem_id;
if (msg.hasOwnProperty("iplan")) document.getElementById('iplan').textContent = msg.iplan; if (msg.hasOwnProperty("iplan")) document.getElementById('iplan').textContent = msg.iplan;
if (msg.hasOwnProperty("ipsupervisor")) document.getElementById('ipsupervisor').textContent = msg.ipsupervisor; if (msg.hasOwnProperty("ipsupervisor")) document.getElementById('ipsupervisor').textContent = msg.ipsupervisor;
// ======== Sensor de distancia añadido por david========
if (msg.hasOwnProperty("distance")) {
const dist = msg.distance;
const dmin = msg.distance_min;
const maxRange = 4000;
document.getElementById('sensor-dist').textContent =
(dist !== null && dist !== undefined) ? dist + ' mm' : '--- mm';
if (dmin !== null && dmin !== undefined) {
document.getElementById('sensor-dmin').textContent = dmin + ' mm';
}
if (dist !== null && dist !== undefined) {
const fillPct = Math.min((dist / maxRange) * 100, 100);
const fill = document.getElementById('sensor-fill');
fill.style.width = fillPct + '%';
}
}
}); });
//****************************************************************************************************************************************************** */ //****************************************************************************************************************************************************** */