diff --git a/front-generator/render-params.json b/front-generator/render-params.json
index 39feb27..0e1b2b5 100644
--- a/front-generator/render-params.json
+++ b/front-generator/render-params.json
@@ -154,8 +154,8 @@
"values": [{"label": "Ethernet", "value": "false"}, {"label": "Тест", "value": "true"}]
},
{"widget": "h3", "label": "Параметры передачи"},
- {"widget": "number", "label": "Центральная частота, КГц", "name": "txCentralFreq", "min": 900000, "step": 0.01},
- {"widget": "number", "label": "Символьная скорость, Бод", "name": "txBaudrate", "min": 0, "step": 1},
+ {"widget": "number-int", "label": "Центральная частота, КГц", "name": "txCentralFreq", "min": 950000, "max": 6000000},
+ {"widget": "number-int", "label": "Символьная скорость, Бод", "name": "txBaudrate", "min": 200000, "max": 54000000},
{
"widget": "select", "label": "Roll-off", "name": "txRolloff",
"values": [{"label": "0.02", "value": "2"}, {"label": "0.05", "value": "5"}, {"label": "0.10", "value": "10"}, {"label": "0.15", "value": "15"}, {"label": "0.20", "value": "20"}, {"label": "0.25", "value": "25"}]
@@ -214,8 +214,8 @@
{"widget": "number", "label": "Усиление, дБ", "name": "rxManualGain", "min": -40, "step": 0.01, "max": 40, "v_show": "paramRxtx.rxAgcEn === false"},
{"widget": "watch-expr", "label": "Текущее усиление", "expr": "paramRxtx.rxManualGain", "v_show": "paramRxtx.rxAgcEn === true"},
{"widget": "checkbox", "label": "Инверсия спектра", "name": "rxSpectrumInversion"},
- {"widget": "number", "label": "Центральная частота, КГц", "name": "rxCentralFreq", "min": 900000, "step": 0.01},
- {"widget": "number", "label": "Символьная скорость, Бод", "name": "rxBaudrate", "min": 0, "step": 1},
+ {"widget": "number-int", "label": "Центральная частота, КГц", "name": "rxCentralFreq", "min": 950000, "max": 6000000},
+ {"widget": "number-int", "label": "Символьная скорость, Бод", "name": "rxBaudrate", "min": 200000, "max": 54000000},
{
"widget": "select", "label": "Roll-off", "name": "rxRolloff",
"values": [{"label": "0.02", "value": "2"}, {"label": "0.05", "value": "5"}, {"label": "0.10", "value": "10"}, {"label": "0.15", "value": "15"}, {"label": "0.20", "value": "20"}, {"label": "0.25", "value": "25"}]
diff --git a/front-generator/render.py b/front-generator/render.py
index 14704a5..b47ce97 100644
--- a/front-generator/render.py
+++ b/front-generator/render.py
@@ -17,15 +17,22 @@ def extract_param_names(mc):
r += helper_extract(child)
return r
elif 'name' in widget:
+ copy_fields = {"widget": widget['widget'], "name": widget['name']}
+ if 'min' in widget:
+ copy_fields['min'] = widget['min']
+ if 'max' in widget:
+ copy_fields['max'] = widget['max']
+
match widget['widget']:
- case 'select': return [{"name": widget['name'], "initValue": widget['values'][0]['value']}]
- case 'checkbox': return [{"name": widget['name'], "initValue": 'false'}]
- case 'number': return [{"name": widget['name'], "initValue": widget['min'] if widget['min'] else '0'}]
- case 'modulation-modcod': return [{"name": widget['name'] + "Modulation", "initValue": '"QPSK"'}]
- case 'modulation-speed': return [{"name": widget['name'] + "Speed", "initValue": '"1/4"'}]
+ case 'select': return [{"initValue": widget['values'][0]['value']} | copy_fields]
+ case 'checkbox': return [{"initValue": 'false'} | copy_fields]
+ case 'number': return [{"initValue": widget['min'] if widget['min'] else '0'} | copy_fields]
+ case 'number-int': return [{"initValue": "0"} | copy_fields]
+ case 'modulation-modcod': return [{"name": widget['name'] + "Modulation", "initValue": '"QPSK"'} | copy_fields]
+ case 'modulation-speed': return [{"name": widget['name'] + "Speed", "initValue": '"1/4"'} | copy_fields]
case 'watch': return []
- return [{"name": widget['name'], "initValue": 'null'}]
+ return [{"initValue": 'null'} | copy_fields]
return []
for cat in mc['params']:
diff --git a/front-generator/template/common/all-params-methods.js.j2 b/front-generator/template/common/all-params-methods.js.j2
index e8fb0b5..0609540 100644
--- a/front-generator/template/common/all-params-methods.js.j2
+++ b/front-generator/template/common/all-params-methods.js.j2
@@ -1,3 +1,4 @@
+{% from 'common/widgets.j2' import build_getter_js, build_setter_js %}
{% for g in paramGroups %}
settingsSubmit{{ g['group'] | title }}() {
if (this.submitStatus.{{ g['group'] }}) { return }
@@ -7,7 +8,7 @@
let query = {
{% for p in g['params'] %}
- "{{ p['name'] }}": this.param{{ g['group'] | title }}.{{ p['name'] }},
+ "{{ p['name'] }}": {{ build_getter_js(g['group'], p) }},
{% endfor %}
}
@@ -23,7 +24,7 @@
update{{ g['group'] | title }}Settings(vals) {
this.submitStatus.{{ g['group'] }} = false
{% for p in g['params'] %}
- this.param{{ g['group'] | title }}.{{ p['name'] }} = vals["settings"]["{{ p['name'] }}"]
+ {{ build_setter_js(g['group'], p, "vals[\"settings\"][\"" ~ p['name'] ~ "\"]") }}
{% endfor %}
},
{% endfor %}
\ No newline at end of file
diff --git a/front-generator/template/common/widgets.j2 b/front-generator/template/common/widgets.j2
index 0ca655a..ccaf772 100644
--- a/front-generator/template/common/widgets.j2
+++ b/front-generator/template/common/widgets.j2
@@ -6,6 +6,14 @@
{# https://ru.stackoverflow.com/questions/1241064 #}
{% macro build_widget_number(param_group, widget) %}{% endmacro %}
+{% macro js_build_number_int_validator(widget) %}{{ '{' }}{% if widget['min'] %}min:{{ widget['min'] }},{% endif %}{% if widget['max'] %}max:{{ widget['max'] }}{% endif %}{{ '}' }}{% endmacro %}
+
+{% macro build_widget_number_int(param_group, widget) %}{% endmacro %}
+
+
{% macro build_widget_select(param_group, widget) %}
Параметры передачи
-
-
+
+
-
-
+
+