Merge remote-tracking branch 'MaD_CaT/master'

# Conflicts:
#	scenes/tab_switch.tscn
This commit is contained in:
sasha80
2023-08-15 15:50:29 +03:00
16 changed files with 482 additions and 160 deletions

BIN
data/disconnect.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cjsr544qccftu"
path="res://.godot/imported/disconnect.png-c8d8039f8761972a5ad748aee64d2372.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://data/disconnect.png"
dest_files=["res://.godot/imported/disconnect.png-c8d8039f8761972a5ad748aee64d2372.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c6yuv0b51aauw"
path="res://.godot/imported/фронт-задний-1.png-915a1bfffb92408db01e467dacb0f791.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://data/фронт-задний-1.png"
dest_files=["res://.godot/imported/фронт-задний-1.png-915a1bfffb92408db01e467dacb0f791.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 667 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ysctr84e77dc"
path="res://.godot/imported/фронт-передний-1.png-2b5cc1de539b24748e23cc42e96963c9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://data/фронт-передний-1.png"
dest_files=["res://.godot/imported/фронт-передний-1.png-2b5cc1de539b24748e23cc42e96963c9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=9 format=3 uid="uid://da7w3vkhadfwe"]
[ext_resource type="Script" path="res://scenes/nine-patch-button.gd" id="1_ugn6y"]
[ext_resource type="Texture2D" uid="uid://ct0ajcwno03h7" path="res://data/кнопка-квадрат-0.png" id="2_aupr1"]
[ext_resource type="Script" path="res://scenes/nine-patch-button.gd" id="1_mjhcv"]
[ext_resource type="Texture2D" uid="uid://ct0ajcwno03h7" path="res://data/кнопка-квадрат-0.png" id="2_fosdr"]
[sub_resource type="StyleBoxEmpty" id="1"]
@@ -19,13 +19,13 @@
offset_right = 30.0
offset_bottom = 30.0
theme_override_styles/panel = SubResource("1")
script = ExtResource("1_ugn6y")
script = ExtResource("1_mjhcv")
toggle_mode = true
[node name="state" type="NinePatchRect" parent="."]
show_behind_parent = true
layout_mode = 2
texture = ExtResource("2_aupr1")
texture = ExtResource("2_fosdr")
patch_margin_left = 10
patch_margin_top = 10
patch_margin_right = 10

View File

@@ -0,0 +1,29 @@
[gd_scene load_steps=4 format=3 uid="uid://b8txs4xi722wt"]
[ext_resource type="Script" path="res://scenes/cell-front.gd" id="1_ckjh0"]
[ext_resource type="Texture2D" uid="uid://c6yuv0b51aauw" path="res://data/фронт-задний-1.png" id="2_5x6hc"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2thpi"]
bg_color = Color(0.8, 0.533333, 0.27451, 1)
[node name="header" type="Control"]
clip_contents = true
layout_mode = 3
anchors_preset = 0
offset_right = 71.0
offset_bottom = 21.0
script = ExtResource("1_ckjh0")
[node name="label" type="Label" parent="."]
clip_contents = true
layout_mode = 0
offset_right = 71.0
offset_bottom = 21.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_styles/normal = SubResource("StyleBoxFlat_2thpi")
horizontal_alignment = 1
vertical_alignment = 1
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(58, 11)
texture = ExtResource("2_5x6hc")

15
scenes/cell-front.gd Normal file
View File

@@ -0,0 +1,15 @@
extends Control
@export var text: String = '':
set(val): $label.set_text(val)
get: return $label.get_text()
# 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

29
scenes/cell-front.tscn Normal file
View File

@@ -0,0 +1,29 @@
[gd_scene load_steps=4 format=3 uid="uid://bccr42bckei41"]
[ext_resource type="Script" path="res://scenes/cell-front.gd" id="1_fs0rx"]
[ext_resource type="Texture2D" uid="uid://ysctr84e77dc" path="res://data/фронт-передний-1.png" id="2_j6r08"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2thpi"]
bg_color = Color(0.8, 0.533333, 0.27451, 1)
[node name="header" type="Control"]
clip_contents = true
layout_mode = 3
anchors_preset = 0
offset_right = 71.0
offset_bottom = 21.0
script = ExtResource("1_fs0rx")
[node name="label" type="Label" parent="."]
clip_contents = true
layout_mode = 0
offset_right = 71.0
offset_bottom = 21.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_styles/normal = SubResource("StyleBoxFlat_2thpi")
horizontal_alignment = 1
vertical_alignment = 1
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(16, 11)
texture = ExtResource("2_j6r08")

View File

@@ -1,29 +1,29 @@
[gd_scene load_steps=6 format=3 uid="uid://3slb0i3pvowc"]
[ext_resource type="Script" path="res://scenes/tab_switch.gd" id="1_siu2d"]
[ext_resource type="PackedScene" uid="uid://b276iygic5itk" path="res://scenes/работа.tscn" id="2_c0cdr"]
[ext_resource type="PackedScene" uid="uid://lwmw4egynmd1" path="res://scenes/контроль.tscn" id="3_44o58"]
[ext_resource type="PackedScene" uid="uid://trt0q8th3bn2" path="res://scenes/журнал.tscn" id="4_vpsr1"]
[ext_resource type="PackedScene" uid="uid://dab6loryocc73" path="res://scenes/ЭМС.tscn" id="5_jlo8o"]
[ext_resource type="Script" path="res://scenes/tab_switch.gd" id="1_wyyi7"]
[ext_resource type="PackedScene" uid="uid://b276iygic5itk" path="res://scenes/работа.tscn" id="2_r1u0h"]
[ext_resource type="PackedScene" uid="uid://lwmw4egynmd1" path="res://scenes/контроль.tscn" id="3_dmb4a"]
[ext_resource type="PackedScene" uid="uid://trt0q8th3bn2" path="res://scenes/журнал.tscn" id="4_pp7si"]
[ext_resource type="PackedScene" uid="uid://dab6loryocc73" path="res://scenes/ЭМС.tscn" id="5_kbxv3"]
[node name="tab_switch" type="TabContainer"]
offset_right = 1600.0
offset_bottom = 1200.0
script = ExtResource("1_siu2d")
script = ExtResource("1_wyyi7")
[node name="работа" parent="." instance=ExtResource("2_c0cdr")]
[node name="работа" parent="." instance=ExtResource("2_r1u0h")]
visible = false
layout_mode = 2
[node name="контроль" parent="." instance=ExtResource("3_44o58")]
[node name="контроль" parent="." instance=ExtResource("3_dmb4a")]
visible = false
layout_mode = 2
[node name="журнал" parent="." instance=ExtResource("4_vpsr1")]
[node name="журнал" parent="." instance=ExtResource("4_pp7si")]
visible = false
layout_mode = 2
[node name="ЭМС" parent="." instance=ExtResource("5_jlo8o")]
[node name="ЭМС" parent="." instance=ExtResource("5_kbxv3")]
visible = false
layout_mode = 2

View File

@@ -7,6 +7,8 @@ const CellLineEdit = preload('res://scenes/ячейка-2.tscn')
const CellState = preload('res://scenes/состояния-эмс.tscn')
const CellOptBtn = preload('res://scenes/кнопка-5.tscn')
const CellLEEmpty = preload('res://scenes/line_edit_empty.tscn')
const CellFront = preload('res://scenes/cell-front.tscn')
const CellFrontRear = preload('res://scenes/cell-front-rear.tscn')
# Режимы работы выходов
const OUT_MODE: Array = ['Работа', 'Контроль', '1', '0']
@@ -17,8 +19,8 @@ const IN_SET_ROW: Array = [CellLineEdit, CellLEEmpty, CellLEEmpty, CellLEEmpty,
var g_boards: Dictionary # Список плат
var posx: int = 35 # Позиция элементов по x
var posy: int = 60 # Позиция элементов по y
var posx: int = 125 # Позиция элементов по x
var posy: int = 70 # Позиция элементов по y
func _ready() -> void:
call_deferred('init_boards')
@@ -29,34 +31,77 @@ func init_boards():
$scrollout.set_position(Vector2(posx+650,posy))
$scrl_in_set.set_position(Vector2(posx,posy + 700))
$scrl_out_set.set_position(Vector2(posx+650,posy + 700))
#$tbl_files.set_position(Vector2(posx + 890,len(INPUT_ROWS)*33+posy+300))
#$btn_new.set_position(Vector2(posx + 1270,len(INPUT_ROWS)*33+posy+294))
#$btn_save.set_position(Vector2(posx + 1270,len(INPUT_ROWS)*33+posy+344))
#$btn_copy.set_position(Vector2(posx + 1270,len(INPUT_ROWS)*33+posy+394))
$lbl_online.set_position(Vector2(posx,posy-60))
$btn_flash_read.set_position(Vector2(posx+1400,posy))
$btn_flash_write.set_position(Vector2(posx+1400,posy+35))
$btn_flash_read.set_position(Vector2(posx,posy + 900))
$btn_flash_write.set_position(Vector2(posx,posy+ 935))
$btn_connect.set_position(Vector2(posx+590,posy-25))
g_boards['КЭМС'] = Yemsboards.EmsBoard.new('КЭМС', 0x130, YemsConsts.INPUT_ROWS0, YemsConsts.OUTPUT_ROWS0)
$btn_disconnect.set_position(Vector2(posx+587,posy + 675))
g_boards['КЭМС'] = Yemsboards.EmsBoard.new('КЭМС', 0x130, YemsConsts.INPUT_ROWS, YemsConsts.OUTPUT_ROWS)
g_boards['П5-28'] = Yemsboards.EmsBoard.new('П5-28', 0x140, YemsConsts.INPUT_ROWS1, YemsConsts.OUTPUT_ROWS1)
init_tbls_in()
init_tbl_in()
$scrollin/tbl_in.pin_header($scrollin, self)
init_tbls_out()
init_tbl_out()
$scrollout/tbl_out.pin_header($scrollout, self)
$scrl_in_set/tbl_in_set.pin_header($scrl_in_set, self)
$scrl_out_set/tbl_out_set.pin_header($scrl_out_set, self)
init_tbl_files()
$scrl_files/tbl_files.pin_header($scrl_files, self)
$btn_connect.connect('pressed', Callable(self, 'on_btn_connect'))
$btn_disconnect.connect('pressed', Callable(self, 'on_btn_disconnect'))
$btn_flash_read.button_connect('pressed', Callable(self, 'on_btn_flash_read').bind($btn_flash_read))
$btn_flash_write.button_connect('pressed', Callable(self, 'on_btn_flash_write').bind($btn_flash_write))
func init_tbls_in():
var header_type: Array = [TableHeader, TableHeader, TableHeader, TableHeader, TableHeader]
func on_btn_disconnect():
var selecter_rows_in: Array = []
var selecter_rows_out: Array = []
$scrl_in_set/tbl_in_set.get_selected_rows(selecter_rows_in)
$scrl_out_set/tbl_out_set.get_selected_rows(selecter_rows_out)
if len(selecter_rows_in):
on_disconnect($scrl_in_set/tbl_in_set, selecter_rows_in, 'вход')
elif len(selecter_rows_out):
on_disconnect($scrl_out_set/tbl_out_set, selecter_rows_out, 'выход')
func on_disconnect(tbl, selecter_rows, type_dev: String):
var dev = tbl.get_node_user_data(0, 0)
var user_data: Array = tbl.get_node_user_data(0, selecter_rows[0])
var con_dev = user_data[0]
var connector: String = con_dev.connector
dev.connect_devs.erase(con_dev.connector)
con_dev.connect_devs.erase(dev.connector)
if type_dev == 'вход':
set_in_dev(dev)
set_out_dev(con_dev)
elif type_dev == 'выход':
set_in_dev(con_dev)
set_out_dev(dev)
func on_btn_flash_read(btn):
await get_tree().create_timer(0.1).timeout
btn.pressed = false
func on_btn_flash_write(btn):
await get_tree().create_timer(0.1).timeout
btn.pressed = false
func init_tbl_files():
$scrl_files/tbl_files.set_header([TableHeader, TableHeader, TableHeader])
$scrl_files/tbl_files.set_header_text(['Имя файла', 'Дата изменения', 'Размер'])
$scrl_files/tbl_files.set_columns_min_size([200, 120, 70])
func init_tbl_in():
var header_type: Array = [TableHeader, TableHeader, CellFront, CellFrontRear, TableHeader]
var header_text: Array = ['Входы', 'Соединитель', 'мкс', 'мкс', 'Состояние']
var row_type: Array = [CellLineEdit, CellLineEdit, CellLineEdit, CellLineEdit, CellState]
var yams_alligment_in: Array = [ HORIZONTAL_ALIGNMENT_LEFT, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER]
var column_size: Array = [250, 100, 70, 70, 50]
$scrollin/tbl_in.set_header(header_type)
$scrollin/tbl_in.set_header_text(header_text)
$scrollin/tbl_in.set_columns_alignments(yams_alligment_in)
for board in g_boards:
for item in g_boards[board].in_tbl:
$scrollin/tbl_in.add_row(row_type)
@@ -70,11 +115,13 @@ func init_tbls_in():
node.text = params[i]
node.editable = false
$scrollin/tbl_in.set_node_user_data(i, row_index, [in_dev, board])
$scrollin/tbl_in.set_columns_alignments(yams_alligment_in)
$scrollin/tbl_in.set_columns_min_size(column_size)
$scrollin/tbl_in.connect('row_pressed', Callable(self, 'on_row_pressed_in'))
$scrollin/tbl_in.connect('selected_changed', Callable(self, 'on_selected_changed_in'))
header_text[0] = 'Вход'
$scrl_in_set/tbl_in_set.set_header(header_type)
$scrl_in_set/tbl_in_set.set_header_text(header_text)
@@ -85,13 +132,16 @@ func init_tbls_in():
$scrl_in_set/tbl_in_set.connect('selected_changed', Callable(self, 'on_selected_changed_si'))
func on_edit_entry(text : String, entry):
print_debug(text, entry)
func on_selected_changed_in(i_row: int):
var selecter_rows: Array = []
$scrollin/tbl_in.get_selected_rows(selecter_rows)
var user_data = $scrollin/tbl_in.get_node_user_data(0, i_row)
var dev = user_data[0]
var board = user_data[1]
set_in_dev(board, dev)
set_in_dev(dev)
func on_row_pressed_in(i_row: int):
@@ -99,7 +149,7 @@ func on_row_pressed_in(i_row: int):
on_selected_changed_in(i_row)
func set_in_dev(_board, dev):
func set_in_dev(dev):
var row_type: Array = [CellLineEdit, CellLineEdit, CellLineEdit, CellLineEdit, CellState]
set_dev($scrl_in_set/tbl_in_set, dev, row_type, IN_SET_ROW, 'Список соединённых выходов :')
@@ -109,10 +159,10 @@ func on_selected_changed_si(i_row: int):
return
var out_user_data = $scrl_in_set/tbl_in_set.get_node_user_data(0, i_row)
var dev = out_user_data[0]
var dev_name = dev.dev_name
var connector = dev.connector
for i in range($scrollout/tbl_out.get_rows_count()):
var node = $scrollout/tbl_out.get_node2(0, i)
if dev_name == node.text:
var node = $scrollout/tbl_out.get_node2(1, i)
if connector == node.text:
on_row_pressed_out(i)
@@ -123,9 +173,10 @@ func on_row_pressed_si(i_row: int):
on_selected_changed_si(i_row)
func init_tbls_out():
func init_tbl_out():
var header_text = ['Выходы', 'Соединитель', 'мкс', 'мкс', 'Состояние', 'Режим']
$scrollout/tbl_out.set_header([TableHeader, TableHeader, TableHeader, TableHeader, TableHeader, TableHeader])
var yams_alligment_out: Array = [ HORIZONTAL_ALIGNMENT_LEFT, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER]
$scrollout/tbl_out.set_header([TableHeader, TableHeader, CellFront, CellFrontRear, TableHeader, TableHeader])
$scrollout/tbl_out.set_header_text(header_text)
for board in g_boards:
for item in g_boards[board].out_tbl:
@@ -143,11 +194,12 @@ func init_tbls_out():
if i in COLUMN_OPTS_BTN:
cell.text = out_dev.mode
$scrollout/tbl_out.set_columns_min_size([250, 100, 70, 70, 70, 100])
$scrollout/tbl_out.set_columns_alignments(yams_alligment_out)
$scrollout/tbl_out.connect('row_pressed', Callable(self, 'on_row_pressed_out'))
$scrollout/tbl_out.connect('selected_changed', Callable(self, 'on_selected_changed_out'))
header_text[0] = 'Выход'
$scrl_out_set/tbl_out_set.set_header([TableHeader, TableHeader, TableHeader, TableHeader, TableHeader, TableHeader])
$scrl_out_set/tbl_out_set.set_header([TableHeader, TableHeader, CellFront, CellFrontRear, TableHeader, TableHeader])
$scrl_out_set/tbl_out_set.set_header_text(header_text)
$scrl_out_set/tbl_out_set.set_columns_min_size([250, 100, 70, 70, 70, 100])
$scrl_out_set/tbl_out_set.connect('row_pressed', Callable(self, 'on_row_pressed_so'))
@@ -159,10 +211,10 @@ func on_selected_changed_so(i_row: int):
return
var in_user_data = $scrl_out_set/tbl_out_set.get_node_user_data(0, i_row)
var dev = in_user_data[0]
var dev_name = dev.dev_name
var connector = dev.connector
for i in range($scrollin/tbl_in.get_rows_count()):
var node = $scrollin/tbl_in.get_node2(0, i)
if dev_name == node.text:
var node = $scrollin/tbl_in.get_node2(1, i)
if connector == node.text:
on_row_pressed_in(i)
@@ -178,8 +230,7 @@ func on_selected_changed_out(i_row: int):
$scrollout/tbl_out.get_selected_rows(selecter_rows)
var user_data = $scrollout/tbl_out.get_node_user_data(0, i_row)
var dev = user_data[0]
var board = user_data[1]
set_out_dev(board, dev)
set_out_dev(dev)
func on_row_pressed_out(i_row: int):
@@ -187,7 +238,7 @@ func on_row_pressed_out(i_row: int):
on_selected_changed_out(i_row)
func set_out_dev(_board, dev):
func set_out_dev(dev):
var row_type: Array = [CellLineEdit, CellLineEdit, CellLineEdit, CellLineEdit, CellState, CellOptBtn]
set_dev($scrl_out_set/tbl_out_set, dev, row_type, OUT_SET_ROW, 'Список соединённых входов :')
var mode = $scrl_out_set/tbl_out_set.get_node2(5, 0)
@@ -213,12 +264,12 @@ func set_dev(tbl, dev, row_type, row_type_conn, lbl_text):
offset.text = '%4.2f'%dev.offset
var state = tbl.get_node2(4, 0)
state.set_frame(dev.state)
tbl.add_row(row_type_conn)
var lbl: LineEdit = tbl.get_node2(0, 1)
lbl.text = lbl_text
for i in len(row_type_conn):
var le: LineEdit = tbl.get_node2(i, 1)
tbl.set_node_user_data(i, 0, dev)
le.editable = false
for i in dev.connect_devs:
@@ -229,6 +280,7 @@ func set_dev(tbl, dev, row_type, row_type_conn, lbl_text):
disable_edit(tbl, len(row_type_conn), node_index[1])
le_name_out.text = dev_con.dev_name
tbl.set_node_user_data(node_index[0], node_index[1], dev.connect_devs[i])
tbl.connect_columns(self, 'text_submitted', 'on_edit_entry', TABLE_ENTRY_COLUMNS, [])
func on_btn_connect():
@@ -246,14 +298,14 @@ func on_btn_connect():
func add_connection_dev(tbl, dev1, dev2, set_row, user_data):
if not dev1.dev_name in dev2.connect_devs:
if not dev1.connector in dev2.connect_devs:
tbl.add_row(set_row)
var node_index: Array = [0, tbl.get_rows_count() -1]
var le_name: LineEdit = tbl.get_node2(node_index[0], node_index[1])
le_name.text = dev1.dev_name
le_name.text = dev1.connector
disable_edit(tbl, len(set_row), node_index[1])
tbl.set_node_user_data(node_index[0], node_index[1], user_data)
dev2.connect_devs[dev1.dev_name] = user_data
dev2.connect_devs[dev1.connector] = user_data
func disable_edit(tbl, num_col: int, i_row: int):

View File

@@ -1,17 +1,18 @@
[gd_scene load_steps=8 format=3 uid="uid://dab6loryocc73"]
[gd_scene load_steps=9 format=3 uid="uid://dab6loryocc73"]
[ext_resource type="Script" path="res://scenes/ЭМС.gd" id="1_ei0cy"]
[ext_resource type="Script" path="res://table/table.gd" id="2_n0fa5"]
[ext_resource type="PackedScene" uid="uid://da7w3vkhadfwe" path="res://scenes/button_flat.tscn" id="3_htu6q"]
[ext_resource type="Texture2D" uid="uid://dd60btbqnpiqw" path="res://data/document-new-0.png" id="4_udjkh"]
[ext_resource type="Texture2D" uid="uid://coqg6wsftvtxr" path="res://data/document-save-0.png" id="5_cwv76"]
[ext_resource type="Texture2D" uid="uid://cywuevvpkxl7v" path="res://data/edit-copy-0.png" id="6_hr8ru"]
[ext_resource type="Texture2D" uid="uid://7h55yvh84cve" path="res://data/connect.png" id="7_8mn17"]
[ext_resource type="Script" path="res://scenes/ЭМС.gd" id="1_7ip0t"]
[ext_resource type="PackedScene" uid="uid://da7w3vkhadfwe" path="res://scenes/button_flat.tscn" id="2_85cl8"]
[ext_resource type="Texture2D" uid="uid://dd60btbqnpiqw" path="res://data/document-new-0.png" id="3_mtj4x"]
[ext_resource type="Texture2D" uid="uid://coqg6wsftvtxr" path="res://data/document-save-0.png" id="4_m4ucm"]
[ext_resource type="Texture2D" uid="uid://cywuevvpkxl7v" path="res://data/edit-copy-0.png" id="5_eeb4o"]
[ext_resource type="Texture2D" uid="uid://7h55yvh84cve" path="res://data/connect.png" id="6_kacis"]
[ext_resource type="Texture2D" uid="uid://cjsr544qccftu" path="res://data/disconnect.png" id="7_2f7bd"]
[ext_resource type="Script" path="res://table/table.gd" id="8_1mtjm"]
[node name="ЭМС" type="Panel"]
offset_right = 1598.0
offset_bottom = 1201.0
script = ExtResource("1_ei0cy")
script = ExtResource("1_7ip0t")
[node name="lbl_online" type="Label" parent="."]
layout_mode = 0
@@ -19,18 +20,10 @@ offset_left = 30.0
offset_top = 4.0
offset_right = 166.0
offset_bottom = 30.0
theme_override_colors/font_color = Color(1, 0, 0, 1)
text = "Ячейка не на связи"
theme_override_colors/font_color = Color(0, 0.647059, 0.184314, 1)
text = "Ячейка на связи"
[node name="tbl_files" type="GridContainer" parent="."]
layout_mode = 0
offset_left = 1050.0
offset_top = 993.0
offset_right = 1602.0
offset_bottom = 1093.0
script = ExtResource("2_n0fa5")
[node name="btn_flash_read" parent="." instance=ExtResource("3_htu6q")]
[node name="btn_flash_read" parent="." instance=ExtResource("2_85cl8")]
layout_mode = 0
offset_left = 1446.0
offset_top = 55.0
@@ -38,7 +31,7 @@ offset_right = 1583.0
offset_bottom = 85.0
text = "Прочитать"
[node name="btn_flash_write" parent="." instance=ExtResource("3_htu6q")]
[node name="btn_flash_write" parent="." instance=ExtResource("2_85cl8")]
layout_mode = 0
offset_left = 1446.0
offset_top = 99.0
@@ -55,7 +48,7 @@ offset_bottom = 1016.0
focus_mode = 0
shortcut_feedback = false
shortcut_in_tooltip = false
icon = ExtResource("4_udjkh")
icon = ExtResource("3_mtj4x")
[node name="btn_save" type="Button" parent="."]
layout_mode = 0
@@ -64,7 +57,7 @@ offset_top = 1017.0
offset_right = 1509.0
offset_bottom = 1073.0
focus_mode = 0
icon = ExtResource("5_cwv76")
icon = ExtResource("4_m4ucm")
[node name="btn_copy" type="Button" parent="."]
layout_mode = 0
@@ -73,7 +66,7 @@ offset_top = 1074.0
offset_right = 1510.0
offset_bottom = 1130.0
focus_mode = 0
icon = ExtResource("6_hr8ru")
icon = ExtResource("5_eeb4o")
[node name="btn_connect" type="Button" parent="."]
layout_mode = 0
@@ -83,7 +76,17 @@ offset_right = 683.0
offset_bottom = 111.0
focus_mode = 0
theme_override_colors/icon_normal_color = Color(1, 1, 1, 1)
icon = ExtResource("7_8mn17")
icon = ExtResource("6_kacis")
[node name="btn_disconnect" type="Button" parent="."]
layout_mode = 0
offset_left = 714.0
offset_top = 741.0
offset_right = 770.0
offset_bottom = 815.0
focus_mode = 0
theme_override_colors/icon_normal_color = Color(1, 1, 1, 1)
icon = ExtResource("7_2f7bd")
[node name="scrollin" type="ScrollContainer" parent="."]
layout_mode = 0
@@ -94,7 +97,18 @@ offset_bottom = 679.0
[node name="tbl_in" type="GridContainer" parent="scrollin"]
layout_mode = 2
script = ExtResource("2_n0fa5")
script = ExtResource("8_1mtjm")
[node name="scrl_files" type="ScrollContainer" parent="."]
layout_mode = 0
offset_left = 1047.0
offset_top = 962.0
offset_right = 1442.0
offset_bottom = 1166.0
[node name="tbl_files" type="GridContainer" parent="scrl_files"]
layout_mode = 2
script = ExtResource("8_1mtjm")
[node name="scrollout" type="ScrollContainer" parent="."]
layout_mode = 0
@@ -105,26 +119,26 @@ offset_bottom = 679.0
[node name="tbl_out" type="GridContainer" parent="scrollout"]
layout_mode = 2
script = ExtResource("2_n0fa5")
script = ExtResource("8_1mtjm")
[node name="scrl_in_set" type="ScrollContainer" parent="."]
layout_mode = 0
offset_left = 120.0
offset_top = 776.0
offset_right = 689.0
offset_right = 703.0
offset_bottom = 942.0
[node name="tbl_in_set" type="GridContainer" parent="scrl_in_set"]
layout_mode = 2
script = ExtResource("2_n0fa5")
script = ExtResource("8_1mtjm")
[node name="scrl_out_set" type="ScrollContainer" parent="."]
layout_mode = 0
offset_left = 719.0
offset_top = 773.0
offset_right = 1437.0
offset_right = 1415.0
offset_bottom = 924.0
[node name="tbl_out_set" type="GridContainer" parent="scrl_out_set"]
layout_mode = 2
script = ExtResource("2_n0fa5")
script = ExtResource("8_1mtjm")

View File

@@ -1,19 +1,19 @@
[gd_scene load_steps=10 format=3 uid="uid://b276iygic5itk"]
[ext_resource type="Script" path="res://scenes/работа.gd" id="1_qjoce"]
[ext_resource type="PackedScene" uid="uid://nl1vklubr5kr" path="res://scenes/bip.tscn" id="2_47xio"]
[ext_resource type="PackedScene" uid="uid://b5kjdyxuwsot5" path="res://scenes/canvas.tscn" id="2_bl0yt"]
[ext_resource type="PackedScene" uid="uid://bq7haw1ypiv48" path="res://scenes/frame.tscn" id="3_l1omj"]
[ext_resource type="PackedScene" uid="uid://da7w3vkhadfwe" path="res://scenes/button_flat.tscn" id="4_5es2r"]
[ext_resource type="Script" path="res://table/table.gd" id="4_mqhcf"]
[ext_resource type="Script" path="res://scenes/scrl_threats.gd" id="6_nr8d7"]
[ext_resource type="FontFile" uid="uid://befva8r034a4v" path="res://data/DSEG7Classic-Regular.ttf" id="7_22fjb"]
[ext_resource type="Script" path="res://scenes/работа.gd" id="1_g2xk6"]
[ext_resource type="PackedScene" uid="uid://nl1vklubr5kr" path="res://scenes/bip.tscn" id="2_ijbv2"]
[ext_resource type="PackedScene" uid="uid://b5kjdyxuwsot5" path="res://scenes/canvas.tscn" id="3_fppu7"]
[ext_resource type="PackedScene" uid="uid://bq7haw1ypiv48" path="res://scenes/frame.tscn" id="4_35qoc"]
[ext_resource type="Script" path="res://scenes/scrl_threats.gd" id="5_j58w3"]
[ext_resource type="Script" path="res://table/table.gd" id="6_fpdpm"]
[ext_resource type="PackedScene" uid="uid://da7w3vkhadfwe" path="res://scenes/button_flat.tscn" id="7_2sxkw"]
[ext_resource type="FontFile" uid="uid://befva8r034a4v" path="res://data/DSEG7Classic-Regular.ttf" id="8_68ssn"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5ugj8"]
[node name="Работа" type="Panel"]
script = ExtResource("1_qjoce")
Bip = ExtResource("2_47xio")
script = ExtResource("1_g2xk6")
Bip = ExtResource("2_ijbv2")
col_grey = Color(0.34902, 0.643137, 0.772549, 0.168627)
col_red = Color(1, 0.568627, 0.431373, 0.239216)
drag_scale_band = 0.05
@@ -25,10 +25,10 @@ strob_min_width = 5.0
metadata/_edit_vertical_guides_ = []
metadata/_edit_lock_ = true
[node name="canvas" parent="." instance=ExtResource("2_bl0yt")]
[node name="canvas" parent="." instance=ExtResource("3_fppu7")]
metadata/_edit_lock_ = true
[node name="frm_threats" parent="." instance=ExtResource("3_l1omj")]
[node name="frm_threats" parent="." instance=ExtResource("4_35qoc")]
layout_mode = 0
offset_left = 1121.0
offset_top = 6.0
@@ -37,7 +37,7 @@ offset_bottom = 642.0
script = null
metadata/_edit_lock_ = true
[node name="рамка-параметры-цели" parent="frm_threats" instance=ExtResource("3_l1omj")]
[node name="рамка-параметры-цели" parent="frm_threats" instance=ExtResource("4_35qoc")]
layout_mode = 0
offset_left = 5.0
offset_top = 313.0
@@ -203,14 +203,14 @@ offset_top = 57.0
offset_right = 464.0
offset_bottom = 306.0
horizontal_scroll_mode = 0
script = ExtResource("6_nr8d7")
script = ExtResource("5_j58w3")
[node name="tbl_threats" type="GridContainer" parent="frm_threats/scrl_threats"]
layout_mode = 2
columns = 4
script = ExtResource("4_mqhcf")
script = ExtResource("6_fpdpm")
[node name="рамка-сеансы-помех" parent="." instance=ExtResource("3_l1omj")]
[node name="рамка-сеансы-помех" parent="." instance=ExtResource("4_35qoc")]
layout_mode = 0
offset_left = 1121.0
offset_top = 648.0
@@ -304,7 +304,7 @@ theme_override_colors/font_color = Color(0.729412, 0.729412, 0.729412, 1)
text = "ПД-М4С"
horizontal_alignment = 1
[node name="рамка-помеха" parent="рамка-сеансы-помех" instance=ExtResource("3_l1omj")]
[node name="рамка-помеха" parent="рамка-сеансы-помех" instance=ExtResource("4_35qoc")]
layout_mode = 0
offset_left = 5.0
offset_top = 250.0
@@ -463,7 +463,7 @@ theme_override_colors/font_color = Color(0.729412, 0.729412, 0.729412, 1)
text = "ЛЧМ"
horizontal_alignment = 1
[node name="btn_auto_threat" parent="." instance=ExtResource("4_5es2r")]
[node name="btn_auto_threat" parent="." instance=ExtResource("7_2sxkw")]
layout_mode = 0
offset_left = 912.0
offset_top = 67.0
@@ -471,7 +471,7 @@ offset_right = 1102.0
offset_bottom = 117.0
text = "Автоматически"
[node name="btn_strobe" parent="." instance=ExtResource("4_5es2r")]
[node name="btn_strobe" parent="." instance=ExtResource("7_2sxkw")]
layout_mode = 0
offset_left = 912.0
offset_top = 6.0
@@ -479,7 +479,7 @@ offset_right = 1102.0
offset_bottom = 56.0
text = "Строб"
[node name="btn_p5" parent="." groups=["группа-режим-помехи"] instance=ExtResource("4_5es2r")]
[node name="btn_p5" parent="." groups=["группа-режим-помехи"] instance=ExtResource("7_2sxkw")]
layout_mode = 1
anchors_preset = -1
offset_left = 980.0
@@ -491,7 +491,7 @@ grow_vertical = 2
text = "ОЗП-1"
metadata/rfi_name = "ozp1"
[node name="btn_p4" parent="." groups=["группа-режим-помехи"] instance=ExtResource("4_5es2r")]
[node name="btn_p4" parent="." groups=["группа-режим-помехи"] instance=ExtResource("7_2sxkw")]
layout_mode = 1
anchors_preset = -1
offset_left = 1052.0
@@ -504,7 +504,7 @@ tooltip_text = "Выбор цели или сектора"
text = "<-"
metadata/rfi_name = "<pick>"
[node name="btn_p6" parent="." groups=["группа-режим-помехи"] instance=ExtResource("4_5es2r")]
[node name="btn_p6" parent="." groups=["группа-режим-помехи"] instance=ExtResource("7_2sxkw")]
layout_mode = 0
offset_left = 840.0
offset_top = 1118.0
@@ -513,7 +513,7 @@ offset_bottom = 1168.0
text = "СВ-М2"
metadata/rfi_name = "svm2"
[node name="btn_p7" parent="." groups=["группа-режим-помехи"] instance=ExtResource("4_5es2r")]
[node name="btn_p7" parent="." groups=["группа-режим-помехи"] instance=ExtResource("7_2sxkw")]
layout_mode = 0
offset_left = 910.0
offset_top = 1118.0
@@ -522,7 +522,7 @@ offset_bottom = 1168.0
text = "K1"
metadata/rfi_name = "k1"
[node name="btn_p8" parent="." groups=["группа-режим-помехи"] instance=ExtResource("4_5es2r")]
[node name="btn_p8" parent="." groups=["группа-режим-помехи"] instance=ExtResource("7_2sxkw")]
layout_mode = 0
offset_left = 770.0
offset_top = 1118.0
@@ -531,7 +531,7 @@ offset_bottom = 1168.0
text = "СВ-И1"
metadata/rfi_name = "svi1"
[node name="btn_p9" parent="." groups=["группа-режим-помехи"] instance=ExtResource("4_5es2r")]
[node name="btn_p9" parent="." groups=["группа-режим-помехи"] instance=ExtResource("7_2sxkw")]
layout_mode = 0
offset_left = 700.0
offset_top = 1118.0
@@ -540,7 +540,7 @@ offset_bottom = 1168.0
text = "ПД-ЧМ"
metadata/rfi_name = "pdchm"
[node name="btn_p10" parent="." groups=["группа-режим-помехи"] instance=ExtResource("4_5es2r")]
[node name="btn_p10" parent="." groups=["группа-режим-помехи"] instance=ExtResource("7_2sxkw")]
layout_mode = 1
anchors_preset = -1
offset_left = 630.0
@@ -552,7 +552,7 @@ grow_vertical = 2
text = "ПД-М4С"
metadata/rfi_name = "pdm4s"
[node name="btn_p11" parent="." groups=["группа-режим-помехи"] instance=ExtResource("4_5es2r")]
[node name="btn_p11" parent="." groups=["группа-режим-помехи"] instance=ExtResource("7_2sxkw")]
layout_mode = 0
offset_left = 350.0
offset_top = 1118.0
@@ -561,7 +561,7 @@ offset_bottom = 1168.0
text = "ЛЧМ-1"
metadata/rfi_name = "lchm1"
[node name="btn_p12" parent="." groups=["группа-режим-помехи"] instance=ExtResource("4_5es2r")]
[node name="btn_p12" parent="." groups=["группа-режим-помехи"] instance=ExtResource("7_2sxkw")]
layout_mode = 1
anchors_preset = -1
offset_left = 420.0
@@ -573,7 +573,7 @@ grow_vertical = 2
text = "МЧМ-1"
metadata/rfi_name = "mchm1"
[node name="btn_p13" parent="." groups=["группа-режим-помехи"] instance=ExtResource("4_5es2r")]
[node name="btn_p13" parent="." groups=["группа-режим-помехи"] instance=ExtResource("7_2sxkw")]
layout_mode = 1
anchors_preset = -1
offset_left = 490.0
@@ -585,7 +585,7 @@ grow_vertical = 2
text = "ПД-М2"
metadata/rfi_name = "pdm2"
[node name="btn_p14" parent="." groups=["группа-режим-помехи"] instance=ExtResource("4_5es2r")]
[node name="btn_p14" parent="." groups=["группа-режим-помехи"] instance=ExtResource("7_2sxkw")]
layout_mode = 1
anchors_preset = -1
offset_left = 560.0
@@ -597,7 +597,7 @@ grow_vertical = 2
text = "ПД-М4"
metadata/rfi_name = "pdm4"
[node name="btn_p15" parent="." groups=["группа-режим-помехи"] instance=ExtResource("4_5es2r")]
[node name="btn_p15" parent="." groups=["группа-режим-помехи"] instance=ExtResource("7_2sxkw")]
layout_mode = 1
anchors_preset = -1
offset_left = 280.0
@@ -609,7 +609,7 @@ grow_vertical = 2
text = "СРН-М2"
metadata/rfi_name = "srnm2"
[node name="btn_p16" parent="." groups=["группа-режим-помехи"] instance=ExtResource("4_5es2r")]
[node name="btn_p16" parent="." groups=["группа-режим-помехи"] instance=ExtResource("7_2sxkw")]
layout_mode = 0
offset_left = 210.0
offset_top = 1118.0
@@ -618,7 +618,7 @@ offset_bottom = 1168.0
text = "СРН-И1"
metadata/rfi_name = "srni1"
[node name="btn_off" parent="." groups=["группа-режим-помехи"] instance=ExtResource("4_5es2r")]
[node name="btn_off" parent="." groups=["группа-режим-помехи"] instance=ExtResource("7_2sxkw")]
layout_mode = 0
offset_left = 140.0
offset_top = 1118.0
@@ -627,7 +627,7 @@ offset_bottom = 1168.0
text = "Откл."
metadata/rfi_name = "<off>"
[node name="btn_auto_rfi" parent="." groups=["группа-режим-помехи"] instance=ExtResource("4_5es2r")]
[node name="btn_auto_rfi" parent="." groups=["группа-режим-помехи"] instance=ExtResource("7_2sxkw")]
layout_mode = 0
offset_left = 10.0
offset_top = 1118.0
@@ -643,7 +643,7 @@ offset_left = 96.0
offset_top = 109.0
offset_right = 164.0
offset_bottom = 142.0
theme_override_fonts/font = ExtResource("7_22fjb")
theme_override_fonts/font = ExtResource("8_68ssn")
theme_override_font_sizes/font_size = 20
text = "88"
vertical_alignment = 1
@@ -652,7 +652,7 @@ vertical_alignment = 1
layout_mode = 0
offset_right = 68.0
offset_bottom = 33.0
theme_override_fonts/font = ExtResource("7_22fjb")
theme_override_fonts/font = ExtResource("8_68ssn")
theme_override_font_sizes/font_size = 20
text = "00"
vertical_alignment = 1
@@ -664,7 +664,7 @@ offset_left = 96.0
offset_top = 29.0
offset_right = 188.0
offset_bottom = 88.0
theme_override_fonts/font = ExtResource("7_22fjb")
theme_override_fonts/font = ExtResource("8_68ssn")
theme_override_font_sizes/font_size = 56
text = "88"
@@ -672,7 +672,7 @@ text = "88"
layout_mode = 0
offset_right = 92.0
offset_bottom = 59.0
theme_override_fonts/font = ExtResource("7_22fjb")
theme_override_fonts/font = ExtResource("8_68ssn")
theme_override_font_sizes/font_size = 56
text = "00"

View File

@@ -1,25 +1,25 @@
[gd_scene load_steps=7 format=3 uid="uid://by22sta8tt8dn"]
[ext_resource type="Script" path="res://scenes/состояния-эмс.gd" id="1_ak0xd"]
[ext_resource type="Texture2D" uid="uid://belwchvdktrw0" path="res://data/эмс-бланк.png" id="2_1bili"]
[ext_resource type="Texture2D" uid="uid://bwddxs24es81u" path="res://data/эмс-бланк-пост.png" id="3_yw5yv"]
[ext_resource type="Texture2D" uid="uid://pfoscstbm025" path="res://data/эмс-бланк-перем.png" id="4_1fli0"]
[ext_resource type="Texture2D" uid="uid://dvl3sq036gn75" path="res://data/эмс-бланк-замыкание.png" id="5_sbva1"]
[ext_resource type="Script" path="res://scenes/состояния-эмс.gd" id="1_do21t"]
[ext_resource type="Texture2D" uid="uid://belwchvdktrw0" path="res://data/эмс-бланк.png" id="2_m87j8"]
[ext_resource type="Texture2D" uid="uid://bwddxs24es81u" path="res://data/эмс-бланк-пост.png" id="3_vjums"]
[ext_resource type="Texture2D" uid="uid://pfoscstbm025" path="res://data/эмс-бланк-перем.png" id="4_fejul"]
[ext_resource type="Texture2D" uid="uid://dvl3sq036gn75" path="res://data/эмс-бланк-замыкание.png" id="5_72oii"]
[sub_resource type="SpriteFrames" id="SpriteFrames_ow7xh"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_1bili")
"texture": ExtResource("2_m87j8")
}, {
"duration": 1.0,
"texture": ExtResource("3_yw5yv")
"texture": ExtResource("3_vjums")
}, {
"duration": 1.0,
"texture": ExtResource("4_1fli0")
"texture": ExtResource("4_fejul")
}, {
"duration": 1.0,
"texture": ExtResource("5_sbva1")
"texture": ExtResource("5_72oii")
}],
"loop": true,
"name": &"default",
@@ -31,10 +31,13 @@ layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_right = -1540.0
offset_bottom = -1182.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_ak0xd")
script = ExtResource("1_do21t")
[node name="sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(14, 9)
position = Vector2(34, 9)
sprite_frames = SubResource("SpriteFrames_ow7xh")
frame = 2

View File

@@ -1,38 +1,5 @@
extends Node
# Таблица с данными для входов, первое значение - индекс устройства в ячейке КЭМС
const INPUT_ROWS0 = [
[1,['1111 МР-231S, УИЗП', 'X31', '0.00', '0.00']],
[2,['2222 МР-231S, Строб ЭМС', 'X32', '0.00', '0.00']],
[3,['3НРЛС МР-231-3, УИЗП', 'X34', '0.00', '0.00']],
[4,['4НРЛС МР-231-3, Строб ЭМС', 'X35', '0.00', '0.00']],
[5,['5ЦИСВС-1010, УИЗП', 'X43', '0.00', '0.00']],
[8,['64302-01, 4302-04, УИЗП', 'X46', '0.00', '0.00']],
[11,['7НРЛС МР-231S, УИЗП', 'X51', '0.00', '0.00']],
[22,['8222 МР-231S, Строб ЭМС', 'X32', '0.00', '0.00']],
[23,['9РЛС МР-231-3, УИЗП', 'X34', '0.00', '0.00']],
[24,['10НРЛС МР-231-3, Строб ЭМС', 'X35', '0.00', '0.00']],
[25,['11ЦИСВС-1010, УИЗП', 'X43', '0.00', '0.00']],
[28,['124302-01, 4302-04, УИЗП', 'X46', '0.00', '0.00']],
[21,['13НРЛС МР-231S, УИЗП', 'X51', '0.00', '0.00']]]
# Таблица с данными для выходов, первое значение - индекс устройства в ячейке КЭМС
const OUTPUT_ROWS0 = [
[41,['15НРЛС МР-231S, БИ', 'X61', '0.00', '0.00']],
[42,['16НРЛС МР-231S', 'X62', '0.00', '0.00']],
[43,['17НРЛС МР-231-3, БИ', 'X64', '0.00', '0.00']],
[44,['18НРЛС МР-231-3', 'X65', '0.00', '0.00']],
[45,['19ЦИСВС-1010, БИ', 'X63', '0.00', '0.00']],
[46,['204302-01, 4302-04, БИ', 'X66', '0.00', '0.00']],
[48,['21НРЛС 11111111', 'X69', '0.00', '0.00']],
[52,['22НРЛС МР-231S', 'X62', '0.00', '0.00']],
[53,['23НРЛС МР-231-3, БИ', 'X64', '0.00', '0.00']],
[54,['24НРЛС МР-231-3', 'X65', '0.00', '0.00']],
[55,['25ЦИСВС-1010, БИ', 'X63', '0.00', '0.00']],
[56,['264302-01, 4302-04, БИ', 'X66', '0.00', '0.00']],
[58,['27НРЛС 11111111', 'X69', '0.00', '0.00']]]
const INPUT_ROWS1 = [
[12,['283333 МР-231S, Строб ЭМС', 'X52', '0.00', '0.00']],
[13,['29НРЛС МР-231-3, УИЗП', 'X54', '0.00', '0.00']],
@@ -63,3 +30,114 @@ const OUTPUT_ROWS1 = [
[65,['51ЦИСВС-1010, БИ', 'X63', '0.00', '0.00']],
[66,['524302-01, 4302-04, БИ', 'X66', '0.00', '0.00']],
[68,['53НРЛС 11111111', 'X69', '0.00', '0.00']]]
# Таблица с данными для входов, первое значение - индекс устройства в ячейке КЭМС
const INPUT_ROWS = [
[1,['УИЗП №1', 'Х7', '0.00', '0.00']],
[2,['УИЗПФ №1', 'Х8', '0.00', '0.00']],
[3,['УИЗП №2', 'Х10', '0.00', '0.00']],
[4,['УИЗПФ №2', 'Х11', '0.00', '0.00']],
[5,['УИЗП №3', 'Х13', '0.00', '0.00']],
[6,['УИЗПФ №3', 'Х14', '0.00', '0.00']],
[7,['УИЗП №4', 'Х16', '0.00', '0.00']],
[8,['УИЗПФ №4', 'Х17', '0.00', '0.00']],
[9,['УИЗП №5', 'Х19', '0.00', '0.00']],
[10,['УИЗПФ №5', 'Х20', '0.00', '0.00']],
[11,['УИЗП №6', 'Х22', '0.00', '0.00']],
[12,['УИЗПФ №6','Х23', '0.00', '0.00']],
[13,['УИЗП №7','Х25', '0.00', '0.00']],
[14,['УИЗПФ №7','Х26', '0.00', '0.00']],
[15,['СИ1 Л1','X31 : 2', '0.00', '0.00']],
[16,['СИ1 Л6','X31 : 5', '0.00', '0.00']],
[17,['СИ1 Л7','X31 : 8', '0.00', '0.00']],
[18,['СИ2 Л1','X32 : 2', '0.00', '0.00']],
[19,['СИ2 Л6','X32 : 5', '0.00', '0.00']],
[20,['СИ2 Л7','X32 : 8', '0.00', '0.00']],
[21,['СИ3 Л1','X33 : 2', '0.00', '0.00']],
[22,['СИ3 Л6','X33 : 5', '0.00', '0.00']],
[23,['СИ3 Л7','X33 : 8', '0.00', '0.00']],
[24,['СИ4 Л1','X34 : 2', '0.00', '0.00']],
[25,['СИ4 Л6','X34 : 5', '0.00', '0.00']],
[26,['СИ4 Л7','X34 : 8', '0.00', '0.00']],
[27,['СИ1 Л2','X38 : 2', '0.00', '0.00']],
[28,['СИ1 Л3','X38 : 5', '0.00', '0.00']],
[29,['СИ2 Л2','X39 : 2', '0.00', '0.00']],
[30,['СИ2 Л3','X39 : 5', '0.00', '0.00']],
[31,['СИ3 Л2','X40 : 2', '0.00', '0.00']],
[32,['СИ3 Л3','X40 : 5', '0.00', '0.00']],
[33,['СИ4 Л2','X41 : 2', '0.00', '0.00']],
[34,['СИ4 Л3','X41 : 5', '0.00', '0.00']],
[35,['СИ1 Л4','X42 : 2', '0.00', '0.00']],
[36,['СИ1 Л5','X42 : 5', '0.00', '0.00']],
[37,['СИ2 Л4','X43 : 2', '0.00', '0.00']],
[38,['СИ2 Л5','X43 : 5', '0.00', '0.00']],
[39,['СИ3 Л4','X44 : 2', '0.00', '0.00']],
[40,['СИ3 Л5','X44 : 5', '0.00', '0.00']],
[41,['СИ4 Л4','X45 : 2', '0.00', '0.00']],
[42,['СИ4 Л5','X45 : 5', '0.00', '0.00']],
[43,['БИ В Лб','Х49 : 37', '0.00', '0.00']],
[44,['БИ В ПрБ','Х49 : 31', '0.00', '0.00']],
[45,['БИ Г Лб','Х49 : 15', '0.00', '0.00']],
[46,['БИ Г ПрБ','Х49 : 8', '0.00', '0.00']],
[47,['БИ Д Лб','Х49 : 6', '0.00', '0.00']],
[48,['БИ Д ПрБ','Х49 : 10', '0.00', '0.00']],
[49,['БИ Е Лб','Х49 : 25', '0.00', '0.00']],
[50,['БИ Е ПрБ','Х49 : 40', '0.00', '0.00']],
[51,['СЗИ В Лб','Х49 : 42', '0.00', '0.00']],
[52,['СЗИ В ПрБ','Х49 : 32', '0.00', '0.00']],
[53,['СЗИ Г Лб','Х49 : 46', '0.00', '0.00']],
[54,['СЗИ Г ПрБ','Х49 : 32', '0.00', '0.00']],
[55,['СЗИ Д Лб','Х49 : 16', '0.00', '0.00']],
[56,['СЗИ Д ПрБ','Х49 : 47', '0.00', '0.00']],
[57,['СЗИ Е Лб','Х49 : 1', '0.00', '0.00']],
[58,['СЗИ Е ПрБ','Х49 : 50', '0.00', '0.00']]]
# Таблица с данными для выходов, первое значение - индекс устройства в ячейке КЭМС
const OUTPUT_ROWS = [
[11,['Бланк №1','Х6', '0.00', '0.00']],
[12,['Бланк №2','Х9', '0.00', '0.00']],
[13,['Бланк №3','Х12', '0.00', '0.00']],
[14,['Бланк №4','Х15', '0.00', '0.00']],
[15,['Бланк №5','Х18', '0.00', '0.00']],
[16,['Бланк №6','Х21', '0.00', '0.00']],
[17,['Бланк №7','Х24', '0.00', '0.00']],
[18,['СЗИ1 Л1','X31 : 11', '0.00', '0.00']],
[19,['СЗИ1 Л6','X31 :14', '0.00', '0.00']],
[20,['СЗИ1 Л7','X31 : 17', '0.00', '0.00']],
[21,['СЗИ2 Л1','X32 : 11', '0.00', '0.00']],
[22,['СЗИ2 Л6','X32 : 14', '0.00', '0.00']],
[23,['СЗИ2 Л7','X32: 17', '0.00', '0.00']],
[24,['СЗИ3 Л1','X33 : 11', '0.00', '0.00']],
[25,['СЗИ3 Л6','X33 :14', '0.00', '0.00']],
[26,['СЗИ3 Л7','X33: 17', '0.00', '0.00']],
[27,['СЗИ4 Л1','X34 : 11', '0.00', '0.00']],
[28,['СЗИ4 Л6','X34 :14', '0.00', '0.00']],
[29,['СЗИ4 Л7','X34: 17', '0.00', '0.00']],
[30,['СЗИ1 Л2','X38 : 11', '0.00', '0.00']],
[31,['СЗИ1 Л3','X38 : 14', '0.00', '0.00']],
[32,['СЗИ2 Л2','X39 : 11', '0.00', '0.00']],
[33,['СЗИ2 Л3','X39 : 14', '0.00', '0.00']],
[34,['СЗИ3 Л2','X40 : 11', '0.00', '0.00']],
[35,['СЗИ3 Л3','X40 : 14', '0.00', '0.00']],
[36,['СЗИ4 Л2','X41 : 11', '0.00', '0.00']],
[37,['СЗИ4 Л3','X41 :14', '0.00', '0.00']],
[38,['СЗИ1 Л4','X42 : 11', '0.00', '0.00']],
[39,['СЗИ1 Л5','X42 :14', '0.00', '0.00']],
[40,['СЗИ2 Л4','X43 : 11', '0.00', '0.00']],
[41,['СЗИ2 Л5','X43 : 14', '0.00', '0.00']],
[42,['СЗИ3 Л4','X44 : 11', '0.00', '0.00']],
[43,['СЗИ3 Л5','X44 :14', '0.00', '0.00']],
[44,['СЗИ4 Л4','X45 : 11', '0.00', '0.00']],
[45,['СЗИ4 Л5','X45 : 14', '0.00', '0.00']],
[46,['БИ РТР №1','X47 : 2', '0.00', '0.00']],
[47,['БИ РТР №2','X47 : 5', '0.00', '0.00']],
[48,['БИ РТР №3','X47 : 8', '0.00', '0.00']],
[49,['БИ РТР №4','X47 : 11', '0.00', '0.00']],
[50,['СИ В Лб','Х49 : 21', '0.00', '0.00']],
[51,['СИ В ПрБ','Х49 : 19', '0.00', '0.00']],
[52,['СИ Г Лб','Х49 : 28', '0.00', '0.00']],
[53,['СИ Г ПрБ','Х49 : 30', '0.00', '0.00']],
[54,['СИ Д Лб','Х49 : 13', '0.00', '0.00']],
[55,['СИ Д ПрБ','Х49 : 11', '0.00', '0.00']],
[56,['СИ Е Лб','Х49 : 26', '0.00', '0.00']],
[57,['СИ Е ПрБ','Х49 : 35', '0.00', '0.00']]]