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
zaber_motion/ascii/axis_group.py
CHANGED
|
@@ -1,391 +1,391 @@
|
|
|
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
|
-
|
|
7
|
-
from ..dto import requests as dto
|
|
8
|
-
from .axis import Axis
|
|
9
|
-
from ..dto.measurement import Measurement
|
|
10
|
-
from ..units import LengthUnits
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
class AxisGroup:
|
|
14
|
-
"""
|
|
15
|
-
Groups multiple axes across devices into a single group to allow for simultaneous movement.
|
|
16
|
-
Note that the movement is not coordinated and trajectory is inconsistent and not repeatable between calls.
|
|
17
|
-
Make sure that any possible trajectory is clear of potential obstacles.
|
|
18
|
-
The movement methods return after all the axes finish the movement successfully
|
|
19
|
-
or throw an error as soon as possible.
|
|
20
|
-
"""
|
|
21
|
-
|
|
22
|
-
@property
|
|
23
|
-
def axes(self) -> List[Axis]:
|
|
24
|
-
"""
|
|
25
|
-
Axes of the group.
|
|
26
|
-
"""
|
|
27
|
-
return self._axes
|
|
28
|
-
|
|
29
|
-
def __init__(self, axes: List[Axis]):
|
|
30
|
-
"""
|
|
31
|
-
Initializes the group with the axes to be controlled.
|
|
32
|
-
"""
|
|
33
|
-
self._axes: List[Axis] = axes.copy()
|
|
34
|
-
|
|
35
|
-
def home(
|
|
36
|
-
self
|
|
37
|
-
) -> None:
|
|
38
|
-
"""
|
|
39
|
-
Homes the axes.
|
|
40
|
-
"""
|
|
41
|
-
request = dto.AxesEmptyRequest(
|
|
42
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
43
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
44
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
45
|
-
)
|
|
46
|
-
call("axes/home", request)
|
|
47
|
-
|
|
48
|
-
async def home_async(
|
|
49
|
-
self
|
|
50
|
-
) -> None:
|
|
51
|
-
"""
|
|
52
|
-
Homes the axes.
|
|
53
|
-
"""
|
|
54
|
-
request = dto.AxesEmptyRequest(
|
|
55
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
56
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
57
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
58
|
-
)
|
|
59
|
-
await call_async("axes/home", request)
|
|
60
|
-
|
|
61
|
-
def stop(
|
|
62
|
-
self
|
|
63
|
-
) -> None:
|
|
64
|
-
"""
|
|
65
|
-
Stops the axes.
|
|
66
|
-
"""
|
|
67
|
-
request = dto.AxesEmptyRequest(
|
|
68
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
69
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
70
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
71
|
-
)
|
|
72
|
-
call("axes/stop", request)
|
|
73
|
-
|
|
74
|
-
async def stop_async(
|
|
75
|
-
self
|
|
76
|
-
) -> None:
|
|
77
|
-
"""
|
|
78
|
-
Stops the axes.
|
|
79
|
-
"""
|
|
80
|
-
request = dto.AxesEmptyRequest(
|
|
81
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
82
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
83
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
84
|
-
)
|
|
85
|
-
await call_async("axes/stop", request)
|
|
86
|
-
|
|
87
|
-
def move_absolute(
|
|
88
|
-
self,
|
|
89
|
-
*position: Measurement
|
|
90
|
-
) -> None:
|
|
91
|
-
"""
|
|
92
|
-
Moves the axes to absolute position.
|
|
93
|
-
|
|
94
|
-
Args:
|
|
95
|
-
position: Position.
|
|
96
|
-
"""
|
|
97
|
-
request = dto.AxesMoveRequest(
|
|
98
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
99
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
100
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
101
|
-
position=list(position),
|
|
102
|
-
)
|
|
103
|
-
call("axes/move_absolute", request)
|
|
104
|
-
|
|
105
|
-
async def move_absolute_async(
|
|
106
|
-
self,
|
|
107
|
-
*position: Measurement
|
|
108
|
-
) -> None:
|
|
109
|
-
"""
|
|
110
|
-
Moves the axes to absolute position.
|
|
111
|
-
|
|
112
|
-
Args:
|
|
113
|
-
position: Position.
|
|
114
|
-
"""
|
|
115
|
-
request = dto.AxesMoveRequest(
|
|
116
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
117
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
118
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
119
|
-
position=list(position),
|
|
120
|
-
)
|
|
121
|
-
await call_async("axes/move_absolute", request)
|
|
122
|
-
|
|
123
|
-
def move_relative(
|
|
124
|
-
self,
|
|
125
|
-
*position: Measurement
|
|
126
|
-
) -> None:
|
|
127
|
-
"""
|
|
128
|
-
Move axes to position relative to the current position.
|
|
129
|
-
|
|
130
|
-
Args:
|
|
131
|
-
position: Position.
|
|
132
|
-
"""
|
|
133
|
-
request = dto.AxesMoveRequest(
|
|
134
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
135
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
136
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
137
|
-
position=list(position),
|
|
138
|
-
)
|
|
139
|
-
call("axes/move_relative", request)
|
|
140
|
-
|
|
141
|
-
async def move_relative_async(
|
|
142
|
-
self,
|
|
143
|
-
*position: Measurement
|
|
144
|
-
) -> None:
|
|
145
|
-
"""
|
|
146
|
-
Move axes to position relative to the current position.
|
|
147
|
-
|
|
148
|
-
Args:
|
|
149
|
-
position: Position.
|
|
150
|
-
"""
|
|
151
|
-
request = dto.AxesMoveRequest(
|
|
152
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
153
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
154
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
155
|
-
position=list(position),
|
|
156
|
-
)
|
|
157
|
-
await call_async("axes/move_relative", request)
|
|
158
|
-
|
|
159
|
-
def move_min(
|
|
160
|
-
self
|
|
161
|
-
) -> None:
|
|
162
|
-
"""
|
|
163
|
-
Moves axes to the minimum position as specified by limit.min.
|
|
164
|
-
"""
|
|
165
|
-
request = dto.AxesEmptyRequest(
|
|
166
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
167
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
168
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
169
|
-
)
|
|
170
|
-
call("axes/move_min", request)
|
|
171
|
-
|
|
172
|
-
async def move_min_async(
|
|
173
|
-
self
|
|
174
|
-
) -> None:
|
|
175
|
-
"""
|
|
176
|
-
Moves axes to the minimum position as specified by limit.min.
|
|
177
|
-
"""
|
|
178
|
-
request = dto.AxesEmptyRequest(
|
|
179
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
180
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
181
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
182
|
-
)
|
|
183
|
-
await call_async("axes/move_min", request)
|
|
184
|
-
|
|
185
|
-
def move_max(
|
|
186
|
-
self
|
|
187
|
-
) -> None:
|
|
188
|
-
"""
|
|
189
|
-
Moves axes to the maximum position as specified by limit.max.
|
|
190
|
-
"""
|
|
191
|
-
request = dto.AxesEmptyRequest(
|
|
192
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
193
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
194
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
195
|
-
)
|
|
196
|
-
call("axes/move_max", request)
|
|
197
|
-
|
|
198
|
-
async def move_max_async(
|
|
199
|
-
self
|
|
200
|
-
) -> None:
|
|
201
|
-
"""
|
|
202
|
-
Moves axes to the maximum position as specified by limit.max.
|
|
203
|
-
"""
|
|
204
|
-
request = dto.AxesEmptyRequest(
|
|
205
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
206
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
207
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
208
|
-
)
|
|
209
|
-
await call_async("axes/move_max", request)
|
|
210
|
-
|
|
211
|
-
def wait_until_idle(
|
|
212
|
-
self
|
|
213
|
-
) -> None:
|
|
214
|
-
"""
|
|
215
|
-
Waits until all the axes stop moving.
|
|
216
|
-
"""
|
|
217
|
-
request = dto.AxesEmptyRequest(
|
|
218
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
219
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
220
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
221
|
-
)
|
|
222
|
-
call("axes/wait_until_idle", request)
|
|
223
|
-
|
|
224
|
-
async def wait_until_idle_async(
|
|
225
|
-
self
|
|
226
|
-
) -> None:
|
|
227
|
-
"""
|
|
228
|
-
Waits until all the axes stop moving.
|
|
229
|
-
"""
|
|
230
|
-
request = dto.AxesEmptyRequest(
|
|
231
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
232
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
233
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
234
|
-
)
|
|
235
|
-
await call_async("axes/wait_until_idle", request)
|
|
236
|
-
|
|
237
|
-
def is_busy(
|
|
238
|
-
self
|
|
239
|
-
) -> bool:
|
|
240
|
-
"""
|
|
241
|
-
Returns bool indicating whether any of the axes is executing a motion command.
|
|
242
|
-
|
|
243
|
-
Returns:
|
|
244
|
-
True if any of the axes is currently executing a motion command. False otherwise.
|
|
245
|
-
"""
|
|
246
|
-
request = dto.AxesEmptyRequest(
|
|
247
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
248
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
249
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
250
|
-
)
|
|
251
|
-
response = call(
|
|
252
|
-
"axes/is_busy",
|
|
253
|
-
request,
|
|
254
|
-
dto.BoolResponse.from_binary)
|
|
255
|
-
return response.value
|
|
256
|
-
|
|
257
|
-
async def is_busy_async(
|
|
258
|
-
self
|
|
259
|
-
) -> bool:
|
|
260
|
-
"""
|
|
261
|
-
Returns bool indicating whether any of the axes is executing a motion command.
|
|
262
|
-
|
|
263
|
-
Returns:
|
|
264
|
-
True if any of the axes is currently executing a motion command. False otherwise.
|
|
265
|
-
"""
|
|
266
|
-
request = dto.AxesEmptyRequest(
|
|
267
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
268
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
269
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
270
|
-
)
|
|
271
|
-
response = await call_async(
|
|
272
|
-
"axes/is_busy",
|
|
273
|
-
request,
|
|
274
|
-
dto.BoolResponse.from_binary)
|
|
275
|
-
return response.value
|
|
276
|
-
|
|
277
|
-
def is_homed(
|
|
278
|
-
self
|
|
279
|
-
) -> bool:
|
|
280
|
-
"""
|
|
281
|
-
Returns bool indicating whether all the axes are homed.
|
|
282
|
-
|
|
283
|
-
Returns:
|
|
284
|
-
True if all the axes are homed. False otherwise.
|
|
285
|
-
"""
|
|
286
|
-
request = dto.AxesEmptyRequest(
|
|
287
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
288
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
289
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
290
|
-
)
|
|
291
|
-
response = call(
|
|
292
|
-
"axes/is_homed",
|
|
293
|
-
request,
|
|
294
|
-
dto.BoolResponse.from_binary)
|
|
295
|
-
return response.value
|
|
296
|
-
|
|
297
|
-
async def is_homed_async(
|
|
298
|
-
self
|
|
299
|
-
) -> bool:
|
|
300
|
-
"""
|
|
301
|
-
Returns bool indicating whether all the axes are homed.
|
|
302
|
-
|
|
303
|
-
Returns:
|
|
304
|
-
True if all the axes are homed. False otherwise.
|
|
305
|
-
"""
|
|
306
|
-
request = dto.AxesEmptyRequest(
|
|
307
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
308
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
309
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
310
|
-
)
|
|
311
|
-
response = await call_async(
|
|
312
|
-
"axes/is_homed",
|
|
313
|
-
request,
|
|
314
|
-
dto.BoolResponse.from_binary)
|
|
315
|
-
return response.value
|
|
316
|
-
|
|
317
|
-
def get_position(
|
|
318
|
-
self,
|
|
319
|
-
*unit: LengthUnits
|
|
320
|
-
) -> List[float]:
|
|
321
|
-
"""
|
|
322
|
-
Returns current axes position.
|
|
323
|
-
The positions are requested sequentially.
|
|
324
|
-
The result position may not be accurate if the axes are moving.
|
|
325
|
-
|
|
326
|
-
Args:
|
|
327
|
-
unit: Units of position. You can specify units once or for each axis separately.
|
|
328
|
-
|
|
329
|
-
Returns:
|
|
330
|
-
Axes position.
|
|
331
|
-
"""
|
|
332
|
-
request = dto.AxesGetSettingRequest(
|
|
333
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
334
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
335
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
336
|
-
setting="pos",
|
|
337
|
-
unit=list(unit),
|
|
338
|
-
)
|
|
339
|
-
response = call(
|
|
340
|
-
"axes/get_setting",
|
|
341
|
-
request,
|
|
342
|
-
dto.DoubleArrayResponse.from_binary)
|
|
343
|
-
return response.values
|
|
344
|
-
|
|
345
|
-
async def get_position_async(
|
|
346
|
-
self,
|
|
347
|
-
*unit: LengthUnits
|
|
348
|
-
) -> List[float]:
|
|
349
|
-
"""
|
|
350
|
-
Returns current axes position.
|
|
351
|
-
The positions are requested sequentially.
|
|
352
|
-
The result position may not be accurate if the axes are moving.
|
|
353
|
-
|
|
354
|
-
Args:
|
|
355
|
-
unit: Units of position. You can specify units once or for each axis separately.
|
|
356
|
-
|
|
357
|
-
Returns:
|
|
358
|
-
Axes position.
|
|
359
|
-
"""
|
|
360
|
-
request = dto.AxesGetSettingRequest(
|
|
361
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
362
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
363
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
364
|
-
setting="pos",
|
|
365
|
-
unit=list(unit),
|
|
366
|
-
)
|
|
367
|
-
response = await call_async(
|
|
368
|
-
"axes/get_setting",
|
|
369
|
-
request,
|
|
370
|
-
dto.DoubleArrayResponse.from_binary)
|
|
371
|
-
return response.values
|
|
372
|
-
|
|
373
|
-
def __repr__(
|
|
374
|
-
self
|
|
375
|
-
) -> str:
|
|
376
|
-
"""
|
|
377
|
-
Returns a string that represents the axes.
|
|
378
|
-
|
|
379
|
-
Returns:
|
|
380
|
-
A string that represents the axes.
|
|
381
|
-
"""
|
|
382
|
-
request = dto.AxesEmptyRequest(
|
|
383
|
-
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
384
|
-
devices=[axis.device.device_address for axis in self._axes],
|
|
385
|
-
axes=[axis.axis_number for axis in self._axes],
|
|
386
|
-
)
|
|
387
|
-
response = call_sync(
|
|
388
|
-
"axes/to_string",
|
|
389
|
-
request,
|
|
390
|
-
dto.StringResponse.from_binary)
|
|
391
|
-
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
|
+
|
|
7
|
+
from ..dto import requests as dto
|
|
8
|
+
from .axis import Axis
|
|
9
|
+
from ..dto.measurement import Measurement
|
|
10
|
+
from ..units import LengthUnits
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class AxisGroup:
|
|
14
|
+
"""
|
|
15
|
+
Groups multiple axes across devices into a single group to allow for simultaneous movement.
|
|
16
|
+
Note that the movement is not coordinated and trajectory is inconsistent and not repeatable between calls.
|
|
17
|
+
Make sure that any possible trajectory is clear of potential obstacles.
|
|
18
|
+
The movement methods return after all the axes finish the movement successfully
|
|
19
|
+
or throw an error as soon as possible.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
@property
|
|
23
|
+
def axes(self) -> List[Axis]:
|
|
24
|
+
"""
|
|
25
|
+
Axes of the group.
|
|
26
|
+
"""
|
|
27
|
+
return self._axes
|
|
28
|
+
|
|
29
|
+
def __init__(self, axes: List[Axis]):
|
|
30
|
+
"""
|
|
31
|
+
Initializes the group with the axes to be controlled.
|
|
32
|
+
"""
|
|
33
|
+
self._axes: List[Axis] = axes.copy()
|
|
34
|
+
|
|
35
|
+
def home(
|
|
36
|
+
self
|
|
37
|
+
) -> None:
|
|
38
|
+
"""
|
|
39
|
+
Homes the axes.
|
|
40
|
+
"""
|
|
41
|
+
request = dto.AxesEmptyRequest(
|
|
42
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
43
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
44
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
45
|
+
)
|
|
46
|
+
call("axes/home", request)
|
|
47
|
+
|
|
48
|
+
async def home_async(
|
|
49
|
+
self
|
|
50
|
+
) -> None:
|
|
51
|
+
"""
|
|
52
|
+
Homes the axes.
|
|
53
|
+
"""
|
|
54
|
+
request = dto.AxesEmptyRequest(
|
|
55
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
56
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
57
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
58
|
+
)
|
|
59
|
+
await call_async("axes/home", request)
|
|
60
|
+
|
|
61
|
+
def stop(
|
|
62
|
+
self
|
|
63
|
+
) -> None:
|
|
64
|
+
"""
|
|
65
|
+
Stops the axes.
|
|
66
|
+
"""
|
|
67
|
+
request = dto.AxesEmptyRequest(
|
|
68
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
69
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
70
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
71
|
+
)
|
|
72
|
+
call("axes/stop", request)
|
|
73
|
+
|
|
74
|
+
async def stop_async(
|
|
75
|
+
self
|
|
76
|
+
) -> None:
|
|
77
|
+
"""
|
|
78
|
+
Stops the axes.
|
|
79
|
+
"""
|
|
80
|
+
request = dto.AxesEmptyRequest(
|
|
81
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
82
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
83
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
84
|
+
)
|
|
85
|
+
await call_async("axes/stop", request)
|
|
86
|
+
|
|
87
|
+
def move_absolute(
|
|
88
|
+
self,
|
|
89
|
+
*position: Measurement
|
|
90
|
+
) -> None:
|
|
91
|
+
"""
|
|
92
|
+
Moves the axes to absolute position.
|
|
93
|
+
|
|
94
|
+
Args:
|
|
95
|
+
position: Position.
|
|
96
|
+
"""
|
|
97
|
+
request = dto.AxesMoveRequest(
|
|
98
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
99
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
100
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
101
|
+
position=list(position),
|
|
102
|
+
)
|
|
103
|
+
call("axes/move_absolute", request)
|
|
104
|
+
|
|
105
|
+
async def move_absolute_async(
|
|
106
|
+
self,
|
|
107
|
+
*position: Measurement
|
|
108
|
+
) -> None:
|
|
109
|
+
"""
|
|
110
|
+
Moves the axes to absolute position.
|
|
111
|
+
|
|
112
|
+
Args:
|
|
113
|
+
position: Position.
|
|
114
|
+
"""
|
|
115
|
+
request = dto.AxesMoveRequest(
|
|
116
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
117
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
118
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
119
|
+
position=list(position),
|
|
120
|
+
)
|
|
121
|
+
await call_async("axes/move_absolute", request)
|
|
122
|
+
|
|
123
|
+
def move_relative(
|
|
124
|
+
self,
|
|
125
|
+
*position: Measurement
|
|
126
|
+
) -> None:
|
|
127
|
+
"""
|
|
128
|
+
Move axes to position relative to the current position.
|
|
129
|
+
|
|
130
|
+
Args:
|
|
131
|
+
position: Position.
|
|
132
|
+
"""
|
|
133
|
+
request = dto.AxesMoveRequest(
|
|
134
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
135
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
136
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
137
|
+
position=list(position),
|
|
138
|
+
)
|
|
139
|
+
call("axes/move_relative", request)
|
|
140
|
+
|
|
141
|
+
async def move_relative_async(
|
|
142
|
+
self,
|
|
143
|
+
*position: Measurement
|
|
144
|
+
) -> None:
|
|
145
|
+
"""
|
|
146
|
+
Move axes to position relative to the current position.
|
|
147
|
+
|
|
148
|
+
Args:
|
|
149
|
+
position: Position.
|
|
150
|
+
"""
|
|
151
|
+
request = dto.AxesMoveRequest(
|
|
152
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
153
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
154
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
155
|
+
position=list(position),
|
|
156
|
+
)
|
|
157
|
+
await call_async("axes/move_relative", request)
|
|
158
|
+
|
|
159
|
+
def move_min(
|
|
160
|
+
self
|
|
161
|
+
) -> None:
|
|
162
|
+
"""
|
|
163
|
+
Moves axes to the minimum position as specified by limit.min.
|
|
164
|
+
"""
|
|
165
|
+
request = dto.AxesEmptyRequest(
|
|
166
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
167
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
168
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
169
|
+
)
|
|
170
|
+
call("axes/move_min", request)
|
|
171
|
+
|
|
172
|
+
async def move_min_async(
|
|
173
|
+
self
|
|
174
|
+
) -> None:
|
|
175
|
+
"""
|
|
176
|
+
Moves axes to the minimum position as specified by limit.min.
|
|
177
|
+
"""
|
|
178
|
+
request = dto.AxesEmptyRequest(
|
|
179
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
180
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
181
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
182
|
+
)
|
|
183
|
+
await call_async("axes/move_min", request)
|
|
184
|
+
|
|
185
|
+
def move_max(
|
|
186
|
+
self
|
|
187
|
+
) -> None:
|
|
188
|
+
"""
|
|
189
|
+
Moves axes to the maximum position as specified by limit.max.
|
|
190
|
+
"""
|
|
191
|
+
request = dto.AxesEmptyRequest(
|
|
192
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
193
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
194
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
195
|
+
)
|
|
196
|
+
call("axes/move_max", request)
|
|
197
|
+
|
|
198
|
+
async def move_max_async(
|
|
199
|
+
self
|
|
200
|
+
) -> None:
|
|
201
|
+
"""
|
|
202
|
+
Moves axes to the maximum position as specified by limit.max.
|
|
203
|
+
"""
|
|
204
|
+
request = dto.AxesEmptyRequest(
|
|
205
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
206
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
207
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
208
|
+
)
|
|
209
|
+
await call_async("axes/move_max", request)
|
|
210
|
+
|
|
211
|
+
def wait_until_idle(
|
|
212
|
+
self
|
|
213
|
+
) -> None:
|
|
214
|
+
"""
|
|
215
|
+
Waits until all the axes stop moving.
|
|
216
|
+
"""
|
|
217
|
+
request = dto.AxesEmptyRequest(
|
|
218
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
219
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
220
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
221
|
+
)
|
|
222
|
+
call("axes/wait_until_idle", request)
|
|
223
|
+
|
|
224
|
+
async def wait_until_idle_async(
|
|
225
|
+
self
|
|
226
|
+
) -> None:
|
|
227
|
+
"""
|
|
228
|
+
Waits until all the axes stop moving.
|
|
229
|
+
"""
|
|
230
|
+
request = dto.AxesEmptyRequest(
|
|
231
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
232
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
233
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
234
|
+
)
|
|
235
|
+
await call_async("axes/wait_until_idle", request)
|
|
236
|
+
|
|
237
|
+
def is_busy(
|
|
238
|
+
self
|
|
239
|
+
) -> bool:
|
|
240
|
+
"""
|
|
241
|
+
Returns bool indicating whether any of the axes is executing a motion command.
|
|
242
|
+
|
|
243
|
+
Returns:
|
|
244
|
+
True if any of the axes is currently executing a motion command. False otherwise.
|
|
245
|
+
"""
|
|
246
|
+
request = dto.AxesEmptyRequest(
|
|
247
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
248
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
249
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
250
|
+
)
|
|
251
|
+
response = call(
|
|
252
|
+
"axes/is_busy",
|
|
253
|
+
request,
|
|
254
|
+
dto.BoolResponse.from_binary)
|
|
255
|
+
return response.value
|
|
256
|
+
|
|
257
|
+
async def is_busy_async(
|
|
258
|
+
self
|
|
259
|
+
) -> bool:
|
|
260
|
+
"""
|
|
261
|
+
Returns bool indicating whether any of the axes is executing a motion command.
|
|
262
|
+
|
|
263
|
+
Returns:
|
|
264
|
+
True if any of the axes is currently executing a motion command. False otherwise.
|
|
265
|
+
"""
|
|
266
|
+
request = dto.AxesEmptyRequest(
|
|
267
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
268
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
269
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
270
|
+
)
|
|
271
|
+
response = await call_async(
|
|
272
|
+
"axes/is_busy",
|
|
273
|
+
request,
|
|
274
|
+
dto.BoolResponse.from_binary)
|
|
275
|
+
return response.value
|
|
276
|
+
|
|
277
|
+
def is_homed(
|
|
278
|
+
self
|
|
279
|
+
) -> bool:
|
|
280
|
+
"""
|
|
281
|
+
Returns bool indicating whether all the axes are homed.
|
|
282
|
+
|
|
283
|
+
Returns:
|
|
284
|
+
True if all the axes are homed. False otherwise.
|
|
285
|
+
"""
|
|
286
|
+
request = dto.AxesEmptyRequest(
|
|
287
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
288
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
289
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
290
|
+
)
|
|
291
|
+
response = call(
|
|
292
|
+
"axes/is_homed",
|
|
293
|
+
request,
|
|
294
|
+
dto.BoolResponse.from_binary)
|
|
295
|
+
return response.value
|
|
296
|
+
|
|
297
|
+
async def is_homed_async(
|
|
298
|
+
self
|
|
299
|
+
) -> bool:
|
|
300
|
+
"""
|
|
301
|
+
Returns bool indicating whether all the axes are homed.
|
|
302
|
+
|
|
303
|
+
Returns:
|
|
304
|
+
True if all the axes are homed. False otherwise.
|
|
305
|
+
"""
|
|
306
|
+
request = dto.AxesEmptyRequest(
|
|
307
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
308
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
309
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
310
|
+
)
|
|
311
|
+
response = await call_async(
|
|
312
|
+
"axes/is_homed",
|
|
313
|
+
request,
|
|
314
|
+
dto.BoolResponse.from_binary)
|
|
315
|
+
return response.value
|
|
316
|
+
|
|
317
|
+
def get_position(
|
|
318
|
+
self,
|
|
319
|
+
*unit: LengthUnits
|
|
320
|
+
) -> List[float]:
|
|
321
|
+
"""
|
|
322
|
+
Returns current axes position.
|
|
323
|
+
The positions are requested sequentially.
|
|
324
|
+
The result position may not be accurate if the axes are moving.
|
|
325
|
+
|
|
326
|
+
Args:
|
|
327
|
+
unit: Units of position. You can specify units once or for each axis separately.
|
|
328
|
+
|
|
329
|
+
Returns:
|
|
330
|
+
Axes position.
|
|
331
|
+
"""
|
|
332
|
+
request = dto.AxesGetSettingRequest(
|
|
333
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
334
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
335
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
336
|
+
setting="pos",
|
|
337
|
+
unit=list(unit),
|
|
338
|
+
)
|
|
339
|
+
response = call(
|
|
340
|
+
"axes/get_setting",
|
|
341
|
+
request,
|
|
342
|
+
dto.DoubleArrayResponse.from_binary)
|
|
343
|
+
return response.values
|
|
344
|
+
|
|
345
|
+
async def get_position_async(
|
|
346
|
+
self,
|
|
347
|
+
*unit: LengthUnits
|
|
348
|
+
) -> List[float]:
|
|
349
|
+
"""
|
|
350
|
+
Returns current axes position.
|
|
351
|
+
The positions are requested sequentially.
|
|
352
|
+
The result position may not be accurate if the axes are moving.
|
|
353
|
+
|
|
354
|
+
Args:
|
|
355
|
+
unit: Units of position. You can specify units once or for each axis separately.
|
|
356
|
+
|
|
357
|
+
Returns:
|
|
358
|
+
Axes position.
|
|
359
|
+
"""
|
|
360
|
+
request = dto.AxesGetSettingRequest(
|
|
361
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
362
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
363
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
364
|
+
setting="pos",
|
|
365
|
+
unit=list(unit),
|
|
366
|
+
)
|
|
367
|
+
response = await call_async(
|
|
368
|
+
"axes/get_setting",
|
|
369
|
+
request,
|
|
370
|
+
dto.DoubleArrayResponse.from_binary)
|
|
371
|
+
return response.values
|
|
372
|
+
|
|
373
|
+
def __repr__(
|
|
374
|
+
self
|
|
375
|
+
) -> str:
|
|
376
|
+
"""
|
|
377
|
+
Returns a string that represents the axes.
|
|
378
|
+
|
|
379
|
+
Returns:
|
|
380
|
+
A string that represents the axes.
|
|
381
|
+
"""
|
|
382
|
+
request = dto.AxesEmptyRequest(
|
|
383
|
+
interfaces=[axis.device.connection.interface_id for axis in self._axes],
|
|
384
|
+
devices=[axis.device.device_address for axis in self._axes],
|
|
385
|
+
axes=[axis.axis_number for axis in self._axes],
|
|
386
|
+
)
|
|
387
|
+
response = call_sync(
|
|
388
|
+
"axes/to_string",
|
|
389
|
+
request,
|
|
390
|
+
dto.StringResponse.from_binary)
|
|
391
|
+
return response.value
|