Merge remote-tracking branch 'MaD_CaT/master'
This commit is contained in:
@@ -130,7 +130,7 @@ func _ready():
|
||||
signaller.connect('fs_update_color', Callable(self, 'on_fs_update_color'))
|
||||
interfer.connect('interfer_update', Callable(self, 'on_interfer_new'))
|
||||
signaller.connect('interfer_prinuditelno', Callable(self, 'on_chk_interfer_prinuditelno'))
|
||||
|
||||
signaller.connect('fs_update_state', Callable(self, 'on_fs_update_state'))
|
||||
|
||||
func on_chk_interfer_prinuditelno(_interfer_sectors):
|
||||
$chk_auto.set_pressed_no_signal(false)
|
||||
@@ -505,3 +505,8 @@ func on_interfer_prinuditelno (prenuditelno_sectors, btns):
|
||||
for btn in btns:
|
||||
btn.set_pressed(false)
|
||||
set_btns_disabled(true, btn)
|
||||
|
||||
|
||||
## Вызывается при получении информации о состоянии модулей ФС от КАПС РПБ.
|
||||
func on_fs_update_state(fs_dict: Dictionary):
|
||||
pass
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user