Merge remote-tracking branch 'sasha/master'
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
- Использовать выражения вида `ProjectSettings.set_setting('application/config/%s' % key_name`
|
||||
и `ProjectSettings.get_setting('application/config/%s % key_name)` для доступа к настройкам.
|
||||
- `key_name` брать из таблицы `res://scenes/настройки/настройки.gd/SETTING_TABLE`
|
||||
- Следовать [общим правилам](http://gitea.srez.local:3000/sasha80/gitea-tniis).
|
||||
- Следовать [общим правилам](http://gitea.srez.local:3000/sasha80/dev-manual).
|
||||
|
||||
# Ссылки на составные части
|
||||
|
||||
|
||||
84
config/banned_ranges.json
Normal file
84
config/banned_ranges.json
Normal file
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"ranges": [
|
||||
{
|
||||
"max": 404993123,
|
||||
"min": 402777013
|
||||
},
|
||||
{
|
||||
"max": 488584484,
|
||||
"min": 420111389
|
||||
},
|
||||
{
|
||||
"max": 559113065,
|
||||
"min": 549071634
|
||||
},
|
||||
{
|
||||
"max": 590394020,
|
||||
"min": 581828010
|
||||
},
|
||||
{
|
||||
"max": 671113646,
|
||||
"min": 661072214
|
||||
},
|
||||
{
|
||||
"max": 825534007,
|
||||
"min": 784914374
|
||||
},
|
||||
{
|
||||
"max": 964027611,
|
||||
"min": 931531905
|
||||
},
|
||||
{
|
||||
"max": 1097550064,
|
||||
"min": 1076907893
|
||||
},
|
||||
{
|
||||
"max": 1217532686,
|
||||
"min": 1173668071
|
||||
},
|
||||
{
|
||||
"max": 1529745530,
|
||||
"min": 1500072408
|
||||
},
|
||||
{
|
||||
"max": 1790501904,
|
||||
"min": 1703047870
|
||||
},
|
||||
{
|
||||
"max": 1903884888,
|
||||
"min": 1798093759
|
||||
},
|
||||
{
|
||||
"max": 1982005472,
|
||||
"min": 1917112535
|
||||
},
|
||||
{
|
||||
"max": 2174813389,
|
||||
"min": 2103855925
|
||||
},
|
||||
{
|
||||
"max": 2397985516,
|
||||
"min": 2299661838
|
||||
},
|
||||
{
|
||||
"max": 2696028220,
|
||||
"min": 2594107498
|
||||
},
|
||||
{
|
||||
"max": 3627192359,
|
||||
"min": 3576902218
|
||||
},
|
||||
{
|
||||
"max": 5215200272,
|
||||
"min": 5186186730
|
||||
},
|
||||
{
|
||||
"max": 5397018474,
|
||||
"min": 5255819232
|
||||
},
|
||||
{
|
||||
"max": 5967607190,
|
||||
"min": 5944388619
|
||||
}
|
||||
]
|
||||
}
|
||||
3454
config/complex.json
Normal file
3454
config/complex.json
Normal file
File diff suppressed because it is too large
Load Diff
15
config/service_config.ini
Normal file
15
config/service_config.ini
Normal file
@@ -0,0 +1,15 @@
|
||||
[MP550]
|
||||
host=192.168.11.105
|
||||
port=42023
|
||||
transmit_interval_ms=100
|
||||
|
||||
[RDMP]
|
||||
host=127.0.0.1
|
||||
port=55000
|
||||
identity=MP550Service
|
||||
keep_alive_interval_ms=9000
|
||||
|
||||
[Service]
|
||||
autorun=false
|
||||
host=192.168.11.102
|
||||
port=42022
|
||||
@@ -274,3 +274,7 @@ tick_curent={
|
||||
"type": "int",
|
||||
"value": 0
|
||||
}
|
||||
random_value={
|
||||
"type": "float",
|
||||
"value": 0.0
|
||||
}
|
||||
|
||||
@@ -7,14 +7,16 @@ const color1_default: Color = Color(0.39, 0.44, 0.50, 1.0)
|
||||
var color0: Color = color0_default
|
||||
var color1: Color = color1_default
|
||||
|
||||
var fs_default_colors: PackedColorArray ## Цвета по умолчанию для блоков ФС.
|
||||
var fs_default_colors: PackedColorArray ## Цвета по умолчанию для блоков ФС
|
||||
var image: Image
|
||||
|
||||
@export var SecZap: PackedScene
|
||||
@export var inner_radius_0: = 0.36 ## Внутренний радиус диаграммы в режиме РТО
|
||||
@export var inner_radius_0: = 0.36 ## Внутренний радиус диаграммы в режиме РТО
|
||||
@export var inner_radius_1: = 0.855 ## Внутренний радиус диаграммы в обзора
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
image = Image.create(NUM_OF_RANGE * NUM_OF_DIRECTIONS, 1, false, Image.FORMAT_RGBA8)
|
||||
signaller.connect('map_mode_changed', Callable(self, 'set_view_mode'))
|
||||
ProjectSettings.connect('settings_changed', _on_settings_changed)
|
||||
_on_settings_changed()
|
||||
@@ -23,7 +25,6 @@ func _ready() -> void:
|
||||
|
||||
func sv(val: float) -> float: return val / ($строб.scale.x / 2.0) * 0.125
|
||||
|
||||
func set_band_colors(val: PackedColorArray): material.set('shader_parameter/ant_band_c', val)
|
||||
func set_band_failures(val: PackedInt32Array): material.set('shader_parameter/ant_band_m', val)
|
||||
func set_canvas_rotation(val: float): material.set('shader_parameter/rotation', val)
|
||||
func set_radius_inner_frac(val: float): material.set('shader_parameter/inner_radius', val)
|
||||
@@ -49,6 +50,14 @@ func get_strob_visible() -> bool: return $строб.visible
|
||||
func get_strob_width() -> float: return $строб.get_instance_shader_parameter('width')
|
||||
|
||||
|
||||
## Выставляет цвета для секторов
|
||||
func set_band_colors(val: PackedColorArray):
|
||||
for x in val.size():
|
||||
image.set_pixel(x, 0, val[x])
|
||||
var tex = ImageTexture.create_from_image(image)
|
||||
material.set('shader_parameter/sec_colors', tex)
|
||||
|
||||
|
||||
## Добавляет сектор запрета[br]
|
||||
## [param id] - Индекс сектора запрета.[br]
|
||||
## [param szv.x] - Центральная частота (198...546).[br]
|
||||
@@ -102,12 +111,8 @@ func set_seczap_color(id: int, c: Color):
|
||||
|
||||
|
||||
func set_view_mode(val: int):
|
||||
if val == 1:
|
||||
material.set('shader_parameter/inner_radius', inner_radius_1)
|
||||
$строб.hide()
|
||||
else:
|
||||
material.set('shader_parameter/inner_radius', inner_radius_0)
|
||||
$строб.show()
|
||||
var inner_radius = inner_radius_1 if val == 1 else inner_radius_0
|
||||
material.set('shader_parameter/inner_radius', inner_radius)
|
||||
|
||||
|
||||
func _on_settings_changed():
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://b5kjdyxuwsot5"]
|
||||
|
||||
[ext_resource type="Shader" path="res://shaders/antenas.gdshader" id="1_8cjpq"]
|
||||
[ext_resource type="Shader" uid="uid://dhipoo0ju5ebg" path="res://shaders/antenas.gdshader" id="1_8cjpq"]
|
||||
[ext_resource type="Script" uid="uid://b85scuflwlqom" path="res://scenes/diagram/diagram.gd" id="2_8xjuy"]
|
||||
[ext_resource type="PackedScene" uid="uid://c73ahpv8uiuc7" path="res://scenes/diagram/sector.tscn" id="3_tgnog"]
|
||||
[ext_resource type="Shader" uid="uid://k36g8tww5yo" path="res://shaders/sector.gdshader" id="4_obn6s"]
|
||||
@@ -16,8 +16,8 @@ shader_parameter/grid_line_width = 0.0025
|
||||
shader_parameter/rotation = 0.0
|
||||
shader_parameter/ffr = 0.15
|
||||
shader_parameter/sfr = 0.0
|
||||
shader_parameter/pfr = 0.025
|
||||
shader_parameter/ant_band_c = PackedColorArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
shader_parameter/pfr = 0.015
|
||||
shader_parameter/afr = 0.0
|
||||
shader_parameter/ant_band_m = PackedInt32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_lniyv"]
|
||||
@@ -36,4 +36,4 @@ SecZap = ExtResource("3_tgnog")
|
||||
[node name="строб" parent="." instance=ExtResource("3_tgnog")]
|
||||
material = SubResource("ShaderMaterial_lniyv")
|
||||
position = Vector2(280, 280)
|
||||
scale = Vector2(550, 550)
|
||||
scale = Vector2(560, 560)
|
||||
|
||||
@@ -9,66 +9,65 @@ const ALIGNMENT = [HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER]
|
||||
const HEADER_ROW = [TableHeader, TableHeader]
|
||||
const HEADER_ROW_TEXT = ['Параметр', 'Значение']
|
||||
const SETTING_TABLE = [
|
||||
['Ограниченный режим', TableEdit, TableToggle, 'Ограничть возможности по постановке помех'],
|
||||
['Кнопка «ПД-М4»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Кнопка «ПД-М2»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Кнопка «ОЗП-1»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Кнопка «МЧМ-1»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Кнопка «ОРН-И1»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Кнопка «ОРН-М2»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Кнопка «ЛЧМ-1»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Кнопка «ПД-М4С»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Кнопка «ПД-ЧМ»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Кнопка «СВ-И1»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Кнопка «К1»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Кнопка «СВ-М2»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Кнопка «ОРН»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Кнопка «JTIDS»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Кнопка «КУПД»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Внешнее управление', TableEdit, TableToggle, 'Передать управление в 5П28'],
|
||||
['Внешнее указание Трасса', TableEdit, TableToggle, 'Разрешить постановку помех от Трасса'],
|
||||
['Кнопка «Подавление»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Виртуальная клавиатура', TableEdit, TableToggle, 'Включить отображение экранной клавиатуры'],
|
||||
['Скрыть вкладку ЭМС 2', TableEdit, TableToggle, 'Отображать вкладку \"ЭМС-2\"'],
|
||||
['Отладка контроля', TableEdit, TableToggle, 'Отображать отладку контроля'],
|
||||
['Текущая версия ПО УАРЭП', TableEdit, TableEdit, 'Время сборки, версия и номер фиксации'],
|
||||
['уарэп-яу07-частный', TableEdit, TableEdit, 'IP-адрес для получения частных сообщений от ЯУ-07'],
|
||||
['уарэп-яу07-общий', TableEdit, TableEdit, 'IP-адрес для получения широковещательных сообщений от ЯУ-07'],
|
||||
['уарэп-капсрпб', TableEdit, TableEdit, 'IP-адрес для связи с КАПС-РПБ [<адрес этого узла>, <адрес удалённого узла>, <порт этого узла>, <порт удалённого узла>]'],
|
||||
['уарэп-эмс', TableEdit, TableEdit, 'IP-адрес для связи с ЭМС'],
|
||||
['уарэп-яу07-2в', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-В 2'],
|
||||
['уарэп-яу07-2н', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-Н 2'],
|
||||
['уарэп-яу07-2к', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-К 2'],
|
||||
['уарэп-яу07-4в', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-В 4'],
|
||||
['уарэп-яу07-4н', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-Н 4'],
|
||||
['уарэп-яу07-4к', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-К 4'],
|
||||
['уарэп-яу07-1в', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-В 1'],
|
||||
['уарэп-яу07-1н', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-Н 1'],
|
||||
['уарэп-яу07-1к', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-К 1'],
|
||||
['уарэп-яу07-3в', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-В 3'],
|
||||
['уарэп-яу07-3н', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-Н 3'],
|
||||
['уарэп-яу07-3к', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-К 3'],
|
||||
['уарэп-5п28', TableEdit, TableEdit, 'IP-адрес для связи с 5П28'],
|
||||
['навигация', TableEdit, TableEdit, 'Порт назначения для получения данных от АКНГ'],
|
||||
['уарэп-щ3', TableEdit, TableEdit, 'Путь к UART-устройству для связи с прибором Щ3'],
|
||||
['уарэп-спт25-1', TableEdit, TableEdit, 'Путь к UART-устройству для связи с прибором СПТ-25 1'],
|
||||
['уарэп-спт25-2', TableEdit, TableEdit, 'Путь к UART-устройству для связи с прибором СПТ-25 2'],
|
||||
['Шаблон адреса сервера карт', TableEdit, TableEdit, 'Шаблон URL-адреса сервера карт, должен содержать поля \"{x}\", \"{y}\", \"{z}\" для подстановки индекса плитки'],
|
||||
['Адрес АФСП левого борта', TableEdit, TableEdit, 'http-адрес для запроса состояния прибора АФСП'],
|
||||
['Адрес АФСП правого борта', TableEdit, TableEdit, 'http-адрес для запроса состояния прибора АФСП'],
|
||||
['Адрес БПО левого борта', TableEdit, TableEdit, 'http-адрес для запроса состояния прибора БПО'],
|
||||
['Адрес БПО правого борта', TableEdit, TableEdit, 'http-адрес для запроса состояния прибора БПО'],
|
||||
['Период опроса состояния БПО, секунды', TableEdit, TableEdit, 'Время в секундах' ],
|
||||
['Период опроса состояния АФСП, секунды', TableEdit, TableEdit, 'Время в секундах' ],
|
||||
['уарэп-трасса', TableEdit, TableEdit, 'IP-адрес для связи с Трассой [<адрес этого узла>, <адрес удалённого узла>, <порт этого узла>, <порт удалённого узла>]'],
|
||||
['Включить работу по своим целям', TableEdit, TableToggle, 'Разрешает работу в секторе со своей целью'],
|
||||
['Список своих протоколов', TableEdit, TableEdit, 'Список протоколов целей, по которым запрещено работать' ],
|
||||
['Цвет кнопки \"Подавление\"', TableEdit, TableColorPick, 'Цвет кнопки. Введено по требованию ПЗ' ],
|
||||
['Цвет кнопки \"Подавление\"', TableEdit, TableColorPick, 'Цвет кнопки. Введено по требованию ПЗ' ],
|
||||
['Цвет фона схемы', TableEdit, TableColorPick, 'Схема прибора Э2. Изменение цвет фона'],
|
||||
['Цвет схемы', TableEdit, TableColorPick, 'Схема прибора Э2. Изменение цвет схемы '],
|
||||
['Коэффициент ширины полосы излучения', TableEdit, TableEdit, 'Изменение ширины полосы излучения помехи в зависимости от цели'],
|
||||
['Время повторной отправки помехи', TableEdit, TableEdit, 'Изменение времени повторной отправки помехи'] ]
|
||||
['Ограниченный режим', TableEdit, TableToggle, 'Ограничть возможности по постановке помех'], # 0
|
||||
['Кнопка «ПД-М4»', TableEdit, TableToggle, 'Разрешить отображение кнопки'], # 1
|
||||
['Кнопка «ПД-М2»', TableEdit, TableToggle, 'Разрешить отображение кнопки'], # 2
|
||||
['Кнопка «ОЗП-1»', TableEdit, TableToggle, 'Разрешить отображение кнопки'], # 3
|
||||
['Кнопка «МЧМ-1»', TableEdit, TableToggle, 'Разрешить отображение кнопки'], # 4
|
||||
['Кнопка «ОРН-И1»', TableEdit, TableToggle, 'Разрешить отображение кнопки'], # 5
|
||||
['Кнопка «ОРН-М2»', TableEdit, TableToggle, 'Разрешить отображение кнопки'], # 6
|
||||
['Кнопка «ЛЧМ-1»', TableEdit, TableToggle, 'Разрешить отображение кнопки'], # 7
|
||||
['Кнопка «ПД-М4С»', TableEdit, TableToggle, 'Разрешить отображение кнопки'], # 8
|
||||
['Кнопка «ПД-ЧМ»', TableEdit, TableToggle, 'Разрешить отображение кнопки'], # 9
|
||||
['Кнопка «СВ-И1»', TableEdit, TableToggle, 'Разрешить отображение кнопки'], # 10
|
||||
['Кнопка «К1»', TableEdit, TableToggle, 'Разрешить отображение кнопки'], # 11
|
||||
['Кнопка «СВ-М2»', TableEdit, TableToggle, 'Разрешить отображение кнопки'], # 12
|
||||
['Кнопка «ОРН»', TableEdit, TableToggle, 'Разрешить отображение кнопки'], # 13
|
||||
['Кнопка «JTIDS»', TableEdit, TableToggle, 'Разрешить отображение кнопки'], # 14
|
||||
['Кнопка «КУПД»', TableEdit, TableToggle, 'Разрешить отображение кнопки'], # 15
|
||||
['Внешнее управление', TableEdit, TableToggle, 'Передать управление в 5П28'], # 16
|
||||
['Внешнее указание Трасса', TableEdit, TableToggle, 'Разрешить постановку помех от Трасса'], # 17
|
||||
['Кнопка «Подавление»', TableEdit, TableToggle, 'Разрешить отображение кнопки'], # 18
|
||||
['Виртуальная клавиатура', TableEdit, TableToggle, 'Включить отображение экранной клавиатуры'], # 19
|
||||
['Скрыть вкладку ЭМС 2', TableEdit, TableToggle, 'Отображать вкладку \"ЭМС-2\"'], # 20
|
||||
['Отладка контроля', TableEdit, TableToggle, 'Отображать отладку контроля'], # 21
|
||||
['Текущая версия ПО УАРЭП', TableEdit, TableEdit, 'Время сборки, версия и номер фиксации'], # 22
|
||||
['уарэп-яу07-частный', TableEdit, TableEdit, 'IP-адрес для получения частных сообщений от ЯУ-07'], # 23
|
||||
['уарэп-яу07-общий', TableEdit, TableEdit, 'IP-адрес для получения широковещательных сообщений от ЯУ-07'], # 24
|
||||
['уарэп-капсрпб', TableEdit, TableEdit, 'IP-адрес для связи с КАПС-РПБ [<адрес этого узла>, <адрес удалённого узла>, <порт этого узла>, <порт удалённого узла>]'], # 25
|
||||
['уарэп-эмс', TableEdit, TableEdit, 'IP-адрес для связи с ЭМС'], # 26
|
||||
['уарэп-яу07-2в', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-В 2'], # 27
|
||||
['уарэп-яу07-2н', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-Н 2'], # 28
|
||||
['уарэп-яу07-2к', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-К 2'], # 29
|
||||
['уарэп-яу07-4в', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-В 4'], # 30
|
||||
['уарэп-яу07-4н', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-Н 4'], # 31
|
||||
['уарэп-яу07-4к', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-К 4'], # 32
|
||||
['уарэп-яу07-1в', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-В 1'], # 33
|
||||
['уарэп-яу07-1н', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-Н 1'], # 34
|
||||
['уарэп-яу07-1к', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-К 1'], # 35
|
||||
['уарэп-яу07-3в', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-В 3'], # 36
|
||||
['уарэп-яу07-3н', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-Н 3'], # 37
|
||||
['уарэп-яу07-3к', TableEdit, TableEdit, 'IP-адрес для связи с прибором ПРД-К 3'], # 38
|
||||
['уарэп-5п28', TableEdit, TableEdit, 'IP-адрес для связи с 5П28'], # 39
|
||||
['навигация', TableEdit, TableEdit, 'Порт назначения для получения данных от АКНГ'], # 40
|
||||
['уарэп-щ3', TableEdit, TableEdit, 'Путь к UART-устройству для связи с прибором Щ3'], # 41
|
||||
['уарэп-спт25-1', TableEdit, TableEdit, 'Путь к UART-устройству для связи с прибором СПТ-25 1'], # 42
|
||||
['уарэп-спт25-2', TableEdit, TableEdit, 'Путь к UART-устройству для связи с прибором СПТ-25 2'], # 43
|
||||
['Шаблон адреса сервера карт', TableEdit, TableEdit, 'Шаблон URL-адреса сервера карт, должен содержать поля \"{x}\", \"{y}\", \"{z}\" для подстановки индекса плитки'], # 44
|
||||
['Адрес АФСП левого борта', TableEdit, TableEdit, 'http-адрес для запроса состояния прибора АФСП'], # 45
|
||||
['Адрес АФСП правого борта', TableEdit, TableEdit, 'http-адрес для запроса состояния прибора АФСП'], # 46
|
||||
['Адрес БПО левого борта', TableEdit, TableEdit, 'http-адрес для запроса состояния прибора БПО'], # 47
|
||||
['Адрес БПО правого борта', TableEdit, TableEdit, 'http-адрес для запроса состояния прибора БПО'], # 48
|
||||
['Период опроса состояния БПО, секунды', TableEdit, TableEdit, 'Время в секундах' ], # 49
|
||||
['Период опроса состояния АФСП, секунды', TableEdit, TableEdit, 'Время в секундах' ], # 50
|
||||
['уарэп-трасса', TableEdit, TableEdit, 'IP-адрес для связи с Трассой [<адрес этого узла>, <адрес удалённого узла>, <порт этого узла>, <порт удалённого узла>]'], # 51
|
||||
['Включить работу по своим целям', TableEdit, TableToggle, 'Разрешает работу в секторе со своей целью'], # 52
|
||||
['Список своих протоколов', TableEdit, TableEdit, 'Список протоколов целей, по которым запрещено работать' ], # 53
|
||||
['Цвет кнопки \"Подавление\"', TableEdit, TableColorPick, 'Цвет кнопки. Введено по требованию ПЗ' ], # 54
|
||||
['Цвет фона схемы', TableEdit, TableColorPick, 'Схема прибора Э2. Изменение цвет фона'], # 55
|
||||
['Цвет схемы', TableEdit, TableColorPick, 'Схема прибора Э2. Изменение цвет схемы '], # 56
|
||||
['Коэффициент ширины полосы излучения', TableEdit, TableEdit, 'Изменение ширины полосы излучения помехи в зависимости от цели'] ] # 57
|
||||
|
||||
|
||||
## TODO: Придумать как избавиться от индексов
|
||||
## Индексы строк таблицы.
|
||||
|
||||
@@ -53,12 +53,12 @@ signal drag_end ## Вызывается в момент завершени
|
||||
const map_sizes = [
|
||||
Rect2i(360, 360, 400, 400),
|
||||
Rect2i(82, 82, 955, 955)]
|
||||
var fs_band = prd.FS_BAND_RTO ## Текущий режим блоков ФС по частоте
|
||||
var fs_selected: Dictionary ## Словарь выбранных секторов
|
||||
var fs_active: Dictionary ## Словарь секторов назначенных на подавление
|
||||
var fs_emit: Dictionary ## Словарь секторов назначенных на подавление
|
||||
var fs_closed: Dictionary ## Словарь для секторов запрета
|
||||
var fs_failed: Array ## Индикация сломанных секторов (модули ФС). AntBandState.ANT_BAND_READY - исправен, AntBandState.ANT_BAND_FAILURE - сломан.
|
||||
var fs_band = prd.FS_BAND_RTO ## Текущий режим блоков ФС по частоте
|
||||
var fs_selected: Dictionary ## Словарь выбранных секторов
|
||||
var fs_active: Dictionary ## Словарь секторов назначенных на подавление
|
||||
var fs_emit: Dictionary ## Словарь секторов назначенных на подавление
|
||||
var fs_closed: Dictionary ## Словарь для секторов запрета
|
||||
var fs_failed: PackedInt32Array ## Индикация сломанных секторов (модули ФС). AntBandState.ANT_BAND_READY - исправен, AntBandState.ANT_BAND_FAILURE - сломан.
|
||||
|
||||
## Состояние перетаскивания.
|
||||
enum DragFSM {
|
||||
@@ -83,8 +83,9 @@ enum MapViewMode {
|
||||
|
||||
|
||||
enum AntBandState {
|
||||
ANT_BAND_FAILED = 0,
|
||||
ANT_BAND_READY = 1,
|
||||
ANT_BAND_FAILED = 0
|
||||
ANT_BAND_ASSIGNED = 2
|
||||
}
|
||||
|
||||
const VAL_TO_EVENT = {
|
||||
@@ -171,6 +172,9 @@ func on_button_view_toggled(toggled: bool):
|
||||
view_mode = MapViewMode.RLS if toggled else MapViewMode.RTO
|
||||
if view_mode != MapViewMode.RTO:
|
||||
fs_selected.clear()
|
||||
$btns_select/btn_strob.disabled = toggled
|
||||
$btns_select/btn_fs_sector.disabled = toggled
|
||||
$'canvas/строб'.visible = $btns_select/btn_strob.pressed and (not toggled)
|
||||
|
||||
|
||||
## Встроенный обратный вызов.
|
||||
@@ -467,7 +471,7 @@ func get_strob_band(pos: Vector2, prev: float) -> float:
|
||||
|
||||
## Устанавливает центр строба по частоте и направлению.
|
||||
func set_strob(pos: Vector2) -> void:
|
||||
var radp: Vector2 = tools.map_dec_to_rad(radius_center, pos / 2.0)
|
||||
var radp: Vector2 = tools.map_dec_to_rad(radius_center / 2.0, pos / 2.0)
|
||||
if radp.y < $canvas.get_radius_outter():
|
||||
$canvas.set_strob_dir(radp.x)
|
||||
$canvas.set_strob_radius(radp.y)
|
||||
@@ -644,7 +648,7 @@ func on_interfer_prinuditelno(prenuditelno_sectors):
|
||||
## Вызывается при получении информации о состоянии модулей ФС от КАПС РПБ.
|
||||
func on_fs_update_state(fs_dict: Dictionary):
|
||||
for key in fs_dict.keys():
|
||||
fs_failed[key] = fs_dict[key].ready
|
||||
fs_failed[key] = AntBandState.ANT_BAND_READY if fs_dict[key].ready else AntBandState.ANT_BAND_FAILED
|
||||
|
||||
|
||||
func on_btn_center_toggled(toggled_on: bool) -> void:
|
||||
|
||||
@@ -16,9 +16,9 @@ class EmsBoard:
|
||||
6 : 52, }
|
||||
|
||||
var id_board: int ## id платы
|
||||
var in_devs: Dictionary ## Словарь с входными устройствами.
|
||||
var out_devs: Dictionary ## Словарь с выходными устройствами.
|
||||
var base_addr_isa: int ## Базовый адрес ячейки isa.
|
||||
var in_devs: Dictionary ## Словарь с входными устройствами.
|
||||
var out_devs: Dictionary ## Словарь с выходными устройствами.
|
||||
var base_addr_isa: int ## Базовый адрес ячейки isa.
|
||||
var ports_to_wr: Array ## Порты для записи
|
||||
var in_tbl: Array
|
||||
var out_tbl: Array
|
||||
|
||||
@@ -400,6 +400,7 @@ func _process(_delta: float) -> void:
|
||||
if Engine.is_editor_hint(): return
|
||||
tick = Time.get_ticks_msec()
|
||||
RenderingServer.global_shader_parameter_set('tick_curent', tick)
|
||||
RenderingServer.global_shader_parameter_set('random_value', randf())
|
||||
for unit_name: StringName in units_udptx:
|
||||
var unit_udptx: = units_udptx[unit_name]
|
||||
var sock: = send_sockets[unit_name]
|
||||
|
||||
@@ -2,8 +2,14 @@ shader_type canvas_item;
|
||||
|
||||
#include "tools.gdshaderinc"
|
||||
|
||||
#define ANT_BAND_READY 1U /* Антенна (модуль ФС) готова или исправна */
|
||||
#define ANT_BAND_FAILED 0U /* Антенна (модуль ФС) не исправно */
|
||||
#define ANT_BAND_FAILED 0U /* Антенна (модуль ФС) не исправно (или нет данных) */
|
||||
#define ANT_BAND_READY 1U /* Антенна (модуль ФС) готова или исправна */
|
||||
#define ANT_BAND_ASSIGNED 2U /* Антенна (модуль ФС) назначена на излучение */
|
||||
#define ANT_BAND_SELECTED 4U /* Антенна (модуль ФС) выбрана оператором */
|
||||
#define ANT_BAND_ACTIVE 8U /* Антенна (модуль ФС) излучает */
|
||||
#define ANT_BAND_DENIED 16U /* Антенна (модуль ФС) запрет работы */
|
||||
|
||||
#define PI2 (PI * 2.0)
|
||||
|
||||
// Конфигурация сетки
|
||||
uniform int grid_cells_angle = 4; /* Количество секторов (90° каждый) */
|
||||
@@ -16,9 +22,9 @@ uniform float rotation: hint_range(0, 360) = 0.0;
|
||||
uniform float ffr: hint_range(0.0, 1.0) = 0.15; /* Индикация неисправности модулей ФС. Заметность штриховки. Индикация неисправности модулей ФС */
|
||||
uniform float sfr: hint_range(0.0, 10.0) = 0.0; /* Индикация неисправности модулей ФС. Скорость движения штрховки */
|
||||
uniform float pfr: hint_range(0.01, 1.0) = 0.025; /* Индикация неисправности модулей ФС. Частота штриховки */
|
||||
uniform float afr: hint_range(0.0, 180.0) = 0.0; /* Индикация неисправности модулей ФС. Угол наклона штриховки */
|
||||
|
||||
// Вариант 1: Массив цветов для каждой ячейки (4×7 = 28)
|
||||
uniform vec4 ant_band_c[28]: source_color;
|
||||
uniform sampler2D sec_colors; /* Цвета для секторов */
|
||||
uniform uint ant_band_m[28];
|
||||
varying vec2 centered_uv;
|
||||
|
||||
@@ -35,26 +41,14 @@ void fragment()
|
||||
{
|
||||
float dist = length(centered_uv);
|
||||
|
||||
// 2. Отсекаем за пределами внешнего радиуса
|
||||
if (dist > outer_radius) {
|
||||
COLOR = vec4(0.0);
|
||||
discard;
|
||||
}
|
||||
|
||||
// 3. Отсекаем внутри внутреннего радиуса
|
||||
if (dist < inner_radius) {
|
||||
COLOR = vec4(0.0);
|
||||
discard;
|
||||
}
|
||||
|
||||
// 4. Вычисляем полярные координаты
|
||||
float angle = 6.28318530718 - atan(centered_uv.y, centered_uv.x);
|
||||
float angle = PI2 - atan(centered_uv.y, centered_uv.x);
|
||||
// Приводим к диапазону 0..2π
|
||||
angle = mod(angle + 6.28318530718, 6.28318530718);
|
||||
angle = mod(angle + PI2, PI2);
|
||||
|
||||
// 5. Определяем индексы ячейки
|
||||
// Сектор (0..3)
|
||||
float sector_width = 6.28318530718 / float(grid_cells_angle);
|
||||
float sector_width = PI2 / float(grid_cells_angle);
|
||||
int sector_idx = int(angle / sector_width);
|
||||
|
||||
// Слой (0..6)
|
||||
@@ -63,39 +57,45 @@ void fragment()
|
||||
float layer_height = 1.0 / float(grid_layers_radius);
|
||||
int layer_idx = int(normalized_radius / layer_height);
|
||||
|
||||
// 6. Проверяем границы (чтобы не выйти за пределы)
|
||||
if (layer_idx >= grid_layers_radius) {
|
||||
COLOR = vec4(0.0);
|
||||
discard;
|
||||
}
|
||||
|
||||
// 7. Рассчитываем глобальный индекс ячейки (0..27)
|
||||
int cell_index = layer_idx * grid_cells_angle + sector_idx;
|
||||
|
||||
// 8. Получаем цвет ячейки (два варианта) из массива цветов
|
||||
vec4 cell_color = ant_band_c[cell_index];
|
||||
// 8. Получаем цвет ячейки из массива цветов
|
||||
ivec2 sz = textureSize(sec_colors, 0);
|
||||
vec4 cell_color = texture(sec_colors, vec2((float(cell_index) + 0.5) / float(sz.x), 4));
|
||||
|
||||
// Границы по углу
|
||||
float angle_in_sector = mod(angle, sector_width);
|
||||
if (angle_in_sector < grid_line_width ||
|
||||
sector_width - angle_in_sector < grid_line_width) {
|
||||
cell_color.rgb *= 0.7; // Затемняем границы
|
||||
}
|
||||
float v0 = sector_width - 0.01;
|
||||
float v1 = sector_width + 0.0001;
|
||||
cell_color.rgb *= 1.0 - sqrt(smoothstep(v0, v1, angle_in_sector) * smoothstep(v1, v0, angle_in_sector));
|
||||
|
||||
// Границы по радиусу
|
||||
float radius_in_layer = mod(normalized_radius, layer_height);
|
||||
if (radius_in_layer < grid_line_width ||
|
||||
layer_height - radius_in_layer < grid_line_width) {
|
||||
cell_color.rgb *= 0.7; // Затемняем границы
|
||||
}
|
||||
v0 = layer_height - 0.01;
|
||||
v1 = layer_height + 0.0001;
|
||||
cell_color.rgb *= 1.0 - sqrt(smoothstep(v0, v1, radius_in_layer) * smoothstep(v1, v0, radius_in_layer));
|
||||
|
||||
// Подмешивание шума для включённых
|
||||
cell_color.a = alpha + random_timed(centered_uv) * cell_color.a;
|
||||
|
||||
// Индикация не исправности
|
||||
// Индикация неисправности
|
||||
if (ant_band_m[cell_index] == ANT_BAND_FAILED)
|
||||
{
|
||||
cell_color.a *= (1.0 - ffr) + tanh(10.0 * sin(TIME * sfr + 2.0 * PI * centered_uv.x / pfr)) * ffr;
|
||||
vec2 uvr = UV;
|
||||
rotate_vec2(uvr, radians(afr), vec2(0, 0));
|
||||
cell_color.a *= (1.0 - ffr) + tanh(10.0 * sin(TIME * sfr + 2.0 * PI * uvr.x / pfr)) * ffr;
|
||||
}
|
||||
|
||||
// 2. Отсекаем за пределами внешнего радиуса
|
||||
v0 = outer_radius - 0.002;
|
||||
v1 = outer_radius + 0.0001;
|
||||
cell_color.a *= smoothstep(v1, v0, dist);
|
||||
|
||||
// 3. Отсекаем внутри внутреннего радиуса
|
||||
v0 = inner_radius - 0.0001;
|
||||
v1 = inner_radius + 0.002;
|
||||
cell_color.a *= smoothstep(v0, v1, dist);
|
||||
|
||||
COLOR = cell_color;
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
const float DS = 0.004; /* Относительное расстояние на котором выполняется сглаживание краёв */
|
||||
|
||||
global uniform float random_value;
|
||||
|
||||
float random_timed(vec2 uv)
|
||||
{
|
||||
return fract(sin(dot(uv + TIME, vec2(12.9898, 78.233))) * 43758.5453);
|
||||
return fract(sin(dot(uv + TIME * random_value, vec2(12.9898, 78.233))) * 43758.5453);
|
||||
}
|
||||
|
||||
float smooth_px(float r, float R, float ds)
|
||||
|
||||
@@ -333,10 +333,7 @@ func _set_row_selected(i_row: int, selected: bool = true) -> void:
|
||||
push_warning('обращение к удалённому элементу \"%s\"' % selector_key)
|
||||
elif (not nodes.has(selector_key)) and selected:
|
||||
var selector = ScnSelector.instantiate()
|
||||
var rect: = [0, 0, 0, 0]
|
||||
selector_size_proc.call(i_row, rect)
|
||||
selector.size.x = rect[2]
|
||||
selector.size.y = rect[3]
|
||||
call_deferred('_set_selector_size', selector, i_row)
|
||||
selector.modulate = selector_color_proc.call(i_row)
|
||||
selector.z_index = z_index + 1
|
||||
nodes[selector_key] = selector
|
||||
@@ -344,6 +341,13 @@ func _set_row_selected(i_row: int, selected: bool = true) -> void:
|
||||
node.add_child(selector)
|
||||
|
||||
|
||||
func _set_selector_size(selector, i_row):
|
||||
var rect: = [0, 0, 0, 0]
|
||||
selector_size_proc.call(i_row, rect)
|
||||
selector.size.x = rect[2]
|
||||
selector.size.y = rect[3]
|
||||
|
||||
|
||||
## [param i_row] - Индекс ряда.
|
||||
func is_row_selected(i_row: int) -> bool:
|
||||
var key: = SELECTOR_KEY_FORMAT % [i_row, 0]
|
||||
|
||||
Reference in New Issue
Block a user