Доработка. Контроль БПО
This commit is contained in:
@@ -29,6 +29,7 @@ projsettings_path_left = "application/config/Адрес АФСП левого б
|
||||
projsettings_path_right = "application/config/Адрес АФСП правого борта"
|
||||
|
||||
[node name="timer" type="Timer" parent="request"]
|
||||
wait_time = 20.0
|
||||
autostart = true
|
||||
script = SubResource("GDScript_yhnwg")
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@tool
|
||||
class_name pribor_afsp extends 'res://scenes/контроль/прибор.gd'
|
||||
|
||||
@export var prefix_path: String = 'DeviceDescripton[DeviceName]'
|
||||
@export var prefix_path: String = 'DeviceDescription[DeviceName]'
|
||||
@export var unit_name: StringName= ''
|
||||
|
||||
static var json_conv: JSON = JSON.new()
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
@tool
|
||||
class_name pribor_rtr extends 'res://scenes/контроль/прибор.gd'
|
||||
|
||||
@export var prefix_path: String = 'DeviceDescripton[DeviceName]'
|
||||
@export var prefix_path: String = 'DeviceDescription[DeviceName]'
|
||||
|
||||
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'}
|
||||
'Устройство БПО левого борта': 'grid_bpo_a1',
|
||||
'Устройство БПО правого борта': 'grid_bpo_a2'}
|
||||
|
||||
|
||||
func _on_request_completed(result, _response_code, headers, body: PackedByteArray):
|
||||
if result != 0:
|
||||
var rs = $request.get_result_string(result)
|
||||
log.error('\"%s\"' % rs)
|
||||
push_error('\"%s\"' % rs)
|
||||
return
|
||||
|
||||
var json_str: = body.get_string_from_utf8()
|
||||
@@ -39,6 +39,7 @@ func _on_request_completed(result, _response_code, headers, body: PackedByteArra
|
||||
return
|
||||
|
||||
if not bort_to_node_name.has(ret_val[0]):
|
||||
push_error('не известное устройство: \"%s\"' % ret_val[0])
|
||||
return
|
||||
|
||||
var node_name = bort_to_node_name[ret_val[0]]
|
||||
@@ -46,3 +47,19 @@ func _on_request_completed(result, _response_code, headers, body: PackedByteArra
|
||||
|
||||
for item in bort_node.get_children():
|
||||
node_maper.map_value_to_item(json_conv.data, item, 'state')
|
||||
|
||||
var items = get_tree().get_nodes_in_group('управляется-по-шине-1')
|
||||
for node in items:
|
||||
if node.state == 1:
|
||||
$yas_bpo_a1.state = 1
|
||||
break
|
||||
items = get_tree().get_nodes_in_group('управляется-по-шине-2')
|
||||
for node in items:
|
||||
if node.state == 1:
|
||||
$yas_bpo_a2.state = 1
|
||||
break
|
||||
items = get_tree().get_nodes_in_group('потребитель-питания')
|
||||
for node in items:
|
||||
if node.state == 1:
|
||||
$mod_pit_g1.state = 1
|
||||
break
|
||||
|
||||
@@ -1,10 +1,16 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://5uv1idl3lqea"]
|
||||
[gd_scene load_steps=6 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
|
||||
@@ -43,63 +49,63 @@ offset_right = 498.0
|
||||
offset_bottom = 320.0
|
||||
columns = 4
|
||||
|
||||
[node name="kanal1" parent="grid_bpo_a1" instance=ExtResource("2_jp6m0")]
|
||||
[node name="kanal1" parent="grid_bpo_a1" groups=["потребитель-питания"] instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 1"
|
||||
metadata/state = "SelfTest[0].SystemList[0].DevList[0]['TestPassed']"
|
||||
|
||||
[node name="kanal2" parent="grid_bpo_a1" instance=ExtResource("2_jp6m0")]
|
||||
[node name="kanal2" parent="grid_bpo_a1" groups=["потребитель-питания", "управляется-по-шине-1"] instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 2"
|
||||
metadata/state = "SelfTest[0].SystemList[0].DevList[1]['TestPassed']"
|
||||
|
||||
[node name="kanal3" parent="grid_bpo_a1" instance=ExtResource("2_jp6m0")]
|
||||
[node name="kanal3" parent="grid_bpo_a1" groups=["потребитель-питания", "управляется-по-шине-1"] instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 3"
|
||||
metadata/state = "SelfTest[0].SystemList[0].DevList[2]['TestPassed']"
|
||||
|
||||
[node name="kanal4" parent="grid_bpo_a1" instance=ExtResource("2_jp6m0")]
|
||||
[node name="kanal4" parent="grid_bpo_a1" groups=["потребитель-питания", "управляется-по-шине-1"] instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 4"
|
||||
metadata/state = "SelfTest[0].SystemList[0].DevList[3]['TestPassed']"
|
||||
|
||||
[node name="kanal5" parent="grid_bpo_a1" instance=ExtResource("2_jp6m0")]
|
||||
[node name="kanal5" parent="grid_bpo_a1" groups=["потребитель-питания", "управляется-по-шине-1"] instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 5"
|
||||
metadata/state = "SelfTest[0].SystemList[0].DevList[4]['TestPassed']"
|
||||
|
||||
[node name="kanal6" parent="grid_bpo_a1" instance=ExtResource("2_jp6m0")]
|
||||
[node name="kanal6" parent="grid_bpo_a1" groups=["потребитель-питания", "управляется-по-шине-1"] instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 6"
|
||||
metadata/state = "SelfTest[0].SystemList[0].DevList[5]['TestPassed']"
|
||||
|
||||
[node name="kanal7" parent="grid_bpo_a1" instance=ExtResource("2_jp6m0")]
|
||||
[node name="kanal7" parent="grid_bpo_a1" groups=["потребитель-питания", "управляется-по-шине-1"] instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 7"
|
||||
metadata/state = "SelfTest[0].SystemList[0].DevList[6]['TestPassed']"
|
||||
|
||||
[node name="kanal8" parent="grid_bpo_a1" instance=ExtResource("2_jp6m0")]
|
||||
[node name="kanal8" parent="grid_bpo_a1" groups=["потребитель-питания", "управляется-по-шине-1"] instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 8"
|
||||
metadata/state = "SelfTest[0].SystemList[0].DevList[7]['TestPassed']"
|
||||
|
||||
[node name="yas_bpo_a1" parent="." instance=ExtResource("3_jcpjs")]
|
||||
[node name="yas_bpo_a1" parent="." groups=["потребитель-питания"] instance=ExtResource("3_jcpjs")]
|
||||
offset_left = 500.0
|
||||
offset_top = 175.0
|
||||
offset_right = 550.0
|
||||
@@ -126,63 +132,63 @@ offset_right = 498.0
|
||||
offset_bottom = 520.0
|
||||
columns = 4
|
||||
|
||||
[node name="kanal1" parent="grid_bpo_a2" instance=ExtResource("2_jp6m0")]
|
||||
[node name="kanal1" parent="grid_bpo_a2" groups=["потребитель-питания", "управляется-по-шине-2"] instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 1"
|
||||
metadata/state = "SelfTest[0].SystemList[0].DevList[0]['TestPassed']"
|
||||
|
||||
[node name="kanal2" parent="grid_bpo_a2" instance=ExtResource("2_jp6m0")]
|
||||
[node name="kanal2" parent="grid_bpo_a2" groups=["потребитель-питания", "управляется-по-шине-2"] instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 2"
|
||||
metadata/state = "SelfTest[0].SystemList[0].DevList[1]['TestPassed']"
|
||||
|
||||
[node name="kanal3" parent="grid_bpo_a2" instance=ExtResource("2_jp6m0")]
|
||||
[node name="kanal3" parent="grid_bpo_a2" groups=["потребитель-питания", "управляется-по-шине-2"] instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 3"
|
||||
metadata/state = "SelfTest[0].SystemList[0].DevList[2]['TestPassed']"
|
||||
|
||||
[node name="kanal4" parent="grid_bpo_a2" instance=ExtResource("2_jp6m0")]
|
||||
[node name="kanal4" parent="grid_bpo_a2" groups=["потребитель-питания", "управляется-по-шине-2"] instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 4"
|
||||
metadata/state = "SelfTest[0].SystemList[0].DevList[3]['TestPassed']"
|
||||
|
||||
[node name="kanal5" parent="grid_bpo_a2" instance=ExtResource("2_jp6m0")]
|
||||
[node name="kanal5" parent="grid_bpo_a2" groups=["потребитель-питания", "управляется-по-шине-2"] instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 5"
|
||||
metadata/state = "SelfTest[0].SystemList[0].DevList[4]['TestPassed']"
|
||||
|
||||
[node name="kanal6" parent="grid_bpo_a2" instance=ExtResource("2_jp6m0")]
|
||||
[node name="kanal6" parent="grid_bpo_a2" groups=["потребитель-питания", "управляется-по-шине-2"] instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 6"
|
||||
metadata/state = "SelfTest[0].SystemList[0].DevList[5]['TestPassed']"
|
||||
|
||||
[node name="kanal7" parent="grid_bpo_a2" instance=ExtResource("2_jp6m0")]
|
||||
[node name="kanal7" parent="grid_bpo_a2" groups=["потребитель-питания", "управляется-по-шине-2"] instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 7"
|
||||
metadata/state = "SelfTest[0].SystemList[0].DevList[6]['TestPassed']"
|
||||
|
||||
[node name="kanal8" parent="grid_bpo_a2" instance=ExtResource("2_jp6m0")]
|
||||
[node name="kanal8" parent="grid_bpo_a2" groups=["потребитель-питания", "управляется-по-шине-2"] instance=ExtResource("2_jp6m0")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 8"
|
||||
metadata/state = "SelfTest[0].SystemList[0].DevList[7]['TestPassed']"
|
||||
|
||||
[node name="yas_bpo_a2" parent="." instance=ExtResource("3_jcpjs")]
|
||||
[node name="yas_bpo_a2" parent="." groups=["потребитель-питания"] instance=ExtResource("3_jcpjs")]
|
||||
offset_left = 500.0
|
||||
offset_top = 375.0
|
||||
offset_right = 550.0
|
||||
@@ -192,13 +198,15 @@ self_size = Vector2i(50, 145)
|
||||
fname = "Яч. связи"
|
||||
|
||||
[node name="request" type="HTTPRequest" parent="."]
|
||||
use_threads = true
|
||||
script = ExtResource("4_crej3")
|
||||
projsettings_path_left = "application/config/Адрес БПО левого борта"
|
||||
projsettings_path_right = "application/config/Адрес БПО правого борта"
|
||||
projsettings_path_wait_time = "application/config/Период опроса состояния БПО, секунды"
|
||||
|
||||
[node name="timer" type="Timer" parent="request"]
|
||||
wait_time = 5.0
|
||||
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"]
|
||||
|
||||
@@ -18,9 +18,30 @@ const RESULT_STRINGS = {
|
||||
RESULT_REDIRECT_LIMIT_REACHED: 'Запрос достиг максимального предела перенаправления, см. `max_redirects`',
|
||||
RESULT_TIMEOUT: 'Время истекло' }
|
||||
|
||||
const headers_left = [
|
||||
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
|
||||
'Accept-Encoding: gzip, deflate',
|
||||
'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
|
||||
'Connection: keep-alive',
|
||||
'Host: 172.22.246.12:8081',
|
||||
'Priority: u=0,i',
|
||||
'Upgrade-Insecure-Requests: 1',
|
||||
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0) Gecko/20100101 Firefox/143.0' ]
|
||||
|
||||
const headers_right = [
|
||||
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
|
||||
'Accept-Encoding: gzip, deflate',
|
||||
'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
|
||||
'Connection: keep-alive',
|
||||
'Host: 172.22.246.14:8082',
|
||||
'Priority: u=0,i',
|
||||
'Upgrade-Insecure-Requests: 1',
|
||||
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0) Gecko/20100101 Firefox/143.0' ]
|
||||
|
||||
@export var projsettings_path_left: String = ''
|
||||
@export var projsettings_path_right: String = ''
|
||||
@export var projsettings_path_wait_time: String = ''
|
||||
|
||||
|
||||
var i_bort: int = 0
|
||||
var addr_left: String
|
||||
@@ -30,6 +51,7 @@ var addr_right: String
|
||||
func on_settings_changed():
|
||||
addr_left = ProjectSettings.get_setting(projsettings_path_left)
|
||||
addr_right = ProjectSettings.get_setting(projsettings_path_right)
|
||||
$timer.wait_time = int(ProjectSettings.get_setting(projsettings_path_wait_time, 5))
|
||||
|
||||
|
||||
func get_result_string(result: Result):
|
||||
@@ -42,8 +64,10 @@ func _ready():
|
||||
|
||||
|
||||
func _on_request_timer():
|
||||
var addr = [addr_left, addr_right][i_bort]
|
||||
var rc = request(addr)
|
||||
cancel_request()
|
||||
var addr = [addr_right, addr_left][i_bort]
|
||||
var hdrs = [headers_right, headers_left][i_bort]
|
||||
var rc: = request(addr, hdrs)
|
||||
if rc != Error.OK:
|
||||
var s: String = '%s: %s' % [error_string(rc), addr]
|
||||
log.error('%s' % s)
|
||||
|
||||
@@ -60,7 +60,8 @@ const SETTING_TABLE = [
|
||||
['Адрес АФСП левого борта', TableEdit, TableEdit, 'http-адрес для запроса состояния прибора АФСП'],
|
||||
['Адрес АФСП правого борта', TableEdit, TableEdit, 'http-адрес для запроса состояния прибора АФСП'],
|
||||
['Адрес БПО левого борта', TableEdit, TableEdit, 'http-адрес для запроса состояния прибора БПО'],
|
||||
['Адрес БПО правого борта', TableEdit, TableEdit, 'http-адрес для запроса состояния прибора БПО'] ]
|
||||
['Адрес БПО правого борта', TableEdit, TableEdit, 'http-адрес для запроса состояния прибора БПО'],
|
||||
['Период опроса состояния БПО, секунды', TableEdit, TableEdit, 'Время в секундах' ] ]
|
||||
|
||||
const EXTERNAL_CU = 16 ## Внешнее целеуказание
|
||||
const SUPPRESS = 17 ## Строка - Подавление
|
||||
|
||||
Reference in New Issue
Block a user