Drogheda/01-Requirements/Especificacion-Requerimientos/cuerpo.tex

74 lines
4.9 KiB
TeX

\section{Alcance}
Un rastreador GPS-RTK montado en máquina y alojado en gabinete (\textbf{HBOX}) que
transmite posición corregida por RTK sobre 4G al backend (\textit{retranslator}
$\rightarrow$ Wialon/Traccar $\rightarrow$ VERONICA), sobrevive un entorno portuario
hostil (calor, vibración, humedad salina) y es manufacturable y mantenible a escala de
flota. Meta: \textbf{30 unidades operativas para agosto} en ICAVE, TIMSA, EIT y LCT.
Este documento es el complemento formal del tracker de requerimientos (.xlsx).
\section{Requerimientos funcionales}
\hwtab{%
\begin{tabularx}{\textwidth}{@{}>{\bfseries}l X >{\centering\arraybackslash}p{1.2cm}@{}}
\toprule
\rowcolor{HelgenIndigo}\textcolor{white}{ID} & \textcolor{white}{Requerimiento} & \textcolor{white}{Pri.}\\
\midrule
FR-01 & Adquirir posición GNSS multibanda (simpleRTK2B Pro / ZED-F9P). & O\\
FR-02 & Obtener correcciones RTCM3 vía NTRIP sobre 4G; lograr fix/float en cielo abierto. & O\\
FR-03 & Emitir NMEA (GGA+RMC) por UDP al backend a la tasa configurada. & O\\
FR-04 & Control de tasa: 1 Hz con ignición; 30 s en batería/reposo. & O\\
FR-05 & Watchdog: recuperar el enlace reiniciando el stack con \textit{backoff}; nunca en bucle de reinicio. & O\\
FR-06 & Reporte degradado (LIMP): seguir reportando posición estándar si no hay correcciones. & O\\
FR-07 & Operar con 24 V del gabinete; proteger la celda (no cargar $>$45\,\textdegree C). & O\\
FR-08 & LED de estado legible en campo. & R\\
FR-09 & Identidad por unidad (cell\_id) y aprovisionamiento repetible. & O\\
FR-10 & SIM/chip de datos serviciable sin desensamble total. & R\\
FR-11 & Observabilidad: registrar temperatura, batería, calidad de fix y reinicios. & R\\
FR-12 & Backend: ingesta concurrente sin bloqueo de cabecera; el filtro anti-salto nunca debe bloquear de forma permanente a una unidad sana. & O\\
\bottomrule
\end{tabularx}}
\section{Requerimientos no funcionales}
\hwtab{%
\begin{tabularx}{\textwidth}{@{}>{\bfseries}l X L{4.2cm}@{}}
\toprule
\rowcolor{HelgenIndigo}\textcolor{white}{ID} & \textcolor{white}{Requerimiento} & \textcolor{white}{Objetivo}\\
\midrule
NFR-01 Térmico & Operar dentro del gabinete sellado bajo sol de Veracruz. & Componentes $\geq$75\,\textdegree C; \textbf{sin PLA} en la ruta térmica; diseñar a la temperatura interior medida.\\
NFR-02 Vibración & Resistir vibración continua de maquinaria. & Sin Dupont; conectores con seguro; placas retenidas; objetivo $\geq$2 G (validar).\\
NFR-03 Ingreso & Mantener IP67; sin condensación. & Sellado; enfriamiento sólo por conducción (sin ventilación que rompa IP).\\
NFR-04 Eléctrico & Tolerar el ambiente eléctrico de la máquina. & Surge/breaker/ignición en el gabinete; TVS local modesto en el HBOX.\\
NFR-05 Disponibilidad & Minimizar desconexiones en Wialon. & Sin bucles (FR-05); sin bloqueo de cabecera en backend (FR-12); definir SLO.\\
NFR-06 Mantenibilidad & Serviciable, documentado, repetible. & Una PCB; etiquetado; puntos de prueba; BOM publicado.\\
NFR-07 Escalabilidad & Backend a escala de flota. & $\geq$500 unidades concurrentes sin pérdidas (prueba con \textit{upstream} lento).\\
NFR-08 Seguridad & Sin secretos en el repo. & Rotar la contraseña MSSQL; secretos vía entorno/almacén; mínimo privilegio.\\
NFR-09 Manufactura & Construible para el lote de agosto. & BOM bloqueado; documento de ensamble; pilotos validados antes de la flota.\\
\bottomrule
\end{tabularx}}
\section{Restricciones y supuestos}
\begin{itemize}
\item La entrada del HBOX es el \textbf{24 V regulado} del gabinete + una señal de ignición \textbf{aislada}.
\item El \textbf{gabinete} (Yetlebox IP67 ABS + componentes DIN) permanece; el rediseño ataca los \textbf{internos del HBOX} + lo térmico/mecánico.
\item El ZED-F9P ($-40$ a $+85$\,\textdegree C) no es el eslabón térmico débil; lo son el \textbf{18650/PowerBoost}, el \textbf{módem 4G} y la \textbf{carcasa PLA}.
\item Las correcciones llegan por 4G, no por el GNSS (gobierna FR-05/FR-06).
\item El firmware se valida en banco antes del \textit{flasheo} en campo.
\end{itemize}
\section{Criterios de aceptación (alto nivel)}
\begin{itemize}
\item En banco: una unidad arranca, obtiene fix/float, transmite y \textbf{se recupera automáticamente} de un corte forzado de 4G/NTRIP dentro de la ventana de \textit{backoff}, sin entrar en bucle.
\item Backend: bajo una prueba de 500 unidades con \textit{upstream} lento, \textbf{ninguna unidad se descarta} ni queda filtrada de forma permanente.
\item Térmico: una unidad sobrevive un turno soleado a la temperatura interior medida del gabinete, sin deformación de PLA ni sobre-temperatura de batería.
\item Una unidad retirada permite distinguir, por sus registros, una muerte de hardware de una víctima del backend.
\end{itemize}
\begin{helgennotice}[Trazabilidad]
Cada requerimiento se rastrea en el \textbf{Tablero Helgen Drogheda — Tracker de
Requerimientos} (.xlsx), con estado, verificación, responsable y puntos abiertos.
\end{helgennotice}