hbox-docs/docs/formularios/diagnostico.html

268 lines
18 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Acta de diagnóstico en campo — HBOX</title>
<script src="../js/tema.js"></script>
<link rel="stylesheet" href="acta.css">
</head>
<body>
<div id="acta"></div>
<script src="flota.js"></script>
<script src="acta.js"></script>
<script>
const led = v => String(v.led || '');
const abrio = v => String(v.abrir || '').startsWith('S');
const conUsb = v => String(v.usb || '').startsWith('S');
Acta.render({
tipo: 'diagnostico-campo',
repetible: true,
tecnicoDesdeUsuario: true,
nombres: { alan: 'Alan', daniel: 'Daniel', leo: 'Leo Rodríguez' },
unidades: window.FLOTA,
etiquetaSerie: 'Unidad que vas a revisar',
titulo: 'Acta de diagnóstico en campo — HBOX',
subtitulo: 'Se llena en la máquina, mientras revisas; no de memoria después.',
textoOK: 'QUEDA OPERATIVA',
intro: 'La causa se encuentra en el banco de Querétaro; tu trabajo es traer la evidencia completa. '
+ 'Una unidad reiniciada antes de leerla ya no se puede diagnosticar.',
secciones: [
{ titulo: 'Reglas',
items: [
{ tipo:'nota', txt:'<div class="peligro"><b>1 · No reinicies, no desconectes, no abras nada hasta el paso 3.</b> '
+ 'Cortar la energía borra la temperatura máxima, los reinicios y la causa del último arranque.</div>' },
{ tipo:'nota', txt:'<div class="peligro"><b>2 · Máquina.</b> Nada sobre un RTG o equipo energizado sin permiso y LOTO. '
+ 'Si está operando, no subas: agenda con el supervisor de ICAVE.</div>' },
{ tipo:'nota', txt:'<div class="peligro"><b>3 · Batería.</b> Hinchada, caliente o con olor a quemado: deja de desarmar, no la perfores, '
+ 'sepárala de la electrónica, foto y aviso inmediato. Hinchada no viaja en avión.</div>' },
{ tipo:'nota', txt:'<div class="peligro"><b>4 · Lluvia o gabinete mojado: no lo abras.</b> Anótalo y regresa en seco.</div>' },
{ tipo:'check', clave:'reglas', req:true, txt:'Leí las cuatro reglas y sigo el procedimiento en orden.' },
] },
{ titulo: '0 · Permiso y máquina',
sub:'En ICAVE el equipo se identifica por la máquina, y no se sube sin autorización por escrito.',
items: [
{ tipo:'nota', txt:'Operaciones (Adriana) pide a ICAVE acceso a la máquina por correo, con los técnicos que suben. '
+ 'Sin correo contestado y horario acordado, no subas: avisa y reagenda.' },
{ tipo:'fecha', clave:'fecha', req:true, guardaEn:'fecha', txt:'Fecha',
ayuda:'Hoy por omisión; cámbiala si capturas una visita de otro día.' },
{ tipo:'sitio', clave:'sitio', guardaEn:'sitio', txt:'Sitio (puerto o terminal)',
ayuda:'Elige el puerto donde está la máquina; la visita aparece en la página del sitio.' },
{ tipo:'texto', clave:'maquina_id', req:true, guardaEn:'maquina_id', rows:'1',
txt:'Máquina (como la nombra ICAVE)',
ph:'FL-JUN-060 · RT-ZPMC-20 · HS-WES-62' },
{ tipo:'radio', clave:'coincide', req:true, txt:'Coincide con la máquina de arriba',
opciones:['Sí, es la misma','No — la unidad está en otra máquina (explícalo abajo)','La lista no dice la máquina'],
aviso:'Si no coincide, avisa a ingeniería: el registro está mal.' },
{ tipo:'radio', clave:'permiso', req:true, guardaEn:'permiso',
txt:'Autorización de acceso',
opciones:['Sí, autorizada por correo','Sí, autorizada en sitio por el supervisor','No — solo la reviso desde afuera, sin subir','No aplica — la unidad ya está en el taller'] },
{ tipo:'texto', clave:'permiso_quien', si:v=>String(v.permiso||'').startsWith('Sí'), rows:'1',
txt:'Quién autorizó y hora', ph:'Abraham (ICAVE) — correo del 18-sep, acceso 09:40' },
{ tipo:'check', clave:'loto', si:v=>String(v.permiso||'').startsWith('Sí'),
txt:'Máquina detenida y bloqueada (LOTO), o el supervisor confirmó que es seguro.' },
{ tipo:'nota', si:v=>String(v.permiso||'').startsWith('No —'),
txt:'<div class="peligro"><b>Sin autorización no subas.</b> Haz lo posible desde el piso (fotos, LED si se ve) y anótalo.</div>' },
{ tipo:'texto', clave:'operador', rows:'1', txt:'Acompañante (operador o supervisor)' },
] },
{ titulo: '1 · Motivo',
sub:'Lo que te dijeron, aunque suene vago.',
items: [
{ tipo:'radio', clave:'motivo', req:true, guardaEn:'motivo', txt:'Motivo',
opciones:['Dejó de reportar','Reporta pero con posición mala o saltos','Nunca ha reportado desde que se instaló',
'La máquina se quedó sin la unidad / se desmontó','Revisión preventiva','Otro (explícalo abajo)'] },
{ tipo:'texto', clave:'reporte', rows:'2', txt:'Quién avisó y qué dijo',
ph:'Ej.: el operador del montacargas dice que ayer en la tarde dejó de verse en el sistema.' },
{ tipo:'texto', clave:'ultima_vez', txt:'Último reporte (fecha y hora aprox.)',
ph:'17-sep, como a las 3 de la tarde' },
{ tipo:'radio', clave:'estado_maquina', txt:'Estado de la máquina',
opciones:['Trabajando normal','Encendida pero parada','Apagada','En taller / fuera de servicio','No sé'] },
] },
{ titulo: '2 · Cómo la encontraste',
sub:'Gabinete cerrado, sin cortar la energía.',
items: [
{ tipo:'foto', clave:'f_maquina', req:true, etiqueta:'maquina',
txt:'Máquina completa con el gabinete a la vista.',
ayuda:'Para ver sol y altura. Una foto basta.' },
{ tipo:'foto', clave:'f_gabinete', req:true, etiqueta:'gabinete-cerrado',
txt:'Gabinete cerrado, de cerca.' },
{ tipo:'foto', clave:'f_antenas', req:true, etiqueta:'antenas',
txt:'Antenas (GPS y dos de celular) con su cable.',
ayuda:'De cerca al conector: cables pellizcados, conectores flojos, antenas rotas o faltantes.' },
{ tipo:'check', clave:'ext_golpes', txt:'Exterior revisado: golpes, tapa, tornillos, prensaestopas.' },
{ tipo:'radio', clave:'ext_estado', txt:'Gabinete por fuera',
opciones:['Bien, sin daños','Golpeado','Con agua o marcas de agua','Con la tapa mal cerrada','Falta alguna antena'] },
{ tipo:'radio', clave:'sol', txt:'Sol directo a esta hora', opciones:['Sí, de lleno','Parcial','No, está en sombra'] },
{ tipo:'medida', clave:'hora_revision', txt:'Hora de la revisión', ph:'14:30', modo:'text' },
] },
{ titulo: '3 · LED de estado',
sub:'Todavía sin cortar la energía.',
items: [
{ tipo:'nota', txt:'Cuenta los destellos durante 10 s con reloj. 5 y 10 destellos significan cosas opuestas (sin corriente de la máquina vs sin enlace).' },
{ tipo:'medida', clave:'destellos', txt:'Destellos en 10 s', ph:'5', u:'destellos' },
{ tipo:'radio', clave:'led', req:true, txt:'Patrón del LED',
opciones:[
'A · Apagado — no prende ni una vez en 30 segundos',
'B · Fijo encendido, sin parpadear',
'C · Un destello muy cortito cada 4 segundos',
'D · Prende 1 seg y apaga 1 seg — latido lento (5 en 10 s)',
'E · Parpadeo parejo, 1 por segundo (10 en 10 s)',
'F · Dos destellos juntos, pausa, y se repite',
'G · Parpadeo rápido continuo, no alcanzo a contarlo',
'H · No puedo ver el LED desde afuera' ] },
{ tipo:'foto', clave:'f_led', etiqueta:'led', txt:'LED encendido (opcional).' },
] },
{ titulo: 'Lectura A — sin energía o muerta', si:v=>led(v).startsWith('A'),
sub:'No le llega energía o el HBOX no enciende; el multímetro decide.',
items: [
{ tipo:'nota', txt:'Máquina apagada, gabinete abierto. Mide en orden; donde deje de haber voltaje está el corte.' },
{ tipo:'medida', clave:'v_maquina', txt:'1) Máquina → gabinete', esperado:'12 V o 24 V según el equipo', u:'V' },
{ tipo:'radio', clave:'breaker', txt:'2) Breaker / fusible del gabinete', opciones:['Cerrado y con continuidad','Botado (disparado)','Fusible abierto (quemado)','No pude revisarlo'] },
{ tipo:'radio', clave:'meanwell_led', txt:'3) LED verde de la Mean Well', opciones:['Encendido','Apagado','No tiene / no se ve'] },
{ tipo:'medida', clave:'v_meanwell', txt:'4) Salida de la Mean Well', esperado:'23 – 26 V', u:'V' },
{ tipo:'medida', clave:'v_gx16', txt:'5) GX16 del HBOX, pines 1-2', esperado:'23 – 26 V', u:'V',
aviso:'Con 24 V aquí y LED apagado: falla del HBOX. Sin 24 V: gabinete o máquina.' },
{ tipo:'medida', clave:'v_ign', txt:'6) GX16 pin 3 (ignición), máquina encendida', esperado:'12 – 24 V con ignición', u:'V' },
{ tipo:'foto', clave:'f_interior_a', req:true, etiqueta:'interior', txt:'Interior del gabinete, antes de mover cables.' },
] },
{ titulo: 'Lectura D — vive en batería, sin corriente de la máquina', si:v=>led(v).startsWith('D'),
sub:'Latido lento = funciona con su batería, que aguanta poco.',
items: [
{ tipo:'nota', txt:'La falla está aguas arriba del HBOX: breaker, fusible, fuente, cable o ignición.' },
{ tipo:'medida', clave:'v_maquina_d', txt:'Máquina → gabinete', esperado:'12 V o 24 V', u:'V' },
{ tipo:'radio', clave:'breaker_d', txt:'Breaker / fusible del gabinete', opciones:['Cerrado y con continuidad','Botado (disparado)','Fusible abierto (quemado)','No pude revisarlo'] },
{ tipo:'medida', clave:'v_gx16_d', txt:'GX16 pines 1-2 (lo que llega al HBOX)', esperado:'23 – 26 V', u:'V' },
{ tipo:'texto', clave:'nota_d', txt:'Punto donde se corta', ph:'Ej.: hay 24 V a la salida de la fuente pero 0 V en el GX16 → cable o conector.' },
{ tipo:'foto', clave:'f_interior_d', req:true, etiqueta:'interior', txt:'Interior del gabinete y el punto donde se corta el voltaje.' },
] },
{ titulo: 'Lectura E / F / G — vive, sin enlace', si:v=>/^[EFG]/.test(led(v)),
sub:'Buscando o perdiendo el enlace de datos.',
items: [
{ tipo:'nota', txt:'Correcciones y datos viajan por el módem 4G, no por el GPS: revisa la cadena celular.' },
{ tipo:'check', clave:'ant_lte', txt:'Dos antenas de celular firmes y sanas.' },
{ tipo:'check', clave:'ant_gnss', txt:'Antena GPS firme, con cielo, cable sin aplastar.' },
{ tipo:'radio', clave:'senal_tel', txt:'Señal Telcel en tu teléfono junto a la máquina',
opciones:['Llena','Media','Una rayita','Nada'] },
{ tipo:'texto', clave:'nota_efg', txt:'Cambios cerca (estructuras, contenedores, gabinete movido)' },
{ tipo:'foto', clave:'f_ant_cerca', req:true, etiqueta:'antenas-detalle', txt:'Conectores de antena de cerca.' },
{ tipo:'nota', txt:'Patrón G (rápido continuo): posible bucle de reinicio. Solo la captura USB del paso 5 lo confirma; hazla.' },
] },
{ titulo: 'Lectura B — se ve sana', si:v=>led(v).startsWith('B'),
sub:'LED fijo = trabajando, con corriente y enlace.',
items: [
{ tipo:'nota', txt:'<b>No la desmontes.</b> Probablemente es el servidor, la SIM o la plataforma. Haz la captura USB del paso 5 y avisa a ingeniería.' },
{ tipo:'check', clave:'b_aviso', txt:'Entendido: la dejo instalada y reporto a ingeniería.' },
] },
{ titulo: 'Lectura C — dormida por batería agotada', si:v=>led(v).startsWith('C'),
sub:'Destello corto cada 4 s. Casi siempre es consecuencia: lleva tiempo sin corriente de la máquina.',
items: [
{ tipo:'medida', clave:'v_gx16_c', txt:'GX16 pines 1-2 (lo que llega al HBOX)', esperado:'23 – 26 V', u:'V' },
{ tipo:'medida', clave:'v_ign_c', txt:'GX16 pin 3 (ignición), máquina encendida', esperado:'12 – 24 V', u:'V' },
{ tipo:'foto', clave:'f_interior_c', req:true, etiqueta:'interior', txt:'Interior del gabinete.' },
] },
{ titulo: 'LED no visible', si:v=>led(v).startsWith('H'),
items: [
{ tipo:'nota', txt:'Sin LED, la captura USB del paso 5 es obligatoria.' },
] },
{ titulo: '4 · Por dentro',
sub:'Gabinete abierto y máquina apagada.',
items: [
{ tipo:'radio', clave:'abrir', req:true, txt:'Gabinete abierto', opciones:['Sí','No — no fue posible (explica al final)'] },
{ tipo:'radio', clave:'tacto', si:abrio, txt:'Caja del HBOX al tacto (dorso de la mano)',
opciones:['Fría o al tiempo','Tibia','Caliente pero se aguanta','Quema — no se puede tocar'] },
{ tipo:'medida', clave:'t_ir', si:abrio, txt:'Temperatura dentro del gabinete (IR)', esperado:'anota también la del aire afuera', u:'°C' },
{ tipo:'medida', clave:'t_amb', si:abrio, txt:'Temperatura ambiente a la sombra', u:'°C' },
{ tipo:'radio', clave:'olor', si:abrio, req:true, txt:'Olor a quemado', opciones:['No','Sí, leve','Sí, fuerte'] },
{ tipo:'radio', clave:'agua', si:abrio, txt:'Agua o condensación', opciones:['No','Gotas o empañado','Encharcado'] },
{ tipo:'radio', clave:'bateria', si:abrio, req:true, txt:'Batería',
opciones:['Normal','Hinchada o abombada','Con manchas cafés o negras','Con líquido o fuga','Caliente','No tiene batería / no la vi'],
aviso:'Hinchada, con fuga o caliente: deja de desarmar, sepárala, no la perfores y avisa hoy.' },
{ tipo:'foto', clave:'f_bateria', etiqueta:'bateria',
si:v=>['Hinchada','Con manchas','Con líquido','Caliente'].some(t=>String(v.bateria||'').startsWith(t)),
req:true, txt:'Batería, dos ángulos.' },
{ tipo:'foto', clave:'f_quemado', etiqueta:'dano', si:v=>String(v.olor||'').startsWith('Sí'),
req:true, txt:'Lo quemado, oscurecido o derretido.' },
{ tipo:'check', clave:'wiggle', si:abrio, txt:'Meneo suave de conectores y cables (lo flojo, abajo).' },
{ tipo:'texto', clave:'nota_interior', si:abrio, rows:'2', txt:'Hallazgos' },
] },
{ titulo: '5 · Captura por USB',
sub:'Temperatura máxima, reinicios y causa del último arranque; se pierden al cortar la corriente.',
items: [
{ tipo:'nota', txt:'USB del Blackpill → puerto serie a 115200 guardando a archivo → 3 min → RESET y graba el arranque. Pega abajo las líneas BOOT y TLM.' },
{ tipo:'radio', clave:'usb', req:true, txt:'Captura',
opciones:['Sí, con archivo guardado','Sí, pero solo pude ver la pantalla','No traía laptop','No, la unidad no enciende','No, no hay acceso físico al USB'] },
{ tipo:'texto', clave:'linea_boot', si:conUsb, rows:'2',
txt:'Línea BOOT', ph:'BOOT,1234,fw=3.0.3,reset=…' },
{ tipo:'texto', clave:'linea_tlm', si:conUsb, rows:'3',
txt:'Última línea TLM', ph:'TLM,…,RUN,OK,4,14,…' },
{ tipo:'nota', si:conUsb,
txt:'Si no puedes pegar, llena a mano los cuatro campos de abajo.' },
{ tipo:'medida', clave:'tlm_tmax', si:conUsb, txt:'<code>tmax</code> (temperatura máxima)', u:'°C' },
{ tipo:'medida', clave:'tlm_rec', si:conUsb, txt:'<code>rec</code> (recuperaciones)' },
{ tipo:'medida', clave:'tlm_vbat', si:conUsb, txt:'<code>vbat</code> (batería)', u:'V' },
{ tipo:'medida', clave:'tlm_veh', si:conUsb, txt:'<code>veh</code> (1 = hay corriente de la máquina)' },
{ tipo:'archivo', clave:'log_blackpill', etiqueta:'captura-blackpill',
si:v=>String(v.usb||'').startsWith('Sí, con archivo'), req:true,
txt:'Captura del Blackpill',
ayuda:'El .txt o .log de PuTTY / TeraTerm.' },
{ tipo:'foto', clave:'f_pantalla', etiqueta:'captura-usb', si:conUsb,
txt:'Pantalla de la laptop con las líneas (respaldo).' },
] },
{ titulo: '6 · Reinicio controlado',
sub:'Solo después de los pasos 2 a 5.',
items: [
{ tipo:'check', clave:'evidencia_lista', req:true, txt:'Fotos y captura USB (si se pudo) tomadas: evidencia completa.' },
{ tipo:'radio', clave:'reinicio', txt:'Energía cortada 30 s y devuelta; resultado a 2 min',
opciones:['Revivió y quedó con LED fijo','Revivió pero volvió a fallar','Sigue igual','No lo intenté'] },
] },
{ titulo: '7 · Clasificación y resultado',
sub:'Lo que observaste, no lo que supones. "No está claro" es válido.',
items: [
{ tipo:'radio', clave:'clasificacion', req:true, guardaEn:'clasificacion', txt:'Clasificación',
opciones:[
'Sin corriente desde la máquina o el gabinete',
'El HBOX no enciende aunque le llega 24 V',
'Enlace 4G: no hay datos ni correcciones',
'Antena suelta, rota o faltante',
'Batería dañada (hinchada, caliente o con fuga)',
'Daño por calor (quemado, derretido, decolorado)',
'Agua adentro del gabinete',
'Daño mecánico o golpe',
'La unidad se ve sana — el problema parece ser del servidor',
'No está claro — se necesita banco' ] },
{ tipo:'radio', clave:'accion', req:true, guardaEn:'accion', txt:'Resultado',
opciones:[
'Instalada y reportando',
'Instalada, pero sin resolver — pendiente de ingeniería',
'Desmontada y guardada en el taller, etiquetada',
'Desmontada y enviada a Querétaro',
'Reemplazada por otra unidad (anota cuál abajo)' ] },
{ tipo:'texto', clave:'unidad_repuesto', si:v=>String(v.accion||'').startsWith('Reemplazada'),
txt:'Serie de la unidad instalada' },
{ tipo:'texto', clave:'observaciones', rows:'4', req:true,
txt:'Observaciones',
ph:'Qué viste y qué hiciste, como se lo contarías a un compañero.' },
{ tipo:'foto', clave:'f_final', etiqueta:'final', txt:'Cómo quedó (instalada o empacada).' },
] },
]
});
</script>
</body>
</html>