мелкие изменения во фронте
This commit is contained in:
parent
b2ed7ab015
commit
5bfc5cebaf
@ -47,6 +47,9 @@
|
|||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
|
.tabs-item-flex-container > * {
|
||||||
|
flex: 1 1 auto
|
||||||
|
}
|
||||||
|
|
||||||
.tabs-item-flex-container > *, .settings-set-container {
|
.tabs-item-flex-container > *, .settings-set-container {
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
@ -57,6 +60,10 @@
|
|||||||
|
|
||||||
.tabs-item-flex-container th {
|
.tabs-item-flex-container th {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
|
padding-right: 1em;
|
||||||
|
}
|
||||||
|
.tabs-item-flex-container td {
|
||||||
|
min-width: 10em;
|
||||||
}
|
}
|
||||||
.tabs-item-flex-container h2 {
|
.tabs-item-flex-container h2 {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
|
105
static/main.html
105
static/main.html
@ -24,6 +24,7 @@
|
|||||||
<a href="#admin" class="tabs-btn" @click="activeTab = 'admin'" :class="{ active: activeTab === 'admin' }">Администрирование</a>
|
<a href="#admin" class="tabs-btn" @click="activeTab = 'admin'" :class="{ active: activeTab === 'admin' }">Администрирование</a>
|
||||||
<a href="/logout" class="tabs-btn">Выход</a>
|
<a href="/logout" class="tabs-btn">Выход</a>
|
||||||
</div>
|
</div>
|
||||||
|
<div :class="{ value_bad: initState !== 'Успешная инициализация системы' }">{{ initState }}</div>
|
||||||
<div class="tabs-body">
|
<div class="tabs-body">
|
||||||
<div class="tabs-body-item tabs-item-flex-container" v-show="activeTab === 'monitoring'">
|
<div class="tabs-body-item tabs-item-flex-container" v-show="activeTab === 'monitoring'">
|
||||||
<div>
|
<div>
|
||||||
@ -36,7 +37,8 @@
|
|||||||
<tr><th>Захват поиска по частоте</th><td><span :class="{ indicator_bad: stat_rx.freq_search_lock === true, indicator_good: stat_rx.freq_search_lock === false, indicator: true }"></span></td></tr>
|
<tr><th>Захват поиска по частоте</th><td><span :class="{ indicator_bad: stat_rx.freq_search_lock === true, indicator_good: stat_rx.freq_search_lock === false, indicator: true }"></span></td></tr>
|
||||||
<tr><th>Захват пакетной синхр.</th><td><span :class="{ indicator_bad: stat_rx.pkt_sync === true, indicator_good: stat_rx.pkt_sync === false, indicator: true }"></span></td></tr>
|
<tr><th>Захват пакетной синхр.</th><td><span :class="{ indicator_bad: stat_rx.pkt_sync === true, indicator_good: stat_rx.pkt_sync === false, indicator: true }"></span></td></tr>
|
||||||
<tr><th>ОСШ/RSSI</th><td>{{ stat_rx.snr }} / {{ stat_rx.rssi }}</td></tr>
|
<tr><th>ОСШ/RSSI</th><td>{{ stat_rx.snr }} / {{ stat_rx.rssi }}</td></tr>
|
||||||
<tr><th>Modcod/размер кадра</th><td>{{ stat_rx.modcod }} / {{ stat_rx.frameSize }}</td></tr>
|
<tr><th>Modcod</th><td>{{ stat_rx.modcod }}</td></tr>
|
||||||
|
<tr><th>Размер кадра</th><td>{{ stat_rx.frameSize }}</td></tr>
|
||||||
<tr><th>Пилот-символы</th><td>{{ stat_rx.pilots }}</td></tr>
|
<tr><th>Пилот-символы</th><td>{{ stat_rx.pilots }}</td></tr>
|
||||||
<tr><th>Символьная ошибка</th><td>{{ stat_rx.symError }}</td></tr>
|
<tr><th>Символьная ошибка</th><td>{{ stat_rx.symError }}</td></tr>
|
||||||
<tr><th>Грубая/точная част. ошибка, Гц</th><td>{{ stat_rx.freqErr }} / {{ stat_rx.freqErrAcc }}</td></tr>
|
<tr><th>Грубая/точная част. ошибка, Гц</th><td>{{ stat_rx.freqErr }} / {{ stat_rx.freqErrAcc }}</td></tr>
|
||||||
@ -207,16 +209,7 @@
|
|||||||
<label v-show="param.dvbs2.mode === 'ccm'">
|
<label v-show="param.dvbs2.mode === 'ccm'">
|
||||||
<span>Скорость кода</span>
|
<span>Скорость кода</span>
|
||||||
<select v-model="param.dvbs2.ccm_speed">
|
<select v-model="param.dvbs2.ccm_speed">
|
||||||
<option value="1/4">1/4</option>
|
<option v-for="speed in getAvailableModcods(param.dvbs2.ccm_modulation)" v-bind:value="speed">{{ speed }}</option>
|
||||||
<option value="1/3">1/3</option>
|
|
||||||
<option value="2/5">2/5</option>
|
|
||||||
<option value="1/2">1/2</option>
|
|
||||||
<option value="2/3">2/3</option>
|
|
||||||
<option value="3/4">3/4</option>
|
|
||||||
<option value="4/5">4/5</option>
|
|
||||||
<option value="5/6">5/6</option>
|
|
||||||
<option value="8/9">8/9</option>
|
|
||||||
<option value="9/10">9/10</option>
|
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
@ -232,16 +225,7 @@
|
|||||||
<label v-show="param.dvbs2.mode === 'acm'">
|
<label v-show="param.dvbs2.mode === 'acm'">
|
||||||
<span>Скорость кода (макс. режим)</span>
|
<span>Скорость кода (макс. режим)</span>
|
||||||
<select v-model="param.dvbs2.acm_maxSpeed">
|
<select v-model="param.dvbs2.acm_maxSpeed">
|
||||||
<option value="1/4">1/4</option>
|
<option v-for="speed in getAvailableModcods(param.dvbs2.acm_maxModulation)" v-bind:value="speed">{{ speed }}</option>
|
||||||
<option value="1/3">1/3</option>
|
|
||||||
<option value="2/5">2/5</option>
|
|
||||||
<option value="1/2">1/2</option>
|
|
||||||
<option value="2/3">2/3</option>
|
|
||||||
<option value="3/4">3/4</option>
|
|
||||||
<option value="4/5">4/5</option>
|
|
||||||
<option value="5/6">5/6</option>
|
|
||||||
<option value="8/9">8/9</option>
|
|
||||||
<option value="9/10">9/10</option>
|
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
<label v-show="param.dvbs2.mode === 'acm'">
|
<label v-show="param.dvbs2.mode === 'acm'">
|
||||||
@ -256,16 +240,7 @@
|
|||||||
<label v-show="param.dvbs2.mode === 'acm'">
|
<label v-show="param.dvbs2.mode === 'acm'">
|
||||||
<span>Скорость кода (мин. режим)</span>
|
<span>Скорость кода (мин. режим)</span>
|
||||||
<select v-model="param.dvbs2.acm_minSpeed">
|
<select v-model="param.dvbs2.acm_minSpeed">
|
||||||
<option value="'1/4'">1/4</option>
|
<option v-for="speed in getAvailableModcods(param.dvbs2.acm_minModulation)" v-bind:value="speed">{{ speed }}</option>
|
||||||
<option value="'1/3'">1/3</option>
|
|
||||||
<option value="'2/5'">2/5</option>
|
|
||||||
<option value="'1/2'">1/2</option>
|
|
||||||
<option value="'2/3'">2/3</option>
|
|
||||||
<option value="'3/4'">3/4</option>
|
|
||||||
<option value="'4/5'">4/5</option>
|
|
||||||
<option value="'5/6'">5/6</option>
|
|
||||||
<option value="'8/9'">8/9</option>
|
|
||||||
<option value="'9/10'">9/10</option>
|
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
@ -381,8 +356,49 @@
|
|||||||
return defaultTab
|
return defaultTab
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: взять модкоды из раздела 5.5.2.2 https://www.etsi.org/deliver/etsi_en/302300_302399/302307/01.01.02_60/en_302307v010102p.pdf
|
function modcodToStr(modcod) {
|
||||||
// и прикрутить декодинг модкода
|
// модкоды из раздела 5.5.2.2 https://www.etsi.org/deliver/etsi_en/302300_302399/302307/01.01.02_60/en_302307v010102p.pdf
|
||||||
|
|
||||||
|
// NOTE модкоды со скоростью хода 3/5 не работают
|
||||||
|
const modcods = [
|
||||||
|
"DUMMY",
|
||||||
|
"QPSK 1/4",
|
||||||
|
"QPSK 1/3",
|
||||||
|
"QPSK 2/5",
|
||||||
|
"QPSK 1/2",
|
||||||
|
"QPSK 3/5", // отключено
|
||||||
|
"QPSK 2/3",
|
||||||
|
"QPSK 3/4",
|
||||||
|
"QPSK 4/5",
|
||||||
|
"QPSK 5/6",
|
||||||
|
"QPSK 8/9",
|
||||||
|
"QPSK 9/10",
|
||||||
|
|
||||||
|
"8PSK 3/5", // отключено
|
||||||
|
"8PSK 2/3",
|
||||||
|
"8PSK 3/4",
|
||||||
|
"8PSK 5/6",
|
||||||
|
"8PSK 8/9",
|
||||||
|
"8PSK 9/10",
|
||||||
|
|
||||||
|
"16APSK 2/3",
|
||||||
|
"16APSK 3/4",
|
||||||
|
"16APSK 4/5",
|
||||||
|
"16APSK 5/6",
|
||||||
|
"16APSK 8/9",
|
||||||
|
"16APSK 9/10",
|
||||||
|
|
||||||
|
"32APSK 3/4",
|
||||||
|
"32APSK 4/5",
|
||||||
|
"32APSK 5/6",
|
||||||
|
"32APSK 8/9",
|
||||||
|
"32APSK 9/10",
|
||||||
|
]
|
||||||
|
if (typeof modcod != "number" || modcod < 0 || modcod >= modcod.length) {
|
||||||
|
return "?";
|
||||||
|
}
|
||||||
|
return modcods[modcod]
|
||||||
|
}
|
||||||
|
|
||||||
const app = new Vue({
|
const app = new Vue({
|
||||||
el: '#app',
|
el: '#app',
|
||||||
@ -487,14 +503,29 @@
|
|||||||
serviceSettings: {},
|
serviceSettings: {},
|
||||||
},
|
},
|
||||||
|
|
||||||
message: "<err>",
|
|
||||||
|
|
||||||
testState: '?',
|
testState: '?',
|
||||||
|
initState: '',
|
||||||
lastUpdateTime: new Date(),
|
lastUpdateTime: new Date(),
|
||||||
activeTab: getCurrentTab(),
|
activeTab: getCurrentTab(),
|
||||||
settingFetchComplete: false
|
settingFetchComplete: false
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getAvailableModcods(modulation) {
|
||||||
|
// NOTE модкоды со скоростью хода 3/5 не работают
|
||||||
|
switch (modulation) {
|
||||||
|
case 'qpsk':
|
||||||
|
return ['1/4', '1/3', '2/5', '1/2', /* '3/5',*/ '2/3', '3/4', '4/5', '5/6', '8/9', '9/10']
|
||||||
|
case '8psk':
|
||||||
|
return [/* '3/5',*/ '2/3', '3/4', '5/6', '8/9', '9/10']
|
||||||
|
case '16apsk':
|
||||||
|
return ['2/3', '3/4', '4/5', '5/6', '8/9', '9/10']
|
||||||
|
case '32apsk':
|
||||||
|
return ['3/4', '4/5', '5/6', '8/9', '9/10']
|
||||||
|
default:
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
updateStatistics(vals) {
|
updateStatistics(vals) {
|
||||||
this.lastUpdateTime = new Date();
|
this.lastUpdateTime = new Date();
|
||||||
this.isCinC = vals["mainState"]["isCinC"]
|
this.isCinC = vals["mainState"]["isCinC"]
|
||||||
@ -506,7 +537,7 @@
|
|||||||
this.stat_rx.pkt_sync = vals["mainState"]["rx.pkt_sync"]
|
this.stat_rx.pkt_sync = vals["mainState"]["rx.pkt_sync"]
|
||||||
this.stat_rx.snr = vals["mainState"]["rx.snr"]
|
this.stat_rx.snr = vals["mainState"]["rx.snr"]
|
||||||
this.stat_rx.rssi = vals["mainState"]["rx.rssi"]
|
this.stat_rx.rssi = vals["mainState"]["rx.rssi"]
|
||||||
this.stat_rx.modcod = vals["mainState"]["rx.modcod"]
|
this.stat_rx.modcod = modcodToStr(vals["mainState"]["rx.modcod"])
|
||||||
this.stat_rx.frameSize = vals["mainState"]["rx.frameSize"]
|
this.stat_rx.frameSize = vals["mainState"]["rx.frameSize"]
|
||||||
this.stat_rx.pilots = vals["mainState"]["rx.pilots"]
|
this.stat_rx.pilots = vals["mainState"]["rx.pilots"]
|
||||||
this.stat_rx.symError = vals["mainState"]["rx.symError"]
|
this.stat_rx.symError = vals["mainState"]["rx.symError"]
|
||||||
@ -522,7 +553,7 @@
|
|||||||
|
|
||||||
this.stat_tx.state = vals["mainState"]["tx.state"]
|
this.stat_tx.state = vals["mainState"]["tx.state"]
|
||||||
this.stat_tx.snr = vals["mainState"]["rx.snr"]
|
this.stat_tx.snr = vals["mainState"]["rx.snr"]
|
||||||
this.stat_tx.modcod = vals["mainState"]["rx.modcod"]
|
this.stat_tx.modcod = modcodToStr(vals["mainState"]["rx.modcod"])
|
||||||
this.stat_tx.frameSize = vals["mainState"]["rx.frameSize"]
|
this.stat_tx.frameSize = vals["mainState"]["rx.frameSize"]
|
||||||
this.stat_tx.pilots = vals["mainState"]["rx.pilots"]
|
this.stat_tx.pilots = vals["mainState"]["rx.pilots"]
|
||||||
this.stat_tx.speedOnTxKbit = vals["mainState"]["tx.speedOnTxKbit"]
|
this.stat_tx.speedOnTxKbit = vals["mainState"]["tx.speedOnTxKbit"]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user