guysoft / OctoPi

Scripts to build OctoPi, a Raspberry PI distro for controlling 3D printers over the web
GNU General Public License v3.0
2.48k stars 367 forks source link

Fix webcamd daemon loop & handling of non-usb v4l2 devices #741

Closed foosel closed 3 years ago

foosel commented 3 years ago

To fix #740 and restore the old behaviour of webcamd instead of having to rely on the startup to take care of regular polling, instead of existing after bringing up all devices in the background, we will now wait for all child processes to exit. Once that is the case, we'll reset the camera array, sleep 120s and restart the discovery process.

While debugging #740 I also noticed a bug when interacting with the RPi Camera v4l2 device files, which don't have a USB vid and pid and hence produced a syntax error when trying to convert those empty strings into hex for matching against the broken fps device list.

Finally, I found a bunch of typos or weird phrasing and also added some whitespace lines for easier readability.

Would be lovely if @usk-johnny-s could also take a look at the logic here, as I'm not familiar with their multi cam support code added in #597 and am not 100% sure I fully understood the meaning of the various arrays.

guysoft commented 3 years ago

Neat. Thanks for so fixing all the mini typos