Удалить 'htdocs/public/views/raw.php'

This commit is contained in:
homyak 2024-02-24 00:21:26 +03:00
parent 9d52ff0860
commit b4b0acab42
1 changed files with 0 additions and 508 deletions

View File

@ -1,508 +0,0 @@
<?php require dirname(__DIR__) . "../../includes/bootstrap.php"; ?>
<?php $station = StationRepository::getInstance()->getObjectById($_GET['id'] ?? null); ?>
<?php if ($station->isExistingObject()) : ?>
<?php
$page = $_GET['page'] ?? 1;
$rows = $_GET['rows'] ?? 25;
$offset = ($page - 1) * $rows;
if (($_GET['category'] ?? 1) == 2) {
$packets = PacketRepository::getInstance()->getObjectListWithRawBySenderStationId($station->id, $rows, $offset);
$count = PacketRepository::getInstance()->getNumberOfPacketsWithRawBySenderStationId($station->id);
} else {
$packets = PacketRepository::getInstance()->getObjectListWithRawByStationId($station->id, $rows, $offset);
$count = PacketRepository::getInstance()->getNumberOfPacketsWithRawByStationId($station->id);
}
$pages = ceil($count / $rows);
?>
<title><?php echo $station->name; ?>, сырые данные</title>
<div class="modal-inner-content">
<div class="modal-inner-content-menu">
<a class="tdlink" title="Overview" href="/views/overview.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Подробнее</a>
<a class="tdlink" title="Statistics" href="/views/statistics.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Статистика</a>
<a class="tdlink" title="Trail Chart" href="/views/trail.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Графики</a>
<a class="tdlink" title="Weather" href="/views/weather.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Погода</a>
<a class="tdlink" title="Telemetry" href="/views/telemetry.php?id=<?php echo $station->id ?>&imperialUnits=<?php echo $_GET['imperialUnits'] ?? 0; ?>">Телеметрия</a>
<span>Сырые данные</span>
</div>
<div class="horizontal-line">&nbsp;</div>
<p>
Это последние полученные пакеты, хранящиеся в базе данных для станции/объекта <?php echo $station->name; ?>. Если пакеты не отображаются, значит отправитель не отправлял никаких пакетов за последние 30 дней. Или сервер не смог их принять.
</p>
<?php if ($station->sourceId == 5) : ?>
<p>
<a target="_blank" href="http://wiki.glidernet.org/ddb">База данных устройств OGN</a>
</p>
<?php else : ?>
<p>
Если сравнивать сырые данные с аналогичными данными с других сайтов, они могут отличаться (особенно путь), причина в том, что пакеты могут быть получены с разных серверов APRS-IS. Каждый APRS-IS сервер выполняет фильтрацию дубликатов, и пакет, который считается дубликатом, может по разному отбрасываться на разных серверах. Это влияет на то, какой из множества пакетов в итоге отобразится здесь.
</p>
<?php endif; ?>
<div class="form-container">
<?php if ($station->stationTypeId == 1) : ?>
<select id="raw-category" style="float:left; margin-right: 5px;">
<option <?php echo (($_GET['category'] ?? 1) == 1 ? 'selected' : ''); ?> value="1">Пакеты рядом с <?php echo $station->name; ?></option>
<option <?php echo (($_GET['category'] ?? 1) == 2 ? 'selected' : ''); ?> value="2">Пакеты, отправленные <?php echo $station->name; ?></option>
</select>
<?php endif; ?>
<select id="raw-type" style="float:left; margin-right: 5px;">
<option <?php echo (($_GET['type'] ?? 1) == 1 ? 'selected' : ''); ?> value="1">Сырые данные</option>
<option <?php echo (($_GET['type'] ?? 1) == 2 ? 'selected' : ''); ?> value="2">Декодированные данные</option>
</select>
<select id="raw-rows" style="float:left; margin-right: 5px;" class="pagination-rows">
<option <?php echo ($rows == 25 ? 'selected' : ''); ?> value="25">25 строк</option>
<option <?php echo ($rows == 50 ? 'selected' : ''); ?> value="50">50 строк</option>
<option <?php echo ($rows == 100 ? 'selected' : ''); ?> value="100">100 строк</option>
<option <?php echo ($rows == 200 ? 'selected' : ''); ?> value="200">200 строк</option>
<option <?php echo ($rows == 300 ? 'selected' : ''); ?> value="300">300 строк</option>
</select>
</div>
<?php if ($pages > 1): ?>
<div class="pagination">
<a class="tdlink" href="/views/raw.php?id=<?php echo $station->id; ?>&category=<?php echo ($_GET['category'] ?? 1) ?>&type=<?php echo ($_GET['type'] ?? 1); ?>&rows=<?php echo $rows; ?>&page=1"><<</a>
<?php for($i = max(1, $page - 3); $i <= min($pages, $page + 3); $i++) : ?>
<a href="/views/raw.php?id=<?php echo $station->id; ?>&category=<?php echo ($_GET['category'] ?? 1) ?>&type=<?php echo ($_GET['type'] ?? 1); ?>&rows=<?php echo $rows; ?>&page=<?php echo $i; ?>" <?php echo ($i == $page ? 'class="tdlink active"': 'class="tdlink"')?>><?php echo $i ?></a>
<?php endfor; ?>
<a class="tdlink" href="/views/raw.php?id=<?php echo $station->id; ?>&category=<?php echo ($_GET['category'] ?? 1) ?>&type=<?php echo ($_GET['type'] ?? 1); ?>&rows=<?php echo $rows; ?>&page=<?php echo $pages; ?>">>></a>
</div>
<?php endif; ?>
<div id="raw-content-output">
<?php foreach (array_slice($packets, 0, $rows) as $packet) : ?>
<?php if (($_GET['type'] ?? 1) == 1) : ?>
<p>
<span class="raw-packet-timestamp"><?php echo $packet->timestamp; ?></span>:
<?php if (in_array($packet->mapId, Array(3, 6))) : ?>
<span class="raw-packet-error">
<?php else : ?>
<span>
<?php endif; ?>
<?php echo str_replace_first(htmlspecialchars($station->name . '>'), '<b>' . htmlspecialchars($station->name) . '</b>&gt;', htmlspecialchars($packet->raw)); ?>
<?php if ($packet->mapId == 3) : ?>
&nbsp;<b>[Дубликат]</b>
<?php elseif ($packet->mapId == 6) : ?>
&nbsp;<b>[Получено в неправильном порядке]</b>
<?php endif; ?>
</span>
</p>
<?php elseif (($_GET['type'] ?? 1) == 2) : ?>
<div class="decoded">
<div class="datagrid">
<table>
<thead>
<tr>
<th colspan="2">
<?php if (in_array($packet->mapId, Array(3, 6))) : ?>
<span class="raw-packet-error">
<?php else : ?>
<span>
<?php endif; ?>
<span class="raw-packet-timestamp"><?php echo $packet->timestamp; ?></span>
<?php if ($packet->mapId == 3) : ?>
&nbsp;<b>[Дубликат]</b>
<?php elseif ($packet->mapId == 6) : ?>
&nbsp;<b>[Получено в неправильном порядке]</b>
<?php endif; ?>
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>Необработанные</td>
<td>
<?php echo str_replace_first(htmlspecialchars($station->name . '>'), '<b>' . htmlspecialchars($station->name) . '</b>&gt;', htmlspecialchars($packet->raw)); ?>
</td>
</tr>
<tr><td>Тип пакета</td><td><?php echo $packet->getPacketTypeName(); ?></td></tr>
<?php if ($packet->getStationObject()->stationTypeId == 2) : ?>
<tr><td>Название объекта</td><td><?php echo htmlspecialchars($packet->getStationObject()->name); ?></td></tr>
<?php else : ?>
<tr><td>Позывной</td><td><?php echo htmlspecialchars($packet->getStationObject()->name); ?></td></tr>
<?php endif; ?>
<?php if ($packet->getStationObject()->name != $packet->getSenderObject()->name) : ?>
<tr><td>Отправитель</td><td><?php echo htmlspecialchars($packet->getSenderObject()->name); ?></td></tr>
<?php endif; ?>
<tr><td>Путь</td><td><?php echo htmlspecialchars($packet->rawPath); ?></td></tr>
<?php if ($packet->reportedTimestamp != null) : ?>
<tr><td>Переданное время</td><td><?php echo $packet->reportedTimestamp; ?> - <span class="raw-packet-timestamp"><?php echo $packet->reportedTimestamp; ?></span></td></tr>
<?php endif; ?>
<?php if ($packet->latitude != null && $packet->longitude != null) : ?>
<tr><td>Latitude</td><td><?php echo round($packet->latitude, 5); ?></td></tr>
<tr><td>Longitude</td><td><?php echo round($packet->longitude, 5); ?></td></tr>
<?php endif; ?>
<?php if ($packet->symbol != null && $packet->symbolTable != null) : ?>
<tr><td>Символ</td><td><?php echo htmlspecialchars($packet->symbol); ?></td></tr>
<tr><td>Таблица символов</td><td><?php echo htmlspecialchars($packet->symbolTable); ?></td></tr>
<?php endif; ?>
<?php if ($packet->speed != null) : ?>
<?php if (isImperialUnitUser()) : ?>
<tr><td>Скорость</td><td><?php echo convertKilometerToMile($packet->speed); ?> миль/ч</td></tr>
<?php else : ?>
<tr><td>Скорость</td><td><?php echo $packet->speed; ?> км/ч</td></tr>
<?php endif; ?>
<?php endif; ?>
<?php if ($packet->course != null) : ?>
<tr><td>Курс</td><td><?php echo $packet->course; ?>°</td></tr>
<?php endif; ?>
<?php if ($packet->altitude != null) : ?>
<?php if (isImperialUnitUser()) : ?>
<tr><td>Высота</td><td><?php echo convertMeterToFeet($packet->altitude); ?> ф</td></tr>
<?php else : ?>
<tr><td>Высота</td><td><?php echo $packet->altitude; ?> м</td></tr>
<?php endif; ?>
<?php endif; ?>
<?php if ($packet->comment != null) : ?>
<?php if ($packet->packetTypeId == 10) : ?>
<tr><td>Статус</td><td><?php echo htmlspecialchars($packet->comment); ?></td></tr>
<?php elseif ($packet->packetTypeId == 7) : ?>
<tr><td>Маяк</td><td><?php echo htmlspecialchars($packet->comment); ?></td></tr>
<?php else : ?>
<tr><td>Комментарий</td><td><?php echo htmlspecialchars($packet->comment); ?></td></tr>
<?php endif; ?>
<?php endif; ?>
<?php if ($packet->posambiguity == 1) : ?>
<tr><td>Неоднозначность положения</td><td>Да</td></tr>
<?php endif; ?>
<?php if ($packet->phg != null) : ?>
<?php if (isImperialUnitUser()) : ?>
<tr><td>PHG</td><td><?php echo $packet->phg; ?> (Расчётный диапазон: <?php echo round(convertKilometerToMile($packet->getPHGRange()/1000),2); ?> миль)</td></tr>
<?php else : ?>
<tr><td>PHG</td><td><?php echo $packet->phg; ?> (Расчётный диапазон: <?php echo round($packet->getPHGRange()/1000,2); ?> км)</td></tr>
<?php endif; ?>
<?php endif; ?>
<?php if ($packet->rng != null) : ?>
<tr><td>RNG</td><td><?php echo $packet->rng; ?></td></tr>
<?php endif; ?>
<?php if ($station->latestWeatherPacketTimestamp !== null) : ?>
<?php $weather = $packet->getPacketWeather(); ?>
<?php if ($weather->isExistingObject()) : ?>
<tr>
<td>Погода</td>
<td>
<table>
<tbody>
<?php if ($weather->wxRawTimestamp !== null) : ?>
<tr>
<td>Время:</td><td><span class="raw-packet-timestamp"><?php echo $weather->wxRawTimestamp; ?></span></td>
</tr>
<?php endif; ?>
<?php if ($weather->temperature !== null) : ?>
<tr>
<td>Температура:</td>
<?php if (isImperialUnitUser()) : ?>
<td><?php echo round(convertCelciusToFahrenheit($weather->temperature), 2); ?>&deg; F</td>
<?php else : ?>
<td><?php echo round($weather->temperature, 2); ?>&deg; C</td>
<?php endif; ?>
</tr>
<?php endif; ?>
<?php if ($weather->humidity !== null) : ?>
<tr>
<td>Влажность:</td>
<td><?php echo $weather->humidity; ?>%</td>
</tr>
<?php endif; ?>
<?php if ($weather->pressure !== null) : ?>
<tr>
<td>Давление:</td>
<?php if (isImperialUnitUser()) : ?>
<td><?php echo round(convertMbarToMmhg($weather->pressure),1); ?> мм.рт.ст.</td>
<?php else : ?>
<td><?php echo round($weather->pressure,1); ?> гПа</td>
<?php endif; ?>
</tr>
<?php endif; ?>
<?php if ($weather->rain_1h !== null) : ?>
<tr>
<td>Осадки за последний час:</td>
<?php if (isImperialUnitUser()) : ?>
<td><?php echo round(convertMmToInch($weather->rain_1h),2); ?> in</td>
<?php else : ?>
<td><?php echo round($weather->rain_1h,2); ?> мм</td>
<?php endif; ?>
</tr>
<?php endif; ?>
<?php if ($weather->rain_24h !== null) : ?>
<tr>
<td>Осадки за последние 24 ч:</td>
<?php if (isImperialUnitUser()) : ?>
<td><?php echo round(convertMmToInch($weather->rain_24h),2); ?> in</td>
<?php else : ?>
<td><?php echo round($weather->rain_24h,2); ?> мм</td>
<?php endif; ?>
</tr>
<?php endif; ?>
<?php if ($weather->rain_since_midnight !== null) : ?>
<tr>
<td>Осадки с полуночи:</td>
<?php if (isImperialUnitUser()) : ?>
<td><?php echo round(convertMmToInch($weather->rain_since_midnight),2); ?> in</td>
<?php else : ?>
<td><?php echo round($weather->rain_since_midnight,2); ?> мм</td>
<?php endif; ?>
</tr>
<?php endif; ?>
<?php if (isImperialUnitUser()) : ?>
<?php if ($weather->wind_speed !== null && $weather->wind_speed > 0) : ?>
<tr>
<td>Скорость ветра:</td>
<td><?php echo round(convertMpsToMph($weather->wind_speed), 2); ?> миль/ч, <?php echo $weather->wind_direction; ?>&deg;</td>
</tr>
<?php elseif($weather->wind_speed !== null) : ?>
<tr>
<td>Скорость ветра:</td>
<td><?php echo round(convertMpsToMph($weather->wind_speed), 2); ?> миль/ч</td>
</tr>
<?php endif; ?>
<?php else : ?>
<?php if ($weather->wind_speed !== null && $weather->wind_speed > 0) : ?>
<tr>
<td>Скорость ветра:</td>
<td><?php echo round($weather->wind_speed, 2); ?> м/с, <?php echo $weather->wind_direction; ?>&deg;</td>
</tr>
<?php elseif($weather->wind_speed !== null) : ?>
<tr>
<td>Скорость ветра:</td>
<td><?php echo round($weather->wind_speed, 2); ?> м/с</td>
</tr>
<?php endif; ?>
<?php endif; ?>
<?php if ($weather->luminosity !== null) : ?>
<tr>
<td>Освещённость:</td><td><?php echo round($weather->luminosity,0); ?> Вт/м&sup2;</td>
</tr>
<?php endif; ?>
<?php if ($weather->snow !== null) : ?>
<tr>
<?php if (isImperialUnitUser()) : ?>
<td>Снег:</td><td><?php echo round(convertMmToInch($weather->snow), 0); ?> in</td>
<?php else : ?>
<td>Снег:</td><td><?php echo round($weather->snow, 0); ?> мм</td>
<?php endif; ?>
</tr>
<?php endif; ?>
</tbody>
</table>
</td>
</tr>
<?php endif; ?>
<?php endif; ?>
<?php if ($station->latestTelemetryPacketTimestamp !== null) : ?>
<?php $telemetry = $packet->getPacketTelemetry(); ?>
<?php if ($telemetry->isExistingObject()) : ?>
<tr>
<td>Аналоговые значения телеметрии</td>
<td>
<table>
<tbody>
<?php for ($i = 1; $i<=5; $i++) : ?>
<?php if ($telemetry->isValueSet($i)) : ?>
<tr>
<td><?php echo htmlspecialchars($telemetry->getValueParameterName($i)); ?>:</td>
<td><?php echo round($telemetry->getValue($i), 2); ?> <?php echo htmlspecialchars($telemetry->getValueUnit($i)); ?></td>
</tr>
<?php endif; ?>
<?php endfor; ?>
</tbody>
</table>
</td>
</tr>
<?php if ($telemetry->bits !== null) : ?>
<tr>
<td>Значения битов телеметрии</td>
<td>
<table>
<tbody>
<?php for ($i = 1; $i<=8; $i++) : ?>
<tr>
<td><?php echo htmlspecialchars($telemetry->getBitParameterName($i)); ?>:</td>
<td><?php echo $telemetry->getBit($i); ?></td>
</tr>
<?php endfor; ?>
</tbody>
</table>
</td>
</tr>
<?php endif; ?>
<?php endif; ?>
<?php if ($packet->packetTypeId == 7 && strstr($packet->raw, ':UNIT.')) : ?>
<?php $pos = strpos($packet->raw, ':UNIT.'); ?>
<tr>
<td>Телеметрия: единицы</td>
<td>
<?php echo htmlspecialchars(substr($packet->raw, $pos + 6)); ?>
</td>
</tr>
<?php endif; ?>
<?php if ($packet->packetTypeId == 7 && strstr($packet->raw, ':BITS.')) : ?>
<?php $pos = strpos($packet->raw, ':BITS.'); ?>
<tr>
<td>Телеметрия: биты</td>
<td>
<?php echo htmlspecialchars(substr($packet->raw, $pos + 6)); ?>
</td>
</tr>
<?php endif; ?>
<?php if ($packet->packetTypeId == 7 && strstr($packet->raw, ':EQNS.')) : ?>
<?php $pos = strpos($packet->raw, ':EQNS.'); ?>
<tr>
<td>Телеметрия: EQNS</td>
<td>
<?php echo htmlspecialchars(substr($packet->raw, $pos + 6)); ?>
</td>
</tr>
<?php endif; ?>
<?php if ($packet->packetTypeId == 7 && strstr($packet->raw, ':PARM.')) : ?>
<?php $pos = strpos($packet->raw, ':PARM.'); ?>
<tr>
<td>Телеметрия: PARM</td>
<td>
<?php echo htmlspecialchars(substr($packet->raw, $pos + 6)); ?>
</td>
</tr>
<?php endif; ?>
<?php endif; ?>
<?php if ($packet->getPacketOgn()->isExistingObject()) : ?>
<?php if ($packet->getPacketOgn()->ognSignalToNoiseRatio !== null) : ?>
<tr>
<td>Отношение сигнал/шум</td>
<td>
<?php echo $packet->getPacketOgn()->ognSignalToNoiseRatio; ?> dB
</td>
</tr>
<?php endif;?>
<?php if ($packet->getPacketOgn()->ognBitErrorsCorrected !== null) : ?>
<tr>
<td>Bits corrected</td>
<td>
<?php echo $packet->getPacketOgn()->ognBitErrorsCorrected; ?>
</td>
</tr>
<?php endif;?>
<?php if ($packet->getPacketOgn()->ognFrequencyOffset !== null) : ?>
<tr>
<td>Разнос частоты</td>
<td>
<?php echo $packet->getPacketOgn()->ognFrequencyOffset; ?> кГц
</td>
</tr>
<?php endif;?>
<?php if ($packet->getPacketOgn()->ognClimbRate !== null) : ?>
<tr>
<td>Скорость набора высоты</td>
<td>
<?php echo $packet->getPacketOgn()->ognClimbRate; ?> ф/м
</td>
</tr>
<?php endif;?>
<?php if ($packet->getPacketOgn()->ognTurnRate !== null) : ?>
<tr>
<td>Скорость поворота</td>
<td>
<?php echo $packet->getPacketOgn()->ognTurnRate; ?> ф/м
</td>
</tr>
<?php endif;?>
<?php endif;?>
</tbody>
</table>
</div>
</div>
<?php endif; ?>
<?php endforeach; ?>
</div>
<?php if (count($packets) == 0) : ?>
<p>
<b><i>Не найдено сырых данных.</i></b>
</p>
<?php endif; ?>
</div>
<script>
$(document).ready(function() {
var locale = window.navigator.userLanguage || window.navigator.language;
moment.locale(locale);
$('.raw-packet-timestamp').each(function() {
if ($(this).html().trim() != '' && !isNaN($(this).html().trim())) {
$(this).html(moment(new Date(1000 * $(this).html())).format('L LTSZ'));
}
});
$('#raw-category').change(function () {
loadView("/views/raw.php?id=<?php echo $station->id ?>&type=" + $('#raw-type').val() + "&category=" + $('#raw-category').val() + "&rows=" + $('#raw-rows').val() + "&page=1");
});
$('#raw-type').change(function () {
loadView("/views/raw.php?id=<?php echo $station->id ?>&type=" + $('#raw-type').val() + "&category=" + $('#raw-category').val() + "&rows=" + $('#raw-rows').val() + "&page=1");
});
$('#raw-rows').change(function () {
loadView("/views/raw.php?id=<?php echo $station->id ?>&type=" + $('#raw-type').val() + "&category=" + $('#raw-category').val() + "&rows=" + $('#raw-rows').val() + "&page=1");
});
if (window.parent && window.parent.trackdirect) {
<?php if ($station->latestConfirmedLatitude != null && $station->latestConfirmedLongitude != null) : ?>
window.parent.trackdirect.addListener("map-created", function() {
window.parent.trackdirect.focusOnStation(<?php echo $station->id ?>, true);
});
<?php endif; ?>
}
});
</script>
<?php endif; ?>