Доработка. Результирующее состояние исправности СПТ-25

This commit is contained in:
sasha80
2024-10-30 16:32:17 +03:00
parent 2026956795
commit 8403f307a2
3 changed files with 47 additions and 15 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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