Integrate information about next passes into sat timers
这个提交包含在:
父节点
f026b8518f
当前提交
a9ec7818cb
共有 5 个文件被更改,包括 77 次插入 和 17 次删除
|
|
@ -10,15 +10,38 @@ class Sattimers extends CI_Controller {
|
|||
}
|
||||
|
||||
public function index() {
|
||||
$this->load->model('stations');
|
||||
$footerData = [];
|
||||
$footerData['scripts'] = [
|
||||
'assets/js/sections/sattimers.js?'
|
||||
];
|
||||
$url = 'https://www.df2et.de/tevel/api.php';
|
||||
$url = 'https://www.df2et.de/tevel/api2.php?grid='.strtoupper($this->stations->find_gridsquare());
|
||||
$json = file_get_contents($url);
|
||||
$data['activations'] = json_decode($json, true)['data'];
|
||||
$data['gridsquare'] = strtoupper($this->stations->find_gridsquare());
|
||||
|
||||
$data['page_title'] = "Satellite Timers";
|
||||
|
||||
$CI =& get_instance();
|
||||
if($CI->session->userdata('user_date_format')) {
|
||||
$data['custom_date_format'] = $CI->session->userdata('user_date_format');
|
||||
} else {
|
||||
$data['custom_date_format'] = $CI->config->item('qso_date_format');
|
||||
}
|
||||
|
||||
switch ($data['custom_date_format']) {
|
||||
case "d/m/y": $data['custom_date_format'] = 'DD/MM/YY'; break;
|
||||
case "d/m/Y": $data['custom_date_format'] = 'DD/MM/YYYY'; break;
|
||||
case "m/d/y": $data['custom_date_format'] = 'MM/DD/YY'; break;
|
||||
case "m/d/Y": $data['custom_date_format'] = 'MM/DD/YYYY'; break;
|
||||
case "d.m.Y": $data['custom_date_format'] = 'DD.MM.YYYY'; break;
|
||||
case "y/m/d": $data['custom_date_format'] = 'YY/MM/DD'; break;
|
||||
case "Y-m-d": $data['custom_date_format'] = 'YYYY-MM-DD'; break;
|
||||
case "M d, Y": $data['custom_date_format'] = 'MMM DD, YYYY'; break;
|
||||
case "M d, y": $data['custom_date_format'] = 'MMM DD, YY'; break;
|
||||
default: $data['custom_date_format'] = 'DD/MM/YYYY';
|
||||
}
|
||||
|
||||
$this->load->view('interface_assets/header', $data);
|
||||
$this->load->view('/sattimers/index', $data);
|
||||
$this->load->view('interface_assets/footer', $footerData);
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ function load_was_map() {
|
|||
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/sections/continents.js"></script>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($this->uri->segment(1) == "adif" || $this->uri->segment(1) == "qrz" || $this->uri->segment(1) == "hrdlog" ||$this->uri->segment(1) == "webadif") { ?>
|
||||
<?php if ($this->uri->segment(1) == "adif" || $this->uri->segment(1) == "qrz" || $this->uri->segment(1) == "hrdlog" || $this->uri->segment(1) == "webadif" || $this->uri->segment(1) == "sattimers") { ?>
|
||||
<!-- Javascript used for ADIF Import and Export Areas -->
|
||||
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/moment.min.js"></script>
|
||||
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/tempusdominus-bootstrap-4.min.js"></script>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
<script type="text/javascript">
|
||||
var custom_date_format = "<?php echo $custom_date_format ?>";
|
||||
</script>
|
||||
<div class="container">
|
||||
<div class="table-responsive">
|
||||
|
||||
<h2>Satellite Timers</h2>
|
||||
<p>This data is from <a target="_blank" href="https://www.df2et.de/tevel/">https://www.df2et.de/tevel/</a></p>
|
||||
<p>This data is from <a target="_blank" href="https://www.df2et.de/tevel/">https://www.df2et.de/tevel/</a> calculated for current station location grid <?php echo strtoupper($gridsquare);?>.</p>
|
||||
<script type="text/javascript">
|
||||
let dateArray = [];
|
||||
dateArray.push(0);
|
||||
|
|
@ -23,18 +26,30 @@
|
|||
<tr>
|
||||
<th>Satellite</th>
|
||||
<th colspan="2">Status</th>
|
||||
<th>Time-Out</th>
|
||||
<th></td>
|
||||
<th>Time(d)-Out</th>
|
||||
<th>AOS</th>
|
||||
<th>LOS</th>
|
||||
<th>AOS Azimuth</th>
|
||||
<th>LOS Azimuth</th>
|
||||
<th>Max Elevation</th>
|
||||
<th>Duration</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php $i = 1; ?>
|
||||
<?php foreach ($activations as $activation) : ?>
|
||||
<tr>
|
||||
<tr id="line">
|
||||
<td><span><?php echo $activation['sat']; ?></span></td>
|
||||
<td><span class="emoji" id="emoji<?php echo $i; ?>">n/a</span></td>
|
||||
<td><span id="tevel<?php echo $i; ?>Timer"></span></td>
|
||||
<td><span class="timeout" id="tevel<?php echo $i; ?>Timeout">...</span></td>
|
||||
<td><span id="tevel<?php echo $i; ?>Timeout">...</span></td>
|
||||
<td><span id="tevel<?php echo $i; ?>AosTime"><?php echo date('H:i:s', $activation['aos_time']); ?></span></td>
|
||||
<td><span id="tevel<?php echo $i; ?>LosTime"><?php echo date('H:i:s', $activation['los_time']); ?></span></td>
|
||||
<td><span id="tevel<?php echo $i; ?>Aos"><?php echo $activation['aos']; ?>°</span></td>
|
||||
<td><span id="tevel<?php echo $i; ?>Los"><?php echo $activation['los']; ?>°</span></td>
|
||||
<td><span id="tevel<?php echo $i; ?>MaxEl"><?php echo $activation['max_elev']; ?>°</span></td>
|
||||
<td><span id="tevel<?php echo $i; ?>Duration"><?php echo $activation['duration_min']; ?>°</span></td>
|
||||
<td>
|
||||
<?php
|
||||
if (strpos($activation['sat'], 'TEVEL') !== false) {
|
||||
|
|
@ -45,6 +60,8 @@
|
|||
echo "<a href=\"https://x.com/Diwata2PH?s=20\" target=\"_blank\">Info</a>";
|
||||
} else if (strpos($activation['sat'], 'CAS-3H') !== false) {
|
||||
echo "<a href=\"https://www.amsat.org/two-way-satellites/lilacsat-2-cas-3h/\" target=\"_blank\">Info</a>";
|
||||
} else if (strpos($activation['sat'], 'LEDSAT') !== false) {
|
||||
echo "<a href=\"https://www.esa.int/Education/CubeSats_-_Fly_Your_Satellite/Connect_and_communicate_with_a_satellite_via_the_LEDSAT_Digipeater_Challenge\" target=\"_blank\">Info</a>";
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
|
|
|
|||
|
|
@ -1,32 +1,26 @@
|
|||
.title {
|
||||
text-align: center;
|
||||
font-family: sans-serif;
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
.active {
|
||||
font-family: sans-serif;
|
||||
color: #3fb618;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.timedout {
|
||||
font-family: sans-serif;
|
||||
color: #f00;
|
||||
}
|
||||
|
||||
.nonfunctional {
|
||||
font-family: sans-serif;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.timeout {
|
||||
font-family: sans-serif;
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
.expired {
|
||||
font-family: sans-serif;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,21 @@ function update(i) {
|
|||
element.classList.add("nonfunctional");
|
||||
element = document.getElementById("emoji"+i);
|
||||
element.innerHTML = "💀";
|
||||
} else {
|
||||
element = document.getElementById("tevel"+i+"Timeout");
|
||||
element.className = "expired";
|
||||
element = document.getElementById("tevel"+i+"AosTime");
|
||||
element.className = "expired";
|
||||
element = document.getElementById("tevel"+i+"LosTime");
|
||||
element.className = "expired";
|
||||
element = document.getElementById("tevel"+i+"Aos");
|
||||
element.className = "expired";
|
||||
element = document.getElementById("tevel"+i+"Los");
|
||||
element.className = "expired";
|
||||
element = document.getElementById("tevel"+i+"MaxEl");
|
||||
element.className = "expired";
|
||||
element = document.getElementById("tevel"+i+"Duration");
|
||||
element.className = "expired";
|
||||
} else {
|
||||
|
||||
var distance = parseInt(dateArray[i]) - new Date(now.getTime());
|
||||
var satDate = new Date(parseInt(dateArray[i]));
|
||||
|
|
@ -26,7 +40,19 @@ function update(i) {
|
|||
element.innerHTML = "❌";
|
||||
element = document.getElementById("tevel"+i+"Timeout");
|
||||
element.className = "expired";
|
||||
element.innerHTML = "(timed-out: "+satDate.toLocaleDateString()+" "+satDate.toLocaleTimeString()+")";
|
||||
element.innerHTML = moment(satDate).format(custom_date_format)+" "+satDate.getUTCHours().toString().padStart(2, '0')+":"+satDate.getUTCMinutes().toString().padStart(2, '0');
|
||||
element = document.getElementById("tevel"+i+"AosTime");
|
||||
element.className = "expired";
|
||||
element = document.getElementById("tevel"+i+"LosTime");
|
||||
element.className = "expired";
|
||||
element = document.getElementById("tevel"+i+"Aos");
|
||||
element.className = "expired";
|
||||
element = document.getElementById("tevel"+i+"Los");
|
||||
element.className = "expired";
|
||||
element = document.getElementById("tevel"+i+"MaxEl");
|
||||
element.className = "expired";
|
||||
element = document.getElementById("tevel"+i+"Duration");
|
||||
element.className = "expired";
|
||||
} else {
|
||||
var element = document.getElementById("tevel"+i+"Timer");
|
||||
element.innerHTML = days + "d " + hours + "h " + minutes.toString().padStart(2, '0') + "m " + seconds.toString().padStart(2, '0') + "s";
|
||||
|
|
@ -34,12 +60,12 @@ function update(i) {
|
|||
element = document.getElementById("emoji"+i);
|
||||
element.innerHTML = "✅";
|
||||
element = document.getElementById("tevel"+i+"Timeout");
|
||||
element.innerHTML = "(until: "+satDate.toLocaleDateString()+" "+satDate.toLocaleTimeString()+")";
|
||||
element.innerHTML = moment(satDate).format(custom_date_format)+" "+satDate.getUTCHours().toString().padStart(2, '0')+":"+satDate.getUTCMinutes().toString().padStart(2, '0');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (let i=1; i<=12; i++) {
|
||||
for (let i=1; i<=13; i++) {
|
||||
var x = setInterval(function() {
|
||||
update(i);
|
||||
}, 1000);
|
||||
|
|
|
|||
正在加载…
在新工单中引用