Рефактор.
This commit is contained in:
@@ -1 +1 @@
|
|||||||
uid://dlcma54gh7fsk
|
uid://cwvikiygf8b1m
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[gd_scene load_steps=16 format=3 uid="uid://m5s87q7m66lj"]
|
[gd_scene load_steps=16 format=3 uid="uid://m5s87q7m66lj"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://d3iqb5e4g81m5" path="res://scenes/контроль/элемент-г.tscn" id="1_8dmgr"]
|
[ext_resource type="PackedScene" uid="uid://d3iqb5e4g81m5" path="res://scenes/контроль/элемент-г.tscn" id="1_8dmgr"]
|
||||||
[ext_resource type="Script" uid="uid://cwvikiygf8b1m" path="res://scenes/pribor-prd-k/pribor_prd_k.gd" id="1_tpdyp"]
|
[ext_resource type="Script" uid="uid://cwvikiygf8b1m" path="res://scenes/pribor-prd-k/pribor-prd-k.gd" id="1_tpdyp"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c4mdrmk7h638f" path="res://data/nine-patch-round.png" id="2_14h25"]
|
[ext_resource type="Texture2D" uid="uid://c4mdrmk7h638f" path="res://data/nine-patch-round.png" id="2_14h25"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cm5jd4gjrrpba" path="res://scenes/контроль/кассета-у-5-к.tscn" id="2_tb85r"]
|
[ext_resource type="PackedScene" uid="uid://cm5jd4gjrrpba" path="res://scenes/контроль/кассета-у-5-к.tscn" id="2_tb85r"]
|
||||||
[ext_resource type="Script" uid="uid://dow4nqi6hbak8" path="res://scenes/контроль/кассета-у-5.gd" id="3_wip3a"]
|
[ext_resource type="Script" uid="uid://dow4nqi6hbak8" path="res://scenes/контроль/кассета-у-5.gd" id="3_wip3a"]
|
||||||
|
|||||||
@@ -1,394 +0,0 @@
|
|||||||
@tool
|
|
||||||
extends "res://scenes/контроль/прибор.gd"
|
|
||||||
|
|
||||||
const Constants = {
|
|
||||||
"IN_BLANK_PRD": 1,
|
|
||||||
"OUT_BLANK_PRD": 13,
|
|
||||||
"CI_1_OT_FS": 8,
|
|
||||||
"CI_6_OT_FS": 13,
|
|
||||||
"CI_7_OT_FS": 14,
|
|
||||||
"CI_1_B_UF": 3,
|
|
||||||
"CI_6_B_UF": 4,
|
|
||||||
"CI_7_B_UF": 5,
|
|
||||||
"CONST_MIN_TEMP": -25,
|
|
||||||
"MAXIMUM_CODE_ADC": 3796,
|
|
||||||
"MINIMUM_CODE_AD": 2660,
|
|
||||||
"TEMPERATURE_UKP_1": 47,
|
|
||||||
"TEMPERATURE_UKP_2": 79,
|
|
||||||
"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": 70,
|
|
||||||
"POWER_THRESHOLD": 40,
|
|
||||||
"TIMER_DELAY": 1.5,
|
|
||||||
"dou_ray_nuber": 0x3,
|
|
||||||
"attenutor_um_1": 0x7,
|
|
||||||
"attenutor_um_2": 0x7,
|
|
||||||
"attenutor_um_3": 0x7,
|
|
||||||
}
|
|
||||||
enum STATE_VAL { NONE = 0, GOOD = 1, ERROR = 2 }
|
|
||||||
# Основные переменные
|
|
||||||
var count_packet_1:int = 0
|
|
||||||
var count_packet_2:int = 0
|
|
||||||
var power_array_1: Array = []
|
|
||||||
var power_array_2: Array = []
|
|
||||||
var currecnt_unit: String
|
|
||||||
var ug_work_1: int
|
|
||||||
var ug_work_2: int
|
|
||||||
var ug_work_3: int
|
|
||||||
# Флаги и таймеры
|
|
||||||
var control_timer: Timer = Timer.new()
|
|
||||||
var flag_timer_started: bool = false
|
|
||||||
# Результаты контроля
|
|
||||||
var _control_results: Dictionary = {
|
|
||||||
"block_ip": false, # Проверка касет П1 и ИП МА2000
|
|
||||||
"temperature": true, # Проверка температур УМ
|
|
||||||
"dkm_1": false, # Проверка ДКМ
|
|
||||||
"dkm_2": false, # Проверка ДКМ
|
|
||||||
"power_ukp": false, # Мощность от УКП
|
|
||||||
"fs_1": false, # Проверка ФС
|
|
||||||
"fs_2": false,
|
|
||||||
"fs_3": false,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
initialize_connections()
|
|
||||||
setup_timer()
|
|
||||||
set_default_state()
|
|
||||||
|
|
||||||
|
|
||||||
func initialize_connections() -> void:
|
|
||||||
signaller.conn(signaller.fs_update_state, Callable(self, 'on_fs_update_state'))
|
|
||||||
var unit_key = settings.get_unit_key(get_meta('unit_name')[0])
|
|
||||||
var unit_prd = network.units[unit_key]
|
|
||||||
currecnt_unit = unit_prd.name
|
|
||||||
unit_prd.connect('data_received', Callable(self, 'on_data_received'))
|
|
||||||
unit_prd.connect('line_changed', Callable(self, 'on_line_changed'))
|
|
||||||
|
|
||||||
|
|
||||||
func setup_timer() -> void:
|
|
||||||
add_child(control_timer)
|
|
||||||
control_timer.connect('timeout', Callable(self, 'on_stop_control'))
|
|
||||||
control_timer.one_shot = true
|
|
||||||
control_timer.wait_time = 10.0
|
|
||||||
control_timer.start()
|
|
||||||
|
|
||||||
|
|
||||||
func set_default_state() -> void:
|
|
||||||
for group in get_tree().get_nodes_in_group('default_reset'):
|
|
||||||
group.state = STATE_VAL.NONE
|
|
||||||
|
|
||||||
for group in get_tree().get_nodes_in_group('power_amplifier'):
|
|
||||||
group.state = STATE_VAL.NONE
|
|
||||||
|
|
||||||
|
|
||||||
func _enter_tree() -> void:
|
|
||||||
$control_result.text = ''
|
|
||||||
signaller.connect('режим_работа', Callable(self, 'on_mode_changed').bind(false))
|
|
||||||
_on_control_fs(true)
|
|
||||||
|
|
||||||
|
|
||||||
func _exit_tree() -> void:
|
|
||||||
var unit_key = settings.get_unit_key(get_meta('unit_name')[0])
|
|
||||||
var unit_prd = network.units[unit_key]
|
|
||||||
var prd_module = prd.prd_dict[unit_prd.name]
|
|
||||||
|
|
||||||
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]])
|
|
||||||
|
|
||||||
|
|
||||||
func on_line_changed(unit_prd: Object) -> void:
|
|
||||||
if not unit_prd.online:
|
|
||||||
set_default_state()
|
|
||||||
|
|
||||||
|
|
||||||
func on_data_received(unit_prd: Object) -> void:
|
|
||||||
if not is_inside_tree():
|
|
||||||
return
|
|
||||||
|
|
||||||
var status = unit_prd.status
|
|
||||||
check_block_ip(status)
|
|
||||||
check_temperature_um(status)
|
|
||||||
# Обработка данных ЭМС
|
|
||||||
_process_ems_data(status)
|
|
||||||
|
|
||||||
if flag_timer_started:
|
|
||||||
check_dkm(status, Constants.DKM_BIT_1)
|
|
||||||
check_dkm(status, Constants.DKM_BIT_6)
|
|
||||||
check_dkm(status, Constants.DKM_BIT_7)
|
|
||||||
# Обработка мощности от УКП
|
|
||||||
_process_ukp_power(status)
|
|
||||||
|
|
||||||
|
|
||||||
# Обрабатывает данные ЭМС и обновляет UI панели
|
|
||||||
func _process_ems_data(status: PackedByteArray) -> void:
|
|
||||||
## Контроль ЭМС
|
|
||||||
var in_blank: int = status.decode_u16(Constants.IN_BLANK_PRD)
|
|
||||||
var out_blank: int = status.decode_u16(Constants.OUT_BLANK_PRD)
|
|
||||||
|
|
||||||
# Обновление фреймов для входных сигналов
|
|
||||||
$Monitoring_panel/in_fs_1.frame = (in_blank >> Constants.CI_6_OT_FS) & 1
|
|
||||||
$Monitoring_panel/in_fs_2.frame = (in_blank >> Constants.CI_7_OT_FS) & 1
|
|
||||||
$Monitoring_panel/in_fs_3.frame = (in_blank >> Constants.CI_1_OT_FS) & 1
|
|
||||||
|
|
||||||
# Обновление фреймов для выходных сигналов ЭМС
|
|
||||||
$Monitoring_panel/out_ems_1.frame = (out_blank >> Constants.CI_6_B_UF) & 1
|
|
||||||
$Monitoring_panel/out_ems_2.frame = (out_blank >> Constants.CI_7_B_UF) & 1
|
|
||||||
$Monitoring_panel/out_ems_3.frame = (out_blank >> Constants.CI_1_B_UF) & 1
|
|
||||||
|
|
||||||
|
|
||||||
## Проверка касет П1 и ИП МА2000
|
|
||||||
func check_block_ip(status_prd: PackedByteArray) -> void :
|
|
||||||
var ug_online: bool = (status_prd[0] >> 1) & 1
|
|
||||||
if ug_online:
|
|
||||||
const BYTE_DRY_CONTACT: int = 27
|
|
||||||
const BIT_MAA2000_1: int = 0
|
|
||||||
const BIT_MAA2000_2: int = 1
|
|
||||||
const BIT_IP9_50_1: int = 2
|
|
||||||
const BIT_IP9_50_2: int = 3
|
|
||||||
const BIT_IP12_50_1: int = 4
|
|
||||||
const BIT_IP9_50_3: int = 5
|
|
||||||
const BIT_IP12_50_2: int = 6
|
|
||||||
|
|
||||||
var maa2000_1 = status_prd[BYTE_DRY_CONTACT] >> BIT_MAA2000_1 & 1
|
|
||||||
var maa2000_2 = status_prd[BYTE_DRY_CONTACT] >> BIT_MAA2000_2 & 1
|
|
||||||
var ip9_50_1 = status_prd[BYTE_DRY_CONTACT] >> BIT_IP9_50_1 & 1
|
|
||||||
var ip9_50_2 = status_prd[BYTE_DRY_CONTACT] >> BIT_IP9_50_2 & 1
|
|
||||||
var ip12_50_1 = status_prd[BYTE_DRY_CONTACT] >> BIT_IP12_50_1 & 1
|
|
||||||
var ip9_50_3 = status_prd[BYTE_DRY_CONTACT] >> BIT_IP9_50_3 & 1
|
|
||||||
var ip12_50_2 = status_prd[BYTE_DRY_CONTACT] >> BIT_IP12_50_2 & 1
|
|
||||||
|
|
||||||
$maa2000_A23.state = STATE_VAL.ERROR if maa2000_1 else STATE_VAL.GOOD
|
|
||||||
$maa2000_A22.state = STATE_VAL.ERROR if maa2000_2 else STATE_VAL.GOOD
|
|
||||||
$kasseta_p_1/ref_A26.state = STATE_VAL.ERROR if ip9_50_1 else STATE_VAL.GOOD
|
|
||||||
$kasseta_p_1/ref_A23.state = STATE_VAL.ERROR if ip9_50_2 else STATE_VAL.GOOD
|
|
||||||
$kasseta_p_1/ref_A24.state = STATE_VAL.ERROR if ip12_50_1 else STATE_VAL.GOOD
|
|
||||||
$kasseta_p_2/ref_A26.state = STATE_VAL.ERROR if ip9_50_3 else STATE_VAL.GOOD
|
|
||||||
$kasseta_p_2/ref_A23.state = STATE_VAL.ERROR if ip12_50_2 else STATE_VAL.GOOD
|
|
||||||
else:
|
|
||||||
$maa2000_A23.state = STATE_VAL.NONE
|
|
||||||
$maa2000_A22.state = STATE_VAL.NONE
|
|
||||||
$kasseta_p_1/ref_A26.state = STATE_VAL.NONE
|
|
||||||
$kasseta_p_1/ref_A23.state = STATE_VAL.NONE
|
|
||||||
$kasseta_p_1/ref_A24.state = STATE_VAL.NONE
|
|
||||||
$kasseta_p_2/ref_A26.state = STATE_VAL.NONE
|
|
||||||
$kasseta_p_2/ref_A23.state = STATE_VAL.NONE
|
|
||||||
|
|
||||||
_control_results["block_ip"] = (
|
|
||||||
$maa2000_A23.state == STATE_VAL.GOOD and
|
|
||||||
$maa2000_A22.state == STATE_VAL.GOOD and
|
|
||||||
$kasseta_p_1/ref_A26.state == STATE_VAL.GOOD and
|
|
||||||
$kasseta_p_1/ref_A23.state == STATE_VAL.GOOD and
|
|
||||||
$kasseta_p_1/ref_A24.state == STATE_VAL.GOOD and
|
|
||||||
$kasseta_p_2/ref_A26.state == STATE_VAL.GOOD and
|
|
||||||
$kasseta_p_2/ref_A23.state == STATE_VAL.GOOD
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
## Проверка температур УМ от УКП
|
|
||||||
func check_temperature_um(status_prd: PackedByteArray) -> void:
|
|
||||||
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
|
|
||||||
const TEMP: float = 115.0 / (Constants.MAXIMUM_CODE_ADC - Constants.MINIMUM_CODE_AD)
|
|
||||||
var ukp1_online: int = (status_prd[0] >> 2) & 1
|
|
||||||
if ukp1_online:
|
|
||||||
var tmp_1: int
|
|
||||||
var temperature_ukp_1: int
|
|
||||||
for i_temp in range(6):
|
|
||||||
temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * i_temp)
|
|
||||||
tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3)
|
|
||||||
power_amplifier[i_temp].value0 = tmp_1
|
|
||||||
# Темпуратура от УМ литеры 1
|
|
||||||
temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * 7)
|
|
||||||
tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3)
|
|
||||||
power_amplifier[6].value0 = tmp_1
|
|
||||||
|
|
||||||
var ukp2_online = (status_prd[0] >> 3) & 1
|
|
||||||
if ukp2_online:
|
|
||||||
for i_temp in range(6):
|
|
||||||
var temperature_ukp_2: int = status_prd.decode_u16(Constants.TEMPERATURE_UKP_2 + 2 * i_temp)
|
|
||||||
var tmp_2: int = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_2) * TEMP + 3)
|
|
||||||
power_amplifier[i_temp+7].value0 = tmp_2
|
|
||||||
|
|
||||||
|
|
||||||
## Проверка ДКМ
|
|
||||||
func check_dkm(status_prd: PackedByteArray, bit_dkm: int) -> void:
|
|
||||||
const DKM: int = 28
|
|
||||||
|
|
||||||
var status_dkm = status_prd[DKM] >> bit_dkm & 1
|
|
||||||
if bit_dkm == 5:
|
|
||||||
$dou6_A7.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR
|
|
||||||
$kasseta_fs_kd/ref_A2.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR
|
|
||||||
_control_results["dkm_1"] = status_dkm
|
|
||||||
elif bit_dkm == 6:
|
|
||||||
$dou7_A8.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR
|
|
||||||
$kasseta_fs_kd/ref_A4.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR
|
|
||||||
_control_results["dkm_2"] = status_dkm
|
|
||||||
elif bit_dkm == 0:
|
|
||||||
$kasseta_fs_kd/ref_A7.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR
|
|
||||||
_control_results["dkm_3"] = status_dkm
|
|
||||||
|
|
||||||
|
|
||||||
func _process_ukp_power(status: PackedByteArray) -> void:
|
|
||||||
## Мощность УМ от УКП 1
|
|
||||||
var arr_power_ukp_1: Array = []
|
|
||||||
|
|
||||||
if (status[0] >> 2) & 1:
|
|
||||||
var power_ukp_1: int
|
|
||||||
for i_power in range(6):
|
|
||||||
power_ukp_1 = status.decode_u16(Constants.POWER_UKP_1 + 2 * i_power)
|
|
||||||
arr_power_ukp_1.append(power_ukp_1)
|
|
||||||
# Мощность от УМ (УКП) литеры 3
|
|
||||||
power_ukp_1 = status.decode_u16(Constants.POWER_UKP_1 + 2 * 7)
|
|
||||||
arr_power_ukp_1.append(power_ukp_1)
|
|
||||||
|
|
||||||
if count_packet_1 == 0:
|
|
||||||
power_array_1 = arr_power_ukp_1
|
|
||||||
else:
|
|
||||||
for i in arr_power_ukp_1.size():
|
|
||||||
if arr_power_ukp_1[i] > power_array_1[i]:
|
|
||||||
power_array_1[i] = arr_power_ukp_1[i]
|
|
||||||
|
|
||||||
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
|
|
||||||
for i in 7:
|
|
||||||
power_amplifier[i].value1 = '%d' % power_array_1[i]
|
|
||||||
power_amplifier[i].state = STATE_VAL.GOOD if power_array_1[i] > 40 else STATE_VAL.ERROR
|
|
||||||
count_packet_1 += 1
|
|
||||||
|
|
||||||
## Мощность УМ от УКП 2
|
|
||||||
var arr_power_ukp_2: Array = []
|
|
||||||
if (status[0] >> 2) & 1:
|
|
||||||
for i_power in range(6):
|
|
||||||
var power_ukp_2 = status.decode_u16(Constants.POWER_UKP_2 + 2 * i_power)
|
|
||||||
arr_power_ukp_2.append(power_ukp_2)
|
|
||||||
|
|
||||||
if count_packet_2 == 0:
|
|
||||||
power_array_2 = arr_power_ukp_2
|
|
||||||
else:
|
|
||||||
for i in arr_power_ukp_2.size():
|
|
||||||
if arr_power_ukp_2[i] > power_array_2[i]:
|
|
||||||
power_array_2[i] = arr_power_ukp_2[i]
|
|
||||||
|
|
||||||
for i in 6:
|
|
||||||
power_amplifier[i+7].value1 = '%d' % power_array_2[i]
|
|
||||||
power_amplifier[i+7].state = STATE_VAL.GOOD if power_array_2[i] > 40 else STATE_VAL.ERROR
|
|
||||||
|
|
||||||
count_packet_2 += 1
|
|
||||||
|
|
||||||
_control_results["power_ukp"] = true
|
|
||||||
for amp in power_amplifier:
|
|
||||||
if amp.state != STATE_VAL.GOOD:
|
|
||||||
_control_results["power_ukp"] = false
|
|
||||||
break
|
|
||||||
|
|
||||||
|
|
||||||
func _on_control_fs(mode: bool) -> void:
|
|
||||||
var interfer_name: String
|
|
||||||
var fs_arr: Array
|
|
||||||
if mode:
|
|
||||||
interfer_name = 'k1'
|
|
||||||
fs_arr = [[90.0, 2450.0, 1500.0, 23]]
|
|
||||||
else:
|
|
||||||
interfer_name = 'off'
|
|
||||||
fs_arr = [[90.0, 2450.0, 1500.0, 23]]
|
|
||||||
signaller.emit_signal('interfer_init', interfer_name, fs_arr, 50.0)
|
|
||||||
|
|
||||||
|
|
||||||
func on_stop_control() -> void:
|
|
||||||
print_debug('Отсановка контроля ПРД')
|
|
||||||
_on_control_fs(false)
|
|
||||||
on_control_result()
|
|
||||||
|
|
||||||
|
|
||||||
func on_fs_update_state(packet_type_7: Dictionary) -> void:
|
|
||||||
var parts = currecnt_unit.split('-')
|
|
||||||
var last_part = parts[-1] # Прибор
|
|
||||||
|
|
||||||
# Словарь для маппинга: ключ - номер FS, значение - целевая нода и условие прибора
|
|
||||||
var fs_mapping = {
|
|
||||||
0: { "node": $kasseta_fs_kd/ref_A3, "condition": last_part == '1к' },
|
|
||||||
1: { "node": $kasseta_fs_kd/ref_A3, "condition": last_part == '4к' },
|
|
||||||
2: { "node": $kasseta_fs_kd/ref_A3, "condition": last_part == '3к' },
|
|
||||||
3: { "node": $kasseta_fs_kd/ref_A3, "condition": last_part == '2к' },
|
|
||||||
20: { "node": $kasseta_fs_kd/ref_A6, "condition": last_part == '1к' },
|
|
||||||
21: { "node": $kasseta_fs_kd/ref_A6, "condition": last_part == '4к' },
|
|
||||||
22: { "node": $kasseta_fs_kd/ref_A6, "condition": last_part == '3к' },
|
|
||||||
23: { "node": $kasseta_fs_kd/ref_A6, "condition": last_part == '2к' },
|
|
||||||
24: { "node": $kasseta_fs_kd/ref_A5, "condition": last_part == '1к' },
|
|
||||||
25: { "node": $kasseta_fs_kd/ref_A5, "condition": last_part == '4к' },
|
|
||||||
26: { "node": $kasseta_fs_kd/ref_A5, "condition": last_part == '3к' },
|
|
||||||
27: { "node": $kasseta_fs_kd/ref_A5, "condition": last_part == '2к' },
|
|
||||||
}
|
|
||||||
for fs in packet_type_7:
|
|
||||||
if fs in fs_mapping and fs_mapping[fs]["condition"]:
|
|
||||||
var data = packet_type_7[fs]
|
|
||||||
var state = STATE_VAL.GOOD if data.isg == 1 else STATE_VAL.ERROR if data.isg == 0 else STATE_VAL.NONE
|
|
||||||
fs_mapping[fs]["node"].state = state
|
|
||||||
if fs < 4:
|
|
||||||
_control_results["fs_1"] = (data.isg == 1)
|
|
||||||
elif fs <24:
|
|
||||||
_control_results["fs_2"] = (data.isg == 1)
|
|
||||||
else:
|
|
||||||
_control_results["fs_3"] = (data.isg == 1)
|
|
||||||
if _control_results['fs_1'] and _control_results["fs_2"] and _control_results["fs_3"] and not flag_timer_started:
|
|
||||||
on_ug_setting()
|
|
||||||
control_timer.wait_time = Constants.TIMER_DELAY
|
|
||||||
control_timer.start()
|
|
||||||
flag_timer_started = true
|
|
||||||
|
|
||||||
|
|
||||||
func on_ug_setting() -> void:
|
|
||||||
var unit_key = settings.get_unit_key(get_meta('unit_name')[0])
|
|
||||||
var unit_prd = network.units[unit_key]
|
|
||||||
|
|
||||||
if unit_prd.isa_ports.has(Constants.ADDR_UG_LITERA_1):
|
|
||||||
ug_work_1 = unit_prd.isa_ports[Constants.ADDR_UG_LITERA_1]
|
|
||||||
if unit_prd.isa_ports.has(Constants.ADDR_UG_LITERA_2):
|
|
||||||
ug_work_2 = unit_prd.isa_ports[Constants.ADDR_UG_LITERA_2]
|
|
||||||
if unit_prd.isa_ports.has(Constants.ADDR_UG_LITERA_3):
|
|
||||||
ug_work_3 = unit_prd.isa_ports[Constants.ADDR_UG_LITERA_3]
|
|
||||||
|
|
||||||
var result_1 = ((Constants.attenutor_um_1 & 0x07) << 3) | (Constants.dou_ray_nuber & 0x07)
|
|
||||||
var result_2 = ((Constants.attenutor_um_2 & 0x07) << 3) | (Constants.dou_ray_nuber & 0x07)
|
|
||||||
var prd_module = prd.prd_dict[unit_prd.name]
|
|
||||||
prd_module.cmd_array.append([unit_prd.CmdCode.WRITE_ISA, [Constants.ADDR_UG_LITERA_1, result_1,
|
|
||||||
Constants.ADDR_UG_LITERA_2, result_2,
|
|
||||||
Constants.ADDR_UG_LITERA_3, Constants.attenutor_um_3,
|
|
||||||
Constants.BASE_ADDR_EMS_G, 6666]])
|
|
||||||
|
|
||||||
prd_module.cmd_array.append([unit_prd.CmdCode.READ_ISA, [Constants.ADDR_UG_LITERA_1, Constants.ADDR_UG_LITERA_2, Constants.ADDR_UG_LITERA_3]])
|
|
||||||
|
|
||||||
func on_mode_changed(in_tree: bool) -> void:
|
|
||||||
if not in_tree:
|
|
||||||
queue_free()
|
|
||||||
|
|
||||||
|
|
||||||
func on_control_result() -> void:
|
|
||||||
var result: bool = true
|
|
||||||
|
|
||||||
for key in _control_results:
|
|
||||||
if not _control_results[key]:
|
|
||||||
if key == 'fs_1':
|
|
||||||
$kasseta_fs_kd/ref_A3.state = STATE_VAL.ERROR
|
|
||||||
if key == 'fs_2':
|
|
||||||
$kasseta_fs_kd/ref_A6.state = STATE_VAL.ERROR
|
|
||||||
if key == 'fs_3':
|
|
||||||
$kasseta_fs_kd/ref_A5.state = STATE_VAL.ERROR
|
|
||||||
result = false
|
|
||||||
print_debug('%s false' % key)
|
|
||||||
|
|
||||||
var parts = currecnt_unit.split('-')
|
|
||||||
var last_part = parts[-1] # Прибор
|
|
||||||
if result:
|
|
||||||
$control_result.text = 'Прибор ПРД-%s исправен' % last_part
|
|
||||||
$control_result.add_theme_color_override("font_color", Color.AQUAMARINE)
|
|
||||||
else:
|
|
||||||
$control_result.text = 'Прибор ПРД-%s неисправен' % last_part
|
|
||||||
$control_result.add_theme_color_override("font_color", Color.CRIMSON)
|
|
||||||
await get_tree().create_timer(Constants.TIMER_DELAY).timeout
|
|
||||||
flag_timer_started = false
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://cwvikiygf8b1m
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=14 format=3 uid="uid://dnuexoef2nnv5"]
|
[gd_scene load_steps=14 format=3 uid="uid://dnuexoef2nnv5"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cto2r4ipew65m" path="res://scenes/pribor-prd-n/pribor_prd_n.gd" id="1_bnnv3"]
|
[ext_resource type="Script" uid="uid://cto2r4ipew65m" path="res://scenes/pribor-prd-n/pribor-prd-n.gd" id="1_bnnv3"]
|
||||||
[ext_resource type="PackedScene" uid="uid://d3iqb5e4g81m5" path="res://scenes/контроль/элемент-г.tscn" id="2_is25t"]
|
[ext_resource type="PackedScene" uid="uid://d3iqb5e4g81m5" path="res://scenes/контроль/элемент-г.tscn" id="2_is25t"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c4mdrmk7h638f" path="res://data/nine-patch-round.png" id="3_meukj"]
|
[ext_resource type="Texture2D" uid="uid://c4mdrmk7h638f" path="res://data/nine-patch-round.png" id="3_meukj"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bk1655p4e8y4u" path="res://scenes/контроль/кассета-у-5-нв.tscn" id="4_xkifg"]
|
[ext_resource type="PackedScene" uid="uid://bk1655p4e8y4u" path="res://scenes/контроль/кассета-у-5-нв.tscn" id="4_xkifg"]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=15 format=3 uid="uid://cvskpe1ti3p45"]
|
[gd_scene load_steps=15 format=3 uid="uid://cvskpe1ti3p45"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cvuosuvjaci1h" path="res://scenes/pribor-prd-v/pribor_prd_v.gd" id="1_c20s6"]
|
[ext_resource type="Script" uid="uid://cvuosuvjaci1h" path="res://scenes/pribor-prd-v/pribor-prd-v.gd" id="1_c20s6"]
|
||||||
[ext_resource type="PackedScene" uid="uid://d3iqb5e4g81m5" path="res://scenes/контроль/элемент-г.tscn" id="2_xpo4b"]
|
[ext_resource type="PackedScene" uid="uid://d3iqb5e4g81m5" path="res://scenes/контроль/элемент-г.tscn" id="2_xpo4b"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c4mdrmk7h638f" path="res://data/nine-patch-round.png" id="3_wyy1b"]
|
[ext_resource type="Texture2D" uid="uid://c4mdrmk7h638f" path="res://data/nine-patch-round.png" id="3_wyy1b"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bk1655p4e8y4u" path="res://scenes/контроль/кассета-у-5-нв.tscn" id="4_gl2bl"]
|
[ext_resource type="PackedScene" uid="uid://bk1655p4e8y4u" path="res://scenes/контроль/кассета-у-5-нв.tscn" id="4_gl2bl"]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=4 format=3 uid="uid://dwxn2puh462nl"]
|
[gd_scene load_steps=4 format=3 uid="uid://dwxn2puh462nl"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://pvhb2f04v00w" path="res://scenes/pribor-uf/pribor_uf.gd" id="1_7gtpa"]
|
[ext_resource type="Script" uid="uid://pvhb2f04v00w" path="res://scenes/pribor-uf/pribor-uf.gd" id="1_7gtpa"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c4mdrmk7h638f" path="res://data/nine-patch-round.png" id="2_ho0da"]
|
[ext_resource type="Texture2D" uid="uid://c4mdrmk7h638f" path="res://data/nine-patch-round.png" id="2_ho0da"]
|
||||||
[ext_resource type="PackedScene" uid="uid://p2suppildvq0" path="res://scenes/контроль/элемент-в.tscn" id="3_dp78y"]
|
[ext_resource type="PackedScene" uid="uid://p2suppildvq0" path="res://scenes/контроль/элемент-в.tscn" id="3_dp78y"]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user