Доработка работы с ecms в контроле + форматирование пробелов

This commit is contained in:
TotMaxim
2025-11-25 12:31:45 +03:00
parent 5eb44fd20a
commit bfb9d3a4e8
11 changed files with 234 additions and 207 deletions

View File

@@ -119,9 +119,13 @@ func on_interfer_new(ecm, table_index):
$table.set_row_editable(i_row, false)
$table.set_node_user_data(0, i_row, ecm)
table_index[ecm.ispp] = i_row
$table.cleanup_invalid_selectors()
# Будем надеяться, что отложенные вызовы производятся в том же порядке
$table.call_deferred('clear_rows_selected')
$table.call_deferred('set_row_selected', i_row, true)
var selected_rows = []
$table.get_selected_rows(selected_rows)
for old_row in selected_rows:
$table.set_row_selected(old_row, false)
$table.set_row_selected(i_row, true)
if not interfer.auto_enabled:
signaller.emit_signal('interfer_selected', ecm)

View File

@@ -75,7 +75,7 @@ func on_threat_update(th, table_index: Dictionary):
elif th.emit_state == 2:
emit_txr.visible = true
emit_txr.self_modulate = Color.RED
## Обрабатывает сигнал [b]threat_lost[/b].

View File

@@ -44,6 +44,7 @@ func _on_start_control() -> void:
set_default_state(get_tree().get_nodes_in_group('default_reset'))
set_default_state(get_tree().get_nodes_in_group('power_amplifier'))
find_labels(self)
await get_tree().create_timer(1.0).timeout
on_press_device(unit_prd_k.self_name)
@@ -98,7 +99,7 @@ static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifi
if i_p >= 1:
all_below_one = false
break
if all_below_one:
status = STATE_VAL.NONE
else:
@@ -164,7 +165,7 @@ static func on_control_result(for_result_dic: Dictionary) -> void:
if power_supply.state == STATE_VAL.ERROR:
all_y5_good = false
if not for_result_dic.control_is_over:
if not for_result_dic.control_is_over:
set_default_state(for_result_dic.default_reset_array_node)
set_default_state(for_result_dic.power_amplifier)
return
@@ -185,7 +186,7 @@ static func on_control_result(for_result_dic: Dictionary) -> void:
if result_dic.fs_7 == 1 and block_kasseta_y5_prd_config_k['yau07']:
for_result_dic.module_fs_7.state = STATE_VAL.GOOD if result_dic.dkm_7 else STATE_VAL.ERROR
for_result_dic.dou_7.state = STATE_VAL.GOOD if result_dic.dou_7 else STATE_VAL.ERROR
if block_kasseta_y5_prd_config_k['yau07']:
power_fill(for_result_dic.power_dic, for_result_dic.result_dic, for_result_dic.power_amplifier, for_result_dic.POWER_THRESHOLD)

View File

@@ -44,6 +44,7 @@ func _on_start_control() -> void:
for um in get_tree().get_nodes_in_group('power_amplifier'):
um.value0 = [0, 0, 0, 0, 0, 0]
find_labels(self)
await get_tree().create_timer(1.0).timeout
on_press_device(unit_prd_n.self_name)
@@ -87,16 +88,16 @@ static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifi
if i_p >= 1:
all_below_one = false
break
if all_below_one:
i_node_powapm.state = STATE_VAL.NONE
continue
var count_above_threshold = 0
for i_p in pow_dic[powamp_meta]:
if i_p >= POWER_THRESHOLD:
count_above_threshold += 1
status = STATE_VAL.GOOD if count_above_threshold >= 3 else STATE_VAL.ERROR
i_node_powapm.state = status
@@ -142,7 +143,7 @@ static func on_control_result(for_result_dic: Dictionary) -> void:
# Проверяем состояние после установки
if node_y5.state == STATE_VAL.ERROR:
all_y5_good = false
var block_ip_config_n: Dictionary = for_result_dic.block_ip_config
for power_supply in for_result_dic.node_ip_power_arr:
var meta_ip = power_supply.get_meta('ip')
@@ -153,8 +154,8 @@ static func on_control_result(for_result_dic: Dictionary) -> void:
# Проверяем состояние после установки
if power_supply.state == STATE_VAL.ERROR:
all_y5_good = false
if not for_result_dic.control_is_over:
if not for_result_dic.control_is_over:
set_default_state(for_result_dic.default_reset_array_node)
set_default_state(for_result_dic.power_amplifier)
return
@@ -172,7 +173,7 @@ static func on_control_result(for_result_dic: Dictionary) -> void:
if result_dic.fs_3 == 1 and block_kasseta_y5_prd_config_n['yau07']:
for_result_dic.module_fs_3.state = STATE_VAL.GOOD if result_dic.dkm_3 else STATE_VAL.ERROR
for_result_dic.dou_3.state = STATE_VAL.GOOD if result_dic.dou_3 else STATE_VAL.ERROR
if block_kasseta_y5_prd_config_n['yau07']:
power_fill(for_result_dic.power_dic, for_result_dic.result_dic, for_result_dic.power_amplifier, for_result_dic.POWER_THRESHOLD)

View File

@@ -44,6 +44,7 @@ func _on_start_control() -> void:
for um in get_tree().get_nodes_in_group('power_amplifier'):
um.value0 = [0, 0, 0, 0, 0, 0]
find_labels(self)
await get_tree().create_timer(1.0).timeout
on_press_device(unit_prd_v.self_name)
@@ -87,7 +88,7 @@ static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifi
if i_p >= 1:
all_below_one = false
break
if all_below_one:
i_node_powapm.state = STATE_VAL.NONE
continue
@@ -95,7 +96,7 @@ static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifi
for i_p in pow_dic[powamp_meta]:
if i_p >= POWER_THRESHOLD:
count_above_threshold += 1
status = STATE_VAL.GOOD if count_above_threshold >= 3 else STATE_VAL.ERROR
i_node_powapm.state = status
@@ -153,7 +154,7 @@ static func on_control_result(for_result_dic: Dictionary) -> void:
if power_supply.state == STATE_VAL.ERROR:
all_y5_good = false
if not for_result_dic.control_is_over:
if not for_result_dic.control_is_over:
set_default_state(for_result_dic.default_reset_array_node)
set_default_state(for_result_dic.power_amplifier)
return
@@ -167,11 +168,11 @@ static func on_control_result(for_result_dic: Dictionary) -> void:
if result_dic.fs_5 == 1 and block_kasseta_y5_prd_config_v['yau07']:
for_result_dic.module_fs_5.state = STATE_VAL.GOOD if result_dic.dkm_5 else STATE_VAL.ERROR
for_result_dic.dou_5.state = STATE_VAL.GOOD if result_dic.dou_5 else STATE_VAL.ERROR
if result_dic.fs_4 == 1 and block_kasseta_y5_prd_config_v['yau07']:
for_result_dic.module_fs_4.state = STATE_VAL.GOOD if result_dic.dkm_4 else STATE_VAL.ERROR
for_result_dic.dou_4.state = STATE_VAL.GOOD if result_dic.dou_4 else STATE_VAL.ERROR
if block_kasseta_y5_prd_config_v['yau07']:
power_fill(for_result_dic.power_dic, for_result_dic.result_dic, for_result_dic.power_amplifier, for_result_dic.POWER_THRESHOLD)

View File

@@ -20,9 +20,9 @@ func _ready() -> void:
func on_timer(unit_name: StringName):
var unit_uf = network.get_unit_instance(unit_name)
status_uf() # отслеживание состояния прибора
if unit_uf.online: # проверка ЯУ, внутреннего коммутатора и ИП-5Б
control_ems(unit_uf.status) # проверка ЭМС ячеек
status_uf() # отслеживание состояния прибора
func on_line_changed(unit_uf):

View File

@@ -171,11 +171,11 @@ func on_serviceability_changed(prd_module: Object, prd_pribor:Node)-> void:
prd_pribor.state = STATE_DEVICE.NONE
return
print([prd_pribor.get_meta('unit_name'), prd_module.unit_control.current_status])
if prd_module.unit_control.flag_control_is_over:
if prd_module.unit_control.control_is_over:
var control_results = prd_module.unit_control.get_control_results()
var result_dic = control_results.result_dic
# Проверяем только основные устройства
var critical_devices = ['fs_1', 'fs_2', 'fs_3', 'fs_4', 'fs_5', 'fs_6', 'fs_7',
var critical_devices = ['fs_1', 'fs_2', 'fs_3', 'fs_4', 'fs_5', 'fs_6', 'fs_7',
'dkm_1', 'dkm_2', 'dkm_3', 'dkm_4', 'dkm_5', 'dkm_6', 'dkm_7',
'block_ip', 'dou_2', 'dou_3', 'dou_4', 'dou_5', 'dou_6', 'dou_7']
# Проверяем результаты контроля напрямую
@@ -185,7 +185,7 @@ func on_serviceability_changed(prd_module: Object, prd_pribor:Node)-> void:
if not result_dic[device_key]:
all_ok = false
break
prd_pribor.state = STATE_DEVICE.GOOD if all_ok else STATE_DEVICE.ERROR
elif not prd_module.serviceability:
prd_pribor.state = STATE_DEVICE.ERROR