Рефактор.

This commit is contained in:
sasha80
2023-08-15 13:45:33 +03:00
parent 94cc241172
commit af5fcfa2a6
5 changed files with 51 additions and 52 deletions

View File

@@ -3,22 +3,22 @@ extends Node
## Реализация "Протокол информационного сопряжения
## СПО АСУ изделия «МП550» с СПО «Управления КАПС РПБ»"
const ONLINE_TIMEOUT = 5.0 ## Время ожидания пакета от ячейки, секунды
const BUFFER_SIZE = 2048 ## Размер приёмного буфера для датаграмм
const ONLINE_TIMEOUT = 3000 ## Время ожидания пакета от КАПС РПБ, мс
const BUFFER_SIZE = 2048 ## Размер приёмного буфера для датаграмм
class CapsRpb:
signal line_changed(unit: CapsRpb)
signal data_received(unit: CapsRpb)
signal command_fail(unit: CapsRpb)
signal parse_error(unit: CapsRpb, msg: String)
signal line_changed(unit: CapsRpb) ## Сигнал состояние связи изменилось
signal data_received(unit: CapsRpb) ## Сигнал данные приняты
signal command_fail(unit: CapsRpb) ## Сигнал при не выполнении команды
signal parse_error(unit: CapsRpb, msg: String) ## Сигнал ошибки разбора сообщения
static var json_conv: = JSON.new()
var online: = false
var name: String
var json_dic: Dictionary
var tick: = 0.0
var tick_rx: = 0.0
var online: = false ## Состояние на связи
var name: String ## Имя экземпляра
var json_dic: Dictionary ## Аппарат для разбора сообщений
var tick: = 0 ## Тик время последнего обновления, мс
func _to_string() -> String: return String('капсрпб: "%s" %s ' % [self.name, ['отключен', 'на связи'][int(online)]])
func _init(nm): self.name = nm

View File

@@ -31,8 +31,8 @@ extends Node
'time_lost': 5000, ## Время после последнего обновления в мс, через которое цель считается потерянной
'freq_low': 200.0, ## Нижняя рабочая частота, МГЦ
'freq_high': 6000.0, ## Нижняя рабочая частота, МГЦ
'radius_inner': 100, ## Внутренний радиус диаграммы в пикселях для отображения частота-пеленг
'radius_outter': 800 ## Наружний радиус диаграммы в пикселях для отображения частота-пеленг
'radius_inner': 200, ## Внутренний радиус диаграммы в пикселях для отображения частота-пеленг
'radius_outter': 550 ## Наружний радиус диаграммы в пикселях для отображения частота-пеленг
}

View File

@@ -5,26 +5,26 @@ extends Node
## Цель
class Threat:
var alt: float ## Текущая высота, метры.
var aoa: float ## Курсовой угол на источник сигнала, градусы.
var atick: float ## Тик обнаружения.
var baud: float ## Модуляционная скорость.
var fflags: Dictionary ## Флаги достоверности полей.
var freq: float ## Частота несущей или центральная частота, МГц.
var freqm: String ## Режим смены частоты.
var lat: float ## Текущие координаты, долгота в градусах.
var lon: float ## Текущие координаты, широта в градусах.
var power: float ## Уровень принимаемого сигнала, дБм.
var proto: String ## Тип протокола источника сигнала.
var rkrp: String ## Рекомендуемый режим помехи.
var rparams: String ## Рекомендуемые параметры помехи.
var salt: float ## Координаты старта, высота от уровня моря, м.
var slat: float ## Координаты старта, широта в градусах.
var slon: float ## Координаты старта, долгота в градусах.
var tick: int ## Время приёма сигнала, мс.
var tmod: String ## Тип модуляции.
var width: float ## Ширина занимаемого диапазона частот, МГц.
var id: int ## Идентификатор цели.
var alt: float ## Текущая высота, метры.
var aoa: float ## Курсовой угол на источник сигнала, градусы.
var atick: float ## Тик обнаружения.
var baud: float ## Модуляционная скорость.
var fflags: Dictionary ## Флаги достоверности полей.
var freq: float ## Частота несущей или центральная частота, МГц.
var freqm: String ## Режим смены частоты.
var lat: float ## Текущие координаты, долгота в градусах.
var lon: float ## Текущие координаты, широта в градусах.
var power: float ## Уровень принимаемого сигнала, дБм.
var proto: String ## Тип протокола источника сигнала.
var rkrp: String ## Рекомендуемый режим помехи.
var rparams: String ## Рекомендуемые параметры помехи.
var salt: float ## Координаты старта, высота от уровня моря, м.
var slat: float ## Координаты старта, широта в градусах.
var slon: float ## Координаты старта, долгота в градусах.
var tick: int ## Тик время приёма сигнала, мс.
var tmod: String ## Тип модуляции.
var width: float ## Ширина занимаемого диапазона частот, МГц.
var id: int ## Идентификатор цели.
func _init(): Tools.get_members_names(self).any(func(vn): fflags[vn] = false)
func _to_string() -> String: return 'номер:%d пеленг:%0.1f частота:%0.1f МГц' % [id, aoa, freq]
@@ -50,7 +50,7 @@ func _ready() -> void:
add_child(timer_check_lost)
unit.connect('data_received', Callable(self, 'on_data_capsrpb_received'))
timer_check_lost.connect('timeout', Callable(self, 'on_timer_check_lost').bind(REPSettings.ThreatParams.time_lost))
timer_check_lost.start(REPSettings.ThreatParams.time_lost / 2.0)
timer_check_lost.start(REPSettings.ThreatParams.time_lost / 1000.0)
## Периодически проверяет приборы на связи