Доработка. Индикация "на связи"
This commit is contained in:
@@ -70,7 +70,6 @@ func _on_request_completed(result, _response_code, headers, body: PackedByteArra
|
||||
return
|
||||
|
||||
unit_instance.rx_tick = Time.get_ticks_msec()
|
||||
|
||||
if not unit_instance.online:
|
||||
unit_instance.online = true
|
||||
unit_instance.emit_signal('line_changed', unit_instance)
|
||||
|
||||
@@ -1,20 +1,44 @@
|
||||
@tool
|
||||
class_name pribor_rtr extends 'res://scenes/контроль/прибор.gd'
|
||||
|
||||
@export var prefix_path: String = 'DeviceDescription[DeviceName]'
|
||||
@export var prefix_path: String = '' ## Должно быть в JSON
|
||||
@export var this_bpo1_name: String = '' ## Должно быть в JSON
|
||||
@export var this_bpo2_name: String = '' ## Должно быть в JSON
|
||||
@export var unit_name1: StringName= '' ## Должно быть в settings.gd
|
||||
@export var unit_name2: StringName= '' ## Должно быть в settings.gd
|
||||
@export var settings_path1_to_url: String = '' ## Должно быть в ProjectSettings
|
||||
@export var settings_path2_to_url: String = '' ## Должно быть в ProjectSettings
|
||||
@export var settings_path_to_wait_time: String = '' ## Должно быть в ProjectSettings
|
||||
|
||||
|
||||
static var json_conv: JSON = JSON.new()
|
||||
static var node_maper = load('res://scenes/контроль/node-maper.gd')
|
||||
|
||||
|
||||
const bort_to_node_name = {
|
||||
'Устройство БПО левого борта': 'grid_bpo_a1',
|
||||
'Устройство БПО правого борта': 'grid_bpo_a2'}
|
||||
var bort_to_node_name = {}
|
||||
var bort_to_unit_name = {}
|
||||
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
ProjectSettings.connect('settings_changed', on_settings_changed)
|
||||
on_settings_changed()
|
||||
|
||||
|
||||
func on_settings_changed():
|
||||
bort_to_node_name.merge({this_bpo1_name: 'grid_bpo_a1', this_bpo2_name: 'grid_bpo_a2'}, true)
|
||||
bort_to_unit_name.merge({this_bpo1_name: unit_name1, this_bpo2_name: unit_name2})
|
||||
$request1.request_url = ProjectSettings.get_setting('application/config/%s' % settings_path1_to_url)
|
||||
$request1/timer.wait_time = float(ProjectSettings.get_setting('application/config/%s' % settings_path_to_wait_time))
|
||||
$request2.request_url = ProjectSettings.get_setting('application/config/%s' % settings_path2_to_url)
|
||||
$request2/timer.wait_time = float(ProjectSettings.get_setting('application/config/%s' % settings_path_to_wait_time))
|
||||
assert($request1.request_url != null)
|
||||
assert($request2.request_url != null)
|
||||
|
||||
|
||||
func _on_request_completed(result, _response_code, headers, body: PackedByteArray):
|
||||
if result != 0:
|
||||
var rs = $request.get_result_string(result)
|
||||
var rs = $request1.get_result_string(result)
|
||||
push_error('\"%s\"' % rs)
|
||||
return
|
||||
|
||||
@@ -45,6 +69,13 @@ func _on_request_completed(result, _response_code, headers, body: PackedByteArra
|
||||
var node_name = bort_to_node_name[ret_val[0]]
|
||||
var bort_node = get_node(node_name)
|
||||
|
||||
var unit_name = bort_to_unit_name[ret_val[0]]
|
||||
var unit_instance = network.get_unit_instance(unit_name)
|
||||
unit_instance.rx_tick = Time.get_ticks_msec()
|
||||
if not unit_instance.online:
|
||||
unit_instance.online = true
|
||||
unit_instance.emit_signal('line_changed', unit_instance)
|
||||
|
||||
for item in bort_node.get_children():
|
||||
node_maper.map_value_to_item(json_conv.data, item, 'state')
|
||||
|
||||
|
||||
@@ -1,16 +1,10 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://5uv1idl3lqea"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://5uv1idl3lqea"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://d0jwv5opi3mrk" path="res://scenes/pribor-afsp/pribor-bpo.gd" id="1_bhc4e"]
|
||||
[ext_resource type="PackedScene" uid="uid://d3iqb5e4g81m5" path="res://scenes/контроль/элемент-г.tscn" id="2_jp6m0"]
|
||||
[ext_resource type="PackedScene" uid="uid://p2suppildvq0" path="res://scenes/контроль/элемент-в.tscn" id="3_jcpjs"]
|
||||
[ext_resource type="Script" uid="uid://bux47vkw71w1t" path="res://scenes/контроль/request.gd" id="4_crej3"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_bhc4e"]
|
||||
script/source = "extends Timer
|
||||
|
||||
func _ready(): wait_time = ProjectSettings.get_setting('application/config/unit_bpo_request_period')
|
||||
"
|
||||
|
||||
[node name="pribor_bpo" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
@@ -19,6 +13,14 @@ offset_top = 150.0
|
||||
offset_right = 115.0
|
||||
offset_bottom = 150.0
|
||||
script = ExtResource("1_bhc4e")
|
||||
prefix_path = "DeviceDescription[DeviceName]"
|
||||
this_bpo1_name = "Устройство БПО левого борта"
|
||||
this_bpo2_name = "Устройство БПО правого борта"
|
||||
unit_name1 = &"уарэп-бпо-1"
|
||||
unit_name2 = &"уарэп-бпо-2"
|
||||
settings_path1_to_url = "Адрес БПО левого борта"
|
||||
settings_path2_to_url = "Адрес БПО правого борта"
|
||||
settings_path_to_wait_time = "Период опроса состояния БПО, секунды"
|
||||
|
||||
[node name="mod_pit_g1" parent="." instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
@@ -197,14 +199,22 @@ show_rname = false
|
||||
self_size = Vector2i(50, 145)
|
||||
fname = "Яч. связи"
|
||||
|
||||
[node name="request" type="HTTPRequest" parent="."]
|
||||
[node name="request1" type="HTTPRequest" parent="."]
|
||||
use_threads = true
|
||||
script = ExtResource("4_crej3")
|
||||
request_url = null
|
||||
|
||||
[node name="timer" type="Timer" parent="request1"]
|
||||
autostart = true
|
||||
|
||||
[node name="request2" type="HTTPRequest" parent="."]
|
||||
use_threads = true
|
||||
script = ExtResource("4_crej3")
|
||||
|
||||
[node name="timer" type="Timer" parent="request"]
|
||||
wait_time = 30.0
|
||||
[node name="timer" type="Timer" parent="request2"]
|
||||
autostart = true
|
||||
script = SubResource("GDScript_bhc4e")
|
||||
|
||||
[connection signal="request_completed" from="request" to="." method="_on_request_completed"]
|
||||
[connection signal="timeout" from="request/timer" to="request" method="_on_request_timer"]
|
||||
[connection signal="request_completed" from="request1" to="." method="_on_request_completed"]
|
||||
[connection signal="timeout" from="request1/timer" to="request1" method="_on_request_timer"]
|
||||
[connection signal="request_completed" from="request2" to="." method="_on_request_completed"]
|
||||
[connection signal="timeout" from="request2/timer" to="request2" method="_on_request_timer"]
|
||||
|
||||
Reference in New Issue
Block a user