diff --git a/project.godot b/project.godot index 27a8a4e1..524ef5ad 100644 --- a/project.godot +++ b/project.godot @@ -64,6 +64,7 @@ mercator="*res://scripts/mercator.gd" tcp5p28="*res://scripts/tcp5p28.gd" sch3="*res://scripts/sch3.gd" spt25="*res://scripts/spt25.gd" +astrakb="*res://scripts/astra_kb.gd" [debug] diff --git a/scenes/tabs-switch/tab-switch.gd b/scenes/tabs-switch/tab-switch.gd index 864fecc2..5580d6d8 100644 --- a/scenes/tabs-switch/tab-switch.gd +++ b/scenes/tabs-switch/tab-switch.gd @@ -5,6 +5,11 @@ const TAB_TOSIGNAL_NAME = {0: 'режим_работа', 1: 'режим_конт func _enter_tree() -> void: network.logger_page = $Журнал + signaller.connect('ems2_hide_pressed', on_ems2_hide_pressed) + + +func on_ems2_hide_pressed(state): + set_tab_hidden(4, state) func _on_tab_changed(tab) -> void: diff --git a/scenes/настройки/настройки.gd b/scenes/настройки/настройки.gd index ad3f01a1..ffe8911c 100644 --- a/scenes/настройки/настройки.gd +++ b/scenes/настройки/настройки.gd @@ -18,18 +18,28 @@ func _ready() -> void: node.disabled = true -func _on_external_cu_btn_pressed() -> void: - var state = $GridContainer2/external_cu_btn.button_pressed +func on_external_cu_btn_pressed(btn) -> void: + var state = btn.button_pressed ProjectSettings.set_setting('application/config/external_cu', state) if state: signaller.emit_signal('interfer_off_all') +func on_vk_pressed(btn) -> void: + var state = btn.button_pressed + signaller.emit_signal('kb_pressed', state) + + +func on_ems2_pressed(btn) -> void: + var state = btn.button_pressed + signaller.emit_signal('ems2_hide_pressed', state) + + func setting_tab(): var yams: Array = [ HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER ] $table.set_header([TableHeader, TableHeader]) $table.set_header_text(['Параметр', ' Значение ']) - for i in range(19): + for i in range(21): $table.add_row([TableLabel, TableTaggle]) $table.set_row_text(0,(['Ограниченный режим'])) $table.set_row_text(1,(['Управление элементами в ограниченном режиме'])) @@ -49,13 +59,23 @@ func setting_tab(): $table.set_row_text(15,(['Кнопка «JTIDS»'])) $table.set_row_text(16,(['Кнопка «КУПД»'])) $table.set_row_text(17,(['Внешнее целеуказание'])) + var extern_cu_node = $table.get_node2(1, 17).get_children()[1] + extern_cu_node.connect('pressed', on_external_cu_btn_pressed.bind(extern_cu_node)) $table.set_row_text(18,(['Кнопка «Подавление»'])) + $table.set_row_text(19,(['Виртуальная клавиатура'])) + var vk_node = $table.get_node2(1, 19).get_children()[1] + vk_node.connect('pressed', on_vk_pressed.bind(vk_node)) + $table.set_row_text(20,(['Скрыть вкладку ЭМС 2'])) + var ems2_hide_node = $table.get_node2(1, 20).get_children()[1] + ems2_hide_node.connect('pressed', on_ems2_pressed.bind(ems2_hide_node)) + ems2_hide_node.set_pressed(true) + on_ems2_pressed(ems2_hide_node) $table.add_row([TableLabel, TableEmpti]) $table.add_row([TableLabel, TableEmpti]) - $table.set_row_text(19, (['Текущая версия ПО УАРЭП'])) - $table.set_row_text(20, (['Адрес сервера карт'])) + $table.set_row_text(21, (['Текущая версия ПО УАРЭП'])) + $table.set_row_text(22, (['Адрес сервера карт'])) $table.set_columns_min_size([365, 365]) $table.set_columns_alignments(yams) diff --git a/scenes/настройки/настройки.tscn b/scenes/настройки/настройки.tscn index 2f685885..98a1d8b3 100644 --- a/scenes/настройки/настройки.tscn +++ b/scenes/настройки/настройки.tscn @@ -20,9 +20,9 @@ script = ExtResource("1_2l3rd") [node name="edt_mapaddr" type="LineEdit" parent="."] layout_mode = 0 offset_left = 410.0 -offset_top = 557.0 +offset_top = 612.0 offset_right = 778.0 -offset_bottom = 584.0 +offset_bottom = 639.0 theme_override_colors/font_color = Color(1, 0.596078, 0.4, 1) script = SubResource("GDScript_anjmx") @@ -38,9 +38,9 @@ vertical_alignment = 1 [node name="lbl_commit" type="Label" parent="."] layout_mode = 0 offset_left = 410.0 -offset_top = 532.0 +offset_top = 582.0 offset_right = 778.0 -offset_bottom = 562.0 +offset_bottom = 607.0 theme_override_colors/font_color = Color(1, 0.596078, 0.4, 1) vertical_alignment = 1 diff --git a/scripts/astra_kb.gd b/scripts/astra_kb.gd new file mode 100644 index 00000000..e523eabb --- /dev/null +++ b/scripts/astra_kb.gd @@ -0,0 +1,15 @@ +extends Node + +var pid = null + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + signaller.connect('kb_pressed', Callable(self, 'on_kb_pressed')) + + +func on_kb_pressed(state): + if pid: + OS.kill(pid) + pid = null + if state: + pid = OS.create_process('fly-vkbd', []) diff --git a/scripts/settings.gd b/scripts/settings.gd index 35940e34..9b191936 100644 --- a/scripts/settings.gd +++ b/scripts/settings.gd @@ -9,7 +9,7 @@ var settings_program: Dictionary @export var UnitProfiles: = { \ # Название | Протокол | Адрес | Порт | Широковещательное | Привязывать к адресу | Комментарий - 'уарэп-яу07-частный': ['yau07rx', '10.1.1.14', [50014], false, true, 'IP-адрес на котором принимают частные сообщения от ЯУ-07'], + 'уарэп-яу07-частный': ['yau07rx', '10.1.1.2', [50002], false, true, 'IP-адрес на котором принимают частные сообщения от ЯУ-07'], 'уарэп-яу07-общий': ['yau07rx', '*', [50000], true, true, 'IP-адрес на котором принимают широковещательные сообщения от ЯУ-07'], 'уарэп-капсрпб': ['json-capsrpb', '127.0.0.1', [42023, 42022], false, true, 'IP-адрес на котором принимают сообщения от КАПС РПБ'], 'уарэп-эмс': ['yau07tx', '10.1.1.52', [50052], false, false, 'IP-адрес ЯУ-07 прибора УФ'], diff --git a/scripts/signaller.gd b/scripts/signaller.gd index f41b4a42..7cedf7b5 100644 --- a/scripts/signaller.gd +++ b/scripts/signaller.gd @@ -145,9 +145,17 @@ signal map_mode_changed(mode: int) ## Вызывается при обновлении позиции(угла) цели.[br] signal th_aoa_update(threats: Dictionary) - ## <...>[br] ## [param ecms] - <...> signal fs_update_color(ecms: Dictionary) signal socket_error(error: String) + +## Вызывается при нажатии на кнопку экранной клавиатуры +## [param state] - состояние нажатого переключателя виртуальной клавиатуры астры +signal kb_pressed(state) + + +## Вызывается при нажатии на кнопку экранной клавиатуры +## [param state] - состояние скрытия кнопки ЭМС2 +signal ems2_hide_pressed(state)