Доработка.Мелкие исправления и рефактор обмена с 5П-28 и диаграмм
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
class_name Diagram extends Sprite2D
|
||||
|
||||
const NUM_OF_RANGE = 7
|
||||
const NUM_OF_DIRECTIONS = 4
|
||||
var fs_default_colors: Array ## Цвета по умолчанию для блоков ФС.
|
||||
|
||||
func _ready() -> void:
|
||||
@@ -36,8 +38,8 @@ func set_def_colors():
|
||||
var color1: Vector3 = ProjectSettings.get_setting('application/interfer/default_color1', Vector3(0.39, 0.44, 0.50))
|
||||
var col_arr: Array = [color0, color1]
|
||||
var col = false
|
||||
for i in 7:
|
||||
for j in 4:
|
||||
for i in NUM_OF_RANGE:
|
||||
for j in NUM_OF_DIRECTIONS:
|
||||
fs_default_colors.append(col_arr[int(col)])
|
||||
col = not col
|
||||
col = not col
|
||||
|
||||
@@ -62,7 +62,7 @@ class TCP5P28 extends unit.Unit:
|
||||
var tx_stack: Array ## Массив пакетов для отправки.
|
||||
var uarep_state: int = 1 ## Флаги состояния прибора, 0 бит, состояние ПО
|
||||
var uarep_line: int = 3 ## Состояние линии связи с прибором
|
||||
var ext_cu = false
|
||||
var ext_cu: bool = false
|
||||
func _init(nm) -> void:
|
||||
super._init(nm)
|
||||
ext_cu = ProjectSettings.get_setting('application/config/external_cu', false)
|
||||
@@ -107,7 +107,7 @@ class TCP5P28 extends unit.Unit:
|
||||
else:
|
||||
return Error.ERR_UNAVAILABLE
|
||||
|
||||
func pack_threats(ths):
|
||||
func pack_threats(ths: Dictionary):
|
||||
var data = PackedByteArray()
|
||||
var data_len = 4 + len(ths) * 80 # длинна блока данных в байтах
|
||||
var tick0 = Time.get_ticks_msec()
|
||||
@@ -120,7 +120,7 @@ class TCP5P28 extends unit.Unit:
|
||||
data_to_send.append_array(data)
|
||||
tx_stack.append(data_to_send)
|
||||
|
||||
func pack_interfers(interfers, ecms):
|
||||
func pack_interfers(interfers: Dictionary, ecms: Dictionary):
|
||||
var data = PackedByteArray()
|
||||
var data_len = 12 # длинна блока данных в байтах
|
||||
data.resize(data_len)
|
||||
@@ -128,9 +128,9 @@ class TCP5P28 extends unit.Unit:
|
||||
data.encode_u16(2, len(interfers)) # Количество целей
|
||||
data.encode_u32(4, uarep_state) # Состояние УА-РЕП
|
||||
data.encode_u32(8, uarep_line) # Состояние линий связи
|
||||
var cu_data: PackedByteArray = []
|
||||
cu_data.resize(4)
|
||||
for id in interfers.values():
|
||||
var cu_data: PackedByteArray = []
|
||||
cu_data.resize(4)
|
||||
var cu = ecms[id]
|
||||
cu_data.encode_u16(0, cu.ispp)
|
||||
var state: int
|
||||
@@ -145,7 +145,7 @@ class TCP5P28 extends unit.Unit:
|
||||
data_to_send.append_array(data)
|
||||
tx_stack.append(data_to_send)
|
||||
|
||||
func create_header(data_len):
|
||||
func create_header(data_len: int):
|
||||
var head_data = PackedByteArray()
|
||||
head_data.resize(8) # Размер заголовка
|
||||
head_data.encode_u16(0, 0) # Код ошибки
|
||||
@@ -154,7 +154,7 @@ class TCP5P28 extends unit.Unit:
|
||||
head_data.encode_u32(4, data_len) # Длинна пакета данных
|
||||
return head_data
|
||||
|
||||
func get_threats_data(th, tick0):
|
||||
func get_threats_data(th: threats.Threat, tick0: int):
|
||||
var th_data = PackedByteArray()
|
||||
th_data.resize(80) # Количество байт в массиве
|
||||
th_data.encode_u64(0, tick0)
|
||||
@@ -189,13 +189,13 @@ class TCP5P28 extends unit.Unit:
|
||||
th_data.encode_s32(76, int(th.lat * c1))
|
||||
return th_data
|
||||
|
||||
func to_cp866(proto: String, th_data):
|
||||
func to_cp866(proto: String, th_data: PackedByteArray):
|
||||
var cp866_proto: PackedByteArray = proto.to_ascii_buffer()
|
||||
cp866_proto.resize(36)
|
||||
for i in len(cp866_proto):
|
||||
th_data[28 + i] = cp866_proto[i]
|
||||
|
||||
func set_interfer(data):
|
||||
func set_interfer(data: PackedByteArray):
|
||||
var mode = data.decode_u8(9)
|
||||
var id = data.decode_u16(10)
|
||||
var aoa = float(data.decode_u16(12)) / 10
|
||||
|
||||
Reference in New Issue
Block a user