2023-09-09 17:01:10 +00:00
|
|
|
<script setup lang="ts">
|
|
|
|
|
2023-09-11 14:09:17 +00:00
|
|
|
|
|
|
|
import {saveSettingsToFile} from '../js/settingsHandler';
|
2023-09-09 17:01:10 +00:00
|
|
|
|
|
|
|
import { setActivePinia } from 'pinia';
|
|
|
|
import pinia from '../store/index';
|
|
|
|
setActivePinia(pinia);
|
|
|
|
|
|
|
|
import { useSettingsStore } from '../store/settingsStore.js';
|
|
|
|
const settings = useSettingsStore(pinia);
|
|
|
|
|
|
|
|
import { useStateStore } from '../store/stateStore.js';
|
|
|
|
const state = useStateStore(pinia);
|
|
|
|
|
2023-09-09 18:15:02 +00:00
|
|
|
function selectStatsControl(obj){
|
|
|
|
console.log(event.target.id)
|
|
|
|
switch (event.target.id) {
|
|
|
|
case 'list-waterfall-list':
|
|
|
|
settings.spectrum = "waterfall"
|
|
|
|
break;
|
|
|
|
case 'list-scatter-list':
|
|
|
|
settings.spectrum = "scatter"
|
|
|
|
break;
|
|
|
|
case 'list-chart-list':
|
|
|
|
settings.spectrum = "chart"
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
settings.spectrum = "waterfall"
|
|
|
|
|
|
|
|
}
|
|
|
|
saveSettingsToFile()
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2023-09-11 14:09:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-09 17:01:10 +00:00
|
|
|
</script>
|
2023-09-11 14:09:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-09 17:01:10 +00:00
|
|
|
<template>
|
|
|
|
<div class="card mb-1">
|
|
|
|
<div class="card-header p-1">
|
2023-09-09 18:15:02 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-09 17:01:10 +00:00
|
|
|
<div class="container">
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-11">
|
2023-09-09 18:15:02 +00:00
|
|
|
<div
|
2023-09-09 17:01:10 +00:00
|
|
|
class="btn-group"
|
|
|
|
role="group"
|
|
|
|
>
|
2023-09-09 18:15:02 +00:00
|
|
|
|
|
|
|
<div class="list-group list-group-horizontal" id="list-tab" role="tablist">
|
|
|
|
<a class="py-1 list-group-item list-group-item-action" id="list-waterfall-list" data-bs-toggle="list" href="#list-waterfall" role="tab" aria-controls="list-home" v-bind:class="{ 'active' : settings.spectrum === 'waterfall'}" @click="selectStatsControl()"><strong><i class="bi bi-water" ></i></strong></a>
|
|
|
|
<a class="py-1 list-group-item list-group-item-action" id="list-scatter-list" data-bs-toggle="list" href="#list-scatter" role="tab" aria-controls="list-profile" v-bind:class="{ 'active' : settings.spectrum === 'scatter'}" @click="selectStatsControl()"><strong><i class="bi bi-border-outer" ></i></strong></a>
|
|
|
|
<a class="py-1 list-group-item list-group-item-action" id="list-chart-list" data-bs-toggle="list" href="#list-chart" role="tab" aria-controls="list-messages" v-bind:class="{ 'active' : settings.spectrum === 'chart'}" @click="selectStatsControl()"><strong><i class="bi bi-graph-up-arrow" ></i></strong></a>
|
|
|
|
</div>
|
|
|
|
|
2023-09-11 15:08:56 +00:00
|
|
|
</div>
|
|
|
|
<div
|
|
|
|
class="btn-group"
|
|
|
|
role="group"
|
|
|
|
aria-label="Busy indicators"
|
|
|
|
>
|
2023-09-09 17:01:10 +00:00
|
|
|
<button
|
2023-09-11 15:08:56 +00:00
|
|
|
class="btn btn-sm btn-outline-secondary ms-2 disabled"
|
2023-09-09 17:01:10 +00:00
|
|
|
type="button"
|
|
|
|
data-bs-placement="top"
|
|
|
|
data-bs-toggle="tooltip"
|
|
|
|
data-bs-trigger="hover"
|
|
|
|
data-bs-html="true"
|
2023-09-11 15:08:56 +00:00
|
|
|
v-bind:class="{ 'btn-warning' : state.channel_busy === 'True', 'btn-outline-secondary' : state.channel_busy === 'False', }"
|
2023-09-09 17:01:10 +00:00
|
|
|
title="Channel busy state: <strong class='text-success'>not busy</strong> / <strong class='text-danger'>busy </strong>"
|
|
|
|
>
|
|
|
|
busy
|
|
|
|
</button>
|
|
|
|
<button
|
2023-09-11 15:08:56 +00:00
|
|
|
class="btn btn-sm btn-outline-secondary disabled"
|
2023-09-09 17:01:10 +00:00
|
|
|
type="button"
|
|
|
|
data-bs-placement="top"
|
|
|
|
data-bs-toggle="tooltip"
|
|
|
|
data-bs-trigger="hover"
|
|
|
|
data-bs-html="true"
|
|
|
|
title="Recieving data: illuminates <strong class='text-success'>green</strong> if receiving codec2 data"
|
2023-09-11 15:08:56 +00:00
|
|
|
v-bind:class="{ 'btn-success' : state.is_codec2_traffic === 'True', 'btn-outline-secondary' : state.is_codec2_traffic === 'False', }"
|
2023-09-09 17:01:10 +00:00
|
|
|
>
|
|
|
|
signal
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-1 text-end">
|
|
|
|
<button
|
|
|
|
type="button"
|
|
|
|
id="openHelpModalWaterfall"
|
|
|
|
data-bs-toggle="modal"
|
|
|
|
data-bs-target="#waterfallHelpModal"
|
|
|
|
class="btn m-0 p-0 border-0"
|
|
|
|
>
|
|
|
|
<i
|
|
|
|
class="bi bi-question-circle"
|
|
|
|
style="font-size: 1rem"
|
|
|
|
></i>
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="card-body p-1" style="height: 200px">
|
2023-09-09 18:15:02 +00:00
|
|
|
|
|
|
|
|
|
|
|
<div class="tab-content" id="nav-stats-tabContent">
|
|
|
|
<div class="tab-pane fade" v-bind:class="{ 'show active' : settings.spectrum === 'waterfall'}" id="list-waterfall" role="stats_tabpanel" aria-labelledby="list-waterfall-list"><canvas
|
2023-09-09 17:01:10 +00:00
|
|
|
id="waterfall"
|
|
|
|
style="position: relative; z-index: 2"
|
|
|
|
class="force-gpu"
|
2023-09-09 18:15:02 +00:00
|
|
|
></canvas></div>
|
|
|
|
<div class="tab-pane fade" v-bind:class="{ 'show active' : settings.spectrum === 'scatter'}" id="list-scatter" role="tabpanel" aria-labelledby="list-scatter-list"> <canvas
|
2023-09-09 17:01:10 +00:00
|
|
|
id="scatter"
|
|
|
|
style="position: relative; z-index: 1"
|
|
|
|
class="force-gpu"
|
2023-09-09 18:15:02 +00:00
|
|
|
></canvas></div>
|
|
|
|
<div class="tab-pane fade" v-bind:class="{ 'show active' : settings.spectrum === 'chart'}" id="list-chart" role="tabpanel" aria-labelledby="list-chart-list"> <canvas
|
2023-09-09 17:01:10 +00:00
|
|
|
id="chart"
|
|
|
|
style="position: relative; z-index: 1"
|
|
|
|
class="force-gpu"
|
2023-09-09 18:15:02 +00:00
|
|
|
></canvas></div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!--278px-->
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-09 17:01:10 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|