Исправления. Распаковка пакета 7 от КАПС РПБ.

This commit is contained in:
MaD_CaT
2025-04-15 15:32:13 +03:00
parent 402fa3d2f3
commit c10b484396
3 changed files with 78 additions and 32 deletions

View File

@@ -53,39 +53,42 @@ const PRD_NAMES: Array = [
'уарэп-яу07-4в',
'уарэп-яу07-4к', ]
## Соответствие модулей ФС их нахождуению в приборе ПРД
## Соответствие модулей ФС их нахождуению в приборе ПРД и номеру от КАПС РПБ
const FS_PRD: Dictionary = {
0: ['уарэп-яу07-1к'],
1: ['уарэп-яу07-4к'],
2: ['уарэп-яу07-3к'],
3: ['уарэп-яу07-2к'],
4: ['уарэп-яу07-1н'],
5: ['уарэп-яу07-4н'],
6: ['уарэп-яу07-3н'],
7: ['уарэп-яу07-2н'],
8: ['уарэп-яу07-1н'],
9: ['уарэп-яу07-4н'],
10: ['уарэп-яу07-3н'],
11: ['уарэп-яу07-2н'],
12: ['уарэп-яу07-1в'],
13: ['уарэп-яу07-4в'],
14: ['уарэп-яу07-3в'],
15: ['уарэп-яу07-2в'],
16: ['уарэп-яу07-1в'],
17: ['уарэп-яу07-4в'],
18: ['уарэп-яу07-3в'],
19: ['уарэп-яу07-2в'],
20: ['уарэп-яу07-1к'],
21: ['уарэп-яу07-4к'],
22: ['уарэп-яу07-3к'],
23: ['уарэп-яу07-2к'],
24: ['уарэп-яу07-1к'],
25: ['уарэп-яу07-4к'],
26: ['уарэп-яу07-3к'],
27: ['уарэп-яу07-2к'], }
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к', 38],
23: ['уарэп-яу07-2к', 54],
24: ['уарэп-яу07-1к', 23],
25: ['уарэп-яу07-4к', 71],
26: ['уарэп-яу07-3к', 39],
27: ['уарэп-яу07-2к', 55], }
var fs_dict: Dictionary ## Словарь с модулями ФС
var prd_dict: Dictionary ## Словарь с приборами ПРД
var fs_caps_id: Dictionary ## Словарь соответствия номеров ФС от КАПС РПБ внутрипрограммной нумерации
var fs_dict: Dictionary ## Словарь с модулями ФС
var prd_dict: Dictionary ## Словарь с приборами ПРД
class Fs:
const UM_PORTS: Dictionary = {
@@ -111,6 +114,10 @@ class Fs:
var um_port: int = 0 ## Порт для угла места
var um_code_tx: int = 0 ## Код угла места для отправки в прибор
var um_code_rx: int = 0 ## Текущий код угла места
var isg: int = 2 ## Состояние модуля fs от КАПС РПБ
var pow_caps_rx: float = 0.0 ## Мощность излучения принятая от КАПС РПБ
var freq_caps_rx: float = 0.0 ## Частота принятая от КАПС РПБ
var width_caps_rx: float = 0.0 ## Ширина полосы принятая от КАПС РПБ
signal update_modulation(index)
@@ -268,6 +275,12 @@ func _ready() -> void:
prd_dict[fs.prd_name].fs_dic[key] = fs
fs.connect('update_modulation', prd_dict[fs.prd_name].on_update_modulation.bind(fs.index))
for key in FS_PRD.keys():
fs_caps_id[FS_PRD[key][1]] = key
var unit_caps_key = settings.get_unit_key('уарэп-капсрпб')
var unit_caps = network.units[unit_caps_key]
unit_caps.connect('data_received', Callable(self, 'on_data_capsrpb_received').bind())
## Функция возвращает массив с индексами модулей ФС для выбранной помехи
func get_fs_index(ecm, fs_index_arr):
@@ -325,3 +338,26 @@ func check_dir():
var dir = DirAccess.open(yemsconsts.emsg_files_folder)
if dir: return
else: DirAccess.make_dir_absolute(yemsconsts.emsg_files_folder)
## Производит приём состояния модулей ФС.
func on_data_capsrpb_received(unit: capsrpb.CapsRpb):
if not unit.json_dic.has('ts'): return
if unit.json_dic['ts'] != 7: return
if not unit.json_dic.has('msfs'): return
var msfs = unit.json_dic['msfs']
for fs in msfs:
if fs is Dictionary:
if not fs.has('nmfs'): return
var nmfs = int(fs['nmfs'])
var fs_module = fs_dict[fs_caps_id[nmfs]]
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)

View File

@@ -152,6 +152,11 @@ signal th_aoa_update(threats: Dictionary)
signal fs_update_color(ecms: Dictionary)
## Вызывается при получении информации о состоянии модулей ФС от КАПС РПБ.[br]
## [param ecms] - <...>
signal fs_update_state(fs_dict: Dictionary)
signal socket_error(error: String)