В процессе.
This commit is contained in:
@@ -7,7 +7,7 @@ func _ready() -> void:
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
func _process(_delta: float) -> void:
|
||||
pass
|
||||
|
||||
|
||||
|
||||
@@ -6,17 +6,20 @@ const BUFFER_SIZE = 2048
|
||||
|
||||
class CapsRpb:
|
||||
signal line_changed(unit: CapsRpb)
|
||||
signal command_done(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 test_json_conv: JSON
|
||||
var name: String
|
||||
var json_dic: Dictionary
|
||||
var tick: = 0.0
|
||||
var tick_rx: = 0.0
|
||||
|
||||
func _to_string() -> String: return String('капсрпб: "%s" %s ' % [self.name, ['отключен', 'на связи'][int(online)]])
|
||||
|
||||
func _init(nm):
|
||||
test_json_conv = JSON.new()
|
||||
self.name = nm
|
||||
|
||||
|
||||
@@ -26,9 +29,12 @@ class CapsRpb:
|
||||
online = true
|
||||
emit_signal('line_changed', self)
|
||||
var utf8_data = data.get_string_from_utf8()
|
||||
test_json_conv.parse(utf8_data)
|
||||
var json = test_json_conv.get_data()
|
||||
print_debug(json)
|
||||
if Error.OK == json_conv.parse(utf8_data):
|
||||
json_dic.merge(json_conv.get_data())
|
||||
emit_signal('data_received', self)
|
||||
else:
|
||||
var msg = json_conv.get_error_message()
|
||||
emit_signal('parse_error', self, msg)
|
||||
|
||||
|
||||
func process(delta: float):
|
||||
|
||||
@@ -40,7 +40,7 @@ func _ready() -> void:
|
||||
var proto = setting[0]
|
||||
if proto in PROTO_TYPE:
|
||||
var unit = PROTO_TYPE[proto].new(key)
|
||||
var addr = Array([setting[1], setting[2]])
|
||||
var addr = REPSettings.get_unit_key(setting)
|
||||
units[addr] = unit
|
||||
unit.connect('line_changed', Callable(logger_page, 'on_line_changed').bind(addr))
|
||||
unit.connect('command_fail', Callable(logger_page, 'on_command_fail').bind(addr))
|
||||
@@ -65,5 +65,4 @@ func _process(delta: float) -> void:
|
||||
match unit.process(delta):
|
||||
Error.OK: sock_unicast.send_to(addr, unit.data_tx)
|
||||
Error.FAILED: emit_signal('socket_error', 'ошибка: %s %s:%d' % [unit, addr[0], addr[1]])
|
||||
for sock in poll_sockets:
|
||||
poll_receive(sock)
|
||||
for sock in poll_sockets: poll_receive(sock)
|
||||
|
||||
@@ -23,5 +23,5 @@ extends Node
|
||||
'уарэп-щ3': ['uart', '/dev/stty0', 115200, 1, 1, false, 1000, 'Прибор Щ3'] } # скорость, стартовых, стоповых, чётность, таймаут в мкс
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
Log.info('Модуль настроек готов')
|
||||
func get_unit_key(item: Array) -> Array: return [item[1], item[2]]
|
||||
func _ready() -> void: Log.info('Модуль настроек готов')
|
||||
|
||||
@@ -1,49 +1,56 @@
|
||||
extends Node
|
||||
|
||||
enum ThreatSrc {
|
||||
SIGMA,
|
||||
MP405,
|
||||
RLKS,
|
||||
RPB,
|
||||
MP405 }
|
||||
SIGMA }
|
||||
|
||||
|
||||
class Threat:
|
||||
|
||||
enum FFlags { # Допустимые значения для Threat.fflags
|
||||
TMOD = 1 << 0,
|
||||
BAUD = 1 << 1,
|
||||
PROTO = 1 << 2,
|
||||
SLON = 1 << 3,
|
||||
SLAT = 1 << 4,
|
||||
SALT = 1 << 5,
|
||||
LAT = 1 << 6,
|
||||
LON = 1 << 7,
|
||||
ALT = 1 << 8,
|
||||
AOA = 1 << 9,
|
||||
FREQ = 1 << 10,
|
||||
WIDTH = 1 << 11,
|
||||
}
|
||||
ALT = 1 << 1,
|
||||
AOA = 1 << 2,
|
||||
ATIME = 1 << 3,
|
||||
BAUD = 1 << 4,
|
||||
FFLAGS = 1 << 5,
|
||||
FREQ = 1 << 6,
|
||||
FREQM = 1 << 7,
|
||||
LAT = 1 << 8,
|
||||
LON = 1 << 9,
|
||||
POW_RX = 1 << 10,
|
||||
PROTO = 1 << 11,
|
||||
RKRP = 1 << 12,
|
||||
RPARAMS = 1 << 13,
|
||||
SALT = 1 << 14,
|
||||
SLAT = 1 << 15,
|
||||
SLON = 1 << 16,
|
||||
TICK = 1 << 17,
|
||||
TMOD = 1 << 18,
|
||||
UTIME = 1 << 19,
|
||||
WIDTH = 1 << 20 }
|
||||
|
||||
var alt: float # Текущая высота, метры.
|
||||
var aoa: float # Курсовой угол на источник сигнала, градусы.
|
||||
var freq: float # Частота несущей или центральная частота, МГц
|
||||
var width: float # Ширина занимаемого диапазона частот, МГц
|
||||
var pow_rx: float # Уровень принимаемого сигнала, дБм
|
||||
var tick: int # Время приёма сигнала, мс
|
||||
var freqm: String # Режим смены частоты
|
||||
var rkrp: String # Рекомендуемый режим помехи
|
||||
var rparams: String # Рекомендуемые параметры помехи
|
||||
var tmod: String # Тип модуляции
|
||||
var baud: float # Модуляционная скорость
|
||||
var proto: String # Тип протокола источника сигнала
|
||||
var slon: float # Координаты старта, долгота в градусах. Достоверность задана значением Threat.fflags
|
||||
var slat: float # Координаты старта, широта в градусах. Достоверность задана значением Threat.fflags
|
||||
var salt: float # Координаты старта, высота от уровня моря. метры. Достоверность задана значением Threat.fflags
|
||||
var lat: float # Текущие координаты, долгота в градусах. Достоверность задана значением Threat.fflags
|
||||
var lon: float # Текущие координаты, широта в градусах. Достоверность задана значением Threat.fflags
|
||||
var alt: float # Текущая высота, метры. Достоверность задана значением Threat.fflags
|
||||
var atime: Dictionary # Время обнаружения
|
||||
var utime: Dictionary # Время крайнего обновления
|
||||
var fflags: FFlags # Флаги достоверности полей
|
||||
var atime: Dictionary # Время обнаружения.
|
||||
var baud: float # Модуляционная скорость.
|
||||
var fflags: FFlags # Флаги достоверности полей.
|
||||
var freq: float # Частота несущей или центральная частота, МГц.
|
||||
var freqm: String # Режим смены частоты.
|
||||
var lat: float # Текущие координаты, долгота в градусах.
|
||||
var lon: float # Текущие координаты, широта в градусах.
|
||||
var pow_rx: 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 utime: Dictionary # Время крайнего обновления.
|
||||
var width: float # Ширина занимаемого диапазона частот, МГц.
|
||||
|
||||
|
||||
var _threats = {}
|
||||
@@ -52,7 +59,17 @@ var _threats = {}
|
||||
Источник цели может быть: 'RPB', 'SIGMA', 'RLKS', 'MP405'
|
||||
"""
|
||||
|
||||
func on_parse_threads(unit: capsrpb.CapsRpb):
|
||||
print_debug(unit)
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
Log.info('Модуль обработки целей готов')
|
||||
var unit = REPSettings.addrs[]
|
||||
unit.connect('data_received', Callable(self, 'on_data_capsrpb_received'))
|
||||
|
||||
|
||||
|
||||
func on_data_capsrpb_received(unit: capsrpb.CapsRpb):
|
||||
pass
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ extends Node
|
||||
|
||||
func assert_array_ipaddr(val: Array):
|
||||
""" Выкидывает исключение, если массив не содержит ip-адрес """
|
||||
assert(val.size() == 2)
|
||||
assert(val[0] is String)
|
||||
assert(val[1] is int)
|
||||
assert((0 < val[1]) and (val[1] < 65536))
|
||||
|
||||
Reference in New Issue
Block a user