PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ]); // Se pediu para limpar pendentes if (isset($_POST['clear_pending'])) { $pdo->exec("DELETE FROM comandos WHERE status = 'pending'"); $_SESSION['flash'] = "🧹 Todos os comandos pendentes foram removidos!"; header("Location: historico.php"); exit; } // Filtros $where = []; $params = []; if (!empty($_GET['uid'])) { $where[] = "c.uid = ?"; $params[] = $_GET['uid']; } if (!empty($_GET['status'])) { $where[] = "c.status = ?"; $params[] = $_GET['status']; } $sql = "SELECT c.id, c.uid, c.cmd, c.status, c.queued_at, c.sent_at, c.ack_ts, c.error, r.payload AS resposta, r.ts AS resposta_at FROM comandos c LEFT JOIN respostas r ON r.uid = c.uid " . ($where ? "WHERE " . implode(" AND ", $where) : "") . " ORDER BY c.queued_at DESC LIMIT 50"; $stmt = $pdo->prepare($sql); $stmt->execute($params); $comandos = $stmt->fetchAll(); $devices = $pdo->query("SELECT DISTINCT uid FROM devices ORDER BY uid ASC")->fetchAll(); } catch (Exception $e) { die("Erro: " . $e->getMessage()); } ?> Histórico de Comandos

📜 Histórico de Comandos

ID Dispositivo Comando Status Enfileirado Enviado ACK Erro Resposta Resp. At
⬅️ Voltar ao Menu