diff --git a/web/raw_endpoint.py b/web/raw_endpoint.py index 5676ed6..24c40ec 100644 --- a/web/raw_endpoint.py +++ b/web/raw_endpoint.py @@ -209,17 +209,17 @@ def register(app): parsed = _parse_response(raw, sess["data"]) logger.info(f"[{session_id}] {parsed}") - # SEARCHING/NO DATA — не продвигаем стейт, повторяем команду + # SEARCHING/NO DATA — ждём, не продвигаем стейт is_skip = raw.startswith("SEARCHING") or raw == "NO DATA" or raw == "STOPPED" if is_skip: sess["retries"] = sess.get("retries", 0) + 1 if sess["retries"] > 3: logger.info(f"[{session_id}] Giving up after {sess['retries']} retries") sess["retries"] = 0 - # принудительно продвигаем стейт ниже - elif sess["queue"]: - cmd = sess["queue"].pop(0) - return jsonify({"cmd": cmd, "session": session_id, "state": sess["state"]}) + # Продвигаем принудительно (ниже) + else: + # Ждём — не шлём команду, ELM327 сам ответит когда готов + return jsonify({"cmd": None, "session": session_id, "state": sess["state"], "msg": "Жду..."}) # Если есть очередь — отдаём следующую if sess["queue"]: