фикс косячных строк в json, фича: SNR в вебке
This commit is contained in:
@@ -217,7 +217,7 @@
|
||||
</select>
|
||||
</label>
|
||||
<label v-show="paramRxtx.dvbIsAcm === false">
|
||||
<span>Расчетная скорость, kbit</span><span>{{ calcInterfaceSpeedKb(paramRxtx.txBaudrate, paramRxtx.dvbCcmModulation, paramRxtx.dvbCcmSpeed) }}</span>
|
||||
<span>Расчетная скорость</span><span>{{ calcInterfaceSpeedKb(paramRxtx.txBaudrate, paramRxtx.dvbCcmModulation, paramRxtx.dvbCcmSpeed, paramRxtx.txFrameSizeNormal) }}</span>
|
||||
</label>
|
||||
<label v-show="paramRxtx.dvbIsAcm === true">
|
||||
<span>Текущий модкод</span><span>{{ statTx.modcod }}</span>
|
||||
@@ -238,7 +238,7 @@
|
||||
</select>
|
||||
</label>
|
||||
<label v-show="paramRxtx.dvbIsAcm === true">
|
||||
<span>Расчетная скорость (мин. режим), kbit</span><span>{{ calcInterfaceSpeedKb(paramRxtx.txBaudrate, paramRxtx.dvbAcmMinModulation, paramRxtx.dvbAcmMinSpeed) }}</span>
|
||||
<span>Расчетная скорость (мин. режим)</span><span>{{ calcInterfaceSpeedKb(paramRxtx.txBaudrate, paramRxtx.dvbAcmMinModulation, paramRxtx.dvbAcmMinSpeed, paramRxtx.txFrameSizeNormal) }}</span>
|
||||
</label>
|
||||
<label v-show="paramRxtx.dvbIsAcm === true">
|
||||
<span>Модуляция (макс. режим)</span>
|
||||
@@ -256,7 +256,7 @@
|
||||
</select>
|
||||
</label>
|
||||
<label v-show="paramRxtx.dvbIsAcm === true">
|
||||
<span>Расчетная скорость (макс. режим), kbit</span><span>{{ calcInterfaceSpeedKb(paramRxtx.txBaudrate, paramRxtx.dvbAcmMaxModulation, paramRxtx.dvbAcmMaxSpeed) }}</span>
|
||||
<span>Расчетная скорость (макс. режим)</span><span>{{ calcInterfaceSpeedKb(paramRxtx.txBaudrate, paramRxtx.dvbAcmMaxModulation, paramRxtx.dvbAcmMaxSpeed, paramRxtx.txFrameSizeNormal) }}</span>
|
||||
</label>
|
||||
<label><span>Запас ОСШ, дБ</span><input type="number" v-model="paramRxtx.dvbSnrReserve" max="10" step="0.01"/></label>
|
||||
</div>
|
||||
@@ -1024,11 +1024,36 @@
|
||||
// ========== include end from 'common/monitoring-methods.js.j2'
|
||||
|
||||
// ========== include from 'common/setup-methods.js.j2'
|
||||
calcInterfaceSpeedKb(baud, modulation, speed) {
|
||||
calcRequiredSnr(frameSizeNormal, modulation, speed) {
|
||||
const snrValues = [
|
||||
{fs: true, mod: 'qpsk', speed: '1/2', snr: 2.58}, {fs: true, mod: 'qpsk', speed: '2/3', snr: 3.77}, {fs: true, mod: 'qpsk', speed: '3/4', snr: 4.5}, {fs: true, mod: 'qpsk', speed: '4/5', snr: 5.2}, {fs: true, mod: 'qpsk', speed: '5/6', snr: 5.45}, {fs: true, mod: 'qpsk', speed: '8/9', snr: 6.46}, {fs: true, mod: 'qpsk', speed: '9/10', snr: 6.66},
|
||||
{fs: true, mod: '8psk', speed: '2/3', snr: 8.45}, {fs: true, mod: '8psk', speed: '3/4', snr: 8.77}, {fs: true, mod: '8psk', speed: '5/6', snr: 10.09}, {fs: true, mod: '8psk', speed: '8/9', snr: 10.91}, {fs: true, mod: '8psk', speed: '9/10', snr: 11.3},
|
||||
{fs: true, mod: '16apsk', speed: '2/3', snr: 11.21}, {fs: true, mod: '16apsk', speed: '3/4', snr: 11.31}, {fs: true, mod: '16apsk', speed: '4/5', snr: 12.04}, {fs: true, mod: '16apsk', speed: '5/6', snr: 12.45}, {fs: true, mod: '16apsk', speed: '8/9', snr: 12.98}, {fs: true, mod: '16apsk', speed: '9/10', snr: 13.14},
|
||||
{fs: true, mod: '32apsk', speed: '3/4', snr: 13.98}, {fs: true, mod: '32apsk', speed: '4/5', snr: 14.23}, {fs: true, mod: '32apsk', speed: '5/6', snr: 14.92}, {fs: true, mod: '32apsk', speed: '8/9', snr: 16.12}, {fs: true, mod: '32apsk', speed: '9/10', snr: 16.6},
|
||||
|
||||
{fs: false, mod: 'qpsk', speed: '1/2', snr: 4.05}, {fs: false, mod: 'qpsk', speed: '2/3', snr: 4.52}, {fs: false, mod: 'qpsk', speed: '3/4', snr: 5.03}, {fs: false, mod: 'qpsk', speed: '4/5', snr: 6.84}, {fs: false, mod: 'qpsk', speed: '5/6', snr: 7.75}, {fs: false, mod: 'qpsk', speed: '8/9', snr: 8.45},
|
||||
{fs: false, mod: '8psk', speed: '2/3', snr: 9.86}, {fs: false, mod: '8psk', speed: '3/4', snr: 10.5}, {fs: false, mod: '8psk', speed: '5/6', snr: 11.08}, {fs: false, mod: '8psk', speed: '8/9', snr: 11.25},
|
||||
{fs: false, mod: '16apsk', speed: '2/3', snr: 11.58}, {fs: false, mod: '16apsk', speed: '3/4', snr: 11.73}, {fs: false, mod: '16apsk', speed: '4/5', snr: 11.92}, {fs: false, mod: '16apsk', speed: '5/6', snr: 12.29}, {fs: false, mod: '16apsk', speed: '8/9', snr: 13.34},
|
||||
{fs: false, mod: '32apsk', speed: '3/4', snr: 14.16}, {fs: false, mod: '32apsk', speed: '4/5', snr: 14.69}, {fs: false, mod: '32apsk', speed: '5/6', snr: 15.23}, {fs: false, mod: '32apsk', speed: '8/9', snr: 16.48},
|
||||
]
|
||||
for (let i = 0; i < snrValues.length; i++) {
|
||||
if (snrValues[i].fs === frameSizeNormal && snrValues[i].mod === modulation && snrValues[i].speed === speed) { return snrValues[i].snr }
|
||||
}
|
||||
return '?'
|
||||
},
|
||||
calcInterfaceSpeedKb(baud, modulation, speed, frameSizeNormal) {
|
||||
const mMod = Math.max(2, ['', '', 'qpsk', '8psk', '16apsk', '32apsk'].indexOf(modulation))
|
||||
const speedVals = {'1/4': 0.25, '1/3': 0.333, '2/5': 0.4, '1/2': 0.5, '3/5': 0.6, '2/3': 0.666, '3/4': 0.75, '4/5': 0.8, '5/6': 0.833, '8/9': 0.888, '9/10': 0.9}
|
||||
const mSpeed = speed in speedVals ? speedVals[speed] : 1
|
||||
return ((baud * mMod * mSpeed) / 1024).toLocaleString()
|
||||
const result = (baud * mMod * mSpeed) / 1024
|
||||
const calcSnr = this.calcRequiredSnr(frameSizeNormal, modulation, speed)
|
||||
let snr;
|
||||
if (isNaN(calcSnr)) { snr = `SNR=?` } else { snr=`SNR=${calcSnr}` }
|
||||
if (result > 1024) {
|
||||
return (result / 1024).toLocaleString() + ' mbit/s; ' + snr
|
||||
} else {
|
||||
return result.toLocaleString() + ' kbit/s; ' + snr
|
||||
}
|
||||
},
|
||||
// ========== include end from 'common/setup-methods.js.j2'
|
||||
|
||||
|
Reference in New Issue
Block a user