Рефактор.

This commit is contained in:
sasha80
2026-01-15 09:55:39 +03:00
parent 2919b0174f
commit a06df2b832
4 changed files with 40 additions and 47 deletions

View File

@@ -208,7 +208,7 @@ func _initialize_default_states() -> void:
'ems_g_sock_dic': ems_g_sock_dic.duplicate(true),
# Структуры данных (глубокое копирование)
'power_for_litera': _deep_copy_power_structure(),
'power_for_litera': power_for_litera.duplicate(true),
'control_results': control_results.duplicate(true),
'power_result': power_result.duplicate(true),
'temperature_um': temperature_um.duplicate(true),
@@ -1140,16 +1140,15 @@ static func _create_fs_mapping(s_name: String) -> Dictionary:
## Получение статуса ФС
static func on_fs_state(packet_type_7: Dictionary, fs_mapping: Dictionary, fs_results: Dictionary, fs_rules_config: Array) -> Dictionary:
var updated_results := fs_results
for fs_num in packet_type_7:
if not (fs_num in fs_mapping and fs_mapping[fs_num]['condition']):
continue
var fs_data = packet_type_7[fs_num]
for rule in fs_rules_config:
if _should_apply_rule(fs_num, rule, updated_results):
updated_results[rule.key] = fs_data.isg
if _should_apply_rule(fs_num, rule, fs_results):
fs_results[rule.key] = fs_data.isg
break
return updated_results
return fs_results
## Вспомогательная функция для проверки применения правила
@@ -1288,7 +1287,7 @@ static func check_dou_result(control_dic: Dictionary, power_dic: Dictionary, pri
var ray_dic: Dictionary = power_dic[litera]
# Проверка наличия данных
if ray_dic[RAY_m5].size() == 0 or \
if ray_dic[RAY_m5].size() == 0 or \
ray_dic[RAY_5 ].size() == 0 or \
ray_dic[RAY_15].size() == 0 or \
ray_dic[RAY_25].size() == 0 or \
@@ -1301,7 +1300,7 @@ static func check_dou_result(control_dic: Dictionary, power_dic: Dictionary, pri
var low_power_by_position: Array = [0, 0, 0, 0, 0, 0] # Счетчики для 6 позиций
for ray_key in [RAY_m5, RAY_5, RAY_15, RAY_25, RAY_35, RAY_45]:
var power_array: Array = ray_dic[ray_key]
for i in range(power_array.size()):
for i in power_array.size():
if power_array[i] < cnst.POWER_THRESHOLD:
low_power_by_position[i] += 1
@@ -1316,14 +1315,7 @@ static func check_dou_result(control_dic: Dictionary, power_dic: Dictionary, pri
#endregion
#region DEFAULT_STATES
## Глубокое копирование структуры мощностей
func _deep_copy_power_structure() -> Dictionary:
var copy = {}
for litera in power_for_litera:
copy[litera] = {}
for ray_type in power_for_litera[litera]:
copy[litera][ray_type] = power_for_litera[litera][ray_type]
return copy
## Восстановление состояний по умолчанию
func restore_default_states() -> void:
@@ -1358,6 +1350,7 @@ func restore_default_states() -> void:
_set_status('Состояния сброшены к значениям по умолчанию')
## Получение текущих состояний для отладки
func get_current_states() -> Dictionary:
return {