kopia lustrzana https://github.com/DL7AD/pecanpico10
Merge branch 'master' of https://github.com/DL7AD/pecanpico10.git
commit
c264f211c4
|
@ -1,6 +1,8 @@
|
|||
<?php
|
||||
error_reporting(E_ALL ^ E_NOTICE);
|
||||
|
||||
ob_start("ob_gzhandler");
|
||||
|
||||
require_once "../Tracker.class.php";
|
||||
|
||||
header("Content-Type: application/json");
|
||||
|
|
|
@ -4,7 +4,7 @@ const COL_ORANGE = "#CC6600";
|
|||
const COL_RED = "#FF0000";
|
||||
|
||||
var xAxis = {
|
||||
format: range >= 86400 ? 'd. H:m' : 'H:m',
|
||||
format: range > 86400 ? 'd. H:m' : 'H:m',
|
||||
slantedTextAngle: 90
|
||||
}
|
||||
var area = {'width': '80%', top: 20, bottom: 70};
|
||||
|
@ -13,12 +13,12 @@ var lastChartUpdate = 0;
|
|||
var last = null;
|
||||
var init = false;
|
||||
|
||||
// Chart 1/2
|
||||
// Chart 1
|
||||
var batteryChart;
|
||||
var solarChart;
|
||||
var dataBattery;
|
||||
var dataSolar;
|
||||
var voltageOptions = {
|
||||
var batteryOptions = {
|
||||
//explorer: scroll,
|
||||
height: 250,
|
||||
series: {
|
||||
|
@ -27,8 +27,29 @@ var voltageOptions = {
|
|||
2: {targetAxisIndex: 1}
|
||||
},
|
||||
vAxes: {
|
||||
0: {title: 'Voltage (mV)'},
|
||||
1: {title: 'Power (mW)'},
|
||||
0: {title: 'Voltage (V)', viewWindow: {min: -2000, max: 6000}, ticks: [{v: 2000, f: '2.0'}, {v: 3000, f: '3.0'}, {v: 4000, f: '4.0'}, {v: 5000, f: '5.0'}, {v: 6000, f: '6.0'}]},
|
||||
1: {title: 'Power (mW)', viewWindow: {min: -500, max: 1500}, ticks: [-500, -250, 0, 250, 500]},
|
||||
},
|
||||
legend: {
|
||||
position: 'top'
|
||||
},
|
||||
hAxis: xAxis,
|
||||
|
||||
chartArea: area
|
||||
};
|
||||
|
||||
// Chart 2
|
||||
var solarOptions = {
|
||||
//explorer: scroll,
|
||||
height: 250,
|
||||
series: {
|
||||
0: {targetAxisIndex: 0},
|
||||
1: {targetAxisIndex: 0},
|
||||
2: {targetAxisIndex: 1}
|
||||
},
|
||||
vAxes: {
|
||||
0: {title: 'Voltage (V)', viewWindow: {min: -4000, max: 4000}, ticks: [{v: 0, f: '0.0'}, {v: 1000, f: '1.0'}, {v: 2000, f: '2.0'}, {v: 3000, f: '3.0'}, {v: 4000, f: '4.0'}]},
|
||||
1: {title: 'Power (mW)', viewWindow: {min: -500, max: 1500}, ticks: [-500, -250, 0, 250, 500]},
|
||||
},
|
||||
legend: {
|
||||
position: 'top'
|
||||
|
@ -73,8 +94,8 @@ var gpsOptions = {
|
|||
2: {targetAxisIndex: 0}
|
||||
},
|
||||
vAxes: {
|
||||
0: {title: 'Sats / pDOP'},
|
||||
1: {title: 'TTFF'},
|
||||
0: {title: 'Sats / pDOP', viewWindow: {min: 0, max: 30}, ticks: [0,5,10,15]},
|
||||
1: {title: 'TTFF', viewWindow: {min: -180, max: 180}, ticks: [0,60,120,180]},
|
||||
},
|
||||
legend: {
|
||||
position: 'top'
|
||||
|
@ -226,9 +247,9 @@ function updateData() {
|
|||
// Chart 4
|
||||
dataGPS = new google.visualization.DataTable();
|
||||
dataGPS.addColumn('date', 'Time');
|
||||
dataGPS.addColumn('number', "Sats");
|
||||
dataGPS.addColumn('number', "TTFF");
|
||||
dataGPS.addColumn('number', "pDOP");
|
||||
dataGPS.addColumn('number', "TTFF");
|
||||
dataGPS.addColumn('number', "Sats");
|
||||
gpsChart = new google.visualization.LineChart(document.getElementById('gpsDiv'));
|
||||
|
||||
// Chart 5
|
||||
|
@ -314,7 +335,7 @@ function updateData() {
|
|||
case 0: $('#' + key).html(colorize(COL_GREEN, "GPS locked")); break;
|
||||
case 1: $('#' + key).html(colorize(COL_GREEN, "GPS locked - kept switched on")); break;
|
||||
case 2: $('#' + key).html(colorize(COL_RED, "GPS loss")); break;
|
||||
case 3: $('#' + key).html(colorize(COL_ORANGE, "Low Batt before switched on")); break;
|
||||
case 3: $('#' + key).html(colorize(COL_ORANGE, "Low Batt before switch on")); break;
|
||||
case 4: $('#' + key).html(colorize(COL_ORANGE, "Low Batt while switched on")); break;
|
||||
case 5: $('#' + key).html(colorize(COL_GREEN, "Data from memory")); break;
|
||||
case 6: $('#' + key).html(colorize(COL_RED, "GPS never locked")); break;
|
||||
|
@ -444,6 +465,7 @@ function updateData() {
|
|||
for(i=0; i<=48; i++)
|
||||
xAxis.ticks.push(new Date(((Math.floor(time/interval)*interval)-i*interval)*1000))
|
||||
|
||||
lastValidGPSalt = null;
|
||||
$.each(tel, function(key, data) {
|
||||
|
||||
var time = new Date(data['org'] == 'pos' ? data['rxtime']*1000 : data['gps_time']*1000);
|
||||
|
@ -457,25 +479,34 @@ function updateData() {
|
|||
if(dataAlt) dataAlt.addRow([null,null,null,null,null]);
|
||||
}
|
||||
|
||||
if(dataBattery) dataBattery.addRow([time, data['adc_vbat'], data['pac_vbat'], data['pac_pbat']/10]);
|
||||
if(dataBattery)
|
||||
dataBattery.addRow([
|
||||
time,
|
||||
data['adc_vbat'],
|
||||
data['err_pac1720'] ? null : data['pac_vbat'],
|
||||
data['pac_pbat']/10]
|
||||
);
|
||||
if(dataSolar) dataSolar.addRow([time, data['adc_vsol'], data['pac_vsol'], data['pac_psol']/10]);
|
||||
if(dataTemp) dataTemp.addRow([
|
||||
time,
|
||||
data['sen_i1_temp'] && data['sen_i1_temp'] > -10000 && data['sen_i1_temp'] < 10000 ? data['sen_i1_temp']/100 : null,
|
||||
data['sen_e1_temp'] && data['sen_e1_temp'] > -10000 && data['sen_e1_temp'] < 10000 ? data['sen_e1_temp']/100 : null,
|
||||
data['sen_e2_temp'] && data['sen_e2_temp'] > -10000 && data['sen_e2_temp'] < 10000 ? data['sen_e2_temp']/100 : null,
|
||||
data['stm32_temp'] && data['stm32_temp'] > -10000 && data['stm32_temp'] < 10000 ? data['stm32_temp']/100 : null,
|
||||
data['si4464_temp'] && data['si4464_temp'] > -10000 && data['si4464_temp'] < 10000 ? data['si4464_temp']/100 : null
|
||||
data['err_bme280_i1'] ? null : data['sen_i1_temp']/100,
|
||||
data['err_bme280_e1'] ? null : data['sen_e1_temp']/100,
|
||||
data['err_bme280_e2'] ? null : data['sen_e2_temp']/100,
|
||||
data['stm32_temp']/100,
|
||||
data['si4464_temp']/100
|
||||
]);
|
||||
if(dataGPS) dataGPS.addRow([time, data['gps_sats'], data['gps_ttff'], data['gps_pdop']/20]);
|
||||
if(dataGPS) dataGPS.addRow([time, data['gps_pdop']/20, data['gps_ttff'], data['gps_sats']]);
|
||||
if(dataLight) dataLight.addRow([time, data['light_intensity']]);
|
||||
if(dataAlt) dataAlt.addRow([
|
||||
time,
|
||||
data['gps_alt'],
|
||||
data['sen_i1_press'] && data['sen_i1_press'] < 1100000 ? data['sen_i1_press']/10 : null,
|
||||
data['sen_e1_press'] && data['sen_e1_press'] < 1100000 ? data['sen_e1_press']/10 : null,
|
||||
data['sen_e2_press'] && data['sen_e2_press'] < 1100000 ? data['sen_e2_press']/10 : null
|
||||
]);
|
||||
if(dataAlt) {
|
||||
dataAlt.addRow([
|
||||
time,
|
||||
data['gps_lock'] < 2 ? data['gps_alt'] : lastValidGPSalt,
|
||||
data['err_bme280_i1'] ? null : data['sen_i1_press']/10,
|
||||
data['err_bme280_e1'] ? null : data['sen_e1_press']/10,
|
||||
data['err_bme280_e2'] ? null : data['sen_e2_press']/10
|
||||
]);
|
||||
if(data['gps_lock'] < 2) lastValidGPSalt = data['gps_alt'];
|
||||
}
|
||||
|
||||
last = time;
|
||||
});
|
||||
|
@ -496,8 +527,8 @@ function updateData() {
|
|||
}
|
||||
|
||||
// Update charts
|
||||
if(batteryChart) batteryChart.draw(dataBattery, voltageOptions);
|
||||
if(solarChart) solarChart.draw(dataSolar, voltageOptions);
|
||||
if(batteryChart) batteryChart.draw(dataBattery, batteryOptions);
|
||||
if(solarChart) solarChart.draw(dataSolar, solarOptions);
|
||||
if(tempChart) tempChart.draw(dataTemp, tempOptions);
|
||||
if(gpsChart) gpsChart.draw(dataGPS, gpsOptions);
|
||||
if(lightChart) lightChart.draw(dataLight, lightOptions);
|
||||
|
|
|
@ -80,7 +80,7 @@ telemetry {
|
|||
.side { order: 1; width: 250px; float: left; }
|
||||
.telemetry { order: 2; flex: 3 0px; min-width: 456px; max-width: 456px; }
|
||||
.range { order: 3; text-align: left; }
|
||||
.chart { order: 4; flex: 3 0px; min-width: 456px; max-width: 456px; }
|
||||
.chart { order: 4; flex: 3 0px; min-width: 688px; max-width: 688px; }
|
||||
}
|
||||
|
||||
.cross {
|
||||
|
|
|
@ -33,7 +33,7 @@ include "sidebar.inc.php";
|
|||
|
||||
<div class="wrapper">
|
||||
<telemetry class="inner telemetry">
|
||||
<div style="width:168px;height:42px;">Callsign<br><span id="call" class="fat"></span></div>
|
||||
<div style="width:168px;height:42px;">Callsign<br><span id="call" class="fat"><?=$_GET['call']?></span></div>
|
||||
<div style="width:120px;height:42px;">Reset<br><span id="reset" class="fat"></span></div>
|
||||
<div style="width:120px;height:42px;">ID<br><span id="id" class="fat"></span></div>
|
||||
<div style="width:250px;height:42px;">Time (RX)<br><span id="rxtime" class="fat"></span></div>
|
||||
|
@ -142,63 +142,28 @@ include "sidebar.inc.php";
|
|||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="width:440px;height:110px;" id="image">
|
||||
|
||||
<div style="width:150px;height:110px;" id="image"></div>
|
||||
<div style="width:274px;height:110px;">
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan="2">Subsystems</td>
|
||||
</tr>
|
||||
<tr height="5"></tr>
|
||||
<tr>
|
||||
<td width="65"><b>I<sup>2</sup>C<sub>I</sub></b></td>
|
||||
<td><b><span id="err_i2c1"></span></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>I<sup>2</sup>C<sub>E</sub></b></td>
|
||||
<td><b><span id="err_i2c2"></span></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>OV5640</b></td>
|
||||
<td><b><span id="err_ov5640"></span></b></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</telemetry>
|
||||
|
||||
|
||||
|
||||
<!--<telemetry class="inner telemetry" style="width:420px;height:260px;">
|
||||
<table>
|
||||
<tr>
|
||||
<td width="50%">
|
||||
<table>
|
||||
<tr>
|
||||
<th width="75">I2C<sub>INT</sub></th>
|
||||
<td><b><span id="err_i2c1"></span></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>I2C<sub>EXT</sub></th>
|
||||
<td><b><span id="err_i2c2"></span></b></td>
|
||||
</tr>
|
||||
<tr height="5"></tr>
|
||||
<tr>
|
||||
<th>EVA7M:</th>
|
||||
<td width="75"><b><span id="err_eva7m"></span></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>PAC1720:</th>
|
||||
<td width="230"><b><span id="err_pac1720"></span></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>OV5640:</th>
|
||||
<td><b><span id="err_ov5640"></span></b></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td width="50%">
|
||||
<table>
|
||||
<tr>
|
||||
<th width="75">BME280<sub>I1</sub>:</th>
|
||||
<td><b><span id="err_bme280_i1"></span></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
<th>BME280<sub>E1</sub>:</th>
|
||||
<td><b><span id="err_bme280_e1"></span></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>BME280<sub>E2</sub>:</th>
|
||||
<td><b><span id="err_bme280_e2"></span></b></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</telemetry>-->
|
||||
|
||||
|
||||
<div class="range">
|
||||
Range:
|
||||
<a href="?call=<?=$_GET['call']?>&range=3600">1h</a>
|
||||
|
|
Ładowanie…
Reference in New Issue