zaber-motion 7.12.0__py3-none-macosx_10_4_universal2.whl → 7.14.0__py3-none-macosx_10_4_universal2.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -104,6 +104,13 @@ class Axis:
104
104
  """
105
105
  return self.identity.axis_type
106
106
 
107
+ @property
108
+ def resolution(self) -> int:
109
+ """
110
+ The number of microsteps per full step for motion axes. Always equal to 0 for non-motion axes.
111
+ """
112
+ return self.identity.resolution
113
+
107
114
  @property
108
115
  def label(self) -> str:
109
116
  """
@@ -43,6 +43,11 @@ class AxisIdentity:
43
43
  The peripheral has hardware modifications.
44
44
  """
45
45
 
46
+ resolution: int
47
+ """
48
+ The number of microsteps per full step for motion axes. Always equal to 0 for non-motion axes.
49
+ """
50
+
46
51
  @staticmethod
47
52
  def zero_values() -> 'AxisIdentity':
48
53
  return AxisIdentity(
@@ -52,6 +57,7 @@ class AxisIdentity:
52
57
  is_peripheral=False,
53
58
  axis_type=next(first for first in AxisType),
54
59
  is_modified=False,
60
+ resolution=0,
55
61
  )
56
62
 
57
63
  @staticmethod
@@ -73,6 +79,7 @@ class AxisIdentity:
73
79
  'isPeripheral': bool(self.is_peripheral),
74
80
  'axisType': self.axis_type.value,
75
81
  'isModified': bool(self.is_modified),
82
+ 'resolution': int(self.resolution),
76
83
  }
77
84
 
78
85
  @staticmethod
@@ -84,6 +91,7 @@ class AxisIdentity:
84
91
  is_peripheral=data.get('isPeripheral'), # type: ignore
85
92
  axis_type=AxisType(data.get('axisType')), # type: ignore
86
93
  is_modified=data.get('isModified'), # type: ignore
94
+ resolution=data.get('resolution'), # type: ignore
87
95
  )
88
96
 
89
97
  def validate(self) -> None:
@@ -115,3 +123,12 @@ class AxisIdentity:
115
123
 
116
124
  if not isinstance(self.axis_type, AxisType):
117
125
  raise ValueError(f'Property "AxisType" of "AxisIdentity" is not an instance of "AxisType".')
126
+
127
+ if self.resolution is None:
128
+ raise ValueError(f'Property "Resolution" of "AxisIdentity" is None.')
129
+
130
+ if not isinstance(self.resolution, (int, float, decimal.Decimal)):
131
+ raise ValueError(f'Property "Resolution" of "AxisIdentity" is not a number.')
132
+
133
+ if int(self.resolution) != self.resolution:
134
+ raise ValueError(f'Property "Resolution" of "AxisIdentity" is not integer value.')
@@ -16,7 +16,7 @@ class OptionalMeasurementSequence:
16
16
 
17
17
  values: List[Optional[float]]
18
18
  """
19
- Sequence of values.
19
+ Sequence of optional values.
20
20
  """
21
21
 
22
22
  unit: Optional[UnitsAndLiterals] = None
@@ -42,7 +42,7 @@ class SimpleTuning:
42
42
 
43
43
  motor_inertia: Optional[float] = None
44
44
  """
45
- The mass of the carriage in kg.
45
+ The inertia of the motor in kg⋅m².
46
46
  """
47
47
 
48
48
  @staticmethod
@@ -210,6 +210,7 @@ from .string_array_response import StringArrayResponse as StringArrayResponse
210
210
  from .string_response import StringResponse as StringResponse
211
211
  from .test_event import TestEvent as TestEvent
212
212
  from .test_request import TestRequest as TestRequest
213
+ from .test_request_complex import TestRequestComplex as TestRequestComplex
213
214
  from .test_response import TestResponse as TestResponse
214
215
  from .test_response_long import TestResponseLong as TestResponseLong
215
216
  from .toggle_device_db_store_request import ToggleDeviceDbStoreRequest as ToggleDeviceDbStoreRequest
@@ -250,5 +251,6 @@ from .unknown_binary_response_event_wrapper import UnknownBinaryResponseEventWra
250
251
  from .unknown_response_event_wrapper import UnknownResponseEventWrapper as UnknownResponseEventWrapper
251
252
  from .wait_to_clear_warnings_request import WaitToClearWarningsRequest as WaitToClearWarningsRequest
252
253
  from .wait_to_respond_request import WaitToRespondRequest as WaitToRespondRequest
254
+ from .wdi_generic_float_request import WdiGenericFloatRequest as WdiGenericFloatRequest
253
255
  from .wdi_generic_request import WdiGenericRequest as WdiGenericRequest
254
256
  from .wdi_get_status_response import WdiGetStatusResponse as WdiGetStatusResponse
@@ -0,0 +1,57 @@
1
+ # This file is generated. Do not modify by hand.
2
+ # pylint: disable=line-too-long, unused-argument, f-string-without-interpolation, too-many-branches, too-many-statements, unnecessary-pass
3
+ from dataclasses import dataclass, field
4
+ from typing import Any, Dict, List
5
+ import decimal
6
+ from collections.abc import Iterable
7
+ import zaber_bson
8
+
9
+
10
+ @dataclass
11
+ class TestRequestComplex:
12
+
13
+ int_array: List[int] = field(default_factory=list)
14
+
15
+ @staticmethod
16
+ def zero_values() -> 'TestRequestComplex':
17
+ return TestRequestComplex(
18
+ int_array=[],
19
+ )
20
+
21
+ @staticmethod
22
+ def from_binary(data_bytes: bytes) -> 'TestRequestComplex':
23
+ """" Deserialize a binary representation of this class. """
24
+ data = zaber_bson.loads(data_bytes) # type: Dict[str, Any]
25
+ return TestRequestComplex.from_dict(data)
26
+
27
+ def to_binary(self) -> bytes:
28
+ """" Serialize this class to a binary representation. """
29
+ self.validate()
30
+ return zaber_bson.dumps(self.to_dict()) # type: ignore
31
+
32
+ def to_dict(self) -> Dict[str, Any]:
33
+ return {
34
+ 'intArray': [int(item) for item in self.int_array] if self.int_array is not None else [],
35
+ }
36
+
37
+ @staticmethod
38
+ def from_dict(data: Dict[str, Any]) -> 'TestRequestComplex':
39
+ return TestRequestComplex(
40
+ int_array=data.get('intArray'), # type: ignore
41
+ )
42
+
43
+ def validate(self) -> None:
44
+ """" Validates the properties of the instance. """
45
+ if self.int_array is not None:
46
+ if not isinstance(self.int_array, Iterable):
47
+ raise ValueError('Property "IntArray" of "TestRequestComplex" is not iterable.')
48
+
49
+ for i, int_array_item in enumerate(self.int_array):
50
+ if int_array_item is None:
51
+ raise ValueError(f'Item {i} in property "IntArray" of "TestRequestComplex" is None.')
52
+
53
+ if not isinstance(int_array_item, (int, float, decimal.Decimal)):
54
+ raise ValueError(f'Item {i} in property "IntArray" of "TestRequestComplex" is not a number.')
55
+
56
+ if int(int_array_item) != int_array_item:
57
+ raise ValueError(f'Item {i} in property "IntArray" of "TestRequestComplex" is not integer value.')
@@ -0,0 +1,119 @@
1
+ # This file is generated. Do not modify by hand.
2
+ # pylint: disable=line-too-long, unused-argument, f-string-without-interpolation, too-many-branches, too-many-statements, unnecessary-pass
3
+ from dataclasses import dataclass, field
4
+ from typing import Any, Dict, List
5
+ import decimal
6
+ from collections.abc import Iterable
7
+ import zaber_bson
8
+
9
+
10
+ @dataclass
11
+ class WdiGenericFloatRequest:
12
+
13
+ interface_id: int = 0
14
+
15
+ register_id: int = 0
16
+
17
+ count: int = 0
18
+
19
+ offset: int = 0
20
+
21
+ register_bank: str = ""
22
+
23
+ data: List[float] = field(default_factory=list)
24
+
25
+ @staticmethod
26
+ def zero_values() -> 'WdiGenericFloatRequest':
27
+ return WdiGenericFloatRequest(
28
+ interface_id=0,
29
+ register_id=0,
30
+ count=0,
31
+ offset=0,
32
+ register_bank="",
33
+ data=[],
34
+ )
35
+
36
+ @staticmethod
37
+ def from_binary(data_bytes: bytes) -> 'WdiGenericFloatRequest':
38
+ """" Deserialize a binary representation of this class. """
39
+ data = zaber_bson.loads(data_bytes) # type: Dict[str, Any]
40
+ return WdiGenericFloatRequest.from_dict(data)
41
+
42
+ def to_binary(self) -> bytes:
43
+ """" Serialize this class to a binary representation. """
44
+ self.validate()
45
+ return zaber_bson.dumps(self.to_dict()) # type: ignore
46
+
47
+ def to_dict(self) -> Dict[str, Any]:
48
+ return {
49
+ 'interfaceId': int(self.interface_id),
50
+ 'registerId': int(self.register_id),
51
+ 'count': int(self.count),
52
+ 'offset': int(self.offset),
53
+ 'registerBank': str(self.register_bank or ''),
54
+ 'data': [float(item) for item in self.data] if self.data is not None else [],
55
+ }
56
+
57
+ @staticmethod
58
+ def from_dict(data: Dict[str, Any]) -> 'WdiGenericFloatRequest':
59
+ return WdiGenericFloatRequest(
60
+ interface_id=data.get('interfaceId'), # type: ignore
61
+ register_id=data.get('registerId'), # type: ignore
62
+ count=data.get('count'), # type: ignore
63
+ offset=data.get('offset'), # type: ignore
64
+ register_bank=data.get('registerBank'), # type: ignore
65
+ data=data.get('data'), # type: ignore
66
+ )
67
+
68
+ def validate(self) -> None:
69
+ """" Validates the properties of the instance. """
70
+ if self.interface_id is None:
71
+ raise ValueError(f'Property "InterfaceId" of "WdiGenericFloatRequest" is None.')
72
+
73
+ if not isinstance(self.interface_id, (int, float, decimal.Decimal)):
74
+ raise ValueError(f'Property "InterfaceId" of "WdiGenericFloatRequest" is not a number.')
75
+
76
+ if int(self.interface_id) != self.interface_id:
77
+ raise ValueError(f'Property "InterfaceId" of "WdiGenericFloatRequest" is not integer value.')
78
+
79
+ if self.register_id is None:
80
+ raise ValueError(f'Property "RegisterId" of "WdiGenericFloatRequest" is None.')
81
+
82
+ if not isinstance(self.register_id, (int, float, decimal.Decimal)):
83
+ raise ValueError(f'Property "RegisterId" of "WdiGenericFloatRequest" is not a number.')
84
+
85
+ if int(self.register_id) != self.register_id:
86
+ raise ValueError(f'Property "RegisterId" of "WdiGenericFloatRequest" is not integer value.')
87
+
88
+ if self.count is None:
89
+ raise ValueError(f'Property "Count" of "WdiGenericFloatRequest" is None.')
90
+
91
+ if not isinstance(self.count, (int, float, decimal.Decimal)):
92
+ raise ValueError(f'Property "Count" of "WdiGenericFloatRequest" is not a number.')
93
+
94
+ if int(self.count) != self.count:
95
+ raise ValueError(f'Property "Count" of "WdiGenericFloatRequest" is not integer value.')
96
+
97
+ if self.offset is None:
98
+ raise ValueError(f'Property "Offset" of "WdiGenericFloatRequest" is None.')
99
+
100
+ if not isinstance(self.offset, (int, float, decimal.Decimal)):
101
+ raise ValueError(f'Property "Offset" of "WdiGenericFloatRequest" is not a number.')
102
+
103
+ if int(self.offset) != self.offset:
104
+ raise ValueError(f'Property "Offset" of "WdiGenericFloatRequest" is not integer value.')
105
+
106
+ if self.register_bank is not None:
107
+ if not isinstance(self.register_bank, str):
108
+ raise ValueError(f'Property "RegisterBank" of "WdiGenericFloatRequest" is not a string.')
109
+
110
+ if self.data is not None:
111
+ if not isinstance(self.data, Iterable):
112
+ raise ValueError('Property "Data" of "WdiGenericFloatRequest" is not iterable.')
113
+
114
+ for i, data_item in enumerate(self.data):
115
+ if data_item is None:
116
+ raise ValueError(f'Item {i} in property "Data" of "WdiGenericFloatRequest" is None.')
117
+
118
+ if not isinstance(data_item, (int, float, decimal.Decimal)):
119
+ raise ValueError(f'Item {i} in property "Data" of "WdiGenericFloatRequest" is not a number.')
zaber_motion/library.py CHANGED
@@ -171,7 +171,7 @@ class Library:
171
171
  """
172
172
  request = dto.CheckVersionRequest(
173
173
  host="py",
174
- version="7.12.0",
174
+ version="7.14.0",
175
175
  )
176
176
  call_sync("library/check_version", request)
177
177
 
@@ -9,6 +9,7 @@ from ..exceptions.motion_lib_exception import MotionLibException
9
9
 
10
10
  from ..dto import requests as dto
11
11
  from ..dto.microscopy.wdi_autofocus_provider_status import WdiAutofocusProviderStatus
12
+ from ..dto.firmware_version import FirmwareVersion
12
13
 
13
14
 
14
15
  class WdiAutofocusProvider:
@@ -28,6 +29,13 @@ class WdiAutofocusProvider:
28
29
  """
29
30
  return self._provider_id
30
31
 
32
+ @property
33
+ def firmware_version(self) -> FirmwareVersion:
34
+ """
35
+ The firmware version of the connected autofocus.
36
+ """
37
+ return self.__retrieve_firmware_version()
38
+
31
39
  def __init__(self, provider_id: int):
32
40
  self._provider_id: int = provider_id
33
41
 
@@ -116,6 +124,24 @@ class WdiAutofocusProvider:
116
124
  )
117
125
  call_sync("wdi/free", request)
118
126
 
127
+ def __retrieve_firmware_version(
128
+ self
129
+ ) -> FirmwareVersion:
130
+ """
131
+ Returns FW version.
132
+
133
+ Returns:
134
+ Firmware version.
135
+ """
136
+ request = dto.InterfaceEmptyRequest(
137
+ interface_id=self.provider_id,
138
+ )
139
+ response = call_sync(
140
+ "wdi/get_firmware_version",
141
+ request,
142
+ FirmwareVersion.from_binary)
143
+ return response
144
+
119
145
  def generic_read(
120
146
  self,
121
147
  register_id: int,
@@ -242,6 +268,120 @@ class WdiAutofocusProvider:
242
268
  )
243
269
  await call_async("wdi/write", request)
244
270
 
271
+ def generic_read_float(
272
+ self,
273
+ register_id: int,
274
+ count: int = 1,
275
+ offset: int = 0,
276
+ register_bank: str = "U"
277
+ ) -> List[float]:
278
+ """
279
+ Generic read operation.
280
+
281
+ Args:
282
+ register_id: Register address to read from.
283
+ count: Number of values to read (defaults to 1).
284
+ offset: Offset within the register (defaults to 0).
285
+ register_bank: Register bank letter (defaults to U for user bank).
286
+
287
+ Returns:
288
+ Array of floats read from the device.
289
+ """
290
+ request = dto.WdiGenericFloatRequest(
291
+ interface_id=self.provider_id,
292
+ register_id=register_id,
293
+ count=count,
294
+ offset=offset,
295
+ register_bank=register_bank,
296
+ )
297
+ response = call(
298
+ "wdi/read_float",
299
+ request,
300
+ dto.DoubleArrayResponse.from_binary)
301
+ return response.values
302
+
303
+ async def generic_read_float_async(
304
+ self,
305
+ register_id: int,
306
+ count: int = 1,
307
+ offset: int = 0,
308
+ register_bank: str = "U"
309
+ ) -> List[float]:
310
+ """
311
+ Generic read operation.
312
+
313
+ Args:
314
+ register_id: Register address to read from.
315
+ count: Number of values to read (defaults to 1).
316
+ offset: Offset within the register (defaults to 0).
317
+ register_bank: Register bank letter (defaults to U for user bank).
318
+
319
+ Returns:
320
+ Array of floats read from the device.
321
+ """
322
+ request = dto.WdiGenericFloatRequest(
323
+ interface_id=self.provider_id,
324
+ register_id=register_id,
325
+ count=count,
326
+ offset=offset,
327
+ register_bank=register_bank,
328
+ )
329
+ response = await call_async(
330
+ "wdi/read_float",
331
+ request,
332
+ dto.DoubleArrayResponse.from_binary)
333
+ return response.values
334
+
335
+ def generic_write_float(
336
+ self,
337
+ register_id: int,
338
+ data: List[float] = [],
339
+ offset: int = 0,
340
+ register_bank: str = "U"
341
+ ) -> None:
342
+ """
343
+ Generic write operation.
344
+
345
+ Args:
346
+ register_id: Register address to write to.
347
+ data: Array of values to write to the register. Empty array is allowed.
348
+ offset: Offset within the register (defaults to 0).
349
+ register_bank: Register bank letter (defaults to U for user bank).
350
+ """
351
+ request = dto.WdiGenericFloatRequest(
352
+ interface_id=self.provider_id,
353
+ register_id=register_id,
354
+ data=data,
355
+ offset=offset,
356
+ register_bank=register_bank,
357
+ )
358
+ call("wdi/write_float", request)
359
+
360
+ async def generic_write_float_async(
361
+ self,
362
+ register_id: int,
363
+ data: List[float] = [],
364
+ offset: int = 0,
365
+ register_bank: str = "U"
366
+ ) -> None:
367
+ """
368
+ Generic write operation.
369
+
370
+ Args:
371
+ register_id: Register address to write to.
372
+ data: Array of values to write to the register. Empty array is allowed.
373
+ offset: Offset within the register (defaults to 0).
374
+ register_bank: Register bank letter (defaults to U for user bank).
375
+ """
376
+ request = dto.WdiGenericFloatRequest(
377
+ interface_id=self.provider_id,
378
+ register_id=register_id,
379
+ data=data,
380
+ offset=offset,
381
+ register_bank=register_bank,
382
+ )
383
+ await call_async("wdi/write_float", request)
384
+
245
385
  def enable_laser(
246
386
  self
247
387
  ) -> None:
zaber_motion/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "7.12.0"
1
+ __version__ = "7.14.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zaber_motion
3
- Version: 7.12.0
3
+ Version: 7.14.0
4
4
  Summary: An official library for communicating with Zaber devices.
5
5
  Author-email: "Zaber Technologies Inc." <contact@zaber.com>
6
6
  License: The MIT License (MIT)
@@ -9,16 +9,16 @@ zaber_motion/call.py,sha256=lH72duqcNvzh3Mae5JYZ5kIsyMRftSxSCgmWk9TjYik,5206
9
9
  zaber_motion/convert_exception.py,sha256=TZrdGkmaTR7QOAwoxIQ9sOkHtuVg1bVs-sxbEDn22V8,8487
10
10
  zaber_motion/dto_object.py,sha256=3gJU6AQCjiZcx2o7p2C9VTqw9apOM0i21ssmAM-VmEY,359
11
11
  zaber_motion/events.py,sha256=3Ebp8zEjlRSjKG-b3WVrncZ6juHlKJTNeL-oeYIGpuk,3398
12
- zaber_motion/library.py,sha256=cxJ49Rrt7g_3CitoLQxdB9kfJq6zBBkkHuQO96Ahx7o,5497
12
+ zaber_motion/library.py,sha256=Uc90w53L3GbE6UHl_-_Av4J1d56SF2Bxj4JS4WRXpXo,5497
13
13
  zaber_motion/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  zaber_motion/serialization.py,sha256=Fm53Bd_oAZ7yaTjtBss23Dps3ynWv8wUJT5JVQyqKVs,987
15
15
  zaber_motion/tools.py,sha256=O9IGJNGaaG7Sz2jGkexdJfgyJ5L4vsLXJKFUhZlKlCI,2213
16
16
  zaber_motion/unit_table.py,sha256=FV-6VegAm499BJBJ4tdXgkP2Hl2h-fIlLJWkMrHlPAM,2497
17
17
  zaber_motion/units.py,sha256=RCkeTZwhZFJg2hffBJFweAhDHLHZOkLUPel0e1Wzi3g,10853
18
- zaber_motion/version.py,sha256=epZfTrsMWfpY2no1bS7o-MeQ23JncNk7yI5RH-5Pqlg,23
18
+ zaber_motion/version.py,sha256=HyLrDM036NFqqqTSta893ALzgsTY2LDDQ1vUG5gp5B8,23
19
19
  zaber_motion/ascii/__init__.py,sha256=hB91yrB-iTGuk270V97TQK09fMiMUwL3FEIKhLqMJfc,4848
20
20
  zaber_motion/ascii/all_axes.py,sha256=ZdeufI6s3Yxtf9S0FbCZQNklKqFXIEEEbLE2-ITuASA,10793
21
- zaber_motion/ascii/axis.py,sha256=nd1gy84lnKxaEktTEtBvCF6DVsfdfds6dflQJ1P9XCI,57670
21
+ zaber_motion/ascii/axis.py,sha256=2TBLd2Mwa1YHOy1bSA4HAbPi9V9XtZIzGgFazYR7E5U,57885
22
22
  zaber_motion/ascii/axis_group.py,sha256=dmITE1fLE919oIWnuf-ft-sM2-9CN0dZ13j3NUGqpyU,12939
23
23
  zaber_motion/ascii/axis_settings.py,sha256=FAIHOOc4EgYjfNuxoJ43nPVmodJx9UOFu70QbG60B5w,23501
24
24
  zaber_motion/ascii/connection.py,sha256=aaI2d5IIL1XYdWR-L7E-GscQHKz3O8h107um9XB31tk,38497
@@ -60,7 +60,7 @@ zaber_motion/dto/named_parameter.py,sha256=SYqr3ESG7k7pzIb7YbqI44VCD9QfL-HhMxum5
60
60
  zaber_motion/dto/rotation_direction.py,sha256=9BiDpSUbRB1yXqiJiaCi05Bkg5rWVZYv78wSZ2JDmC8,214
61
61
  zaber_motion/dto/ascii/__init__.py,sha256=epPPuy1Uxd5dnrft1_OYh-K-mT9oQg1lLYoWj1SXySY,3048
62
62
  zaber_motion/dto/ascii/alert_event.py,sha256=ov3oTWjcru4UoYvPSiXuJaCvrOvS31DHSK96_JEaPJM,3834
63
- zaber_motion/dto/ascii/axis_identity.py,sha256=EZ-E8XCvfDRfcq8s27nHGSQHHvaxEMsL0rk46Mrt7pk,4268
63
+ zaber_motion/dto/ascii/axis_identity.py,sha256=uMjN_IrUfAhos7U_fW6-VJcQZ5h5yXXd-7SCQbmgcGA,4974
64
64
  zaber_motion/dto/ascii/axis_type.py,sha256=bMG3ienP4BKf-b3hhZW2f_kYAyRP2_lYVbZdstqmUwA,237
65
65
  zaber_motion/dto/ascii/can_set_state_axis_response.py,sha256=-6zTOvCDXDYmeAlmZ4CCc5nfKGimtHWcb3AjSuQFhyc,2506
66
66
  zaber_motion/dto/ascii/can_set_state_device_response.py,sha256=aDHSsDN6jNBhFCVCM2j3eX5UfK2fPAZ3Bxm_GkKG0XM,3142
@@ -77,7 +77,7 @@ zaber_motion/dto/ascii/io_port_type.py,sha256=7Hp8M5__xslDIFKTZ_zxz0COeYEPcH2Drb
77
77
  zaber_motion/dto/ascii/lockstep_axes.py,sha256=l7wxEnMVYopmcrlzzvZNFW-nzjVI6iPHsLmIiWYogIU,3591
78
78
  zaber_motion/dto/ascii/measurement_sequence.py,sha256=Zffask0fxnkdd84Q0yPG0TWAPdxD-ufquTGXBvCfUGA,2719
79
79
  zaber_motion/dto/ascii/message_type.py,sha256=64UZk6C4V83pGramwcBllmfejUojXb_M2uf3RIzihws,322
80
- zaber_motion/dto/ascii/optional_measurement_sequence.py,sha256=L-9B4gGsov4CID2tCqro5lhN8FxdPfvsCfFe7bhNLuY,2754
80
+ zaber_motion/dto/ascii/optional_measurement_sequence.py,sha256=j6lhuBuX3Frkj-rrhELa4ftx3QN1rUoYWroBzPobkQs,2763
81
81
  zaber_motion/dto/ascii/oscilloscope_capture_properties.py,sha256=nKAg228CeqzyZ-rwNx9X7sWsTHS_opOdJUNE6TsWtEo,4531
82
82
  zaber_motion/dto/ascii/oscilloscope_data_source.py,sha256=gCM4V8Z3-_rtg4oD6qnTtifCE-NYfVzxNlGvSAPXGgg,204
83
83
  zaber_motion/dto/ascii/paramset_info.py,sha256=P5rc7dmBfUHxo1cFke8E_wGYxJ__EM3LwRh4VS6zR6E,3232
@@ -92,7 +92,7 @@ zaber_motion/dto/ascii/servo_tuning_param.py,sha256=C8HBHWTUvwJbCYmmW8eaBmonbmyG
92
92
  zaber_motion/dto/ascii/servo_tuning_paramset.py,sha256=pyWYfSWuMZY6h3nOVcPb-F2gYX9i3bMcC867PGh2ahw,320
93
93
  zaber_motion/dto/ascii/set_state_axis_response.py,sha256=DuE8olWJQAmP2OOGXijm4RCpEo26kBCUBeJrC3b3k4E,2820
94
94
  zaber_motion/dto/ascii/set_state_device_response.py,sha256=0xcaQuqpRfxO9snWEt3K7eA0PcCwwygV0gBX-RLo17U,3391
95
- zaber_motion/dto/ascii/simple_tuning.py,sha256=xHt91l5MWaRPg-cP0gT7nUEwiN-cdZLp01dnhDcGTAM,4454
95
+ zaber_motion/dto/ascii/simple_tuning.py,sha256=yPpeNTRuv-_OWu8kT_nmqZchzWz-x4R-kqbS_ky6n5E,4460
96
96
  zaber_motion/dto/ascii/simple_tuning_param_definition.py,sha256=Ntlg9UYaAT54u4TJUEZaAzh5WFx5oqX3D2uJO9oVHms,3571
97
97
  zaber_motion/dto/ascii/stream_axis_definition.py,sha256=wllDMO25NOWTY1pO8qZg87pJu-zpMFTbZ6MEctu9Qq4,2551
98
98
  zaber_motion/dto/ascii/stream_axis_type.py,sha256=9BlhYLmVWLW3SET-0eeCEc8wzdbjgCsFRwV-KWoDCIQ,189
@@ -153,7 +153,7 @@ zaber_motion/dto/product/__init__.py,sha256=M7m313pDn0mT99u1qPhrmit0N3wN3D3ylnIQ
153
153
  zaber_motion/dto/product/process_controller_mode.py,sha256=JSfKRAOKGWBXpKbUAvYy3IDGtWyRoz4c5sXKXpiHu_4,228
154
154
  zaber_motion/dto/product/process_controller_source.py,sha256=yz3yRp5AZP71bYB7ivY9q3ZuGIZkJ7hxt13G-XpPFyc,2577
155
155
  zaber_motion/dto/product/process_controller_source_sensor.py,sha256=z2nfX4jq79cAmnbr7Wz9GKKa1CoSZfEFakHgqfKpJoM,217
156
- zaber_motion/dto/requests/__init__.py,sha256=CmIL7bEKTyXAykNsi0WSSgiI5K53xuIXdBqdNEHIlcY,23736
156
+ zaber_motion/dto/requests/__init__.py,sha256=Gcmz80cUAQSL_iPvIq4B7DeKt20xpaUsw9hnSrvUwUc,23899
157
157
  zaber_motion/dto/requests/alert_event_wrapper.py,sha256=Mev5LIbaksLReCI3VrlNA3_B7xWjQU5mcm0sLjRmzt4,3053
158
158
  zaber_motion/dto/requests/autofocus_focus_request.py,sha256=3rZ5-s6dc6BV_DukDa-Fi2BL30QKAOd-K_9dP-QWOZ0,5272
159
159
  zaber_motion/dto/requests/autofocus_get_objective_params_request.py,sha256=0E0X4PuQVJ8Yt3LZzUC-nueGFQ-mEMpcSRUzf5ta6mw,5351
@@ -365,6 +365,7 @@ zaber_motion/dto/requests/string_array_response.py,sha256=EoaFE3Edo7dB3ykVBdHnb_
365
365
  zaber_motion/dto/requests/string_response.py,sha256=3kNo1YPUurGKbz31QQMCNlTR1QyxIyyxiaVt7W9iy1g,1453
366
366
  zaber_motion/dto/requests/test_event.py,sha256=ZqSphe2DuCTWbBeMQ-t1ZHvevbjAtXshZO08SaJ9vOA,1404
367
367
  zaber_motion/dto/requests/test_request.py,sha256=TacA24EGKJy1njQ3mJ-FuSpsHsuUl88Pm8C13wwaF7c,1882
368
+ zaber_motion/dto/requests/test_request_complex.py,sha256=TxGiKbksDfdP-erUcXhYYAYmN5WDaFhGjkp70LJDtxw,2258
368
369
  zaber_motion/dto/requests/test_response.py,sha256=5kMhxHT_vGsKMO-kTgLSEJ6DXMzml9ZX_zXOpj84Aw0,1470
369
370
  zaber_motion/dto/requests/test_response_long.py,sha256=qkYHD-DoSzjGfKfasRO3yZT8Uaml5YQ3WX3u9fisTWw,1932
370
371
  zaber_motion/dto/requests/toggle_device_db_store_request.py,sha256=nJJEYbJ6e2kccCLMmHbsxXu5qflFHwEFqW9vLV8CJEA,1854
@@ -405,6 +406,7 @@ zaber_motion/dto/requests/unknown_binary_response_event_wrapper.py,sha256=WJiXP3
405
406
  zaber_motion/dto/requests/unknown_response_event_wrapper.py,sha256=CaqDtEcI39nXkELeSD__T2WLB1RP7hgKGErTEzJJxDc,3401
406
407
  zaber_motion/dto/requests/wait_to_clear_warnings_request.py,sha256=0V0RDid4I6QjjnTeEHvh7s6RlDhBwEsR4IhHzO039AA,4348
407
408
  zaber_motion/dto/requests/wait_to_respond_request.py,sha256=pWObRotk-p2vV2RqrTxlFHXwFrjCDxYnU2ejdEhAJdw,2839
409
+ zaber_motion/dto/requests/wdi_generic_float_request.py,sha256=QIJFKS-PfVE3lrLr0shqMxas4OevgiQ13zGCCDTF0HE,4853
408
410
  zaber_motion/dto/requests/wdi_generic_request.py,sha256=Lcv859aSxWz3oiVzZNPLYqtihn-DCU8wJeNe9fwqpK8,5429
409
411
  zaber_motion/dto/requests/wdi_get_status_response.py,sha256=z3uWQm2B3ILVtdouXCFiAL3oR9DLq4TbsmdXuPBeics,1921
410
412
  zaber_motion/exceptions/__init__.py,sha256=x3XeKreBFjJ3DR7LAoQ_Iw0eNWVB0FFJUDDDt-BmvwI,8726
@@ -482,13 +484,13 @@ zaber_motion/microscopy/illuminator.py,sha256=1_Rwc9oQp82MzqbACbRMGHWZvzhfHyvUbi
482
484
  zaber_motion/microscopy/illuminator_channel.py,sha256=8qOMB_X17wGB5JYYhumcy7VtGCeE9iGb4SZKOT_VJtE,20514
483
485
  zaber_motion/microscopy/microscope.py,sha256=NtjCkfhTZsiBvF2a7GDbQnx1volvmyelhVBdMbZuSx4,9781
484
486
  zaber_motion/microscopy/objective_changer.py,sha256=sgz6XmM75wOxmyLrM0tfwH2ek4VoGvaX0K53azMVCjM,13557
485
- zaber_motion/microscopy/wdi_autofocus_provider.py,sha256=fAMVVlfzpB0IpnDikj_sWFbQ5eNCSAJ_jX1ky8FXgtg,11495
487
+ zaber_motion/microscopy/wdi_autofocus_provider.py,sha256=tEUG0Lt3bfX2SNVESqYKJlpWXHikn09qOUXLdvMbY7I,15814
486
488
  zaber_motion/product/__init__.py,sha256=lno0C-gLBsHNPGnjp6bbXHX0cEk27cA8uFjq5vzmE9Q,531
487
489
  zaber_motion/product/process.py,sha256=RGDxS_kyb-66RJ5bWmRtamp0zARPigcwN-zVcVtl7MQ,27527
488
490
  zaber_motion/product/process_controller.py,sha256=RQ1rXrdvslqB-3UIXLfLD3D5vfr1xfT8B5jOmTXf-V0,4193
489
- zaber_motion_bindings/zaber-motion-core-darwin-uni.dylib,sha256=03nUnL8k1qE3TTQghEvNQrj9-ZYU8kLGnTBCK2NnZxg,30196898
490
- zaber_motion-7.12.0.dist-info/LICENSE.txt,sha256=xNj9QcKqsI3WK5EBPeYbQAiDcnVe4xmIpCy65NYNVhA,109244
491
- zaber_motion-7.12.0.dist-info/METADATA,sha256=0ufX2kF0Z2t-j_3gNEccTo0-mhOBfiKPFHt2XOT93I0,127666
492
- zaber_motion-7.12.0.dist-info/WHEEL,sha256=XsmEfKMdB2yReC9plMyXBxhtkQEg2VDVwHfJppE9llo,110
493
- zaber_motion-7.12.0.dist-info/top_level.txt,sha256=ypgkPvPad6Oge50CT6unnvxCEliKUB6olL6CUUER1SA,51
494
- zaber_motion-7.12.0.dist-info/RECORD,,
491
+ zaber_motion_bindings/zaber-motion-core-darwin-uni.dylib,sha256=CBaVklNmL5R9g_7aML2ON5ceYB4Tt8d8Fbh1ROiKPNk,30262946
492
+ zaber_motion-7.14.0.dist-info/LICENSE.txt,sha256=xNj9QcKqsI3WK5EBPeYbQAiDcnVe4xmIpCy65NYNVhA,109244
493
+ zaber_motion-7.14.0.dist-info/METADATA,sha256=1Ht7tgihkP07RCMGsfFIDbUccOOFf6PCHwSUPqVWebA,127666
494
+ zaber_motion-7.14.0.dist-info/WHEEL,sha256=XsmEfKMdB2yReC9plMyXBxhtkQEg2VDVwHfJppE9llo,110
495
+ zaber_motion-7.14.0.dist-info/top_level.txt,sha256=ypgkPvPad6Oge50CT6unnvxCEliKUB6olL6CUUER1SA,51
496
+ zaber_motion-7.14.0.dist-info/RECORD,,