From b501a60e5b86e80ad1e0151feabac63950f026d7 Mon Sep 17 00:00:00 2001 From: Maxim Date: Wed, 9 Oct 2024 11:36:17 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D1=81=D0=BE=D1=81=D1=82=D0=BE=D1=8F=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B8=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B8=20=D0=B2=20=D0=98=D0=A1?= =?UTF-8?q?=D0=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Main.gd | 28 ++++++++++++++++++++++------ Plata-check.tscn | 26 ++++++++++++++++++++++---- constants.gd | 8 +++++--- project.godot | 4 ++++ 4 files changed, 53 insertions(+), 13 deletions(-) diff --git a/Main.gd b/Main.gd index 07193ae..8cdf4e0 100644 --- a/Main.gd +++ b/Main.gd @@ -16,7 +16,7 @@ var flag_online: bool = false # Флаг для подключения var flag_interval: bool = false # Флаг для включения непрерывной передачи с интервалом var flag_wr_on_timer = false # Флаг для записи непрерывной var flag_continuous = true # Флаг для режима ожидания машины состояния -var ports_wr: Dictionary # Словарь с портами для записи +var ports_wr: Dictionary # Словарь с портами для записи var port_select: int = Constants.BASE_ADDR # Выбранный порд для чтения/записи var port: int var address: String @@ -51,10 +51,9 @@ func _ready(): edit_node.editable = true edit_node.placeholder_text = 'Ввод значения' edit_node.connect('text_submitted', Callable(self, '_on_written_text_submitted')) - - # Кнопка для включения - #$Turn_on.connect('toggled', Callable(self, '_on_button_pressed')) + $read_ISA.disabled = true + $write_ISA.disabled = true # Поле для ввода (базовый порт) var edit_addr = node_select.get_node2(0, 2) @@ -79,7 +78,6 @@ func _ready(): if rc != OK: print('Ошибка: неудачная привязка адреса: ', address) - #ports_wr[port_select] = unit.isa_ports[0] 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')) @@ -96,6 +94,7 @@ func poll_receive(sock: Socket) -> bool: ## Приёмник var rx_data = sock.get_packet() var addr_receive = sock.get_packet_ip() var port_receive = sock.get_packet_port() + $BROADCAST.text = 'BROADCAST: ' + str(rx_data) if (address == addr_receive) and (port == port_receive): unit.parse(rx_data) return false @@ -168,6 +167,7 @@ func state_machine() -> void: var nubre_from_port = '%x' % unit.isa_ports[port_select] if unit.isa_ports.has(port_select) else 'ffff' node_select.set_node_text(4, 1, nubre_from_port) $read_ISA.disabled = false + $write_ISA.disabled = false state = Constants.STATE.WRITE if flag_continuous else Constants.STATE.WAIT elif state == Constants.STATE.READ and fl_done: ## Чтение из ИСА unit.send_isa(unit.CmdCode.READ_ISA, [port_select]) @@ -213,11 +213,27 @@ func _on_button_pressed(turn_on) -> void: port = int(node_select.get_node2(4,0).text) flag_continuous = false # Чтение flag_online = true + save_settings() else: flag_online = false flag_interval = false func _on_button_read() -> void: + port_select = node_select.get_node2(0, 2).text.hex_to_int() state = Constants.STATE.READ - + + +func _on_button_write() -> void: + port_select = node_select.get_node2(0, 2).text.hex_to_int() + _on_written_text_submitted(node_select.get_node2(2, 1).text) + state = Constants.STATE.WRITE + + +func save_settings(): + var file = FileAccess.open("user://constants.txt", FileAccess.WRITE) + if file: + file.store_line(address) # Сохранить IP-адрес + file.store_line(str(port)) # Сохранить порт + file.store_line(str(port_select)) # Сохранить базовый адрес + file.close() diff --git a/Plata-check.tscn b/Plata-check.tscn index 7e77ad3..78a1cda 100644 --- a/Plata-check.tscn +++ b/Plata-check.tscn @@ -13,8 +13,8 @@ bg_color = Color(0.0901961, 0.52549, 0.0588235, 1) script = ExtResource("1_8v2wa") [node name="Background" type="ColorRect" parent="."] -offset_right = 1158.0 -offset_bottom = 655.0 +offset_right = 2916.0 +offset_bottom = 1542.0 color = Color(0.313726, 0.227451, 0.290196, 1) metadata/_edit_lock_ = true @@ -52,12 +52,30 @@ theme_override_styles/pressed = SubResource("StyleBoxFlat_jbuuq") text = "ПРОЧИТАТЬ" metadata/_edit_lock_ = true +[node name="write_ISA" type="Button" parent="."] +offset_left = 963.0 +offset_top = 129.0 +offset_right = 1098.0 +offset_bottom = 153.0 +theme_override_styles/normal = SubResource("StyleBoxFlat_so1no") +theme_override_styles/pressed = SubResource("StyleBoxFlat_jbuuq") +text = "ЗАПИСАТЬ" +metadata/_edit_lock_ = true + +[node name="BROADCAST" type="Label" parent="."] +offset_left = 43.0 +offset_top = 178.0 +offset_right = 996.0 +offset_bottom = 201.0 +metadata/_edit_lock_ = true + [node name="ISA" type="Label" parent="."] offset_left = 46.0 -offset_top = 179.0 +offset_top = 211.0 offset_right = 999.0 -offset_bottom = 202.0 +offset_bottom = 234.0 metadata/_edit_lock_ = true [connection signal="toggled" from="Turn_on" to="." method="_on_button_pressed"] [connection signal="pressed" from="read_ISA" to="." method="_on_button_read"] +[connection signal="pressed" from="write_ISA" to="." method="_on_button_write"] diff --git a/constants.gd b/constants.gd index 86020e4..478ac7d 100644 --- a/constants.gd +++ b/constants.gd @@ -1,11 +1,12 @@ extends Node const TableNode = preload("res://table/node.tscn") +var file = FileAccess.open("user://constants.txt", FileAccess.READ) const UNICAST_PORT: int = 50003 const UNICAST_ADDRESS: String = '10.1.1.3' const BROADCAST_PORT: int = 50000 -const DEFAULT_ADDRESS: String = '10.1.1.52' -const DEFAULT_PORT: String = '50052' -const BASE_ADDR: int = 0x100 +var DEFAULT_ADDRESS: String = file.get_line() +var DEFAULT_PORT: String = file.get_line() +var BASE_ADDR: int = int(file.get_line()) const ROWS_REGS_DATA: Array = [ [TableNode, TableNode, TableNode, TableNode, TableNode], [TableNode, TableNode, TableNode, TableNode, TableNode], @@ -15,3 +16,4 @@ enum STATE { READ, # Чтение из ИСА WRITE, # ЗАпись в ИСА } + diff --git a/project.godot b/project.godot index 796a9f8..8a09ea5 100644 --- a/project.godot +++ b/project.godot @@ -20,6 +20,10 @@ config/icon="res://icon.svg" yau07="*res://yau07.gd" Constants="*res://constants.gd" +[display] + +window/size/viewport_height=448 + [rendering] renderer/rendering_method="gl_compatibility"