исправление замечаний от Кости

This commit is contained in:
Vladislav Ostapov 2024-11-27 11:20:55 +03:00
parent c05a9cff7a
commit 5f3d5791da
2 changed files with 50 additions and 16 deletions

View File

@ -776,7 +776,7 @@ void api_driver::ApiDriver::setRxTxSettings(boost::property_tree::ptree &pt) {
mod.baudrate = pt.get<uint32_t>(json_path("tx.cymRate", '/')); mod.baudrate = pt.get<uint32_t>(json_path("tx.cymRate", '/'));
mod.central_freq_in_kGz = pt.get<double>(json_path("tx.centerFreq", '/')); mod.central_freq_in_kGz = pt.get<double>(json_path("tx.centerFreq", '/'));
const bool acmIsShortFrame = pt.get<bool>(json_path("dvbs2.frameSizeNormal", '/')); const bool acmIsShortFrame = !pt.get<bool>(json_path("dvbs2.frameSizeNormal", '/'));
mod.modcod_tx = (pt.get<uint32_t>(json_path("dvbs2.ccm_modcod", '/')) << 2) | (acmIsShortFrame ? 2 : 0); mod.modcod_tx = (pt.get<uint32_t>(json_path("dvbs2.ccm_modcod", '/')) << 2) | (acmIsShortFrame ? 2 : 0);
// демодулятор // демодулятор

View File

@ -219,7 +219,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_modulation"> <select v-model="param.dvbs2.ccm_modulation" @change="param.dvbs2.ccm_speed = correctModcodSpeed(param.dvbs2.ccm_modulation, param.dvbs2.ccm_speed)">
<option value="qpsk">QPSK</option> <option value="qpsk">QPSK</option>
<option value="8psk">8PSK</option> <option value="8psk">8PSK</option>
<option value="16apsk">16APSK</option> <option value="16apsk">16APSK</option>
@ -240,7 +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_maxModulation"> <select v-model="param.dvbs2.acm_maxModulation" @change="param.dvbs2.acm_maxSpeed = correctModcodSpeed(param.dvbs2.acm_maxModulation, param.dvbs2.acm_maxSpeed)">
<option value="qpsk">QPSK</option> <option value="qpsk">QPSK</option>
<option value="8psk">8PSK</option> <option value="8psk">8PSK</option>
<option value="16apsk">16APSK</option> <option value="16apsk">16APSK</option>
@ -255,7 +255,7 @@
</label> </label>
<label v-show="param.dvbs2.mode === 'acm'"> <label v-show="param.dvbs2.mode === 'acm'">
<span>Модуляция (мин. режим)</span> <span>Модуляция (мин. режим)</span>
<select v-model="param.dvbs2.acm_minModulation"> <select v-model="param.dvbs2.acm_minModulation" @change="param.dvbs2.acm_minSpeed = correctModcodSpeed(param.dvbs2.acm_minModulation, param.dvbs2.acm_minSpeed)">
<option value="qpsk">QPSK</option> <option value="qpsk">QPSK</option>
<option value="8psk">8PSK</option> <option value="8psk">8PSK</option>
<option value="16apsk">16APSK</option> <option value="16apsk">16APSK</option>
@ -616,7 +616,7 @@
</tbody> </tbody>
</table> </table>
<div> <div>
<button class="dangerous-button" onclick="fetch('/api/reboot', { method: 'POST' }).then((r) => { window.location.reload(); })">Перезагрузить модем</button> <button class="dangerous-button" @click="doModemReboot()">Перезагрузить модем <span class="submit-spinner" v-show="submitStatus.modemReboot !== null"></span></button>
</div> </div>
<div> <div>
<button class="dangerous-button" onclick="fetch('/api/resetSettings', { method: 'POST' }).then((r) => { window.location.reload(); })">Сбросить модем до заводских настроек</button> <button class="dangerous-button" onclick="fetch('/api/resetSettings', { method: 'POST' }).then((r) => { window.location.reload(); })">Сбросить модем до заводских настроек</button>
@ -714,7 +714,7 @@
case '4/5': return 8 case '4/5': return 8
case '5/6': return 9 case '5/6': return 9
case '8/9': return 10 case '8/9': return 10
case '9/1': return 11 case '9/10': return 11
default: return 1 // минимальная скорость default: return 1 // минимальная скорость
} }
case '8psk': case '8psk':
@ -725,7 +725,7 @@
case '5/6': return 15 case '5/6': return 15
case '8/9': return 16 case '8/9': return 16
case '9/10': return 17 case '9/10': return 17
default: return 12 // минимальная скорость default: return 13 // минимальная скорость
} }
case '16apsk': case '16apsk':
switch (speed) { switch (speed) {
@ -798,7 +798,9 @@
debugSend: false, debugSend: false,
tcpAccel: false, tcpAccel: false,
firmwareUpload: false, firmwareUpload: false,
firmwareUpgrade: false firmwareUpgrade: false,
// когда модем перезагружается, тут должен быть счетчик. Направление счета - к нулю
modemReboot: null
}, },
stat_rx: { stat_rx: {
@ -963,7 +965,7 @@
initState: '', initState: '',
lastUpdateTime: new Date(), lastUpdateTime: new Date(),
activeTab: getCurrentTab(), activeTab: getCurrentTab(),
settingFetchComplete: false settingFetchComplete: false,
}, },
methods: { methods: {
getAvailableModcods(modulation) { getAvailableModcods(modulation) {
@ -1081,7 +1083,7 @@
body: JSON.stringify(query) body: JSON.stringify(query)
}).then(async (resp) => { }).then(async (resp) => {
this.submitStatus.rxTx = false this.submitStatus.rxTx = false
this.updateCincSettings(await resp.json()) this.updateRxTxSettings(await resp.json())
}).catch((reason) => { }).catch((reason) => {
this.submitStatus.rxTx = false this.submitStatus.rxTx = false
alert(`Ошибка при применении настроек: ${reason}`) alert(`Ошибка при применении настроек: ${reason}`)
@ -1600,17 +1602,49 @@
} }
return result return result
},
correctModcodSpeed(modulation, speed) {
const mod = modulation.toLowerCase()
const available = {
"qpsk": ['1/4', '1/3', '2/5', '1/2', '3/5', '2/3', '3/4', '4/5', '5/6', '8/9', '9/10'],
"8psk": ['2/3', '3/4', '5/6', '8/9', '9/10'],
"16apsk": ['2/3', '3/4', '4/5', '5/6', '8/9', '9/10'],
"32apsk": ['3/4', '4/5', '5/6', '8/9', '9/10']
}
if (mod in available) {
if (available[mod].indexOf(speed) >= 0) {
return speed
}
return available[mod][0]
}
return ""
},
doModemReboot() {
if (this.submitStatus.modemReboot !== null) {
return
}
this.submitStatus.modemReboot = 30
fetch('/api/reboot', { method: 'POST' }).then((r) => {})
} }
}, },
mounted() { mounted() {
const doFetchStatistics = async () => { const doFetchStatistics = async () => {
try { if (this.submitStatus.modemReboot !== null) {
let d = await fetch("/api/get/statistics") this.initState = `Перезагрузка модема... Осталось ${this.submitStatus.modemReboot} сек`
this.updateStatistics(await d.json()) this.submitStatus.modemReboot--
} catch (e) { if (this.submitStatus.modemReboot <= 0) {
this.initState = "Ошибка обновления статистики" window.location.reload()
}
} else {
try {
let d = await fetch("/api/get/statistics")
this.updateStatistics(await d.json())
} catch (e) {
this.initState = "Ошибка обновления статистики"
}
} }
setTimeout(() => { setTimeout(() => {
doFetchStatistics() doFetchStatistics()
}, 1000) }, 1000)