Доработка АФСП провекри

This commit is contained in:
TotMaxim
2026-04-09 11:25:18 +03:00
parent 08597ff7ce
commit 0c30572f1e
4 changed files with 47 additions and 31 deletions

View File

@@ -97,8 +97,8 @@ name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20) name_min_size1 = Vector2i(35, 20)
name_min_size2 = Vector2i(35, 20) name_min_size2 = Vector2i(35, 20)
fname = "Канал 2" fname = "Канал 2"
metadata/value0 = "SelfTest[1].SystemList[1].DevList[1].TestedParamList[0]['CurrentValue']" metadata/value0 = "SelfTest[0].SystemList[1].DevList[1].TestedParamList[0]['CurrentValue']"
metadata/value1 = "SelfTest[2].SystemList[1].DevList[1].TestedParamList[0]['CurrentValue']" metadata/value1 = "SelfTest[0].SystemList[1].DevList[1].TestedParamList[0]['CurrentValue']"
metadata/value2 = "SelfTest[0].SystemList[1].DevList[1]['TestPassed']" metadata/value2 = "SelfTest[0].SystemList[1].DevList[1]['TestPassed']"
metadata/state = ["SelfTest[0].SystemList[1].DevList[1]['TestPassed']"] metadata/state = ["SelfTest[0].SystemList[1].DevList[1]['TestPassed']"]
@@ -122,8 +122,8 @@ name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20) name_min_size1 = Vector2i(35, 20)
name_min_size2 = Vector2i(35, 20) name_min_size2 = Vector2i(35, 20)
fname = "Канал 3" fname = "Канал 3"
metadata/value0 = "SelfTest[1].SystemList[1].DevList[2].TestedParamList[0]['CurrentValue']" metadata/value0 = "SelfTest[0].SystemList[1].DevList[2].TestedParamList[0]['CurrentValue']"
metadata/value1 = "SelfTest[2].SystemList[1].DevList[2].TestedParamList[0]['CurrentValue']" metadata/value1 = "SelfTest[0].SystemList[1].DevList[2].TestedParamList[0]['CurrentValue']"
metadata/value2 = "SelfTest[0].SystemList[1].DevList[2]['TestPassed']" metadata/value2 = "SelfTest[0].SystemList[1].DevList[2]['TestPassed']"
metadata/state = ["SelfTest[0].SystemList[1].DevList[2]['TestPassed']"] metadata/state = ["SelfTest[0].SystemList[1].DevList[2]['TestPassed']"]
@@ -147,8 +147,8 @@ name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20) name_min_size1 = Vector2i(35, 20)
name_min_size2 = Vector2i(35, 20) name_min_size2 = Vector2i(35, 20)
fname = "Канал 4" fname = "Канал 4"
metadata/value0 = "SelfTest[1].SystemList[1].DevList[3].TestedParamList[0]['CurrentValue']" metadata/value0 = "SelfTest[0].SystemList[1].DevList[3].TestedParamList[0]['CurrentValue']"
metadata/value1 = "SelfTest[2].SystemList[1].DevList[3].TestedParamList[0]['CurrentValue']" metadata/value1 = "SelfTest[0].SystemList[1].DevList[3].TestedParamList[0]['CurrentValue']"
metadata/value2 = "SelfTest[0].SystemList[1].DevList[3]['TestPassed']" metadata/value2 = "SelfTest[0].SystemList[1].DevList[3]['TestPassed']"
metadata/state = ["SelfTest[0].SystemList[1].DevList[3]['TestPassed']"] metadata/state = ["SelfTest[0].SystemList[1].DevList[3]['TestPassed']"]
@@ -172,8 +172,8 @@ name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20) name_min_size1 = Vector2i(35, 20)
name_min_size2 = Vector2i(35, 20) name_min_size2 = Vector2i(35, 20)
fname = "Канал 5" fname = "Канал 5"
metadata/value0 = "SelfTest[1].SystemList[1].DevList[4].TestedParamList[0]['CurrentValue']" metadata/value0 = "SelfTest[0].SystemList[1].DevList[4].TestedParamList[0]['CurrentValue']"
metadata/value1 = "SelfTest[2].SystemList[1].DevList[4].TestedParamList[0]['CurrentValue']" metadata/value1 = "SelfTest[0].SystemList[1].DevList[4].TestedParamList[0]['CurrentValue']"
metadata/value2 = "SelfTest[0].SystemList[1].DevList[4]['TestPassed']" metadata/value2 = "SelfTest[0].SystemList[1].DevList[4]['TestPassed']"
metadata/state = ["SelfTest[0].SystemList[1].DevList[4]['TestPassed']"] metadata/state = ["SelfTest[0].SystemList[1].DevList[4]['TestPassed']"]
@@ -197,8 +197,8 @@ name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20) name_min_size1 = Vector2i(35, 20)
name_min_size2 = Vector2i(35, 20) name_min_size2 = Vector2i(35, 20)
fname = "Канал 6" fname = "Канал 6"
metadata/value0 = "SelfTest[1].SystemList[1].DevList[5].TestedParamList[0]['CurrentValue']" metadata/value0 = "SelfTest[0].SystemList[1].DevList[5].TestedParamList[0]['CurrentValue']"
metadata/value1 = "SelfTest[2].SystemList[1].DevList[5].TestedParamList[0]['CurrentValue']" metadata/value1 = "SelfTest[0].SystemList[1].DevList[5].TestedParamList[0]['CurrentValue']"
metadata/value2 = "SelfTest[0].SystemList[1].DevList[5]['TestPassed']" metadata/value2 = "SelfTest[0].SystemList[1].DevList[5]['TestPassed']"
metadata/state = ["SelfTest[0].SystemList[1].DevList[5]['TestPassed']"] metadata/state = ["SelfTest[0].SystemList[1].DevList[5]['TestPassed']"]
@@ -222,8 +222,8 @@ name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20) name_min_size1 = Vector2i(35, 20)
name_min_size2 = Vector2i(35, 20) name_min_size2 = Vector2i(35, 20)
fname = "Канал 7" fname = "Канал 7"
metadata/value0 = "SelfTest[1].SystemList[1].DevList[6].TestedParamList[0]['CurrentValue']" metadata/value0 = "SelfTest[0].SystemList[1].DevList[6].TestedParamList[0]['CurrentValue']"
metadata/value1 = "SelfTest[2].SystemList[1].DevList[6].TestedParamList[0]['CurrentValue']" metadata/value1 = "SelfTest[0].SystemList[1].DevList[6].TestedParamList[0]['CurrentValue']"
metadata/value2 = "SelfTest[0].SystemList[1].DevList[6]['TestPassed']" metadata/value2 = "SelfTest[0].SystemList[1].DevList[6]['TestPassed']"
metadata/state = ["SelfTest[0].SystemList[1].DevList[6]['TestPassed']"] metadata/state = ["SelfTest[0].SystemList[1].DevList[6]['TestPassed']"]
@@ -247,8 +247,8 @@ name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20) name_min_size1 = Vector2i(35, 20)
name_min_size2 = Vector2i(35, 20) name_min_size2 = Vector2i(35, 20)
fname = "Канал 8" fname = "Канал 8"
metadata/value0 = "SelfTest[1].SystemList[1].DevList[7].TestedParamList[0]['CurrentValue']" metadata/value0 = "SelfTest[0].SystemList[1].DevList[7].TestedParamList[0]['CurrentValue']"
metadata/value1 = "SelfTest[2].SystemList[1].DevList[7].TestedParamList[0]['CurrentValue']" metadata/value1 = "SelfTest[0].SystemList[1].DevList[7].TestedParamList[0]['CurrentValue']"
metadata/value2 = "SelfTest[0].SystemList[1].DevList[7]['TestPassed']" metadata/value2 = "SelfTest[0].SystemList[1].DevList[7]['TestPassed']"
metadata/state = ["SelfTest[0].SystemList[1].DevList[7]['TestPassed']"] metadata/state = ["SelfTest[0].SystemList[1].DevList[7]['TestPassed']"]
@@ -800,7 +800,7 @@ offset_right = 580.0
offset_bottom = 115.0 offset_bottom = 115.0
tooltip_text = "Плата АЦП ADCS500" tooltip_text = "Плата АЦП ADCS500"
fname = "АЦП" fname = "АЦП"
metadata/state = ["SelfTest[4].SystemList[0].DevList[1]['TestPassed']"] metadata/state = ["SelfTest[0].SystemList[0].DevList[1]['TestPassed']"]
[node name="dsp" parent="." instance=ExtResource("4_mtf2n")] [node name="dsp" parent="." instance=ExtResource("4_mtf2n")]
layout_mode = 0 layout_mode = 0
@@ -809,7 +809,7 @@ offset_right = 580.0
offset_bottom = 60.0 offset_bottom = 60.0
tooltip_text = "Плата цифровой обработки сигналов BPL" tooltip_text = "Плата цифровой обработки сигналов BPL"
fname = "Сигн. проц." fname = "Сигн. проц."
metadata/state = ["SelfTest[4].SystemList[0].DevList[0]['TestPassed']"] metadata/state = ["SelfTest[0].SystemList[0].DevList[0]['TestPassed']"]
[node name="gen" parent="." instance=ExtResource("2_dmhrm")] [node name="gen" parent="." instance=ExtResource("2_dmhrm")]
layout_mode = 2 layout_mode = 2
@@ -827,8 +827,8 @@ name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20) name_min_size1 = Vector2i(35, 20)
name_min_size2 = Vector2i(35, 20) name_min_size2 = Vector2i(35, 20)
fname = "Генератор" fname = "Генератор"
metadata/value0 = "SelfTest[1].SystemList[2].DevList[0].TestedParamList[0]['CurrentValue']" metadata/value0 = "SelfTest[0].SystemList[2].DevList[0].TestedParamList[0]['CurrentValue']"
metadata/value1 = "SelfTest[2].SystemList[2].DevList[0].TestedParamList[0]['CurrentValue']" metadata/value1 = "SelfTest[0].SystemList[2].DevList[0].TestedParamList[0]['CurrentValue']"
metadata/state = ["SelfTest[0].SystemList[2].DevList[0]['TestPassed']"] metadata/state = ["SelfTest[0].SystemList[2].DevList[0]['TestPassed']"]
[node name="rpu" parent="." instance=ExtResource("2_dmhrm")] [node name="rpu" parent="." instance=ExtResource("2_dmhrm")]
@@ -848,8 +848,8 @@ name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20) name_min_size1 = Vector2i(35, 20)
name_min_size2 = Vector2i(35, 20) name_min_size2 = Vector2i(35, 20)
fname = "Приёмник 20...1000 МГц" fname = "Приёмник 20...1000 МГц"
metadata/value0 = "SelfTest[1].SystemList[0].DevList[0]['TestPassed']" metadata/value0 = "SelfTest[0].SystemList[0].DevList[0]['TestPassed']"
metadata/value1 = "SelfTest[2].SystemList[0].DevList[0]['TestPassed']" metadata/value1 = "SelfTest[0].SystemList[0].DevList[0]['TestPassed']"
metadata/state = ["SelfTest[0].SystemList[0].DevList[3]['TestPassed']"] metadata/state = ["SelfTest[0].SystemList[0].DevList[3]['TestPassed']"]
[connection signal="pressed" from="konverter/grid/kanal1" to="." method="_on_item_pressed"] [connection signal="pressed" from="konverter/grid/kanal1" to="." method="_on_item_pressed"]

View File

@@ -40,8 +40,7 @@ static func map_error_codes_to_item(data, item, value_name: StringName, value_in
# Плавное обновление с анимацией # Плавное обновление с анимацией
static func map_value_to_item_animated(data, item, value_name: StringName): static func map_value_to_item_animated(data, item, value_name: StringName):
var meta = item.get_meta(value_name, '') var meta = item.get_meta(value_name, '')
if meta == '' or not (meta is String): if meta == '' or not (meta is String): return
return
var paths: = Array() var paths: = Array()
tools.map_solid_to_array(meta, paths) tools.map_solid_to_array(meta, paths)
@@ -55,8 +54,7 @@ static func map_value_to_item_animated(data, item, value_name: StringName):
static func map_error_codes_to_item_animated(data, item, value_name: StringName, value_init: int): static func map_error_codes_to_item_animated(data, item, value_name: StringName, value_init: int):
var metas = item.get_meta(value_name, '') var metas = item.get_meta(value_name, '')
if not (metas is Array): if not (metas is Array): return
return
var paths: = Array() var paths: = Array()
var values: = Array() var values: = Array()
@@ -79,8 +77,8 @@ static func map_error_codes_to_item_animated(data, item, value_name: StringName,
static func _animate_property(item, property: StringName, target_value): static func _animate_property(item, property: StringName, target_value):
var current = item.get(property) var current = item.get(property)
if current == target_value: if typeof(current) != typeof(target_value): return
return if current == target_value: return
# Исправление: преобразуем StringName в String для NodePath # Исправление: преобразуем StringName в String для NodePath
var tween = item.create_tween() var tween = item.create_tween()

View File

@@ -125,6 +125,9 @@ func _ready():
signaller.connect('debag_control_pressed', Callable(self, 'on_debag_button_pressed')) signaller.connect('debag_control_pressed', Callable(self, 'on_debag_button_pressed'))
scouting.request_sent_left.connect(_on_request_sent_left.bind($pribor_afsp_1)) scouting.request_sent_left.connect(_on_request_sent_left.bind($pribor_afsp_1))
scouting.response_received_left.connect(_on_response_received.bind($pribor_afsp_1)) scouting.response_received_left.connect(_on_response_received.bind($pribor_afsp_1))
scouting.request_sent_right.connect(_on_request_sent_left.bind($pribor_afsp_2))
scouting.response_received_right.connect(_on_response_received.bind($pribor_afsp_2))
func online_change_arr(_u, conn_node, pribor_meta): func online_change_arr(_u, conn_node, pribor_meta):
@@ -180,7 +183,7 @@ func _on_request_sent_left(_url: String, node: Node) -> void:
func _on_response_received(_response: String, _success: bool, node: Node): func _on_response_received(_response: String, _success: bool, node: Node):
node.progress_value = 100 node.progress_value = 100
node.progress_visible = false #node.progress_visible = false
## Прием сигналов о текущем состояниях приборах ## Прием сигналов о текущем состояниях приборах

View File

@@ -141,6 +141,8 @@ func _on_start_contol_device() -> void:
# Загружаем URL адреса из ProjectSettings # Загружаем URL адреса из ProjectSettings
addresses['Адрес АФСП левого борта'] = ProjectSettings.get_setting('application/config/%s' % 'Адрес АФСП левого борта') addresses['Адрес АФСП левого борта'] = ProjectSettings.get_setting('application/config/%s' % 'Адрес АФСП левого борта')
addresses['Адрес АФСП правого борта'] = ProjectSettings.get_setting('application/config/%s' % 'Адрес АФСП правого борта') addresses['Адрес АФСП правого борта'] = ProjectSettings.get_setting('application/config/%s' % 'Адрес АФСП правого борта')
addresses['Адрес БПО левого борта'] = ProjectSettings.get_setting('application/config/%s' % 'Адрес БПО левого борта')
addresses['Адрес БПО правого борта'] = ProjectSettings.get_setting('application/config/%s' % 'Адрес БПО правого борта')
timeout = float(ProjectSettings.get_setting('application/config/%s' % 'Период опроса состояния АФСП, секунды')) timeout = float(ProjectSettings.get_setting('application/config/%s' % 'Период опроса состояния АФСП, секунды'))
# Начинаем с запроса к левому борту # Начинаем с запроса к левому борту
_request_next(State.REQUESTING_LEFT) _request_next(State.REQUESTING_LEFT)
@@ -162,6 +164,21 @@ func _on_request_completed(result: int, response_code: int, _headers: PackedStri
var response_text = body.get_string_from_utf8() var response_text = body.get_string_from_utf8()
_save_response(response_text) _save_response(response_text)
# Быстрый подсчёт для лога
var json = JSON.new()
if json.parse(response_text) == OK:
var data = json.data
var self_tests = data.get("SelfTest", [])
var total = 0
var passed = 0
for test in self_tests:
for system in test.get("SystemList", []):
for dev in system.get("DevList", []):
total += 1
if dev.get("TestPassed", false):
passed += 1
print("[rtr] Ответ от %s: %d/%d тестов пройдено" % ["левого" if is_left else "правого", passed, total])
# Обновляем статус online # Обновляем статус online
if is_left: if is_left:
last_success_time_left = current_time last_success_time_left = current_time
@@ -190,15 +207,13 @@ func _on_request_completed(result: int, response_code: int, _headers: PackedStri
# Сигнал от таймера - истекло время ожидания ответа # Сигнал от таймера - истекло время ожидания ответа
func _on_timeout() -> void: func _on_timeout() -> void:
var was_left = (current_state == State.REQUESTING_LEFT)
current_state = State.WAITING_TIMEOUT current_state = State.WAITING_TIMEOUT
http_request.cancel_request() http_request.cancel_request()
var timeout_msg = 'Таймаут %.1f секунд - %s' % [timeout, get_result_string(HTTPRequest.Result.RESULT_TIMEOUT)] var timeout_msg = 'Таймаут %.1f секунд - %s' % [timeout, get_result_string(HTTPRequest.Result.RESULT_TIMEOUT)]
_save_error(timeout_msg) _save_error(timeout_msg)
var is_left = (current_state == State.REQUESTING_LEFT)
# Обновляем статус online (таймаут = offline) # Обновляем статус online (таймаут = offline)
if is_left: if was_left:
_update_online_status("left", false) _update_online_status("left", false)
emit_signal('response_received_left', timeout_msg, false) emit_signal('response_received_left', timeout_msg, false)
else: else: