From 250d7c3c9123879ae5e3e299297c32335789aae7 Mon Sep 17 00:00:00 2001 From: Maxim Date: Wed, 18 Dec 2024 14:01:19 +0300 Subject: [PATCH] full sync ems g --- PRD_MP550.tscn | 176 ++++++++++++++++++++++++--------------------- ems_g.gd | 27 ++++++- project.godot | 4 ++ scripts/PRD.gd | 2 +- scripts/network.gd | 10 +-- scripts/switch.gd | 2 +- 6 files changed, 127 insertions(+), 94 deletions(-) diff --git a/PRD_MP550.tscn b/PRD_MP550.tscn index c3e0807..1565017 100644 --- a/PRD_MP550.tscn +++ b/PRD_MP550.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=47 format=3 uid="uid://cvor2jm4xk3ha"] +[gd_scene load_steps=48 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"] @@ -110,28 +110,6 @@ bg_color = Color(0.356863, 0.278431, 0.356863, 1) [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_17le6"] -[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_tn8m6"] - -[sub_resource type="SpriteFrames" id="SpriteFrames_vex4t"] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("7_hdx0f") -}, { -"duration": 1.0, -"texture": ExtResource("8_eaogg") -}, { -"duration": 1.0, -"texture": ExtResource("9_nctgk") -}, { -"duration": 1.0, -"texture": null -}], -"loop": true, -"name": &"default", -"speed": 5.0 -}] - [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_7u7p7"] [sub_resource type="Gradient" id="Gradient_jlp41"] @@ -166,8 +144,33 @@ shader_parameter/turn = 0.785 [sub_resource type="GradientTexture2D" id="GradientTexture2D_0pk2o"] gradient = SubResource("Gradient_ki0n7") +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_tn8m6"] + +[sub_resource type="SpriteFrames" id="SpriteFrames_vex4t"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("7_hdx0f") +}, { +"duration": 1.0, +"texture": ExtResource("8_eaogg") +}, { +"duration": 1.0, +"texture": ExtResource("9_nctgk") +}, { +"duration": 1.0, +"texture": null +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_ooo4i"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4xm3m"] +bg_color = Color(0, 0, 0, 0.415686) + [node name="Node2D" type="Node2D"] script = ExtResource("1_v273n") @@ -240,8 +243,8 @@ color = Color(0.669446, 0.567301, 0.66881, 1) [node name="ISA" type="Label" parent="."] offset_left = 225.0 offset_top = 11.0 -offset_right = 476.0 -offset_bottom = 34.0 +offset_right = 1853.0 +offset_bottom = 48.0 autowrap_mode = 3 [node name="read_isa" type="Button" parent="."] @@ -267,63 +270,13 @@ theme_override_styles/tab_selected = SubResource("StyleBoxTexture_k08q3") theme_override_styles/tab_hovered = SubResource("StyleBoxTexture_dklg6") theme_override_styles/tab_unselected = SubResource("StyleBoxTexture_17le6") tab_alignment = 2 -current_tab = 1 +current_tab = 0 tab_focus_mode = 0 -[node name="ControlPanel" type="Panel" parent="TabContainer"] -visible = false -layout_mode = 2 -theme_override_styles/panel = SubResource("StyleBoxTexture_tn8m6") -metadata/_tab_index = 0 -metadata/_edit_lock_ = true - -[node name="Controlpanel" type="ColorRect" parent="TabContainer/ControlPanel"] -visible = false -layout_mode = 0 -offset_left = 216.0 -offset_top = 40.0 -offset_right = 1867.0 -offset_bottom = 734.0 -color = Color(0.390334, 0.227948, 0.288326, 1) - -[node name="control_tbl" type="GridContainer" parent="TabContainer/ControlPanel"] -layout_mode = 2 -offset_left = 240.0 -offset_top = 50.0 -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"] -position = Vector2(524, 454) -sprite_frames = SubResource("SpriteFrames_vex4t") -metadata/_edit_lock_ = true - -[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"] -position = Vector2(524, 510) -sprite_frames = SubResource("SpriteFrames_vex4t") -metadata/_edit_lock_ = true - -[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"] -position = Vector2(524, 567) -sprite_frames = SubResource("SpriteFrames_vex4t") -metadata/_edit_lock_ = true - [node name="PRD" type="Panel" parent="TabContainer"] layout_mode = 2 theme_override_styles/panel = SubResource("StyleBoxTexture_7u7p7") -metadata/_tab_index = 1 +metadata/_tab_index = 0 metadata/_edit_lock_ = true [node name="scroll1" type="ScrollContainer" parent="TabContainer/PRD"] @@ -519,6 +472,56 @@ layout_mode = 2 script = ExtResource("2_vmbyo") metadata/_edit_lock_ = true +[node name="ControlPanel" type="Panel" parent="TabContainer"] +visible = false +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxTexture_tn8m6") +metadata/_tab_index = 1 +metadata/_edit_lock_ = true + +[node name="Controlpanel" type="ColorRect" parent="TabContainer/ControlPanel"] +visible = false +layout_mode = 0 +offset_left = 216.0 +offset_top = 40.0 +offset_right = 1867.0 +offset_bottom = 734.0 +color = Color(0.390334, 0.227948, 0.288326, 1) + +[node name="control_tbl" type="GridContainer" parent="TabContainer/ControlPanel"] +layout_mode = 2 +offset_left = 240.0 +offset_top = 50.0 +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"] +position = Vector2(524, 454) +sprite_frames = SubResource("SpriteFrames_vex4t") +metadata/_edit_lock_ = true + +[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"] +position = Vector2(524, 510) +sprite_frames = SubResource("SpriteFrames_vex4t") +metadata/_edit_lock_ = true + +[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"] +position = Vector2(524, 567) +sprite_frames = SubResource("SpriteFrames_vex4t") +metadata/_edit_lock_ = true + [node name="EMS_G" type="Panel" parent="TabContainer"] visible = false layout_mode = 2 @@ -529,14 +532,25 @@ metadata/_edit_lock_ = true [node name="table1" type="GridContainer" parent="TabContainer/EMS_G"] layout_mode = 2 -offset_left = 91.0 -offset_top = 156.0 -offset_right = 91.0 -offset_bottom = 156.0 +offset_left = 27.0 +offset_top = 148.0 +offset_right = 27.0 +offset_bottom = 148.0 script = ExtResource("2_vmbyo") metadata/_edit_lock_ = true +[node name="Button" type="Button" parent="TabContainer/EMS_G"] +layout_mode = 0 +offset_left = 30.0 +offset_top = 736.0 +offset_right = 192.0 +offset_bottom = 765.0 +theme_override_styles/hover = SubResource("StyleBoxFlat_4xm3m") +text = "Синхронизация" +metadata/_edit_lock_ = true + [connection signal="pressed" from="Background/side_panel/select_prd" to="." method="_on_prd_select"] [connection signal="pressed" from="Background/side_panel/select_control" to="." method="_on_control_button"] [connection signal="pressed" from="Background/side_panel/select_ems_g" to="." method="_on_emsg_select"] [connection signal="pressed" from="read_isa" to="." method="_on_read_isa_pressed"] +[connection signal="pressed" from="TabContainer/EMS_G/Button" to="TabContainer/EMS_G" method="_on_sync"] diff --git a/ems_g.gd b/ems_g.gd index 6f7f6c4..de217f7 100644 --- a/ems_g.gd +++ b/ems_g.gd @@ -2,6 +2,7 @@ extends Panel var node_select1: Node var shift: int = 2 var button_link_meta: Dictionary = {} +var flag_sync_ems_g: bool = false func _on_read_ems_g(): @@ -13,9 +14,28 @@ func _on_read_ems_g(): Network.send_array.append(['wr', {Constants.EMS_G_BASE_ADDR+2: 1+i}]) Network.send_array.append(['rd', [Constants.EMS_G_BASE_ADDR+4, Constants.EMS_G_BASE_ADDR+8]]) + func _on_sync(): - pass - + + if flag_sync_ems_g: + for index in 32: + var tmp_device_mode = Constants.EMS_G_PORT_DATA_HOLDER[index][0] + if tmp_device_mode > 46: + var port0x124: int + var port0x128: int + for key in Constants.EMS_G_PORT_DATA_HOLDER[index][1].keys(): + if key == 0x124: + port0x124 = Constants.EMS_G_PORT_DATA_HOLDER[index][1][key] + for row in 16: + if (port0x124 & (1 << row)) != 0: + var chk_btn = node_select1.get_node2(tmp_device_mode-45, row+3).get_child(1, false) + chk_btn.button_pressed =true + if key == 0x128: + port0x128 = Constants.EMS_G_PORT_DATA_HOLDER[index][1][key] + var list = node_select1.get_node2(tmp_device_mode-45, 0) + var select = 0 if port0x128 == 0 else 1 if port0x128 == 0x2000 else 2 if port0x128 == 0x4000 else 3 + list.select(select) + func _ready() -> void: node_select1 = $table1 @@ -96,7 +116,8 @@ func _on_data_received(data_from_yau_07): func _process(_delta: float) -> void: - pass + if Constants.EMS_G_PORT_DATA_HOLDER.size() == 32: + flag_sync_ems_g = true func set_frame(node: Node, val: int): node.set_frame(val) diff --git a/project.godot b/project.godot index adc20c0..524b24e 100644 --- a/project.godot +++ b/project.godot @@ -21,6 +21,10 @@ Constants="*res://scripts/constants.gd" Yau07="*res://scripts/yau07.gd" Network="*res://scripts/network.gd" +[debug] + +gdscript/warnings/unused_signal=0 + [display] window/size/viewport_width=1900 diff --git a/scripts/PRD.gd b/scripts/PRD.gd index 09db01f..f49bc7d 100644 --- a/scripts/PRD.gd +++ b/scripts/PRD.gd @@ -86,7 +86,7 @@ func _on_read_isa(unit_isa_ports): break if not found: Constants.EMS_G_PORT_DATA_HOLDER.append([tmp, isa_data]) - #$ISA.text = 'ISA: ' + str(isa) + $ISA.text = 'ISA: ' + str(len(Constants.EMS_G_PORT_DATA_HOLDER)) ## Рисует таблицу diff --git a/scripts/network.gd b/scripts/network.gd index 615af0e..ea869ff 100644 --- a/scripts/network.gd +++ b/scripts/network.gd @@ -55,8 +55,7 @@ func _ready() -> void: unit.connect('line_changed', Callable(self, 'on_line_changed')) unit.connect('command_fail', Callable(self, 'on_command_fail')) - unit.connect('command_done', Callable(self, 'on_command_done')) - + func _process(delta: float) -> void: last_update_time += delta @@ -74,7 +73,7 @@ func state_machine(): if send_array.size(): state = Constants.STATE.READ_ISA if send_array[0][0] == 'rd' else Constants.STATE.WRITE_ISA - + ## Режим чтения из ИСА elif state == Constants.STATE.READ_ISA and fl_done: var ports_read = send_array.pop_front() @@ -98,8 +97,3 @@ func on_line_changed(_unit) -> void: ## Ессли отсутствует подключение к ячейке ЯУ-07 func on_command_fail(_unit) -> void: print_debug('Command send fail') - - -## Индикация чтения портов -func on_command_done(_unit) -> void: - pass diff --git a/scripts/switch.gd b/scripts/switch.gd index 0255434..47eeb11 100644 --- a/scripts/switch.gd +++ b/scripts/switch.gd @@ -7,5 +7,5 @@ func _ready() -> void: set('theme_override_styles/panel', style) -func _process(delta: float) -> void: +func _process(_delta: float) -> void: pass