Merge remote-tracking branch 'origin/master-prd' into master-merge-maksim

This commit is contained in:
sasha80
2025-07-28 13:14:49 +03:00
5 changed files with 64 additions and 45 deletions

View File

@@ -356,6 +356,7 @@ offset_right = 649.0
offset_bottom = 1003.0
theme_override_colors/font_color = Color(0.862745, 0.0784314, 0.235294, 1)
theme_override_font_sizes/font_size = 28
text = "Прибор ПРД- неисправен"
horizontal_alignment = 1
metadata/_edit_lock_ = true

View File

@@ -16,7 +16,8 @@ const Constants = {
"ADDR_UG_LITERA_2": 0x108,
"TEMP_THRESHOLD": 70,
"POWER_THRESHOLD": 40,
"TIMER_DELAY": 1.0
"TIMER_DELAY": 1.4,
"POWER_UM": 70,
}
enum STATE_VAL { NONE = 0, GOOD = 1, ERROR = 2 }
# Основные переменные
@@ -68,7 +69,7 @@ func setup_timer() -> void:
func _enter_tree() -> void:
$control_result.text = ''
signaller.connect('режим_работа', Callable(self, 'on_mode_changed').bind(false))
signaller.emit_signal('interfer_off_all')
signaller.emit_signal('interfer_off_all')
await get_tree().create_timer(2.0).timeout
_on_control_fs(true)
@@ -170,7 +171,7 @@ func check_temperature_um(status_prd: PackedByteArray) -> void:
var temperature_ukp_1: int = status_prd.decode_u16(TEMPERATURE_UKP_1 + 2 * i_temp)
var tmp_1: int = round(TEMP_CONSTANTS['min_temp'] + (TEMP_CONSTANTS['max_code'] - temperature_ukp_1) * TEMP_CONSTANTS['temp_factor'] + TEMP_CONSTANTS['offset'])
power_amplifier[i_temp].value0 = tmp_1
if tmp_1 > 70:
if tmp_1 > Constants.TEMP_THRESHOLD:
_control_results["temperature"] = false
var ukp2_online = (status_prd[0] >> 3) & 1
@@ -179,7 +180,7 @@ func check_temperature_um(status_prd: PackedByteArray) -> void:
var temperature_ukp_2: int = status_prd.decode_u16(TEMPERATURE_UKP_2 + 2 * i_temp)
var tmp_2: int = round(TEMP_CONSTANTS['min_temp'] + (TEMP_CONSTANTS['max_code'] - temperature_ukp_2) * TEMP_CONSTANTS['temp_factor'] + TEMP_CONSTANTS['offset'])
power_amplifier[i_temp+6].value0 = tmp_2
if tmp_2 > 70:
if tmp_2 > Constants.TEMP_THRESHOLD:
_control_results["temperature"] = false
@@ -231,7 +232,7 @@ func _process_ukp_power(status: PackedByteArray) -> void:
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
for i in 6:
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
power_amplifier[i].state = STATE_VAL.GOOD if power_array_1[i] > Constants.POWER_THRESHOLD else STATE_VAL.ERROR
count_packet_1 += 1
## Мощность УМ от УКП 2
@@ -251,7 +252,7 @@ func _process_ukp_power(status: PackedByteArray) -> void:
for i in 6:
power_amplifier[i+6].value1 = '%d' % power_array_2[i]
power_amplifier[i+6].state = STATE_VAL.GOOD if power_array_2[i] > 40 else STATE_VAL.ERROR
power_amplifier[i+6].state = STATE_VAL.GOOD if power_array_2[i] > Constants.POWER_THRESHOLD else STATE_VAL.ERROR
count_packet_2 += 1
@@ -263,19 +264,36 @@ func _process_ukp_power(status: PackedByteArray) -> void:
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, 10.0)
var parts = currecnt_unit.split('-')
var last_part = parts[-1]
var angle: float = 0.0 # -> ПРД-В1; 90.0 -> ПРД-В2; 180.0 -> ПРД-В3; 270.0 -> ПРД-В4
var sector_1: float = 12 # -> ПРД-В1; 15 -> ПРД-В2; 14 -> ПРД-В3; 13 -> ПРД-В4;
var sector_2: float = 16 # -> ПРД-В1; 19 -> ПРД-В2; 18 -> ПРД-В3; 17 -> ПРД-В4;
if last_part == '':
angle = 90.0
sector_1 = 15
sector_2 = 19
elif last_part == '':
angle = 180.0
sector_1 = 14
sector_2 = 18
elif last_part == '':
angle = 270.0
sector_1 = 13
sector_2 = 17
var interfer_name: String = 'k1' if mode else 'off'
var freq_1: float = 1227.0 # ФС_1
var freq_2: float = 1575.0 # ФС_2
var hz_1: float = 340.0 # ФС_1
var hz_2: float = 510.0 # ФС_2
var fs_arr: Array = [[angle, freq_1, hz_1, sector_1], [angle, freq_2, hz_2, sector_2]]
signaller.emit_signal('interfer_init', interfer_name, fs_arr, Constants.POWER_UM)
func on_stop_control() -> void:
print_debug('Отсановка контроля ПРД')
print_debug('Остановка контроля ПРД')
_on_control_fs(false)
on_control_result()

View File

@@ -409,6 +409,5 @@ offset_right = 649.0
offset_bottom = 1003.0
theme_override_colors/font_color = Color(0.862745, 0.0784314, 0.235294, 1)
theme_override_font_sizes/font_size = 28
text = "Прибор ПРД- неисправен"
horizontal_alignment = 1
metadata/_edit_lock_ = true

View File

@@ -308,6 +308,7 @@ func on_button_pressed(btn_this, btn_others) -> void:
var interfer_name: String = btn_this.get_meta('rfi_name')
for key in fs_selected.keys():
fs_arr.append(prd.get_fs_param(key))
print(fs_arr)
signaller.emit_signal('interfer_init', interfer_name, fs_arr, interfer.POW_DEFAULT)

View File

@@ -55,34 +55,34 @@ const PRD_NAMES: Array = [
## Соответствие модулей ФС их нахождению в приборе ПРД и номеру от КАПС РПБ
const FS_PRD: Dictionary = {
0: ['уарэп-яу07-1к', 17],
1: ['уарэп-яу07-4к', 65],
2: ['уарэп-яу07-3к', 49],
3: ['уарэп-яу07-2к', 33],
4: ['уарэп-яу07-1н', 18],
5: ['уарэп-яу07-4н', 66],
6: ['уарэп-яу07-3н', 50],
7: ['уарэп-яу07-2н', 34],
8: ['уарэп-яу07-1н', 19],
9: ['уарэп-яу07-4н', 66],
10: ['уарэп-яу07-3н', 51],
11: ['уарэп-яу07-2н', 35],
12: ['уарэп-яу07-1в', 20],
13: ['уарэп-яу07-4в', 68],
14: ['уарэп-яу07-3в', 52],
15: ['уарэп-яу07-2в', 36],
16: ['уарэп-яу07-1в', 21],
17: ['уарэп-яу07-4в', 69],
18: ['уарэп-яу07-3в', 53],
19: ['уарэп-яу07-2в', 37],
20: ['уарэп-яу07-1к', 22],
21: ['уарэп-яу07-4к', 70],
22: ['уарэп-яу07-3к', 54],
23: ['уарэп-яу07-2к', 38],
24: ['уарэп-яу07-1к', 23],
25: ['уарэп-яу07-4к', 71],
26: ['уарэп-яу07-3к', 55],
27: ['уарэп-яу07-2к', 39], }
0: ['уарэп-яу07-1к', 11],
1: ['уарэп-яу07-4к', 41],
2: ['уарэп-яу07-3к', 31],
3: ['уарэп-яу07-2к', 21],
4: ['уарэп-яу07-1н', 12],
5: ['уарэп-яу07-4н', 42],
6: ['уарэп-яу07-3н', 32],
7: ['уарэп-яу07-2н', 22],
8: ['уарэп-яу07-1н', 13],
9: ['уарэп-яу07-4н', 43],
10: ['уарэп-яу07-3н', 33],
11: ['уарэп-яу07-2н', 23],
12: ['уарэп-яу07-1в', 14],
13: ['уарэп-яу07-4в', 44],
14: ['уарэп-яу07-3в', 34],
15: ['уарэп-яу07-2в', 24],
16: ['уарэп-яу07-1в', 15],
17: ['уарэп-яу07-4в', 45],
18: ['уарэп-яу07-3в', 35],
19: ['уарэп-яу07-2в', 25],
20: ['уарэп-яу07-1к', 16],
21: ['уарэп-яу07-4к', 46],
22: ['уарэп-яу07-3к', 36],
23: ['уарэп-яу07-2к', 26],
24: ['уарэп-яу07-1к', 17],
25: ['уарэп-яу07-4к', 47],
26: ['уарэп-яу07-3к', 37],
27: ['уарэп-яу07-2к', 27], }
var fs_dict: Dictionary ## Словарь с модулями ФС
var prd_dict: Dictionary ## Словарь с приборами ПРД