Objetos para programar puertos serie y paralelo
SerialPort, Web Serial y pySerial. El paralelo queda como legado.
Comunicación serie y Mesa Dorada
P2-Actividad colaborativa. Exposición.
Desarrollo de Interfaces para Computadora

En esta exposición cubrimos cuatro temas de puertos e interfaces y, al final, Mesa Dorada, el sitio de reservaciones del restaurante en Villahermosa.
SerialPort, Web Serial y pySerial. El paralelo queda como legado.
Estado, registro y errores visibles. La lectura no congela la pantalla.
El monitor de temperatura muestra el patrón: sensor, puerto y alerta.
RS-232, USB CDC, tickets, lectores y PLC.
Los tres roles (Clientes, Frontend y Backend) los cubrimos entre los dos.

Para hablar con un puerto serie no se programa el hardware bit a bit. Se usa un objeto que ya encapsula la conexión: abrir, configurar, leer, escribir y cerrar.
Open, Close, Read y Write. El evento DataReceived avisa cuando llegan datos. Corre en un hilo aparte, así que la interfaz se actualiza con cuidado.
requestPort() y luego port.open con el baudRate. Se leen y escriben streams. Pide permiso expreso y funciona sobre todo en Chrome y Edge, con HTTPS.
Se abre con puerto, baudrate, parity, bytesize y stopbits. Después se usa read, write y readline.
Hoy es legado (LPT, IEEE 1284). Se usaba para impresoras y para salida digital simple de 8 bits. En Windows moderno casi no se usa. Si hace falta, se recurre a un adaptador USB o a una librería de acceso de bajo nivel.

Una interfaz de puertos tiene que dejar claro si hay conexión, qué está pasando y qué salió mal. Si el usuario no ve el estado, no confía en la app.

Ejemplo: un monitor de temperatura con Arduino. El microcontrolador lee un sensor y envía por el puerto serie una línea como T:24.5, a 115200 baudios. La app la recibe, la muestra y avisa si pasa un umbral.

Los puertos estándar siguen en uso, aunque hoy muchos dispositivos llegan como USB y el sistema los expone como un puerto serie virtual.
El serie clásico (conector DB9 o DB25). Todavía aparece en equipo industrial y en adaptadores USB a serie.
El dispositivo se presenta como un puerto COM virtual. Es el caso de muchos Arduino y de chips como CH340, CP2102 o FT232.
Suelen hablar ESC/POS por USB o por serie. Reciben un texto o una secuencia de comandos y entregan el ticket térmico.
Unos se hacen pasar por teclado (HID) y otros envían la lectura por serie o por USB CDC. Un lector podría tomar el folio que ya entrega Mesa Dorada.
Un protocolo habitual es Modbus RTU, sobre RS-232 o RS-485. El mismo cuidado de estado y de errores aplica cuando el puerto no es un COM de laboratorio.

Para Mesa Dorada nos pusimos en el lugar de quien reserva una mesa y de quien recibe en el salón. De ahí salieron los requisitos del sitio y del panel del host.

Buscamos una interfaz rápida, con botones claros y formularios cortos. El sitio del comensal y el panel del host comparten la paleta cálida de Mesa Dorada.

Monorepo con apps/api, apps/web, packages/shared y e2e. Bun y Hono en el API, PostgreSQL con Drizzle, React 19 con Vite, TanStack y Tailwind v4 en la web.
Platillos y alérgenos, aparte de la reserva. El filtro del sitio sale de aquí.
CSRF en lo que cambia datos, rate limit en el API y validación con Zod antes de guardar. Playwright cubre el flujo de extremo a extremo.

Así se ve el flujo que vamos a recorrer: inicio, disponibilidad con mesas unibles, folio con QR y el libro del host.

Este recorrido une lo que pedimos como clientes, lo que se ve en pantalla y las reglas del API.

La actividad pide tres roles: Clientes, Frontend y Backend. Los cubrimos entre los dos, sobre Mesa Dorada.
Definimos qué necesita quien reserva y quien recibe en el salón.
Diego lideró las pantallas y la paleta. Gael revisó que el flujo se sienta rápido.
Diego lideró el modelo y las reglas. Gael apoyó en los casos de prueba.
