Исправление

This commit is contained in:
Maxim
2025-08-12 23:21:00 +03:00
parent bf6c0463cc
commit 82a97d6b9e
2 changed files with 28 additions and 85 deletions

View File

@@ -53,17 +53,17 @@ class TestPRD extends Node:
func _process(_delta: float) -> void:
pass
func on_data_received(unit_pribor: Object) -> void:
if not is_inside_tree():
return
var status: PackedByteArray = unit_pribor.status
block_config = check_block_ip(status, block_config)
check_temperature_um(status, power_amplify)
if current_fs == 1 and control_results.fs_1:
control_results = check_dkm(status, constants.DKM_BIT_1, control_results)
flag_check_dkm = control_results.dkm_1
@@ -73,15 +73,15 @@ class TestPRD extends Node:
elif current_fs == 7 and control_results.fs_7:
control_results = check_dkm(status, constants.DKM_BIT_7, control_results)
flag_check_dkm = control_results.dkm_7
if control_results.dkm_1 and current_fs == 1:
power_result['ray_25_1'] = power_um_ukp(status, current_fs, power_result['ray_25_1'])
if control_results.dkm_6 and current_fs == 6:
power_result['ray_25_6'] = power_um_ukp(status, current_fs, power_result['ray_25_6'])
if control_results.dkm_7 and current_fs == 7:
power_result['ray_25_7'] = power_um_ukp(status, current_fs, power_result['ray_25_7'])
func on_fs_update_state(packet_type_7: Dictionary, fs_mapping: Dictionary, fs_array: Array) -> void:
var fs_result: Dictionary
if current_fs == 1:
@@ -96,7 +96,7 @@ class TestPRD extends Node:
if fs_result.has(fs_meta):
fs.state = fs_result[fs_meta]
control_results[fs_meta] = fs_result[fs_meta]
func state_control_machine() -> void:
match state:
@@ -107,21 +107,21 @@ class TestPRD extends Node:
else:
on_control_result()
state = STATE_MASHINE.AWAIT
STATE_MASHINE.FS_TURN_ON:
control_label.text = 'Выполняется включение ФС-%s' % current_fs
manage_fs(true, self_name, pribor_config, fs_parameters, current_fs, constants.POWER_UM)
control_timer.wait_time = constants.TIMER_DELAY
control_timer.start()
state = STATE_MASHINE.FS_WORK
STATE_MASHINE.FS_WORK:
control_label.text = 'Выполняется проверка ФС-%s' % current_fs
if (current_fs == 6 and flag_check_dkm and not flag_timer_started) or \
(current_fs == 7 and flag_check_dkm and not flag_timer_started) or \
(current_fs == 1 and not flag_timer_started):
state = STATE_MASHINE.UG_SET
STATE_MASHINE.UG_SET:
control_label.text = 'Выполняется настройка угла (%s) и атт (%s, %s, %s)' % [constants.dou_ray_nuber, constants.attenutor_um_1, constants.attenutor_um_2, constants.attenutor_um_3]
on_ug_setting()
@@ -132,12 +132,12 @@ class TestPRD extends Node:
module_prd.cmd_array.append([unit_prd.CmdCode.WRITE_ISA, [constants.BASE_ADDR_EMS_G, 6666]])
flag_timer_started = true
state = STATE_MASHINE.FS_WORK
STATE_MASHINE.FS_TURN_OFF:
control_label.text = 'Выполняется отключение ФС-%s' % current_fs
manage_fs(false, self_name, pribor_config, fs_parameters, current_fs, constants.POWER_UM)
state = STATE_MASHINE.STOP_CONTROL
STATE_MASHINE.STOP_CONTROL:
control_label.text = 'Выполняется завершение проверки ФС-%s' % current_fs
power_um_control_result()
@@ -148,8 +148,8 @@ class TestPRD extends Node:
6: current_fs = 7
7: current_fs = 0
state = STATE_MASHINE.INIT
func initialize_connections() -> void:
var current_unit = unit_prd.name
var parts = current_unit.split('-')
@@ -182,12 +182,12 @@ class TestPRD extends Node:
func on_control_result() -> void:
print('on_control_result')
func on_stop_control() -> void:
state = STATE_MASHINE.FS_TURN_OFF
func on_ug_setting() -> void:
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)
@@ -198,15 +198,15 @@ class TestPRD extends Node:
module_prd.cmd_array.append([unit_prd.CmdCode.READ_ISA, [constants.ADDR_UG_LITERA_1, constants.ADDR_UG_LITERA_2, constants.ADDR_UG_LITERA_3]])
func power_um_control_result() -> void:
control_results['power_um'] = true
for amp in power_result[cur_ray]:
if amp > constants.TEMP_THRESHOLD:
control_results['power_um'] = false
break
static func manage_fs(mode: bool, pribor: String, p_conf: Dictionary, fs_params: Dictionary, cur_fs: int, power_um: int) -> void:
# Получаем конфигурацию для текущего прибора
var config: Dictionary = p_conf[pribor]
@@ -227,7 +227,7 @@ class TestPRD extends Node:
])
signaller.emit_signal('interfer_init', interfer_name, fs_arr, power_um)
## Проверка касет П1 и ИП МА2000
static func check_block_ip(status_prd: PackedByteArray, block_ip_config: Dictionary) -> Dictionary:
# Конфигурация проверяемых блоков
@@ -239,7 +239,7 @@ class TestPRD extends Node:
var status = status_prd[byte_dry] >> bit & 1
block_ip_config[block][1] = false if status else true
return block_ip_config
## Проверка температур УМ от УКП
static func check_temperature_um(status_prd: PackedByteArray, power_amplifier: Array) -> void:
const Constants: Dictionary = {
@@ -269,8 +269,8 @@ class TestPRD extends Node:
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
## Проверка ДКМ
static func check_dkm(status_prd: PackedByteArray, bit_dkm: int, dkm_result: Dictionary) -> Dictionary:
var dkm: int = 28