WEB_PROJECT_TA/api/get_onu_volt.php

105 lines
2.1 KiB
PHP

<?php
header('Content-Type: application/json');
require_once __DIR__ . '/../config/database.php';
$db = new Database();
$conn = $db->getConnection();
$item_id = intval($_GET['id'] ?? 0);
if (!$item_id) {
echo json_encode([
'success' => false,
'message' => 'ID tidak valid'
]);
exit;
}
/*
|--------------------------------------------------------------------------
| Ambil SN dari ftth_items
|--------------------------------------------------------------------------
*/
$stmt = $conn->prepare("
SELECT sn_onu
FROM ftth_items
WHERE id = ?
");
$stmt->execute([$item_id]);
$item = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$item || empty($item['sn_onu'])) {
echo json_encode([
'success' => false,
'message' => 'SN tidak ada'
]);
exit;
}
$sn = trim($item['sn_onu']);
/*
|--------------------------------------------------------------------------
| Ambil optical terakhir
|--------------------------------------------------------------------------
*/
$stmt = $conn->prepare("
SELECT
sn,
ont_name,
rx_power,
voltage,
min_rx,
max_rx,
min_voltage,
max_voltage,
updated_at
FROM onu_daily_history
WHERE sn = ?
ORDER BY updated_at DESC
LIMIT 1
");
$stmt->execute([$sn]);
$data = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$data) {
echo json_encode([
'success' => false,
'message' => 'Data optical tidak ditemukan'
]);
exit;
}
/*
|--------------------------------------------------------------------------
| Format Data
|--------------------------------------------------------------------------
*/
$data['rx_power'] = number_format((float)$data['rx_power'], 2) . ' dBm';
$data['voltage'] = number_format((float)$data['voltage'], 2) . ' V';
$data['min_rx'] = number_format((float)$data['min_rx'], 2) . ' dBm';
$data['max_rx'] = number_format((float)$data['max_rx'], 2) . ' dBm';
$data['min_voltage'] = number_format((float)$data['min_voltage'], 2) . ' V';
$data['max_voltage'] = number_format((float)$data['max_voltage'], 2) . ' V';
echo json_encode([
'success' => true,
'data' => $data
]);