состояние, где нужна отладка темепературы, мощности, модулей ФС
This commit is contained in:
@@ -1,81 +1,10 @@
|
|||||||
@tool
|
@tool
|
||||||
extends 'res://scenes/контроль/прибор.gd'
|
extends 'res://scenes/контроль/прибор.gd'
|
||||||
|
|
||||||
const constants_k: Dictionary = {
|
|
||||||
'POWER_UKP_1': 31,
|
|
||||||
'POWER_UKP_2': 63,
|
|
||||||
'DKM_BIT_1': 0,
|
|
||||||
'DKM_BIT_6': 5,
|
|
||||||
'DKM_BIT_7': 6,
|
|
||||||
'BASE_ADDR_EMS_G': 0x120,
|
|
||||||
'ADDR_UG_LITERA_1': 0x106,
|
|
||||||
'ADDR_UG_LITERA_2': 0x108,
|
|
||||||
'ADDR_UG_LITERA_3': 0x10A,
|
|
||||||
'TEMP_THRESHOLD': 40,
|
|
||||||
'POWER_THRESHOLD': 40,
|
|
||||||
'RAY_DOU_NUM': 0x3,
|
|
||||||
'ATT_UM_1': 0x0,
|
|
||||||
'ATT_UM_6': 0x3,
|
|
||||||
'ATT_UM_7': 0x2,
|
|
||||||
'POWER_UM': 100,
|
|
||||||
'TIMER_DELAY': 10.0,
|
|
||||||
'STATE_MASHINE_TIMER': 0.3,
|
|
||||||
}
|
|
||||||
# Конфигурация параметров для каждого прибора
|
|
||||||
const PRIBOR_CONFIG := {
|
|
||||||
'1к': {'angle': 0.0, 'sectors': [0, 20, 24]},
|
|
||||||
'2к': {'angle': 90.0, 'sectors': [3, 23, 27]},
|
|
||||||
'3к': {'angle': 180.0, 'sectors': [2, 22, 26]},
|
|
||||||
'4к': {'angle': 270.0, 'sectors': [1, 21, 25]},
|
|
||||||
}
|
|
||||||
# Конфигурация частот и ширин для каждого ФС
|
|
||||||
const FS_PARAMS := {
|
|
||||||
1: {'freq': 450.0, 'width': 80.0},
|
|
||||||
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_VAL { NONE = 0, GOOD = 1, ERROR = 2 }
|
||||||
|
|
||||||
var block_ip_config_k := {
|
|
||||||
'maa2000_1': [0, false],
|
|
||||||
'maa2000_2': [1, false],
|
|
||||||
'ip9_50_1': [2, false],
|
|
||||||
'ip9_50_2': [3, false],
|
|
||||||
'ip12_50_1': [4, false],
|
|
||||||
'ip9_50_3': [5, false],
|
|
||||||
'ip12_50_2': [6, false],
|
|
||||||
'ip5_25': [7, false],
|
|
||||||
}
|
|
||||||
var block_kasseta_y5_prd_config_k: = {
|
|
||||||
'yau07': false,
|
|
||||||
'ems': false,
|
|
||||||
'ug': false,
|
|
||||||
'ukp1': false,
|
|
||||||
'ukp2': false,
|
|
||||||
}
|
|
||||||
# Основные переменные
|
# Основные переменные
|
||||||
var start_litera: int = 1
|
|
||||||
var ug_work_1: int = 3 ## Аттенюация усилителей мощности
|
|
||||||
var ug_work_2: int = 2 ## Аттенюация усилителей мощности
|
|
||||||
var ug_work_3: int = 0 ## Аттенюация усилителей мощности
|
|
||||||
var mashine_timer: Timer = Timer.new()
|
|
||||||
#var prd_k_module: Object
|
|
||||||
var unit_prd_k: Object
|
var unit_prd_k: Object
|
||||||
#var control_prd_k: Object
|
|
||||||
# Результаты контроля
|
|
||||||
#var control_results_k: Dictionary = {
|
|
||||||
#'block_ip': false, # Проверка касет П1 и ИП МА2000
|
|
||||||
#'temperature': true,
|
|
||||||
#'dkm_1': false,
|
|
||||||
#'dkm_6': false,
|
|
||||||
#'dkm_7': false,
|
|
||||||
#'dou_6': false,
|
|
||||||
#'dou_7': false,
|
|
||||||
#'fs_1': 2,
|
|
||||||
#'fs_6': 2,
|
|
||||||
#'fs_7': 2,
|
|
||||||
#}
|
|
||||||
|
|
||||||
var ctrl_pos = 30
|
var ctrl_pos = 30
|
||||||
|
|
||||||
|
|
||||||
@@ -90,48 +19,10 @@ func _ready() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func start_control() -> void:
|
func start_control() -> void:
|
||||||
#initialize_connections()
|
|
||||||
setup_timer()
|
|
||||||
set_default_state()
|
set_default_state()
|
||||||
find_labels(self)
|
find_labels(self)
|
||||||
|
|
||||||
|
|
||||||
#func on_state_mashine() -> void:
|
|
||||||
#control_prd_k.state_control_machine()
|
|
||||||
|
|
||||||
|
|
||||||
#func initialize_connections() -> void:
|
|
||||||
#var unit_name = get_meta('unit_name')[0]
|
|
||||||
#prd_k_module = prd.prd_dict[unit_name]
|
|
||||||
#unit_prd_k = prd_k_module.unit_yau07
|
|
||||||
#
|
|
||||||
#unit_prd_k.connect('line_changed', Callable(self, 'on_line_changed'))
|
|
||||||
#var power_amplifiers: Array = get_tree().get_nodes_in_group('power_amplifier')
|
|
||||||
#var init_data: Dictionary = {
|
|
||||||
#'control_label': $control_result,
|
|
||||||
#'power_amplifiers': power_amplifiers,
|
|
||||||
#'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,
|
|
||||||
#'block_kasseta_y5_prd_config': block_kasseta_y5_prd_config_k,
|
|
||||||
#'control_results': control_results_k,
|
|
||||||
#'current_litera': start_litera,
|
|
||||||
#}
|
|
||||||
#control_prd_k = test_control_k.TestPRD.new(init_data)
|
|
||||||
#add_child(control_prd_k)
|
|
||||||
#control_prd_k.connect('control_is_over', Callable(self, 'on_control_result'))
|
|
||||||
|
|
||||||
|
|
||||||
func setup_timer() -> void:
|
|
||||||
add_child(mashine_timer)
|
|
||||||
mashine_timer.connect('timeout', Callable(self, 'on_state_mashine'))
|
|
||||||
mashine_timer.wait_time = constants_k.STATE_MASHINE_TIMER
|
|
||||||
mashine_timer.start()
|
|
||||||
|
|
||||||
|
|
||||||
func set_default_state() -> void:
|
func set_default_state() -> void:
|
||||||
for group in get_tree().get_nodes_in_group('default_reset'):
|
for group in get_tree().get_nodes_in_group('default_reset'):
|
||||||
group.state = STATE_VAL.NONE
|
group.state = STATE_VAL.NONE
|
||||||
@@ -143,7 +34,7 @@ func set_default_state() -> void:
|
|||||||
func _enter_tree() -> void:
|
func _enter_tree() -> void:
|
||||||
if Engine.is_editor_hint():
|
if Engine.is_editor_hint():
|
||||||
return
|
return
|
||||||
$control_result.text = 'Выполняется ...'
|
$control_result.text = 'Ожидается запуск контроля ...' # TODO: Необходимо сделать пулл сообщений
|
||||||
$control_result.add_theme_color_override('font_color', Color.ALICE_BLUE)
|
$control_result.add_theme_color_override('font_color', Color.ALICE_BLUE)
|
||||||
signaller.connect('режим_работа', Callable(self, 'on_mode_changed').bind(false))
|
signaller.connect('режим_работа', Callable(self, 'on_mode_changed').bind(false))
|
||||||
signaller.connect('режим_журнал', Callable(self, 'on_mode_changed').bind(false))
|
signaller.connect('режим_журнал', Callable(self, 'on_mode_changed').bind(false))
|
||||||
@@ -176,10 +67,10 @@ func on_mode_changed(in_tree: bool) -> void:
|
|||||||
#mashine_timer.start()
|
#mashine_timer.start()
|
||||||
|
|
||||||
|
|
||||||
func power_fill(pow_dic: Dictionary, fs_result: Dictionary) -> void:
|
static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifier: Array, unit_prd: Object) -> void:
|
||||||
#if not control_prd_k.block_kasseta_y5_config.yau07 or not control_prd_k.block_kasseta_y5_config.ukp1 or not control_prd_k.block_kasseta_y5_config.ukp2:
|
#if not control_prd_k.block_kasseta_y5_config.yau07 or not control_prd_k.block_kasseta_y5_config.ukp1 or not control_prd_k.block_kasseta_y5_config.ukp2:
|
||||||
#return
|
#return
|
||||||
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
|
|
||||||
for i_powapm in power_amplifier:
|
for i_powapm in power_amplifier:
|
||||||
var powamp_meta: String = i_powapm.get_meta('um')
|
var powamp_meta: String = i_powapm.get_meta('um')
|
||||||
var status = STATE_VAL.GOOD if pow_dic else STATE_VAL.NONE
|
var status = STATE_VAL.GOOD if pow_dic else STATE_VAL.NONE
|
||||||
@@ -194,14 +85,13 @@ func power_fill(pow_dic: Dictionary, fs_result: Dictionary) -> void:
|
|||||||
if powamp_meta in ['um_8', 'um_9', 'um_10', 'um_11', 'um_12', 'um_13'] and not fs_result.fs_7: return
|
if powamp_meta in ['um_8', 'um_9', 'um_10', 'um_11', 'um_12', 'um_13'] and not fs_result.fs_7: return
|
||||||
i_powapm.value0 = pow_dic[powamp_meta]
|
i_powapm.value0 = pow_dic[powamp_meta]
|
||||||
for i_p in pow_dic[powamp_meta]:
|
for i_p in pow_dic[powamp_meta]:
|
||||||
if i_p < constants_k.POWER_THRESHOLD:
|
if i_p < unit_prd.constants_k.POWER_THRESHOLD:
|
||||||
status = STATE_VAL.ERROR
|
status = STATE_VAL.ERROR
|
||||||
i_powapm.state = status
|
i_powapm.state = status
|
||||||
|
|
||||||
|
|
||||||
func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void:
|
func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void:
|
||||||
mashine_timer.stop()
|
var block_kasseta_y5_prd_config_k: Dictionary = unit_prd_k.block_kasseta_y5_config
|
||||||
block_kasseta_y5_prd_config_k = unit_prd_k.block_kasseta_y5_config
|
|
||||||
var nodes_y5: Array = get_tree().get_nodes_in_group('y-5')
|
var nodes_y5: Array = get_tree().get_nodes_in_group('y-5')
|
||||||
for node_y5 in nodes_y5:
|
for node_y5 in nodes_y5:
|
||||||
var meta_y5 = node_y5.get_meta('y5')
|
var meta_y5 = node_y5.get_meta('y5')
|
||||||
@@ -211,7 +101,7 @@ func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void:
|
|||||||
break
|
break
|
||||||
node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_k[meta_y5] else STATE_VAL.ERROR
|
node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_k[meta_y5] else STATE_VAL.ERROR
|
||||||
|
|
||||||
block_ip_config_k = unit_prd_k.block_ip_config
|
var block_ip_config_k: Dictionary = unit_prd_k.block_ip_config
|
||||||
var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply')
|
var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply')
|
||||||
for power_supply in node_ip_power_arr:
|
for power_supply in node_ip_power_arr:
|
||||||
var meta_ip = power_supply.get_meta('ip')
|
var meta_ip = power_supply.get_meta('ip')
|
||||||
@@ -240,8 +130,9 @@ func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void:
|
|||||||
$dou7_A8.state = STATE_VAL.GOOD if result_dic.dou_7 else STATE_VAL.ERROR
|
$dou7_A8.state = STATE_VAL.GOOD if result_dic.dou_7 else STATE_VAL.ERROR
|
||||||
else:
|
else:
|
||||||
result_dic.fs_7 = false
|
result_dic.fs_7 = false
|
||||||
|
|
||||||
power_fill(power_dic, result_dic)
|
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
|
||||||
|
power_fill(power_dic, result_dic, power_amplifier, unit_prd_k)
|
||||||
|
|
||||||
var result = true
|
var result = true
|
||||||
for device in result_dic.values():
|
for device in result_dic.values():
|
||||||
|
|||||||
@@ -1,126 +1,28 @@
|
|||||||
@tool
|
@tool
|
||||||
extends 'res://scenes/контроль/прибор.gd'
|
extends 'res://scenes/контроль/прибор.gd'
|
||||||
|
|
||||||
const constants_n = {
|
|
||||||
'POWER_UKP_1': 31,
|
|
||||||
'POWER_UKP_2': 63,
|
|
||||||
'DKM_BIT_2': 1,
|
|
||||||
'DKM_BIT_3': 2,
|
|
||||||
'BASE_ADDR_EMS_G': 0x120,
|
|
||||||
'ADDR_UG_LITERA_1': 0x106,
|
|
||||||
'ADDR_UG_LITERA_2': 0x108,
|
|
||||||
'ADDR_UG_LITERA_3': 0x10A,
|
|
||||||
'TEMP_THRESHOLD': 70,
|
|
||||||
'POWER_THRESHOLD': 40,
|
|
||||||
'RAY_DOU_NUM': 0x3,
|
|
||||||
'ATT_UM_2': 0x2,
|
|
||||||
'ATT_UM_3': 0x3,
|
|
||||||
'POWER_UM': 100,
|
|
||||||
'TIMER_DELAY': 10.0,
|
|
||||||
'STATE_MASHINE_TIMER': 0.3,
|
|
||||||
}
|
|
||||||
# Конфигурация параметров для каждого прибора
|
|
||||||
const PRIBOR_CONFIG_N := {
|
|
||||||
'1н': {'angle': 0.0, 'sectors': [4, 8]},
|
|
||||||
'2н': {'angle': 90.0, 'sectors': [7, 11]},
|
|
||||||
'3н': {'angle': 180.0, 'sectors': [6, 10]},
|
|
||||||
'4н': {'angle': 270.0, 'sectors': [5, 9]},
|
|
||||||
}
|
|
||||||
# Конфигурация частот и ширин для каждого ФС
|
|
||||||
const FS_PARAMS_N := {
|
|
||||||
2: {'freq': 932.0, 'width': 100.0},
|
|
||||||
3: {'freq': 1157.0, 'width': 100.0}
|
|
||||||
}
|
|
||||||
enum STATE_VAL { NONE = 0, GOOD = 1, ERROR = 2 }
|
enum STATE_VAL { NONE = 0, GOOD = 1, ERROR = 2 }
|
||||||
var block_ip_config_n:= {
|
|
||||||
'maa2000_1': [0, false],
|
|
||||||
'maa2000_2': [1, false],
|
|
||||||
'ip9_50_1': [2, false],
|
|
||||||
'ip9_50_2': [3, false],
|
|
||||||
'ip12_50_1': [4, false],
|
|
||||||
'ip5_25': [7, false],
|
|
||||||
}
|
|
||||||
var block_kasseta_y5_prd_config_n: = {
|
|
||||||
'yau07': false,
|
|
||||||
'ems': false,
|
|
||||||
'ug': false,
|
|
||||||
'ukp1': false,
|
|
||||||
'ukp2': false,
|
|
||||||
}
|
|
||||||
|
|
||||||
# Основные переменные
|
# Основные переменные
|
||||||
var start_litera: int = 2
|
|
||||||
var ug_work_1: int = 2 ## Аттенюация усилителей мощности
|
|
||||||
var ug_work_2: int = 3 ## Аттенюация усилителей мощности
|
|
||||||
# Флаги и таймеры
|
|
||||||
var mashine_timer: Timer = Timer.new()
|
|
||||||
var prd_n_module: Object
|
|
||||||
var unit_prd_n: Object
|
var unit_prd_n: Object
|
||||||
var control_prd_n: Object
|
|
||||||
# Результаты контроля
|
|
||||||
var control_results_n: Dictionary = {
|
|
||||||
'block_ip': false, # Проверка касет П1 и ИП МА2000
|
|
||||||
'temperature': true, # Проверка температур УМ
|
|
||||||
'dkm_2': false,
|
|
||||||
'dkm_3': false,
|
|
||||||
'dou_2': false,
|
|
||||||
'dou_3': false,
|
|
||||||
'fs_2': 2,
|
|
||||||
'fs_3': 2,
|
|
||||||
}
|
|
||||||
var test_control_n = preload('res://scripts/pribor-prd.gd')
|
|
||||||
var ctrl_pos = 0
|
var ctrl_pos = 0
|
||||||
################################
|
|
||||||
func on_state_mashine() -> void:
|
|
||||||
control_prd_n.state_control_machine()
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
if Engine.is_editor_hint():
|
if Engine.is_editor_hint():
|
||||||
return
|
return
|
||||||
print_debug('В сцене ПРД-Н!')
|
var unit_name = get_meta('unit_name')[0]
|
||||||
|
var prd_n_module = prd.prd_dict[unit_name]
|
||||||
|
unit_prd_n = prd_n_module.unit_control
|
||||||
|
|
||||||
|
unit_prd_n.connect('control_is_over', Callable(self, 'on_control_result'))
|
||||||
|
|
||||||
|
|
||||||
func start_control() -> void:
|
func start_control() -> void:
|
||||||
initialize_connections()
|
|
||||||
setup_timer()
|
|
||||||
set_default_state()
|
set_default_state()
|
||||||
find_labels(self)
|
find_labels(self)
|
||||||
|
|
||||||
|
|
||||||
func initialize_connections() -> void:
|
|
||||||
var unit_name = get_meta('unit_name')[0]
|
|
||||||
prd_n_module = prd.prd_dict[unit_name]
|
|
||||||
unit_prd_n = prd_n_module.unit_yau07
|
|
||||||
|
|
||||||
unit_prd_n.connect('line_changed', Callable(self, 'on_line_changed'))
|
|
||||||
var power_amplifiers: Array = get_tree().get_nodes_in_group('power_amplifier')
|
|
||||||
var init_data: Dictionary = {
|
|
||||||
'control_label': $control_result,
|
|
||||||
'power_amplifiers': power_amplifiers,
|
|
||||||
'unit_prd': unit_prd_n,
|
|
||||||
'module_prd' : prd_n_module,
|
|
||||||
'constants': constants_n,
|
|
||||||
'prd_config': PRIBOR_CONFIG_N,
|
|
||||||
'fs_params': FS_PARAMS_N,
|
|
||||||
'block_ip_prd_config': block_ip_config_n,
|
|
||||||
'block_kasseta_y5_prd_config': block_kasseta_y5_prd_config_n,
|
|
||||||
'control_results': control_results_n,
|
|
||||||
'current_litera': start_litera,
|
|
||||||
}
|
|
||||||
control_prd_n = test_control_n.TestPRD.new(init_data)
|
|
||||||
add_child(control_prd_n)
|
|
||||||
control_prd_n.connect('control_is_over', Callable(self, 'on_control_result'))
|
|
||||||
|
|
||||||
|
|
||||||
func setup_timer() -> void:
|
|
||||||
pass
|
|
||||||
#add_child(mashine_timer)
|
|
||||||
#mashine_timer.connect('timeout', Callable(self, 'on_state_mashine'))
|
|
||||||
#mashine_timer.wait_time = constants_n.STATE_MASHINE_TIMER
|
|
||||||
#mashine_timer.start()
|
|
||||||
|
|
||||||
|
|
||||||
func set_default_state() -> void:
|
func set_default_state() -> void:
|
||||||
for group in get_tree().get_nodes_in_group('default_reset'):
|
for group in get_tree().get_nodes_in_group('default_reset'):
|
||||||
group.state = STATE_VAL.NONE
|
group.state = STATE_VAL.NONE
|
||||||
@@ -132,7 +34,7 @@ func set_default_state() -> void:
|
|||||||
func _enter_tree() -> void:
|
func _enter_tree() -> void:
|
||||||
if Engine.is_editor_hint():
|
if Engine.is_editor_hint():
|
||||||
return
|
return
|
||||||
$control_result.text = 'Выполняется ...'
|
$control_result.text = 'Ожидается запуск контроля ...' # TODO: Необходимо сделать пулл сообщений
|
||||||
$control_result.add_theme_color_override('font_color', Color.ALICE_BLUE)
|
$control_result.add_theme_color_override('font_color', Color.ALICE_BLUE)
|
||||||
signaller.connect('режим_работа', Callable(self, 'on_mode_changed').bind(false))
|
signaller.connect('режим_работа', Callable(self, 'on_mode_changed').bind(false))
|
||||||
signaller.connect('режим_журнал', Callable(self, 'on_mode_changed').bind(false))
|
signaller.connect('режим_журнал', Callable(self, 'on_mode_changed').bind(false))
|
||||||
@@ -152,22 +54,22 @@ func on_line_changed(unit_pribor: Object) -> void:
|
|||||||
set_default_state()
|
set_default_state()
|
||||||
|
|
||||||
|
|
||||||
func on_mode_changed(_in_tree: bool) -> void:
|
func on_mode_changed(in_tree: bool) -> void:
|
||||||
print_debug('Выход из сцены')
|
if not in_tree:
|
||||||
#if not in_tree:
|
print_debug('Выход из сцены')
|
||||||
#mashine_timer.stop()
|
#mashine_timer.stop()
|
||||||
#signaller.emit_signal('interfer_off_all')
|
#signaller.emit_signal('interfer_off_all')
|
||||||
#prd_n_module.cmd_array.append([unit_prd_n.CmdCode.WRITE_ISA, [constants_n.ADDR_UG_LITERA_1, ug_work_1, constants_n.ADDR_UG_LITERA_2, ug_work_2]])
|
#prd_n_module.cmd_array.append([unit_prd_n.CmdCode.WRITE_ISA, [constants_n.ADDR_UG_LITERA_1, ug_work_1, constants_n.ADDR_UG_LITERA_2, ug_work_2]])
|
||||||
#else:
|
else:
|
||||||
|
print_debug('Вход в сцену')
|
||||||
#set_default_state()
|
#set_default_state()
|
||||||
#control_prd_n.state = control_prd_n.STATE_MASHINE.INIT
|
#control_prd_n.state = control_prd_n.STATE_MASHINE.INIT
|
||||||
#mashine_timer.start()
|
#mashine_timer.start()
|
||||||
|
|
||||||
|
|
||||||
func power_fill(pow_dic: Dictionary, fs_result: Dictionary) -> void:
|
static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifier: Array, unit_prd: Object) -> void:
|
||||||
#if not control_prd_n.block_kasseta_y5_config.yau07 or not control_prd_n.block_kasseta_y5_config.ukp1 or not control_prd_n.block_kasseta_y5_config.ukp2:
|
#if not control_prd_n.block_kasseta_y5_config.yau07 or not control_prd_n.block_kasseta_y5_config.ukp1 or not control_prd_n.block_kasseta_y5_config.ukp2:
|
||||||
#return
|
#return
|
||||||
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
|
|
||||||
for i_powapm in power_amplifier:
|
for i_powapm in power_amplifier:
|
||||||
var powamp_meta: String = i_powapm.get_meta('um')
|
var powamp_meta: String = i_powapm.get_meta('um')
|
||||||
var status = STATE_VAL.GOOD if pow_dic else STATE_VAL.NONE
|
var status = STATE_VAL.GOOD if pow_dic else STATE_VAL.NONE
|
||||||
@@ -178,14 +80,13 @@ func power_fill(pow_dic: Dictionary, fs_result: Dictionary) -> void:
|
|||||||
if powamp_meta in ['um_7', 'um_8', 'um_9', 'um_10', 'um_11', 'um_12'] and not fs_result.fs_3: return
|
if powamp_meta in ['um_7', 'um_8', 'um_9', 'um_10', 'um_11', 'um_12'] and not fs_result.fs_3: return
|
||||||
i_powapm.value0 = pow_dic[powamp_meta]
|
i_powapm.value0 = pow_dic[powamp_meta]
|
||||||
for i_p in pow_dic[powamp_meta]:
|
for i_p in pow_dic[powamp_meta]:
|
||||||
if i_p < constants_n.POWER_THRESHOLD:
|
if i_p < unit_prd.constants_n.POWER_THRESHOLD:
|
||||||
status = STATE_VAL.ERROR
|
status = STATE_VAL.ERROR
|
||||||
i_powapm.state = status
|
i_powapm.state = status
|
||||||
|
|
||||||
|
|
||||||
func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void:
|
func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void:
|
||||||
mashine_timer.stop()
|
var block_kasseta_y5_prd_config_n: Dictionary = unit_prd_n.block_kasseta_y5_config
|
||||||
block_kasseta_y5_prd_config_n = control_prd_n.block_kasseta_y5_config
|
|
||||||
var nodes_y5: Array = get_tree().get_nodes_in_group('y-5')
|
var nodes_y5: Array = get_tree().get_nodes_in_group('y-5')
|
||||||
for node_y5 in nodes_y5:
|
for node_y5 in nodes_y5:
|
||||||
var meta_y5 = node_y5.get_meta('y5')
|
var meta_y5 = node_y5.get_meta('y5')
|
||||||
@@ -195,7 +96,7 @@ func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void:
|
|||||||
break
|
break
|
||||||
node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_n[meta_y5] else STATE_VAL.ERROR
|
node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_n[meta_y5] else STATE_VAL.ERROR
|
||||||
|
|
||||||
block_ip_config_n = control_prd_n.block_ip_config
|
var block_ip_config_n: Dictionary = unit_prd_n.block_ip_config
|
||||||
var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply')
|
var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply')
|
||||||
for power_supply in node_ip_power_arr:
|
for power_supply in node_ip_power_arr:
|
||||||
var meta_ip = power_supply.get_meta('ip')
|
var meta_ip = power_supply.get_meta('ip')
|
||||||
@@ -220,21 +121,17 @@ func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void:
|
|||||||
$dou3_A6.state = STATE_VAL.GOOD if result_dic.dou_3 else STATE_VAL.ERROR
|
$dou3_A6.state = STATE_VAL.GOOD if result_dic.dou_3 else STATE_VAL.ERROR
|
||||||
else:
|
else:
|
||||||
result_dic.fs_3 = 0
|
result_dic.fs_3 = 0
|
||||||
|
|
||||||
power_fill(power_dic, result_dic)
|
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
|
||||||
|
power_fill(power_dic, result_dic, power_amplifier, unit_prd_n)
|
||||||
|
|
||||||
var result = true
|
var result = true
|
||||||
for device in result_dic.values():
|
for device in result_dic.values():
|
||||||
if not device:
|
if not device:
|
||||||
result = false
|
result = false
|
||||||
|
|
||||||
var name_prd = control_prd_n.self_name
|
var name_prd = unit_prd_n.self_name
|
||||||
if result:
|
log.message(Logger.INFO, 'Прибор ПРД-%s %s' % [name_prd, ['неисправен', 'исправен'][int(result)]])
|
||||||
$control_result.text = 'Прибор ПРД-%s исправен' % name_prd
|
|
||||||
$control_result.add_theme_color_override('font_color', Color.GREEN)
|
|
||||||
else:
|
|
||||||
$control_result.text = 'Прибор ПРД-%s неисправен' % name_prd
|
|
||||||
$control_result.add_theme_color_override('font_color', Color.RED)
|
|
||||||
|
|
||||||
|
|
||||||
func find_labels(node1: Node):
|
func find_labels(node1: Node):
|
||||||
|
|||||||
@@ -1,126 +1,31 @@
|
|||||||
@tool
|
@tool
|
||||||
extends 'res://scenes/контроль/прибор.gd'
|
extends 'res://scenes/контроль/прибор.gd'
|
||||||
|
|
||||||
const constants_v = {
|
|
||||||
'POWER_UKP_1': 31,
|
|
||||||
'POWER_UKP_2': 63,
|
|
||||||
'DKM_BIT_4': 3,
|
|
||||||
'DKM_BIT_5': 4,
|
|
||||||
'BASE_ADDR_EMS_G': 0x120,
|
|
||||||
'ADDR_UG_LITERA_1': 0x106,
|
|
||||||
'ADDR_UG_LITERA_2': 0x108,
|
|
||||||
'ADDR_UG_LITERA_3': 0x10A,
|
|
||||||
'TEMP_THRESHOLD': 70,
|
|
||||||
'POWER_THRESHOLD': 40,
|
|
||||||
'RAY_DOU_NUM': 0x3,
|
|
||||||
'ATT_UM_4': 0x2,
|
|
||||||
'ATT_UM_5': 0x3,
|
|
||||||
'POWER_UM': 100,
|
|
||||||
'TIMER_DELAY': 10.0,
|
|
||||||
'STATE_MASHINE_TIMER': 0.3,
|
|
||||||
}
|
|
||||||
# Конфигурация параметров для каждого прибора
|
|
||||||
const PRIBOR_CONFIG_V := {
|
|
||||||
'1в': {'angle': 0.0, 'sectors': [12, 16]},
|
|
||||||
'2в': {'angle': 90.0, 'sectors': [15, 19]},
|
|
||||||
'3в': {'angle': 180.0, 'sectors': [14, 18]},
|
|
||||||
'4в': {'angle': 270.0, 'sectors': [13, 17]},
|
|
||||||
}
|
|
||||||
# Конфигурация частот и ширин для каждого ФС
|
|
||||||
const FS_PARAMS_V := {
|
|
||||||
4: {'freq': 1227.0, 'width': 100.0},
|
|
||||||
5: {'freq': 1575.0, 'width': 110.0},
|
|
||||||
}
|
|
||||||
enum STATE_VAL { NONE = 0, GOOD = 1, ERROR = 2 }
|
enum STATE_VAL { NONE = 0, GOOD = 1, ERROR = 2 }
|
||||||
var block_ip_config_v := {
|
|
||||||
'maa2000_1': [0, false],
|
|
||||||
'maa2000_2': [1, false],
|
|
||||||
'ip9_50_1': [2, false],
|
|
||||||
'ip9_50_2': [3, false],
|
|
||||||
'ip12_50_1': [4, false],
|
|
||||||
'ip5_25': [7, false],
|
|
||||||
}
|
|
||||||
var block_kasseta_y5_prd_config_v: = {
|
|
||||||
'yau07': false,
|
|
||||||
'ems': false,
|
|
||||||
'ug': false,
|
|
||||||
'ukp1': false,
|
|
||||||
'ukp2': false,
|
|
||||||
}
|
|
||||||
|
|
||||||
# Основные переменные
|
# Основные переменные
|
||||||
var start_litera: int = 4
|
|
||||||
var ug_work_1: int = 2 ## Аттенюация усилителей мощности
|
|
||||||
var ug_work_2: int = 3 ## Аттенюация усилителей мощности
|
|
||||||
# Флаги и таймеры
|
|
||||||
var mashine_timer: Timer = Timer.new()
|
|
||||||
var prd_v_module: Object
|
|
||||||
var unit_prd_v: Object
|
var unit_prd_v: Object
|
||||||
var control_prd_v: Object
|
|
||||||
# Результаты контроля
|
|
||||||
var control_results_v: Dictionary = {
|
|
||||||
'block_ip': false, # Проверка касет П1 и ИП МА2000
|
|
||||||
'temperature': true, # Проверка температур УМ
|
|
||||||
'dkm_4': false,
|
|
||||||
'dkm_5': false,
|
|
||||||
'dou_4': false,
|
|
||||||
'dou_5': false,
|
|
||||||
'fs_4': 2,
|
|
||||||
'fs_5': 2,
|
|
||||||
}
|
|
||||||
var test_control_v = preload('res://scripts/pribor-prd.gd')
|
|
||||||
var ctrl_pos = 70
|
var ctrl_pos = 70
|
||||||
|
|
||||||
|
|
||||||
func on_state_mashine() -> void:
|
|
||||||
control_prd_v.state_control_machine()
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
if Engine.is_editor_hint():
|
if Engine.is_editor_hint():
|
||||||
return
|
return
|
||||||
print_debug('В сцене ПРД-В!')
|
var unit_name = get_meta('unit_name')[0]
|
||||||
|
var prd_v_module = prd.prd_dict[unit_name]
|
||||||
|
unit_prd_v = prd_v_module.unit_control
|
||||||
|
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
|
||||||
|
for temp in power_amplifier:
|
||||||
|
temp.value1 = -70
|
||||||
|
unit_prd_v.connect('control_is_over', Callable(self, 'on_press_device'))
|
||||||
|
on_press_device()
|
||||||
|
|
||||||
|
|
||||||
func start_control() -> void:
|
func start_control() -> void:
|
||||||
initialize_connections()
|
|
||||||
setup_timer()
|
|
||||||
set_default_state()
|
set_default_state()
|
||||||
find_labels(self)
|
find_labels(self)
|
||||||
|
|
||||||
|
|
||||||
func initialize_connections() -> void:
|
|
||||||
var unit_name = get_meta('unit_name')[0]
|
|
||||||
prd_v_module = prd.prd_dict[unit_name]
|
|
||||||
unit_prd_v = prd_v_module.unit_yau07
|
|
||||||
|
|
||||||
unit_prd_v.connect('line_changed', Callable(self, 'on_line_changed'))
|
|
||||||
var power_amplifiers: Array = get_tree().get_nodes_in_group('power_amplifier')
|
|
||||||
var init_data: Dictionary = {
|
|
||||||
'control_label': $control_result,
|
|
||||||
'power_amplifiers': power_amplifiers,
|
|
||||||
'unit_prd': unit_prd_v,
|
|
||||||
'module_prd' : prd_v_module,
|
|
||||||
'constants': constants_v,
|
|
||||||
'prd_config': PRIBOR_CONFIG_V,
|
|
||||||
'fs_params': FS_PARAMS_V,
|
|
||||||
'block_ip_prd_config': block_ip_config_v,
|
|
||||||
'block_kasseta_y5_prd_config': block_kasseta_y5_prd_config_v,
|
|
||||||
'control_results': control_results_v,
|
|
||||||
'current_litera': start_litera,
|
|
||||||
}
|
|
||||||
control_prd_v = test_control_v.TestPRD.new(init_data)
|
|
||||||
add_child(control_prd_v)
|
|
||||||
control_prd_v.connect('control_is_over', Callable(self, 'on_control_result'))
|
|
||||||
|
|
||||||
|
|
||||||
func setup_timer() -> void:
|
|
||||||
add_child(mashine_timer)
|
|
||||||
mashine_timer.connect('timeout', Callable(self, 'on_state_mashine'))
|
|
||||||
mashine_timer.wait_time = constants_v.STATE_MASHINE_TIMER
|
|
||||||
mashine_timer.start()
|
|
||||||
|
|
||||||
|
|
||||||
func set_default_state() -> void:
|
func set_default_state() -> void:
|
||||||
for group in get_tree().get_nodes_in_group('default_reset'):
|
for group in get_tree().get_nodes_in_group('default_reset'):
|
||||||
group.state = STATE_VAL.NONE
|
group.state = STATE_VAL.NONE
|
||||||
@@ -132,13 +37,8 @@ func set_default_state() -> void:
|
|||||||
func _enter_tree() -> void:
|
func _enter_tree() -> void:
|
||||||
if Engine.is_editor_hint():
|
if Engine.is_editor_hint():
|
||||||
return
|
return
|
||||||
$control_result.text = 'Выполняется ...'
|
$control_result.text = 'Ожидается запуск контроля ...' # TODO: Необходимо сделать пулл сообщений
|
||||||
$control_result.add_theme_color_override('font_color', Color.ALICE_BLUE)
|
$control_result.add_theme_color_override('font_color', Color.ALICE_BLUE)
|
||||||
signaller.connect('режим_работа', Callable(self, 'on_mode_changed').bind(false))
|
|
||||||
signaller.connect('режим_журнал', Callable(self, 'on_mode_changed').bind(false))
|
|
||||||
signaller.connect('режим_эмс', Callable(self, 'on_mode_changed').bind(false))
|
|
||||||
signaller.connect('режим_настройки', Callable(self, 'on_mode_changed').bind(false))
|
|
||||||
signaller.connect('режим_контроль', Callable(self, 'on_mode_changed').bind(true))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -148,28 +48,11 @@ func _exit_tree() -> void:
|
|||||||
#prd_v_module.cmd_array.append([unit_prd_v.CmdCode.WRITE_ISA, [constants_v.ADDR_UG_LITERA_1, ug_work_1, constants_v.ADDR_UG_LITERA_2, ug_work_2]])
|
#prd_v_module.cmd_array.append([unit_prd_v.CmdCode.WRITE_ISA, [constants_v.ADDR_UG_LITERA_1, ug_work_1, constants_v.ADDR_UG_LITERA_2, ug_work_2]])
|
||||||
|
|
||||||
|
|
||||||
func on_line_changed(unit_pribor: Object) -> void:
|
static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifier: Array, POWER_THRESHOLD: int) -> void:
|
||||||
if not unit_pribor.online:
|
|
||||||
set_default_state()
|
|
||||||
|
|
||||||
|
|
||||||
func on_mode_changed(_in_tree: bool) -> void:
|
|
||||||
print_debug('Выход из сцены')
|
|
||||||
#if not in_tree:
|
|
||||||
#mashine_timer.stop()
|
|
||||||
#prd_v_module.cmd_array.append([unit_prd_v.CmdCode.WRITE_ISA, [constants_v.ADDR_UG_LITERA_1, ug_work_1, constants_v.ADDR_UG_LITERA_2, ug_work_2]])
|
|
||||||
#signaller.emit_signal('interfer_off_all')
|
|
||||||
#else:
|
|
||||||
#set_default_state()
|
|
||||||
#control_prd_v.state = control_prd_v.STATE_MASHINE.INIT
|
|
||||||
#mashine_timer.start()
|
|
||||||
|
|
||||||
|
|
||||||
func power_fill(pow_dic: Dictionary, fs_result: Dictionary) -> void:
|
|
||||||
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
|
|
||||||
for i_powapm in power_amplifier:
|
for i_powapm in power_amplifier:
|
||||||
var powamp_meta: String = i_powapm.get_meta('um')
|
var powamp_meta: String = i_powapm.get_meta('um')
|
||||||
var status = STATE_VAL.GOOD if pow_dic else STATE_VAL.NONE
|
var status = STATE_VAL.GOOD if pow_dic else STATE_VAL.NONE
|
||||||
|
if not pow_dic.has(powamp_meta): return
|
||||||
if pow_dic[powamp_meta].size() < 6:
|
if pow_dic[powamp_meta].size() < 6:
|
||||||
status = STATE_VAL.ERROR
|
status = STATE_VAL.ERROR
|
||||||
else:
|
else:
|
||||||
@@ -177,15 +60,42 @@ func power_fill(pow_dic: Dictionary, fs_result: Dictionary) -> void:
|
|||||||
if powamp_meta in ['um_7', 'um_8', 'um_9', 'um_10', 'um_11', 'um_12'] and not fs_result.fs_5: return
|
if powamp_meta in ['um_7', 'um_8', 'um_9', 'um_10', 'um_11', 'um_12'] and not fs_result.fs_5: return
|
||||||
i_powapm.value0 = pow_dic[powamp_meta]
|
i_powapm.value0 = pow_dic[powamp_meta]
|
||||||
for i_p in pow_dic[powamp_meta]:
|
for i_p in pow_dic[powamp_meta]:
|
||||||
if i_p < constants_v.POWER_THRESHOLD:
|
if i_p < POWER_THRESHOLD:
|
||||||
status = STATE_VAL.ERROR
|
status = STATE_VAL.ERROR
|
||||||
i_powapm.state = status
|
i_powapm.state = status
|
||||||
|
|
||||||
|
|
||||||
func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void:
|
func on_press_device() -> void:
|
||||||
mashine_timer.stop()
|
|
||||||
block_kasseta_y5_prd_config_v = control_prd_v.block_kasseta_y5_config
|
|
||||||
var nodes_y5: Array = get_tree().get_nodes_in_group('y-5')
|
var nodes_y5: Array = get_tree().get_nodes_in_group('y-5')
|
||||||
|
var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply')
|
||||||
|
var fs_nodes: Array = get_tree().get_nodes_in_group('fs_group')
|
||||||
|
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
|
||||||
|
var module_fs_4: Node = $kasseta_FS_VD/ref_A6
|
||||||
|
var dou_4: Node = $dou4_A5
|
||||||
|
var module_fs_5: Node = $kasseta_FS_VD/ref_A2
|
||||||
|
var dou_5: Node = $dou5_A6
|
||||||
|
var for_control_result: Dictionary = {
|
||||||
|
'result_dic': unit_prd_v.control_results,
|
||||||
|
'power_dic': unit_prd_v.power_result,
|
||||||
|
'block_kasseta_y5_config': unit_prd_v.block_kasseta_y5_config,
|
||||||
|
'block_ip_config': unit_prd_v.block_ip_config,
|
||||||
|
'nodes_y5': nodes_y5,
|
||||||
|
'node_ip_power_arr': node_ip_power_arr,
|
||||||
|
'fs_nodes': fs_nodes,
|
||||||
|
'power_amplifier': power_amplifier,
|
||||||
|
'POWER_THRESHOLD': unit_prd_v.constants.POWER_THRESHOLD,
|
||||||
|
'name_prd': unit_prd_v.self_name,
|
||||||
|
'module_fs_4': module_fs_4,
|
||||||
|
'dou_4': dou_4,
|
||||||
|
'module_fs_5': module_fs_5,
|
||||||
|
'dou_5': dou_5,
|
||||||
|
}
|
||||||
|
on_control_result(for_control_result)
|
||||||
|
|
||||||
|
|
||||||
|
static func on_control_result(for_result_dic: Dictionary) -> void:
|
||||||
|
var block_kasseta_y5_prd_config_v: Dictionary = for_result_dic.block_kasseta_y5_config
|
||||||
|
var nodes_y5: Array = for_result_dic.nodes_y5
|
||||||
for node_y5 in nodes_y5:
|
for node_y5 in nodes_y5:
|
||||||
var meta_y5 = node_y5.get_meta('y5')
|
var meta_y5 = node_y5.get_meta('y5')
|
||||||
if block_kasseta_y5_prd_config_v.has(meta_y5):
|
if block_kasseta_y5_prd_config_v.has(meta_y5):
|
||||||
@@ -194,15 +104,14 @@ func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void:
|
|||||||
break
|
break
|
||||||
node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_v[meta_y5] else STATE_VAL.ERROR
|
node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_v[meta_y5] else STATE_VAL.ERROR
|
||||||
|
|
||||||
block_ip_config_v = control_prd_v.block_ip_config
|
var block_ip_config_v: Dictionary = for_result_dic.block_ip_config
|
||||||
var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply')
|
for power_supply in for_result_dic.node_ip_power_arr:
|
||||||
for power_supply in node_ip_power_arr:
|
|
||||||
var meta_ip = power_supply.get_meta('ip')
|
var meta_ip = power_supply.get_meta('ip')
|
||||||
if block_ip_config_v.has(meta_ip) and block_kasseta_y5_prd_config_v.ug:
|
if block_ip_config_v.has(meta_ip) and block_kasseta_y5_prd_config_v.ug:
|
||||||
power_supply.state = STATE_VAL.GOOD if block_ip_config_v[meta_ip][1] else STATE_VAL.ERROR
|
power_supply.state = STATE_VAL.GOOD if block_ip_config_v[meta_ip][1] else STATE_VAL.ERROR
|
||||||
|
|
||||||
var fs_nodes: Array = get_tree().get_nodes_in_group('fs_group')
|
var result_dic = for_result_dic.result_dic
|
||||||
for f in fs_nodes:
|
for f in for_result_dic.fs_nodes:
|
||||||
var fs_meta: String = f.get_meta('fs')
|
var fs_meta: String = f.get_meta('fs')
|
||||||
if result_dic.has(fs_meta):
|
if result_dic.has(fs_meta):
|
||||||
var new_state = result_dic[fs_meta]
|
var new_state = result_dic[fs_meta]
|
||||||
@@ -210,29 +119,24 @@ func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void:
|
|||||||
result_dic[fs_meta] = new_state
|
result_dic[fs_meta] = new_state
|
||||||
|
|
||||||
if result_dic.fs_5 == 1:
|
if result_dic.fs_5 == 1:
|
||||||
$kasseta_FS_VD/ref_A2.state = STATE_VAL.GOOD if result_dic.dkm_5 else STATE_VAL.ERROR
|
for_result_dic.module_fs_5.state = STATE_VAL.GOOD if result_dic.dkm_5 else STATE_VAL.ERROR
|
||||||
$dou5_A6.state = STATE_VAL.GOOD if result_dic.dou_5 else STATE_VAL.ERROR
|
for_result_dic.dou_5.state = STATE_VAL.GOOD if result_dic.dou_5 else STATE_VAL.ERROR
|
||||||
else:
|
else:
|
||||||
result_dic.fs_5 = 0
|
result_dic.fs_5 = 0
|
||||||
if result_dic.fs_4 == 1:
|
if result_dic.fs_4 == 1:
|
||||||
$kasseta_FS_VD/ref_A6.state = STATE_VAL.GOOD if result_dic.dkm_4 else STATE_VAL.ERROR
|
for_result_dic.module_fs_4.state = STATE_VAL.GOOD if result_dic.dkm_4 else STATE_VAL.ERROR
|
||||||
$dou4_A5.state = STATE_VAL.GOOD if result_dic.dou_4 else STATE_VAL.ERROR
|
for_result_dic.dou_4.state = STATE_VAL.GOOD if result_dic.dou_4 else STATE_VAL.ERROR
|
||||||
else:
|
else:
|
||||||
result_dic.fs_4 = 0
|
result_dic.fs_4 = 0
|
||||||
power_fill(power_dic, result_dic)
|
|
||||||
|
power_fill(for_result_dic.power_dic, for_result_dic.result_dic, for_result_dic.power_amplifier, for_result_dic.POWER_THRESHOLD)
|
||||||
|
|
||||||
var result = true
|
var result = true
|
||||||
for device in result_dic.values():
|
for device in result_dic.values():
|
||||||
if not device:
|
if not device:
|
||||||
result = false
|
result = false
|
||||||
|
|
||||||
var name_prd = control_prd_v.self_name
|
log.message(Logger.INFO, 'Прибор ПРД-%s %s' % [for_result_dic.name_prd, ['неисправен', 'исправен'][int(result)]])
|
||||||
if result:
|
|
||||||
$control_result.text = 'Прибор ПРД-%s исправен' % name_prd
|
|
||||||
$control_result.add_theme_color_override('font_color', Color.GREEN)
|
|
||||||
else:
|
|
||||||
$control_result.text = 'Прибор ПРД-%s неисправен' % name_prd
|
|
||||||
$control_result.add_theme_color_override('font_color', Color.RED)
|
|
||||||
|
|
||||||
|
|
||||||
func find_labels(node1: Node):
|
func find_labels(node1: Node):
|
||||||
|
|||||||
@@ -476,12 +476,11 @@ layout_mode = 2
|
|||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
tooltip_text = "
|
tooltip_text = "
|
||||||
Текущее: 56.00
|
Текущее: 0.00
|
||||||
Диапазон: -50.00…120.00"
|
Диапазон: -50.00…120.00"
|
||||||
mouse_filter = 0
|
mouse_filter = 0
|
||||||
min_value = -50.0
|
min_value = -50.0
|
||||||
max_value = 120.0
|
max_value = 120.0
|
||||||
value = 56.0
|
|
||||||
fill_mode = 3
|
fill_mode = 3
|
||||||
nine_patch_stretch = true
|
nine_patch_stretch = true
|
||||||
stretch_margin_left = 8
|
stretch_margin_left = 8
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ class TestPRD extends Node:
|
|||||||
'fs_2': 2,
|
'fs_2': 2,
|
||||||
'fs_3': 2,
|
'fs_3': 2,
|
||||||
}
|
}
|
||||||
####
|
####
|
||||||
var block_ip_config_v := {
|
var block_ip_config_v := {
|
||||||
'maa2000_1': [0, false],
|
'maa2000_1': [0, false],
|
||||||
'maa2000_2': [1, false],
|
'maa2000_2': [1, false],
|
||||||
@@ -141,7 +141,46 @@ class TestPRD extends Node:
|
|||||||
'ukp1': false,
|
'ukp1': false,
|
||||||
'ukp2': false,
|
'ukp2': false,
|
||||||
}
|
}
|
||||||
|
var control_results_v: Dictionary = {
|
||||||
|
'block_ip': false, # Проверка касет П1 и ИП МА2000
|
||||||
|
'temperature': true, # Проверка температур УМ
|
||||||
|
'dkm_4': false,
|
||||||
|
'dkm_5': false,
|
||||||
|
'dou_4': false,
|
||||||
|
'dou_5': false,
|
||||||
|
'fs_4': 2,
|
||||||
|
'fs_5': 2,
|
||||||
|
}
|
||||||
|
####
|
||||||
|
var block_kasseta_y5_prd_config_k: = {
|
||||||
|
'yau07': false,
|
||||||
|
'ems': false,
|
||||||
|
'ug': false,
|
||||||
|
'ukp1': false,
|
||||||
|
'ukp2': false,
|
||||||
|
}
|
||||||
|
var control_results_k: Dictionary = {
|
||||||
|
'block_ip': false, # Проверка касет П1 и ИП МА2000
|
||||||
|
'temperature': true,
|
||||||
|
'dkm_1': false,
|
||||||
|
'dkm_6': false,
|
||||||
|
'dkm_7': false,
|
||||||
|
'dou_6': false,
|
||||||
|
'dou_7': false,
|
||||||
|
'fs_1': 2,
|
||||||
|
'fs_6': 2,
|
||||||
|
'fs_7': 2,
|
||||||
|
}
|
||||||
|
var block_ip_config_k := {
|
||||||
|
'maa2000_1': [0, false],
|
||||||
|
'maa2000_2': [1, false],
|
||||||
|
'ip9_50_1': [2, false],
|
||||||
|
'ip9_50_2': [3, false],
|
||||||
|
'ip12_50_1': [4, false],
|
||||||
|
'ip9_50_3': [5, false],
|
||||||
|
'ip12_50_2': [6, false],
|
||||||
|
'ip5_25': [7, false],
|
||||||
|
}
|
||||||
####
|
####
|
||||||
|
|
||||||
const RAY_m5:= 'RAY_m5'
|
const RAY_m5:= 'RAY_m5'
|
||||||
@@ -201,14 +240,14 @@ class TestPRD extends Node:
|
|||||||
'TEMPERATURE_UKP_2': 79,
|
'TEMPERATURE_UKP_2': 79,
|
||||||
}
|
}
|
||||||
|
|
||||||
var power_result: Dictionary = {
|
var power_for_litera: Dictionary = {
|
||||||
1: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],},
|
1: {RAY_m5: [560, 400, 330, 560, 400, 330], RAY_5: [560, 400, 330, 560, 400, 330,], RAY_15: [560, 400, 330, 560, 400, 330,], RAY_25: [560, 400, 330, 560, 400, 330,], RAY_35: [560, 400, 330, 560, 400, 330,], RAY_45: [560, 400, 330, 560, 400, 330,],},
|
||||||
2: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],},
|
2: {RAY_m5: [560, 400, 330, 560, 400, 330,], RAY_5: [560, 400, 330, 560, 400, 330,], RAY_15: [560, 400, 330, 560, 400, 330,], RAY_25: [560, 400, 330, 560, 400, 330,], RAY_35: [560, 400, 330, 560, 400, 330,], RAY_45: [560, 400, 330, 560, 400, 330,],},
|
||||||
3: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],},
|
3: {RAY_m5: [560, 400, 330, 560, 400, 330,], RAY_5: [560, 400, 330, 560, 400, 330,], RAY_15: [560, 400, 330, 560, 400, 330,], RAY_25: [560, 400, 330, 560, 400, 330,], RAY_35: [560, 400, 330, 560, 400, 330,], RAY_45: [560, 400, 330, 560, 400, 330,],},
|
||||||
4: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],},
|
4: {RAY_m5: [560, 400, 330, 560, 400, 330,], RAY_5: [560, 400, 330, 560, 400, 330,], RAY_15: [560, 400, 330, 560, 400, 330,], RAY_25: [560, 400, 330, 560, 400, 330,], RAY_35: [560, 400, 330, 560, 400, 330,], RAY_45: [560, 400, 330, 560, 400, 330,],},
|
||||||
5: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],},
|
5: {RAY_m5: [560, 400, 330, 560, 400, 330,], RAY_5: [560, 400, 330, 560, 400, 330,], RAY_15: [560, 400, 330, 560, 400, 330,], RAY_25: [560, 400, 330, 560, 400, 330,], RAY_35: [560, 400, 330, 560, 400, 330,], RAY_45: [560, 400, 330, 560, 400, 330,],},
|
||||||
6: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],},
|
6: {RAY_m5: [560, 400, 330, 560, 400, 330,], RAY_5: [560, 400, 330, 560, 400, 330,], RAY_15: [560, 400, 330, 560, 400, 330,], RAY_25: [560, 400, 330, 560, 400, 330,], RAY_35: [560, 400, 330, 560, 400, 330,], RAY_45: [560, 400, 330, 560, 400, 330,],},
|
||||||
7: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],},
|
7: {RAY_m5: [560, 400, 330, 560, 400, 330,], RAY_5: [560, 400, 330, 560, 400, 330,], RAY_15: [560, 400, 330, 560, 400, 330,], RAY_25: [560, 400, 330, 560, 400, 330,], RAY_35: [560, 400, 330, 560, 400, 330,], RAY_45: [560, 400, 330, 560, 400, 330,],},
|
||||||
}
|
}
|
||||||
var constants: Dictionary
|
var constants: Dictionary
|
||||||
var pribor_config: Dictionary
|
var pribor_config: Dictionary
|
||||||
@@ -226,11 +265,12 @@ class TestPRD extends Node:
|
|||||||
var unit_prd: Object
|
var unit_prd: Object
|
||||||
var module_prd: Object
|
var module_prd: Object
|
||||||
var power_amplify: Array
|
var power_amplify: Array
|
||||||
|
var power_result: Dictionary
|
||||||
#var control_label: Label
|
#var control_label: Label
|
||||||
var control_timer: Timer = Timer.new()
|
var control_timer: Timer = Timer.new()
|
||||||
var ems_6666_timer: Timer = Timer.new()
|
var ems_6666_timer: Timer = Timer.new()
|
||||||
var machine_timer: Timer = Timer.new()
|
var machine_timer: Timer = Timer.new()
|
||||||
signal control_is_over(control_results: Dictionary, power_result: Dictionary)
|
signal control_is_over()
|
||||||
signal update_progress(progress_value: float)
|
signal update_progress(progress_value: float)
|
||||||
signal update_max_value_progress(max_progress_value: int)
|
signal update_max_value_progress(max_progress_value: int)
|
||||||
var cc: int = 0
|
var cc: int = 0
|
||||||
@@ -271,11 +311,11 @@ class TestPRD extends Node:
|
|||||||
socket_status_ems_g(status)
|
socket_status_ems_g(status)
|
||||||
_process_dkm_status(status)
|
_process_dkm_status(status)
|
||||||
if current_litera != 0:
|
if current_litera != 0:
|
||||||
var tek_litera: Dictionary = power_result[current_litera]
|
var tek_litera: Dictionary = power_for_litera[current_litera]
|
||||||
var interes = _get_ray_key(state)
|
var interes = _get_ray_key(state)
|
||||||
if interes != '':
|
if interes != '':
|
||||||
tek_litera[_get_ray_key(state)] = power_um_ukp(status, current_litera, tek_litera[_get_ray_key(state)])
|
tek_litera[_get_ray_key(state)] = power_um_ukp(status, current_litera, tek_litera[_get_ray_key(state)])
|
||||||
power_result[current_litera] = tek_litera
|
power_for_litera[current_litera] = tek_litera
|
||||||
|
|
||||||
|
|
||||||
func socket_status_ems_g(packet_form_yau_07: PackedByteArray) -> void:
|
func socket_status_ems_g(packet_form_yau_07: PackedByteArray) -> void:
|
||||||
@@ -349,7 +389,7 @@ class TestPRD extends Node:
|
|||||||
state = STATE_MACHINE.UG_SET_RAY_5
|
state = STATE_MACHINE.UG_SET_RAY_5
|
||||||
elif unit_prd.isa_ports[addr] & 0x07 == 5:
|
elif unit_prd.isa_ports[addr] & 0x07 == 5:
|
||||||
if not current_litera == 1:
|
if not current_litera == 1:
|
||||||
control_results = check_dou_result(control_results, power_result, self_name, current_litera, constants)
|
control_results = check_dou_result(control_results, power_for_litera, self_name, current_litera, constants)
|
||||||
state = STATE_MACHINE.IN_EMS_STOP
|
state = STATE_MACHINE.IN_EMS_STOP
|
||||||
elif unit_prd.isa_ports[addr] & 0x07 == 6:
|
elif unit_prd.isa_ports[addr] & 0x07 == 6:
|
||||||
state = STATE_MACHINE.UG_SET_RAY_0
|
state = STATE_MACHINE.UG_SET_RAY_0
|
||||||
@@ -400,8 +440,8 @@ class TestPRD extends Node:
|
|||||||
state = STATE_MACHINE.FS_TURN_ON
|
state = STATE_MACHINE.FS_TURN_ON
|
||||||
else:
|
else:
|
||||||
control_results = on_control_result(block_ip_config, control_results)
|
control_results = on_control_result(block_ip_config, control_results)
|
||||||
var send_power_pack = prep_power(power_result, self_name)
|
power_result = prep_power(power_for_litera, self_name)
|
||||||
emit_signal('control_is_over', control_results, send_power_pack)
|
emit_signal('control_is_over')
|
||||||
machine_timer.stop()
|
machine_timer.stop()
|
||||||
|
|
||||||
|
|
||||||
@@ -538,9 +578,9 @@ class TestPRD extends Node:
|
|||||||
constants = DEVICE_CONSTANT.PRD_V.CONSTANTS
|
constants = DEVICE_CONSTANT.PRD_V.CONSTANTS
|
||||||
pribor_config = DEVICE_CONSTANT.PRD_V.PRIBOR_CONFIG
|
pribor_config = DEVICE_CONSTANT.PRD_V.PRIBOR_CONFIG
|
||||||
fs_parameters = DEVICE_CONSTANT.PRD_V.FS_PARAMS
|
fs_parameters = DEVICE_CONSTANT.PRD_V.FS_PARAMS
|
||||||
block_ip_config = block_ip_config_n
|
block_ip_config = block_ip_config_v
|
||||||
block_kasseta_y5_config = block_kasseta_y5_prd_config_v
|
block_kasseta_y5_config = block_kasseta_y5_prd_config_v
|
||||||
control_results = control_results_n
|
control_results = control_results_v
|
||||||
current_litera = DEVICE_CONSTANT.PRD_V.START_LITERA
|
current_litera = DEVICE_CONSTANT.PRD_V.START_LITERA
|
||||||
if self_name == '1к' or self_name == '2к' or self_name == '3к' or self_name == '4к':
|
if self_name == '1к' or self_name == '2к' or self_name == '3к' or self_name == '4к':
|
||||||
progress_value = 0
|
progress_value = 0
|
||||||
@@ -548,9 +588,9 @@ class TestPRD extends Node:
|
|||||||
constants = DEVICE_CONSTANT.PRD_K.CONSTANTS
|
constants = DEVICE_CONSTANT.PRD_K.CONSTANTS
|
||||||
pribor_config = DEVICE_CONSTANT.PRD_K.PRIBOR_CONFIG
|
pribor_config = DEVICE_CONSTANT.PRD_K.PRIBOR_CONFIG
|
||||||
fs_parameters = DEVICE_CONSTANT.PRD_K.FS_PARAMS
|
fs_parameters = DEVICE_CONSTANT.PRD_K.FS_PARAMS
|
||||||
block_ip_config = block_ip_config_n
|
block_ip_config = block_ip_config_k
|
||||||
block_kasseta_y5_config = block_kasseta_y5_prd_config_n
|
block_kasseta_y5_config = block_kasseta_y5_prd_config_n
|
||||||
control_results = control_results_n
|
control_results = control_results_k
|
||||||
current_litera = DEVICE_CONSTANT.PRD_K.START_LITERA
|
current_litera = DEVICE_CONSTANT.PRD_K.START_LITERA
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user