Giter Club home page Giter Club logo

Comments (4)

tacaswell avatar tacaswell commented on July 22, 2024

This requires possible breaking upstream changes to @stuwilkin ad code to pull the dark frame logic out of ophyd subscriptions and into explicit methods on the ad objects.

from bluesky.

danielballan avatar danielballan commented on July 22, 2024

Current proposal for a more flexible area detector, as hashed out in scattered, separate conversations with @tacaswell, @ericdill, @stuwilkins.

Remove dark frame logic from base class. The basic AreaDetectorFileStore or whatever doesn't need to know anything about dark frames. Its trigger method simply takes a frame. It does not manipulate a shutter. This aims to cater to users who (1) have no need for dark frames or (2) prefer to think of the shutter separately, not wanting their objects to get too smart. :- )

A dark-frame-aware subclass would inherit from this. It would hold a reference to a Shutter (which joins Readable and Movable as a defined interface in bluesky) -- an ophyd obj with open and close methods proposed elsewhere by @tacaswell.

As now, it would have a trigger method that always takes a light frame and sometimes takes a fresh dark frame. Here's the difference: an attribute (say, darkframe_is_stale) would control whether the next trigger takes a new darkframe. This is more flexible than darkframe_interval. As now, the read method would always returns a new light frame and most recent dark frame. In summary, it still has brains, but the procedure for how to intersperse dark frames is not baked in.

A further subclass could implement darkframe_interval that touches darkframe_is_stale.

If all the darkframe logic is implemented as a mixin class, it can be kept separate from hardware details. That is, you can have Eiger and EigerDarkFrame and EigerDarkFrameThatKnowsAboutIntervals without repeated code.

from bluesky.

danielballan avatar danielballan commented on July 22, 2024

@dchabot

from bluesky.

tacaswell avatar tacaswell commented on July 22, 2024

attn bluesky/ophyd#165

from bluesky.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.