Cameras should report their available capture modes
The following on from a discussion in !251. We are introducing more complex capturing modes, including ones that downsample. What modes are available will depend on the camera. > A first pass through. I think we need to fix some of this then really think about both the z-stack logic but also the camera logic, even if we don't implement it right now. > > I think probably we want a camera to have `capture_modes`. > > `cam.get_available_capture_modes()` > > For the PiCamera V2 board it should probably return something like: > > ``` > { > "rapid": { > "name": "Rapid (0.5MP)", > "description": "The fastest capture, but only 0.5MP", > "capture_resolution": (820, 616), > "stream_resolution": (820, 616) > }, > "fast": { > "name": "Fast (2MP)", > "description": "A fast way to capture a 2MP image, quality is diminished", > "capture_resolution": (1640, 1232), > "stream_resolution": (1640, 1232) > }, > "standard": { > "name": "Standard (2MP)", > "description": "Recommended. The most robust way to capture high quality a 2MP image.", > "capture_resolution": (1640, 1232), > "stream_resolution": (3280, 2464) > }, > full: { > "name": "Full (8MP)", > "description": "Full 8MP capture, this is slowest and may not have any more useful data than Standard.", > "capture_resolution": (3280, 2464), > "stream_resolution": (3280, 2464) > } > } > ``` > This way we use have a list names to expose to the GUI. We can tell the camera simply to enter that capture mode, this way the camera can correctly set up its streams at a lower level depending on how the camera works internally.
issue