Доработка. Режим Тренаж

This commit is contained in:
sasha80
2025-10-08 15:50:51 +03:00
parent 7677fe4332
commit 7fc9b96ec4
6 changed files with 36 additions and 4 deletions

View File

@@ -27,3 +27,7 @@ func _on_tab_changed(tab) -> void:
func on_setting_changed():
var ext_cu = ProjectSettings.get_setting('application/config/Внешнее управление', false)
get_parent().get_node('remote_control').visible = ext_cu
func _on_button_trenaj_toggled(toggled_mode: bool) -> void:
signaller.emit_signal('режим_тренаж', toggled_mode)

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=14 format=3 uid="uid://3slb0i3pvowc"]
[gd_scene load_steps=15 format=3 uid="uid://3slb0i3pvowc"]
[ext_resource type="Script" uid="uid://bvo6tcreqyuex" path="res://scenes/tabs-switch/tab-switch.gd" id="1_fg0vd"]
[ext_resource type="PackedScene" uid="uid://b276iygic5itk" path="res://scenes/работа/работа.tscn" id="2_u7p16"]
@@ -20,6 +20,8 @@
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_o1r22"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_imu1q"]
[node name="panel" type="Panel"]
offset_right = 1600.0
offset_bottom = 1200.0
@@ -95,4 +97,17 @@ text = "Внешнее управление"
horizontal_alignment = 1
vertical_alignment = 1
[node name="тренаж_режим" type="Button" parent="."]
layout_mode = 0
offset_left = 1404.0
offset_right = 1501.0
offset_bottom = 27.0
tooltip_text = "Задействовать режим Тренаж"
focus_mode = 0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_styles/normal = SubResource("StyleBoxFlat_imu1q")
toggle_mode = true
text = "Тренаж"
[connection signal="tab_changed" from="tab_switch" to="tab_switch" method="_on_tab_changed"]
[connection signal="toggled" from="тренаж_режим" to="tab_switch" method="_on_button_trenaj_toggled"]

View File

@@ -7,6 +7,7 @@ func on_threats_changed(th: Object, msg: String): log.message(Logger.INFO, '%s:
func on_parse_error(unit_inst, msg: String): log.message(Logger.ERROR, '%s: %s' % [unit_inst.name, msg])
func on_interfer_off(ecm, msg: String): log.message(Logger.INFO, '%s: %s' % [msg, ecm.to_string()])
func on_set_program_mode(msg: String): log.message(Logger.INFO, msg)
func on_mode_trenazh(val: bool): log.message(Logger.INFO, 'Режим \"Тренаж\" %s' % ['отменён', 'задейсвован'][int(val)])
func on_interfer_new(ecm, msg: String):
if ecm.krp != interfer.INTERFER_OFF:
@@ -33,6 +34,9 @@ func _ready() -> void:
signaller.conn(signaller.режим_эмс, Callable(log, 'info').bind('Программа в режиме \"ЭМС\"'))
signaller.conn(signaller.режимурнал, Callable(log, 'info').bind('Программа в режиме \"Журнал\"'))
signaller.conn(signaller.режимонтроль, Callable(log, 'info').bind('Программа в режиме \"Контроль\"'))
signaller.conn(signaller.режимренаж, Callable(self, 'on_mode_trenazh'))
func _on_clear_button_down() -> void:

View File

@@ -90,6 +90,7 @@ var cu: Dictionary ## Словарь воздействий для 5
var thrs_dict: Dictionary ## Ссылка на словарь целей
var auto_enabled: bool = false ## Режим автомата
var emit_enable: bool = true ## Разрешить излучение
var trenazh_mode: bool = false ## Переключение режима Тренаж
## Сеанс помехи.
class Interfer:
@@ -189,6 +190,7 @@ func _ready() -> void:
signaller.connect('full_auto', Callable(self, 'on_full_auto'))
signaller.connect('interfer_prinuditelno', Callable(self, 'on_interfer_prinuditelno'))
signaller.connect('emit_changed', Callable(self, 'on_emit_changed').bind(ecms))
signaller.connect('режим_тренаж', on_trenazh_mode)
threats.connect('threat_lost', Callable(self, 'on_threats_lost').bind(ecms, unit_caps))
threats.connect('threats_resized', Callable(self, 'on_threats_resized'))
threats.connect('threat_update', Callable(self, 'on_threats_update').bind(ecms, unit_caps))
@@ -196,6 +198,9 @@ func _ready() -> void:
unit_nav.connect('data_received', on_nav_data_received.bind(unit_caps))
func on_trenazh_mode(val: bool): trenazh_mode = val
func on_nav_data_received(coords: Dictionary, unit_caps):
var ship_time = Time.get_datetime_dict_from_system()
var data_to_json = {
@@ -238,7 +243,7 @@ func on_th_aoa_update(threats: Dictionary, ecms: Dictionary, unit_instance) -> v
ecm.kni = thr.aoa
send_ecm(ecm, unit_instance)
signaller.emit_signal('fs_update_color', ecms)
prd.update_fs_state(ecms)
prd.update_fs_state(ecms, trenazh_mode)
if not auto_enabled:
return

View File

@@ -318,7 +318,7 @@ func find_fs_index(aoa: float, freq: int, fs_index_arr: Array):
## Обновление состояния модулей формирователя сигналов
func update_fs_state(ecms):
func update_fs_state(ecms, trenaz_mode: bool):
for fs in fs_dict.values(): ## Запрет модуляции для всех ФС
fs.set_modulation(false)
for ecm in ecms.values(): ## Выставление состояния помехи в ФС
@@ -330,7 +330,8 @@ func update_fs_state(ecms):
for prd_module in prd_dict.values(): ## Отправка команды на исполнение в ПРД
if prd_module.state != PrdState.WORK: continue
if not prd_module.unit_yau07.online: continue
prd_module.cmd_array.append([prd_module.unit_yau07.CmdCode.WRITE_ISA, [prd_module.yemsg_board.base_addr_isa, 6666]])
if not trenaz_mode:
prd_module.cmd_array.append([prd_module.unit_yau07.CmdCode.WRITE_ISA, [prd_module.yemsg_board.base_addr_isa, 6666]])
var um_data_array: Array = []
for fs in prd_module.fs_dic.values():
if not prd_module.ug_online: continue

View File

@@ -34,6 +34,9 @@ signal режим_эмс()
## Вызывается при переходе в режим [b]Настройка[/b].
signal режимастройки()
## Вызывается при включении/отключении режима [b]Тренаж[/b].[br]
## [param val] - [b]true[/b] тренаж включён.
signal режимренаж(val: bool)
## Вызывается, когда оператор переводит программу в режим [b]Автомат выбора цели и помехи[/b].
signal full_auto()