temporary

This commit is contained in:
Maxim
2025-07-08 14:53:32 +03:00
parent 5cb308ece3
commit 20ff587385
3 changed files with 71 additions and 3 deletions

View File

@@ -399,3 +399,13 @@ theme_override_font_sizes/font_size = 10
text = "Out
ems 2"
horizontal_alignment = 1
[node name="control_result" type="Label" parent="."]
layout_mode = 0
offset_left = 9.0
offset_top = 960.0
offset_right = 649.0
offset_bottom = 1003.0
theme_override_font_sizes/font_size = 28
horizontal_alignment = 1
metadata/_edit_lock_ = true

View File

@@ -29,6 +29,13 @@ enum STATE_VAL {
var control_timer: Timer = Timer.new()
var flag_control: bool = false
var _control_results: Dictionary = {
"block_ip": false, # Проверка касет П1 и ИП МА2000
"temperature": true, # Проверка температур УМ
"dkm": false, # Проверка ДКМ
"power_ukp": false, # Мощность от УКП
"fs_ems": false # Проверка ЭМС и ФС
}
func _ready() -> void:
@@ -48,6 +55,7 @@ func _ready() -> void:
func _enter_tree() -> void:
$control_result.text = ''
signaller.connect('режим_работа', Callable(self, 'on_mode_changed').bind(false))
on_ug_setting()
@@ -58,7 +66,7 @@ func _exit_tree() -> void:
var prd_module = prd.prd_dict[unit_prd.name]
print('Было: %s, %s' % [unit_prd.isa_ports[ADDR_UG_LITERA_1], unit_prd.isa_ports[ADDR_UG_LITERA_2]])
print("Стало: %s, %s" % [ug_work_1, ug_work_2])
prd_module.cmd_array.append([unit_prd.CmdCode.WRITE_ISA, [ADDR_UG_LITERA_1, ug_work_1, ADDR_UG_LITERA_2, ug_work_2]])
@@ -115,6 +123,14 @@ func check_block_ip(status_prd: PackedByteArray) -> void:
$kasseta_P_1/ref_A19.state = STATE_VAL.ERROR if ip9_50_1 else STATE_VAL.GOOD
$kasseta_P_1/ref_A20.state = STATE_VAL.ERROR if ip9_50_2 else STATE_VAL.GOOD
$kasseta_P_1/ref_A21.state = STATE_VAL.ERROR if ip12_50_1 else STATE_VAL.GOOD
_control_results["block_ip"] = (
$maa2000_A23.state == STATE_VAL.GOOD and
$maa2000_A22.state == STATE_VAL.GOOD and
$kasseta_P_1/ref_A19.state == STATE_VAL.GOOD and
$kasseta_P_1/ref_A20.state == STATE_VAL.GOOD and
$kasseta_P_1/ref_A21.state == STATE_VAL.GOOD
)
else:
$maa2000_A23.state = STATE_VAL.NONE
$maa2000_A22.state = STATE_VAL.NONE
@@ -123,6 +139,7 @@ func check_block_ip(status_prd: PackedByteArray) -> void:
$kasseta_P_1/ref_A21.state = STATE_VAL.NONE
## Проверка температур УМ от УКП
func check_temperature_um(status_prd: PackedByteArray) -> void:
const TEMP_CONSTANTS = {
@@ -136,12 +153,17 @@ func check_temperature_um(status_prd: PackedByteArray) -> void:
const TEMPERATURE_UKP_2: int = 79
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
# Сбрас флагов перед проверкой
_control_results["temperature"] = true
var ukp1_online: int = (status_prd[0] >> 2) & 1
if ukp1_online:
for i_temp in range(6):
var temperature_ukp_1: int = status_prd.decode_u16(TEMPERATURE_UKP_1 + 2 * i_temp)
var tmp_1: int = round(TEMP_CONSTANTS['min_temp'] + (TEMP_CONSTANTS['max_code'] - temperature_ukp_1) * TEMP_CONSTANTS['temp_factor'] + TEMP_CONSTANTS['offset'])
power_amplifier[i_temp].value0 = tmp_1
if tmp_1 > 70:
_control_results["temperature"] = false
var ukp2_online = (status_prd[0] >> 3) & 1
if ukp2_online:
@@ -149,6 +171,8 @@ func check_temperature_um(status_prd: PackedByteArray) -> void:
var temperature_ukp_2: int = status_prd.decode_u16(TEMPERATURE_UKP_2 + 2 * i_temp)
var tmp_2: int = round(TEMP_CONSTANTS['min_temp'] + (TEMP_CONSTANTS['max_code'] - temperature_ukp_2) * TEMP_CONSTANTS['temp_factor'] + TEMP_CONSTANTS['offset'])
power_amplifier[i_temp+6].value0 = tmp_2
if tmp_2 > 70:
_control_results["temperature"] = false
## Проверка ДКМ
@@ -158,9 +182,11 @@ func check_dkm(status_prd: PackedByteArray, bit_dkm: int) -> void:
if bit_dkm == bit_dkm_3:
$dou4_A5.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR
$kasseta_FS_VD/ref_A6.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR
_control_results["dkm"] = status_dkm
elif bit_dkm == bit_dkm_4:
$dou5_A6.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR
$kasseta_FS_VD/ref_A2.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR
_control_results["dkm"] = status_dkm
# Обрабатывает данные ЭМС и обновляет UI панели
@@ -179,7 +205,6 @@ func _process_ems_data(status: PackedByteArray) -> void:
func _process_ukp_power(status: PackedByteArray) -> void:
#var in_blank: int = status.decode_u16(IN_BLANK_PRD)
## Мощность УМ от УКП 1
if flag_control:
check_dkm(status, bit_dkm_3)
@@ -232,6 +257,12 @@ func _process_ukp_power(status: PackedByteArray) -> void:
count_packet_2 += 1
_control_results["power_ukp"] = true
for amp in power_amplifier:
if amp.state != STATE_VAL.GOOD:
_control_results["power_ukp"] = false
break
func _on_control_fs(mode: bool) -> void:
var interfer_name: String
@@ -250,6 +281,7 @@ func _on_control_fs(mode: bool) -> void:
func on_stop_control() -> void:
_on_control_fs(false)
on_control_result()
func on_fs_update_state(packet_type_7: Dictionary) -> void:
@@ -258,21 +290,29 @@ func on_fs_update_state(packet_type_7: Dictionary) -> void:
for fs in packet_type_7:
if fs == 12 and last_part == '':
$kasseta_FS_VD/ref_A3.state = STATE_VAL.GOOD if packet_type_7[fs].isg == 1 else STATE_VAL.ERROR if packet_type_7[fs].isg == 0 else STATE_VAL.NONE
_control_results["fs_ems"] = true if packet_type_7[fs].isg == 1 else false
if fs == 13 and last_part == '':
$kasseta_FS_VD/ref_A3.state = STATE_VAL.GOOD if packet_type_7[fs].isg == 1 else STATE_VAL.ERROR if packet_type_7[fs].isg == 0 else STATE_VAL.NONE
_control_results["fs_ems"] = true if packet_type_7[fs].isg == 1 else false
if fs == 14 and last_part == '':
$kasseta_FS_VD/ref_A3.state = STATE_VAL.GOOD if packet_type_7[fs].isg == 1 else STATE_VAL.ERROR if packet_type_7[fs].isg == 0 else STATE_VAL.NONE
_control_results["fs_ems"] = true if packet_type_7[fs].isg == 1 else false
if fs == 15 and last_part == '':
$kasseta_FS_VD/ref_A3.state = STATE_VAL.GOOD if packet_type_7[fs].isg == 1 else STATE_VAL.ERROR if packet_type_7[fs].isg == 0 else STATE_VAL.NONE
_control_results["fs_ems"] = true if packet_type_7[fs].isg == 1 else false
if fs == 16 and last_part == '':
$kasseta_FS_VD/ref_A4.state = STATE_VAL.GOOD if packet_type_7[fs].isg == 1 else STATE_VAL.ERROR if packet_type_7[fs].isg == 0 else STATE_VAL.NONE
_control_results["fs_ems"] = true if packet_type_7[fs].isg == 1 else false
if fs == 17 and last_part == '':
$kasseta_FS_VD/ref_A4.state = STATE_VAL.GOOD if packet_type_7[fs].isg == 1 else STATE_VAL.ERROR if packet_type_7[fs].isg == 0 else STATE_VAL.NONE
_control_results["fs_ems"] = true if packet_type_7[fs].isg == 1 else false
if fs == 18 and last_part == '':
$kasseta_FS_VD/ref_A4.state = STATE_VAL.GOOD if packet_type_7[fs].isg == 1 else STATE_VAL.ERROR if packet_type_7[fs].isg == 0 else STATE_VAL.NONE
_control_results["fs_ems"] = true if packet_type_7[fs].isg == 1 else false
if fs == 19 and last_part == '':
$kasseta_FS_VD/ref_A4.state = STATE_VAL.GOOD if packet_type_7[fs].isg == 1 else STATE_VAL.ERROR if packet_type_7[fs].isg == 0 else STATE_VAL.NONE
_control_results["fs_ems"] = true if packet_type_7[fs].isg == 1 else false
func on_ug_setting() -> void:
@@ -295,3 +335,21 @@ func on_ug_setting() -> void:
func on_mode_changed(in_tree: bool) -> void:
if not in_tree:
queue_free()
func on_control_result() -> void:
var result: bool = true
for key in _control_results:
if not _control_results[key]:
result = false
break
var parts = currecnt_unit.split('-')
var last_part = parts[-1] # Прибор
if result:
$control_result.text = 'Прибор ПРД-%s исправен' % last_part
$control_result.add_theme_color_override("font_color", Color.AQUAMARINE)
else:
$control_result.text = 'Прибор ПРД-%s неисправен' % last_part
$control_result.add_theme_color_override("font_color", Color.CRIMSON)

View File

@@ -332,7 +332,7 @@ func update_fs_state(ecms):
if um_data_array.size():
prd_module.set_ug_state = false
prd_module.set_um(um_data_array)
## Проверяет ниличие директории, если их нет, создаёт