diff --git a/project.godot b/project.godot index 615b6714..8ceda60d 100644 --- a/project.godot +++ b/project.godot @@ -25,7 +25,7 @@ config/icon="res://data/icon.png" signaller="*res://scripts/signaller.gd" Log="*res://addons/godot-logger/scripts/logger.gd" Tools="*res://scripts/tools.gd" -REPSettings="*res://scripts/repsettings.gd" +repsettings="*res://scripts/repsettings.gd" REPNetwork="*res://scripts/repnetwork.gd" yau07="*res://scripts/yau07.gd" capsrpb="*res://scripts/capsrpb.gd" diff --git a/scenes/работа.gd b/scenes/работа.gd index 8ff0e2ef..48969ec7 100644 --- a/scenes/работа.gd +++ b/scenes/работа.gd @@ -1,3 +1,5 @@ +@tool + extends Panel ## Основной скрипт для режима "Работа" @@ -7,6 +9,9 @@ extends Panel @export var col_red: Color ## Первый цвет для фона @export var drag_scale_band: float ## Масштаб изменения параметра от движения мыши для строба по радиальному размеру @export var drag_scale_width: float ## Масштаб изменения параметра от движения мыши для строба по угловому размеру +@export var freq_high: float ## Верхняя рабочая частота, МГЦ. +@export var freq_low: float ## Нижняя рабочая частота, МГЦ. +@export var radius_center: Vector2 ## Координаты центра диаграммы пеленг-частота @export var radius_internal: float ## Внутренний радиус диаграммы пеленг-частота @export var radius_outter: float ## Внешний радиус диаграммы пеленг-частота @export var strob_max_band: float ## Максимальная ширина строба по углу @@ -68,11 +73,11 @@ func map_threat_to_bip(th: Threats.Threat, bip: Sprite2D): bip.position = Tools.pos_calc( th.freq, th.aoa, - REPSettings.ThreatParams.radius_center, - REPSettings.ThreatParams.radius_inner, - REPSettings.ThreatParams.radius_outter, - REPSettings.ThreatParams.freq_low, - REPSettings.ThreatParams.freq_high) + radius_center, + radius_internal, + radius_outter, + freq_low, + freq_high) var tick = Time.get_ticks_msec() bip.set_tick_update(tick) @@ -158,7 +163,7 @@ func _on_drag_begin(event) -> void: strob_band_begin = $canvas.get_strob_band() -## Обработчик событий вввода. Вызывается godot +## Обработчик событий ввода. Вызывается godot func _input(event) -> void: if not is_visible_in_tree(): return if event is InputEventMouseMotion: diff --git a/scenes/работа.tscn b/scenes/работа.tscn index 58212c2d..65754422 100644 --- a/scenes/работа.tscn +++ b/scenes/работа.tscn @@ -17,6 +17,12 @@ col_grey = Color(0.34902, 0.643137, 0.772549, 0.168627) col_red = Color(1, 0.568627, 0.431373, 0.239216) drag_scale_band = 0.05 drag_scale_width = 0.5 +radius_center = Vector2(560, 560) +time_lost = 5000.0 +freq_low = 200.0 +freq_high = 6000.0 +radius_internal = 200.0 +radius_outter = 550.0 strob_max_band = 15.538 strob_max_width = 90.0 strob_min_band = 0.1 @@ -318,6 +324,7 @@ offset_top = 1118.0 offset_right = 205.0 offset_bottom = 1168.0 text = "Откл." +pressed = true metadata/rfi_name = "" [node name="btn_auto_rfi" parent="." groups=["группа-режим-помехи"] instance=ExtResource("7_2sxkw")] diff --git a/scripts/repnetwork.gd b/scripts/repnetwork.gd index 5af32394..4dc1d3f3 100644 --- a/scripts/repnetwork.gd +++ b/scripts/repnetwork.gd @@ -17,10 +17,10 @@ var logger_page: Node func create_socket(nm) -> Socket: - var addr = REPSettings.UnitProfiles[nm][1] - var port = REPSettings.UnitProfiles[nm][2] - var broad = REPSettings.UnitProfiles[nm][3] - var bind = REPSettings.UnitProfiles[nm][4] + var addr = repsettings.UnitProfiles[nm][1] + var port = repsettings.UnitProfiles[nm][2] + var broad = repsettings.UnitProfiles[nm][3] + var bind = repsettings.UnitProfiles[nm][4] var sock: = Socket.new() sock.set_broadcast_enabled(broad) var rc = Error.OK if not bind else sock.bind(port, addr) @@ -37,12 +37,12 @@ func _ready() -> void: sock_unicast = poll_sockets[0] - for unit_name in REPSettings.UnitProfiles: - var setting = REPSettings.UnitProfiles[unit_name] + for unit_name in repsettings.UnitProfiles: + var setting = repsettings.UnitProfiles[unit_name] var proto = setting[0] if proto in PROTOCOL_TYPES: var unit = PROTOCOL_TYPES[proto].new(unit_name) - var unit_key = REPSettings.get_unit_key(unit_name) + var unit_key = repsettings.get_unit_key(unit_name) units[unit_key] = unit unit.connect('line_changed', Callable(logger_page, 'on_line_changed').bind(unit_key)) unit.connect('command_fail', Callable(logger_page, 'on_command_fail').bind(unit_key)) diff --git a/scripts/repsettings.gd b/scripts/repsettings.gd index 6f4cce8c..1566757b 100644 --- a/scripts/repsettings.gd +++ b/scripts/repsettings.gd @@ -33,12 +33,7 @@ extends Node ## Параметры цели @export var ThreatParams = { - 'radius_center': Vector2(560, 560), ## Координаты центра диаграммы в пикселях для отображения частота-пеленг. - 'time_lost': 5000, ## Время после последнего обновления в мс, через которое цель считается потерянной. - 'freq_low': 200.0, ## Нижняя рабочая частота, МГЦ. - 'freq_high': 6000.0, ## Верхняя рабочая частота, МГЦ. - 'radius_inner': 200, ## Внутренний радиус диаграммы в пикселях для отображения частота-пеленг. - 'radius_outter': 550 ## Наружний радиус диаграммы в пикселях для отображения частота-пеленг. + 'time_lost': 5000 ## Время после последнего обновления в мс, через которое цель считается потерянной. } diff --git a/scripts/threats.gd b/scripts/threats.gd index 71349742..3d1f033f 100644 --- a/scripts/threats.gd +++ b/scripts/threats.gd @@ -45,13 +45,13 @@ signal threats_resized(th: Dictionary) func _ready() -> void: Log.info('Модуль обработки целей готов') var threats = {} ## Список целей. Индекс - <номер цели> - var unit_key = REPSettings.get_unit_key('уарэп-капсрпб-отп') + var unit_key = repsettings.get_unit_key('уарэп-капсрпб-отп') var unit = REPNetwork.units[unit_key] var timer_check_lost: = Timer.new() add_child(timer_check_lost) unit.connect('data_received', Callable(self, 'on_data_capsrpb_received').bind(threats)) - timer_check_lost.connect('timeout', Callable(self, 'on_timer_check_lost').bind(REPSettings.ThreatParams.time_lost, threats)) - timer_check_lost.start(REPSettings.ThreatParams.time_lost / 1000.0) + timer_check_lost.connect('timeout', Callable(self, 'on_timer_check_lost').bind(repsettings.ThreatParams.time_lost, threats)) + timer_check_lost.start(repsettings.ThreatParams.time_lost / 1000.0) ## Периодически удаляет устаревшие цели