add optbtn

This commit is contained in:
2024-12-13 09:01:01 +03:00
parent 7bc5aa8e3d
commit 3fa0b072bf
8 changed files with 174 additions and 66 deletions

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=43 format=3 uid="uid://cvor2jm4xk3ha"]
[gd_scene load_steps=54 format=3 uid="uid://cvor2jm4xk3ha"]
[ext_resource type="Script" path="res://scripts/PRD.gd" id="1_v273n"]
[ext_resource type="Script" path="res://table/table.gd" id="2_vmbyo"]
@@ -45,6 +45,39 @@ data = {
[sub_resource type="ImageTexture" id="ImageTexture_7imsd"]
image = SubResource("Image_ye5as")
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_w1th4"]
bg_color = Color(0.00176745, 0.0018535, 0.00195493, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jd0we"]
bg_color = Color(0, 0, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qeshs"]
bg_color = Color(0, 0, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_l3dyq"]
bg_color = Color(0, 0, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_bvo7a"]
bg_color = Color(0, 0, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_gooip"]
bg_color = Color(0, 0, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lqhgx"]
bg_color = Color(0, 0, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_148rs"]
bg_color = Color(0, 0, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_i0vx1"]
bg_color = Color(0.782378, 0.411862, 0.935049, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ldbvf"]
bg_color = Color(0, 0, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cfhjb"]
bg_color = Color(0.0811369, 0.690685, 0.641033, 1)
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_h8aei"]
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_d322q"]
@@ -59,6 +92,18 @@ Button/styles/hover = SubResource("StyleBoxFlat_o0too")
Button/styles/normal = SubResource("StyleBoxFlat_dm3xa")
Button/styles/pressed = SubResource("StyleBoxFlat_h7n4k")
CheckButton/icons/unchecked = SubResource("ImageTexture_7imsd")
CheckButton/styles/focus = SubResource("StyleBoxFlat_w1th4")
CheckButton/styles/hover = SubResource("StyleBoxFlat_jd0we")
CheckButton/styles/hover_pressed = SubResource("StyleBoxFlat_qeshs")
CheckButton/styles/normal = SubResource("StyleBoxFlat_l3dyq")
CheckButton/styles/pressed = SubResource("StyleBoxFlat_bvo7a")
OptionButton/font_sizes/font_size = 17
OptionButton/styles/focus = SubResource("StyleBoxFlat_gooip")
OptionButton/styles/hover = SubResource("StyleBoxFlat_lqhgx")
OptionButton/styles/normal = SubResource("StyleBoxFlat_148rs")
OptionButton/styles/normal_mirrored = SubResource("StyleBoxFlat_i0vx1")
OptionButton/styles/pressed = SubResource("StyleBoxFlat_ldbvf")
OptionButton/styles/pressed_mirrored = SubResource("StyleBoxFlat_cfhjb")
TabContainer/styles/panel = SubResource("StyleBoxTexture_h8aei")
TabContainer/styles/tab_focus = SubResource("StyleBoxTexture_d322q")
TabContainer/styles/tab_selected = SubResource("StyleBoxTexture_8j02b")
@@ -226,7 +271,7 @@ metadata/_edit_lock_ = true
[node name="TabContainer" type="TabContainer" parent="."]
offset_left = 216.0
offset_top = 39.0
offset_right = 1989.0
offset_right = 2420.0
offset_bottom = 917.0
theme = SubResource("Theme_k5ur4")
theme_override_colors/font_unselected_color = Color(0, 0, 0, 0.0392157)
@@ -241,7 +286,6 @@ theme_override_styles/tab_unselected = SubResource("StyleBoxTexture_17le6")
tab_alignment = 2
current_tab = 1
tab_focus_mode = 0
metadata/_edit_lock_ = true
[node name="ControlPanel" type="Panel" parent="TabContainer"]
visible = false
@@ -258,39 +302,37 @@ offset_right = 1867.0
offset_bottom = 734.0
color = Color(0.390334, 0.227948, 0.288326, 1)
[node name="control_dev" type="ScrollContainer" parent="TabContainer/ControlPanel"]
[node name="control_tbl" type="GridContainer" parent="TabContainer/ControlPanel"]
layout_mode = 2
offset_left = 240.0
offset_top = 50.0
offset_right = 575.0
offset_bottom = 634.0
[node name="control_tbl" type="GridContainer" parent="TabContainer/ControlPanel/control_dev"]
layout_mode = 2
offset_right = 240.0
offset_bottom = 50.0
script = ExtResource("2_vmbyo")
metadata/_edit_lock_ = true
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/ControlPanel/control_dev"]
position = Vector2(284, 404)
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/ControlPanel"]
position = Vector2(524, 454)
sprite_frames = SubResource("SpriteFrames_vex4t")
metadata/_edit_lock_ = true
[node name="SZI_x2" type="AnimatedSprite2D" parent="TabContainer/ControlPanel/control_dev"]
position = Vector2(284, 432)
[node name="SZI_x2" type="AnimatedSprite2D" parent="TabContainer/ControlPanel"]
position = Vector2(524, 482)
sprite_frames = SubResource("SpriteFrames_vex4t")
metadata/_edit_lock_ = true
[node name="SZI_x3" type="AnimatedSprite2D" parent="TabContainer/ControlPanel/control_dev"]
position = Vector2(284, 460)
[node name="SZI_x3" type="AnimatedSprite2D" parent="TabContainer/ControlPanel"]
position = Vector2(524, 510)
sprite_frames = SubResource("SpriteFrames_vex4t")
metadata/_edit_lock_ = true
[node name="SZI_x4" type="AnimatedSprite2D" parent="TabContainer/ControlPanel/control_dev"]
position = Vector2(284, 488)
[node name="SZI_x4" type="AnimatedSprite2D" parent="TabContainer/ControlPanel"]
position = Vector2(524, 538)
sprite_frames = SubResource("SpriteFrames_vex4t")
metadata/_edit_lock_ = true
[node name="SZI_x5" type="AnimatedSprite2D" parent="TabContainer/ControlPanel/control_dev"]
position = Vector2(284, 517)
[node name="SZI_x5" type="AnimatedSprite2D" parent="TabContainer/ControlPanel"]
position = Vector2(524, 567)
sprite_frames = SubResource("SpriteFrames_vex4t")
metadata/_edit_lock_ = true
@@ -487,14 +529,12 @@ script = ExtResource("9_g1wia")
metadata/_tab_index = 2
metadata/_edit_lock_ = true
[node name="scroll1" type="ScrollContainer" parent="TabContainer/EMS_G"]
[node name="table1" type="GridContainer" parent="TabContainer/EMS_G"]
layout_mode = 2
offset_left = 91.0
offset_top = 156.0
offset_right = 1505.0
offset_bottom = 855.0
[node name="table1" type="GridContainer" parent="TabContainer/EMS_G/scroll1"]
layout_mode = 2
offset_right = 91.0
offset_bottom = 156.0
script = ExtResource("2_vmbyo")
metadata/_edit_lock_ = true

View File

@@ -1,39 +1,80 @@
extends Panel
var node_select1: Node
var shift: int = 2
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
var node_select1 = $scroll1/table1
node_select1 = $table1
var EMS_G_TABLE: Array
for i_row in Constants.INPUT_EMS_G.size()+1:
for i_row in Constants.INPUT_EMS_G.size() + shift + 1:
var column: Array
for out_colum in Constants.OUT_EMS_G.size()+1:
if out_colum > 0 and i_row > 0:
for out_colum in Constants.OUT_EMS_G.size()+shift:
if out_colum > 1 and i_row ==0:
column.append(Constants.TableList)
elif out_colum > 1 and i_row > 2:
column.append(Constants.Switch)
elif (out_colum == 1 and i_row > 2) or (out_colum > 1 and i_row == 2):
column.append(Constants.SocketStatus)
else:
column.append(Constants.TableNode)
EMS_G_TABLE.append(column)
draw_tabl(node_select1, EMS_G_TABLE, EMS_G_TABLE.size())
node_select1.get_node2(0, 0).text = 'XЭ ТРИ'
node_select1.get_node2(1, 1).text = 'x3 : OUT'
node_select1.get_node2(0, 2).text = 'x3 : IN'
for i in Constants.INPUT_EMS_G.size():
node_select1.get_node2(0, i+1).text = Constants.INPUT_EMS_G[i]
node_select1.get_node2(0, i+shift+1).text = Constants.INPUT_EMS_G[i]
for i in Constants.OUT_EMS_G.size():
node_select1.get_node2(i+1, 0).text = Constants.OUT_EMS_G[i]
node_select1.get_node2(i+shift, 1).text = Constants.OUT_EMS_G[i]
for i in EMS_G_TABLE[0].size()-shift:
var list = node_select1.get_node2(i+shift, 0)
for k in Constants.OUT_x128.size():
list.add_item(Constants.OUT_x128[k])
var columns_min_size: Array
for i in EMS_G_TABLE.size():
for i in EMS_G_TABLE[0].size():
columns_min_size.append(70)
node_select1.set_columns_min_size(columns_min_size)
Network.connect('_yau_receive', Callable(self, '_on_data_received'))
func draw_tabl(tbl, row: Array, count_row: int):
for i_row in count_row:
tbl.add_row(row[i_row])
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _on_data_received(data_from_yau_07):
var in_blank: int = data_from_yau_07.decode_u16(Constants.DataIndices.IN_BLANK_PRD)
var in_imp: int = data_from_yau_07.decode_u16(Constants.DataIndices.IN_IMPULS_PRD)
var out_blank: int = data_from_yau_07.decode_u16(Constants.DataIndices.OUT_BLANK_PRD)
var out_imp: int = data_from_yau_07.decode_u16(Constants.DataIndices.OUT_IMPULS_PRD)
for i in 16:
var socket_status = node_select1.get_node2(1, i+shift+1).get_child(0, false)
if (in_blank & (1 << i) != 0):
set_frame(socket_status, Constants.Frame.CONSTANT)
elif (in_imp & (1 << i) != 0):
set_frame(socket_status, Constants.Frame.VARIABLE)
else:
set_frame(socket_status, Constants.Frame.WORK)
#
for i in 16:
var socket_status = node_select1.get_node2(i+shift, 2).get_child(0, false)
if (out_blank & (1 << i) != 0):
set_frame(socket_status, Constants.Frame.CONSTANT)
elif (out_imp & (1 << i) != 0):
set_frame(socket_status, Constants.Frame.VARIABLE)
else:
set_frame(socket_status, Constants.Frame.WORK)
func _process(delta: float) -> void:
pass
func set_frame(node: Node, val: int): node.set_frame(val)

View File

@@ -39,7 +39,7 @@ func _ready() -> void:
node_select_device.set_columns_min_size([100, 100])
# Контроль
var node_control_device = $TabContainer/ControlPanel/control_dev/control_tbl
var node_control_device = $TabContainer/ControlPanel/control_tbl
for i in Constants.CONTROL_DEVICE.size():
CONTROL_TABLE.append([Constants.TableNode])
draw_tabl(node_control_device, CONTROL_TABLE, CONTROL_TABLE.size())
@@ -57,14 +57,14 @@ func _ready() -> void:
## From Network status about yau-07
func _on_yau_status(yau_status):
if yau_status:
$TabContainer/ControlPanel/control_dev/control_tbl.get_node2(0, 0).text = 'ЯУ-07Б НА СВЯЗИ'
$TabContainer/ControlPanel/control_dev/control_tbl.get_node2(0, 0).modulate = Color.GREEN
$TabContainer/ControlPanel/control_tbl.get_node2(0, 0).text = 'ЯУ-07Б НА СВЯЗИ'
$TabContainer/ControlPanel/control_tbl.get_node2(0, 0).modulate = Color.GREEN
flag_yau_control = true
else:
$TabContainer/ControlPanel/control_dev/control_tbl.get_node2(0, 0).text = 'НЕТ СВЯЗИ С ЯУ-07Б'
$TabContainer/ControlPanel/control_dev/control_tbl.get_node2(0, 0).modulate = Color.RED
$TabContainer/ControlPanel/control_tbl.get_node2(0, 0).text = 'НЕТ СВЯЗИ С ЯУ-07Б'
$TabContainer/ControlPanel/control_tbl.get_node2(0, 0).modulate = Color.RED
for dev in (Constants.CONTROL_DEVICE.size() - 1):
var node_board = $TabContainer/ControlPanel/control_dev/control_tbl.get_node2(0, dev+1)
var node_board = $TabContainer/ControlPanel/control_tbl.get_node2(0, dev+1)
node_board.modulate = Color.RED
flag_yau_control = false
@@ -95,10 +95,11 @@ func _on_data_received(data_from_yau_07):
## УГ
#node_select1.set_node_text(2, 0, '%d' % dry_contact)
var node_control_device = $TabContainer/ControlPanel/control_dev/control_tbl
var node_control_device = $TabContainer/ControlPanel/control_tbl
for i in 4:
var node_board = node_control_device.get_node2(0, i+2)
var j = int(status_board & (1 << i) == 0 and flag_yau_control)
node_board.text = Constants.CONTROL_BOARD[i][j]
node_board.modulate = [Color.GREEN, Color.RED][j]
@@ -109,7 +110,7 @@ func _on_data_received(data_from_yau_07):
node_power_supply.modulate = [Color.GREEN, Color.RED][j]
## EMS G
var CONTROL_FRAME = [$TabContainer/ControlPanel/control_dev/SZI_x, $TabContainer/ControlPanel/control_dev/SZI_x2, $TabContainer/ControlPanel/control_dev/SZI_x3, $TabContainer/ControlPanel/control_dev/SZI_x4, $TabContainer/ControlPanel/control_dev/SZI_x5]
var CONTROL_FRAME = [$TabContainer/ControlPanel/SZI_x, $TabContainer/ControlPanel/SZI_x2, $TabContainer/ControlPanel/SZI_x3, $TabContainer/ControlPanel/SZI_x4, $TabContainer/ControlPanel/SZI_x5]
for i in 5:
var node_ems_g = node_control_device.get_node2(0, i + 14)
var j: int = 0
@@ -222,8 +223,6 @@ func _on_control_button() -> void:
$Background/side_panel/select_control.button_pressed = true
$Background/side_panel/select_prd.button_pressed = false
$Background/side_panel/select_ems_g.button_pressed = false
#$TabContainer/ControlPanel/control_dev.visible = toggled_on
#$TabContainer/ControlPanel/Controlpanel.visible = toggled_on
func _on_emsg_select() -> void:

View File

@@ -11,6 +11,7 @@ const TEMP: float = 115.0 / (MAXIMUM_CODE_ADC - MINIMUM_CODE_AD)
const TableNode = preload("res://table/node.tscn")
const TableList = preload("res://table/node_list.tscn")
const Switch = preload("res://table/switch.tscn")
const SocketStatus = preload("res://table/socket_status.tscn")
const SELECT_DEVICE: Array = [[TableNode, TableList]]
const CONTROL_DEVICE: Array = ['ЯЧЕЙКА ЯУ-07Б', 'ФС', 'ЯЧЕЙКА ЭМС-Г', 'ЯЧЕЙКА УГ', 'ЯЧЕЙКА УКП №1', 'ЯЧЕЙКА УКП №2', 'ИП МАА №1', 'ИП МАА №2', 'ИП9-50 №1', 'ИП9-50 №2', 'ИП12-50 №1', '-', '-','ИП5-25', 'Х3:2(СЗИ2 от УФ)', 'Х3:19(СИ2 от ФС)', 'Х3:11(СИ2 в УФ)', 'Х3:14(Модуляция)', 'Х3:27(ФГОЗ)']
const ROWS_REGS_DATA: Array = [
@@ -100,6 +101,12 @@ const OUT_EMS_G: Array = [
'31/:47',
'32/:48',
'33/:49',]
const OUT_x128 = [
'Р',
'К',
'0',
'1',]
enum MODE {
PRD_K,
PRD_B,

View File

@@ -1,12 +1,8 @@
[gd_scene load_steps=2 format=3 uid="uid://mxm8nthir8h4"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ddnjm"]
bg_color = Color(0, 0, 0, 1)
[gd_scene format=3 uid="uid://mxm8nthir8h4"]
[node name="OptionButton" type="OptionButton"]
offset_right = 130.0
offset_bottom = 25.0
focus_mode = 0
mouse_default_cursor_shape = 2
theme_override_styles/normal = SubResource("StyleBoxFlat_ddnjm")
alignment = 1

38
table/socket_status.tscn Normal file
View File

@@ -0,0 +1,38 @@
[gd_scene load_steps=6 format=3 uid="uid://dn3jp4r8ij3rf"]
[ext_resource type="Texture2D" uid="uid://dkef6xwxwdxi8" path="res://эмс-бланк.png" id="1_bsrew"]
[ext_resource type="Texture2D" uid="uid://b15flrfytxkop" path="res://эмс-бланк-пост.png" id="2_b2kjm"]
[ext_resource type="Texture2D" uid="uid://ijdfo2mml54" path="res://эмс-бланк-перем.png" id="3_odpjv"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jkmds"]
bg_color = Color(0, 0, 0, 1)
[sub_resource type="SpriteFrames" id="SpriteFrames_a7q1i"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("1_bsrew")
}, {
"duration": 1.0,
"texture": ExtResource("2_b2kjm")
}, {
"duration": 1.0,
"texture": ExtResource("3_odpjv")
}, {
"duration": 1.0,
"texture": null
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="PanelContainer" type="PanelContainer"]
offset_right = 73.0
offset_bottom = 38.0
theme_override_styles/panel = SubResource("StyleBoxFlat_jkmds")
[node name="SZI_x" type="AnimatedSprite2D" parent="."]
position = Vector2(35, 11)
scale = Vector2(0.777778, 0.777778)
sprite_frames = SubResource("SpriteFrames_a7q1i")

View File

@@ -1,27 +1,14 @@
[gd_scene load_steps=6 format=3 uid="uid://dhg1syshfaem2"]
[ext_resource type="Material" uid="uid://s6xe8igevnv2" path="res://Shaders/shader_edu.tres" id="1_nb5jm"]
[gd_scene load_steps=2 format=3 uid="uid://dhg1syshfaem2"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kwqxa"]
bg_color = Color(0, 0, 0, 1)
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_7vs72"]
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_houwj"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_o2hja"]
bg_color = Color(0.6, 0.6, 0.6, 0)
[node name="PanelContainer" type="PanelContainer"]
offset_right = 186.0
offset_bottom = 40.0
theme_override_styles/panel = SubResource("StyleBoxFlat_kwqxa")
[node name="CheckButton" type="CheckButton" parent="."]
material = ExtResource("1_nb5jm")
layout_mode = 2
size_flags_horizontal = 4
mouse_default_cursor_shape = 2
theme_override_styles/disabled_mirrored = SubResource("StyleBoxTexture_7vs72")
theme_override_styles/hover = SubResource("StyleBoxTexture_houwj")
theme_override_styles/normal = SubResource("StyleBoxFlat_o2hja")

View File

@@ -210,7 +210,7 @@ func get_key_indexes(key: String) -> Array:
##
func set_columns_min_size(sizes: Array) -> void:
func set_columns_min_size(sizes: Array) -> void:
assert((columns == 1) or (columns == sizes.size()))
columns = sizes.size()
var rows_count: = get_rows_count()