Доработка. WIP Отображение кластеров на шкале
This commit is contained in:
@@ -1,11 +1,19 @@
|
||||
@tool
|
||||
extends Panel
|
||||
|
||||
#region Определяемое использованием
|
||||
#region Определяемое при использовании
|
||||
## Индекс -> Имя устройства. Нужен для предсказуемого
|
||||
## порядка отображения: верх->вниз или лево->право.
|
||||
## Имя устройства должно быть взято из settings.gd
|
||||
@export var index_to_unit_names: Array[StringName]
|
||||
## Минимальная частота, МГЦ
|
||||
@export var freq_min: float
|
||||
## Максимальная частота, МГЦ
|
||||
@export var freq_max: float
|
||||
## Цвет диапазона передатчика на шкале
|
||||
@export var color_tx: Color
|
||||
## Цвет диапазона приёмника на шкале
|
||||
@export var color_rx: Color
|
||||
#endregion
|
||||
|
||||
#region Загружаемые ресурсы
|
||||
@@ -34,7 +42,7 @@ var yems_data_cmd: Dictionary[StringName, Dictionary] ## Команды
|
||||
var cnames_table: Dictionary[StringName, Dictionary]
|
||||
## Порядок следования кластеров на шкале.
|
||||
## {имя_устройства: { индекс_на_шкале } }
|
||||
var pnames_scale: Dictionary[StringName, Dictionary]
|
||||
var pnames_scale: Dictionary[StringName, int]
|
||||
#endregion
|
||||
|
||||
func _ready() -> void:
|
||||
@@ -46,9 +54,12 @@ func _ready() -> void:
|
||||
cnames_table[nm] = {}
|
||||
var btns_scales = get_tree().get_nodes_in_group('кнопки-шкалы')
|
||||
for node in btns_scales:
|
||||
var nm = node.get_meta('unit_name')
|
||||
name_to_scale[nm] = node
|
||||
var nm: = node.get_meta('unit_name') as StringName
|
||||
node.connect('pressed', map_yems_data_to_table.bind(nm))
|
||||
var claster_scales = get_tree().get_nodes_in_group('шкалы-кластеров')
|
||||
for node in claster_scales:
|
||||
var nm: = node.get_meta('unit_name') as StringName
|
||||
name_to_scale[nm] = node
|
||||
var header_row: = []
|
||||
for cell_scn in table_headers:
|
||||
header_row.append(load(cell_scn))
|
||||
@@ -76,6 +87,7 @@ func _ready() -> void:
|
||||
func on_data_received(data: Dictionary, nm: StringName):
|
||||
yems_data_info[nm].merge(data, true)
|
||||
map_yems_data_to_table(nm)
|
||||
map_yems_data_to_scale(nm)
|
||||
|
||||
|
||||
## [param nm] - имя устройства
|
||||
@@ -107,8 +119,16 @@ func map_yems_data_to_table(nm: StringName):
|
||||
func map_yems_data_to_scale(nm: StringName):
|
||||
var unit_data = yems_data_info.get(nm)
|
||||
if not unit_data: return # Данных ещё нет
|
||||
var ctable: GDTable = $'таблица/сетка'
|
||||
var indexes: = cnames_table[nm] # Идексы строк таблицы для кластеров заданного устройства
|
||||
var claster_scale: = name_to_scale[nm] as GridContainer
|
||||
# Обойти все кластеры устройства
|
||||
for cls in unit_data.mcls:
|
||||
pass
|
||||
var c = remap(cls.cfb, freq_min, freq_max, 0.0, 1.0)
|
||||
var w = remap(cls.wfb, freq_min, freq_max, 0.0, 1.0) * 0.5
|
||||
var l = c - w
|
||||
var h = c + w
|
||||
if cls.rxe:
|
||||
var scale_rx: = claster_scale.get_node('panel_rx')
|
||||
scale_rx.set_range(cls.cname, l, h, color_rx)
|
||||
if cls.txe:
|
||||
var scale_tx: = claster_scale.get_node('panel_tx')
|
||||
scale_tx.set_range(cls.cname, l, h, color_tx)
|
||||
|
||||
@@ -40,6 +40,10 @@ offset_top = 35.0
|
||||
offset_bottom = 35.0
|
||||
script = ExtResource("1_b7tfl")
|
||||
index_to_unit_names = Array[StringName]([&"эмс-ор63", &"эмс-454", &"эмс-го", &"эмс-рлс1", &"эмс-рлс2", &"эмс-ннвс", &"эмс-изделие7", &"эмс-изделие8"])
|
||||
freq_min = 300.0
|
||||
freq_max = 6000.0
|
||||
color_tx = Color(0.898367, 0.460547, 0.239949, 1)
|
||||
color_rx = Color(0.498039, 0.498039, 1, 1)
|
||||
matrix_conf = Array[Texture]([ExtResource("2_s28jr"), ExtResource("3_its7t")])
|
||||
table_headers = Array[String](["uid://ch14g46swx74h", "uid://ch14g46swx74h", "uid://ch14g46swx74h", "uid://ch14g46swx74h", "uid://ch14g46swx74h", "uid://ch14g46swx74h", "uid://cymcld4mjmlhj", "uid://cymcld4mjmlhj"])
|
||||
table_cells = Array[String](["uid://dwphmxstaxn4v", "uid://dwphmxstaxn4v", "uid://dwphmxstaxn4v", "uid://dwphmxstaxn4v", "uid://dwphmxstaxn4v", "uid://dwphmxstaxn4v", "uid://cixwl6xi22buo", "uid://cixwl6xi22buo"])
|
||||
@@ -96,10 +100,11 @@ button_group = SubResource("ButtonGroup_vwsbs")
|
||||
text = "ОР-63"
|
||||
metadata/unit_name = &"эмс-ор63"
|
||||
|
||||
[node name="sub0" type="GridContainer" parent="шкала"]
|
||||
[node name="sub0" type="GridContainer" parent="шкала" groups=["шкалы-кластеров"]]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
metadata/unit_name = &"эмс-ор63"
|
||||
|
||||
[node name="panel_rx" parent="шкала/sub0" instance=ExtResource("5_6hay3")]
|
||||
self_modulate = Color(0.830335, 0.830335, 0.830335, 1)
|
||||
@@ -124,7 +129,7 @@ button_group = SubResource("ButtonGroup_vwsbs")
|
||||
text = "454"
|
||||
metadata/unit_name = &"эмс-454"
|
||||
|
||||
[node name="sub1" type="GridContainer" parent="шкала"]
|
||||
[node name="sub1" type="GridContainer" parent="шкала" groups=["шкалы-кластеров"]]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
@@ -151,11 +156,11 @@ button_group = SubResource("ButtonGroup_vwsbs")
|
||||
text = "ГО"
|
||||
metadata/unit_name = &"эмс-го"
|
||||
|
||||
[node name="sub2" type="GridContainer" parent="шкала"]
|
||||
[node name="sub2" type="GridContainer" parent="шкала" groups=["шкалы-кластеров"]]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
metadata/unit_name = &""
|
||||
metadata/unit_name = &"эмс-го"
|
||||
|
||||
[node name="panel_rx" parent="шкала/sub2" instance=ExtResource("5_6hay3")]
|
||||
self_modulate = Color(0.830335, 0.830335, 0.830335, 1)
|
||||
@@ -180,10 +185,11 @@ button_group = SubResource("ButtonGroup_vwsbs")
|
||||
text = "РЛС1"
|
||||
metadata/unit_name = &"эмс-рлс1"
|
||||
|
||||
[node name="sub3" type="GridContainer" parent="шкала"]
|
||||
[node name="sub3" type="GridContainer" parent="шкала" groups=["шкалы-кластеров"]]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
metadata/unit_name = &"эмс-рлс1"
|
||||
|
||||
[node name="panel_rx" parent="шкала/sub3" instance=ExtResource("5_6hay3")]
|
||||
layout_mode = 2
|
||||
@@ -206,10 +212,11 @@ button_group = SubResource("ButtonGroup_vwsbs")
|
||||
text = "РЛС2"
|
||||
metadata/unit_name = &"эмс-рлс2"
|
||||
|
||||
[node name="sub4" type="GridContainer" parent="шкала"]
|
||||
[node name="sub4" type="GridContainer" parent="шкала" groups=["шкалы-кластеров"]]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
metadata/unit_name = &"эмс-рлс2"
|
||||
|
||||
[node name="panel_rx" parent="шкала/sub4" instance=ExtResource("5_6hay3")]
|
||||
self_modulate = Color(0.830335, 0.830335, 0.830335, 1)
|
||||
@@ -232,12 +239,13 @@ size_flags_vertical = 7
|
||||
toggle_mode = true
|
||||
button_group = SubResource("ButtonGroup_vwsbs")
|
||||
text = "ННВС"
|
||||
metadata/unit_name = &""
|
||||
metadata/unit_name = &"эмс-ннвс"
|
||||
|
||||
[node name="sub5" type="GridContainer" parent="шкала"]
|
||||
[node name="sub5" type="GridContainer" parent="шкала" groups=["шкалы-кластеров"]]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
metadata/unit_name = &"эмс-ннвс"
|
||||
|
||||
[node name="panel_rx" parent="шкала/sub5" instance=ExtResource("5_6hay3")]
|
||||
layout_mode = 2
|
||||
@@ -260,10 +268,11 @@ button_group = SubResource("ButtonGroup_vwsbs")
|
||||
text = "Изделие 7"
|
||||
metadata/unit_name = &"изделие7"
|
||||
|
||||
[node name="sub6" type="GridContainer" parent="шкала"]
|
||||
[node name="sub6" type="GridContainer" parent="шкала" groups=["шкалы-кластеров"]]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
metadata/unit_name = &"эмс-изделие7"
|
||||
|
||||
[node name="panel_rx" parent="шкала/sub6" instance=ExtResource("5_6hay3")]
|
||||
self_modulate = Color(0.830335, 0.830335, 0.830335, 1)
|
||||
@@ -286,12 +295,13 @@ size_flags_vertical = 7
|
||||
toggle_mode = true
|
||||
button_group = SubResource("ButtonGroup_vwsbs")
|
||||
text = "Изделие 8"
|
||||
metadata/unit_name = &"изделие8"
|
||||
metadata/unit_name = &"эмс-изделие8"
|
||||
|
||||
[node name="sub7" type="GridContainer" parent="шкала"]
|
||||
[node name="sub7" type="GridContainer" parent="шкала" groups=["шкалы-кластеров"]]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
metadata/unit_name = &"эмс-изделие8"
|
||||
|
||||
[node name="panel_rx" parent="шкала/sub7" instance=ExtResource("5_6hay3")]
|
||||
layout_mode = 2
|
||||
|
||||
Reference in New Issue
Block a user