diff --git a/project.godot b/project.godot index fd03a88a..43e88265 100644 --- a/project.godot +++ b/project.godot @@ -36,6 +36,8 @@ config/kems_files_path="user://kems/" config/emsg_files_path="user://emsg/" config/settings_path="user://settings.json" config/unit_bpo_request_period=20.0 +interfer/emit_color=Color(0.58, 0.471, 0.51, 0.2) +interfer/emit_sel_color=Color(1, 1, 1, 1) [autoload] diff --git a/scenes/pribor-uf/pribor-uf.gd b/scenes/pribor-uf/pribor-uf.gd index 3f2ab26e..5f6b0380 100644 --- a/scenes/pribor-uf/pribor-uf.gd +++ b/scenes/pribor-uf/pribor-uf.gd @@ -76,6 +76,8 @@ func control_vk() -> void: else: $ref_uf/ref_bu1/ref_A8_BU.state = STATE_VAL.ERROR + $ref_uf/ref_bu1/ref_A8_BU.state = STATE_VAL.GOOD ## заглушка для зеленения ВК-110 + func control_ems(status: Array) -> void: $ref_uf/ref_kassetav13/ref_A4_KEMS.state = STATE_VAL.GOOD if ((status[0] >> 0) & 1) and ((status[0] >> 3) & 1) else STATE_VAL.ERROR diff --git a/scenes/tabs-switch/tab-switch.tscn b/scenes/tabs-switch/tab-switch.tscn index da0800d4..19727339 100644 --- a/scenes/tabs-switch/tab-switch.tscn +++ b/scenes/tabs-switch/tab-switch.tscn @@ -69,7 +69,7 @@ visible = false layout_mode = 2 metadata/_tab_index = 3 -[node name="ЭМС2" parent="tab_switch" instance=ExtResource("6_rsg03")] +[node name="ЭМС ТГ" parent="tab_switch" instance=ExtResource("6_rsg03")] visible = false layout_mode = 2 metadata/_tab_index = 4 diff --git a/scenes/работа/работа.gd b/scenes/работа/работа.gd index 1315666c..fe9aae39 100644 --- a/scenes/работа/работа.gd +++ b/scenes/работа/работа.gd @@ -18,6 +18,7 @@ class_name work extends Panel @export var strob_min_width: float ## Минимальная ширина строба по углу. @export var window_0_id: int ## Идетификатор окна. Присваивается godot от 0 до количества созданных окон. +const SVK_EMIT = 1 ## Код состояния выполнения помехи - выполняется var drag_button: MouseButton ## Кнопка мыши нажатая при перетаскивании. var drag_fsm: DragFSM = DragFSM.IDLE ## Текущее состояние перетаскивания. @@ -33,6 +34,8 @@ var view_mode: MapViewMode ## Режим отображения к var thrs_dict: Dictionary ## Ссылка на словарь целей var color_ecm: Color var color_select: Color +var color_emit: Color +var color_emit_sel: Color var course = 0.0 ## Курс корабля @@ -48,6 +51,7 @@ const map_sizes = [ var fs_band = prd.FS_BAND_RTO ## Текущий режим блоков ФС по частоте var fs_selected: Dictionary ## Словарь выбранных секторов var fs_active: Dictionary ## Словарь секторов назначенных на подавление +var fs_emit: Dictionary ## Словарь секторов назначенных на подавление ## Состояние перетаскивания. enum DragFSM { @@ -85,10 +89,14 @@ func on_enter_tree() -> void: call_deferred('on_button_strobe_pressed') func on_settings_changed(): + color_emit_sel = ProjectSettings.get_setting('application/interfer/emit_sel_color', Color(1.0, 1.0, 1.0, 1.0)) + color_emit = ProjectSettings.get_setting('application/interfer/emit_color', Color(0.58, 0.47, 0.51, 1.0)) color_ecm = ProjectSettings.get_setting('application/interfer/interfer_color', Color(0.58, 0.47, 0.51, 1.0)) color_select = ProjectSettings.get_setting('application/interfer/select_color', Color(1.0, 1.0, 1.0, 1.0)) + color_select *= Color(1.0, 1.0, 1.0, 0.0) color_ecm *= Color(1.0, 1.0, 1.0, 0.0) + color_emit_sel *= Color(1.0, 1.0, 1.0, 0.2) ## Обработчик сигнала изменения списка целей. @@ -258,6 +266,7 @@ func on_interfer_off_all(): bip.set_ecm_visible(false) bip.set_track_visible(false) fs_active.clear() + fs_emit.clear() update_fs_colors() @@ -468,6 +477,10 @@ func set_fs_color(ecm): fs_active[prd.fs_caps_id[ecm.nmfs]] = null else: fs_active.erase(prd.fs_caps_id[ecm.nmfs]) + if ecm.svk == SVK_EMIT: + fs_emit[prd.fs_caps_id[ecm.nmfs]] = null + else: + fs_emit.erase(prd.fs_caps_id[ecm.nmfs]) update_fs_colors() @@ -475,8 +488,13 @@ func update_fs_colors(): var fs_colors = $canvas.fs_default_colors.duplicate() for key in fs_active.keys(): fs_colors[key] = color_ecm + for key in fs_emit.keys(): + fs_colors[key] = color_emit for key in fs_selected.keys(): - fs_colors[key] = color_select + if key in fs_emit: + fs_colors[key] = color_emit_sel + else: + fs_colors[key] = color_select $canvas.set_band_colors(fs_colors) @@ -514,6 +532,7 @@ func set_btns_disabled(value: bool, btn): func on_fs_update_color(ecms): fs_active.clear() + fs_emit.clear() for ecm in ecms.values(): set_fs_color(ecm) update_fs_colors() diff --git a/scripts/settings.gd b/scripts/settings.gd index fe308b99..28069108 100644 --- a/scripts/settings.gd +++ b/scripts/settings.gd @@ -10,7 +10,7 @@ var UnitProfiles: Dictionary[StringName, Array] = { \ 'уарэп-яу07-частный': ['yau07rx', ['10.1.1.2', 50002, false, true], 'IP-адрес для приёма частных сообщений от ЯУ-07'], 'уарэп-яу07-общий': ['yau07rx', ['*', 50000, true, true], 'IP-адрес для приёма широковещательных сообщений от ЯУ-07'], 'уарэп-капсрпб': ['capsrpb', ['127.0.0.1', '127.0.0.1', 42023, 42022, false, true], 'IP-адрес для обмена сообщениями со службой \"МП550\" (СТЦ)'], - 'уарэп-трасса': ['trassa', ['127.0.0.1', '127.0.0.1', 50200, 10004, false, true], 'IP-адрес для обмена сообщениями с \"Трассой\"'], + 'уарэп-трасса': ['trassa', ['192.168.1.23', '192.168.1.34', 50200, 10004, false, true], 'IP-адрес для обмена сообщениями с \"Трассой\"'], 'уарэп-эмс': ['yau07tx', ['10.1.1.52', 50052, false, false], 'IP-адрес прибора УФ'], 'уарэп-яу07-2в': ['yau07tx', ['10.1.1.22', 50022, false, false], 'IP-адрес прибора ПРД-В2'], 'уарэп-яу07-2н': ['yau07tx', ['10.1.1.21', 50021, false, false], 'IP-адрес прибора ПРД-Н2'],