Merge branch 'master-lepshiy'

This commit is contained in:
sasha80
2025-03-06 13:01:13 +03:00
12 changed files with 238 additions and 110 deletions

3
connect-to-uf.sh Normal file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
xfreerdp /u:user /p:12345678 /v:10.1.1.2 /f

View File

@@ -199,7 +199,6 @@ shader_parameter/ant_band_r1_0 = 0.5
[sub_resource type="ShaderMaterial" id="ShaderMaterial_lkrha"]
shader = ExtResource("3_2a1qb")
shader_parameter/ColorFig = Color(0, 0.862745, 0, 1)
shader_parameter/point_1 = Vector2(0.125, 0)
shader_parameter/point_2 = Vector2(0.125, 0.036)
shader_parameter/point_3 = Vector2(0, 0.125)

View File

@@ -4,7 +4,7 @@ class_name scroll_ecm_params extends ScrollContainer
const CellLineEdit = preload('res://table/ячейка-2.tscn') ## Ячейка таблицы.
const TableHeader = preload('res://table/header.tscn') ## Ячейка заголовок таблицы.
const CellTaggleBtn = preload('res://table/taggle.tscn')
const CellTaggleBtn = preload('res://table/set_taggle.tscn')
const TABLE_HEADER = [ TableHeader, TableHeader ] ## Описание ряда заголовка.
const TABLE_ROW = [ CellLineEdit, CellLineEdit ] ## Описание ряда.
@@ -38,13 +38,13 @@ func init_table():
$table.set_node_alligment(0, MOD_ROW_INDEX, HORIZONTAL_ALIGNMENT_LEFT)
$table.set_node_editable(0, MOD_ROW_INDEX, false)
var taggle_node = $table.get_node2(1, MOD_ROW_INDEX)
for item in taggle_node.get_children():
item.size.x = 85
item.size.y = 25
item.position.x = 0
item.position.y = 0
taggle_node.size.x = 85
taggle_node.size.y = 25
#for item in taggle_node.get_children():
#item.size.x = 85
#item.size.y = 25
#item.position.x = 0
#item.position.y = 0
#taggle_node.size.x = 85
#taggle_node.size.y = 25
var taggle_btn = taggle_node.get_children()[1]
taggle_btn.connect('pressed', on_taggle_btn.bind(taggle_btn))
taggle_btn.disabled = true

View File

@@ -1,10 +1,60 @@
class_name setting extends Panel
var TableHeader = preload('res://table/header.tscn')
var TableLabel = preload('res://table/lable.tscn')
var TableTaggle = preload('res://table/taggle.tscn')
var TableEdit = preload('res://table/editl.tscn')
var TableEmpti = preload('res://table/empti.tscn')
const TableHeader = preload('res://table/header.tscn')
const TableTaggle = preload('res://table/settings_taggle.tscn')
const TableEdit = preload('res://table/ячейка-2.tscn')
const ALIGNMENT = [HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER]
const HEADER_ROW = [TableHeader, TableHeader]
const HEADER_ROW_TEXT = ['Параметр', 'Значение']
const SETTING_TABLE = [
['Ограниченный режим', TableEdit, TableTaggle],
['Управление элементами в ограниченном режиме', TableEdit, TableTaggle],
['Кнопка «ПД-М', TableEdit, TableTaggle],
['Кнопка «ПД-М', TableEdit, TableTaggle],
['Кнопка «ОЗП-1»', TableEdit, TableTaggle],
['Кнопка «МЧМ-1»', TableEdit, TableTaggle],
['Кнопка «ОРН-И1»', TableEdit, TableTaggle],
['Кнопка «ОРН-М', TableEdit, TableTaggle],
['Кнопка «ЛЧМ-1»', TableEdit, TableTaggle],
['Кнопка «ПД-М4С»', TableEdit, TableTaggle],
['Кнопка «ПД-ЧМ»', TableEdit, TableTaggle],
['Кнопка «СВ-И1»', TableEdit, TableTaggle],
['Кнопка «К', TableEdit, TableTaggle],
['Кнопка «СВ-М', TableEdit, TableTaggle],
['Кнопка «ОРН»', TableEdit, TableTaggle],
['Кнопка «JTIDS»', TableEdit, TableTaggle],
['Кнопка «КУПД»', TableEdit, TableTaggle],
['Внешнее целеуказание', TableEdit, TableTaggle],
['Кнопка «Подавление»', TableEdit, TableTaggle],
['Виртуальная клавиатура', TableEdit, TableTaggle],
['Скрыть вкладку ЭМС 2', TableEdit, TableTaggle],
['Текущая версия ПО УАРЭП', TableEdit, TableEdit ],
['Адрес сервера карт', TableEdit, TableEdit ],
['уарэп-яу07-частный', TableEdit, TableEdit ],
['уарэп-яу07-общий', TableEdit, TableEdit ],
['уарэп-капсрпб', TableEdit, TableEdit ],
['уарэп-эмс', TableEdit, TableEdit ],
['уарэп-яу07-2в', TableEdit, TableEdit ],
['уарэп-яу07-2н', TableEdit, TableEdit ],
['уарэп-яу07-2к', TableEdit, TableEdit ],
['уарэп-яу07-4в', TableEdit, TableEdit ],
['уарэп-яу07-4н', TableEdit, TableEdit ],
['уарэп-яу07-4к', TableEdit, TableEdit ],
['уарэп-яу07-1в', TableEdit, TableEdit ],
['уарэп-яу07-1н', TableEdit, TableEdit ],
['уарэп-яу07-1к', TableEdit, TableEdit ],
['уарэп-яу07-3в', TableEdit, TableEdit ],
['уарэп-яу07-3н', TableEdit, TableEdit ],
['уарэп-яу07-3к', TableEdit, TableEdit ],
['уарэп-5п28', TableEdit, TableEdit ],
['уарэп-щ3', TableEdit, TableEdit ],
['уарэп-спт25-1', TableEdit, TableEdit ],
['уарэп-спт25-2', TableEdit, TableEdit ]
]
const SUPPRESS = 18 # Строка - Подавление
const KEYBORD = 19 # Строка - Виртуальная клавиатура
const HIDE_EMS2 = 20 # Строка - Скрыть вкладку ЭМС 2
## Вызывается, когда узел впервые попадает в дерево сцены.
@@ -35,58 +85,85 @@ func on_ems2_pressed(btn) -> void:
func setting_tab():
var yams: Array = [HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER]
$table.set_header([TableHeader, TableHeader])
$table.set_header_text(['Параметр', 'начение '])
var row_texts: Array = ['Ограниченный режим',
'Управление элементами в ограниченном режиме',
'Кнопка «ПД-М', 'Кнопка «ПД-М',
'Кнопка «ОЗП-1»',
'Кнопка «МЧМ-1»',
'Кнопка «ОРН-И1»',
'Кнопка «ОРН-М',
'Кнопка «ЛЧМ-1»',
'Кнопка «ПД-М4С»',
'Кнопка «ПД-ЧМ»',
'Кнопка «СВ-И1»',
'Кнопка «К',
'Кнопка «СВ-М',
'Кнопка «ОРН»',
'Кнопка «JTIDS»',
'Кнопка «КУПД»',
'Внешнее целеуказание',
'Кнопка «Подавление»',
'Виртуальная клавиатура',
'Скрыть вкладку ЭМС 2',
'Текущая версия ПО УАРЭП',
'Адрес сервера карт' ]
$heard_table.set_header(HEADER_ROW)
$heard_table.set_header_text(HEADER_ROW_TEXT)
$heard_table.set_columns_min_size([600, 950])
$heard_table.set_columns_alignments(ALIGNMENT)
for i in SETTING_TABLE.size():
var setting_str = SETTING_TABLE[i]
var parameter = setting_str[0]
var node_label = setting_str[1]
var node_value = setting_str[2]
$scroll_set/table.add_row([node_label, node_value])
var label_instance = $scroll_set/table.get_node2(0, i)
label_instance.text = parameter
$scroll_set/table.set_node_editable(0, i, false)
var commit_instance = $scroll_set/table.get_node2(1, 21)
var server_instance = $scroll_set/table.get_node2(1, 22)
commit_instance.text = '%s' % commit.VCS_HEAD
server_instance.text = ProjectSettings.get('application/config/map_server_addr')
$scroll_set/table.set_node_editable(1, 21, false)
$scroll_set/table.set_node_editable(1, 22, false)
$scroll_set/table.set_columns_min_size([600, 950])
$scroll_set/table.set_columns_alignments(ALIGNMENT)
for i in SETTING_TABLE.size():
var setting_str = SETTING_TABLE[i]
var parameter = setting_str[0]
if parameter in settings.UnitProfiles:
var unit_data = settings.UnitProfiles[parameter]
var profiles = $scroll_set/table.get_node2(1, i)
var joined_data = ""
for j in range(unit_data[2].size()):
joined_data += str(unit_data[2][j])
if j < unit_data[2].size() - 1:
joined_data += ","
profiles.text = str(unit_data[1]) + " : " + joined_data
$end_table.set_header(HEADER_ROW)
$end_table.set_header_text(HEADER_ROW_TEXT)
$end_table.set_columns_min_size([600, 950])
$end_table.set_columns_alignments(ALIGNMENT)
button_settings()
for i in range(len(row_texts)):
if i < 21:
$table.add_row([TableLabel, TableTaggle])
else:
if i == len(row_texts) - 2:
var commit_version = '%s"' % commit.VCS_HEAD
$table.add_row([TableLabel, TableLabel])
$table.set_row_text(i, [row_texts[i], commit_version])
elif i == len(row_texts) - 1:
$table.add_row([TableLabel, TableLabel])
$table.set_row_text(i, [row_texts[i], ProjectSettings.get('application/config/map_server_addr')])
else:
$table.add_row([TableLabel, TableEmpti])
$table.set_row_text(i, [row_texts[i]])
var extern_cu_node = $table.get_node2(1, 17).get_children()[1]
func button_settings():
var extern_cu_node = $scroll_set/table.get_node2(1, SUPPRESS).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]
$scroll_set/table.set_row_text(SUPPRESS,(['Кнопка «Подавление»']))
$scroll_set/table.set_row_text(KEYBORD,(['Виртуальная клавиатура']))
var vk_node = $scroll_set/table.get_node2(1, KEYBORD).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]
$scroll_set/table.set_row_text(HIDE_EMS2,(['Скрыть вкладку ЭМС 2']))
var ems2_hide_node = $scroll_set/table.get_node2(1, HIDE_EMS2).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.set_columns_min_size([365, 365])
$table.set_columns_alignments(yams)
func _on_btn_save_settings_pressed():
var json_data = {}
for i in range(SETTING_TABLE.size()):
var parameter = SETTING_TABLE[i][0]
if parameter in settings.UnitProfiles:
var profiles = $scroll_set/table.get_node2(1, i)
var value = profiles.get_text()
if parameter not in json_data:
json_data[parameter] = []
if value.find(":") != -1:
var parts = value.split(":")
var ip = parts[0].strip_edges()
var ports = parts[1].split(",")
json_data[parameter].append(ip)
for port in ports:
if port == "true":
json_data[parameter].append(true)
elif port == "false":
json_data[parameter].append(false)
var file = FileAccess.open(settings.settings_file, FileAccess.WRITE)
if file:
var json_conv = JSON.new()
var json_string = json_conv.stringify(json_data)
file.store_string(json_string)
file.close()
log.info('Настройки сохранены в файл %s' % settings.settings_file)
else:
log.info('Не удалось открыть файл для записи %s' % settings.settings_file)

View File

@@ -1,15 +1,56 @@
[gd_scene load_steps=3 format=3 uid="uid://bnptm4rlp60dq"]
[gd_scene load_steps=7 format=3 uid="uid://bnptm4rlp60dq"]
[ext_resource type="Script" path="res://scenes/настройки/настройки.gd" id="1_2l3rd"]
[ext_resource type="Script" path="res://table/table.gd" id="2_6sx73"]
[ext_resource type="Texture2D" uid="uid://biyjygfnhhf7i" path="res://data/save.png" id="3_xqtce"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_bgm7i"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_eifcy"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_exytp"]
[node name="Настройки" type="Panel"]
script = ExtResource("1_2l3rd")
[node name="table" type="GridContainer" parent="."]
[node name="heard_table" type="GridContainer" parent="."]
layout_mode = 0
offset_left = 40.0
offset_top = 40.0
offset_right = 80.0
offset_bottom = 80.0
offset_left = 16.0
offset_top = 16.0
offset_right = 16.0
offset_bottom = 16.0
script = ExtResource("2_6sx73")
[node name="scroll_set" type="ScrollContainer" parent="."]
layout_mode = 0
offset_left = 16.0
offset_top = 44.0
offset_right = 1584.0
offset_bottom = 988.0
[node name="table" type="GridContainer" parent="scroll_set"]
layout_mode = 2
script = ExtResource("2_6sx73")
[node name="end_table" type="GridContainer" parent="."]
layout_mode = 0
offset_left = 16.0
offset_top = 1000.0
offset_right = 16.0
offset_bottom = 1000.0
script = ExtResource("2_6sx73")
[node name="btn_save_settings" type="Button" parent="."]
layout_mode = 0
offset_left = 1523.0
offset_top = 1062.0
offset_right = 2043.0
offset_bottom = 1582.0
scale = Vector2(0.1, 0.1)
focus_mode = 0
theme_override_styles/focus = SubResource("StyleBoxEmpty_bgm7i")
theme_override_styles/pressed = SubResource("StyleBoxEmpty_eifcy")
theme_override_styles/normal = SubResource("StyleBoxEmpty_exytp")
icon = ExtResource("3_xqtce")
[connection signal="pressed" from="btn_save_settings" to="." method="_on_btn_save_settings_pressed"]

View File

@@ -45,25 +45,24 @@ var settings_program: Dictionary
func _ready() -> void:
var file = FileAccess.open(settings_file, FileAccess.READ)
if not file:
log.info('Не удалось открыть файл настроек %s, использованы настройики по умолчанию' % settings_file)
return
var read = file.get_as_text()
file.close()
var json_conv: = JSON.new()
if Error.OK != json_conv.parse(read):
log.info('Не удалось прочитать файл настроек %s, использованы настройики по умолчанию' % settings_file)
return
var json_data = json_conv.get_data()
settings_program.merge(json_data)
for key in UnitProfiles.keys():
if not json_data.has(key): continue
UnitProfiles[key][1] = json_data[key][0]
for i in len(json_data[key]) - 1:
if json_data[key][1][i+1].is_valid_int():
UnitProfiles[key][2][i] = int(json_data[key][i+1])
else:
UnitProfiles[key][2][i] = json_data[key][i+1]
if file != null:
var read = file.get_as_text()
file.close()
var json_conv: = JSON.new()
if Error.OK == json_conv.parse(read):
var json_data = json_conv.get_data()
settings_program.merge(json_data)
for key in UnitProfiles.keys():
if json_data.has(key):
UnitProfiles[key][1] = json_data[key][0]
for i in len(json_data[key]) - 1:
if typeof(json_data[key][i+1]) == TYPE_STRING:
if json_data[key][i+1].is_valid_int():
UnitProfiles[key][2][i] = int(json_data[key][i+1])
else:
UnitProfiles[key][2][i] = json_data[key][i+1]
else:
UnitProfiles[key][2][i] = json_data[key][i+1]
log.info('Модуль настроек готов')

View File

@@ -2,7 +2,6 @@ shader_type canvas_item;
#include "res://shaders/tools.gdshaderinc"
uniform vec4 ColorFig:source_color;
uniform vec2 point_1;
uniform vec2 point_2;
uniform vec2 point_3;

View File

@@ -1,5 +1,7 @@
[gd_scene format=3 uid="uid://bvbvtgwps54yr"]
[node name="Editl" type="LineEdit"]
offset_right = 59.875
offset_bottom = 33.0
caret_blink = true
caret_blink_interval = 0.5

View File

@@ -11,6 +11,6 @@ corner_radius_bottom_left = 5
[node name="Lable" type="Label"]
offset_right = 104.0
offset_bottom = 24.0
offset_bottom = 27.0
theme_override_colors/font_color = Color(1, 0.596078, 0.4, 1)
theme_override_styles/normal = SubResource("StyleBoxFlat_yign5")

View File

@@ -0,0 +1,29 @@
[gd_scene load_steps=4 format=3 uid="uid://5rw652cmnybi"]
[ext_resource type="PackedScene" uid="uid://dspa16ufrpanp" path="res://table/ячейка-2.tscn" id="1_qcan0"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_q2spu"]
[sub_resource type="Theme" id="Theme_hnhcj"]
CheckButton/styles/focus = SubResource("StyleBoxEmpty_q2spu")
[node name="SettingsTaggle" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="LineEdit" parent="." instance=ExtResource("1_qcan0")]
layout_mode = 0
offset_right = 950.0
editable = false
[node name="CheckButton" type="CheckButton" parent="."]
layout_mode = 0
offset_left = 453.0
offset_top = 4.0
offset_right = 497.0
offset_bottom = 28.0
theme = SubResource("Theme_hnhcj")

View File

@@ -1,21 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://dm7hh7ibuin78"]
[ext_resource type="PackedScene" uid="uid://dwphmxstaxn4v" path="res://table/lable.tscn" id="1_2wdrh"]
[node name="Control" type="Control"]
layout_mode = 3
anchors_preset = 0
offset_right = 96.0
offset_bottom = 24.0
[node name="Lable" parent="." instance=ExtResource("1_2wdrh")]
layout_mode = 0
offset_right = 368.0
offset_bottom = 21.0
[node name="CheckButton" type="CheckButton" parent="."]
layout_mode = 0
offset_left = 161.0
offset_top = -2.0
offset_right = 205.0
offset_bottom = 22.0

View File

@@ -5,8 +5,8 @@
[node name="LineEdit" type="LineEdit"]
offset_right = 58.0
offset_bottom = 33.0
theme_override_colors/font_color = Color(1, 0.596078, 0.4, 1)
theme_override_colors/font_uneditable_color = Color(1, 0.596078, 0.4, 1)
theme_override_colors/font_color = Color(1, 0.596078, 0.4, 1)
theme_override_styles/focus = SubResource("StyleBoxEmpty_mla3y")
alignment = 1
context_menu_enabled = false