Доработка. Добавление в таблицу помех контроля выходной мощности с усилителей.

This commit is contained in:
MaD_CaT
2026-01-16 15:08:21 +03:00
parent fa8d677d37
commit 309d23ea2c
3 changed files with 83 additions and 27 deletions

View File

@@ -310,7 +310,7 @@ func on_data_received(unit_pribor: Object) -> void:
if interes == 'RAY_CTRL':
count_packets_power += 1
elif 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)], false)
power_for_litera[current_litera] = tek_litera
count_packets_power += 1
@@ -1157,50 +1157,52 @@ static func _should_apply_rule(fs_num: int, rule: Dictionary, results: Dictionar
## Получение мощности при выполнении контроля
static func power_um_ukp(status: PackedByteArray, litera: int, pwr_result: Array) -> Array:
static func power_um_ukp(status: PackedByteArray, litera: int, pwr_result: Array, mode_work: bool) -> Array:
const Constants: Dictionary = {'POWER_UKP_1' : 31, 'POWER_UKP_2': 63}
var power_values: Array = []
var base_offset = 0
var iteration: int = 6
var ug_valid: bool = (status[0] >> 2) & 1
if not len(status): return power_values
var ukp1_valid: bool = (status[0] >> 2) & 1
var ukp2_valid: bool = (status[0] >> 3) & 1
match litera:
1:
var value = status.decode_u16(Constants.POWER_UKP_1 + 2 * 7)
if ug_valid:
if ukp1_valid:
power_values = [value]
2:
base_offset = Constants.POWER_UKP_1
if ug_valid:
if ukp1_valid:
for i in iteration:
power_values.append(status.decode_u16(base_offset + 2 * i))
3:
base_offset = Constants.POWER_UKP_2
if ug_valid:
if ukp2_valid:
for i in iteration:
power_values.append(status.decode_u16(base_offset + 2 * i))
4:
base_offset = Constants.POWER_UKP_1
if ug_valid:
if ukp1_valid:
for i in iteration:
power_values.append(status.decode_u16(base_offset + 2 * i))
5:
base_offset = Constants.POWER_UKP_2
if ug_valid:
if ukp2_valid:
for i in iteration:
power_values.append(status.decode_u16(base_offset + 2 * i))
6:
base_offset = Constants.POWER_UKP_1
if ug_valid:
if ukp1_valid:
for i in iteration:
power_values.append(status.decode_u16(base_offset + 2 * i))
7:
base_offset = Constants.POWER_UKP_2
if ug_valid:
if ukp2_valid:
for i in iteration:
power_values.append(status.decode_u16(base_offset + 2 * i))
power_values = update_max_power_values(power_values, pwr_result)
if not mode_work:
power_values = update_max_power_values(power_values, pwr_result)
return power_values