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

Implement scanner interface to be used for CounterAndScanner object #79

Open
gadamc opened this issue Feb 3, 2023 · 1 comment
Open

Comments

@gadamc
Copy link
Collaborator

gadamc commented Feb 3, 2023

Currently, the qt3utils.datagenerators.piezoscanner.CounterAndScanner object expects two objects at instantiation -- an object that returns counts and an object that controls the pizza. The expectation is that the piezo controller implements the functionality found in an external python package -- nipiezojenapy.BaseControl. It's probably better programming practice to define a generic interface within qt3utils and then implementations for specific controllers, such as for nipiezojenapy.PiezoControl. Then, if future controllers are used, we can write an implementation for that controller in qt3utils and immediately used in the CounterAndScanner object.

gadamc added a commit that referenced this issue Feb 3, 2023
Allows to be instantiated with an implementation of a RateCounterBase
class. RandomRateCounter and NiDaqDigitalInputRateCounter are subclasses.

Also, CounterAndScanner must be implemented with a stage_controller object that
is a subclass of nipiezojenapy.BaseControl. (This is poor choice,
as we should probably define an interface for a scanner and then
an implementation that supports nipiezojenapy. This would allow for
different scanners to be used in the future. See Issue #79)
gadamc added a commit that referenced this issue Feb 3, 2023
Allows to be instantiated with an implementation of a RateCounterBase
class. RandomRateCounter and NiDaqDigitalInputRateCounter are subclasses.

Also, CounterAndScanner must be implemented with a stage_controller object that
is a subclass of nipiezojenapy.BaseControl. (This is poor choice,
as we should probably define an interface for a scanner and then
an implementation that supports nipiezojenapy. This would allow for
different scanners to be used in the future. See Issue #79)
gadamc added a commit that referenced this issue Feb 3, 2023
Allows to be instantiated with an implementation of a RateCounterBase
class. RandomRateCounter and NiDaqDigitalInputRateCounter are subclasses.

Also, CounterAndScanner must be implemented with a stage_controller object that
is a subclass of nipiezojenapy.BaseControl. (This is poor choice,
as we should probably define an interface for a scanner and then
an implementation that supports nipiezojenapy. This would allow for
different scanners to be used in the future. See Issue #79)
gadamc added a commit that referenced this issue Feb 3, 2023
Allows to be instantiated with an implementation of a RateCounterBase
class. RandomRateCounter and NiDaqDigitalInputRateCounter are subclasses.

Also, CounterAndScanner must be implemented with a stage_controller object that
is a subclass of nipiezojenapy.BaseControl. (This is poor choice,
as we should probably define an interface for a scanner and then
an implementation that supports nipiezojenapy. This would allow for
different scanners to be used in the future. See Issue #79)
gadamc added a commit that referenced this issue Feb 7, 2023
Allows to be instantiated with an implementation of a RateCounterBase
class. RandomRateCounter and NiDaqDigitalInputRateCounter are subclasses.

Also, CounterAndScanner must be implemented with a stage_controller object that
is a subclass of nipiezojenapy.BaseControl. (This is poor choice,
as we should probably define an interface for a scanner and then
an implementation that supports nipiezojenapy. This would allow for
different scanners to be used in the future. See Issue #79)
gadamc added a commit that referenced this issue Feb 7, 2023
Allows to be instantiated with an implementation of a RateCounterBase
class. RandomRateCounter and NiDaqDigitalInputRateCounter are subclasses.

Also, CounterAndScanner must be implemented with a stage_controller object that
is a subclass of nipiezojenapy.BaseControl. (This is poor choice,
as we should probably define an interface for a scanner and then
an implementation that supports nipiezojenapy. This would allow for
different scanners to be used in the future. See Issue #79)
gadamc added a commit that referenced this issue Feb 7, 2023
Allows to be instantiated with an implementation of a RateCounterBase
class. RandomRateCounter and NiDaqDigitalInputRateCounter are subclasses.

Also, CounterAndScanner must be implemented with a stage_controller object that
is a subclass of nipiezojenapy.BaseControl. (This is poor choice,
as we should probably define an interface for a scanner and then
an implementation that supports nipiezojenapy. This would allow for
different scanners to be used in the future. See Issue #79)
@gadamc
Copy link
Collaborator Author

gadamc commented Jun 28, 2023

This issue may be closed soon. I am leaning toward deprecating nipiezojenapy and just move all of that code into qt3-utils.

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

1 participant