рефактор
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
@tool
|
||||
extends 'res://scenes/контроль/прибор.gd'
|
||||
|
||||
const Constants: Dictionary = {
|
||||
const constants_k: Dictionary = {
|
||||
'IN_BLANK_PRD': 1,
|
||||
'OUT_BLANK_PRD': 13,
|
||||
'CI_1_OT_FS': 8,
|
||||
@@ -27,10 +27,10 @@ const Constants: Dictionary = {
|
||||
'TEMP_THRESHOLD': 40,
|
||||
'POWER_THRESHOLD': 40,
|
||||
'TIMER_DELAY': 5.0,
|
||||
'dou_ray_nuber': 0x3,
|
||||
'attenutor_um_1': 0x7,
|
||||
'attenutor_um_2': 0x7,
|
||||
'attenutor_um_3': 0x0,
|
||||
'RAY_DOU_NUM': 0x3,
|
||||
'ATT_UM_1': 0x0,
|
||||
'ATT_UM_6': 0x7,
|
||||
'ATT_UM_7': 0x7,
|
||||
'POWER_UM': 75,
|
||||
}
|
||||
# Конфигурация параметров для каждого прибора
|
||||
@@ -46,18 +46,8 @@ const FS_PARAMS := {
|
||||
6: {'freq': 2450.0, 'width': 110.0},
|
||||
7: {'freq': 4750.0, 'width': 110.0}
|
||||
}
|
||||
|
||||
enum STATE_VAL { NONE = 0, GOOD = 1, ERROR = 2 }
|
||||
enum STATE_MASHINE {
|
||||
INIT,
|
||||
FS_TURN_ON,
|
||||
FS_WORK,
|
||||
UG_SET,
|
||||
UM_RUN,
|
||||
FS_TURN_OFF,
|
||||
STOP_CONTROL,
|
||||
AWAIT
|
||||
}
|
||||
|
||||
var block_ip_config_k := {
|
||||
'maa2000_1': [0, false],
|
||||
'maa2000_2': [1, false],
|
||||
@@ -67,29 +57,19 @@ var block_ip_config_k := {
|
||||
'ip9_50_3': [5, false],
|
||||
'ip12_50_2': [6, false],
|
||||
}
|
||||
var fs_mapping_k: Dictionary = {}
|
||||
|
||||
# Основные переменные
|
||||
var current_fs: int = 1
|
||||
var state: int = STATE_MASHINE.INIT
|
||||
var flag_check_dkm: bool = false
|
||||
var flag_timer_started: bool = false
|
||||
|
||||
var count_packet_1:int = 0
|
||||
var count_packet_6:int = 0
|
||||
var count_packet_7:int = 0
|
||||
var power_array_1: Array = []
|
||||
var power_array_2: Array = []
|
||||
var ug_work_1: int = 0
|
||||
var ug_work_2: int = 0
|
||||
var ug_work_3: int = 0
|
||||
# Флаги и таймеры
|
||||
var control_timer: Timer = Timer.new()
|
||||
var mashine_timer: Timer = Timer.new()
|
||||
var pribor: String
|
||||
var prd_module: Object
|
||||
var unit_prd: Object
|
||||
var prd_k_module: Object
|
||||
var unit_prd_k: Object
|
||||
# Результаты контроля
|
||||
var control_results: Dictionary = {
|
||||
var control_results_k: Dictionary = {
|
||||
'block_ip': false, # Проверка касет П1 и ИП МА2000
|
||||
'temperature': true, # Проверка температур УМ
|
||||
'dkm_1': false, # Проверка ДКМ 1
|
||||
@@ -101,7 +81,7 @@ var control_results: Dictionary = {
|
||||
'fs_7': false, # Проверка ФС 7
|
||||
}
|
||||
|
||||
static var node_common_func = load('res://scripts/pribor-prd.gd')
|
||||
#static var node_common_func = load('res://scripts/pribor-prd.gd')
|
||||
var test = preload('res://scripts/pribor-prd.gd')
|
||||
var control_prd
|
||||
|
||||
@@ -122,18 +102,17 @@ func on_state_mashine() -> void:
|
||||
var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply')
|
||||
for power_supply in node_ip_power_arr:
|
||||
var meta_ip = power_supply.get_meta('ip')
|
||||
if block_ip_config_k.has(meta_ip):
|
||||
if block_ip_config_k.has(meta_ip) and control_prd.ug_online:
|
||||
power_supply.state = STATE_VAL.GOOD if block_ip_config_k[meta_ip][1] else STATE_VAL.ERROR
|
||||
|
||||
control_results = control_prd.control_results
|
||||
if control_prd.current_fs == 1:
|
||||
$kasseta_fs_kd/ref_A2.state = STATE_VAL.GOOD if control_results.dkm_1 else STATE_VAL.ERROR
|
||||
elif control_prd.current_fs == 6:
|
||||
$kasseta_fs_kd/ref_A4.state = STATE_VAL.GOOD if control_results.dkm_6 else STATE_VAL.ERROR
|
||||
elif control_prd.current_fs == 7:
|
||||
$kasseta_fs_kd/ref_A7.state = STATE_VAL.GOOD if control_results.dkm_7 else STATE_VAL.ERROR
|
||||
control_results_k = control_prd.control_results
|
||||
if control_prd.current_fs == 1 and control_results_k.fs_1:
|
||||
$kasseta_fs_kd/ref_A2.state = STATE_VAL.GOOD if control_results_k.dkm_1 else STATE_VAL.ERROR
|
||||
elif control_prd.current_fs == 6 and control_results_k.fs_6:
|
||||
$kasseta_fs_kd/ref_A4.state = STATE_VAL.GOOD if control_results_k.dkm_6 else STATE_VAL.ERROR
|
||||
elif control_prd.current_fs == 7 and control_results_k.fs_7:
|
||||
$kasseta_fs_kd/ref_A7.state = STATE_VAL.GOOD if control_results_k.dkm_7 else STATE_VAL.ERROR
|
||||
|
||||
print(control_prd.power_result)
|
||||
if not control_prd.power_result['ray_25_1'] or not control_prd.power_result['ray_25_6'] or not control_prd.power_result['ray_25_7']:
|
||||
return
|
||||
|
||||
@@ -152,14 +131,25 @@ func on_state_mashine() -> void:
|
||||
|
||||
func initialize_connections() -> void:
|
||||
var unit_name = get_meta('unit_name')[0]
|
||||
prd_module = prd.prd_dict[unit_name]
|
||||
unit_prd = prd_module.unit_yau07
|
||||
prd_k_module = prd.prd_dict[unit_name]
|
||||
unit_prd_k = prd_k_module.unit_yau07
|
||||
|
||||
#signaller.conn(signaller.fs_update_state, Callable(self, 'on_fs_update_state').bind(fs_mapping_k))
|
||||
unit_prd.connect('line_changed', Callable(self, 'on_line_changed'))
|
||||
var array_power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
|
||||
var fs_node_array: Array = get_tree().get_nodes_in_group('fs_group')
|
||||
control_prd = test.TestPRD.new($control_result, unit_prd, prd_module, Constants, PRIBOR_CONFIG, FS_PARAMS, block_ip_config_k, array_power_amplifier, control_results, fs_node_array)
|
||||
unit_prd_k.connect('line_changed', Callable(self, 'on_line_changed'))
|
||||
var power_amplifiers: Array = get_tree().get_nodes_in_group('power_amplifier')
|
||||
var fs_nodes: Array = get_tree().get_nodes_in_group('fs_group')
|
||||
var init_data: Dictionary = {
|
||||
'control_label': $control_result,
|
||||
'power_amplifiers': power_amplifiers,
|
||||
'fs_nodes': fs_nodes,
|
||||
'unit_prd': unit_prd_k,
|
||||
'module_prd' : prd_k_module,
|
||||
'constants': constants_k,
|
||||
'prd_config': PRIBOR_CONFIG,
|
||||
'fs_params': FS_PARAMS,
|
||||
'block_ip_prd_config': block_ip_config_k,
|
||||
'control_results': control_results_k,
|
||||
}
|
||||
control_prd = test.TestPRD.new(init_data)
|
||||
add_child(control_prd)
|
||||
|
||||
|
||||
@@ -187,7 +177,7 @@ func _enter_tree() -> void:
|
||||
|
||||
|
||||
func _exit_tree() -> void:
|
||||
prd_module.cmd_array.append([unit_prd.CmdCode.WRITE_ISA, [Constants.ADDR_UG_LITERA_1, ug_work_1, Constants.ADDR_UG_LITERA_2, ug_work_2, Constants.ADDR_UG_LITERA_3, ug_work_3]])
|
||||
prd_k_module.cmd_array.append([unit_prd_k.CmdCode.WRITE_ISA, [constants_k.ADDR_UG_LITERA_1, ug_work_1, constants_k.ADDR_UG_LITERA_2, ug_work_2, constants_k.ADDR_UG_LITERA_3, ug_work_3]])
|
||||
|
||||
|
||||
func on_line_changed(unit_pribor: Object) -> void:
|
||||
@@ -207,7 +197,7 @@ func on_control_result() -> void:
|
||||
if not block_ip_config_k[block][1]: # Если хоть один блок false
|
||||
all_blocks_ok = false
|
||||
break
|
||||
control_results['block_ip'] = all_blocks_ok
|
||||
control_results_k['block_ip'] = all_blocks_ok
|
||||
|
||||
# Словарь соответствия ключей ошибок и нод
|
||||
var error_nodes := {
|
||||
@@ -217,18 +207,18 @@ func on_control_result() -> void:
|
||||
}
|
||||
# Проверка результатов и установка состояний
|
||||
var result: bool = true
|
||||
for key in control_results:
|
||||
if not control_results[key]:
|
||||
for key in control_results_k:
|
||||
if not control_results_k[key]:
|
||||
result = false
|
||||
if error_nodes.has(key):
|
||||
error_nodes[key].state = STATE_VAL.ERROR
|
||||
|
||||
# Установка текста и цвета результата
|
||||
var status_text := 'неисправен'
|
||||
#var status_text := 'неисправен'
|
||||
var status_color := Color.RED
|
||||
if result:
|
||||
status_text = 'исправен'
|
||||
status_color = Color.GREEN
|
||||
#if result:
|
||||
#status_text = 'исправен'
|
||||
#status_color = Color.GREEN
|
||||
|
||||
$control_result.text = 'Прибор ПРД-%s %s' % [pribor, status_text]
|
||||
#$control_result.text = 'Прибор ПРД-%s %s' % [pribor, status_text]
|
||||
$control_result.add_theme_color_override('font_color', status_color)
|
||||
|
||||
Reference in New Issue
Block a user