# Monitoreo en Tiempo Real

## Descripción
Vista completa de monitoreo en tiempo real de vehículos GPS, adaptada del sistema original (`ubic_gps_actual_osm.php`).

## Estructura de Archivos

```
monitoreo-tiempo-real/
├── MonitoreoTiempoReal.php      # Archivo principal de la vista
├── api/
│   ├── obtener-vehiculos-tiempo-real.php    # API para obtener vehículos con datos completos
│   ├── obtener-alarmas-tiempo-real.php      # API para obtener alarmas activas
│   ├── obtener-flotas.php                   # API para obtener flotas según empresa
│   ├── obtener-vehiculos-lista.php          # API para lista de vehículos (selectores)
│   └── obtener-datos-vehiculo.php           # API para datos detallados de un vehículo
├── css/
│   └── monitoreo-tiempo-real.css            # Estilos específicos
├── js/
│   └── monitoreo-tiempo-real.js             # JavaScript (opcional, actualmente inline)
└── README.md                                 # Este archivo
```

## Características

### 1. Panel de Filtros (Izquierda)
- Selección de Empresa (según permisos)
- Selección de Flota
- Selección de Vehículo
- Búsqueda por Placa
- Información del Vehículo Seleccionado
- Timer de Actualización (15 segundos por defecto)
- Leyenda de Estados

### 2. Mapa (Centro)
- Google Maps API
- Marcadores de vehículos con iconos según estado
- Marcadores de placas usando Image-Charts.com
- InfoWindow con información del vehículo
- Actualización automática cada 15 segundos

### 3. Panel de Alarmas (Inferior Izquierda)
- Tabla de alarmas activas
- Información: Empresa, Flota, Vehículo, Chofer, Fecha, Hora, Tipo de Alerta
- Botón para atender alarmas
- Sonido de alerta cuando hay alarmas activas

### 4. Panel de Estados (Inferior Derecha)
- Resumen de estados de vehículos
- Contadores: Parado, Sin Cobertura, Exceso de Velocidad, Transmisión Normal, Suspendido

## APIs

### obtener-vehiculos-tiempo-real.php
**Parámetros:**
- `empresa` (requerido): ID de la empresa
- `flota` (opcional): ID de la flota o 'T' para todas
- `id_identi_user` (opcional): ID del usuario
- `us_tipo` (opcional): Tipo de usuario
- `busca_placa` (opcional): Filtro por placa

**Respuesta:**
```json
{
  "success": true,
  "message": "Vehículos obtenidos correctamente",
  "data": {
    "vehiculos": [...],
    "estados": {
      "total_parados": 0,
      "sin_cobertura": 0,
      "exceso_velocidad": 0,
      "transmision_normal": 0,
      "suspendido": 0
    }
  }
}
```

### obtener-alarmas-tiempo-real.php
**Parámetros:** Ninguno (usa sesión del usuario)

**Respuesta:**
```json
{
  "success": true,
  "message": "Alarmas obtenidas correctamente",
  "data": [
    {
      "id_historico": "...",
      "id_alerta": "...",
      "empresa": "...",
      "flota": "...",
      "placa": "...",
      "chofer": "...",
      "fecha_al": "...",
      "hora_al": "...",
      "alerta_act": "...",
      "lat": 0,
      "lng": 0,
      "id_vehi": "..."
    }
  ]
}
```

## Dependencias Externas

1. **Google Maps API**
   - Key: `AIzaSyCRGoa-0vEm0-P09hxM4VZGs2aHSnkbqvc`
   - Uso: Visualización del mapa y marcadores

2. **Image-Charts.com**
   - Uso: Generación de marcadores de texto (placas)
   - Reemplazo de Google Image Charts API (descontinuada)

## Permisos de Usuario

- **us_tipo = '1'**: Administrador - Ve todas las empresas y vehículos
- **us_tipo = '2'**: Distribuidor - Ve empresas de su distrito
- **Otros**: Usuario - Ve solo vehículos asignados

## Actualización Automática

- Intervalo: 15 segundos (configurable en `mRefreshInterval`)
- Se actualiza automáticamente: vehículos en mapa y alarmas
- Se puede pausar/reanudar con el botón de reloj

## Funcionalidades Pendientes

1. Geocodificación inversa para direcciones
2. Filtrado de vehículos por estado
3. Panel de estados de unidades (requiere módulo de itinerario)
4. Funciones de acción (apagar/encender vehículo) si `us_accion = 1`
5. Búsqueda de información por placa (botón "I")
6. Registro por placa (botón "P")
7. Visualización de kilómetros (botón "Kms")

## Notas

- Las imágenes de estado de vehículos están en `../images/rotar/`
- Los sonidos de alerta están en `../include/sonidos/`
- El sistema usa sesiones PHP para autenticación
- Todas las APIs verifican la sesión antes de responder


