Show average period of beacons

This commit is contained in:
Adam Goldsmith 2019-07-12 14:36:00 -04:00
parent 185e07e580
commit f5b9057186
2 changed files with 10 additions and 2 deletions

View File

@ -4,6 +4,7 @@
<template v-if="status.lastHeard"> <template v-if="status.lastHeard">
<td>{{ formatTime(status.lastHeard) }}</td> <td>{{ formatTime(status.lastHeard) }}</td>
<td>{{ formatTime(now - status.lastHeard, true) }}</td> <td>{{ formatTime(now - status.lastHeard, true) }}</td>
<td>{{ formatTime(Math.round(status.avgDelta), true) }}</td>
<td>{{ status.lastVoltage || "" }}</td> <td>{{ status.lastVoltage || "" }}</td>
<td>{{ status.lastTemperature || "" }}</td> <td>{{ status.lastTemperature || "" }}</td>
</template> </template>
@ -12,6 +13,7 @@
<td>Never Heard</td> <td>Never Heard</td>
<td>Never Heard</td> <td>Never Heard</td>
<td>Never Heard</td> <td>Never Heard</td>
<td>Never Heard</td>
</template> </template>
</tr> </tr>
</template> </template>
@ -66,9 +68,14 @@ export default {
messages() { messages() {
Object.assign( Object.assign(
this.status, this.status,
this.messages.reduce((acc, message) => { this.messages.reduce((acc, message, idx, arr) => {
acc.lastHeard = message.date.getTime(); acc.lastHeard = message.date.getTime();
acc.delta = message.date - acc.lastHeard; if (idx === 0) {
acc.avgDelta = 0;
} else {
let delta = message.date.getTime() - arr[idx - 1].date.getTime();
acc.avgDelta = (acc.avgDelta * (idx - 1) + delta) / idx;
}
if ("data" in message && "analog" in message.data) { if ("data" in message && "analog" in message.data) {
acc.lastVoltage = message.data.analog[0] / 10; acc.lastVoltage = message.data.analog[0] / 10;
acc.lastTemperature = message.data.analog[1]; acc.lastTemperature = message.data.analog[1];

View File

@ -5,6 +5,7 @@
<th>Callsign</th> <th>Callsign</th>
<th>Last Heard</th> <th>Last Heard</th>
<th>Time since Last Heard</th> <th>Time since Last Heard</th>
<th>Avg. Period</th>
<th>Last Voltage</th> <th>Last Voltage</th>
<th>Last Temperature</th> <th>Last Temperature</th>
</tr> </tr>