feat(bridge): add wifi/serial bridge runtime and UI

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-28 00:38:21 +12:00
parent 2cf019079e
commit 78dc8ffc77
92 changed files with 5679 additions and 1790 deletions

View File

@@ -4,7 +4,7 @@ from models.preset import Preset
from models.profile import Profile
from models.pallet import Palette
from models.device import Device, normalize_mac
from models.transport import get_current_sender
from models.transport import get_current_bridge
from util.driver_delivery import (
build_preset_json_chunks,
deliver_json_messages,
@@ -224,8 +224,8 @@ async def send_presets(request, session):
if default_id is not None and str(default_id) not in presets_by_name:
default_id = None
sender = get_current_sender()
if not sender:
bridge = get_current_bridge()
if not bridge:
return json.dumps({"error": "Transport not configured"}), 503, {'Content-Type': 'application/json'}
send_delay_s = 0.1
@@ -264,8 +264,7 @@ async def send_presets(request, session):
deliveries = 0
for msg in chunk_messages:
d, _chunks = await deliver_json_messages(
sender,
[msg],
bridge, [msg],
target_list,
Device(),
delay_s=send_delay_s,
@@ -278,7 +277,7 @@ async def send_presets(request, session):
separators=(",", ":"),
)
d, _chunks = await deliver_json_messages(
sender,
bridge,
[def_msg],
target_list,
Device(),
@@ -294,7 +293,7 @@ async def send_presets(request, session):
body["groups"] = list(group_ids)
wire_messages.append(json.dumps(body, separators=(",", ":")))
deliveries, _chunks = await deliver_json_messages(
sender,
bridge,
wire_messages,
None,
Device(),
@@ -343,8 +342,8 @@ async def push_driver_messages(request, session):
if not target_list:
target_list = None
sender = get_current_sender()
if not sender:
bridge = get_current_bridge()
if not bridge:
return json.dumps({"error": "Transport not configured"}), 503, {'Content-Type': 'application/json'}
messages = []
@@ -385,7 +384,7 @@ async def push_driver_messages(request, session):
try:
deliveries, _chunks = await deliver_json_messages(
sender,
bridge,
messages,
target_list,
Device(),