fix(server): retry eye capture discovery
This commit is contained in:
parent
97abb938c5
commit
5c79f20c49
6
Cargo.lock
generated
6
Cargo.lock
generated
@ -1642,7 +1642,7 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
|
||||
|
||||
[[package]]
|
||||
name = "lesavka_client"
|
||||
version = "0.13.16"
|
||||
version = "0.13.17"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-stream",
|
||||
@ -1676,7 +1676,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "lesavka_common"
|
||||
version = "0.13.16"
|
||||
version = "0.13.17"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
@ -1688,7 +1688,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "lesavka_server"
|
||||
version = "0.13.16"
|
||||
version = "0.13.17"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
|
||||
@ -4,7 +4,7 @@ path = "src/main.rs"
|
||||
|
||||
[package]
|
||||
name = "lesavka_client"
|
||||
version = "0.13.16"
|
||||
version = "0.13.17"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "lesavka_common"
|
||||
version = "0.13.16"
|
||||
version = "0.13.17"
|
||||
edition = "2024"
|
||||
build = "build.rs"
|
||||
|
||||
|
||||
@ -320,7 +320,7 @@ if systemctl list-unit-files | grep -q '^relay.service'; then
|
||||
sleep 2
|
||||
fi
|
||||
|
||||
mapfile -t GC_CAPTURE_PAIRS < <(
|
||||
discover_gc_capture_pairs() {
|
||||
for dev in /dev/video*; do
|
||||
props=$(sudo udevadm info -q property -n "$dev" 2>/dev/null || true)
|
||||
index=$(cat "/sys/class/video4linux/$(basename "$dev")/index" 2>/dev/null || true)
|
||||
@ -333,7 +333,16 @@ mapfile -t GC_CAPTURE_PAIRS < <(
|
||||
fi
|
||||
fi
|
||||
done | sort -u
|
||||
)
|
||||
}
|
||||
|
||||
mapfile -t GC_CAPTURE_PAIRS < <(discover_gc_capture_pairs)
|
||||
if [ "${#GC_CAPTURE_PAIRS[@]}" -ne 2 ]; then
|
||||
for _ in {1..20}; do
|
||||
sleep 0.5
|
||||
mapfile -t GC_CAPTURE_PAIRS < <(discover_gc_capture_pairs)
|
||||
[ "${#GC_CAPTURE_PAIRS[@]}" -eq 2 ] && break
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "${#GC_CAPTURE_PAIRS[@]}" -ne 2 ]; then
|
||||
echo "⚠️ GC311 capture cards not fully present; skipping udev eye-link refresh." >&2
|
||||
|
||||
@ -10,7 +10,7 @@ bench = false
|
||||
|
||||
[package]
|
||||
name = "lesavka_server"
|
||||
version = "0.13.16"
|
||||
version = "0.13.17"
|
||||
edition = "2024"
|
||||
autobins = false
|
||||
|
||||
|
||||
@ -66,6 +66,14 @@ fn server_install_builds_eye_links_from_capture_nodes_only() {
|
||||
SERVER_INSTALL.contains("GC_CAPTURE_PAIRS"),
|
||||
"install script should assemble eye-link candidates from udev-tagged capture devices"
|
||||
);
|
||||
assert!(
|
||||
SERVER_INSTALL.contains("discover_gc_capture_pairs"),
|
||||
"install script should retry capture-node discovery instead of trusting a single early snapshot"
|
||||
);
|
||||
assert!(
|
||||
SERVER_INSTALL.contains("for _ in {1..20}; do"),
|
||||
"install script should wait briefly for both GC311 capture nodes to finish enumerating"
|
||||
);
|
||||
assert!(
|
||||
SERVER_INSTALL.contains("[ \"$LEFT_TAG\" = \"$RIGHT_TAG\" ]"),
|
||||
"install script should refuse duplicated path tags instead of assigning both eyes to one card"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user