147 lines
11 KiB
HTML
147 lines
11 KiB
HTML
<!doctype html>
|
||
<html lang="es">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>Acta de recepción e inspección — HBOX</title>
|
||
<link rel="stylesheet" href="acta.css">
|
||
</head>
|
||
<body>
|
||
<div id="acta"></div>
|
||
<script src="flota.js"></script>
|
||
<script src="series.js"></script>
|
||
<script src="acta.js"></script>
|
||
<script>
|
||
const enciende = v => String(v.enciende || '').startsWith('Sí');
|
||
const corto = v => String(v.continuidad || '').startsWith('Sí');
|
||
const conBat = v => !String(v.bateria_fisica || '').startsWith('La unidad no trae');
|
||
const batMala = v => ['Hinchada','Con manchas','Caliente'].some(t => String(v.bateria_fisica || '').startsWith(t));
|
||
const puedeEnergizar = v => !corto(v);
|
||
|
||
Acta.render({
|
||
tipo: 'recepcion',
|
||
repetible: true,
|
||
tecnicoDesdeUsuario: true,
|
||
nombres: { alan: 'Alán Basurto', daniel: 'Daniel Martínez', leo: 'Leo Rodríguez' },
|
||
unidades: window.SERIES,
|
||
etiquetaSerie: 'Unidad que se recibe',
|
||
titulo: 'Acta de recepción e inspección',
|
||
subtitulo: 'Helgen Technologies · una por cada caja, al abrirla, ANTES de entrar al puerto.',
|
||
textoOK: 'LISTA PARA ENTRAR',
|
||
intro: '<b>Para qué sirve.</b> Es la última revisión antes de que la unidad cruce la puerta del puerto, donde ya '
|
||
+ 'no se puede regresar por un cable ni abrir la caja. Se hace <b>a cada unidad, sin excepción</b>: se compara '
|
||
+ 'contra el <b>acta de envío</b> (mismo firmware, misma SIM, mismo contenido), se busca daño de transporte y se '
|
||
+ 'comprueba con multímetro y fuente que la unidad enciende bien <b>antes</b> de que alguien la suba a una máquina. '
|
||
+ '<b>Kit:</b> fuente de 24 V (≥ 1 A, con límite de corriente si la tiene), multímetro, cable USB con datos, laptop. '
|
||
+ '<b>Orden obligatorio:</b> inspección → multímetro sin energía → energizar → prueba de vida.',
|
||
secciones: [
|
||
|
||
{ titulo: '0 · Qué llega y dónde',
|
||
items: [
|
||
{ tipo:'fecha', clave:'fecha', req:true, guardaEn:'fecha', txt:'Fecha de recepción' },
|
||
{ tipo:'radio', clave:'donde', req:true, guardaEn:'clasificacion', txt:'¿Dónde la recibes?',
|
||
opciones:['Taller Veracruz','Oficina ICAVE','Otra terminal','Querétaro'] },
|
||
{ tipo:'texto', clave:'guia', rows:'1', txt:'Número de guía o quién la entregó' },
|
||
{ tipo:'texto', clave:'maquina_destino', rows:'1', guardaEn:'maquina_id', txt:'Máquina a la que va', ph:'FL-JUN-060' },
|
||
] },
|
||
|
||
{ titulo: '1 · El paquete, antes de abrir',
|
||
items: [
|
||
{ tipo:'foto', clave:'f_paquete', req:true, etiqueta:'paquete', txt:'La caja cerrada tal como llegó.' },
|
||
{ tipo:'radio', clave:'paquete', req:true, txt:'Estado del paquete',
|
||
opciones:['Intacto','Golpeado o aplastado','Abierto o con cinta distinta','Mojado'] },
|
||
{ tipo:'foto', clave:'f_dano_paquete', etiqueta:'paquete-dano', si:v=>!String(v.paquete||'').startsWith('Intacto'), req:true,
|
||
txt:'Foto del daño del paquete, antes de abrirlo.' },
|
||
] },
|
||
|
||
{ titulo: '2 · Contenido contra el acta de envío',
|
||
sub:'Abre el acta de envío de esta unidad (expediente, arriba) y compara punto por punto.',
|
||
items: [
|
||
{ tipo:'check', clave:'c_unidad', req:true, txt:'Unidad HBOX presente, etiqueta legible, <b>la serie coincide</b> con la del envío.' },
|
||
{ tipo:'check', clave:'c_ant_gnss', txt:'Antena GNSS con cable.' },
|
||
{ tipo:'check', clave:'c_ant_lte', txt:'2 antenas LTE.' },
|
||
{ tipo:'check', clave:'c_gx16', txt:'Arnés GX16.' },
|
||
{ tipo:'check', clave:'c_docs', txt:'Hoja con serie, máquina y contacto.' },
|
||
{ tipo:'texto', clave:'faltante', rows:'2', txt:'¿Falta algo o llegó algo de más?' },
|
||
{ tipo:'foto', clave:'f_contenido', req:true, etiqueta:'contenido', txt:'Todo el contenido desplegado.' },
|
||
] },
|
||
|
||
{ titulo: '3 · Inspección física de la unidad — daño de transporte',
|
||
sub:'Con la tapa abierta y SIN energía. Lo que se busca: golpes, cosas sueltas y módulos que se salieron de su zócalo con la vibración.',
|
||
items: [
|
||
{ tipo:'check', clave:'i_sacudir', req:true, txt:'Sacudí la unidad cerrada junto al oído: <b>nada suena suelto</b> adentro.' },
|
||
{ tipo:'radio', clave:'gabinete', req:true, txt:'Gabinete y prensaestopas',
|
||
opciones:['Sin daño','Rayado o marcado (cosmético)','Golpeado, agrietado o deformado','Con humedad adentro'] },
|
||
{ tipo:'check', clave:'i_zocalos', req:true, txt:'Módulos <b>bien asentados en sus zócalos</b>: Blackpill (si la tarjeta lo lleva), simpleRTK2B en los headers UNO y módem 4G en el zócalo XBee. Empujé cada uno con el dedo: no se mueven ni quedan pines fuera.' },
|
||
{ tipo:'check', clave:'i_conectores', req:true, txt:'Prueba de meneo en cada conector, Dupont y SMA: los SMA de las antenas apretados, el GX16 con seguro, ningún cable con el aislante pelado o pellizcado por la tapa.' },
|
||
{ tipo:'radio', clave:'placa', req:true, txt:'Tarjeta a simple vista',
|
||
opciones:['Normal','Componente desprendido o pista levantada','Marca de quemado o decoloración','Corrosión o humedad'] },
|
||
{ tipo:'radio', clave:'bateria_fisica', req:true, txt:'Estado físico de la batería',
|
||
opciones:['Normal','Hinchada o abombada','Con manchas o fuga','Caliente','La unidad no trae batería'],
|
||
aviso:'Hinchada, con fuga o caliente: <b>desconéctala antes de energizar</b> y la unidad <b>no entra</b>. Registra un acta de daño.' },
|
||
{ tipo:'foto', clave:'f_bat', etiqueta:'bateria', si:batMala, req:true, txt:'Foto de la batería, dos ángulos.' },
|
||
{ tipo:'foto', clave:'f_interior', req:true, etiqueta:'interior', txt:'El interior de la unidad, tapa abierta, con los módulos y conectores a la vista.' },
|
||
{ tipo:'foto', clave:'f_dano_unidad', etiqueta:'unidad-dano', txt:'Foto de cualquier daño que hayas encontrado (de cerca).',
|
||
si:v=>['Golpeado','Con humedad'].some(t=>String(v.gabinete||'').startsWith(t)) || !String(v.placa||'').startsWith('Normal'), req:true },
|
||
{ tipo:'texto', clave:'nota_fisica', rows:'2', txt:'¿Qué encontraste?' },
|
||
] },
|
||
|
||
{ titulo: '4 · Multímetro SIN energía — continuidad a tierra',
|
||
sub:'Multímetro en Ω, fuente apagada y desconectada, batería desconectada si se puede. Un corto que llegó del transporte se detecta aquí y no con humo.',
|
||
items: [
|
||
{ tipo:'nota', txt:'<div class="peligro"><b>Nunca energices antes de medir continuidad.</b> Si hay un corto, la fuente lo va a alimentar y el daño ya no se puede rastrear al transporte.</div>' },
|
||
{ tipo:'medida', clave:'r_24v', req:true, txt:'Entrada 24 V a GND (GX16 pines 1-2)', esperado:'> 10 kΩ (la lectura sube mientras cargan los capacitores)', u:'Ω' },
|
||
{ tipo:'medida', clave:'r_5v', req:true, txt:'Riel de 5 V a GND (salida Mean Well / P2)', esperado:'> 1 kΩ', u:'Ω' },
|
||
{ tipo:'medida', clave:'r_3v3', txt:'Riel de 3.3 V a GND', esperado:'> 1 kΩ', u:'Ω' },
|
||
{ tipo:'radio', clave:'continuidad', req:true, txt:'¿Alguna lectura se quedó fija entre 0 y 20 Ω?',
|
||
opciones:['No — todo abierto','Sí — hay un corto'],
|
||
aviso:'Con corto <b>no se energiza</b>. La unidad no entra: registra un <b>acta de daño</b> con la lectura y la foto, y marca la serie.' },
|
||
{ tipo:'medida', clave:'v_bat_vacio', si:conBat, req:true, txt:'Voltaje de la batería en vacío', esperado:'3.0 – 4.2 V (compara con el del acta de envío)', u:'V',
|
||
aviso:'Menor a 3.0 V: la batería se descargó en el trayecto; anótalo. Mucho más baja que en el envío: sospecha de consumo con la unidad "apagada".' },
|
||
] },
|
||
|
||
{ titulo: '5 · Energizar y medir',
|
||
sub:'Solo si el paso 4 salió limpio. Fuente de 24 V al GX16 (pines 1-2), antenas conectadas, tapa abierta para medir. Si la fuente tiene límite de corriente, ponlo en 1 A.',
|
||
items: [
|
||
{ tipo:'radio', clave:'enciende', req:true, si:puedeEnergizar, txt:'Al energizar: ¿enciende y el LED de estado parpadea?',
|
||
opciones:['Sí','No — LED apagado','Enciende pero se apaga','Enciende y la fuente entra en límite de corriente'],
|
||
aviso:'Si la fuente entra en límite o algo se calienta: <b>apaga de inmediato</b>. No entra; acta de daño.' },
|
||
{ tipo:'medida', clave:'v_24', si:enciende, req:true, txt:'Entrada 24 V', esperado:'23 – 26 V', u:'V' },
|
||
{ tipo:'medida', clave:'v_5', si:enciende, req:true, txt:'Riel 5 V (salida Mean Well / P2)', esperado:'4.9 – 5.4 V', u:'V',
|
||
aviso:'Por debajo de 4.8 V el módem se va a caer con cada ráfaga LTE (disparo PFI del LTC4040). No entra así.' },
|
||
{ tipo:'medida', clave:'v_3v3', si:enciende, txt:'Riel 3.3 V', esperado:'3.20 – 3.40 V', u:'V' },
|
||
{ tipo:'medida', clave:'i_estable', si:enciende, txt:'Corriente a los 60 s (si la fuente la muestra)', esperado:'150 – 400 mA con la etapa RTK encendida', u:'mA' },
|
||
{ tipo:'medida', clave:'v_bat_on', si:v=>enciende(v)&&conBat(v), txt:'Batería con la unidad encendida', u:'V' },
|
||
] },
|
||
|
||
{ titulo: '6 · Prueba de vida (5 minutos)',
|
||
sub:'Con la unidad encendida. Por la consola USB se lee la línea BOOT; el resto es a simple vista.',
|
||
items: [
|
||
{ tipo:'texto', clave:'fw', rows:'1', si:enciende, req:true, txt:'Firmware que reporta (línea BOOT o banner de consola)', ph:'fw=4.0.0' },
|
||
{ tipo:'check', clave:'fw_coincide', si:enciende, req:true, txt:'El firmware <b>coincide con el del acta de envío</b>.' },
|
||
{ tipo:'radio', clave:'modem', si:enciende, req:true, txt:'LED de red del módem 4G tras 3 minutos',
|
||
opciones:['Lento o fijo (registró)','Rápido (no registra)','Apagado'] },
|
||
{ tipo:'check', clave:'sim_ok', si:enciende, txt:'La SIM es la del acta de envío (ICCID coincide).' },
|
||
{ tipo:'radio', clave:'gnss', si:enciende, txt:'GNSS (si hay cielo o ventana)', opciones:['Ve satélites / tiene fix','No ve satélites','No se pudo probar (techo)'] },
|
||
{ tipo:'check', clave:'servidor', si:enciende, txt:'La unidad <b>aparece en el monitor</b> (posición o Salud) — pídele a alguien con acceso que lo confirme.' },
|
||
{ tipo:'archivo', clave:'log', etiqueta:'recepcion', si:enciende, txt:'Captura de la consola (opcional, pero útil si algo se ve raro)' },
|
||
{ tipo:'check', clave:'cerrada', si:enciende, txt:'Apagué la fuente, cerré la tapa, apreté los prensaestopas y volví a poner la etiqueta a la vista.' },
|
||
] },
|
||
|
||
{ titulo: '7 · Veredicto',
|
||
items: [
|
||
{ tipo:'radio', clave:'accion', req:true, guardaEn:'accion', txt:'¿Entra al puerto?',
|
||
opciones:[
|
||
'Lista para entrar al puerto',
|
||
'Entra con observaciones (anótalas)',
|
||
'No entra — se queda en el taller para revisión',
|
||
'Rechazada — regresa a Querétaro'],
|
||
aviso:'Corto, no enciende, riel de 5 V bajo o firmware distinto al del envío: <b>no entra</b>. Instalarla y descubrirlo arriba de una máquina cuesta una visita más y un permiso más de ICAVE. Si no entra, registra además un <b>acta de daño</b> para que la serie quede marcada.' },
|
||
{ tipo:'texto', clave:'observaciones', rows:'3', txt:'Observaciones' },
|
||
] },
|
||
]
|
||
});
|
||
</script>
|
||
</body>
|
||
</html>
|