App-2



Reset Life – Terminal de Operador

<header class="border-b border-green-900 pb-4 mb-8">
    <h1 class="text-2xl font-bold tracking-taller">RESET_LIFE_APP // V.1.0</h1>
    <p class="text-xs opacity-50">STATUS: SISTEMA OPERATIVO // OXIGENACIÓN_CHECK</p>
</header>

<main id="app-container" class="max-w-md mx-auto">

    <div id="display" class="scanner-glow border-2 border-green-500 rounded-xl p-10 text-center mb-8 bg-black">
        <h2 id="status-label" class="text-sm mb-4">ESPERANDO CALIBRACIÓN...</h2>
        <div id="timer" class="text-6xl font-bold my-6">00.0s</div>
        <button id="main-btn" onclick="toggleTimer()" class="bg-green-600 text-black font-bold py-4 px-8 rounded-full hover:bg-green-400 transition-all w-full">
            INICIAR APNEA BASE
        </button>
    </div>

    <div class="bg-zinc-900 rounded-lg p-4 text-xs border border-zinc-700">
        <h3 class="border-b border-zinc-700 pb-2 mb-2 uppercase">Log de Sesión:</h3>
        <div id="log-content">
            > Sistema iniciado...<br>
            > Pendiente de medida de base celular...
        </div>
    </div>
</main>

<script>
    let startTime, timerInterval;
    let apneaBase = 0;
    let isRunning = false;
    let stage = 'base'; // 'base' o 'post'

    function toggleTimer() {
        const btn = document.getElementById('main-btn');
        const timerDisplay = document.getElementById('timer');
        const log = document.getElementById('log-content');

        if (!isRunning) {
            // START
            isRunning = true;
            startTime = Date.now();
            btn.innerText = "PARAR (STOP)";
            btn.classList.replace('bg-green-600', 'bg-red-600');
            timerInterval = setInterval(() => {
                const elapsed = (Date.now() - startTime) / 1000;
                timerDisplay.innerText = elapsed.toFixed(1) + "s";
            }, 100);
        } else {
            // STOP
            isRunning = false;
            clearInterval(timerInterval);
            const finalTime = (Date.now() - startTime) / 1000;
            btn.classList.replace('bg-red-600', 'bg-blue-600');

            if (stage === 'base') {
                apneaBase = finalTime;
                log.innerHTML += `<br>> APNEA_BASE: ${apneaBase}s REGISTRADA.`;
                log.innerHTML += `<br>> ESPERE 30 MIN TRAS EL EVENTO PARA TEST_POST.`;
                btn.innerText = "INICIAR TEST POST (+30min)";
                document.getElementById('status-label').innerText = "EVENTO EN PROCESO...";
                stage = 'post';
            } else {
                const diff = ((finalTime - apneaBase) / apneaBase * 100).toFixed(1);
                const color = diff >= 0 ? 'text-green-400' : 'text-red-400';
                log.innerHTML += `<br>> APNEA_POST: ${finalTime}s.`;
                log.innerHTML += `<br>> <span class="${color}">DIFERENCIAL CELULAR: ${diff}%</span>`;

                if(finalTime >= 40) {
                    log.innerHTML += `<br>> !! STATUS: HARDWARE ELITE DETECTADO !!`;
                }

                btn.innerText = "NUEVO DIAGNÓSTICO";
                btn.classList.replace('bg-blue-600', 'bg-green-600');
                stage = 'base';
            }
        }
    }
</script>
¿Alguna duda?

Inscripción Evento MAR Familiar

¡Adiós al caos familiar!

La Revolución en la Gestión del Hogar Inteligente.