From 290e289517dc30df3358efc43cd13dad37893202 Mon Sep 17 00:00:00 2001 From: Repinoid Date: Sun, 7 Jun 2026 11:50:56 +0400 Subject: [PATCH] =?UTF-8?q?feat(server):=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF?= =?UTF-8?q?=D1=82=20=3Fmode=3Ddynamic=20=E2=80=94=2012=20PID,=20=D0=B8?= =?UTF-8?q?=D0=BD=D1=82=D0=B5=D1=80=D0=B2=D0=B0=D0=BB=20250=D0=BC=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/routes.py | 4 +++- api/scripts.py | 24 ++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/api/routes.py b/api/routes.py index 85f24e6..f44541e 100644 --- a/api/routes.py +++ b/api/routes.py @@ -16,7 +16,7 @@ from flask import jsonify, request from api.config import load from api.db import Database from api.parser import format_no_llm, parse_batch -from api.scripts import build_default_script, build_full_script, build_script_for_level +from api.scripts import build_default_script, build_full_script, build_script_for_level, build_dynamic_script from brain.client import Diagnoser, LLMError from brain.prompts import SYSTEM_PROMPT @@ -77,6 +77,8 @@ def register(app): script = build_script_for_level(int(level)) except (ValueError, TypeError): script = build_default_script() + elif mode == "dynamic": + script = build_dynamic_script() elif mode == "full": script = build_full_script() else: diff --git a/api/scripts.py b/api/scripts.py index ad6d252..0059edd 100644 --- a/api/scripts.py +++ b/api/scripts.py @@ -107,3 +107,27 @@ def build_script_for_level(level: int) -> dict: return build_script_l1() else: return build_script_l0() + + +def build_dynamic_script() -> dict: + """Скрипт для динамического теста — 12 PID, опрос каждые 250мс.""" + return { + "version": 1, + "title": "Динамический тест", + "mode": "dynamic", + "interval_ms": 250, + "steps": [ + {"id": "pid_04", "cmd": "0104", "desc": "Нагрузка"}, + {"id": "pid_05", "cmd": "0105", "desc": "ОЖ"}, + {"id": "pid_06", "cmd": "0106", "desc": "STFT"}, + {"id": "pid_07", "cmd": "0107", "desc": "LTFT"}, + {"id": "pid_0B", "cmd": "010B", "desc": "MAP"}, + {"id": "pid_0C", "cmd": "010C", "desc": "RPM"}, + {"id": "pid_0D", "cmd": "010D", "desc": "Скорость"}, + {"id": "pid_0E", "cmd": "010E", "desc": "Зажигание"}, + {"id": "pid_0F", "cmd": "010F", "desc": "IAT"}, + {"id": "pid_10", "cmd": "0110", "desc": "MAF"}, + {"id": "pid_11", "cmd": "0111", "desc": "Дроссель"}, + {"id": "pid_1F", "cmd": "011F", "desc": "Время работы"}, + ], + }