Our current code matches cameras in this order (which I think is objectively wrong and stupid)
by-id (/dev/v4l/by-id/product-string)
by path (/dev/videoN)
product string/name, but ascii only
asks cscore to reconnect to cameras using path, which on linux is actually /dev/videoN. This isn't guaranteed to stick to a camera if you replug them weirdly at runtime.
This is silly and does not consider the actual physical usb port. I propose instead, in this order:
By physical usb port path and base name
by physical usb port path and USB VID/PID
By base name only (with a toggle switch to disable this, and create a new VisionModule instead)
Give cscore /dev/video/by-path on Linux systems, pinning Photon USBCameras to a particular usb port once created.
Our current code matches cameras in this order (which I think is objectively wrong and stupid)
path
, which on linux is actually /dev/videoN. This isn't guaranteed to stick to a camera if you replug them weirdly at runtime.This is silly and does not consider the actual physical usb port. I propose instead, in this order: