Рефактор.

This commit is contained in:
sasha80
2023-08-17 13:43:38 +03:00
parent 17e5efedbc
commit 09e485acf2
14 changed files with 122 additions and 121 deletions

View File

@@ -1,6 +1,6 @@
extends Node
##
## Работа с целями
## Цель
@@ -12,6 +12,7 @@ class Threat:
var fflags: Dictionary ## Флаги достоверности полей.
var freq: float ## Частота несущей или центральная частота, МГц.
var freqm: String ## Режим смены частоты.
var id: int ## Идентификатор цели.
var lat: float ## Текущие координаты, долгота в градусах.
var lon: float ## Текущие координаты, широта в градусах.
var power: float ## Уровень принимаемого сигнала, дБм.
@@ -24,7 +25,6 @@ class Threat:
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]
@@ -53,7 +53,7 @@ func _ready() -> void:
timer_check_lost.start(REPSettings.ThreatParams.time_lost / 1000.0)
## Периодически проверяет приборы на связи
## Периодически удаляет устаревшие цели
func on_timer_check_lost(time_lost: int):
var tick = Time.get_ticks_msec()
for th in threats.values():
@@ -64,7 +64,7 @@ func on_timer_check_lost(time_lost: int):
## Производит приём целей
func on_data_capsrpb_received(unit: capsrpb.CapsRpb):
if 'mis' not in unit.json_dic:
if not unit.json_dic.has('mis'):
return
var mis = unit.json_dic['mis']
for dic_th in mis:

View File

@@ -73,10 +73,11 @@ func map_range(val: float, a0: float, a1: float, b0: float, b1: float) -> float:
## Возвращает true, если точка внутри заданного полигона
func is_point_in_polygon(pos: Vector2, p: PackedVector2Array) -> bool:
assert(len(p))
var j: int = len(p) - 1
var sz: = p.size()
assert(sz)
var j: int = sz - 1
var odd_nodes: int = 0
for i in len(p):
for i in sz:
if ((p[i].y < pos.y and p[j].y >= pos.y or p[j].y < pos.y and p[i].y >= pos.y) and (p[i].x <= pos.x or p[j].x <= pos.x)):
odd_nodes ^= int((p[i].x + (pos.y - p[i].y) / (p[j].y - p[i].y) * (p[j].x - p[i].x) < pos.x))
j = i
@@ -85,6 +86,6 @@ func is_point_in_polygon(pos: Vector2, p: PackedVector2Array) -> bool:
## Записывает слово [param val] в элемент байтовго массива [param buf]
## расположенный по индексу [param index]. Младшее слово
func set_wordi(buf: Array, index: int, val: int) -> void:
func set_wordi(buf: PackedByteArray, index: int, val: int) -> void:
buf[index] = val & 0xff
buf[index + 1] = (val >> 8) & 0xff