Доработка. Результирующее состояние исправности СПТ-25
This commit is contained in:
@@ -41,21 +41,34 @@ func _exit_tree() -> void:
|
||||
|
||||
|
||||
func on_data_received(data):
|
||||
# Сеть 1. Вход
|
||||
$block_input1.state0 = STATE_VAL.GOOD if ((data[4] & (1 << 1)) == 0) and ((data[4] & (1 << 3)) == 0) else STATE_VAL.ERROR
|
||||
# Неисправность блока инвертора 1 канала
|
||||
$block_input1.state1 = STATE_VAL.GOOD if (data[6] & (1 << 2)) == 0 else STATE_VAL.ERROR
|
||||
# Перегрев 1 канала
|
||||
$block_input1.state2 = STATE_VAL.GOOD if (data[5] & (1 << 3)) == 0 else STATE_VAL.ERROR
|
||||
|
||||
# Сеть 2. Вход
|
||||
$block_input2.state0 = STATE_VAL.GOOD if ((data[4] & (1 << 2)) == 0) and ((data[4] & (1 << 4)) == 0) else STATE_VAL.ERROR
|
||||
# Неисправность блока инвертора 2 канала
|
||||
$block_input2.state1 = STATE_VAL.GOOD if (data[6] & (1 << 3)) == 0 else STATE_VAL.ERROR
|
||||
# Перегрев 2 канала
|
||||
$block_input2.state2 = STATE_VAL.GOOD if (data[5] & (1 << 4)) == 0 else STATE_VAL.ERROR
|
||||
|
||||
# Неисправность, напряжение меньше номинального, напряжение выше номинального
|
||||
$block_output.state0 = STATE_VAL.GOOD if ((data[4] & (1 << 0)) == 0) and ((data[4] & (1 << 7)) == 0) and ((data[5] & (1 << 2)) == 0) else STATE_VAL.ERROR
|
||||
# Перегрузка и короткое замыкание по выходу
|
||||
$block_output.state1 = STATE_VAL.GOOD if ((data[5] & (1 << 0)) == 0) and ((data[5] & (1 << 1)) == 0) else STATE_VAL.ERROR
|
||||
# Критическая температура
|
||||
$block_output.state2 = STATE_VAL.GOOD if ((data[5] & (1 << 5)) == 0) else STATE_VAL.ERROR
|
||||
# Сеть 1. Вход
|
||||
$block_input1.state0 = STATE_VAL.GOOD if ((data[4] & (1 << 1)) == 0) and ((data[4] & (1 << 3)) == 0) else STATE_VAL.ERROR
|
||||
# Сеть 2. Вход
|
||||
$block_input2.state0 = STATE_VAL.GOOD if ((data[4] & (1 << 2)) == 0) and ((data[4] & (1 << 4)) == 0) else STATE_VAL.ERROR
|
||||
# Неисправность блока инвертора 1 канала
|
||||
$block_input1.state1 = STATE_VAL.GOOD if (data[6] & (1 << 2)) == 0 else STATE_VAL.ERROR
|
||||
# Неисправность блока инвертора 2 канала
|
||||
$block_input2.state1 = STATE_VAL.GOOD if (data[6] & (1 << 3)) == 0 else STATE_VAL.ERROR
|
||||
# Перегрев 1 канала
|
||||
$block_input1.state2 = STATE_VAL.GOOD if (data[5] & (1 << 3)) == 0 else STATE_VAL.ERROR
|
||||
# Перегрев 2 канала
|
||||
$block_input2.state2 = STATE_VAL.GOOD if (data[5] & (1 << 4)) == 0 else STATE_VAL.ERROR
|
||||
|
||||
state = STATE_VAL.GOOD \
|
||||
if $block_input1.state1 == STATE_VAL.GOOD \
|
||||
and $block_input1.state2 == STATE_VAL.GOOD \
|
||||
and $block_input2.state0 == STATE_VAL.GOOD \
|
||||
and $block_input2.state1 == STATE_VAL.GOOD \
|
||||
and $block_input2.state2 == STATE_VAL.GOOD \
|
||||
and $block_output.state0 == STATE_VAL.GOOD \
|
||||
and $block_output.state1 == STATE_VAL.GOOD \
|
||||
and $block_output.state2 == STATE_VAL.GOOD \
|
||||
else STATE_VAL.ERROR
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
extends Control
|
||||
|
||||
@export var textures: Array
|
||||
|
||||
|
||||
signal pressed(control: PanelContainer)
|
||||
|
||||
|
||||
@@ -9,6 +12,12 @@ func _on_button_pressed():
|
||||
emit_signal('pressed', self)
|
||||
|
||||
|
||||
@export var state: int:
|
||||
set(v):
|
||||
state = tools.clip_value(v, 0, textures.size() - 1)
|
||||
$margin/vbox/grid/state.texture = textures[v]
|
||||
|
||||
|
||||
@export var fname: String:
|
||||
set(v):
|
||||
fname = v
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
[gd_scene load_steps=9 format=3 uid="uid://btpc78gucr57f"]
|
||||
[gd_scene load_steps=12 format=3 uid="uid://btpc78gucr57f"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/контроль/элемент-я.gd" id="1_fwxi0"]
|
||||
[ext_resource type="Texture2D" uid="uid://c6nve6f8sfyj2" path="res://data/состояние-исправности-0.png" id="3_dktys"]
|
||||
[ext_resource type="Texture2D" uid="uid://dnreyfh3cd1k2" path="res://data/состояние-исправности-1.png" id="3_t4y6r"]
|
||||
[ext_resource type="Texture2D" uid="uid://c6booa8753u5t" path="res://data/состояние-исправности-2.png" id="4_bdhnj"]
|
||||
[ext_resource type="Texture2D" uid="uid://c4mdrmk7h638f" path="res://data/nine-patch-round.png" id="4_or1kj"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_45hqb"]
|
||||
@@ -48,6 +51,7 @@ anchors_preset = 0
|
||||
offset_right = 180.0
|
||||
offset_bottom = 155.0
|
||||
script = ExtResource("1_fwxi0")
|
||||
textures = [ExtResource("3_dktys"), ExtResource("3_t4y6r"), ExtResource("4_bdhnj")]
|
||||
|
||||
[node name="rect" type="NinePatchRect" parent="."]
|
||||
layout_mode = 2
|
||||
@@ -79,7 +83,13 @@ layout_mode = 2
|
||||
|
||||
[node name="grid" type="GridContainer" parent="margin/vbox"]
|
||||
layout_mode = 2
|
||||
columns = 2
|
||||
columns = 3
|
||||
|
||||
[node name="state" type="TextureRect" parent="margin/vbox/grid"]
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("3_dktys")
|
||||
expand_mode = 1
|
||||
|
||||
[node name="fname" type="Label" parent="margin/vbox/grid"]
|
||||
self_modulate = Color(1, 1, 1, 0.627451)
|
||||
@@ -92,7 +102,7 @@ vertical_alignment = 1
|
||||
|
||||
[node name="rname" type="Label" parent="margin/vbox/grid"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_horizontal = 10
|
||||
size_flags_vertical = 6
|
||||
theme_override_font_sizes/font_size = 22
|
||||
horizontal_alignment = 2
|
||||
|
||||
Reference in New Issue
Block a user