diff --git a/PRD_MP550.tscn b/PRD_MP550.tscn index 3f375da..9c3232b 100644 --- a/PRD_MP550.tscn +++ b/PRD_MP550.tscn @@ -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 diff --git a/ems_g.gd b/ems_g.gd index 5d184ce..e67e3be 100644 --- a/ems_g.gd +++ b/ems_g.gd @@ -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) diff --git a/scripts/PRD.gd b/scripts/PRD.gd index 11431db..5f71d80 100644 --- a/scripts/PRD.gd +++ b/scripts/PRD.gd @@ -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: diff --git a/scripts/constants.gd b/scripts/constants.gd index b1da50a..12c15d9 100644 --- a/scripts/constants.gd +++ b/scripts/constants.gd @@ -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, diff --git a/table/node_list.tscn b/table/node_list.tscn index 1a73940..aa57005 100644 --- a/table/node_list.tscn +++ b/table/node_list.tscn @@ -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 diff --git a/table/socket_status.tscn b/table/socket_status.tscn new file mode 100644 index 0000000..739ba3f --- /dev/null +++ b/table/socket_status.tscn @@ -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") diff --git a/table/switch.tscn b/table/switch.tscn index 0d36949..b7e38c3 100644 --- a/table/switch.tscn +++ b/table/switch.tscn @@ -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") diff --git a/table/table.gd b/table/table.gd index ddca4e8..008bb7f 100644 --- a/table/table.gd +++ b/table/table.gd @@ -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()