# Iniciar, pausar y detener una sesión de cronometraje

La CloudBox ofrece múltiples formas de gestionar una sesión de cronometraje, lo que proporciona flexibilidad en la forma de cronometrar los eventos. Ya sea a través de la interfaz de la CloudBox, los botones de hardware, los comandos de socket TCP o el servicio IoT, el sistema garantiza una gestión de sesiones precisa y eficiente.

La CloudBox también introduce una opción de **Pausa**, que suspende temporalmente la grabación sin crear una nueva sesión. Esto permite a los operadores detener los pases momentáneamente sin generar archivos de copia de seguridad adicionales ni dividir las sesiones.

En este artículo, exploraremos las diferentes formas de iniciar, pausar y detener una sesión de cronometraje, los procesos internos que se activan durante estas acciones y los comandos afectados mientras una sesión está activa.

## Formas de iniciar una sesión de cronometraje

1. **A través de la interfaz de CloudBox**:
* La forma más común de iniciar una sesión de cronometraje es presionando el botón **INICIAR LECTURAS** en la interfaz web de CloudBox. Esta acción inicia la sesión, lo que permite que CloudBox comience a leer y transmitir los datos de la etiqueta RFID.
2. **Uso del botón de inicio en la CloudBox**:
* Al presionar el **botón de inicio** en la CloudBox física también se inicia una sesión de cronometraje. Esto es útil en escenarios en los que el acceso a la interfaz web no está disponible de inmediato.
3. **Mediante el comando de socket TCP**:
* También puede iniciar una sesión a través de una **conexión de socket TCP** enviando el comando `START`. Este método permite la integración con sistemas externos o aplicaciones personalizadas que controlan el CloudBox de forma remota.
4. **A través del servicio IoT**:
* Si la CloudBox está conectada al **servicio en la nube**, también se puede iniciar una sesión de forma remota desde la nube. Esto permite a los organizadores de carreras iniciar sesiones desde cualquier lugar con acceso a Internet, sin interactuar físicamente con el dispositivo.

### Procesos internos durante el inicio de la sesión

Cuando se inicia una sesión de sincronización, se activan varias operaciones clave dentro de CloudBox para garantizar la precisión y fiabilidad de los datos:

1. **Creación de sesiones en la nube**:
* La CloudBox se conecta al **servicio de ingesta de pases**, creando una nueva sesión que registra todos los datos de cronometraje entrantes. Esto garantiza el seguimiento en tiempo real y el almacenamiento en la nube para el análisis posterior al evento.
2. **Creación de archivos de copia de seguridad**:
* Se crea un **archivo de copia de seguridad** local en el CloudBox, lo que garantiza que todos los pases se guarden incluso si se pierde la conectividad a Internet. Este archivo es esencial para la integridad y recuperación de los datos.
3. **Transmisión de datos a clientes TCP**:
* Cualquier **cliente TCP conectado** comenzará a recibir datos de tiempo en tiempo real (pasos). La CloudBox transmite las lecturas de etiquetas a todos los clientes conectados a través de TCP.
4. **Restablecimiento del contador**:
* Todos los contadores relacionados con la sesión (por ejemplo, el recuento de pases) se restablecen a cero para garantizar la recopilación precisa de datos para la nueva sesión.
5. **Activación del zumbador**:
* La CloudBox emitirá una **señal de inicio** a través del zumbador para notificar a los oficiales de la carrera o al personal de cronometraje que la sesión ha comenzado.
6. **Cambios en el indicador LED**:
* El **LED de inicio** de la CloudBox cambia a **azul** para indicar visualmente que una sesión de cronometraje está en curso.

### Posibles respuestas después de iniciar una sesión:

* `START_MODE`: Indica que ya se ha iniciado una sesión.
* `READERNOTOK`: No se detecta el lector RFID.
* `DEVICE_INTEGRITY_FAILED`: La comprobación de integridad de CloudBox ha fallado.
* `INVALIDREADERMODEL`: El modelo de lector conectado no es compatible.
* `ERRREADER`: Hay un problema con el lector.
* `ERRCONNECT`: Error al conectar con el lector o la red.
* `OK`: La sesión se inició correctamente.

### Comandos afectados durante una sesión de temporización

Una vez que una sesión de cronometraje está activa, la mayoría de los comandos de configuración se **ignoran** para evitar interrupciones durante la sesión. Los comandos que no se pueden ejecutar durante una sesión incluyen:

* **Comandos de configuración del lector** (`SETREADERPORT`, `SETREADERMODEL`): No puede cambiar el puerto o el modelo del lector durante una sesión.
* **Cambios de dirección IP** (`CHANGESYSTEMIPADDRESS`): los cambios de red están bloqueados para garantizar la conectividad continua.
* **Cambios de sincronización de fecha/hora** (`SETSYSTEMTIME`, `SETDATETIMESYNC`, `CHANGETIMEZONE`): se ignoran los cambios en la configuración relacionada con la hora.
* **Comandos de apagado y reinicio del sistema** (`SHUTDOWN`): El sistema no se puede apagar ni reiniciar durante una sesión.

Estos comandos devolverán una respuesta `START_MODE`, lo que indica que no se pueden ejecutar mientras una sesión está activa.

## Pausar una sesión de cronometraje

La función **Pausa** permite a los operadores suspender los pases sin finalizar la sesión.

* **A través de la interfaz de CloudBox**: Haz clic en **Pausar** para detener temporalmente el registro de los pases.

Mientras está en pausa:

* No se registran ni transmiten nuevos pases.
* La sesión permanece abierta, lo que impide la creación de nuevos archivos o sesiones de copia de seguridad al reanudarse.
* Para reanudar, pulsa **Iniciar** de nuevo y continúa desde la misma sesión.

**Caso de uso**: La pausa es ideal si necesita bloquear temporalmente los pases (por ejemplo, para la configuración, el mantenimiento o una pausa en la carrera) sin fragmentar los datos del evento.

## Formas de detener una sesión de temporización

1. **A través de la interfaz de CloudBox**:
* Para detener una sesión de cronometraje, presione el botón **STOP** en la interfaz de CloudBox. Esto finaliza la sesión e inicia los procesos de guardado de datos.
2. **Uso del botón de detención en la CloudBox**:
* Al presionar el **botón de inicio** nuevamente en la CloudBox, se detendrá la sesión, lo que la convierte en una forma rápida de finalizar una sesión sin acceder a la interfaz web.
3. **Mediante el comando de socket TCP**:
* Envíe el comando `STOP` a través de la **conexión de socket TCP** para detener la sesión de forma remota.
4. **A través del servicio IoT**:
* La sesión también se puede detener de forma remota a través del **servicio en la nube**, lo que permite a los administradores de la carrera controlar la sesión desde cualquier lugar con acceso a Internet.

### Procesos internos durante la detención de la sesión

Al detener una sesión de cronometraje, se activan varias operaciones para garantizar el almacenamiento y la transmisión seguros de los datos de la sesión:

1. **Cierre de la sesión en la nube**:
* Se cierra la sesión activa en el **servicio de ingesta de pases**, finalizando los datos de la carrera para el almacenamiento en la nube.
2. **Limpieza de la cola**:
* Cualquier pase restante en la **cola de datos** se procesa y se envía a los clientes conectados antes de que el sistema deje de leer las etiquetas.
3. **Activación del zumbador**:
* La **señal de parada** se emite a través del zumbador para alertar al personal de que la sesión ha finalizado.
4. **Actualización del contador global**:
* Se incrementa el **contador global de pases**, lo que garantiza que se mantengan los datos acumulados de todas las sesiones.
5. **Cambios en el indicador LED**:
* El **LED de inicio** vuelve a **rojo**, lo que indica que la sesión ha finalizado y que la CloudBox ya no está leyendo etiquetas.

### Posibles respuestas después de detener una sesión:

* `READERNOTOK`: El lector RFID no se detecta o está desconectado.
* `INVALIDREADERMODEL`: El modelo de lector conectado no es compatible.
* `ERRREADER`: Hay un problema con el lector.
* `ERRCONNECT`: Error en la conexión de red.
* `OK`: La sesión se detuvo correctamente.

## Resumen

CloudBox ahora es compatible con **el inicio, la pausa y la detención de sesiones** con flexibilidad en la interfaz, el hardware, los comandos TCP y el IoT.

* **Iniciar**: Crea una nueva sesión y comienza a registrar los pases.
* **Pausa**: Suspende el registro sin finalizar la sesión, lo que evita la fragmentación de los archivos de copia de seguridad.
* **Detener**: Cierra la sesión, finaliza los datos y garantiza un almacenamiento seguro.

Al comprender estas funciones, los operadores pueden gestionar las sesiones de cronometraje de forma eficiente, preservando la integridad de los datos y adaptándose a las necesidades del evento.
