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]]
|
[[package]]
|
||||||
name = "lesavka_client"
|
name = "lesavka_client"
|
||||||
version = "0.13.16"
|
version = "0.13.17"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-stream",
|
"async-stream",
|
||||||
@ -1676,7 +1676,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_common"
|
name = "lesavka_common"
|
||||||
version = "0.13.16"
|
version = "0.13.17"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64",
|
"base64",
|
||||||
@ -1688,7 +1688,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_server"
|
name = "lesavka_server"
|
||||||
version = "0.13.16"
|
version = "0.13.17"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64",
|
"base64",
|
||||||
|
|||||||
@ -4,7 +4,7 @@ path = "src/main.rs"
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "lesavka_client"
|
name = "lesavka_client"
|
||||||
version = "0.13.16"
|
version = "0.13.17"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "lesavka_common"
|
name = "lesavka_common"
|
||||||
version = "0.13.16"
|
version = "0.13.17"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
build = "build.rs"
|
build = "build.rs"
|
||||||
|
|
||||||
|
|||||||
@ -320,7 +320,7 @@ if systemctl list-unit-files | grep -q '^relay.service'; then
|
|||||||
sleep 2
|
sleep 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mapfile -t GC_CAPTURE_PAIRS < <(
|
discover_gc_capture_pairs() {
|
||||||
for dev in /dev/video*; do
|
for dev in /dev/video*; do
|
||||||
props=$(sudo udevadm info -q property -n "$dev" 2>/dev/null || true)
|
props=$(sudo udevadm info -q property -n "$dev" 2>/dev/null || true)
|
||||||
index=$(cat "/sys/class/video4linux/$(basename "$dev")/index" 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
|
||||||
fi
|
fi
|
||||||
done | sort -u
|
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
|
if [ "${#GC_CAPTURE_PAIRS[@]}" -ne 2 ]; then
|
||||||
echo "⚠️ GC311 capture cards not fully present; skipping udev eye-link refresh." >&2
|
echo "⚠️ GC311 capture cards not fully present; skipping udev eye-link refresh." >&2
|
||||||
|
|||||||
@ -10,7 +10,7 @@ bench = false
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "lesavka_server"
|
name = "lesavka_server"
|
||||||
version = "0.13.16"
|
version = "0.13.17"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
autobins = false
|
autobins = false
|
||||||
|
|
||||||
|
|||||||
@ -66,6 +66,14 @@ fn server_install_builds_eye_links_from_capture_nodes_only() {
|
|||||||
SERVER_INSTALL.contains("GC_CAPTURE_PAIRS"),
|
SERVER_INSTALL.contains("GC_CAPTURE_PAIRS"),
|
||||||
"install script should assemble eye-link candidates from udev-tagged capture devices"
|
"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!(
|
assert!(
|
||||||
SERVER_INSTALL.contains("[ \"$LEFT_TAG\" = \"$RIGHT_TAG\" ]"),
|
SERVER_INSTALL.contains("[ \"$LEFT_TAG\" = \"$RIGHT_TAG\" ]"),
|
||||||
"install script should refuse duplicated path tags instead of assigning both eyes to one card"
|
"install script should refuse duplicated path tags instead of assigning both eyes to one card"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user