fix: return null cmd on SEARCHING — wait for ELM327 to finish
This commit is contained in:
+5
-5
@@ -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"]:
|
||||||
|
|||||||
Reference in New Issue
Block a user