Доработка. Обобщенный признак исправности. Добавление таймера для записи в базовый адрес ячейки ЭМС-Г в контроле прд. Наблюдение сигнал излучения от модуля ФС
Доработка. [PATCH] отладка контроля, изменение индикации режима Тренаж
This commit is contained in:
@@ -158,7 +158,9 @@ class PRD:
|
||||
var state = PrdState.WORK
|
||||
var cmd_array: Array ## Очередь команд
|
||||
var ug_online: bool = false ## Состояние ячейки УГ
|
||||
var serviceability: bool = false
|
||||
var set_ug_state: bool = true ## Необходимо ли записать в УГ настройки
|
||||
signal update_serviceability()
|
||||
|
||||
func _init(u_name, u_yau07):
|
||||
prd_name = u_name
|
||||
@@ -197,6 +199,7 @@ class PRD:
|
||||
|
||||
|
||||
func on_line_changed(unit_ems):
|
||||
emit_signal('update_serviceability')
|
||||
if not unit_ems.online:
|
||||
yemsg_board.ems_load = yemsg_board.LoadState.NOT_DEFINED
|
||||
yemsg_board.set_wait()
|
||||
@@ -223,6 +226,14 @@ class PRD:
|
||||
ug_online = (unit_yau07.status[0] >> 1) & 1
|
||||
if not ug_online:
|
||||
set_ug_state = true
|
||||
var ukp_1_online = (unit_yau07.status[0] >> 2) & 1
|
||||
var ukp_2_online = (unit_yau07.status[0] >> 3) & 1
|
||||
var ems_g_online = (unit_yau07.status[0] & 1) & 1
|
||||
var check_serviceability = ug_online and ukp_1_online and ukp_2_online and ems_g_online
|
||||
if serviceability != check_serviceability:
|
||||
serviceability = check_serviceability
|
||||
emit_signal('update_serviceability')
|
||||
|
||||
|
||||
func execute_cmd():
|
||||
if not len(cmd_array): return
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -195,4 +195,9 @@ signal update_scale_map(new_scale)
|
||||
signal update_coordinates_map(new_coordinates)
|
||||
|
||||
|
||||
## Вызывается при изменении исправности прибора УФ.[br]
|
||||
## [param uf_serviceaability] - обновленное значение состояния исправности ([b]true[/b]
|
||||
signal update_uf_serviceability(uf_serviceaability: bool)
|
||||
|
||||
|
||||
signal tool_tip(new_ctrl_pos)
|
||||
|
||||
Reference in New Issue
Block a user