Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support combining scanner and detector from different device #2

Open
marktsuchida opened this issue Nov 2, 2018 · 3 comments
Open
Assignees

Comments

@marktsuchida
Copy link
Member

marktsuchida commented Nov 2, 2018

See: uw-loci/mm-openscan/issues/72

Frame count, width, and height must be agreed upon between scanner and detector (allowed (width, height) is the intersection of what scanner and detector allow).

Pixel clock frequency must be propagated from scanner to detector in cases where the detector does not receive a hardware pixel clock.

Acquisitions may also be terminated from software. In this case, OpenScanLib first tells the detector to stop at its earliest convenience. Then, the detector signals back to OpenScanLib when scanning is no longer needed, at which point OpenScanLib stops the scanner.

Depending on the detector implementation, it might choose to finish acquiring the current frame or stop mid-frame and discard the current frame.

@marktsuchida marktsuchida self-assigned this Nov 2, 2018
@bdai6
Copy link
Collaborator

bdai6 commented Sep 27, 2019

To enable some combinations such as DAQ (scanner) + FPGA (detector), FPGA firmware code needs to be modified as currently the OpenScan-OpenScanNIFPGA acquisition is internally triggered within the FPGA board.

@marktsuchida
Copy link
Member Author

Perhaps we need to explicitly model the ability of each device to combine with others.

For example, the current OpenScanNIDAQ can operate as Clock+Scanner+Detector, or as Clock+Scanner with external Detector, but does not (yet) have the capability to operate as Detector only. Similarly, the current OpenScanNIFPGA could declare itself as only supporting all-internal Clock+Scanner+Detector.

In this way, we can let each device module evolve its capabilities independently.

@marktsuchida
Copy link
Member Author

Remaining to be done:

  • Devices need to be able to declare their ability to work with external clock/scanner/detector.
  • Acquisition stop/disarm needs to be correctly coordinated when multiple devices participate (we currently lack device implementations with which this can be fully tested).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants