Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 29 additions & 16 deletions Python/XA/xa_source/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,88 +7,101 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [1.3.0] - 2026-06-29

### Changed

- Internal native API improvements.
- Internal python API improvements.

## [1.2.1] - 2026-06-04

### Changed

- Resynchronize of wrapper python enumerations with those in the native API.

## [1.2.0] - 2026-06-02

### Added

- KST101 product API support (#10003).
- KST201 product API support (#10003).
- KST101 product API support.
- KST201 product API support.

## [1.1.11] - 2026-06-01

### Fixed

- In the native API, device with serial number unitialized in HW info is now discovered (#9926).
- In the native API, device with serial number uninitialized in HW info is now discovered.

## [1.1.10] - 2026-04-13

### Fixed

- In the native API, the conversion factor used to convert MicrostepsPerEncoderCount in StepperLoopParams is now correct (#9906).
- In the native API, the conversion factor used to convert MicrostepsPerEncoderCount in StepperLoopParams is now correct.

## [1.1.9] - 2026-04-10

### Fixed

- In the native API's StepperLoopParams, MicrostepsPerEncoderCount is now a signed 32-bit integer (previously unsigned) (#9906).
- In the native API's StepperLoopParams, MicrostepsPerEncoderCount is now a signed 32-bit integer (previously unsigned).

## [1.1.8] - 2026-04-10

### Changed

- Internal native API improvements (#9902).
- Internal native API improvements.

## [1.1.7] - 2026-04-08

### Fixed

- Removed deflection and velocity fields from the CurrentLoopParams structure (#9904).
- Removed deflection and velocity fields from the CurrentLoopParams structure.

## [1.1.6] - 2026-03-31

### Changed

- Added GitHub changelog URL to package metadata (#9903).
- Added GitHub changelog URL to package metadata.

## [1.1.5] - 2026-03-27

### Changed

- Internal native API improvements (#9899).
- Internal native API improvements.

## [1.1.4] - 2026-03-26

### Changed

- Internal native API improvements (#9895).
- Internal native API improvements.

## [1.1.3] - 2026-03-26

### Fixed

- Connected product information now correctly reported as "rotational - continuous" (rather than "rotational - fixed range") for FW103, FW6, FW12, HDR50 and NR360S stages (#9883).
- Connected product information now correctly reported as "rotational - continuous" (rather than "rotational - fixed range") for FW103, FW6, FW12, HDR50 and NR360S stages.

## [1.1.2] - 2026-03-20

### Added

- Added native API support for PDXC3 (#9879).
- Added native API support for PDXC3.

## [1.1.1] - 2026-03-03

### Changed

- Internal native API improvements (#9858).
- Internal native API improvements.

## [1.1.0] - 2026-02-19

### Added

- LTS product API support (#9851).
- KDC product API support (#9850).
- LTS product API support.
- KDC product API support.

## [1.0.0] - 2026-01-21

### Added

- Initial python wrapper API implementation (#9719, #9720).
- Initial python wrapper API implementation.
2 changes: 1 addition & 1 deletion Python/XA/xa_source/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ def get_tag(self):
author_email = "techsupport@thorlabs.com",
description = "Thorlabs XA Python SDK",
project_urls={
"Changelog": "https://github.com/Thorlabs/Motion_Control_Examples/blob/main/Python/XA/CHANGELOG.md"
"Changelog": "https://github.com/Thorlabs/Motion_Control_Examples/blob/main/Python/XA/xa_source/CHANGELOG.md"
},
long_description = read_me_content,
long_description_content_type="text/markdown",
Expand Down
20 changes: 7 additions & 13 deletions Python/XA/xa_source/src/thorlabs_xa/shared/c_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ class C_TLMC_CurrentLoopParams(Structure):
("integralLimit", c_uint16),
("integralDeadBand", c_uint16),
("feedForward", c_uint16),
("scalingFactor", c_float)
]


Expand Down Expand Up @@ -394,17 +395,6 @@ class C_TLMC_ProfileModeParams(Structure):
("reserved", c_int8 * 4)
]

class C_TLMC_PZ_IoTriggerParams(Structure):
_pack_ = 1
_fields_ = [
("numberOfPortsPerChannel", c_uint16),
("portNumber", c_uint16),
("portType", c_uint16),
("mode", c_uint16),
("polarity", c_uint16),
("triggerParameter1", c_int32),
("triggerParameter2", c_int32)
]

class C_TLMC_PZ_LnnxControlLoopParams(Structure):
_pack_ = 1
Expand Down Expand Up @@ -627,7 +617,7 @@ class C_TLMC_SettingItemChangedNotificationData(Structure):

class C_TLMC_StageAxisParams(Structure):
_pack_ = 1
_fields_ = [("typeId", c_uint16),
_fields_ = [("productId", c_uint16),
("axisId", c_uint16),
("partNumber", c_char * 16),
("serialNumber", c_uint32),
Expand All @@ -638,7 +628,11 @@ class C_TLMC_StageAxisParams(Structure):
("maxDeceleration", c_uint32),
("maxVelocity", c_uint32),
("gearBoxRatio", c_uint16),
("reserved", c_uint8 * 22)
("microSteps", c_uint16),
("positionScale", c_float),
("velocityScale", c_float),
("accelerationScale", c_float),
("reserved", c_uint8 * 8)
]


Expand Down
10 changes: 0 additions & 10 deletions Python/XA/xa_source/src/thorlabs_xa/shared/device_factory.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
from thorlabs_xa.implementations.device_feature_groups.kdc101_feature_group import Kdc101FeatureGroup
from thorlabs_xa.implementations.device_feature_groups.kpc101_feature_group import Kpc101FeatureGroup
from thorlabs_xa.implementations.device_feature_groups.kst201_feature_group import Kst201FeatureGroup
from thorlabs_xa.implementations.device_feature_groups.lnnx_feature_group import LnnxFeatureGroup
from thorlabs_xa.implementations.device_feature_groups.linear_translation_stage_feature_group import LinearTranslationStageFeatureGroup
from thorlabs_xa.implementations.device_feature_groups.lnnx_logical_channel_feature_group import LnnxLogicalChannelFeatureGroup

from thorlabs_xa.products.kdc101 import Kdc101
from thorlabs_xa.products.kpc101 import Kpc101
from thorlabs_xa.products.kst201 import Kst201
from thorlabs_xa.products.lnnx import Lnnx
from thorlabs_xa.products.linear_translation_stage import LinearTranslationStage
from thorlabs_xa.products.lnnx_logical_channel import LnnxLogicalChannel

from thorlabs_xa.native_sdks.native_functions import NativeFunctions

Expand All @@ -28,12 +24,6 @@ def create(self, device_handle: int, device_info: TLMC_DeviceInfo) -> Device:

# Note: It is expected that this will produce a pylance error until all device types are implemented
match device_info.device_type:
case TLMC_DeviceType.TLMC_DeviceType_LnnxBaseUnit:
feature_group = LnnxFeatureGroup(device_handle, self.native_functions)
return Lnnx(device_handle, device_info, feature_group, self.native_functions)
case TLMC_DeviceType.TLMC_DeviceType_LnnxLogicalChannel:
feature_group = LnnxLogicalChannelFeatureGroup(device_handle, self.native_functions)
return LnnxLogicalChannel(device_handle, device_info, feature_group, self.native_functions)
case TLMC_DeviceType.TLMC_DeviceType_Kdc101:
feature_group = Kdc101FeatureGroup(device_handle, self.native_functions)
return Kdc101(device_handle, device_info, feature_group, self.native_functions)
Expand Down
Loading