<?php
/**
 * Simulador del Buque - Genera archivos TXT
 * 
 * Este script simula el comportamiento del buque generando archivos TXT
 * con datos de sensores en formato CSV
 * 
 * Uso:
 *   php simular_buque_txt.php
 * 
 * O ejecutar múltiples veces para generar varios archivos
 */

require_once 'config.php';

// ============================================
// CONFIGURACIÓN
// ============================================
// Carpeta donde el "buque" guarda los archivos TXT
$carpetaArchivos = __DIR__ . '/archivos_buque/';

// Nombre base del archivo
$nombreBase = 'mediciones_buque';

// API KEY (debe coincidir con config.php)
$apiKey = API_KEY;

// ============================================
// FUNCIONES
// ============================================

/**
 * Generar valores aleatorios realistas de sensores
 */
function generarValoresSensores() {
    // Temperatura: 20-30°C (típico ambiente marítimo)
    $temperatura = round(20 + (rand(0, 100) / 10), 1);
    
    // Humedad: 50-70% (ambiente marítimo)
    $humedad = round(50 + (rand(0, 200) / 10), 1);
    
    // Presión: 1000-1020 hPa (presión atmosférica normal)
    $presion = round(1000 + (rand(0, 200) / 10), 1);
    
    return [
        'temperatura' => $temperatura,
        'humedad' => $humedad,
        'presion' => $presion
    ];
}

/**
 * Obtener fecha/hora actual de Argentina (UTC-3)
 */
function obtenerFechaHoraArgentina() {
    // Crear fecha con zona horaria Argentina
    $fecha = new DateTime('now', new DateTimeZone('America/Argentina/Buenos_Aires'));
    return $fecha->format('Y-m-d H:i:s');
}

/**
 * Generar archivo TXT con mediciones
 */
function generarArchivoTXT($carpeta, $nombreBase, $apiKey, $numMediciones = 5) {
    // Crear carpeta si no existe
    if (!is_dir($carpeta)) {
        mkdir($carpeta, 0755, true);
    }
    
    // Nombre del archivo con timestamp
    $timestamp = date('YmdHis');
    $nombreArchivo = $nombreBase . '_' . $timestamp . '.txt';
    $rutaCompleta = $carpeta . $nombreArchivo;
    
    // Abrir archivo para escritura
    $archivo = fopen($rutaCompleta, 'w');
    
    if (!$archivo) {
        return false;
    }
    
    // Escribir encabezado (comentario)
    fwrite($archivo, "# Archivo de mediciones generado por el buque\n");
    fwrite($archivo, "# Fecha de generación: " . obtenerFechaHoraArgentina() . "\n");
    fwrite($archivo, "# Formato: temperatura,humedad,presion,api_key,fecha_hora\n");
    fwrite($archivo, "# Total de mediciones: $numMediciones\n\n");
    
    // Generar mediciones
    for ($i = 0; $i < $numMediciones; $i++) {
        $valores = generarValoresSensores();
        $fechaHora = obtenerFechaHoraArgentina();
        
        // Construir línea CSV
        $linea = sprintf(
            "%.1f,%.1f,%.1f,%s,%s\n",
            $valores['temperatura'],
            $valores['humedad'],
            $valores['presion'],
            $apiKey,
            $fechaHora
        );
        
        fwrite($archivo, $linea);
        
        // Pequeña pausa para que las fechas sean diferentes
        usleep(100000); // 0.1 segundos
    }
    
    fclose($archivo);
    
    return [
        'archivo' => $nombreArchivo,
        'ruta' => $rutaCompleta,
        'mediciones' => $numMediciones
    ];
}

// ============================================
// PROGRAMA PRINCIPAL
// ============================================

echo "===========================================\n";
echo "Simulador del Buque - Generador de TXT\n";
echo "===========================================\n\n";

// Verificar carpeta
if (!is_dir($carpetaArchivos)) {
    mkdir($carpetaArchivos, 0755, true);
    echo "✅ Carpeta creada: $carpetaArchivos\n\n";
}

// Número de mediciones por archivo (puedes cambiar esto)
$numMediciones = isset($argv[1]) ? intval($argv[1]) : 5;

echo "📝 Generando archivo TXT con $numMediciones mediciones...\n\n";

// Generar archivo
$resultado = generarArchivoTXT($carpetaArchivos, $nombreBase, $apiKey, $numMediciones);

if ($resultado) {
    echo "✅ Archivo generado exitosamente!\n";
    echo "   Nombre: {$resultado['archivo']}\n";
    echo "   Ruta: {$resultado['ruta']}\n";
    echo "   Mediciones: {$resultado['mediciones']}\n\n";
    
    // Mostrar contenido del archivo
    echo "📄 Contenido del archivo:\n";
    echo "----------------------------------------\n";
    $contenido = file_get_contents($resultado['ruta']);
    echo $contenido;
    echo "----------------------------------------\n\n";
    
    echo "💡 Próximos pasos:\n";
    echo "   1. Ejecuta: php procesar_archivos_txt.php\n";
    echo "   2. O ejecuta: php procesar_y_verificar.php\n";
    echo "   3. Verifica los datos en: http://localhost/buque/ver_datos.php\n";
} else {
    echo "❌ Error al generar el archivo\n";
    exit(1);
}

