diff --git a/scenes/pribor-prd-k/pribor-prd-k.tscn b/scenes/pribor-prd-k/pribor-prd-k.tscn index b2d8941c..53d3fdf7 100644 --- a/scenes/pribor-prd-k/pribor-prd-k.tscn +++ b/scenes/pribor-prd-k/pribor-prd-k.tscn @@ -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 diff --git a/scenes/pribor-prd-v/pribor-prd-v.gd b/scenes/pribor-prd-v/pribor-prd-v.gd index d6caf86e..09ba887f 100644 --- a/scenes/pribor-prd-v/pribor-prd-v.gd +++ b/scenes/pribor-prd-v/pribor-prd-v.gd @@ -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 == '2в': + angle = 90.0 + sector_1 = 15 + sector_2 = 19 + elif last_part == '3в': + angle = 180.0 + sector_1 = 14 + sector_2 = 18 + elif last_part == '4в': + 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() diff --git a/scenes/pribor-prd-v/pribor-prd-v.tscn b/scenes/pribor-prd-v/pribor-prd-v.tscn index 9e507261..02fd1156 100644 --- a/scenes/pribor-prd-v/pribor-prd-v.tscn +++ b/scenes/pribor-prd-v/pribor-prd-v.tscn @@ -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 diff --git a/scenes/работа/работа.gd b/scenes/работа/работа.gd index 4062c490..724eef04 100644 --- a/scenes/работа/работа.gd +++ b/scenes/работа/работа.gd @@ -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) diff --git a/scripts/prd.gd b/scripts/prd.gd index 39c15bfd..406fc7ed 100644 --- a/scripts/prd.gd +++ b/scripts/prd.gd @@ -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 ## Словарь с приборами ПРД