Рефактор.
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user