СКВ
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,2 +1,5 @@
|
||||
# Godot 4+ specific ignores
|
||||
.godot/
|
||||
/bin/
|
||||
/*.cfg
|
||||
/*.uid
|
||||
|
||||
1
Main.gd
1
Main.gd
@@ -211,6 +211,7 @@ func on_command_fail(_unit) -> void:
|
||||
|
||||
## Индикация чтения портов
|
||||
func on_command_done(_unit) -> void:
|
||||
if not unit.isa_ports.has(port_select): return
|
||||
var isa: Array = []
|
||||
ports_wr[port_select] = unit.isa_ports[port_select]
|
||||
if (unit.isa_ports[port_select] == ports_wr[port_select]) and flag_online:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://ccp4ypftnrbwq"]
|
||||
|
||||
[ext_resource type="Script" path="res://Main.gd" id="1_8v2wa"]
|
||||
[ext_resource type="Script" path="res://table/table.gd" id="2_ri1qb"]
|
||||
[ext_resource type="Script" uid="uid://cf85o5e0hhlej" path="res://Main.gd" id="1_8v2wa"]
|
||||
[ext_resource type="Script" uid="uid://brfcvsto5bx3" path="res://table/table.gd" id="2_ri1qb"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jbuuq"]
|
||||
bg_color = Color(0.0901961, 0.52549, 0.0588235, 1)
|
||||
|
||||
@@ -12,7 +12,7 @@ config_version=5
|
||||
|
||||
config/name="Plata-check.exe"
|
||||
run/main_scene="res://Plata-check.tscn"
|
||||
config/features=PackedStringArray("4.3", "GL Compatibility")
|
||||
config/features=PackedStringArray("4.4", "GL Compatibility")
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
[autoload]
|
||||
|
||||
1
table/table.gd.uid
Normal file
1
table/table.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://brfcvsto5bx3
|
||||
30
unit.gd
Normal file
30
unit.gd
Normal file
@@ -0,0 +1,30 @@
|
||||
class_name base_unit extends Node
|
||||
|
||||
## Базовый класс для управления подключаемыми устройствами
|
||||
class Unit extends Object:
|
||||
|
||||
## Состояние автомата выполнения команды.
|
||||
enum CmdState {
|
||||
UNCK, ## Номер команды не ининциирован.
|
||||
SEND, ## Буфер готов для отправки.
|
||||
WAIT, ## Ожидание выполнения.
|
||||
DONE, ## Команда выполнена.
|
||||
FAIL, ## Команда не выполнена.
|
||||
}
|
||||
|
||||
signal line_changed(unit) ## Вызывается при изменении состояния связи
|
||||
signal command_done(unit) ## Вызывается после успешного выполнения команды.
|
||||
signal command_fail(unit) ## Вызывается если возникла ошибка при выполнении команды и команда не выполнена.
|
||||
signal parse_failed(unit) ## Вызывается при обнаружении ошибки во входных данных
|
||||
signal data_received(data) ## Вызывается по приёму данных
|
||||
|
||||
var cmd_state = CmdState.UNCK ## Состояние выполнения команды
|
||||
var tx_data: = PackedByteArray() ## Буфер для отправки.
|
||||
var tx_len: int = 0 ## Длина последнего отправленного пакета.
|
||||
var tx_tick: int = 0 ## Тик-время отправки буфера
|
||||
var rx_tick: int = 0 ## Тик-время последнего приёма данных
|
||||
var online: bool = false ## Состояние подключения устройства
|
||||
var name: StringName = '<без имени>' ## Уникальное имя устройства
|
||||
func _init(nm) -> void: self.name = nm
|
||||
func _to_string() -> String:
|
||||
return String('Unit(\"%s\", %s)' % [self.name, 'на связи' if online else 'отключен'])
|
||||
Reference in New Issue
Block a user