фича: числа с разделением по тысячам

This commit is contained in:
2025-01-21 15:41:10 +03:00
parent 2c2cbf4249
commit 073bf43d8b
7 changed files with 118 additions and 44 deletions

View File

@@ -162,8 +162,14 @@
</select>
</label>
<h3>Параметры передачи</h3>
<label><span>Центральная частота, КГц</span><input type="number" v-model="paramRxtx.txCentralFreq" min="900000" step="0.01"/></label>
<label><span>Символьная скорость, Бод</span><input type="number" v-model="paramRxtx.txBaudrate" step="1"/></label>
<label>
<span>Центральная частота, КГц</span>
<input type="text" v-model.lazy="paramRxtx.txCentralFreq" @change="e => paramRxtx.txCentralFreq = (inputFormatInt(e.target.value, {min:950000,max:6000000})).toString()"/>
</label>
<label>
<span>Символьная скорость, Бод</span>
<input type="text" v-model.lazy="paramRxtx.txBaudrate" @change="e => paramRxtx.txBaudrate = (inputFormatInt(e.target.value, {min:200000,max:54000000})).toString()"/>
</label>
<label>
<span>Roll-off</span>
<select v-model="paramRxtx.txRolloff">
@@ -287,8 +293,14 @@
<span>Инверсия спектра</span>
<span class="toggle-input"><input type="checkbox" v-model="paramRxtx.rxSpectrumInversion" /><span class="slider"></span></span>
</label>
<label><span>Центральная частота, КГц</span><input type="number" v-model="paramRxtx.rxCentralFreq" min="900000" step="0.01"/></label>
<label><span>Символьная скорость, Бод</span><input type="number" v-model="paramRxtx.rxBaudrate" step="1"/></label>
<label>
<span>Центральная частота, КГц</span>
<input type="text" v-model.lazy="paramRxtx.rxCentralFreq" @change="e => paramRxtx.rxCentralFreq = (inputFormatInt(e.target.value, {min:950000,max:6000000})).toString()"/>
</label>
<label>
<span>Символьная скорость, Бод</span>
<input type="text" v-model.lazy="paramRxtx.rxBaudrate" @change="e => paramRxtx.rxBaudrate = (inputFormatInt(e.target.value, {min:200000,max:54000000})).toString()"/>
</label>
<label>
<span>Roll-off</span>
<select v-model="paramRxtx.rxRolloff">
@@ -578,7 +590,7 @@
txAutoStart: false,
txModulatorIsTest: false,
txIsTestInput: false,
txCentralFreq: 900000,
txCentralFreq: 0,
txBaudrate: 0,
txRolloff: 2,
txGoldan: 0,
@@ -586,12 +598,12 @@
dvbServicePacketPeriod: 0,
dvbIsAcm: false,
txFrameSizeNormal: true,
dvbCcmModulation: "QPSK",
dvbCcmSpeed: "1/4",
dvbAcmMinModulation: "QPSK",
dvbAcmMinSpeed: "1/4",
dvbAcmMaxModulation: "QPSK",
dvbAcmMaxSpeed: "1/4",
dvbCcm: "QPSK",
dvbCcm: "1/4",
dvbAcmMin: "QPSK",
dvbAcmMin: "1/4",
dvbAcmMax: "QPSK",
dvbAcmMax: "1/4",
dvbSnrReserve: 0,
aupcEn: false,
aupcMinAttenuation: 0,
@@ -600,7 +612,7 @@
rxAgcEn: false,
rxManualGain: -40,
rxSpectrumInversion: false,
rxCentralFreq: 900000,
rxCentralFreq: 0,
rxBaudrate: 0,
rxRolloff: 2,
rxGoldan: 0,
@@ -747,6 +759,14 @@
return []
}
},
inputFormatInt(src, validation) {
if (validation === null || validation === undefined) { validation = {} }
const rawVal = src.toString().replace(/[^0-9]/g, '')
let result = rawVal === '' ? 0 : parseInt(rawVal)
if ('min' in validation) { if (result <= validation['min']) { result = validation['min'] } }
if ('max' in validation) { if (result >= validation['max']) { result = validation['max'] } }
return result.toLocaleString()
},
// ========== include from 'common/all-params-methods.js.j2'
settingsSubmitRxtx() {
@@ -758,20 +778,20 @@
"txAutoStart": this.paramRxtx.txAutoStart,
"txModulatorIsTest": this.paramRxtx.txModulatorIsTest,
"txIsTestInput": this.paramRxtx.txIsTestInput,
"txCentralFreq": this.paramRxtx.txCentralFreq,
"txBaudrate": this.paramRxtx.txBaudrate,
"txCentralFreq": parseInt(this.paramRxtx.txCentralFreq.replace(/[^0-9]/g, '')),
"txBaudrate": parseInt(this.paramRxtx.txBaudrate.replace(/[^0-9]/g, '')),
"txRolloff": this.paramRxtx.txRolloff,
"txGoldan": this.paramRxtx.txGoldan,
"txAttenuation": this.paramRxtx.txAttenuation,
"dvbServicePacketPeriod": this.paramRxtx.dvbServicePacketPeriod,
"dvbIsAcm": this.paramRxtx.dvbIsAcm,
"txFrameSizeNormal": this.paramRxtx.txFrameSizeNormal,
"dvbCcmModulation": this.paramRxtx.dvbCcmModulation,
"dvbCcmSpeed": this.paramRxtx.dvbCcmSpeed,
"dvbAcmMinModulation": this.paramRxtx.dvbAcmMinModulation,
"dvbAcmMinSpeed": this.paramRxtx.dvbAcmMinSpeed,
"dvbAcmMaxModulation": this.paramRxtx.dvbAcmMaxModulation,
"dvbAcmMaxSpeed": this.paramRxtx.dvbAcmMaxSpeed,
"dvbCcm": this.paramRxtx.dvbCcmModulation,
"dvbCcm": this.paramRxtx.dvbCcmSpeed,
"dvbAcmMin": this.paramRxtx.dvbAcmMinModulation,
"dvbAcmMin": this.paramRxtx.dvbAcmMinSpeed,
"dvbAcmMax": this.paramRxtx.dvbAcmMaxModulation,
"dvbAcmMax": this.paramRxtx.dvbAcmMaxSpeed,
"dvbSnrReserve": this.paramRxtx.dvbSnrReserve,
"aupcEn": this.paramRxtx.aupcEn,
"aupcMinAttenuation": this.paramRxtx.aupcMinAttenuation,
@@ -780,8 +800,8 @@
"rxAgcEn": this.paramRxtx.rxAgcEn,
"rxManualGain": this.paramRxtx.rxManualGain,
"rxSpectrumInversion": this.paramRxtx.rxSpectrumInversion,
"rxCentralFreq": this.paramRxtx.rxCentralFreq,
"rxBaudrate": this.paramRxtx.rxBaudrate,
"rxCentralFreq": parseInt(this.paramRxtx.rxCentralFreq.replace(/[^0-9]/g, '')),
"rxBaudrate": parseInt(this.paramRxtx.rxBaudrate.replace(/[^0-9]/g, '')),
"rxRolloff": this.paramRxtx.rxRolloff,
"rxGoldan": this.paramRxtx.rxGoldan,
}
@@ -869,20 +889,20 @@
this.paramRxtx.txAutoStart = vals["settings"]["txAutoStart"]
this.paramRxtx.txModulatorIsTest = vals["settings"]["txModulatorIsTest"]
this.paramRxtx.txIsTestInput = vals["settings"]["txIsTestInput"]
this.paramRxtx.txCentralFreq = vals["settings"]["txCentralFreq"]
this.paramRxtx.txBaudrate = vals["settings"]["txBaudrate"]
this.paramRxtx.txCentralFreq = this.inputFormatInt(vals["settings"]["txCentralFreq"], {min:950000,max:6000000})
this.paramRxtx.txBaudrate = this.inputFormatInt(vals["settings"]["txBaudrate"], {min:200000,max:54000000})
this.paramRxtx.txRolloff = vals["settings"]["txRolloff"]
this.paramRxtx.txGoldan = vals["settings"]["txGoldan"]
this.paramRxtx.txAttenuation = vals["settings"]["txAttenuation"]
this.paramRxtx.dvbServicePacketPeriod = vals["settings"]["dvbServicePacketPeriod"]
this.paramRxtx.dvbIsAcm = vals["settings"]["dvbIsAcm"]
this.paramRxtx.txFrameSizeNormal = vals["settings"]["txFrameSizeNormal"]
this.paramRxtx.dvbCcmModulation = vals["settings"]["dvbCcmModulation"]
this.paramRxtx.dvbCcmSpeed = vals["settings"]["dvbCcmSpeed"]
this.paramRxtx.dvbAcmMinModulation = vals["settings"]["dvbAcmMinModulation"]
this.paramRxtx.dvbAcmMinSpeed = vals["settings"]["dvbAcmMinSpeed"]
this.paramRxtx.dvbAcmMaxModulation = vals["settings"]["dvbAcmMaxModulation"]
this.paramRxtx.dvbAcmMaxSpeed = vals["settings"]["dvbAcmMaxSpeed"]
this.paramRxtx.dvbCcmModulation = vals["settings"]["dvbCcm"]
this.paramRxtx.dvbCcmSpeed = vals["settings"]["dvbCcm"]
this.paramRxtx.dvbAcmMinModulation = vals["settings"]["dvbAcmMin"]
this.paramRxtx.dvbAcmMinSpeed = vals["settings"]["dvbAcmMin"]
this.paramRxtx.dvbAcmMaxModulation = vals["settings"]["dvbAcmMax"]
this.paramRxtx.dvbAcmMaxSpeed = vals["settings"]["dvbAcmMax"]
this.paramRxtx.dvbSnrReserve = vals["settings"]["dvbSnrReserve"]
this.paramRxtx.aupcEn = vals["settings"]["aupcEn"]
this.paramRxtx.aupcMinAttenuation = vals["settings"]["aupcMinAttenuation"]
@@ -891,8 +911,8 @@
this.paramRxtx.rxAgcEn = vals["settings"]["rxAgcEn"]
this.paramRxtx.rxManualGain = vals["settings"]["rxManualGain"]
this.paramRxtx.rxSpectrumInversion = vals["settings"]["rxSpectrumInversion"]
this.paramRxtx.rxCentralFreq = vals["settings"]["rxCentralFreq"]
this.paramRxtx.rxBaudrate = vals["settings"]["rxBaudrate"]
this.paramRxtx.rxCentralFreq = this.inputFormatInt(vals["settings"]["rxCentralFreq"], {min:950000,max:6000000})
this.paramRxtx.rxBaudrate = this.inputFormatInt(vals["settings"]["rxBaudrate"], {min:200000,max:54000000})
this.paramRxtx.rxRolloff = vals["settings"]["rxRolloff"]
this.paramRxtx.rxGoldan = vals["settings"]["rxGoldan"]
},