Доработка. Распаковка данных из файла настроек в формате json.

This commit is contained in:
MaD_CaT
2025-01-10 14:08:20 +03:00
parent d96106a9de
commit 8d644feb61
2 changed files with 20 additions and 1 deletions

View File

@@ -3,6 +3,8 @@ class_name rep_settings extends Node
## Параметры.
var settings_file = ProjectSettings.get_setting('application/config/settings_path', 'user://settings.json') # Путь к файлу с настройками
@export var UnitProfiles: = { \
# Название | Протокол | Адрес | Порт | Широковещательное | Привязывать к адресу | Комментарий
'уарэп-яу07-частный': ['yau07rx', '10.1.1.14', [50014], false, true, 'IP-адрес на котором принимают частные сообщения от ЯУ-07'],
@@ -39,7 +41,23 @@ class_name rep_settings extends Node
}
func _ready() -> void: log.info('Модуль настроек готов')
func _ready() -> void:
var file = FileAccess.open(settings_file, FileAccess.READ)
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()
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 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]
log.info('Модуль настроек готов')
## Возвращает ключ устройства.