Работа в процессе. Чистка
This commit is contained in:
@@ -1,7 +0,0 @@
|
||||
[gd_resource type="Environment" load_steps=2 format=3 uid="uid://bxd3ftmqis2y1"]
|
||||
|
||||
[sub_resource type="Sky" id="1"]
|
||||
|
||||
[resource]
|
||||
background_mode = 2
|
||||
sky = SubResource("1")
|
||||
20
main.tscn
20
main.tscn
@@ -1,20 +0,0 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://cu3e03by7d61j"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://3slb0i3pvowc" path="res://scenes/tab_switch.tscn" id="1_uwy4p"]
|
||||
[ext_resource type="PackedScene" uid="uid://w6ta0ck1bedl" path="res://scenes/wnd_stc.tscn" id="2_jab5i"]
|
||||
|
||||
[node name="main" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
offset_right = 1600.0
|
||||
offset_bottom = 1200.0
|
||||
|
||||
[node name="tab_switch" parent="." instance=ExtResource("1_uwy4p")]
|
||||
layout_mode = 0
|
||||
offset_top = 0.0
|
||||
offset_bottom = 1200.0
|
||||
all_tabs_in_front = true
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="wnd_stc" parent="." instance=ExtResource("2_jab5i")]
|
||||
visible = false
|
||||
@@ -11,7 +11,7 @@ config_version=5
|
||||
[application]
|
||||
|
||||
config/name="uarep-ctl"
|
||||
run/main_scene="res://main.tscn"
|
||||
run/main_scene="res://scenes/tab_switch.tscn"
|
||||
config/features=PackedStringArray("4.1")
|
||||
run/delta_smoothing=false
|
||||
boot_splash/show_image=false
|
||||
@@ -28,6 +28,7 @@ yau07="*res://scenes/yau07.gd"
|
||||
Log="*res://addons/godot-logger/scripts/logger.gd"
|
||||
Table="*res://table/table.gd"
|
||||
Bip="*res://scenes/bip.tscn"
|
||||
Threats="*res://scripts/threats.gd"
|
||||
|
||||
[debug]
|
||||
|
||||
@@ -70,7 +71,6 @@ file_logging/enable_file_logging=true
|
||||
|
||||
[physics]
|
||||
|
||||
2d/run_on_separate_thread=true
|
||||
common/physics_ticks_per_second=1
|
||||
common/max_physics_steps_per_frame=1
|
||||
common/enable_object_picking=false
|
||||
@@ -82,5 +82,4 @@ gl_compatibility/item_buffer_size=8192
|
||||
shader_compiler/shader_cache/strip_debug=true
|
||||
textures/default_filters/anisotropic_filtering_level=0
|
||||
anti_aliasing/screen_space_roughness_limiter/enabled=false
|
||||
environment/defaults/default_environment="res://default_env.tres"
|
||||
quality/driver/fallback_to_gles2=true
|
||||
|
||||
22
scenes/sector.tscn
Normal file
22
scenes/sector.tscn
Normal file
@@ -0,0 +1,22 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://c73ahpv8uiuc7"]
|
||||
|
||||
[ext_resource type="Shader" path="res://shaders/sector.gdshader" id="1_aikdh"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_xo5or"]
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("1_aikdh")
|
||||
shader_parameter/color = Color(1, 1, 1, 0.168627)
|
||||
shader_parameter/clip_color = Color(1, 0.5, 0.5, 1)
|
||||
shader_parameter/width = 45.0
|
||||
shader_parameter/band = 0.02
|
||||
shader_parameter/radius = 0.08
|
||||
shader_parameter/dir = 0.0
|
||||
shader_parameter/inner_clip = 0.045
|
||||
|
||||
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_2lkm8"]
|
||||
|
||||
[node name="строб" type="Sprite2D"]
|
||||
material = SubResource("ShaderMaterial_xo5or")
|
||||
position = Vector2(610, 600)
|
||||
scale = Vector2(1108, 1108)
|
||||
texture = SubResource("PlaceholderTexture2D_2lkm8")
|
||||
@@ -5,9 +5,8 @@
|
||||
[ext_resource type="PackedScene" uid="uid://trt0q8th3bn2" path="res://scenes/журнал.tscn" id="3_hgnup"]
|
||||
|
||||
[node name="tab_switch" type="TabContainer"]
|
||||
offset_top = -25.0
|
||||
offset_right = 1600.0
|
||||
offset_bottom = 1175.0
|
||||
offset_bottom = 1200.0
|
||||
|
||||
[node name="работа" parent="." instance=ExtResource("1_uow82")]
|
||||
layout_mode = 2
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
extends Node
|
||||
|
||||
|
||||
class Threat:
|
||||
|
||||
enum FFlags { # Допустимые значения для Threat.fflags
|
||||
NONE = 0, TMOD = 1, BAUD = 2, PROTO = 4,
|
||||
SLON = 8, SLAT = 16, SALT = 32, LAT = 64,
|
||||
LON = 128, ALT = 256 }
|
||||
|
||||
var id: int # Идентификатор цели
|
||||
var aoa: float # Курсовой угол на источник сигнала, градусы.
|
||||
var freq: float # Частота несущей или центральная частота, МГц
|
||||
var width: float # Ширина занимаемого диапазона частот, МГц
|
||||
var pow_rx: float # Уровень принимаемого сигнала, дБм
|
||||
var tick: int # Уровень принимаемого сигнала, дБм
|
||||
var freqm: 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 fflags: FFlags # Флаги полей достоверности полей
|
||||
@@ -1,12 +0,0 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://w6ta0ck1bedl"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cbfp6bylx8g4i" path="res://tab_container_stc.tscn" id="1_ty26o"]
|
||||
|
||||
[node name="wnd_stc" type="Window"]
|
||||
sdf_oversize = 0
|
||||
initial_position = 3
|
||||
size = Vector2i(1600, 1200)
|
||||
mode = 3
|
||||
current_screen = 1
|
||||
|
||||
[node name="TabContainer" parent="." instance=ExtResource("1_ty26o")]
|
||||
@@ -23,6 +23,7 @@ class YaU07:
|
||||
signal online_changed(yau07: YaU07)
|
||||
signal command_done(yau07: YaU07)
|
||||
signal command_fail(yau07: YaU07)
|
||||
signal net_error(
|
||||
|
||||
var src_addr: = DEFAULT_ADDR # Адрес источника
|
||||
var cmd_num_rx: = 0 # Номер команды принятый
|
||||
@@ -65,7 +66,7 @@ class YaU07:
|
||||
if sock.put_packet(tx_data.slice(0, tx_len)) == OK:
|
||||
cmd_tick_tx = tick
|
||||
else:
|
||||
print_debug('ошибка: пакет не отправлен на: ', src_addr)
|
||||
emit_signal('socket_error', 'ошибка: пакет не отправлен на: %s' % src_addr)
|
||||
cmd_retry -= 1
|
||||
else:
|
||||
cmd_state = CmdState.FAIL
|
||||
|
||||
36
scripts/repnetwork.gd
Normal file
36
scripts/repnetwork.gd
Normal file
@@ -0,0 +1,36 @@
|
||||
extends Node
|
||||
|
||||
|
||||
var sock_unicast: PacketPeerUDP
|
||||
var sock_broadcast: PacketPeerUDP
|
||||
var units_yau07: Dictionary
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
var addr = REPSettings.addr['уарэп-яу07-частный'][1]
|
||||
var port = REPSettings.addr['уарэп-яу07-частный'][2]
|
||||
sock_unicast = PacketPeerUDP.new()
|
||||
sock_unicast.bind(port, addr)
|
||||
for key in REPSettings.addr:
|
||||
var prof = REPSettings.addr[key]
|
||||
if prof[0] == 'yau07':
|
||||
addr = REPSettings.addr[key][1]
|
||||
port = REPSettings.addr[key][2]
|
||||
var unit = yau07.YaU07.new([addr, port])
|
||||
var addr_port: String = '%s:%d' % [addr, port]
|
||||
units_yau07[addr_port] = unit
|
||||
Log.info('ЯУ-07: %s' % unit)
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
for unit in units_yau07.values() as Array[yau07.YaU07]:
|
||||
unit.process(delta, sock_unicast)
|
||||
|
||||
while sock_unicast.get_available_packet_count() > 0:
|
||||
var data = sock_unicast.get_packet()
|
||||
var addr = sock_unicast.get_packet_ip()
|
||||
var port = sock_unicast.get_packet_port()
|
||||
var addr_port: String = '%s:%d' % [addr, port]
|
||||
if addr_port in units_yau07:
|
||||
var unit: yau07.YaU07 = units_yau07[addr_port]
|
||||
unit.parse(data)
|
||||
21
scripts/repsettings.gd
Normal file
21
scripts/repsettings.gd
Normal file
@@ -0,0 +1,21 @@
|
||||
extends Node
|
||||
|
||||
@export var addr: Dictionary = { \
|
||||
'уарэп-яу07-частный': ['udp', '10.1.1.160', 50160, 'IP-адрес ЯУ-07 прибора УФ'],
|
||||
'уарэп-яу07-общий': ['udp', '10.1.1.255', 50000, 'IP-адрес для приёма широковещательных пакетов от ЯУ-07'],
|
||||
'уарэп-капсрпб-пол': ['udp', 'localhost', 42023, 'IP-адрес получения сообщений от КАПС РПБ'],
|
||||
'уарэп-капсрпб-отп': ['udp', 'localhost', 42022, 'IP-адрес отправки сообщений на КАПС РПБ'],
|
||||
'уарэп-эмс': ['yau07', '10.1.1.27', 50027, 'IP-адрес ЯУ-07 прибора УФ'],
|
||||
'уарэп-яу07-2в': ['yau07', '10.1.1.34', 50034, 'IP-адрес ЯУ-07 прибора ПРД-В'],
|
||||
'уарэп-яу07-2н': ['yau07', '10.1.1.33', 50033, 'IP-адрес ЯУ-07 прибора ПРД-Н'],
|
||||
'уарэп-яу07-2к': ['yau07', '10.1.1.35', 50035, 'IP-адрес ЯУ-07 прибора ПРД-К'],
|
||||
'уарэп-яу07-4в': ['yau07', '10.1.1.66', 50066, 'IP-адрес ЯУ-07 прибора ПРД-В'],
|
||||
'уарэп-яу07-4н': ['yau07', '10.1.1.65', 50065, 'IP-адрес ЯУ-07 прибора ПРД-Н'],
|
||||
'уарэп-яу07-4к': ['yau07', '10.1.1.67', 50067, 'IP-адрес ЯУ-07 прибора ПРД-К'],
|
||||
'уарэп-яу07-1в': ['yau07', '10.1.1.18', 50018, 'IP-адрес ЯУ-07 прибора ПРД-В'],
|
||||
'уарэп-яу07-1н': ['yau07', '10.1.1.17', 50017, 'IP-адрес ЯУ-07 прибора ПРД-Н'],
|
||||
'уарэп-яу07-1к': ['yau07', '10.1.1.19', 50019, 'IP-адрес ЯУ-07 прибора ПРД-К'],
|
||||
'уарэп-яу07-3в': ['yau07', '10.1.1.50', 50050, 'IP-адрес ЯУ-07 прибора ПРД-В'],
|
||||
'уарэп-яу07-3н': ['yau07', '10.1.1.49', 50049, 'IP-адрес ЯУ-07 прибора ПРД-Н'],
|
||||
'уарэп-яу07-3к': ['yau07', '10.1.1.51', 50051, 'IP-адрес ЯУ-07 прибора ПРД-Н'],
|
||||
'уарэп-щ3': ['uart', '/dev/stty0', 115200, 1, 1, false, 1000, 'Прибор Щ3 (скорость, стартовых, стоповых, чётность, таймаут в мкс)'] }
|
||||
60
scripts/tools.gd
Normal file
60
scripts/tools.gd
Normal file
@@ -0,0 +1,60 @@
|
||||
extends Node
|
||||
|
||||
|
||||
func map_dec_to_rad(pos0: Vector2, pos: Vector2) -> Vector2:
|
||||
""" Преобразует декартовые координаты в полярные """
|
||||
var x1: float = pos.x - pos0.x
|
||||
var y1: float = pos.y - pos0.y
|
||||
var ang: float = (atan2(y1, x1) * 180.0) / PI
|
||||
ang += 360.0 * float(ang < 0.0)
|
||||
var radius: float = hypot(x1, y1)
|
||||
return Vector2(ang, radius)
|
||||
|
||||
|
||||
func hypot(x: float, y: float) -> float:
|
||||
return sqrt(x * x + y * y)
|
||||
|
||||
|
||||
func is_overlap(x1, x2, y1, y2):
|
||||
""" Проверяет пересечение диапазона x1, x2 с диапазоном y1, y2 """
|
||||
return max(x1, y1) <= min(x2, y2)
|
||||
|
||||
|
||||
func ibytes_to_word(buf: PackedByteArray, i: int) -> int:
|
||||
return buf[i] + (buf[i + 1] * 256)
|
||||
|
||||
|
||||
func map_range(val: float, a0: float, a1: float, b0: float, b1: float) -> float:
|
||||
""" Переводит значение val из диапазона a0...a1 в диапазон b0...b1 """
|
||||
return (((val - a0) * (b1 - b0)) / (a1 - a0)) + b0
|
||||
|
||||
|
||||
func type_is_num(val) -> bool:
|
||||
""" Возвращает true, если val число, false - если иначе """
|
||||
return (typeof(val) == TYPE_INT) or (typeof(val) == typeof(0.0))
|
||||
|
||||
|
||||
func sort_ascending_0(a, b) -> bool:
|
||||
return a[0] < b[0]
|
||||
|
||||
|
||||
func is_point_in_polygon(pos: Vector2, p: PackedVector2Array) -> bool:
|
||||
var j: int = len(p) - 1
|
||||
var odd_nodes: int = 0
|
||||
for i in range(len(p)):
|
||||
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
|
||||
return odd_nodes > 0
|
||||
|
||||
|
||||
func set_wordi(buf: Array, index, val):
|
||||
"""
|
||||
Устанавливает слово в байтовом массиве
|
||||
:param buf: Байтовый массив
|
||||
:param index: Индекс младшего байта слова в массиве
|
||||
:param val: Значение слова для записи в батовый массив
|
||||
:return: None """
|
||||
buf[index] = val & 0xff
|
||||
buf[index + 1] = (val >> 8) & 0xff
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
extends TabContainer
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(_delta):
|
||||
pass
|
||||
|
||||
|
||||
func _on_tab_changed(tab):
|
||||
if tab == 7:
|
||||
$Panel8/VideoStreamPlayer.play()
|
||||
else:
|
||||
$Panel8/VideoStreamPlayer.stop()
|
||||
|
||||
|
||||
func _on_video_stream_player_finished():
|
||||
$Panel8/VideoStreamPlayer.play()
|
||||
@@ -1,10 +0,0 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://cbfp6bylx8g4i"]
|
||||
|
||||
[ext_resource type="Script" path="res://tab_container_stc.gd" id="1_rk3q4"]
|
||||
|
||||
[node name="TabContainer" type="TabContainer"]
|
||||
offset_right = 1595.0
|
||||
offset_bottom = 1200.0
|
||||
script = ExtResource("1_rk3q4")
|
||||
|
||||
[connection signal="tab_changed" from="." to="." method="_on_tab_changed"]
|
||||
Reference in New Issue
Block a user