Доработка выхода из контроля
This commit is contained in:
@@ -56,8 +56,6 @@ class TestPRD extends Node:
|
||||
var pribor_config: Dictionary
|
||||
var fs_parameters: Dictionary
|
||||
var block_ip_config: Dictionary
|
||||
var block_dkm_config: Dictionary
|
||||
var block_fs_config: Dictionary
|
||||
var block_kasseta_y5_config: Dictionary
|
||||
var control_results: Dictionary
|
||||
var self_name: String
|
||||
@@ -83,8 +81,6 @@ class TestPRD extends Node:
|
||||
pribor_config = init_data['prd_config']
|
||||
fs_parameters = init_data['fs_params']
|
||||
block_ip_config = init_data['block_ip_prd_config']
|
||||
block_dkm_config = init_data['block_dkm_prd_config']
|
||||
block_fs_config = init_data['block_fs_prd_config']
|
||||
block_kasseta_y5_config = init_data['block_kasseta_y5_prd_config']
|
||||
control_results = init_data['control_results']
|
||||
current_litera = init_data['current_litera']
|
||||
@@ -125,7 +121,7 @@ class TestPRD extends Node:
|
||||
|
||||
var fs_result := {fs_key: STATE_VAL.NONE}
|
||||
fs_result = on_fs_state(packet_type_7, fs_mapping, fs_result)
|
||||
block_fs_config[fs_key] = fs_result[fs_key]
|
||||
control_results[fs_key] = fs_result[fs_key]
|
||||
|
||||
|
||||
##
|
||||
@@ -208,10 +204,10 @@ 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
|
||||
state = STATE_MASHINE.FS_TURN_ON
|
||||
#state = STATE_MASHINE.STOP_CONTROL
|
||||
else:
|
||||
control_results = on_control_result(block_ip_config, block_dkm_config, block_fs_config, control_results)
|
||||
control_results = on_control_result(block_ip_config, control_results)
|
||||
var send_power_pack = prep_power(power_result, self_name)
|
||||
|
||||
emit_signal('control_is_over', control_results, send_power_pack)
|
||||
@@ -229,13 +225,13 @@ class TestPRD extends Node:
|
||||
control_label.text = 'Выполняется проверка ФС-%s' % current_litera
|
||||
if not module_prd.unit_yau07.online:
|
||||
return
|
||||
if (current_litera == 2 and block_fs_config.fs_2) or \
|
||||
(current_litera == 3 and block_fs_config.fs_3) or \
|
||||
(current_litera == 4 and block_fs_config.fs_4) or \
|
||||
(current_litera == 5 and block_fs_config.fs_5) or \
|
||||
(current_litera == 6 and block_fs_config.fs_6) or \
|
||||
(current_litera == 7 and block_fs_config.fs_7) or \
|
||||
(current_litera == 1 and block_fs_config.fs_1):
|
||||
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 \
|
||||
(current_litera == 5 and control_results.fs_5) or \
|
||||
(current_litera == 6 and control_results.fs_6) or \
|
||||
(current_litera == 7 and control_results.fs_7) or \
|
||||
(current_litera == 1 and control_results.fs_1):
|
||||
state = STATE_MASHINE.CHEK_KASSETA_Y5
|
||||
|
||||
|
||||
@@ -323,10 +319,23 @@ class TestPRD extends Node:
|
||||
|
||||
|
||||
func _process_dkm_status(status: PackedByteArray) -> void:
|
||||
if not block_fs_config.has(_get_current_fs_key()):
|
||||
if not control_results.has(_get_current_fs_key()):
|
||||
return
|
||||
var dkm_bit = _get_dkm_bit_for_current_fs(current_litera, constants)
|
||||
block_dkm_config = check_dkm(status, dkm_bit, block_dkm_config)
|
||||
if dkm_bit == 0:
|
||||
control_results['dkm_1'] = check_dkm(status, dkm_bit)
|
||||
elif dkm_bit == 1:
|
||||
control_results['dkm_2'] = check_dkm(status, dkm_bit)
|
||||
elif dkm_bit == 2:
|
||||
control_results['dkm_3'] = check_dkm(status, dkm_bit)
|
||||
elif dkm_bit == 3:
|
||||
control_results['dkm_4'] = check_dkm(status, dkm_bit)
|
||||
elif dkm_bit == 4:
|
||||
control_results['dkm_5'] = check_dkm(status, dkm_bit)
|
||||
elif dkm_bit == 5:
|
||||
control_results['dkm_6'] = check_dkm(status, dkm_bit)
|
||||
elif dkm_bit == 6:
|
||||
control_results['dkm_7'] = check_dkm(status, dkm_bit)
|
||||
|
||||
|
||||
func _get_current_fs_key() -> String:
|
||||
@@ -360,25 +369,14 @@ class TestPRD extends Node:
|
||||
state = STATE_MASHINE.FS_TURN_OFF
|
||||
|
||||
|
||||
static func on_control_result(ip_config: Dictionary, dkm_config: Dictionary, fs_config: Dictionary, ctrl_results: Dictionary) -> Dictionary:
|
||||
static func on_control_result(ip_config: Dictionary, ctrl_results: Dictionary) -> Dictionary:
|
||||
var all_blocks_ip_ok = true
|
||||
var all_blocks_dkm_ok = true
|
||||
var all_blocks_fs_ok = true
|
||||
|
||||
for block in ip_config:
|
||||
if not ip_config[block][1]:
|
||||
all_blocks_ip_ok = false
|
||||
ctrl_results['block_ip'] = all_blocks_ip_ok
|
||||
|
||||
for block in dkm_config:
|
||||
if not dkm_config[block]:
|
||||
all_blocks_dkm_ok = false
|
||||
ctrl_results['dkm'] = all_blocks_dkm_ok
|
||||
|
||||
for block in fs_config:
|
||||
if not fs_config[block]:
|
||||
all_blocks_fs_ok = false
|
||||
ctrl_results['fs'] = all_blocks_fs_ok
|
||||
return ctrl_results
|
||||
|
||||
|
||||
@@ -481,24 +479,10 @@ class TestPRD extends Node:
|
||||
|
||||
|
||||
## Проверка ДКМ
|
||||
static func check_dkm(status_prd: PackedByteArray, bit_dkm: int, dkm_result: Dictionary) -> Dictionary:
|
||||
static func check_dkm(status_prd: PackedByteArray, bit_dkm: int) -> bool:
|
||||
var dkm: int = 28
|
||||
var status_dkm = status_prd[dkm] >> bit_dkm & 1
|
||||
if bit_dkm == 0:
|
||||
dkm_result['dkm_1'] = status_dkm
|
||||
elif bit_dkm == 1:
|
||||
dkm_result['dkm_2'] = status_dkm
|
||||
elif bit_dkm == 2:
|
||||
dkm_result['dkm_3'] = status_dkm
|
||||
elif bit_dkm == 3:
|
||||
dkm_result['dkm_4'] = status_dkm
|
||||
elif bit_dkm == 4:
|
||||
dkm_result['dkm_5'] = status_dkm
|
||||
elif bit_dkm == 5:
|
||||
dkm_result['dkm_6'] = status_dkm
|
||||
elif bit_dkm == 6:
|
||||
dkm_result['dkm_7'] = status_dkm
|
||||
return dkm_result
|
||||
var status_dkm: bool = status_prd[dkm] >> bit_dkm & 1
|
||||
return status_dkm
|
||||
|
||||
|
||||
##
|
||||
|
||||
Reference in New Issue
Block a user