Отладка проверки ПРД-К прибора

This commit is contained in:
MaD_CaT
2025-12-01 13:22:38 +03:00
parent bee611be07
commit 0e8fa94bfc

View File

@@ -296,7 +296,7 @@ func on_data_received(unit_pribor: Object) -> void:
block_kasseta_y5_config = check_block_kasseta_y5(status, block_kasseta_y5_config, flags.no_trust_yau07)
_set_control_result('block_kasseta', on_y5_control_result(block_kasseta_y5_config))
_set_control_result('temperature', flags.temperature_ok)
_set_control_result('block_ip', on_dry_control_result(block_ip_config))
_set_control_result('block_ip', on_dry_control_result(block_ip_config))
if not flags.in_control: return
if machine_timer.is_stopped(): return
if flags.no_trust_yau07: return
@@ -415,7 +415,7 @@ func _handle_fs_turn_on_state() -> void:
state = STATE_MACHINE.FS_WORK
static func take_ecm_id(ecm_dic: Dictionary, device_name: String, current_lit: int) -> int:
static func take_ecm_id(ecm_dic: Dictionary, device_name: String, current_lit: int) -> int:
# Получаем целевой nmfs из таблицы
var target_nmfs: int = LITER_TO_NMFS.get(device_name, {}).get(current_lit, -1)
if target_nmfs == -1:
@@ -555,14 +555,14 @@ func _handle_ray_read_mode() -> void:
func _handle_ray_write_mode(ray_num: int) -> void:
if not _can_write_ray():
return
if ray_num == 0 and current_litera != 1 and not control_timer.is_stopped():
control_timer.stop()
# Установка луча
if not flags.write_isa:
_handle_ug_set_state(ray_num)
flags.write_isa = true
# Ожидание COUNT_PACK_POWER_RECIEVE пакетов от ЯУ-07
if count_packets_power < COUNT_PACK_POWER_RECIEVE: return
state = STATE_MACHINE.READ_ISA
@@ -999,12 +999,13 @@ static func on_ug_setting(prd_unit: Object, settings_ug: Dictionary, prd_cmd_arr
var result: int
if cur_litera in [2, 4, 6]:
result = ((settings_ug.ATT_UM_1 & 0x07) << 3) | (settings_ug.RAY_DOU_NUM & 0x07)
prd_cmd_array.append([prd_unit.CmdCode.WRITE_ISA, [settings_ug.ADDR_UG_LITERA_1, result]])
prd_cmd_array.append([prd_unit.CmdCode.WRITE_ISA, [settings_ug.ADDR_UG_LITERA_1, result]])
elif cur_litera in [3, 5, 7]:
result = ((settings_ug.ATT_UM_2 & 0x07) << 3) | (settings_ug.RAY_DOU_NUM & 0x07)
prd_cmd_array.append([prd_unit.CmdCode.WRITE_ISA, [settings_ug.ADDR_UG_LITERA_2, result]])
elif cur_litera == 1:
result = ((settings_ug.ATT_UM_2 & 0x07) << 3) | (settings_ug.RAY_DOU_NUM & 0x07)
result = ((settings_ug.ATT_UM_1 & 0x07) << 3) | (settings_ug.RAY_DOU_NUM & 0x07)
prd_cmd_array.append([prd_unit.CmdCode.WRITE_ISA, [settings_ug.ADDR_UG_LITERA_1, result]])
prd_cmd_array.append([prd_unit.CmdCode.WRITE_ISA, [settings_ug.ADDR_UG_LITERA_3, settings_ug.ATT_UM_3]])
return true
@@ -1081,7 +1082,7 @@ static func check_temperature_um(status_prd: PackedByteArray) -> Dictionary:
else:
for i_temp in 8:
return_dic_temp[arr_um[i_temp]] = -999 # Заполняем нулями если УКП нет на связи
if ukp2_online:
for i_temp in 8:
var temperature_ukp_2: int = status_prd.decode_u16(Constants.TEMPERATURE_UKP_2 + 2 * i_temp)
@@ -1152,7 +1153,7 @@ static func on_fs_state(packet_type_7: Dictionary, fs_mapping: Dictionary, fs_re
## Вспомогательная функция для проверки применения правила
static func _should_apply_rule(fs_num: int, rule: Dictionary, results: Dictionary) -> bool:
return bool(fs_num >= rule.min and fs_num < rule.max) and results.has(rule.key)
return bool(fs_num >= rule.min and fs_num <= rule.max) and results.has(rule.key)
## Получение мощности при выполнении контроля