Доработка. Обобщенный признак исправности. Добавление таймера для записи в базовый адрес ячейки ЭМС-Г в контроле прд. Наблюдение сигнал излучения от модуля ФС

Доработка. [PATCH] отладка контроля, изменение индикации режима Тренаж
This commit is contained in:
2025-10-15 14:06:16 +03:00
committed by sasha80
parent 2a97865a6d
commit 25d39cb560
11 changed files with 174 additions and 91 deletions

View File

@@ -74,7 +74,7 @@ class TestPRD extends Node:
var self_name: String
var state: int = STATE_MASHINE.INIT
var current_litera: int
var flag_timer_started: bool = false
var flag_write_isa: bool = false
var flag_fs_status_ok: bool = false
var flag_si_fs_input: bool = false
var flag_si_fs_output: bool = false
@@ -169,24 +169,25 @@ class TestPRD extends Node:
state = STATE_MASHINE.FS_WORK
STATE_MASHINE.FS_WORK:
if ecms.size() and flag_fs_status_ok:
ems_6666_timer.start()
_handle_fs_work_state()
STATE_MASHINE.CHEK_KASSETA_Y5:
if block_kasseta_y5_config['yau07']:
state = STATE_MASHINE.WRITE_ISA
STATE_MASHINE.WRITE_ISA:
_handle_ug_set_state(0x6)
await get_tree().create_timer(1.5).timeout
state = STATE_MASHINE.READ_ISA
if not flag_write_isa:
_handle_ug_set_state(0x6)
state = STATE_MASHINE.READ_ISA
STATE_MASHINE.READ_ISA:
if (unit_prd.cmd_state == unit_prd.CmdState.DONE) or (unit_prd.cmd_state == unit_prd.CmdState.FAIL):
_handle_read_isa(module_prd, unit_prd, [constants.ADDR_UG_LITERA_1, constants.ADDR_UG_LITERA_2, constants.ADDR_UG_LITERA_3])
flag_write_isa = false
state = STATE_MASHINE.UG_SET_RAY
STATE_MASHINE.UG_SET_RAY:
var addr: int = constants.ADDR_UG_LITERA_1
if current_litera == 3 or current_litera == 5 or current_litera == 7:
addr = constants.ADDR_UG_LITERA_2
if unit_prd.isa_ports.has(addr) and (unit_prd.cmd_state == unit_prd.CmdState.DONE):
control_timer.stop()
if unit_prd.isa_ports[addr] & 0x07 == 0:
state = STATE_MASHINE.UG_SET_RAY_1
elif unit_prd.isa_ports[addr] & 0x07 == 1:
@@ -205,28 +206,36 @@ class TestPRD extends Node:
state = STATE_MASHINE.UG_SET_RAY_0
STATE_MASHINE.UG_SET_RAY_0:
_handle_ug_set_state(0x0)
await get_tree().create_timer(0.5).timeout
state = STATE_MASHINE.READ_ISA
if flag_si_fs_input and not flag_write_isa:
control_timer.stop()
_handle_ug_set_state(0x0)
await get_tree().create_timer(0.5).timeout
state = STATE_MASHINE.READ_ISA
STATE_MASHINE.UG_SET_RAY_1:
_handle_ug_set_state(0x1)
state = STATE_MASHINE.READ_ISA
if not flag_write_isa:
_handle_ug_set_state(0x1)
state = STATE_MASHINE.READ_ISA
STATE_MASHINE.UG_SET_RAY_2:
_handle_ug_set_state(0x2)
state = STATE_MASHINE.READ_ISA
if not flag_write_isa:
_handle_ug_set_state(0x2)
state = STATE_MASHINE.READ_ISA
STATE_MASHINE.UG_SET_RAY_3:
_handle_ug_set_state(0x3)
state = STATE_MASHINE.READ_ISA
if not flag_write_isa:
_handle_ug_set_state(0x3)
state = STATE_MASHINE.READ_ISA
STATE_MASHINE.UG_SET_RAY_4:
_handle_ug_set_state(0x4)
state = STATE_MASHINE.READ_ISA
if not flag_write_isa:
_handle_ug_set_state(0x4)
state = STATE_MASHINE.READ_ISA
STATE_MASHINE.UG_SET_RAY_5:
_handle_ug_set_state(0x5)
state = STATE_MASHINE.READ_ISA
if not flag_write_isa:
_handle_ug_set_state(0x5)
state = STATE_MASHINE.READ_ISA
STATE_MASHINE.IN_EMS_STOP:
ems_6666_timer.stop()
state = STATE_MASHINE.FS_TURN_OFF
STATE_MASHINE.FS_TURN_OFF:
ems_6666_timer.stop()
_handle_fs_turn_off_state()
state = STATE_MASHINE.STOP_CONTROL
STATE_MASHINE.STOP_CONTROL:
@@ -289,7 +298,7 @@ class TestPRD extends Node:
dic_att.RAY_DOU_NUM,
log_text
]
on_ug_setting(module_prd, unit_prd, dic_att)
flag_write_isa = on_ug_setting(module_prd, unit_prd, dic_att)
func _on_ems_6666_timer() -> void:
@@ -304,7 +313,6 @@ class TestPRD extends Node:
func _handle_stop_control_state() -> void:
control_label.text = 'Выполняется завершение проверки ФС-%s' % current_litera
flag_timer_started = false
_advance_to_next_fs()
state = STATE_MASHINE.INIT
@@ -348,7 +356,7 @@ class TestPRD extends Node:
add_child(ems_6666_timer)
ems_6666_timer.timeout.connect(_on_ems_6666_timer)
ems_6666_timer.wait_time = 1.5
ems_6666_timer.wait_time = 1.0
func _process_dkm_status(status: PackedByteArray) -> void:
@@ -422,16 +430,15 @@ class TestPRD extends Node:
## Установка угла и аттенюации для УМ
static func on_ug_setting(prd_module: Object, prd_unit: Object, settings_ug: Dictionary) -> void:
static func on_ug_setting(prd_module: Object, prd_unit: Object, settings_ug: Dictionary) -> bool:
var result_1 = ((settings_ug.ATT_UM_1 & 0x07) << 3) | (settings_ug.RAY_DOU_NUM & 0x07)
var result_2 = ((settings_ug.ATT_UM_2 & 0x07) << 3) | (settings_ug.RAY_DOU_NUM & 0x07)
prd_module.cmd_array.append([prd_unit.CmdCode.WRITE_ISA, [ settings_ug.BASE_EMS_G, 6666,
settings_ug.ADDR_UG_LITERA_1, result_1,
prd_module.cmd_array.append([prd_unit.CmdCode.WRITE_ISA, [ settings_ug.ADDR_UG_LITERA_1, result_1,
settings_ug.ADDR_UG_LITERA_2, result_2,
settings_ug.ADDR_UG_LITERA_3, settings_ug.ATT_UM_3,
]
])
return true
static func _handle_read_isa(prd_module: Object, prd_unit: Object, read_isa_ports: Array) -> void: