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

add Thorlabs DotNetAPI #386

Open
wants to merge 35 commits into
base: main
Choose a base branch
from

Conversation

DCEM
Copy link

@DCEM DCEM commented Nov 27, 2024

replacement for: #267 discussed in #262

This pull request introduces drivers for the QCoDeS framework, enabling control of Thorlabs devices via the Thorlabs .NET API. The integration aims to provide a structured and extendable approach to instrument control within QCoDeS.

What's Included:

  • Integration Manual: A guide for integrating Thorlabs devices with QCoDeS via .NET API
  • API Structure Classes: Classes that provide a framework mirroring the Thorlabs .NET API.
  • Drivers for BSCxxx and KDC101: Initial implementations for specific Thorlabs devices.

Current Status:
The API-structured classes are foundational but not complete. They can be expanded with more features and support for additional devices.

Further Information:
Detailed implementation notes can be found in the README at ...Thorlabs/private/DotNetAPI/README.md.

@DCEM DCEM mentioned this pull request Nov 27, 2024
DCEM and others added 28 commits November 27, 2024 17:23
… decimal-to-float conversions

- Introduce a new constructor argument `decimal_as_float` to toggle .NET Decimal conversion to either Python Decimal or float.
- Refactor getter/setter methods to distinguish between DIRECT and ACCESSOR API interface usage with reflection.
- Migrate from string-based .NET Enum handling to integer-based handling (verifying Int32 underpinnings).
- Add `_get_thorlabs_enum_dict` to generate a QCoDeS-friendly dictionary for enum names and values.
- Use `CultureInfo.InvariantCulture` for .NET Decimal to string conversion to ensure consistent locale handling.
- Improve validation and error handling throughout the mixin to guard against incorrect usage and data type mismatches.
Untested with sceleton classes for: IntegratedStepperMotor and CageRotor, I do not have the hardware to test.
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

Successfully merging this pull request may close these issues.

1 participant