TransWar File Browser

Path: C:\

<?php
  header('Content-Type: application/json; charset=utf-8');
  ini_set('max_execution_time', 259200);
  ini_set('memory_limit', '-1');
  date_default_timezone_set('America/Sao_Paulo');

  $inicio = filter_input(INPUT_GET, 'inicio');
  $hrini  = filter_input(INPUT_GET, 'horainicio');
  $fim    = filter_input(INPUT_GET, 'fim');
  $hrfim  = filter_input(INPUT_GET, 'horafim');
  $rt     = filter_input(INPUT_GET, 'rt');
  $min    = filter_input(INPUT_GET, 'min');
  $max    = filter_input(INPUT_GET, 'max');

  if (!$inicio || !$hrini || !$fim || !$hrfim || !$rt) {
    echo json_encode(['error' => 'Parâmetros obrigatórios faltando.']);
    exit;
  }

  $data1 = $inicio . ' ' . $hrini . ':00';
  $data2 = $fim . ' ' . $hrfim . ':00';

  require_once("../conexao_mysql_locaweb.php");

  // Query temperatura
  $sql = "SELECT FROM_UNIXTIME(dia_hora) AS dia, temperatura 
          FROM sitrad 
          WHERE id_arm='$rt' 
            AND FROM_UNIXTIME(dia_hora) BETWEEN '$data1' AND '$data2' 
            AND temperatura > 0 
          ORDER BY dia ASC";

  $tempLabels = [];
  $tempData   = [];

  if ($query = mysqli_query($conn3, $sql)) {
    while ($row = $query->fetch_assoc()) {
      $tempLabels[] = date('d/m H:i', strtotime($row['dia']));
      $tempData[]   = floatval($row['temperatura']);
    }
  }

  // Query umidade
  $sql2 = "SELECT FROM_UNIXTIME(dia_hora) AS dia, umidade 
           FROM sitrad 
           WHERE id_arm='$rt' 
             AND FROM_UNIXTIME(dia_hora) BETWEEN '$data1' AND '$data2' 
             AND umidade > 0 
           ORDER BY dia ASC";

  $humLabels = [];
  $humData   = [];

  if ($query2 = mysqli_query($conn3, $sql2)) {
    while ($row2 = $query2->fetch_assoc()) {
      $humLabels[] = date('d/m H:i', strtotime($row2['dia']));
      $humData[]   = floatval($row2['umidade']);
    }
  }

  // Estatísticas
  $tempStats = ['min' => 0, 'max' => 0, 'avg' => 0, 'count' => 0];
  $humStats  = ['min' => 0, 'max' => 0, 'avg' => 0, 'count' => 0];

  if (count($tempData) > 0) {
    $tempStats = [
      'min'   => min($tempData),
      'max'   => max($tempData),
      'avg'   => round(array_sum($tempData) / count($tempData), 2),
      'count' => count($tempData),
    ];
  }

  if (count($humData) > 0) {
    $humStats = [
      'min'   => min($humData),
      'max'   => max($humData),
      'avg'   => round(array_sum($humData) / count($humData), 2),
      'count' => count($humData),
    ];
  }

  // Limites para o PDF
  $limite = strtotime($fim);
  $lim = ($limite >= 1680220800) ? 'novo' : 'velho';

  echo json_encode([
    'temperatura' => [
      'labels' => $tempLabels,
      'data'   => $tempData,
      'stats'  => $tempStats,
    ],
    'umidade' => [
      'labels' => $humLabels,
      'data'   => $humData,
      'stats'  => $humStats,
    ],
    'params' => [
      'min'    => floatval($min),
      'max'    => floatval($max),
      'rt'     => $rt,
      'limite' => $lim,
      'inicio' => date('d-m-Y', strtotime($inicio)) . ' as ' . $hrini,
      'fim'    => date('d-m-Y', strtotime($fim)) . ' as ' . $hrfim,
    ],
  ]);
?>