Chameleon-Vision / chameleon-vision

Other
37 stars 11 forks source link

Fail quickly if essential items don't work #83

Closed swalberg closed 4 years ago

swalberg commented 4 years ago

There are some cases where Main calls return, presumably with the intention of exiting, but due to the NT and ScriptRunner threads running, the program will never exit. Also, at least on my machine, having no USB cameras throws an exception that's not caught, leaving the app in limbo.

This change forces all threads to stop if no cameras or vision pipelines can be instantiated. This will let the supervisor (e.g. systemd) restart the app to handle conditions like cameras being unplugged prior to the boot.

During our season we found that moving the camera port would cause this exception because the USB ID changed. We would have to then go hard cycle the Pi, when it would have been much easier to just move the port and know that CV would restart shortly.

Bankst commented 4 years ago

The camera selection/connection behavior is being completely rewritten for the 3.0 release, so this is a wont-fix for 2.3.2. If you have suggestions for "making it loud" in the upcoming release, feel free to let us know either in Discord or in an issue here.