diff --git a/scenes/pribor-prd-v/pribor-prd-v.gd b/scenes/pribor-prd-v/pribor-prd-v.gd index b71176ee..ff1e90f9 100644 --- a/scenes/pribor-prd-v/pribor-prd-v.gd +++ b/scenes/pribor-prd-v/pribor-prd-v.gd @@ -15,7 +15,7 @@ const constants_v = { 'RAY_DOU_NUM': 0x3, 'ATT_UM_4': 0x7, 'ATT_UM_5': 0x7, - 'POWER_UM': 70, + 'POWER_UM': 75, 'TIMER_DELAY': 5.0, 'STATE_MASHINE_TIMER': 0.3, } diff --git a/scenes/контроль/блок-в.tscn b/scenes/контроль/блок-в.tscn index 281f95c5..12673c7b 100644 --- a/scenes/контроль/блок-в.tscn +++ b/scenes/контроль/блок-в.tscn @@ -35,6 +35,8 @@ signal pressed(control: PanelContainer) if not is_inside_tree(): return $margin/vbox/grid1/level7.value = v + $margin/vbox/grid1/level7.tint_progress = Color.RED if v > 70 else Color.WHITE + @export var min_value0: float: @@ -357,8 +359,9 @@ size_flags_horizontal = 3 size_flags_vertical = 3 tooltip_text = " Текущее: 0.00 -Диапазон: 0.00…100.00" +Диапазон: 0.00…1400.00" mouse_filter = 0 +max_value = 1400.0 fill_mode = 3 nine_patch_stretch = true stretch_margin_left = 8 @@ -376,8 +379,9 @@ size_flags_horizontal = 3 size_flags_vertical = 3 tooltip_text = " Текущее: 0.00 -Диапазон: 0.00…100.00" +Диапазон: 0.00…1400.00" mouse_filter = 0 +max_value = 1400.0 fill_mode = 3 nine_patch_stretch = true stretch_margin_left = 8 @@ -395,8 +399,9 @@ size_flags_horizontal = 3 size_flags_vertical = 3 tooltip_text = " Текущее: 0.00 -Диапазон: 0.00…100.00" +Диапазон: 0.00…1400.00" mouse_filter = 0 +max_value = 1400.0 fill_mode = 3 nine_patch_stretch = true stretch_margin_left = 8 @@ -414,8 +419,9 @@ size_flags_horizontal = 3 size_flags_vertical = 3 tooltip_text = " Текущее: 0.00 -Диапазон: 0.00…100.00" +Диапазон: 0.00…1400.00" mouse_filter = 0 +max_value = 1400.0 fill_mode = 3 nine_patch_stretch = true stretch_margin_left = 8 @@ -433,8 +439,9 @@ size_flags_horizontal = 3 size_flags_vertical = 3 tooltip_text = " Текущее: 0.00 -Диапазон: 0.00…100.00" +Диапазон: 0.00…1400.00" mouse_filter = 0 +max_value = 1400.0 fill_mode = 3 nine_patch_stretch = true stretch_margin_left = 8 @@ -452,8 +459,9 @@ size_flags_horizontal = 3 size_flags_vertical = 3 tooltip_text = " Текущее: 0.00 -Диапазон: 0.00…100.00" +Диапазон: 0.00…1400.00" mouse_filter = 0 +max_value = 1400.0 fill_mode = 3 nine_patch_stretch = true stretch_margin_left = 8 diff --git a/scenes/контроль/контроль.tscn b/scenes/контроль/контроль.tscn index 8c151127..461f07c1 100644 --- a/scenes/контроль/контроль.tscn +++ b/scenes/контроль/контроль.tscn @@ -111,6 +111,7 @@ metadata/unit_name = ["уарэп-эмс"] metadata/online_proc = "on_line_changed" [node name="label" type="Label" parent="pribor_uf"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 15.0 offset_top = -34.0 @@ -177,6 +178,7 @@ patch_margin_right = 16 patch_margin_bottom = 16 [node name="label" type="Label" parent="pribor_rtr"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 12.0 offset_top = -54.0 @@ -230,6 +232,7 @@ patch_margin_right = 16 patch_margin_bottom = 16 [node name="label" type="Label" parent="pribor_afsp_1"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 165.0 offset_top = -245.0 @@ -244,7 +247,7 @@ vertical_alignment = 1 modulate = Color(0.498039, 0.498039, 0.498039, 1) light_mask = 3 position = Vector2(415, -40) -scale = Vector2(3.0, 3.0) +scale = Vector2(3, 3) sprite_frames = SubResource("SpriteFrames_foasq") frame_progress = 0.72355 script = ExtResource("11_u7tym") @@ -285,6 +288,7 @@ patch_margin_right = 16 patch_margin_bottom = 16 [node name="label" type="Label" parent="pribor_afsp_2"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 200.0 offset_top = -240.0 @@ -299,7 +303,7 @@ vertical_alignment = 1 modulate = Color(0.498039, 0.498039, 0.498039, 1) light_mask = 3 position = Vector2(425, -40) -scale = Vector2(3.0, 3.0) +scale = Vector2(3, 3) sprite_frames = SubResource("SpriteFrames_foasq") frame_progress = 0.72355 script = ExtResource("11_u7tym") @@ -323,6 +327,7 @@ metadata/unit_name = ["уарэп-щ3", "уарэп-спт25-1", "уарэп-с metadata/online_proc = "online_change_arr" [node name="label" type="Label" parent="pribor_uyep"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 26.8566 offset_top = -38.3276 @@ -376,6 +381,7 @@ metadata/unit_name = ["уарэп-яу07-2в"] metadata/online_proc = "on_line_changed" [node name="label" type="Label" parent="pribor_prd_v_2"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 14.0 offset_top = -38.0 @@ -429,6 +435,7 @@ metadata/unit_name = ["уарэп-яу07-2н"] metadata/online_proc = "on_line_changed" [node name="label" type="Label" parent="pribor_prd_n_2"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 15.0 offset_top = -38.0 @@ -484,6 +491,7 @@ metadata/unit_name = ["уарэп-яу07-2к"] metadata/online_proc = "on_line_changed" [node name="label" type="Label" parent="pribor_prd_k_2"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 17.0 offset_top = -38.0 @@ -537,6 +545,7 @@ metadata/unit_name = ["уарэп-яу07-3в"] metadata/online_proc = "on_line_changed" [node name="label" type="Label" parent="pribor_prd_v_3"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 9.0 offset_top = -38.0 @@ -590,6 +599,7 @@ metadata/unit_name = ["уарэп-яу07-3н"] metadata/online_proc = "on_line_changed" [node name="label" type="Label" parent="pribor_prd_n_3"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 8.0 offset_top = -38.0 @@ -643,6 +653,7 @@ metadata/unit_name = ["уарэп-яу07-3к"] metadata/online_proc = "on_line_changed" [node name="label" type="Label" parent="pribor_prd_k_3"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 9.0 offset_top = -38.0 @@ -696,6 +707,7 @@ metadata/unit_name = ["уарэп-яу07-1в"] metadata/online_proc = "on_line_changed" [node name="label" type="Label" parent="pribor_prd_v_1"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 8.0 offset_top = -38.0 @@ -749,6 +761,7 @@ metadata/online_proc = "on_line_changed" metadata/unit_name = ["уарэп-яу07-1н"] [node name="label" type="Label" parent="pribor_prd_n_1"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 8.0 offset_top = -38.0 @@ -802,6 +815,7 @@ metadata/unit_name = ["уарэп-яу07-1к"] metadata/online_proc = "on_line_changed" [node name="label" type="Label" parent="pribor_prd_k_1"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 9.0 offset_top = -38.0 @@ -854,6 +868,7 @@ metadata/unit_name = ["уарэп-яу07-4в"] metadata/online_proc = "on_line_changed" [node name="label" type="Label" parent="pribor_prd_v_4"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 17.0 offset_top = -38.0 @@ -906,6 +921,7 @@ metadata/unit_name = ["уарэп-яу07-4н"] metadata/online_proc = "on_line_changed" [node name="label" type="Label" parent="pribor_prd_n_4"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 14.0 offset_top = -38.0 @@ -958,6 +974,7 @@ metadata/unit_name = ["уарэп-яу07-4к"] metadata/online_proc = "on_line_changed" [node name="label" type="Label" parent="pribor_prd_k_4"] +self_modulate = Color(0, 0, 0, 0) layout_mode = 0 offset_left = 17.0 offset_top = -38.0 diff --git a/scripts/prd.gd b/scripts/prd.gd index 45ff4ba4..7a8766f6 100644 --- a/scripts/prd.gd +++ b/scripts/prd.gd @@ -118,6 +118,7 @@ class Fs: var pow_caps_rx: float = 0.0 ## Мощность излучения принятая от КАПС РПБ var freq_caps_rx: float = 0.0 ## Частота принятая от КАПС РПБ var width_caps_rx: float = 0.0 ## Ширина полосы принятая от КАПС РПБ + var msvk: Array signal update_modulation(index) @@ -352,33 +353,31 @@ func check_dir(): ## Производит приём состояния модулей ФС. func on_data_capsrpb_received(unit0: capsrpb.CapsRpb): - if not unit0.json_dic.has('ts'): return - if not unit0.json_dic['ts'] == 7 and not unit0.json_dic['ts'] == 5: return - if unit0.json_dic.has('msvk'): - for nfs in fs_caps_id: - fs_dict[fs_caps_id[nfs]].msvk = unit0.json_dic['msvk'] if unit0.json_dic['msvk'].size()>0 else [] + if not unit0.json_dic.has('ts'): return + if not unit0.json_dic['ts'] == 7: return + if not unit0.json_dic.has('msfs'): return + + var msfs = unit0.json_dic['msfs'] + for fs in msfs: + if fs is Dictionary: + if not fs.has('nmfs'): + return + var nmfs = int(fs['nmfs']) + if not fs_caps_id.has(nmfs): + continue + var ii = fs_caps_id[nmfs] + if not fs_dict.has(ii): + continue + var fs_module = fs_dict[ii] + if fs.has('isg'): + fs_module.isg = int(fs['isg']) + if fs.has('pow'): + fs_module.pow_caps_rx = int(fs['pow']) + if fs.has('freq'): + fs_module.freq_caps_rx = int(fs['freq']) + if fs.has('width'): + fs_module.width_caps_rx = int(fs['width']) - if unit0.json_dic.has('msfs'): - var msfs = unit0.json_dic['msfs'] - for fs in msfs: - if fs is Dictionary: - if not fs.has('nmfs'): - return - var nmfs = int(fs['nmfs']) - if not fs_caps_id.has(nmfs): - continue - var ii = fs_caps_id[nmfs] - if not fs_dict.has(ii): - continue - var fs_module = fs_dict[ii] - if fs.has('isg'): - fs_module.isg = int(fs['isg']) - if fs.has('pow'): - fs_module.pow_caps_rx = int(fs['pow']) - if fs.has('freq'): - fs_module.freq_caps_rx = int(fs['freq']) - if fs.has('width'): - fs_module.width_caps_rx = int(fs['width']) signaller.emit_signal('fs_update_state', fs_dict) diff --git a/scripts/pribor-prd.gd b/scripts/pribor-prd.gd index 405b020a..af34306f 100644 --- a/scripts/pribor-prd.gd +++ b/scripts/pribor-prd.gd @@ -103,7 +103,7 @@ class TestPRD extends Node: var status: PackedByteArray = unit_pribor.status block_kasseta_y5_config = check_block_kasseta_y5(status, block_kasseta_y5_config) block_ip_config = check_block_ip(status, block_ip_config) - check_temperature_um(status, power_amplify) + control_results.temperature = check_temperature_um(status, power_amplify) _process_dkm_status(status) if current_litera != 0: var tek_litera: Dictionary = power_result[current_litera] @@ -119,15 +119,9 @@ class TestPRD extends Node: if fs_key.is_empty(): return - var fs_result := {fs_key: 0, 'fs_modulation': 'none'} + var fs_result := {fs_key: 0} fs_result = on_fs_state(packet_type_7, fs_mapping, fs_result) control_results[fs_key] = fs_result[fs_key] - if fs_result.fs_modulation and not flag_fs_turn_on: - print_debug('Помеха "Включено"') - flag_fs_turn_on = true - if not fs_result.fs_modulation and not flag_fs_turn_off: - print('Помеха "Откючено"') - flag_fs_turn_off = true ## @@ -301,9 +295,20 @@ class TestPRD extends Node: _determine_self_name() var fs_mapping = _create_fs_mapping(self_name) signaller.conn(signaller.fs_update_state, Callable(self, 'on_fs_update_state').bind(fs_mapping)) + var unit_caps = network.get_unit_instance('уарэп-капсрпб') + unit_caps.connect('data_received', Callable(self, 'on_interfer_status')) unit_prd.connect('data_received', Callable(self, 'on_data_received')) + func on_interfer_status(packet_status: Object) -> void: + if packet_status.json_dic.msvk.size() > 0 and not flag_fs_turn_on: + flag_fs_turn_on = true + print_debug('Излучение') + elif packet_status.json_dic.msvk.size() == 0 and not flag_fs_turn_off: + flag_fs_turn_off = true + print_debug('Все тихо') + + func _determine_self_name() -> void: var current_unit = unit_prd.name var parts = current_unit.split('-') @@ -447,7 +452,7 @@ class TestPRD extends Node: ## Проверка температур УМ от УКП - static func check_temperature_um(status_prd: PackedByteArray, power_amplifier: Array) -> void: + static func check_temperature_um(status_prd: PackedByteArray, power_amplifier: Array) -> bool: const Constants: Dictionary = { 'CONST_MIN_TEMP': -25, 'MAXIMUM_CODE_ADC': 3796, @@ -458,6 +463,7 @@ class TestPRD extends Node: const TEMP: float = 115.0 / (Constants.MAXIMUM_CODE_ADC - Constants.MINIMUM_CODE_AD) var ukp1_online: int = (status_prd[0] >> 2) & 1 var ukp2_online = (status_prd[0] >> 3) & 1 + var all_temp_is_ok: bool = true if ukp1_online: var tmp_1: int @@ -466,11 +472,15 @@ class TestPRD extends Node: temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * i_temp) tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3) power_amplifier[i_temp].value1 = tmp_1 + if tmp_1>70: + all_temp_is_ok = false if power_amplifier.size() > 12: # Темпуратура от УМ литеры 1 temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * 7) tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3) power_amplifier[6].value1 = tmp_1 + if tmp_1>70: + all_temp_is_ok = false if ukp2_online: for i_temp in 6: @@ -478,9 +488,13 @@ class TestPRD extends Node: var tmp_2: int = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_2) * TEMP + 3) if power_amplifier.size() > 12: power_amplifier[i_temp+7].value1 = tmp_2 + if tmp_2>70: + all_temp_is_ok = false else: power_amplifier[i_temp+6].value1 = tmp_2 - + if tmp_2>70: + all_temp_is_ok = false + return all_temp_is_ok ## Проверка ДКМ static func check_dkm(status_prd: PackedByteArray, bit_dkm: int) -> bool: @@ -528,7 +542,6 @@ class TestPRD extends Node: var rule: Dictionary = FS_RULES[rule_key] if _should_apply_rule(fs_num, rule, updated_results): updated_results[rule.key] = fs_data.isg - updated_results['fs_modulation'] = fs_data.msvk.size() > 0 break return updated_results