Доработка. Сохранение настроек.
This commit is contained in:
@@ -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)'],
|
||||
@@ -45,24 +45,42 @@ var settings_program: Dictionary
|
||||
|
||||
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()
|
||||
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]
|
||||
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
|
||||
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 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:
|
||||
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('Модуль настроек готов')
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user