Skip to content

When sequence acquisition fails to start, Core should close autoshutter #901

@marktsuchida

Description

@marktsuchida

There are 3 ways in which a camera device could fail during StartSequenceAcquisition():

  1. Something in the camera fails before the call to GetCoreCallback()->PrepareForAcq() → camera returns an error code
  2. PrepareForAcq() returns an error (typically, shutter failed to open) → camera should propagate the error code (a few need fixing)
  3. Something in the camera fails after the call to PrepareForAcq() → camera should return an error code

Currently, when case 3 happens, we have no mechanism to reverse the effect of PrepareForAcq() (i.e., closing the shutter if autoshutter is enabled). (Some cameras might call AcqFinished() if the app calls stopSequenceAcquisition(), but this is not required behavior.)

The Core needs to keep track of whether the shutter was opened for autoshutter, and close it on the error return path of startSequenceAcquisition() when applicable (case 3).

(The alternative would be to require the cameras themselves to call AcqFinished() in case 3, but afaict no existing camera does this, and it's better to let the Core handle as much as it can.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions