Metadata-Version: 2.4
Name: WITecSDK
Version: 2.0.5
Summary: This package allows automation of WITec Control over COM and accessing Project files
Author-email: Matthias Finger <info.witec@oxinst.com>
License-Expression: MIT
Project-URL: Homepage, https://raman.oxinst.com/
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3.10
Classifier: Operating System :: Microsoft :: Windows
Classifier: Intended Audience :: Science/Research
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: comtypes>=1.2.0
Dynamic: license-file

This package enables control of WITec microscopes over its COM interface (additonal license required) and opening of project files (wip/wid).

- Gives access to data acquisition functions
- Implements all classes of WITec's COM interface
- Offers ready-to-use modules for main measurement modes (Large Area Scan, Line Scan, Slow Series)
- Has modules for hardware control (motorized xy and z stage, spectrograph, laser, TrueSurface, polarization, turret)
- Gives access to video system (image acquisition, autofocus)
- Enables to save and create projects
- Can be extended by directly accessing needed parameters
- All modules are tested with versions down to WITec Control 5.0 (can be used even for older version but not all classes might work)
- Enables to open project files and access the data

# Documentation and examples

Basic information can be found using the Python's built-in help function.

## Quickstart

All available modules are implemented as property of the main class Control.

```
from WITecSDK import Control
WC = Control()
WC.SingleSpectrum.IntegrationTime

or

from WITecSDK import Project
WP = Project.OpenFile("Example.wip")
print(WP)
```

## Examples

Documented examples are delivered with WITec Control. Further information can be found in it's help. If you use an older version of WITec Control please contact the [WITec support team](https://raman.oxinst.com/contact).

# Contribution, feature requests and bug reports

If you want to share your own extensions or have feature wishes or bug reports please contact the [WITec support team](https://raman.oxinst.com/contact).

# Release Notes

## Changes in 2.0.5

- XYZPosition + XYPosition improved
- IncrementFileCounter property for ProjectCreatorSaver

## Changes in 2.0.4

- ProjectCreatorSaver improved
- SaveProject returns full path
- new property NextFile
- docstrings for several modules added

## Changes in 2.0.3

- Bug fixed: Exception when object is missing

## Changes in 2.0.2

- Please use the new main class Control instead of WITecControl
- WITecSDKClass and Create... methods show a deprecation warning
- modules for the Signal Stabilization added
- several bug fixes

## Changes in 2.0.1

- Introduces the Project class to open wip files
- Project supports all versions of wip and wid files including the trace information
- main class renamed to Control (WITecControl still works)
- SDK restructured with subpackages control and project
- old paths (i.e. WITecSDK.Modules) still working, but will be removed in the future
- new class for FilterWheel
- SilentSpectrum now independent from BeamPath (refer to new example)
- Additional idle states in BeamPath (i.e. SetIdleShutterOnly)
- XYAxes and ScanTable have MoveRelative methods now
- available methods of XYZPosition extended
- XYPosition inherits from XYZPostion
- in VideoControl the properties ObjectiveInformation and CalibrationData are no longer static

## Changes in 1.5.4

- Bug fixed: Spectrum class is losing one datapoint during conversion from ASCII

## Changes in 1.5.3

- Bug: no await for sleep in SilentSpectrum

## Changes in 1.5.2

- Bug: no await for sleep in WaitForWriteAccess

## Changes in 1.5.1

- SamplePostioner class extended with additional features
- ScanTable class extended with additional features
- Speed limit was missing in XYAxes class
- new parameter for timing mode and shutter control in Slow Time Series added
- SamplePositionerPostion renamed to XYPosition (old name is still working)

## Changes in 1.5.0

- main class renamed to WITecControl (WITecSDKClass still works)
- modules are now properties of the main class
- Create... methods are created dynamically for compatibility
- available parameters are now accessible by dot notation under comParameters (i.e. WITec.comParameters.UserParameters)
- Parameters have their type, path and if applicable their value as representation
- module for own coordinate system added

## Changes in 1.4.2

- module for EFMControl added
- ScanMode implemented for LineScan class
- version information in prompt when connecting
- Typo PGain corrected in AFM class
- correct range output in ValueOutOfRangeException

## Changes in 1.4.1

- Support for AFM added
- new modules AFM, DistanceCurve and ImageScanMultiPass
- new method in WITecSDKClass: WaitForWriteAccess
- bug in property Beta of ImagesScan fixed

## Changes in 1.4.0

- Support for pywin32 removed
- COM parameter classes now use properties
- COMParameters.GetParameter always returns the correct class
- COM operations will produce a ConnectionLostException in case WITec Control is not available
- AwaitSilentSpectrumAvailableBeamPath() in SilentSpectrum now waits 4 seconds for beampath change
- XYAxes has AwaitMoveToSoftwarePosBacklashComp which moves with Backlash compensation
- Wrong calculation of Laser power in combination with correction factor fixed, new property SelectedLaserPowerInFiber in LaserManager module

## Changes in 1.3.1

- Mask property for SpectralAutofocus
- setSpectralMask is deprecated and will be removed in the future
- Mask added to AutofocusSettings

## Changes in 1.3.0

- Image scan added
- Scan table (piezo stage) added

## Changes in 1.2.5

- Bug in Autofocus fixed
- Bug in WITecControlVersionTester fixed

## Changes in 1.2.4

- Spectral Stitching added
- WITecControlVersionTester reworked

## Changes in 1.2.3

- Bug in Polarization.py and Beampath.py fixed

## Changes in 1.2.2

- Readme fixed

## Changes in 1.2.1

- Bug in Polarization.py fixed

## Changes in 1.2.0

- New WITec Control 6.2 features implemented (for LineScan, LargeAreaScan, ActiveSequencer, TrueSurface)
- docstrings added
- compatibility down to WITec Control 5.0 added
- New class LaserPowerSeries
- New structure for Polarization class
- CalibrationLamp and AdjustmentSampleCoupler added to BeamPath
- LineScan has own Integration time and Accumulation property
- LaserManager gives the corrected laser power by default (old property removed)
- New property Unit for Spectrograph

## Changes in 1.1.2

- New property HideViewers for the ActiveSequencer
- New property WriteAccess in the COMClient replacing old implemantation
- New property ReadAccess for the COMClient and HasReadAccess for the main class
- Improved error handling in __del__ of COMClient

## Changes in 1.1.1

- Bug in ProjectCreatorSaver module corrected
- property ExtraDirectory renamed to SubDirectory (read-only) and method DefineSubDirectory()

## Changes in 1.1.0

- New class AutomatedCoupler attached to TopIllumination and VideoControl, if automated
- New classes inheriting from its main class to implement versiongreater61 features
- New class DetectorOutput for internal use
- __del__ removed from all modules
