Доработка выхода из контроля
This commit is contained in:
@@ -1,35 +1,39 @@
|
||||
@tool
|
||||
class_name pribor_uf extends 'res://scenes/контроль/прибор.gd'
|
||||
|
||||
signal control_is_over(device_name: String) # Когда контроль завершен
|
||||
enum STATE_VAL {NONE = 0, GOOD = 1, ERROR = 2}
|
||||
const DEV_LIST = ['00:1f.6', '07:00.0', '08:00.0', '0b:00.0']
|
||||
const USB_TRACKERBALL = '13ba:0018'
|
||||
const REVFF = '(rev ff)'
|
||||
const DEV_LIST: Array = ['00:1f.6', '07:00.0', '08:00.0', '0b:00.0']
|
||||
const USB_TRACKERBALL: String = '13ba:0018'
|
||||
const REVFF: String = '(rev ff)'
|
||||
var unit_uf: Object
|
||||
var ctrl_pos = 100
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
var unit_uf: = network.get_unit_instance('уарэп-эмс')
|
||||
if Engine.is_editor_hint(): return
|
||||
signaller.conn(signaller.start_contol_device, Callable(self, '_on_start_contol_device'))
|
||||
unit_uf = network.get_unit_instance('уарэп-эмс')
|
||||
unit_uf.connect('line_changed', on_line_changed)
|
||||
control_vk()
|
||||
on_line_changed(unit_uf)
|
||||
on_line_changed()
|
||||
#control_vk()
|
||||
control_ems(unit_uf.status)
|
||||
status_uf()
|
||||
find_labels(self)
|
||||
|
||||
|
||||
func on_timer(unit_name: StringName):
|
||||
var unit_uf = network.get_unit_instance(unit_name)
|
||||
if unit_uf.online: # проверка ЯУ, внутреннего коммутатора и ИП-5Б
|
||||
control_ems(unit_uf.status) # проверка ЭМС ячеек
|
||||
func _on_start_contol_device():
|
||||
on_line_changed()
|
||||
control_ems(unit_uf.status) # проверка ЭМС ячеек
|
||||
status_uf() # отслеживание состояния прибора
|
||||
|
||||
|
||||
func on_line_changed(unit_uf):
|
||||
func on_line_changed():
|
||||
if unit_uf.online: # проверка ЯУ, внутреннего коммутатора и ИП-5Б
|
||||
$ref_uf/ref_kassetav13/ref_A7_YAU07.state = STATE_VAL.GOOD
|
||||
$ref_uf/ref_kassetav13/ref_A3_IP5B.state = STATE_VAL.GOOD
|
||||
$ref_uf/ref_kassetav13/ref_A9_ESW.state = STATE_VAL.GOOD
|
||||
$ref_uf/ref_bu1/ref_A8_BU.state = STATE_VAL.GOOD ## заглушка для зеленения ВК-110
|
||||
else:
|
||||
$ref_uf/ref_kassetav13/ref_A7_YAU07.state = STATE_VAL.ERROR
|
||||
$ref_uf/ref_kassetav13/ref_A4_KEMS.state = STATE_VAL.NONE
|
||||
@@ -38,6 +42,7 @@ func on_line_changed(unit_uf):
|
||||
$ref_uf/ref_kassetav13/ref_A3_IP5B.state = STATE_VAL.NONE
|
||||
$ref_uf/ref_kassetav13/ref_A9_ESW.state = STATE_VAL.NONE
|
||||
$ref_uf/ref_kassetav13/ref_A12_IP27B.state = STATE_VAL.NONE
|
||||
$ref_uf/ref_bu1/ref_A8_BU.state = STATE_VAL.NONE
|
||||
|
||||
|
||||
func control_vk() -> void:
|
||||
@@ -76,14 +81,13 @@ func control_vk() -> void:
|
||||
else:
|
||||
$ref_uf/ref_bu1/ref_A8_BU.state = STATE_VAL.ERROR
|
||||
|
||||
$ref_uf/ref_bu1/ref_A8_BU.state = STATE_VAL.GOOD ## заглушка для зеленения ВК-110
|
||||
|
||||
|
||||
func control_ems(status: Array) -> void:
|
||||
$ref_uf/ref_kassetav13/ref_A4_KEMS.state = STATE_VAL.GOOD if ((status[0] >> 0) & 1) and ((status[0] >> 3) & 1) else STATE_VAL.ERROR
|
||||
$ref_uf/ref_kassetav13/ref_A5_EMS.state = STATE_VAL.GOOD if ((status[0] >> 1) & 1) and ((status[0] >> 4) & 1) else STATE_VAL.ERROR
|
||||
$ref_uf/ref_kassetav13/ref_A6_EMS.state = STATE_VAL.GOOD if ((status[0] >> 2) & 1) and ((status[0] >> 5) & 1) else STATE_VAL.ERROR
|
||||
$ref_uf/ref_kassetav13/ref_A12_IP27B.state = STATE_VAL.GOOD if ((status[2] >> 6) & 1) else STATE_VAL.ERROR
|
||||
if status:
|
||||
$ref_uf/ref_kassetav13/ref_A4_KEMS.state = STATE_VAL.GOOD if ((status[0] >> 0) & 1) and ((status[0] >> 3) & 1) else STATE_VAL.ERROR
|
||||
$ref_uf/ref_kassetav13/ref_A5_EMS.state = STATE_VAL.GOOD if ((status[0] >> 1) & 1) and ((status[0] >> 4) & 1) else STATE_VAL.ERROR
|
||||
$ref_uf/ref_kassetav13/ref_A6_EMS.state = STATE_VAL.GOOD if ((status[0] >> 2) & 1) and ((status[0] >> 5) & 1) else STATE_VAL.ERROR
|
||||
$ref_uf/ref_kassetav13/ref_A12_IP27B.state = STATE_VAL.GOOD if ((status[2] >> 6) & 1) else STATE_VAL.ERROR
|
||||
|
||||
|
||||
func status_uf() -> void:
|
||||
@@ -103,6 +107,7 @@ func status_uf() -> void:
|
||||
$lbl_header2.text = 'Прибор неисправен'
|
||||
$lbl_header2.modulate = Color.RED
|
||||
$lbl_header2.visible = true
|
||||
emit_signal('control_is_over', unit_uf.name)
|
||||
|
||||
|
||||
func find_labels(node1: Node):
|
||||
|
||||
@@ -150,13 +150,10 @@ offset_top = 1009.0
|
||||
offset_right = 757.0
|
||||
offset_bottom = 1064.0
|
||||
theme_override_font_sizes/font_size = 22
|
||||
text = "Состояние неизвестно..."
|
||||
text = "Ожидание запуска контроля"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="timer" type="Timer" parent="."]
|
||||
autostart = true
|
||||
|
||||
[node name="line" type="Line2D" parent="."]
|
||||
position = Vector2(195, 950)
|
||||
scale = Vector2(1.03548, 1)
|
||||
@@ -164,5 +161,3 @@ points = PackedVector2Array(-8, 0, 61.8069, 0, 608, 0)
|
||||
width = 2.0
|
||||
default_color = Color(1, 1, 1, 0.352941)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[connection signal="timeout" from="timer" to="." method="on_timer" binds= [&"уарэп-эмс"]]
|
||||
|
||||
@@ -4,6 +4,7 @@ var base_style: StyleBoxFlat
|
||||
var tween
|
||||
var pulsing: bool = false
|
||||
var original_text: String
|
||||
var flag_control_is_over: bool = false
|
||||
|
||||
|
||||
func _ready():
|
||||
@@ -41,6 +42,7 @@ func _setup_signals() -> void:
|
||||
func _on_pressed():
|
||||
disabled = true
|
||||
text = "Идет выполнение контроля"
|
||||
flag_control_is_over = false
|
||||
_start_pulse()
|
||||
|
||||
|
||||
@@ -72,7 +74,20 @@ func _stop_pulse():
|
||||
|
||||
|
||||
func _on_status_change():
|
||||
_stop_pulse()
|
||||
if not flag_control_is_over:
|
||||
_stop_pulse()
|
||||
|
||||
|
||||
func _on_stop_control():
|
||||
var time_dict = Time.get_datetime_dict_from_system()
|
||||
text = 'Контроль выполнен %02d:%02d/%02d.%02d' % [
|
||||
time_dict.hour,
|
||||
time_dict.minute,
|
||||
time_dict.day,
|
||||
time_dict.month]
|
||||
disabled = false
|
||||
tooltip_text = 'Нажать для повторного контроля '
|
||||
flag_control_is_over = true
|
||||
|
||||
|
||||
func _exit_tree() -> void:
|
||||
|
||||
@@ -57,7 +57,7 @@ const PRIBORS_RES = \\
|
||||
var ctl_btn_state := false
|
||||
var cur_pribor_node = null
|
||||
var check_ready_control: Dictionary = {}
|
||||
var device_wait_control_result:Array = ['1н', '2н', '3н', '4н', '1в', '2в', '3в', '4в', '1к', '2к', '3к', '4к',]
|
||||
var device_wait_control_result:Array = ['1н', '2н', '3н', '4н', '1в', '2в', '3в', '4в', '1к', '2к', '3к', '4к']
|
||||
|
||||
|
||||
func on_line_changed(u, conn_node, _pribor_meta): conn_node.set_val(u.online)
|
||||
@@ -107,6 +107,7 @@ func _ready():
|
||||
prd_module.unit_control.connect('control_is_over', Callable(self, 'on_control_is_over'))
|
||||
if item == 'уарэп-эмс':
|
||||
signaller.connect('update_uf_serviceability', Callable(self, 'on_update_uf_serviceability').bind(pribor_node))
|
||||
|
||||
# Пиктограммы приборов, которые отображают состояние подключения только
|
||||
for pribor_node in get_tree().get_nodes_in_group('pribor_pics'):
|
||||
var unit_name = pribor_node.get_meta('unit_name')
|
||||
@@ -198,14 +199,7 @@ func on_control_is_over(pribor_name: String) -> void:
|
||||
check_ready_control[pribor_name] = true
|
||||
if not _is_all_control_complete(): return
|
||||
# После завершения контроля всех приборов
|
||||
var time_dict = Time.get_datetime_dict_from_system()
|
||||
$control_prd_button.text = 'Контроль выполнен %02d:%02d/%02d.%02d' % [
|
||||
time_dict.hour,
|
||||
time_dict.minute,
|
||||
time_dict.day,
|
||||
time_dict.month]
|
||||
$control_prd_button.disabled = false
|
||||
$control_prd_button.tooltip_text = 'Нажать для повторного контроля '
|
||||
$control_prd_button._on_stop_control()
|
||||
|
||||
|
||||
func _is_all_control_complete() -> bool:
|
||||
@@ -549,12 +543,10 @@ texture_normal = ExtResource("2_0nvm1")
|
||||
stretch_mode = 0
|
||||
script = ExtResource("3_4pt7j")
|
||||
state_colors = [Color(1, 1, 1, 1), Color(0, 1, 0, 1), Color(1, 0, 0, 1)]
|
||||
state = 1
|
||||
metadata/unit_name = ["уарэп-эмс"]
|
||||
metadata/online_proc = "on_line_changed"
|
||||
|
||||
[node name="label" type="Label" parent="pribor_uf"]
|
||||
self_modulate = Color(0, 1, 0, 1)
|
||||
layout_mode = 0
|
||||
offset_left = 15.0
|
||||
offset_top = -44.0
|
||||
|
||||
@@ -867,15 +867,16 @@ func on_mode_changed(in_tree: bool) -> void:
|
||||
constants.ADDR_UG_LITERA_1, DATA_EXIT_CONTOL_ISA,
|
||||
constants.ADDR_UG_LITERA_2, DATA_EXIT_CONTOL_ISA,
|
||||
constants.ADDR_UG_LITERA_3, DATA_EXIT_CONTOL_ISA]])
|
||||
flags.control_is_over = false
|
||||
flags.no_trust_yau07 = false
|
||||
flags.only_fs = false
|
||||
flags.ecm_is_comming = false
|
||||
flags.in_control = false
|
||||
progress_value = 0
|
||||
machine_timer.stop()
|
||||
_handle_fs_turn_off_state()
|
||||
restore_default_states()
|
||||
if not machine_timer.is_stopped():
|
||||
flags.control_is_over = false
|
||||
restore_default_states()
|
||||
machine_timer.stop()
|
||||
else: ## При нажатии на режим контроль
|
||||
_set_status('Ожидание запуска контроля')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user