Доработка АФСП провекри
This commit is contained in:
@@ -141,6 +141,8 @@ func _on_start_contol_device() -> void:
|
||||
# Загружаем 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' % 'Адрес БПО правого борта')
|
||||
timeout = float(ProjectSettings.get_setting('application/config/%s' % 'Период опроса состояния АФСП, секунды'))
|
||||
# Начинаем с запроса к левому борту
|
||||
_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()
|
||||
_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
|
||||
if is_left:
|
||||
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:
|
||||
var was_left = (current_state == State.REQUESTING_LEFT)
|
||||
current_state = State.WAITING_TIMEOUT
|
||||
http_request.cancel_request()
|
||||
var timeout_msg = 'Таймаут %.1f секунд - %s' % [timeout, get_result_string(HTTPRequest.Result.RESULT_TIMEOUT)]
|
||||
_save_error(timeout_msg)
|
||||
|
||||
var is_left = (current_state == State.REQUESTING_LEFT)
|
||||
|
||||
# Обновляем статус online (таймаут = offline)
|
||||
if is_left:
|
||||
if was_left:
|
||||
_update_online_status("left", false)
|
||||
emit_signal('response_received_left', timeout_msg, false)
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user