zaber-motion 7.12.0__py3-none-win32.whl → 7.14.0__py3-none-win32.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.
- zaber_motion/__init__.py +103 -103
- zaber_motion/ascii/__init__.py +73 -73
- zaber_motion/ascii/all_axes.py +352 -352
- zaber_motion/ascii/axis.py +1673 -1666
- zaber_motion/ascii/axis_group.py +391 -391
- zaber_motion/ascii/axis_settings.py +752 -752
- zaber_motion/ascii/connection.py +1174 -1174
- zaber_motion/ascii/device.py +908 -908
- zaber_motion/ascii/device_io.py +1170 -1170
- zaber_motion/ascii/device_settings.py +735 -735
- zaber_motion/ascii/lockstep.py +1184 -1184
- zaber_motion/ascii/oscilloscope.py +635 -635
- zaber_motion/ascii/oscilloscope_data.py +240 -240
- zaber_motion/ascii/pvt.py +105 -105
- zaber_motion/ascii/pvt_buffer.py +146 -146
- zaber_motion/ascii/pvt_io.py +630 -630
- zaber_motion/ascii/pvt_sequence.py +1530 -1530
- zaber_motion/ascii/servo_tuner.py +637 -637
- zaber_motion/ascii/setting_constants.py +1755 -1755
- zaber_motion/ascii/storage.py +905 -905
- zaber_motion/ascii/stream.py +2182 -2182
- zaber_motion/ascii/stream_buffer.py +101 -101
- zaber_motion/ascii/stream_io.py +700 -700
- zaber_motion/ascii/streams.py +105 -105
- zaber_motion/ascii/transport.py +202 -202
- zaber_motion/ascii/trigger.py +886 -886
- zaber_motion/ascii/triggers.py +241 -241
- zaber_motion/ascii/warning_flags.py +178 -178
- zaber_motion/ascii/warnings.py +152 -152
- zaber_motion/async_utils.py +46 -46
- zaber_motion/binary/__init__.py +14 -14
- zaber_motion/binary/connection.py +648 -648
- zaber_motion/binary/device.py +924 -924
- zaber_motion/binary/device_settings.py +121 -121
- zaber_motion/bindings.py +50 -50
- zaber_motion/call.py +198 -198
- zaber_motion/convert_exception.py +138 -138
- zaber_motion/dto/__init__.py +11 -11
- zaber_motion/dto/ascii/__init__.py +46 -46
- zaber_motion/dto/ascii/alert_event.py +110 -110
- zaber_motion/dto/ascii/axis_identity.py +134 -117
- zaber_motion/dto/ascii/axis_type.py +14 -14
- zaber_motion/dto/ascii/can_set_state_axis_response.py +69 -69
- zaber_motion/dto/ascii/can_set_state_device_response.py +75 -75
- zaber_motion/dto/ascii/conversion_factor.py +81 -81
- zaber_motion/dto/ascii/device_identity.py +136 -136
- zaber_motion/dto/ascii/device_io_info.py +108 -108
- zaber_motion/dto/ascii/digital_output_action.py +13 -13
- zaber_motion/dto/ascii/get_axis_setting.py +64 -64
- zaber_motion/dto/ascii/get_axis_setting_result.py +81 -81
- zaber_motion/dto/ascii/get_setting.py +88 -88
- zaber_motion/dto/ascii/get_setting_result.py +87 -87
- zaber_motion/dto/ascii/io_port_label.py +84 -84
- zaber_motion/dto/ascii/io_port_type.py +14 -14
- zaber_motion/dto/ascii/lockstep_axes.py +108 -108
- zaber_motion/dto/ascii/measurement_sequence.py +73 -73
- zaber_motion/dto/ascii/message_type.py +14 -14
- zaber_motion/dto/ascii/optional_measurement_sequence.py +71 -71
- zaber_motion/dto/ascii/oscilloscope_capture_properties.py +116 -116
- zaber_motion/dto/ascii/oscilloscope_data_source.py +11 -11
- zaber_motion/dto/ascii/paramset_info.py +92 -92
- zaber_motion/dto/ascii/pid_tuning.py +125 -125
- zaber_motion/dto/ascii/pvt_axis_definition.py +70 -70
- zaber_motion/dto/ascii/pvt_axis_type.py +11 -11
- zaber_motion/dto/ascii/pvt_csv_data.py +75 -75
- zaber_motion/dto/ascii/pvt_mode.py +12 -12
- zaber_motion/dto/ascii/pvt_sequence_data.py +99 -99
- zaber_motion/dto/ascii/response.py +137 -137
- zaber_motion/dto/ascii/servo_tuning_param.py +66 -66
- zaber_motion/dto/ascii/servo_tuning_paramset.py +21 -21
- zaber_motion/dto/ascii/set_state_axis_response.py +75 -75
- zaber_motion/dto/ascii/set_state_device_response.py +80 -80
- zaber_motion/dto/ascii/simple_tuning.py +118 -118
- zaber_motion/dto/ascii/simple_tuning_param_definition.py +100 -100
- zaber_motion/dto/ascii/stream_axis_definition.py +70 -70
- zaber_motion/dto/ascii/stream_axis_type.py +11 -11
- zaber_motion/dto/ascii/stream_mode.py +13 -13
- zaber_motion/dto/ascii/trigger_action.py +12 -12
- zaber_motion/dto/ascii/trigger_condition.py +15 -15
- zaber_motion/dto/ascii/trigger_enabled_state.py +68 -68
- zaber_motion/dto/ascii/trigger_operation.py +12 -12
- zaber_motion/dto/ascii/trigger_state.py +114 -114
- zaber_motion/dto/ascii/unknown_response_event.py +137 -137
- zaber_motion/dto/axis_address.py +74 -74
- zaber_motion/dto/binary/__init__.py +11 -11
- zaber_motion/dto/binary/binary_settings.py +74 -74
- zaber_motion/dto/binary/command_code.py +106 -106
- zaber_motion/dto/binary/device_identity.py +156 -156
- zaber_motion/dto/binary/device_type.py +12 -12
- zaber_motion/dto/binary/error_code.py +101 -101
- zaber_motion/dto/binary/message.py +91 -91
- zaber_motion/dto/binary/reply_code.py +16 -16
- zaber_motion/dto/binary/reply_only_event.py +91 -91
- zaber_motion/dto/binary/unknown_response_event.py +91 -91
- zaber_motion/dto/channel_address.py +74 -74
- zaber_motion/dto/device_db_source.py +66 -66
- zaber_motion/dto/device_db_source_type.py +11 -11
- zaber_motion/dto/exceptions/__init__.py +24 -24
- zaber_motion/dto/exceptions/binary_command_failed_exception_data.py +57 -57
- zaber_motion/dto/exceptions/command_failed_exception_data.py +151 -151
- zaber_motion/dto/exceptions/command_too_long_exception_data.py +98 -98
- zaber_motion/dto/exceptions/device_address_conflict_exception_data.py +63 -63
- zaber_motion/dto/exceptions/device_db_failed_exception_data.py +74 -74
- zaber_motion/dto/exceptions/device_db_inner_error.py +85 -85
- zaber_motion/dto/exceptions/g_code_execution_exception_data.py +75 -75
- zaber_motion/dto/exceptions/g_code_syntax_exception_data.py +75 -75
- zaber_motion/dto/exceptions/invalid_packet_exception_data.py +63 -63
- zaber_motion/dto/exceptions/invalid_pvt_point.py +69 -69
- zaber_motion/dto/exceptions/invalid_response_exception_data.py +51 -51
- zaber_motion/dto/exceptions/movement_failed_exception_data.py +104 -104
- zaber_motion/dto/exceptions/movement_interrupted_exception_data.py +104 -104
- zaber_motion/dto/exceptions/operation_failed_exception_data.py +104 -104
- zaber_motion/dto/exceptions/pvt_execution_exception_data.py +86 -86
- zaber_motion/dto/exceptions/pvt_movement_failed_exception_data.py +69 -69
- zaber_motion/dto/exceptions/pvt_movement_interrupted_exception_data.py +69 -69
- zaber_motion/dto/exceptions/set_device_state_exception_data.py +176 -176
- zaber_motion/dto/exceptions/set_peripheral_state_exception_data.py +121 -121
- zaber_motion/dto/exceptions/stream_execution_exception_data.py +63 -63
- zaber_motion/dto/exceptions/stream_movement_failed_exception_data.py +69 -69
- zaber_motion/dto/exceptions/stream_movement_interrupted_exception_data.py +69 -69
- zaber_motion/dto/firmware_version.py +91 -91
- zaber_motion/dto/gcode/__init__.py +9 -9
- zaber_motion/dto/gcode/axis_definition.py +74 -74
- zaber_motion/dto/gcode/axis_mapping.py +69 -69
- zaber_motion/dto/gcode/axis_transformation.py +79 -79
- zaber_motion/dto/gcode/device_definition.py +99 -99
- zaber_motion/dto/gcode/translate_message.py +87 -87
- zaber_motion/dto/gcode/translate_result.py +79 -79
- zaber_motion/dto/gcode/translator_config.py +84 -84
- zaber_motion/dto/log_output_mode.py +13 -13
- zaber_motion/dto/measurement.py +67 -67
- zaber_motion/dto/microscopy/__init__.py +6 -6
- zaber_motion/dto/microscopy/autofocus_status.py +57 -57
- zaber_motion/dto/microscopy/microscope_config.py +159 -159
- zaber_motion/dto/microscopy/third_party_components.py +55 -55
- zaber_motion/dto/microscopy/wdi_autofocus_provider_status.py +57 -57
- zaber_motion/dto/named_parameter.py +64 -64
- zaber_motion/dto/product/__init__.py +5 -5
- zaber_motion/dto/product/process_controller_mode.py +13 -13
- zaber_motion/dto/product/process_controller_source.py +72 -72
- zaber_motion/dto/product/process_controller_source_sensor.py +11 -11
- zaber_motion/dto/requests/__init__.py +256 -254
- zaber_motion/dto/requests/alert_event_wrapper.py +82 -82
- zaber_motion/dto/requests/autofocus_focus_request.py +131 -131
- zaber_motion/dto/requests/autofocus_get_objective_params_request.py +121 -121
- zaber_motion/dto/requests/autofocus_get_objective_params_response.py +56 -56
- zaber_motion/dto/requests/autofocus_get_status_response.py +50 -50
- zaber_motion/dto/requests/autofocus_set_objective_params_request.py +141 -141
- zaber_motion/dto/requests/axes_empty_request.py +95 -95
- zaber_motion/dto/requests/axes_get_setting_request.py +121 -121
- zaber_motion/dto/requests/axes_move_request.py +114 -114
- zaber_motion/dto/requests/axis_empty_request.py +79 -79
- zaber_motion/dto/requests/axis_move_type.py +12 -12
- zaber_motion/dto/requests/axis_to_string_request.py +88 -88
- zaber_motion/dto/requests/binary_device_detect_request.py +56 -56
- zaber_motion/dto/requests/binary_device_detect_response.py +57 -57
- zaber_motion/dto/requests/binary_device_get_setting_request.py +89 -89
- zaber_motion/dto/requests/binary_device_home_request.py +88 -88
- zaber_motion/dto/requests/binary_device_move_request.py +111 -111
- zaber_motion/dto/requests/binary_device_set_setting_request.py +100 -100
- zaber_motion/dto/requests/binary_device_stop_request.py +88 -88
- zaber_motion/dto/requests/binary_generic_with_units_request.py +122 -122
- zaber_motion/dto/requests/binary_message_collection.py +56 -56
- zaber_motion/dto/requests/binary_reply_only_event_wrapper.py +82 -82
- zaber_motion/dto/requests/bool_response.py +43 -43
- zaber_motion/dto/requests/can_set_state_axis_response.py +60 -60
- zaber_motion/dto/requests/can_set_state_request.py +100 -100
- zaber_motion/dto/requests/channel_on.py +84 -84
- zaber_motion/dto/requests/channel_set_intensity.py +90 -90
- zaber_motion/dto/requests/check_version_request.py +54 -54
- zaber_motion/dto/requests/custom_interface_close_request.py +60 -60
- zaber_motion/dto/requests/custom_interface_open_response.py +51 -51
- zaber_motion/dto/requests/custom_interface_read_request.py +51 -51
- zaber_motion/dto/requests/custom_interface_write_request.py +60 -60
- zaber_motion/dto/requests/device_cancel_all_outputs_schedule_request.py +80 -80
- zaber_motion/dto/requests/device_cancel_output_schedule_request.py +84 -84
- zaber_motion/dto/requests/device_convert_setting_request.py +116 -116
- zaber_motion/dto/requests/device_detect_request.py +68 -68
- zaber_motion/dto/requests/device_detect_response.py +57 -57
- zaber_motion/dto/requests/device_empty_request.py +65 -65
- zaber_motion/dto/requests/device_get_all_analog_io_request.py +74 -74
- zaber_motion/dto/requests/device_get_all_analog_io_response.py +54 -54
- zaber_motion/dto/requests/device_get_all_digital_io_request.py +74 -74
- zaber_motion/dto/requests/device_get_all_digital_io_response.py +46 -46
- zaber_motion/dto/requests/device_get_analog_io_request.py +88 -88
- zaber_motion/dto/requests/device_get_digital_io_request.py +88 -88
- zaber_motion/dto/requests/device_get_setting_request.py +100 -100
- zaber_motion/dto/requests/device_get_storage_request.py +93 -93
- zaber_motion/dto/requests/device_get_warnings_request.py +84 -84
- zaber_motion/dto/requests/device_get_warnings_response.py +51 -51
- zaber_motion/dto/requests/device_home_request.py +84 -84
- zaber_motion/dto/requests/device_identify_request.py +77 -77
- zaber_motion/dto/requests/device_move_request.py +177 -177
- zaber_motion/dto/requests/device_move_sin_request.py +140 -140
- zaber_motion/dto/requests/device_multi_get_setting_request.py +118 -118
- zaber_motion/dto/requests/device_on_all_request.py +56 -56
- zaber_motion/dto/requests/device_on_all_response.py +57 -57
- zaber_motion/dto/requests/device_restore_request.py +84 -84
- zaber_motion/dto/requests/device_set_all_analog_outputs_request.py +82 -82
- zaber_motion/dto/requests/device_set_all_analog_outputs_schedule_request.py +121 -121
- zaber_motion/dto/requests/device_set_all_digital_outputs_request.py +83 -83
- zaber_motion/dto/requests/device_set_all_digital_outputs_schedule_request.py +122 -122
- zaber_motion/dto/requests/device_set_analog_output_request.py +90 -90
- zaber_motion/dto/requests/device_set_analog_output_schedule_request.py +124 -124
- zaber_motion/dto/requests/device_set_digital_output_request.py +91 -91
- zaber_motion/dto/requests/device_set_digital_output_schedule_request.py +125 -125
- zaber_motion/dto/requests/device_set_lowpass_filter_request.py +102 -102
- zaber_motion/dto/requests/device_set_setting_bool_request.py +93 -93
- zaber_motion/dto/requests/device_set_setting_int_request.py +102 -102
- zaber_motion/dto/requests/device_set_setting_request.py +111 -111
- zaber_motion/dto/requests/device_set_setting_str_request.py +97 -97
- zaber_motion/dto/requests/device_set_storage_bool_request.py +93 -93
- zaber_motion/dto/requests/device_set_storage_number_request.py +99 -99
- zaber_motion/dto/requests/device_set_storage_request.py +102 -102
- zaber_motion/dto/requests/device_set_unit_conversions_request.py +108 -108
- zaber_motion/dto/requests/device_stop_request.py +84 -84
- zaber_motion/dto/requests/device_storage_list_keys_request.py +88 -88
- zaber_motion/dto/requests/device_storage_request.py +88 -88
- zaber_motion/dto/requests/device_type.py +8 -8
- zaber_motion/dto/requests/device_wait_until_idle_request.py +84 -84
- zaber_motion/dto/requests/disconnected_event.py +101 -101
- zaber_motion/dto/requests/double_array_response.py +54 -54
- zaber_motion/dto/requests/double_response.py +48 -48
- zaber_motion/dto/requests/driver_enable_request.py +90 -90
- zaber_motion/dto/requests/empty_autofocus_request.py +107 -107
- zaber_motion/dto/requests/empty_request.py +38 -38
- zaber_motion/dto/requests/errors.py +68 -68
- zaber_motion/dto/requests/find_device_request.py +65 -65
- zaber_motion/dto/requests/find_device_response.py +51 -51
- zaber_motion/dto/requests/forget_devices_request.py +71 -71
- zaber_motion/dto/requests/gateway_event.py +45 -45
- zaber_motion/dto/requests/gateway_request.py +45 -45
- zaber_motion/dto/requests/gateway_response.py +69 -69
- zaber_motion/dto/requests/generic_binary_request.py +107 -107
- zaber_motion/dto/requests/generic_command_request.py +107 -107
- zaber_motion/dto/requests/generic_command_response_collection.py +56 -56
- zaber_motion/dto/requests/get_all_io_port_labels_response.py +56 -56
- zaber_motion/dto/requests/get_axis_setting_results.py +56 -56
- zaber_motion/dto/requests/get_io_port_label_request.py +91 -91
- zaber_motion/dto/requests/get_setting_results.py +56 -56
- zaber_motion/dto/requests/get_simple_tuning_param_definition_response.py +56 -56
- zaber_motion/dto/requests/int_64_response.py +51 -51
- zaber_motion/dto/requests/int_array_response.py +57 -57
- zaber_motion/dto/requests/int_request.py +51 -51
- zaber_motion/dto/requests/int_response.py +51 -51
- zaber_motion/dto/requests/interface_empty_request.py +51 -51
- zaber_motion/dto/requests/interface_type.py +11 -11
- zaber_motion/dto/requests/load_paramset.py +102 -102
- zaber_motion/dto/requests/lockstep_disable_request.py +84 -84
- zaber_motion/dto/requests/lockstep_empty_request.py +79 -79
- zaber_motion/dto/requests/lockstep_enable_request.py +99 -99
- zaber_motion/dto/requests/lockstep_get_axis_numbers_response.py +57 -57
- zaber_motion/dto/requests/lockstep_get_request.py +91 -91
- zaber_motion/dto/requests/lockstep_home_request.py +84 -84
- zaber_motion/dto/requests/lockstep_move_request.py +163 -163
- zaber_motion/dto/requests/lockstep_move_sin_request.py +140 -140
- zaber_motion/dto/requests/lockstep_set_request.py +116 -116
- zaber_motion/dto/requests/lockstep_stop_request.py +84 -84
- zaber_motion/dto/requests/lockstep_wait_until_idle_request.py +84 -84
- zaber_motion/dto/requests/microscope_config_response.py +50 -50
- zaber_motion/dto/requests/microscope_empty_request.py +65 -65
- zaber_motion/dto/requests/microscope_find_request.py +63 -63
- zaber_motion/dto/requests/microscope_init_request.py +70 -70
- zaber_motion/dto/requests/microscope_trigger_camera_request.py +107 -107
- zaber_motion/dto/requests/objective_changer_change_request.py +119 -119
- zaber_motion/dto/requests/objective_changer_create_response.py +79 -79
- zaber_motion/dto/requests/objective_changer_get_current_response.py +51 -51
- zaber_motion/dto/requests/objective_changer_request.py +93 -93
- zaber_motion/dto/requests/objective_changer_set_request.py +116 -116
- zaber_motion/dto/requests/open_binary_interface_request.py +100 -100
- zaber_motion/dto/requests/open_interface_request.py +159 -159
- zaber_motion/dto/requests/open_interface_response.py +51 -51
- zaber_motion/dto/requests/oscilloscope_add_io_channel_request.py +91 -91
- zaber_motion/dto/requests/oscilloscope_add_setting_channel_request.py +88 -88
- zaber_motion/dto/requests/oscilloscope_data_get_request.py +63 -63
- zaber_motion/dto/requests/oscilloscope_data_get_sample_time_request.py +77 -77
- zaber_motion/dto/requests/oscilloscope_data_get_samples_response.py +54 -54
- zaber_motion/dto/requests/oscilloscope_data_identifier.py +51 -51
- zaber_motion/dto/requests/oscilloscope_read_response.py +57 -57
- zaber_motion/dto/requests/oscilloscope_request.py +65 -65
- zaber_motion/dto/requests/oscilloscope_start_request.py +79 -79
- zaber_motion/dto/requests/prepare_command_request.py +108 -108
- zaber_motion/dto/requests/process_on.py +107 -107
- zaber_motion/dto/requests/pvt_buffer_get_sequence_data_request.py +79 -79
- zaber_motion/dto/requests/pvt_csv_request.py +59 -59
- zaber_motion/dto/requests/pvt_generate_positions_request.py +74 -74
- zaber_motion/dto/requests/pvt_generate_velocities_and_times_request.py +96 -96
- zaber_motion/dto/requests/pvt_generate_velocities_request.py +93 -93
- zaber_motion/dto/requests/pvt_load_csv_request.py +45 -45
- zaber_motion/dto/requests/pvt_point_request.py +145 -145
- zaber_motion/dto/requests/pvt_points_request.py +147 -147
- zaber_motion/dto/requests/pvt_save_csv_request.py +74 -74
- zaber_motion/dto/requests/pvt_submit_sequence_data_request.py +93 -93
- zaber_motion/dto/requests/renumber_request.py +79 -79
- zaber_motion/dto/requests/response_type.py +8 -8
- zaber_motion/dto/requests/servo_tuning_paramset_response.py +48 -48
- zaber_motion/dto/requests/servo_tuning_request.py +91 -91
- zaber_motion/dto/requests/set_device_db_layered_sources_request.py +56 -56
- zaber_motion/dto/requests/set_device_db_source_request.py +63 -63
- zaber_motion/dto/requests/set_interface_checksum_enabled_request.py +56 -56
- zaber_motion/dto/requests/set_interface_timeout_request.py +65 -65
- zaber_motion/dto/requests/set_internal_mode_request.py +43 -43
- zaber_motion/dto/requests/set_io_port_label_request.py +100 -100
- zaber_motion/dto/requests/set_log_output_request.py +57 -57
- zaber_motion/dto/requests/set_process_controller_source.py +93 -93
- zaber_motion/dto/requests/set_servo_tuning_pid_request.py +135 -135
- zaber_motion/dto/requests/set_servo_tuning_request.py +116 -116
- zaber_motion/dto/requests/set_simple_tuning.py +174 -174
- zaber_motion/dto/requests/set_state_request.py +93 -93
- zaber_motion/dto/requests/stream_arc_request.py +199 -199
- zaber_motion/dto/requests/stream_buffer_erase_request.py +84 -84
- zaber_motion/dto/requests/stream_buffer_get_content_request.py +84 -84
- zaber_motion/dto/requests/stream_buffer_get_content_response.py +51 -51
- zaber_motion/dto/requests/stream_buffer_list.py +70 -70
- zaber_motion/dto/requests/stream_call_request.py +112 -112
- zaber_motion/dto/requests/stream_cancel_all_outputs_schedule_request.py +99 -99
- zaber_motion/dto/requests/stream_cancel_output_schedule_request.py +103 -103
- zaber_motion/dto/requests/stream_circle_request.py +155 -155
- zaber_motion/dto/requests/stream_empty_request.py +84 -84
- zaber_motion/dto/requests/stream_generic_command_batch_request.py +99 -99
- zaber_motion/dto/requests/stream_generic_command_request.py +93 -93
- zaber_motion/dto/requests/stream_get_axes_response.py +75 -75
- zaber_motion/dto/requests/stream_get_max_centripetal_acceleration_request.py +96 -96
- zaber_motion/dto/requests/stream_get_max_speed_request.py +96 -96
- zaber_motion/dto/requests/stream_get_max_tangential_acceleration_request.py +96 -96
- zaber_motion/dto/requests/stream_line_request.py +135 -135
- zaber_motion/dto/requests/stream_mode_response.py +60 -60
- zaber_motion/dto/requests/stream_segment_type.py +8 -8
- zaber_motion/dto/requests/stream_set_all_analog_outputs_request.py +101 -101
- zaber_motion/dto/requests/stream_set_all_analog_outputs_schedule_request.py +140 -140
- zaber_motion/dto/requests/stream_set_all_digital_outputs_request.py +102 -102
- zaber_motion/dto/requests/stream_set_all_digital_outputs_schedule_request.py +141 -141
- zaber_motion/dto/requests/stream_set_analog_output_request.py +109 -109
- zaber_motion/dto/requests/stream_set_analog_output_schedule_request.py +143 -143
- zaber_motion/dto/requests/stream_set_digital_output_request.py +110 -110
- zaber_motion/dto/requests/stream_set_digital_output_schedule_request.py +144 -144
- zaber_motion/dto/requests/stream_set_hold_request.py +89 -89
- zaber_motion/dto/requests/stream_set_max_centripetal_acceleration_request.py +107 -107
- zaber_motion/dto/requests/stream_set_max_speed_request.py +107 -107
- zaber_motion/dto/requests/stream_set_max_tangential_acceleration_request.py +107 -107
- zaber_motion/dto/requests/stream_setup_live_composite_request.py +123 -123
- zaber_motion/dto/requests/stream_setup_live_request.py +104 -104
- zaber_motion/dto/requests/stream_setup_store_arbitrary_axes_request.py +126 -126
- zaber_motion/dto/requests/stream_setup_store_composite_request.py +151 -151
- zaber_motion/dto/requests/stream_setup_store_request.py +132 -132
- zaber_motion/dto/requests/stream_wait_analog_input_request.py +118 -118
- zaber_motion/dto/requests/stream_wait_digital_input_request.py +103 -103
- zaber_motion/dto/requests/stream_wait_request.py +107 -107
- zaber_motion/dto/requests/stream_wait_until_idle_request.py +89 -89
- zaber_motion/dto/requests/string_array_response.py +51 -51
- zaber_motion/dto/requests/string_response.py +45 -45
- zaber_motion/dto/requests/test_event.py +45 -45
- zaber_motion/dto/requests/test_request.py +55 -55
- zaber_motion/dto/requests/test_request_complex.py +57 -0
- zaber_motion/dto/requests/test_response.py +45 -45
- zaber_motion/dto/requests/test_response_long.py +51 -51
- zaber_motion/dto/requests/toggle_device_db_store_request.py +50 -50
- zaber_motion/dto/requests/tools_list_serial_ports_response.py +51 -51
- zaber_motion/dto/requests/translator_create_from_device_request.py +97 -97
- zaber_motion/dto/requests/translator_create_live_request.py +91 -91
- zaber_motion/dto/requests/translator_create_request.py +62 -62
- zaber_motion/dto/requests/translator_create_response.py +51 -51
- zaber_motion/dto/requests/translator_empty_request.py +51 -51
- zaber_motion/dto/requests/translator_flush_live_request.py +56 -56
- zaber_motion/dto/requests/translator_flush_response.py +51 -51
- zaber_motion/dto/requests/translator_get_axis_offset_request.py +81 -81
- zaber_motion/dto/requests/translator_get_axis_position_request.py +72 -72
- zaber_motion/dto/requests/translator_set_axis_position_request.py +83 -83
- zaber_motion/dto/requests/translator_set_feed_rate_override_request.py +62 -62
- zaber_motion/dto/requests/translator_set_traverse_rate_request.py +74 -74
- zaber_motion/dto/requests/translator_translate_request.py +60 -60
- zaber_motion/dto/requests/trigger_clear_action_request.py +91 -91
- zaber_motion/dto/requests/trigger_empty_request.py +79 -79
- zaber_motion/dto/requests/trigger_enable_request.py +93 -93
- zaber_motion/dto/requests/trigger_enabled_states.py +56 -56
- zaber_motion/dto/requests/trigger_fire_at_interval_request.py +102 -102
- zaber_motion/dto/requests/trigger_fire_when_distance_travelled_request.py +116 -116
- zaber_motion/dto/requests/trigger_fire_when_io_request.py +128 -128
- zaber_motion/dto/requests/trigger_fire_when_request.py +88 -88
- zaber_motion/dto/requests/trigger_fire_when_setting_request.py +137 -137
- zaber_motion/dto/requests/trigger_on_fire_request.py +114 -114
- zaber_motion/dto/requests/trigger_on_fire_set_request.py +149 -149
- zaber_motion/dto/requests/trigger_on_fire_set_to_setting_request.py +149 -149
- zaber_motion/dto/requests/trigger_set_label_request.py +88 -88
- zaber_motion/dto/requests/trigger_states.py +56 -56
- zaber_motion/dto/requests/unit_convert_unit_request.py +71 -71
- zaber_motion/dto/requests/unit_get_enum_request.py +45 -45
- zaber_motion/dto/requests/unit_get_enum_response.py +48 -48
- zaber_motion/dto/requests/unit_get_symbol_request.py +48 -48
- zaber_motion/dto/requests/unit_get_symbol_response.py +45 -45
- zaber_motion/dto/requests/unknown_binary_response_event_wrapper.py +82 -82
- zaber_motion/dto/requests/unknown_response_event_wrapper.py +82 -82
- zaber_motion/dto/requests/wait_to_clear_warnings_request.py +105 -105
- zaber_motion/dto/requests/wait_to_respond_request.py +76 -76
- zaber_motion/dto/requests/wdi_generic_float_request.py +119 -0
- zaber_motion/dto/requests/wdi_generic_request.py +136 -136
- zaber_motion/dto/requests/wdi_get_status_response.py +50 -50
- zaber_motion/dto/rotation_direction.py +13 -13
- zaber_motion/dto_object.py +18 -18
- zaber_motion/events.py +112 -112
- zaber_motion/exceptions/__init__.py +87 -87
- zaber_motion/exceptions/bad_command_exception.py +10 -10
- zaber_motion/exceptions/bad_data_exception.py +10 -10
- zaber_motion/exceptions/binary_command_failed_exception.py +27 -27
- zaber_motion/exceptions/command_failed_exception.py +27 -27
- zaber_motion/exceptions/command_preempted_exception.py +10 -10
- zaber_motion/exceptions/command_too_long_exception.py +27 -27
- zaber_motion/exceptions/connection_closed_exception.py +10 -10
- zaber_motion/exceptions/connection_failed_exception.py +10 -10
- zaber_motion/exceptions/conversion_failed_exception.py +10 -10
- zaber_motion/exceptions/device_address_conflict_exception.py +27 -27
- zaber_motion/exceptions/device_busy_exception.py +10 -10
- zaber_motion/exceptions/device_db_failed_exception.py +27 -27
- zaber_motion/exceptions/device_detection_failed_exception.py +10 -10
- zaber_motion/exceptions/device_failed_exception.py +11 -11
- zaber_motion/exceptions/device_not_identified_exception.py +10 -10
- zaber_motion/exceptions/driver_disabled_exception.py +10 -10
- zaber_motion/exceptions/g_code_execution_exception.py +27 -27
- zaber_motion/exceptions/g_code_syntax_exception.py +27 -27
- zaber_motion/exceptions/incompatible_shared_library_exception.py +11 -11
- zaber_motion/exceptions/internal_error_exception.py +10 -10
- zaber_motion/exceptions/invalid_argument_exception.py +10 -10
- zaber_motion/exceptions/invalid_csv_data_exception.py +10 -10
- zaber_motion/exceptions/invalid_data_exception.py +10 -10
- zaber_motion/exceptions/invalid_operation_exception.py +10 -10
- zaber_motion/exceptions/invalid_packet_exception.py +27 -27
- zaber_motion/exceptions/invalid_park_state_exception.py +10 -10
- zaber_motion/exceptions/invalid_request_data_exception.py +11 -11
- zaber_motion/exceptions/invalid_response_exception.py +27 -27
- zaber_motion/exceptions/io_channel_out_of_range_exception.py +10 -10
- zaber_motion/exceptions/io_failed_exception.py +10 -10
- zaber_motion/exceptions/lockstep_enabled_exception.py +10 -10
- zaber_motion/exceptions/lockstep_not_enabled_exception.py +10 -10
- zaber_motion/exceptions/motion_lib_exception.py +18 -18
- zaber_motion/exceptions/movement_failed_exception.py +27 -27
- zaber_motion/exceptions/movement_interrupted_exception.py +27 -27
- zaber_motion/exceptions/no_device_found_exception.py +10 -10
- zaber_motion/exceptions/no_value_for_key_exception.py +10 -10
- zaber_motion/exceptions/not_supported_exception.py +10 -10
- zaber_motion/exceptions/operation_failed_exception.py +27 -27
- zaber_motion/exceptions/os_failed_exception.py +10 -10
- zaber_motion/exceptions/out_of_request_ids_exception.py +10 -10
- zaber_motion/exceptions/pvt_discontinuity_exception.py +10 -10
- zaber_motion/exceptions/pvt_execution_exception.py +27 -27
- zaber_motion/exceptions/pvt_mode_exception.py +10 -10
- zaber_motion/exceptions/pvt_movement_failed_exception.py +27 -27
- zaber_motion/exceptions/pvt_movement_interrupted_exception.py +27 -27
- zaber_motion/exceptions/pvt_sequence_generation_failed_exception.py +10 -10
- zaber_motion/exceptions/pvt_setup_failed_exception.py +10 -10
- zaber_motion/exceptions/remote_mode_exception.py +11 -11
- zaber_motion/exceptions/request_timeout_exception.py +10 -10
- zaber_motion/exceptions/serial_port_busy_exception.py +10 -10
- zaber_motion/exceptions/set_device_state_failed_exception.py +27 -27
- zaber_motion/exceptions/set_peripheral_state_failed_exception.py +27 -27
- zaber_motion/exceptions/setting_not_found_exception.py +10 -10
- zaber_motion/exceptions/stream_discontinuity_exception.py +10 -10
- zaber_motion/exceptions/stream_execution_exception.py +27 -27
- zaber_motion/exceptions/stream_mode_exception.py +10 -10
- zaber_motion/exceptions/stream_movement_failed_exception.py +27 -27
- zaber_motion/exceptions/stream_movement_interrupted_exception.py +27 -27
- zaber_motion/exceptions/stream_setup_failed_exception.py +10 -10
- zaber_motion/exceptions/timeout_exception.py +10 -10
- zaber_motion/exceptions/transport_already_used_exception.py +10 -10
- zaber_motion/exceptions/unknown_request_exception.py +10 -10
- zaber_motion/gcode/__init__.py +11 -11
- zaber_motion/gcode/offline_translator.py +401 -401
- zaber_motion/gcode/translator.py +424 -424
- zaber_motion/library.py +179 -179
- zaber_motion/microscopy/__init__.py +14 -14
- zaber_motion/microscopy/autofocus.py +645 -645
- zaber_motion/microscopy/camera_trigger.py +108 -108
- zaber_motion/microscopy/filter_changer.py +167 -167
- zaber_motion/microscopy/illuminator.py +139 -139
- zaber_motion/microscopy/illuminator_channel.py +616 -616
- zaber_motion/microscopy/microscope.py +315 -315
- zaber_motion/microscopy/objective_changer.py +403 -403
- zaber_motion/microscopy/wdi_autofocus_provider.py +536 -396
- zaber_motion/product/__init__.py +7 -7
- zaber_motion/product/process.py +818 -818
- zaber_motion/product/process_controller.py +134 -134
- zaber_motion/serialization.py +32 -32
- zaber_motion/tools.py +78 -78
- zaber_motion/unit_table.py +86 -86
- zaber_motion/units.py +206 -206
- zaber_motion/version.py +1 -1
- {zaber_motion-7.12.0.dist-info → zaber_motion-7.14.0.dist-info}/LICENSE.txt +2119 -2119
- {zaber_motion-7.12.0.dist-info → zaber_motion-7.14.0.dist-info}/METADATA +1 -1
- zaber_motion-7.14.0.dist-info/RECORD +496 -0
- zaber_motion_bindings/zaber-motion-core-windows-386.dll +0 -0
- zaber_motion-7.12.0.dist-info/RECORD +0 -494
- {zaber_motion-7.12.0.dist-info → zaber_motion-7.14.0.dist-info}/WHEEL +0 -0
- {zaber_motion-7.12.0.dist-info → zaber_motion-7.14.0.dist-info}/top_level.txt +0 -0
|
@@ -1,134 +1,134 @@
|
|
|
1
|
-
# ===== THIS FILE IS GENERATED FROM A TEMPLATE ===== #
|
|
2
|
-
# ============== DO NOT EDIT DIRECTLY ============== #
|
|
3
|
-
|
|
4
|
-
from typing import List
|
|
5
|
-
from ..call import call, call_sync, call_async
|
|
6
|
-
|
|
7
|
-
from ..dto import requests as dto
|
|
8
|
-
from ..ascii.device import Device
|
|
9
|
-
from .process import Process
|
|
10
|
-
from ..ascii.connection import Connection
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
class ProcessController:
|
|
14
|
-
"""
|
|
15
|
-
Use to manage a process controller.
|
|
16
|
-
Requires at least Firmware 7.35.
|
|
17
|
-
"""
|
|
18
|
-
|
|
19
|
-
@property
|
|
20
|
-
def device(self) -> Device:
|
|
21
|
-
"""
|
|
22
|
-
The base device of this process controller.
|
|
23
|
-
"""
|
|
24
|
-
return self._device
|
|
25
|
-
|
|
26
|
-
def __init__(self, device: Device):
|
|
27
|
-
"""
|
|
28
|
-
Creates instance of `ProcessController` of the given device.
|
|
29
|
-
If the device is identified, this constructor will ensure it is a process controller.
|
|
30
|
-
"""
|
|
31
|
-
self._device: Device = device
|
|
32
|
-
self.__verify_is_process_controller()
|
|
33
|
-
|
|
34
|
-
@staticmethod
|
|
35
|
-
def detect(
|
|
36
|
-
connection: Connection,
|
|
37
|
-
identify: bool = True
|
|
38
|
-
) -> List['ProcessController']:
|
|
39
|
-
"""
|
|
40
|
-
Detects the process controllers on the connection.
|
|
41
|
-
|
|
42
|
-
Args:
|
|
43
|
-
connection: The connection to detect process controllers on.
|
|
44
|
-
identify: If the Process Controllers should be identified upon detection.
|
|
45
|
-
|
|
46
|
-
Returns:
|
|
47
|
-
A list of all `ProcessController`s on the connection.
|
|
48
|
-
"""
|
|
49
|
-
request = dto.DeviceDetectRequest(
|
|
50
|
-
type=dto.DeviceType.PROCESS_CONTROLLER,
|
|
51
|
-
interface_id=connection.interface_id,
|
|
52
|
-
identify_devices=identify,
|
|
53
|
-
)
|
|
54
|
-
response = call(
|
|
55
|
-
"device/detect",
|
|
56
|
-
request,
|
|
57
|
-
dto.DeviceDetectResponse.from_binary)
|
|
58
|
-
return [ProcessController(connection.get_device(device)) for device in response.devices]
|
|
59
|
-
|
|
60
|
-
@staticmethod
|
|
61
|
-
async def detect_async(
|
|
62
|
-
connection: Connection,
|
|
63
|
-
identify: bool = True
|
|
64
|
-
) -> List['ProcessController']:
|
|
65
|
-
"""
|
|
66
|
-
Detects the process controllers on the connection.
|
|
67
|
-
|
|
68
|
-
Args:
|
|
69
|
-
connection: The connection to detect process controllers on.
|
|
70
|
-
identify: If the Process Controllers should be identified upon detection.
|
|
71
|
-
|
|
72
|
-
Returns:
|
|
73
|
-
A list of all `ProcessController`s on the connection.
|
|
74
|
-
"""
|
|
75
|
-
request = dto.DeviceDetectRequest(
|
|
76
|
-
type=dto.DeviceType.PROCESS_CONTROLLER,
|
|
77
|
-
interface_id=connection.interface_id,
|
|
78
|
-
identify_devices=identify,
|
|
79
|
-
)
|
|
80
|
-
response = await call_async(
|
|
81
|
-
"device/detect",
|
|
82
|
-
request,
|
|
83
|
-
dto.DeviceDetectResponse.from_binary)
|
|
84
|
-
return [ProcessController(connection.get_device(device)) for device in response.devices]
|
|
85
|
-
|
|
86
|
-
def get_process(
|
|
87
|
-
self,
|
|
88
|
-
process_number: int
|
|
89
|
-
) -> Process:
|
|
90
|
-
"""
|
|
91
|
-
Gets an Process class instance which allows you to control a particular voltage source.
|
|
92
|
-
Axes are numbered from 1.
|
|
93
|
-
|
|
94
|
-
Args:
|
|
95
|
-
process_number: Number of process to control.
|
|
96
|
-
|
|
97
|
-
Returns:
|
|
98
|
-
Process instance.
|
|
99
|
-
"""
|
|
100
|
-
if process_number <= 0:
|
|
101
|
-
raise ValueError('Invalid value; processes are numbered from 1.')
|
|
102
|
-
|
|
103
|
-
return Process(self, process_number)
|
|
104
|
-
|
|
105
|
-
def __verify_is_process_controller(
|
|
106
|
-
self
|
|
107
|
-
) -> None:
|
|
108
|
-
"""
|
|
109
|
-
Checks if this is a process controller or some other type of device and throws an error if it is not.
|
|
110
|
-
"""
|
|
111
|
-
request = dto.DeviceEmptyRequest(
|
|
112
|
-
interface_id=self.device.connection.interface_id,
|
|
113
|
-
device=self.device.device_address,
|
|
114
|
-
)
|
|
115
|
-
call_sync("process_controller/verify", request)
|
|
116
|
-
|
|
117
|
-
def __repr__(
|
|
118
|
-
self
|
|
119
|
-
) -> str:
|
|
120
|
-
"""
|
|
121
|
-
Returns a string that represents the device.
|
|
122
|
-
|
|
123
|
-
Returns:
|
|
124
|
-
A string that represents the device.
|
|
125
|
-
"""
|
|
126
|
-
request = dto.AxisToStringRequest(
|
|
127
|
-
interface_id=self.device.connection.interface_id,
|
|
128
|
-
device=self.device.device_address,
|
|
129
|
-
)
|
|
130
|
-
response = call_sync(
|
|
131
|
-
"device/device_to_string",
|
|
132
|
-
request,
|
|
133
|
-
dto.StringResponse.from_binary)
|
|
134
|
-
return response.value
|
|
1
|
+
# ===== THIS FILE IS GENERATED FROM A TEMPLATE ===== #
|
|
2
|
+
# ============== DO NOT EDIT DIRECTLY ============== #
|
|
3
|
+
|
|
4
|
+
from typing import List
|
|
5
|
+
from ..call import call, call_sync, call_async
|
|
6
|
+
|
|
7
|
+
from ..dto import requests as dto
|
|
8
|
+
from ..ascii.device import Device
|
|
9
|
+
from .process import Process
|
|
10
|
+
from ..ascii.connection import Connection
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ProcessController:
|
|
14
|
+
"""
|
|
15
|
+
Use to manage a process controller.
|
|
16
|
+
Requires at least Firmware 7.35.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
@property
|
|
20
|
+
def device(self) -> Device:
|
|
21
|
+
"""
|
|
22
|
+
The base device of this process controller.
|
|
23
|
+
"""
|
|
24
|
+
return self._device
|
|
25
|
+
|
|
26
|
+
def __init__(self, device: Device):
|
|
27
|
+
"""
|
|
28
|
+
Creates instance of `ProcessController` of the given device.
|
|
29
|
+
If the device is identified, this constructor will ensure it is a process controller.
|
|
30
|
+
"""
|
|
31
|
+
self._device: Device = device
|
|
32
|
+
self.__verify_is_process_controller()
|
|
33
|
+
|
|
34
|
+
@staticmethod
|
|
35
|
+
def detect(
|
|
36
|
+
connection: Connection,
|
|
37
|
+
identify: bool = True
|
|
38
|
+
) -> List['ProcessController']:
|
|
39
|
+
"""
|
|
40
|
+
Detects the process controllers on the connection.
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
connection: The connection to detect process controllers on.
|
|
44
|
+
identify: If the Process Controllers should be identified upon detection.
|
|
45
|
+
|
|
46
|
+
Returns:
|
|
47
|
+
A list of all `ProcessController`s on the connection.
|
|
48
|
+
"""
|
|
49
|
+
request = dto.DeviceDetectRequest(
|
|
50
|
+
type=dto.DeviceType.PROCESS_CONTROLLER,
|
|
51
|
+
interface_id=connection.interface_id,
|
|
52
|
+
identify_devices=identify,
|
|
53
|
+
)
|
|
54
|
+
response = call(
|
|
55
|
+
"device/detect",
|
|
56
|
+
request,
|
|
57
|
+
dto.DeviceDetectResponse.from_binary)
|
|
58
|
+
return [ProcessController(connection.get_device(device)) for device in response.devices]
|
|
59
|
+
|
|
60
|
+
@staticmethod
|
|
61
|
+
async def detect_async(
|
|
62
|
+
connection: Connection,
|
|
63
|
+
identify: bool = True
|
|
64
|
+
) -> List['ProcessController']:
|
|
65
|
+
"""
|
|
66
|
+
Detects the process controllers on the connection.
|
|
67
|
+
|
|
68
|
+
Args:
|
|
69
|
+
connection: The connection to detect process controllers on.
|
|
70
|
+
identify: If the Process Controllers should be identified upon detection.
|
|
71
|
+
|
|
72
|
+
Returns:
|
|
73
|
+
A list of all `ProcessController`s on the connection.
|
|
74
|
+
"""
|
|
75
|
+
request = dto.DeviceDetectRequest(
|
|
76
|
+
type=dto.DeviceType.PROCESS_CONTROLLER,
|
|
77
|
+
interface_id=connection.interface_id,
|
|
78
|
+
identify_devices=identify,
|
|
79
|
+
)
|
|
80
|
+
response = await call_async(
|
|
81
|
+
"device/detect",
|
|
82
|
+
request,
|
|
83
|
+
dto.DeviceDetectResponse.from_binary)
|
|
84
|
+
return [ProcessController(connection.get_device(device)) for device in response.devices]
|
|
85
|
+
|
|
86
|
+
def get_process(
|
|
87
|
+
self,
|
|
88
|
+
process_number: int
|
|
89
|
+
) -> Process:
|
|
90
|
+
"""
|
|
91
|
+
Gets an Process class instance which allows you to control a particular voltage source.
|
|
92
|
+
Axes are numbered from 1.
|
|
93
|
+
|
|
94
|
+
Args:
|
|
95
|
+
process_number: Number of process to control.
|
|
96
|
+
|
|
97
|
+
Returns:
|
|
98
|
+
Process instance.
|
|
99
|
+
"""
|
|
100
|
+
if process_number <= 0:
|
|
101
|
+
raise ValueError('Invalid value; processes are numbered from 1.')
|
|
102
|
+
|
|
103
|
+
return Process(self, process_number)
|
|
104
|
+
|
|
105
|
+
def __verify_is_process_controller(
|
|
106
|
+
self
|
|
107
|
+
) -> None:
|
|
108
|
+
"""
|
|
109
|
+
Checks if this is a process controller or some other type of device and throws an error if it is not.
|
|
110
|
+
"""
|
|
111
|
+
request = dto.DeviceEmptyRequest(
|
|
112
|
+
interface_id=self.device.connection.interface_id,
|
|
113
|
+
device=self.device.device_address,
|
|
114
|
+
)
|
|
115
|
+
call_sync("process_controller/verify", request)
|
|
116
|
+
|
|
117
|
+
def __repr__(
|
|
118
|
+
self
|
|
119
|
+
) -> str:
|
|
120
|
+
"""
|
|
121
|
+
Returns a string that represents the device.
|
|
122
|
+
|
|
123
|
+
Returns:
|
|
124
|
+
A string that represents the device.
|
|
125
|
+
"""
|
|
126
|
+
request = dto.AxisToStringRequest(
|
|
127
|
+
interface_id=self.device.connection.interface_id,
|
|
128
|
+
device=self.device.device_address,
|
|
129
|
+
)
|
|
130
|
+
response = call_sync(
|
|
131
|
+
"device/device_to_string",
|
|
132
|
+
request,
|
|
133
|
+
dto.StringResponse.from_binary)
|
|
134
|
+
return response.value
|
zaber_motion/serialization.py
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import struct
|
|
2
|
-
from ctypes import string_at, c_void_p
|
|
3
|
-
from functools import reduce
|
|
4
|
-
from typing import List
|
|
5
|
-
|
|
6
|
-
SIZE_TYPE_SIZE = 4
|
|
7
|
-
SIZE_TYPE_PACKING = "I"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def serialize(buffers: List[bytes]) -> bytes:
|
|
11
|
-
size = SIZE_TYPE_SIZE + reduce((lambda sum, buffer: sum + len(buffer) + SIZE_TYPE_SIZE), buffers, 0)
|
|
12
|
-
|
|
13
|
-
buffer = struct.pack(SIZE_TYPE_PACKING, size)
|
|
14
|
-
|
|
15
|
-
for messageBuffer in buffers:
|
|
16
|
-
buffer = buffer + struct.pack(SIZE_TYPE_PACKING, len(messageBuffer)) + bytes(messageBuffer)
|
|
17
|
-
|
|
18
|
-
return buffer
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
def deserialize(data: c_void_p) -> List[bytes]:
|
|
22
|
-
total_size = struct.unpack_from(SIZE_TYPE_PACKING, string_at(data, SIZE_TYPE_SIZE))[0]
|
|
23
|
-
offset = SIZE_TYPE_SIZE
|
|
24
|
-
|
|
25
|
-
buffers = []
|
|
26
|
-
while offset < total_size:
|
|
27
|
-
size = struct.unpack_from(SIZE_TYPE_PACKING, string_at(data + offset, SIZE_TYPE_SIZE))[0] # type: ignore
|
|
28
|
-
offset += SIZE_TYPE_SIZE
|
|
29
|
-
buffers.append(string_at(data + offset, size)) # type: ignore
|
|
30
|
-
offset += size
|
|
31
|
-
|
|
32
|
-
return buffers
|
|
1
|
+
import struct
|
|
2
|
+
from ctypes import string_at, c_void_p
|
|
3
|
+
from functools import reduce
|
|
4
|
+
from typing import List
|
|
5
|
+
|
|
6
|
+
SIZE_TYPE_SIZE = 4
|
|
7
|
+
SIZE_TYPE_PACKING = "I"
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def serialize(buffers: List[bytes]) -> bytes:
|
|
11
|
+
size = SIZE_TYPE_SIZE + reduce((lambda sum, buffer: sum + len(buffer) + SIZE_TYPE_SIZE), buffers, 0)
|
|
12
|
+
|
|
13
|
+
buffer = struct.pack(SIZE_TYPE_PACKING, size)
|
|
14
|
+
|
|
15
|
+
for messageBuffer in buffers:
|
|
16
|
+
buffer = buffer + struct.pack(SIZE_TYPE_PACKING, len(messageBuffer)) + bytes(messageBuffer)
|
|
17
|
+
|
|
18
|
+
return buffer
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def deserialize(data: c_void_p) -> List[bytes]:
|
|
22
|
+
total_size = struct.unpack_from(SIZE_TYPE_PACKING, string_at(data, SIZE_TYPE_SIZE))[0]
|
|
23
|
+
offset = SIZE_TYPE_SIZE
|
|
24
|
+
|
|
25
|
+
buffers = []
|
|
26
|
+
while offset < total_size:
|
|
27
|
+
size = struct.unpack_from(SIZE_TYPE_PACKING, string_at(data + offset, SIZE_TYPE_SIZE))[0] # type: ignore
|
|
28
|
+
offset += SIZE_TYPE_SIZE
|
|
29
|
+
buffers.append(string_at(data + offset, size)) # type: ignore
|
|
30
|
+
offset += size
|
|
31
|
+
|
|
32
|
+
return buffers
|
zaber_motion/tools.py
CHANGED
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
# ===== THIS FILE IS GENERATED FROM A TEMPLATE ===== #
|
|
2
|
-
# ============== DO NOT EDIT DIRECTLY ============== #
|
|
3
|
-
|
|
4
|
-
from typing import List
|
|
5
|
-
from .call import call, call_async, call_sync
|
|
6
|
-
from .dto import requests as dto
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class Tools:
|
|
10
|
-
"""
|
|
11
|
-
Class providing various utility functions.
|
|
12
|
-
"""
|
|
13
|
-
|
|
14
|
-
@staticmethod
|
|
15
|
-
def list_serial_ports() -> List[str]:
|
|
16
|
-
"""
|
|
17
|
-
Lists all serial ports on the computer.
|
|
18
|
-
|
|
19
|
-
Returns:
|
|
20
|
-
Array of serial port names.
|
|
21
|
-
"""
|
|
22
|
-
request = dto.EmptyRequest(
|
|
23
|
-
)
|
|
24
|
-
response = call(
|
|
25
|
-
"tools/list_serial_ports",
|
|
26
|
-
request,
|
|
27
|
-
dto.ToolsListSerialPortsResponse.from_binary)
|
|
28
|
-
return response.ports
|
|
29
|
-
|
|
30
|
-
@staticmethod
|
|
31
|
-
async def list_serial_ports_async() -> List[str]:
|
|
32
|
-
"""
|
|
33
|
-
Lists all serial ports on the computer.
|
|
34
|
-
|
|
35
|
-
Returns:
|
|
36
|
-
Array of serial port names.
|
|
37
|
-
"""
|
|
38
|
-
request = dto.EmptyRequest(
|
|
39
|
-
)
|
|
40
|
-
response = await call_async(
|
|
41
|
-
"tools/list_serial_ports",
|
|
42
|
-
request,
|
|
43
|
-
dto.ToolsListSerialPortsResponse.from_binary)
|
|
44
|
-
return response.ports
|
|
45
|
-
|
|
46
|
-
@staticmethod
|
|
47
|
-
def get_message_router_pipe_path() -> str:
|
|
48
|
-
"""
|
|
49
|
-
Returns path of message router named pipe on Windows
|
|
50
|
-
or file path of unix domain socket on UNIX.
|
|
51
|
-
|
|
52
|
-
Returns:
|
|
53
|
-
Path of message router's named pipe or unix domain socket.
|
|
54
|
-
"""
|
|
55
|
-
request = dto.EmptyRequest(
|
|
56
|
-
)
|
|
57
|
-
response = call_sync(
|
|
58
|
-
"tools/get_message_router_pipe",
|
|
59
|
-
request,
|
|
60
|
-
dto.StringResponse.from_binary)
|
|
61
|
-
return response.value
|
|
62
|
-
|
|
63
|
-
@staticmethod
|
|
64
|
-
def get_db_service_pipe_path() -> str:
|
|
65
|
-
"""
|
|
66
|
-
Returns the path for communicating with a local device database service.
|
|
67
|
-
This will be a named pipe on Windows and the file path of a unix domain socket on UNIX.
|
|
68
|
-
|
|
69
|
-
Returns:
|
|
70
|
-
Path of database service's named pipe or unix domain socket.
|
|
71
|
-
"""
|
|
72
|
-
request = dto.EmptyRequest(
|
|
73
|
-
)
|
|
74
|
-
response = call_sync(
|
|
75
|
-
"tools/get_db_service_pipe",
|
|
76
|
-
request,
|
|
77
|
-
dto.StringResponse.from_binary)
|
|
78
|
-
return response.value
|
|
1
|
+
# ===== THIS FILE IS GENERATED FROM A TEMPLATE ===== #
|
|
2
|
+
# ============== DO NOT EDIT DIRECTLY ============== #
|
|
3
|
+
|
|
4
|
+
from typing import List
|
|
5
|
+
from .call import call, call_async, call_sync
|
|
6
|
+
from .dto import requests as dto
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Tools:
|
|
10
|
+
"""
|
|
11
|
+
Class providing various utility functions.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
@staticmethod
|
|
15
|
+
def list_serial_ports() -> List[str]:
|
|
16
|
+
"""
|
|
17
|
+
Lists all serial ports on the computer.
|
|
18
|
+
|
|
19
|
+
Returns:
|
|
20
|
+
Array of serial port names.
|
|
21
|
+
"""
|
|
22
|
+
request = dto.EmptyRequest(
|
|
23
|
+
)
|
|
24
|
+
response = call(
|
|
25
|
+
"tools/list_serial_ports",
|
|
26
|
+
request,
|
|
27
|
+
dto.ToolsListSerialPortsResponse.from_binary)
|
|
28
|
+
return response.ports
|
|
29
|
+
|
|
30
|
+
@staticmethod
|
|
31
|
+
async def list_serial_ports_async() -> List[str]:
|
|
32
|
+
"""
|
|
33
|
+
Lists all serial ports on the computer.
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
Array of serial port names.
|
|
37
|
+
"""
|
|
38
|
+
request = dto.EmptyRequest(
|
|
39
|
+
)
|
|
40
|
+
response = await call_async(
|
|
41
|
+
"tools/list_serial_ports",
|
|
42
|
+
request,
|
|
43
|
+
dto.ToolsListSerialPortsResponse.from_binary)
|
|
44
|
+
return response.ports
|
|
45
|
+
|
|
46
|
+
@staticmethod
|
|
47
|
+
def get_message_router_pipe_path() -> str:
|
|
48
|
+
"""
|
|
49
|
+
Returns path of message router named pipe on Windows
|
|
50
|
+
or file path of unix domain socket on UNIX.
|
|
51
|
+
|
|
52
|
+
Returns:
|
|
53
|
+
Path of message router's named pipe or unix domain socket.
|
|
54
|
+
"""
|
|
55
|
+
request = dto.EmptyRequest(
|
|
56
|
+
)
|
|
57
|
+
response = call_sync(
|
|
58
|
+
"tools/get_message_router_pipe",
|
|
59
|
+
request,
|
|
60
|
+
dto.StringResponse.from_binary)
|
|
61
|
+
return response.value
|
|
62
|
+
|
|
63
|
+
@staticmethod
|
|
64
|
+
def get_db_service_pipe_path() -> str:
|
|
65
|
+
"""
|
|
66
|
+
Returns the path for communicating with a local device database service.
|
|
67
|
+
This will be a named pipe on Windows and the file path of a unix domain socket on UNIX.
|
|
68
|
+
|
|
69
|
+
Returns:
|
|
70
|
+
Path of database service's named pipe or unix domain socket.
|
|
71
|
+
"""
|
|
72
|
+
request = dto.EmptyRequest(
|
|
73
|
+
)
|
|
74
|
+
response = call_sync(
|
|
75
|
+
"tools/get_db_service_pipe",
|
|
76
|
+
request,
|
|
77
|
+
dto.StringResponse.from_binary)
|
|
78
|
+
return response.value
|
zaber_motion/unit_table.py
CHANGED
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
# ===== THIS FILE IS GENERATED FROM A TEMPLATE ===== #
|
|
2
|
-
# ============== DO NOT EDIT DIRECTLY ============== #
|
|
3
|
-
|
|
4
|
-
from .call import call_sync
|
|
5
|
-
from .dto import requests as dto
|
|
6
|
-
from .units import UnitsAndLiterals
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class UnitTable:
|
|
10
|
-
"""
|
|
11
|
-
Helper for working with units of measure.
|
|
12
|
-
"""
|
|
13
|
-
|
|
14
|
-
@staticmethod
|
|
15
|
-
def get_symbol(
|
|
16
|
-
unit: UnitsAndLiterals
|
|
17
|
-
) -> str:
|
|
18
|
-
"""
|
|
19
|
-
Gets the standard symbol associated with a given unit.
|
|
20
|
-
|
|
21
|
-
Args:
|
|
22
|
-
unit: Unit of measure.
|
|
23
|
-
|
|
24
|
-
Returns:
|
|
25
|
-
Symbols corresponding to the given unit. Throws NoValueForKey if no symbol is defined.
|
|
26
|
-
"""
|
|
27
|
-
request = dto.UnitGetSymbolRequest(
|
|
28
|
-
unit=unit,
|
|
29
|
-
)
|
|
30
|
-
response = call_sync(
|
|
31
|
-
"units/get_symbol",
|
|
32
|
-
request,
|
|
33
|
-
dto.UnitGetSymbolResponse.from_binary)
|
|
34
|
-
return response.symbol
|
|
35
|
-
|
|
36
|
-
@staticmethod
|
|
37
|
-
def get_unit(
|
|
38
|
-
symbol: str
|
|
39
|
-
) -> UnitsAndLiterals:
|
|
40
|
-
"""
|
|
41
|
-
Gets the unit enum value associated with a standard symbol.
|
|
42
|
-
Note not all units can be retrieved this way.
|
|
43
|
-
|
|
44
|
-
Args:
|
|
45
|
-
symbol: Symbol to look up.
|
|
46
|
-
|
|
47
|
-
Returns:
|
|
48
|
-
The unit enum value with the given symbols. Throws NoValueForKey if the symbol is not supported for lookup.
|
|
49
|
-
"""
|
|
50
|
-
request = dto.UnitGetEnumRequest(
|
|
51
|
-
symbol=symbol,
|
|
52
|
-
)
|
|
53
|
-
response = call_sync(
|
|
54
|
-
"units/get_enum",
|
|
55
|
-
request,
|
|
56
|
-
dto.UnitGetEnumResponse.from_binary)
|
|
57
|
-
return response.unit
|
|
58
|
-
|
|
59
|
-
@staticmethod
|
|
60
|
-
def convert_units(
|
|
61
|
-
value: float,
|
|
62
|
-
from_unit: UnitsAndLiterals,
|
|
63
|
-
to_unit: UnitsAndLiterals
|
|
64
|
-
) -> float:
|
|
65
|
-
"""
|
|
66
|
-
Converts a value from one unit to a different unit of the same dimension.
|
|
67
|
-
Note that this function does not support native unit conversions.
|
|
68
|
-
|
|
69
|
-
Args:
|
|
70
|
-
value: The value to be converted.
|
|
71
|
-
from_unit: The unit which the value is being converted from.
|
|
72
|
-
to_unit: The unit which the value is being converted to.
|
|
73
|
-
|
|
74
|
-
Returns:
|
|
75
|
-
The converted value. Throws ConversionFailedException if unit is incompatible.
|
|
76
|
-
"""
|
|
77
|
-
request = dto.UnitConvertUnitRequest(
|
|
78
|
-
value=value,
|
|
79
|
-
from_unit=from_unit,
|
|
80
|
-
to_unit=to_unit,
|
|
81
|
-
)
|
|
82
|
-
response = call_sync(
|
|
83
|
-
"units/convert_unit",
|
|
84
|
-
request,
|
|
85
|
-
dto.DoubleResponse.from_binary)
|
|
86
|
-
return response.value
|
|
1
|
+
# ===== THIS FILE IS GENERATED FROM A TEMPLATE ===== #
|
|
2
|
+
# ============== DO NOT EDIT DIRECTLY ============== #
|
|
3
|
+
|
|
4
|
+
from .call import call_sync
|
|
5
|
+
from .dto import requests as dto
|
|
6
|
+
from .units import UnitsAndLiterals
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class UnitTable:
|
|
10
|
+
"""
|
|
11
|
+
Helper for working with units of measure.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
@staticmethod
|
|
15
|
+
def get_symbol(
|
|
16
|
+
unit: UnitsAndLiterals
|
|
17
|
+
) -> str:
|
|
18
|
+
"""
|
|
19
|
+
Gets the standard symbol associated with a given unit.
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
unit: Unit of measure.
|
|
23
|
+
|
|
24
|
+
Returns:
|
|
25
|
+
Symbols corresponding to the given unit. Throws NoValueForKey if no symbol is defined.
|
|
26
|
+
"""
|
|
27
|
+
request = dto.UnitGetSymbolRequest(
|
|
28
|
+
unit=unit,
|
|
29
|
+
)
|
|
30
|
+
response = call_sync(
|
|
31
|
+
"units/get_symbol",
|
|
32
|
+
request,
|
|
33
|
+
dto.UnitGetSymbolResponse.from_binary)
|
|
34
|
+
return response.symbol
|
|
35
|
+
|
|
36
|
+
@staticmethod
|
|
37
|
+
def get_unit(
|
|
38
|
+
symbol: str
|
|
39
|
+
) -> UnitsAndLiterals:
|
|
40
|
+
"""
|
|
41
|
+
Gets the unit enum value associated with a standard symbol.
|
|
42
|
+
Note not all units can be retrieved this way.
|
|
43
|
+
|
|
44
|
+
Args:
|
|
45
|
+
symbol: Symbol to look up.
|
|
46
|
+
|
|
47
|
+
Returns:
|
|
48
|
+
The unit enum value with the given symbols. Throws NoValueForKey if the symbol is not supported for lookup.
|
|
49
|
+
"""
|
|
50
|
+
request = dto.UnitGetEnumRequest(
|
|
51
|
+
symbol=symbol,
|
|
52
|
+
)
|
|
53
|
+
response = call_sync(
|
|
54
|
+
"units/get_enum",
|
|
55
|
+
request,
|
|
56
|
+
dto.UnitGetEnumResponse.from_binary)
|
|
57
|
+
return response.unit
|
|
58
|
+
|
|
59
|
+
@staticmethod
|
|
60
|
+
def convert_units(
|
|
61
|
+
value: float,
|
|
62
|
+
from_unit: UnitsAndLiterals,
|
|
63
|
+
to_unit: UnitsAndLiterals
|
|
64
|
+
) -> float:
|
|
65
|
+
"""
|
|
66
|
+
Converts a value from one unit to a different unit of the same dimension.
|
|
67
|
+
Note that this function does not support native unit conversions.
|
|
68
|
+
|
|
69
|
+
Args:
|
|
70
|
+
value: The value to be converted.
|
|
71
|
+
from_unit: The unit which the value is being converted from.
|
|
72
|
+
to_unit: The unit which the value is being converted to.
|
|
73
|
+
|
|
74
|
+
Returns:
|
|
75
|
+
The converted value. Throws ConversionFailedException if unit is incompatible.
|
|
76
|
+
"""
|
|
77
|
+
request = dto.UnitConvertUnitRequest(
|
|
78
|
+
value=value,
|
|
79
|
+
from_unit=from_unit,
|
|
80
|
+
to_unit=to_unit,
|
|
81
|
+
)
|
|
82
|
+
response = call_sync(
|
|
83
|
+
"units/convert_unit",
|
|
84
|
+
request,
|
|
85
|
+
dto.DoubleResponse.from_binary)
|
|
86
|
+
return response.value
|