yostlabs 2025.2.10__tar.gz → 2025.2.17__tar.gz
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.
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/PKG-INFO +1 -1
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/pyproject.toml +1 -1
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/src/yostlabs/tss3/api.py +13 -3
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/src/yostlabs/tss3/utils/streaming.py +18 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/.gitignore +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/Examples/embedded_2024_dec_20.xml +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/Examples/example_commands.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/Examples/example_component_specific_settings_and_commands.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/Examples/example_firmware_upload.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/Examples/example_parsing_stored_binary.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/Examples/example_read_settings.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/Examples/example_streaming.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/Examples/example_streaming_manager.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/Examples/example_write_settings.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/LICENSE +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/README.md +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/src/yostlabs/__init__.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/src/yostlabs/communication/__init__.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/src/yostlabs/communication/base.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/src/yostlabs/communication/serial.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/src/yostlabs/math/__init__.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/src/yostlabs/math/quaternion.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/src/yostlabs/math/vector.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/src/yostlabs/tss3/__init__.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/src/yostlabs/tss3/consts.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/src/yostlabs/tss3/eepts.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/src/yostlabs/tss3/utils/__init__.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/src/yostlabs/tss3/utils/calibration.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/src/yostlabs/tss3/utils/parser.py +0 -0
- {yostlabs-2025.2.10 → yostlabs-2025.2.17}/src/yostlabs/tss3/utils/version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: yostlabs
|
|
3
|
-
Version: 2025.2.
|
|
3
|
+
Version: 2025.2.17
|
|
4
4
|
Summary: Python resources and API for 3Space sensors from Yost Labs Inc.
|
|
5
5
|
Project-URL: Homepage, https://yostlabs.com/
|
|
6
6
|
Project-URL: Repository, https://github.com/YostLabs/3SpacePythonPackage/tree/main
|
|
@@ -5,7 +5,7 @@ build-backend = "hatchling.build"
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "yostlabs"
|
|
7
7
|
#If uploading again on the same day, add a fourth number
|
|
8
|
-
version = "2025.02.
|
|
8
|
+
version = "2025.02.17"
|
|
9
9
|
authors = [
|
|
10
10
|
{ name="Yost Labs Inc.", email="techsupport@yostlabs.com" },
|
|
11
11
|
{ name="Andy Riedlinger", email="techsupport@yostlabs.com" },
|
|
@@ -800,7 +800,16 @@ class ThreespaceSensor:
|
|
|
800
800
|
self.log(f"Err setting {cmd}: {err=} {num_successes=}")
|
|
801
801
|
return err, num_successes
|
|
802
802
|
|
|
803
|
-
def get_settings(self, *args: str) -> dict[str, str] | str:
|
|
803
|
+
def get_settings(self, *args: str, format="Mixed") -> dict[str, str] | str:
|
|
804
|
+
"""
|
|
805
|
+
Gets the values for all requested settings. Settings are request by their string name. The result will be
|
|
806
|
+
the string response to that setting.
|
|
807
|
+
|
|
808
|
+
Params
|
|
809
|
+
-----
|
|
810
|
+
*args : Any number of string keys
|
|
811
|
+
format : "Mixed" (Dictionary if multiple settings requested, else just the response string) or "Dict" (Always a dictionary even if only one key)
|
|
812
|
+
"""
|
|
804
813
|
self.check_dirty()
|
|
805
814
|
#Build and send the cmd
|
|
806
815
|
params = list(args)
|
|
@@ -837,7 +846,7 @@ class ThreespaceSensor:
|
|
|
837
846
|
self.log("Failed to parse get value:", i, v, len(v))
|
|
838
847
|
|
|
839
848
|
#Format response
|
|
840
|
-
if len(response_dict) == 1:
|
|
849
|
+
if len(response_dict) == 1 and format == "Mixed":
|
|
841
850
|
return list(response_dict.values())[0]
|
|
842
851
|
return response_dict
|
|
843
852
|
|
|
@@ -1228,7 +1237,8 @@ class ThreespaceSensor:
|
|
|
1228
1237
|
def __fileStartStream(self) -> ThreespaceCmdResult[int]:
|
|
1229
1238
|
result = self.execute_command(self.__get_command("fileStartStream"))
|
|
1230
1239
|
self.file_stream_length = result.data
|
|
1231
|
-
self.
|
|
1240
|
+
if self.file_stream_length > 0:
|
|
1241
|
+
self.is_file_streaming = True
|
|
1232
1242
|
return result
|
|
1233
1243
|
|
|
1234
1244
|
def fileStopStream(self) -> ThreespaceCmdResult[None]: ...
|
|
@@ -270,6 +270,24 @@ class ThreespaceStreamingManager:
|
|
|
270
270
|
if immediate_update:
|
|
271
271
|
self.__apply_streaming_settings_and_update_state()
|
|
272
272
|
|
|
273
|
+
def unregister_all_commands_from_owner(self, owner: object, immediate_update: bool = True):
|
|
274
|
+
"""
|
|
275
|
+
Undoes all command registrations done by the given owner automatically
|
|
276
|
+
|
|
277
|
+
Parameters
|
|
278
|
+
----------
|
|
279
|
+
owner : A reference to the object unregistering the command. A command is only unregistered after all its owners release it
|
|
280
|
+
immediate_update : If true, the streaming manager will immediately change the streaming slots on the sensor. If doing bulk unregisters, it
|
|
281
|
+
is useful to set this as False until the last one for performance purposes.
|
|
282
|
+
"""
|
|
283
|
+
for registered_command in self.registered_commands.values():
|
|
284
|
+
if owner in registered_command.registrations:
|
|
285
|
+
registered_command.registrations.remove(owner)
|
|
286
|
+
if len(registered_command.registrations) == 0:
|
|
287
|
+
self.dirty = True
|
|
288
|
+
|
|
289
|
+
if self.dirty and immediate_update:
|
|
290
|
+
self.__apply_streaming_settings_and_update_state()
|
|
273
291
|
|
|
274
292
|
def __build_stream_slots_string(self):
|
|
275
293
|
cmd_strings = []
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|