рефактор машины состояний контроля
This commit is contained in:
@@ -68,7 +68,8 @@ class TestPRD extends Node:
|
||||
var control_timer: Timer = Timer.new()
|
||||
var ems_6666_timer: Timer = Timer.new()
|
||||
signal control_is_over(control_results, power_result)
|
||||
|
||||
var flag_fs_turn_on: bool = false
|
||||
var flag_fs_turn_off: bool = false
|
||||
|
||||
## Инициализация аргуметнов
|
||||
func _init(init_data: Dictionary) -> void:
|
||||
@@ -118,9 +119,15 @@ class TestPRD extends Node:
|
||||
if fs_key.is_empty():
|
||||
return
|
||||
|
||||
var fs_result := {fs_key: 0}
|
||||
var fs_result := {fs_key: 0, 'fs_modulation': 'none'}
|
||||
fs_result = on_fs_state(packet_type_7, fs_mapping, fs_result)
|
||||
control_results[fs_key] = fs_result[fs_key]
|
||||
if fs_result.fs_modulation and not flag_fs_turn_on:
|
||||
print_debug('Помеха "Включено"')
|
||||
flag_fs_turn_on = true
|
||||
if not fs_result.fs_modulation and not flag_fs_turn_off:
|
||||
print('Помеха "Откючено"')
|
||||
flag_fs_turn_off = true
|
||||
|
||||
|
||||
##
|
||||
@@ -132,7 +139,7 @@ class TestPRD extends Node:
|
||||
_handle_fs_turn_on_state()
|
||||
state = STATE_MASHINE.FS_WORK
|
||||
STATE_MASHINE.FS_WORK:
|
||||
if not flag_timer_started:
|
||||
if flag_fs_turn_on:
|
||||
_handle_fs_work_state()
|
||||
STATE_MASHINE.CHEK_KASSETA_Y5:
|
||||
if block_kasseta_y5_config['yau07']:
|
||||
@@ -146,7 +153,7 @@ class TestPRD extends Node:
|
||||
#ems_6666_timer.start()
|
||||
#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.FALSE):
|
||||
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])
|
||||
state = STATE_MASHINE.UG_SET_RAY
|
||||
STATE_MASHINE.UG_SET_RAY:
|
||||
@@ -196,6 +203,7 @@ class TestPRD extends Node:
|
||||
state = STATE_MASHINE.FS_TURN_OFF
|
||||
STATE_MASHINE.FS_TURN_OFF:
|
||||
_handle_fs_turn_off_state()
|
||||
state = STATE_MASHINE.STOP_CONTROL
|
||||
STATE_MASHINE.STOP_CONTROL:
|
||||
_handle_stop_control_state()
|
||||
|
||||
@@ -203,8 +211,8 @@ class TestPRD extends Node:
|
||||
func _handle_init_state() -> void:
|
||||
control_label.text = 'Выполняется инициализация ФС-%s' % current_litera
|
||||
if current_litera in [1, 2, 3, 4, 5, 6, 7]:
|
||||
state = STATE_MASHINE.FS_TURN_ON
|
||||
#state = STATE_MASHINE.STOP_CONTROL
|
||||
if flag_fs_turn_off:
|
||||
state = STATE_MASHINE.FS_TURN_ON
|
||||
else:
|
||||
control_results = on_control_result(block_ip_config, control_results)
|
||||
var send_power_pack = prep_power(power_result, self_name)
|
||||
@@ -221,8 +229,6 @@ class TestPRD extends Node:
|
||||
|
||||
func _handle_fs_work_state() -> void:
|
||||
control_label.text = 'Выполняется проверка ФС-%s' % current_litera
|
||||
if not module_prd.unit_yau07.online:
|
||||
return
|
||||
if (current_litera == 2 and control_results.fs_2) or \
|
||||
(current_litera == 3 and control_results.fs_3) or \
|
||||
(current_litera == 4 and control_results.fs_4) or \
|
||||
@@ -268,8 +274,8 @@ class TestPRD extends Node:
|
||||
|
||||
func _handle_fs_turn_off_state() -> void:
|
||||
control_label.text = 'Выполняется отключение ФС-%s' % current_litera
|
||||
flag_fs_turn_off = false
|
||||
manage_fs(false, self_name, pribor_config, fs_parameters, current_litera, constants.POWER_UM)
|
||||
state = STATE_MASHINE.STOP_CONTROL
|
||||
|
||||
|
||||
func _handle_stop_control_state() -> void:
|
||||
@@ -364,6 +370,7 @@ class TestPRD extends Node:
|
||||
|
||||
|
||||
func on_stop_control() -> void:
|
||||
_handle_fs_turn_off_state()
|
||||
state = STATE_MASHINE.FS_TURN_OFF
|
||||
|
||||
|
||||
@@ -374,7 +381,6 @@ class TestPRD extends Node:
|
||||
if not ip_config[block][1]:
|
||||
all_blocks_ip_ok = false
|
||||
ctrl_results['block_ip'] = all_blocks_ip_ok
|
||||
|
||||
return ctrl_results
|
||||
|
||||
|
||||
@@ -522,6 +528,7 @@ class TestPRD extends Node:
|
||||
var rule: Dictionary = FS_RULES[rule_key]
|
||||
if _should_apply_rule(fs_num, rule, updated_results):
|
||||
updated_results[rule.key] = fs_data.isg
|
||||
updated_results['fs_modulation'] = fs_data.msvk.size() > 0
|
||||
break
|
||||
return updated_results
|
||||
|
||||
@@ -611,7 +618,7 @@ class TestPRD extends Node:
|
||||
if pribor == '1к' or pribor == '2к' or pribor == '3к' or pribor == '4к':
|
||||
dou = 'dou_6' if litera == 6 else 'dou_7'
|
||||
elif pribor == '1в' or pribor == '2в' or pribor == '3в' or pribor == '4в':
|
||||
dou = 'dou_4' if litera == 5 else 'dou_5'
|
||||
dou = 'dou_4' if litera == 4 else 'dou_5'
|
||||
|
||||
var ray_dic: Dictionary = power_dic[litera]
|
||||
if ray_dic[RAY_m5].size() == 0 or \
|
||||
@@ -626,7 +633,7 @@ class TestPRD extends Node:
|
||||
for i_pow_arr in ray_dic.values():
|
||||
for i_pow in i_pow_arr.size():
|
||||
if i_pow_arr[i_pow] < cnst.POWER_THRESHOLD:
|
||||
print_debug('dou_%s: false' % litera)
|
||||
#print_debug('dou_%s: false' % litera)
|
||||
all_dou_ok = false
|
||||
|
||||
control_dic[dou] = all_dou_ok
|
||||
|
||||
Reference in New Issue
Block a user