fix: return null cmd on SEARCHING — wait for ELM327 to finish

This commit is contained in:
Repinoid
2026-05-26 09:54:23 +03:00
parent 4efd5a7594
commit 8103343688
+5 -5
View File
@@ -209,17 +209,17 @@ def register(app):
parsed = _parse_response(raw, sess["data"]) parsed = _parse_response(raw, sess["data"])
logger.info(f"[{session_id}] {parsed}") logger.info(f"[{session_id}] {parsed}")
# SEARCHING/NO DATA — не продвигаем стейт, повторяем команду # SEARCHING/NO DATA — ждём, не продвигаем стейт
is_skip = raw.startswith("SEARCHING") or raw == "NO DATA" or raw == "STOPPED" is_skip = raw.startswith("SEARCHING") or raw == "NO DATA" or raw == "STOPPED"
if is_skip: if is_skip:
sess["retries"] = sess.get("retries", 0) + 1 sess["retries"] = sess.get("retries", 0) + 1
if sess["retries"] > 3: if sess["retries"] > 3:
logger.info(f"[{session_id}] Giving up after {sess['retries']} retries") logger.info(f"[{session_id}] Giving up after {sess['retries']} retries")
sess["retries"] = 0 sess["retries"] = 0
# принудительно продвигаем стейт ниже # Продвигаем принудительно (ниже)
elif sess["queue"]: else:
cmd = sess["queue"].pop(0) # Ждём — не шлём команду, ELM327 сам ответит когда готов
return jsonify({"cmd": cmd, "session": session_id, "state": sess["state"]}) return jsonify({"cmd": None, "session": session_id, "state": sess["state"], "msg": "Жду..."})
# Если есть очередь — отдаём следующую # Если есть очередь — отдаём следующую
if sess["queue"]: if sess["queue"]: