feat(bridge): add wifi/serial bridge runtime and UI
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -423,6 +423,16 @@ def mark_sequence_manual_lane_select_sent(lane_index: int) -> None:
|
||||
e["suppress_next_notify"] = True
|
||||
|
||||
|
||||
def reset_manual_lane_strides() -> None:
|
||||
"""Zero manual-lane beat counters after a sequence change (routes unchanged)."""
|
||||
global _preset_session_beats
|
||||
with _route_lock:
|
||||
_preset_session_beats = 0
|
||||
for e in _lane_manual.values():
|
||||
if isinstance(e, dict):
|
||||
e["beat_counter"] = 0
|
||||
|
||||
|
||||
def sync_beat_route_from_push_sequence(
|
||||
sequence: List[Any],
|
||||
target_macs: Optional[List[str]] = None,
|
||||
@@ -594,11 +604,11 @@ async def _deliver_select(
|
||||
group_ids: Optional[List[str]] = None,
|
||||
) -> None:
|
||||
from models.device import Device
|
||||
from models.transport import get_current_sender
|
||||
from models.transport import get_current_bridge
|
||||
from util.driver_delivery import deliver_json_messages
|
||||
|
||||
sender = get_current_sender()
|
||||
if not sender:
|
||||
bridge = get_current_bridge()
|
||||
if not bridge:
|
||||
return
|
||||
devices = Device()
|
||||
gids = [str(g).strip() for g in (group_ids or []) if str(g).strip()]
|
||||
@@ -607,7 +617,7 @@ async def _deliver_select(
|
||||
body["groups"] = gids
|
||||
msg = json.dumps(body, separators=(",", ":"))
|
||||
try:
|
||||
await deliver_json_messages(sender, [msg], None, devices, delay_s=0.05)
|
||||
await deliver_json_messages(bridge, [msg], None, devices, delay_s=0.05)
|
||||
except Exception as e:
|
||||
print(f"[beat-route] deliver failed: {e}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user