Доработка. Переписанный парсер setting.json

This commit is contained in:
MaD_CaT
2025-03-06 14:25:39 +03:00
parent 54292b2760
commit fb42f5bc00

View File

@@ -30,7 +30,7 @@ var settings_program: Dictionary
'уарэп-5п28': [ '5p28', '127.0.0.1', [50000], 'IP-адрес комплекса 5П-28'],
# Название: [ Протокол, Адрес, Скорость, ??, ??, Комментарий
'уарэп-щ3': ['mbcs', '/home/sasha/dev/tty1', [19200, 7, 'N', 8, 1], 'Параметры клиента Modbus Serial'],
'уарэп-щ3': ['mbcs', '/home/sasha/dev/tty1', [7, 19200, 'N', 8, 1], 'Параметры клиента Modbus Serial'],
# Название: [ Протокол, Имя порта, Скорость, Чётность, ??, Комментарий
'уарэп-спт25-1': ['uart', '/home/sasha/dev/tty0', [19200, false, false], 'Адрес прибора СПТ-25 (G1)'],
@@ -58,15 +58,29 @@ func _ready() -> void:
settings_program.merge(json_data)
for key in UnitProfiles.keys():
if not json_data.has(key): continue
UnitProfiles[key][1] = json_data[key][0]
var temp_array = []
var set_from_file = true
if typeof(json_data[key][0]) == typeof(UnitProfiles[key][1]):
temp_array.append(json_data[key][0])
else:
set_from_file = false
if (len(json_data[key]) - 1) != len(UnitProfiles[key][2]):
log.info('Не удалось прочитать файл настроек %s, ошибка длинны массива' % settings_file)
continue
temp_array.append([])
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]
if tools.type_is_num(json_data[key][i+1]) == tools.type_is_num(UnitProfiles[key][2][i]):
temp_array[1].append(json_data[key][i+1])
elif typeof(json_data[key][i+1]) == typeof(UnitProfiles[key][2][i]):
temp_array[1].append(json_data[key][i+1])
else:
UnitProfiles[key][2][i] = json_data[key][i+1]
set_from_file = false
if set_from_file:
UnitProfiles[key][1] = temp_array[0]
UnitProfiles[key][2] = temp_array[1]
else:
log.info('Не удалось прочитать ключ %s из файла настроек, использованы настройики по умолчанию' % key)
log.info('Модуль настроек готов')