zaber-motion 7.12.0__py3-none-win_amd64.whl → 7.14.0__py3-none-win_amd64.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-amd64.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,637 +1,637 @@
|
|
|
1
|
-
# pylint: disable=too-many-arguments, too-many-lines
|
|
2
|
-
|
|
3
|
-
# ===== THIS FILE IS GENERATED FROM A TEMPLATE ===== #
|
|
4
|
-
# ============== DO NOT EDIT DIRECTLY ============== #
|
|
5
|
-
from typing import List, Optional
|
|
6
|
-
from ..dto import requests as dto
|
|
7
|
-
from ..call import call, call_async
|
|
8
|
-
from .axis import Axis
|
|
9
|
-
from ..dto.ascii.servo_tuning_paramset import ServoTuningParamset
|
|
10
|
-
from ..dto.ascii.paramset_info import ParamsetInfo
|
|
11
|
-
from ..dto.ascii.servo_tuning_param import ServoTuningParam
|
|
12
|
-
from ..dto.ascii.simple_tuning import SimpleTuning
|
|
13
|
-
from ..dto.ascii.simple_tuning_param_definition import SimpleTuningParamDefinition
|
|
14
|
-
from ..dto.ascii.pid_tuning import PidTuning
|
|
15
|
-
from ..units import UnitsAndLiterals, Units
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class ServoTuner:
|
|
19
|
-
"""
|
|
20
|
-
Exposes the capabilities to inspect and edit an axis' servo tuning.
|
|
21
|
-
Requires at least Firmware 6.25 or 7.00.
|
|
22
|
-
"""
|
|
23
|
-
|
|
24
|
-
@property
|
|
25
|
-
def axis(self) -> Axis:
|
|
26
|
-
"""
|
|
27
|
-
The axis that will be tuned.
|
|
28
|
-
"""
|
|
29
|
-
return self._axis
|
|
30
|
-
|
|
31
|
-
def __init__(self, axis: Axis):
|
|
32
|
-
"""
|
|
33
|
-
Creates instance of ServoTuner for the given axis.
|
|
34
|
-
"""
|
|
35
|
-
self._axis: Axis = axis
|
|
36
|
-
|
|
37
|
-
def get_startup_paramset(
|
|
38
|
-
self
|
|
39
|
-
) -> ServoTuningParamset:
|
|
40
|
-
"""
|
|
41
|
-
Get the paramset that this device uses by default when it starts up.
|
|
42
|
-
|
|
43
|
-
Returns:
|
|
44
|
-
The paramset used when the device restarts.
|
|
45
|
-
"""
|
|
46
|
-
request = dto.AxisEmptyRequest(
|
|
47
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
48
|
-
device=self.axis.device.device_address,
|
|
49
|
-
axis=self.axis.axis_number,
|
|
50
|
-
)
|
|
51
|
-
response = call(
|
|
52
|
-
"servotuning/get_startup_set",
|
|
53
|
-
request,
|
|
54
|
-
dto.ServoTuningParamsetResponse.from_binary)
|
|
55
|
-
return response.paramset
|
|
56
|
-
|
|
57
|
-
async def get_startup_paramset_async(
|
|
58
|
-
self
|
|
59
|
-
) -> ServoTuningParamset:
|
|
60
|
-
"""
|
|
61
|
-
Get the paramset that this device uses by default when it starts up.
|
|
62
|
-
|
|
63
|
-
Returns:
|
|
64
|
-
The paramset used when the device restarts.
|
|
65
|
-
"""
|
|
66
|
-
request = dto.AxisEmptyRequest(
|
|
67
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
68
|
-
device=self.axis.device.device_address,
|
|
69
|
-
axis=self.axis.axis_number,
|
|
70
|
-
)
|
|
71
|
-
response = await call_async(
|
|
72
|
-
"servotuning/get_startup_set",
|
|
73
|
-
request,
|
|
74
|
-
dto.ServoTuningParamsetResponse.from_binary)
|
|
75
|
-
return response.paramset
|
|
76
|
-
|
|
77
|
-
def set_startup_paramset(
|
|
78
|
-
self,
|
|
79
|
-
paramset: ServoTuningParamset
|
|
80
|
-
) -> None:
|
|
81
|
-
"""
|
|
82
|
-
Set the paramset that this device uses by default when it starts up.
|
|
83
|
-
|
|
84
|
-
Args:
|
|
85
|
-
paramset: The paramset to use at startup.
|
|
86
|
-
"""
|
|
87
|
-
request = dto.ServoTuningRequest(
|
|
88
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
89
|
-
device=self.axis.device.device_address,
|
|
90
|
-
axis=self.axis.axis_number,
|
|
91
|
-
paramset=paramset,
|
|
92
|
-
)
|
|
93
|
-
call("servotuning/set_startup_set", request)
|
|
94
|
-
|
|
95
|
-
async def set_startup_paramset_async(
|
|
96
|
-
self,
|
|
97
|
-
paramset: ServoTuningParamset
|
|
98
|
-
) -> None:
|
|
99
|
-
"""
|
|
100
|
-
Set the paramset that this device uses by default when it starts up.
|
|
101
|
-
|
|
102
|
-
Args:
|
|
103
|
-
paramset: The paramset to use at startup.
|
|
104
|
-
"""
|
|
105
|
-
request = dto.ServoTuningRequest(
|
|
106
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
107
|
-
device=self.axis.device.device_address,
|
|
108
|
-
axis=self.axis.axis_number,
|
|
109
|
-
paramset=paramset,
|
|
110
|
-
)
|
|
111
|
-
await call_async("servotuning/set_startup_set", request)
|
|
112
|
-
|
|
113
|
-
def load_paramset(
|
|
114
|
-
self,
|
|
115
|
-
to_paramset: ServoTuningParamset,
|
|
116
|
-
from_paramset: ServoTuningParamset
|
|
117
|
-
) -> None:
|
|
118
|
-
"""
|
|
119
|
-
Load the values from one paramset into another.
|
|
120
|
-
|
|
121
|
-
Args:
|
|
122
|
-
to_paramset: The paramset to load into.
|
|
123
|
-
from_paramset: The paramset to load from.
|
|
124
|
-
"""
|
|
125
|
-
request = dto.LoadParamset(
|
|
126
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
127
|
-
device=self.axis.device.device_address,
|
|
128
|
-
axis=self.axis.axis_number,
|
|
129
|
-
to_paramset=to_paramset,
|
|
130
|
-
from_paramset=from_paramset,
|
|
131
|
-
)
|
|
132
|
-
call("servotuning/load_paramset", request)
|
|
133
|
-
|
|
134
|
-
async def load_paramset_async(
|
|
135
|
-
self,
|
|
136
|
-
to_paramset: ServoTuningParamset,
|
|
137
|
-
from_paramset: ServoTuningParamset
|
|
138
|
-
) -> None:
|
|
139
|
-
"""
|
|
140
|
-
Load the values from one paramset into another.
|
|
141
|
-
|
|
142
|
-
Args:
|
|
143
|
-
to_paramset: The paramset to load into.
|
|
144
|
-
from_paramset: The paramset to load from.
|
|
145
|
-
"""
|
|
146
|
-
request = dto.LoadParamset(
|
|
147
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
148
|
-
device=self.axis.device.device_address,
|
|
149
|
-
axis=self.axis.axis_number,
|
|
150
|
-
to_paramset=to_paramset,
|
|
151
|
-
from_paramset=from_paramset,
|
|
152
|
-
)
|
|
153
|
-
await call_async("servotuning/load_paramset", request)
|
|
154
|
-
|
|
155
|
-
def get_tuning(
|
|
156
|
-
self,
|
|
157
|
-
paramset: ServoTuningParamset
|
|
158
|
-
) -> ParamsetInfo:
|
|
159
|
-
"""
|
|
160
|
-
Get the full set of tuning parameters used by the firmware driving this axis.
|
|
161
|
-
|
|
162
|
-
Args:
|
|
163
|
-
paramset: The paramset to get tuning for.
|
|
164
|
-
|
|
165
|
-
Returns:
|
|
166
|
-
The raw representation of the current tuning.
|
|
167
|
-
"""
|
|
168
|
-
request = dto.ServoTuningRequest(
|
|
169
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
170
|
-
device=self.axis.device.device_address,
|
|
171
|
-
axis=self.axis.axis_number,
|
|
172
|
-
paramset=paramset,
|
|
173
|
-
)
|
|
174
|
-
response = call(
|
|
175
|
-
"servotuning/get_raw",
|
|
176
|
-
request,
|
|
177
|
-
ParamsetInfo.from_binary)
|
|
178
|
-
return response
|
|
179
|
-
|
|
180
|
-
async def get_tuning_async(
|
|
181
|
-
self,
|
|
182
|
-
paramset: ServoTuningParamset
|
|
183
|
-
) -> ParamsetInfo:
|
|
184
|
-
"""
|
|
185
|
-
Get the full set of tuning parameters used by the firmware driving this axis.
|
|
186
|
-
|
|
187
|
-
Args:
|
|
188
|
-
paramset: The paramset to get tuning for.
|
|
189
|
-
|
|
190
|
-
Returns:
|
|
191
|
-
The raw representation of the current tuning.
|
|
192
|
-
"""
|
|
193
|
-
request = dto.ServoTuningRequest(
|
|
194
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
195
|
-
device=self.axis.device.device_address,
|
|
196
|
-
axis=self.axis.axis_number,
|
|
197
|
-
paramset=paramset,
|
|
198
|
-
)
|
|
199
|
-
response = await call_async(
|
|
200
|
-
"servotuning/get_raw",
|
|
201
|
-
request,
|
|
202
|
-
ParamsetInfo.from_binary)
|
|
203
|
-
return response
|
|
204
|
-
|
|
205
|
-
def set_tuning(
|
|
206
|
-
self,
|
|
207
|
-
paramset: ServoTuningParamset,
|
|
208
|
-
tuning_params: List[ServoTuningParam],
|
|
209
|
-
set_unspecified_to_default: bool = False
|
|
210
|
-
) -> None:
|
|
211
|
-
"""
|
|
212
|
-
Set individual tuning parameters.
|
|
213
|
-
Only use this method if you have a strong understanding of Zaber specific tuning parameters.
|
|
214
|
-
|
|
215
|
-
Args:
|
|
216
|
-
paramset: The paramset to set tuning of.
|
|
217
|
-
tuning_params: The params to set.
|
|
218
|
-
set_unspecified_to_default: If true, any tuning parameters not included in TuningParams
|
|
219
|
-
are reset to their default values.
|
|
220
|
-
"""
|
|
221
|
-
request = dto.SetServoTuningRequest(
|
|
222
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
223
|
-
device=self.axis.device.device_address,
|
|
224
|
-
axis=self.axis.axis_number,
|
|
225
|
-
paramset=paramset,
|
|
226
|
-
tuning_params=tuning_params,
|
|
227
|
-
set_unspecified_to_default=set_unspecified_to_default,
|
|
228
|
-
)
|
|
229
|
-
call("servotuning/set_raw", request)
|
|
230
|
-
|
|
231
|
-
async def set_tuning_async(
|
|
232
|
-
self,
|
|
233
|
-
paramset: ServoTuningParamset,
|
|
234
|
-
tuning_params: List[ServoTuningParam],
|
|
235
|
-
set_unspecified_to_default: bool = False
|
|
236
|
-
) -> None:
|
|
237
|
-
"""
|
|
238
|
-
Set individual tuning parameters.
|
|
239
|
-
Only use this method if you have a strong understanding of Zaber specific tuning parameters.
|
|
240
|
-
|
|
241
|
-
Args:
|
|
242
|
-
paramset: The paramset to set tuning of.
|
|
243
|
-
tuning_params: The params to set.
|
|
244
|
-
set_unspecified_to_default: If true, any tuning parameters not included in TuningParams
|
|
245
|
-
are reset to their default values.
|
|
246
|
-
"""
|
|
247
|
-
request = dto.SetServoTuningRequest(
|
|
248
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
249
|
-
device=self.axis.device.device_address,
|
|
250
|
-
axis=self.axis.axis_number,
|
|
251
|
-
paramset=paramset,
|
|
252
|
-
tuning_params=tuning_params,
|
|
253
|
-
set_unspecified_to_default=set_unspecified_to_default,
|
|
254
|
-
)
|
|
255
|
-
await call_async("servotuning/set_raw", request)
|
|
256
|
-
|
|
257
|
-
def set_pid_tuning(
|
|
258
|
-
self,
|
|
259
|
-
paramset: ServoTuningParamset,
|
|
260
|
-
p: float,
|
|
261
|
-
i: float,
|
|
262
|
-
d: float,
|
|
263
|
-
fc: float
|
|
264
|
-
) -> PidTuning:
|
|
265
|
-
"""
|
|
266
|
-
Sets the tuning of a paramset using the PID method.
|
|
267
|
-
|
|
268
|
-
Args:
|
|
269
|
-
paramset: The paramset to get tuning for.
|
|
270
|
-
p: The proportional gain. Must be in units of N/m for linear devices, and N⋅m/° for rotary devices.
|
|
271
|
-
i: The integral gain. Must be in units of N/(m⋅s) for linear devices, and N⋅m/(°⋅s) for rotary devices.
|
|
272
|
-
d: The derivative gain. Must be in units of N⋅s/m for linear devices, and N⋅m⋅s/° for rotary devices.
|
|
273
|
-
fc: The cutoff frequency. Must be in units of Hz.
|
|
274
|
-
|
|
275
|
-
Returns:
|
|
276
|
-
The PID representation of the current tuning after your changes have been applied.
|
|
277
|
-
"""
|
|
278
|
-
request = dto.SetServoTuningPIDRequest(
|
|
279
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
280
|
-
device=self.axis.device.device_address,
|
|
281
|
-
axis=self.axis.axis_number,
|
|
282
|
-
paramset=paramset,
|
|
283
|
-
p=p,
|
|
284
|
-
i=i,
|
|
285
|
-
d=d,
|
|
286
|
-
fc=fc,
|
|
287
|
-
)
|
|
288
|
-
response = call(
|
|
289
|
-
"servotuning/set_pid",
|
|
290
|
-
request,
|
|
291
|
-
PidTuning.from_binary)
|
|
292
|
-
return response
|
|
293
|
-
|
|
294
|
-
async def set_pid_tuning_async(
|
|
295
|
-
self,
|
|
296
|
-
paramset: ServoTuningParamset,
|
|
297
|
-
p: float,
|
|
298
|
-
i: float,
|
|
299
|
-
d: float,
|
|
300
|
-
fc: float
|
|
301
|
-
) -> PidTuning:
|
|
302
|
-
"""
|
|
303
|
-
Sets the tuning of a paramset using the PID method.
|
|
304
|
-
|
|
305
|
-
Args:
|
|
306
|
-
paramset: The paramset to get tuning for.
|
|
307
|
-
p: The proportional gain. Must be in units of N/m for linear devices, and N⋅m/° for rotary devices.
|
|
308
|
-
i: The integral gain. Must be in units of N/(m⋅s) for linear devices, and N⋅m/(°⋅s) for rotary devices.
|
|
309
|
-
d: The derivative gain. Must be in units of N⋅s/m for linear devices, and N⋅m⋅s/° for rotary devices.
|
|
310
|
-
fc: The cutoff frequency. Must be in units of Hz.
|
|
311
|
-
|
|
312
|
-
Returns:
|
|
313
|
-
The PID representation of the current tuning after your changes have been applied.
|
|
314
|
-
"""
|
|
315
|
-
request = dto.SetServoTuningPIDRequest(
|
|
316
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
317
|
-
device=self.axis.device.device_address,
|
|
318
|
-
axis=self.axis.axis_number,
|
|
319
|
-
paramset=paramset,
|
|
320
|
-
p=p,
|
|
321
|
-
i=i,
|
|
322
|
-
d=d,
|
|
323
|
-
fc=fc,
|
|
324
|
-
)
|
|
325
|
-
response = await call_async(
|
|
326
|
-
"servotuning/set_pid",
|
|
327
|
-
request,
|
|
328
|
-
PidTuning.from_binary)
|
|
329
|
-
return response
|
|
330
|
-
|
|
331
|
-
def get_pid_tuning(
|
|
332
|
-
self,
|
|
333
|
-
paramset: ServoTuningParamset
|
|
334
|
-
) -> PidTuning:
|
|
335
|
-
"""
|
|
336
|
-
Gets the PID representation of this paramset's servo tuning.
|
|
337
|
-
|
|
338
|
-
Args:
|
|
339
|
-
paramset: The paramset to get tuning for.
|
|
340
|
-
|
|
341
|
-
Returns:
|
|
342
|
-
The PID representation of the current tuning.
|
|
343
|
-
"""
|
|
344
|
-
request = dto.ServoTuningRequest(
|
|
345
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
346
|
-
device=self.axis.device.device_address,
|
|
347
|
-
axis=self.axis.axis_number,
|
|
348
|
-
paramset=paramset,
|
|
349
|
-
)
|
|
350
|
-
response = call(
|
|
351
|
-
"servotuning/get_pid",
|
|
352
|
-
request,
|
|
353
|
-
PidTuning.from_binary)
|
|
354
|
-
return response
|
|
355
|
-
|
|
356
|
-
async def get_pid_tuning_async(
|
|
357
|
-
self,
|
|
358
|
-
paramset: ServoTuningParamset
|
|
359
|
-
) -> PidTuning:
|
|
360
|
-
"""
|
|
361
|
-
Gets the PID representation of this paramset's servo tuning.
|
|
362
|
-
|
|
363
|
-
Args:
|
|
364
|
-
paramset: The paramset to get tuning for.
|
|
365
|
-
|
|
366
|
-
Returns:
|
|
367
|
-
The PID representation of the current tuning.
|
|
368
|
-
"""
|
|
369
|
-
request = dto.ServoTuningRequest(
|
|
370
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
371
|
-
device=self.axis.device.device_address,
|
|
372
|
-
axis=self.axis.axis_number,
|
|
373
|
-
paramset=paramset,
|
|
374
|
-
)
|
|
375
|
-
response = await call_async(
|
|
376
|
-
"servotuning/get_pid",
|
|
377
|
-
request,
|
|
378
|
-
PidTuning.from_binary)
|
|
379
|
-
return response
|
|
380
|
-
|
|
381
|
-
def get_simple_tuning_param_definitions(
|
|
382
|
-
self
|
|
383
|
-
) -> List[SimpleTuningParamDefinition]:
|
|
384
|
-
"""
|
|
385
|
-
Gets the parameters that are required to tune this device.
|
|
386
|
-
|
|
387
|
-
Returns:
|
|
388
|
-
The tuning parameters.
|
|
389
|
-
"""
|
|
390
|
-
request = dto.AxisEmptyRequest(
|
|
391
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
392
|
-
device=self.axis.device.device_address,
|
|
393
|
-
axis=self.axis.axis_number,
|
|
394
|
-
)
|
|
395
|
-
response = call(
|
|
396
|
-
"servotuning/get_simple_params_definition",
|
|
397
|
-
request,
|
|
398
|
-
dto.GetSimpleTuningParamDefinitionResponse.from_binary)
|
|
399
|
-
return response.params
|
|
400
|
-
|
|
401
|
-
async def get_simple_tuning_param_definitions_async(
|
|
402
|
-
self
|
|
403
|
-
) -> List[SimpleTuningParamDefinition]:
|
|
404
|
-
"""
|
|
405
|
-
Gets the parameters that are required to tune this device.
|
|
406
|
-
|
|
407
|
-
Returns:
|
|
408
|
-
The tuning parameters.
|
|
409
|
-
"""
|
|
410
|
-
request = dto.AxisEmptyRequest(
|
|
411
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
412
|
-
device=self.axis.device.device_address,
|
|
413
|
-
axis=self.axis.axis_number,
|
|
414
|
-
)
|
|
415
|
-
response = await call_async(
|
|
416
|
-
"servotuning/get_simple_params_definition",
|
|
417
|
-
request,
|
|
418
|
-
dto.GetSimpleTuningParamDefinitionResponse.from_binary)
|
|
419
|
-
return response.params
|
|
420
|
-
|
|
421
|
-
def set_simple_tuning(
|
|
422
|
-
self,
|
|
423
|
-
paramset: ServoTuningParamset,
|
|
424
|
-
tuning_params: List[ServoTuningParam],
|
|
425
|
-
load_mass: float,
|
|
426
|
-
load_mass_units: UnitsAndLiterals = Units.NATIVE,
|
|
427
|
-
carriage_mass: Optional[float] = None,
|
|
428
|
-
carriage_mass_units: UnitsAndLiterals = Units.NATIVE,
|
|
429
|
-
motor_inertia: Optional[float] = None,
|
|
430
|
-
motor_inertia_units: UnitsAndLiterals = Units.NATIVE
|
|
431
|
-
) -> None:
|
|
432
|
-
"""
|
|
433
|
-
Set the tuning of this device using the simple input method.
|
|
434
|
-
|
|
435
|
-
Args:
|
|
436
|
-
paramset: The paramset to set tuning for.
|
|
437
|
-
tuning_params: The params used to tune this device.
|
|
438
|
-
To get what parameters are expected, call GetSimpleTuningParamList.
|
|
439
|
-
All values must be between 0 and 1.
|
|
440
|
-
load_mass: The mass loaded on the stage, excluding the mass of the carriage itself.
|
|
441
|
-
Unless specified by the LoadMassUnits parameter, this is in units of kg for linear devices,
|
|
442
|
-
and kg⋅m² for rotary devices.
|
|
443
|
-
load_mass_units: The units the load mass was supplied in.
|
|
444
|
-
carriage_mass: The mass of the carriage itself. If not supplied, the product's default mass will be used.
|
|
445
|
-
Unless specified by the CarriageMassUnits parameter, this is in units of kg for linear devices,
|
|
446
|
-
and kg⋅m² for rotary devices.
|
|
447
|
-
carriage_mass_units: The units the carriage mass was supplied in.
|
|
448
|
-
motor_inertia: The inertia of the motor. Unless specified by the MotorInertiaUnits parameter,
|
|
449
|
-
this is in units of kg⋅m².
|
|
450
|
-
motor_inertia_units: The units the motor inertia was supplied in.
|
|
451
|
-
"""
|
|
452
|
-
request = dto.SetSimpleTuning(
|
|
453
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
454
|
-
device=self.axis.device.device_address,
|
|
455
|
-
axis=self.axis.axis_number,
|
|
456
|
-
paramset=paramset,
|
|
457
|
-
tuning_params=tuning_params,
|
|
458
|
-
load_mass=load_mass,
|
|
459
|
-
load_mass_units=load_mass_units,
|
|
460
|
-
carriage_mass=carriage_mass,
|
|
461
|
-
carriage_mass_units=carriage_mass_units,
|
|
462
|
-
motor_inertia=motor_inertia,
|
|
463
|
-
motor_inertia_units=motor_inertia_units,
|
|
464
|
-
)
|
|
465
|
-
call("servotuning/set_simple_tuning", request)
|
|
466
|
-
|
|
467
|
-
async def set_simple_tuning_async(
|
|
468
|
-
self,
|
|
469
|
-
paramset: ServoTuningParamset,
|
|
470
|
-
tuning_params: List[ServoTuningParam],
|
|
471
|
-
load_mass: float,
|
|
472
|
-
load_mass_units: UnitsAndLiterals = Units.NATIVE,
|
|
473
|
-
carriage_mass: Optional[float] = None,
|
|
474
|
-
carriage_mass_units: UnitsAndLiterals = Units.NATIVE,
|
|
475
|
-
motor_inertia: Optional[float] = None,
|
|
476
|
-
motor_inertia_units: UnitsAndLiterals = Units.NATIVE
|
|
477
|
-
) -> None:
|
|
478
|
-
"""
|
|
479
|
-
Set the tuning of this device using the simple input method.
|
|
480
|
-
|
|
481
|
-
Args:
|
|
482
|
-
paramset: The paramset to set tuning for.
|
|
483
|
-
tuning_params: The params used to tune this device.
|
|
484
|
-
To get what parameters are expected, call GetSimpleTuningParamList.
|
|
485
|
-
All values must be between 0 and 1.
|
|
486
|
-
load_mass: The mass loaded on the stage, excluding the mass of the carriage itself.
|
|
487
|
-
Unless specified by the LoadMassUnits parameter, this is in units of kg for linear devices,
|
|
488
|
-
and kg⋅m² for rotary devices.
|
|
489
|
-
load_mass_units: The units the load mass was supplied in.
|
|
490
|
-
carriage_mass: The mass of the carriage itself. If not supplied, the product's default mass will be used.
|
|
491
|
-
Unless specified by the CarriageMassUnits parameter, this is in units of kg for linear devices,
|
|
492
|
-
and kg⋅m² for rotary devices.
|
|
493
|
-
carriage_mass_units: The units the carriage mass was supplied in.
|
|
494
|
-
motor_inertia: The inertia of the motor. Unless specified by the MotorInertiaUnits parameter,
|
|
495
|
-
this is in units of kg⋅m².
|
|
496
|
-
motor_inertia_units: The units the motor inertia was supplied in.
|
|
497
|
-
"""
|
|
498
|
-
request = dto.SetSimpleTuning(
|
|
499
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
500
|
-
device=self.axis.device.device_address,
|
|
501
|
-
axis=self.axis.axis_number,
|
|
502
|
-
paramset=paramset,
|
|
503
|
-
tuning_params=tuning_params,
|
|
504
|
-
load_mass=load_mass,
|
|
505
|
-
load_mass_units=load_mass_units,
|
|
506
|
-
carriage_mass=carriage_mass,
|
|
507
|
-
carriage_mass_units=carriage_mass_units,
|
|
508
|
-
motor_inertia=motor_inertia,
|
|
509
|
-
motor_inertia_units=motor_inertia_units,
|
|
510
|
-
)
|
|
511
|
-
await call_async("servotuning/set_simple_tuning", request)
|
|
512
|
-
|
|
513
|
-
def get_simple_tuning(
|
|
514
|
-
self,
|
|
515
|
-
paramset: ServoTuningParamset
|
|
516
|
-
) -> SimpleTuning:
|
|
517
|
-
"""
|
|
518
|
-
Get the simple tuning parameters for this device.
|
|
519
|
-
|
|
520
|
-
Args:
|
|
521
|
-
paramset: The paramset to get tuning for.
|
|
522
|
-
|
|
523
|
-
Returns:
|
|
524
|
-
The simple tuning parameters.
|
|
525
|
-
"""
|
|
526
|
-
request = dto.ServoTuningRequest(
|
|
527
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
528
|
-
device=self.axis.device.device_address,
|
|
529
|
-
axis=self.axis.axis_number,
|
|
530
|
-
paramset=paramset,
|
|
531
|
-
)
|
|
532
|
-
response = call(
|
|
533
|
-
"servotuning/get_simple_tuning",
|
|
534
|
-
request,
|
|
535
|
-
SimpleTuning.from_binary)
|
|
536
|
-
return response
|
|
537
|
-
|
|
538
|
-
async def get_simple_tuning_async(
|
|
539
|
-
self,
|
|
540
|
-
paramset: ServoTuningParamset
|
|
541
|
-
) -> SimpleTuning:
|
|
542
|
-
"""
|
|
543
|
-
Get the simple tuning parameters for this device.
|
|
544
|
-
|
|
545
|
-
Args:
|
|
546
|
-
paramset: The paramset to get tuning for.
|
|
547
|
-
|
|
548
|
-
Returns:
|
|
549
|
-
The simple tuning parameters.
|
|
550
|
-
"""
|
|
551
|
-
request = dto.ServoTuningRequest(
|
|
552
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
553
|
-
device=self.axis.device.device_address,
|
|
554
|
-
axis=self.axis.axis_number,
|
|
555
|
-
paramset=paramset,
|
|
556
|
-
)
|
|
557
|
-
response = await call_async(
|
|
558
|
-
"servotuning/get_simple_tuning",
|
|
559
|
-
request,
|
|
560
|
-
SimpleTuning.from_binary)
|
|
561
|
-
return response
|
|
562
|
-
|
|
563
|
-
def is_using_simple_tuning(
|
|
564
|
-
self,
|
|
565
|
-
paramset: ServoTuningParamset,
|
|
566
|
-
tuning_params: List[ServoTuningParam],
|
|
567
|
-
load_mass: float,
|
|
568
|
-
carriage_mass: Optional[float] = None
|
|
569
|
-
) -> bool:
|
|
570
|
-
"""
|
|
571
|
-
Deprecated: Use GetSimpleTuning instead.
|
|
572
|
-
|
|
573
|
-
Checks if the provided simple tuning is being stored by this paramset.
|
|
574
|
-
|
|
575
|
-
Args:
|
|
576
|
-
paramset: The paramset to set tuning for.
|
|
577
|
-
tuning_params: The params used to tune this device.
|
|
578
|
-
To get what parameters are expected, call GetSimpleTuningParamList.
|
|
579
|
-
All values must be between 0 and 1.
|
|
580
|
-
load_mass: The mass loaded on the stage (excluding the mass of the carriage itself) in kg.
|
|
581
|
-
carriage_mass: The mass of the carriage in kg. If this value is not set the default carriage mass is used.
|
|
582
|
-
|
|
583
|
-
Returns:
|
|
584
|
-
True if the provided simple tuning is currently stored in this paramset.
|
|
585
|
-
"""
|
|
586
|
-
request = dto.SetSimpleTuning(
|
|
587
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
588
|
-
device=self.axis.device.device_address,
|
|
589
|
-
axis=self.axis.axis_number,
|
|
590
|
-
paramset=paramset,
|
|
591
|
-
tuning_params=tuning_params,
|
|
592
|
-
load_mass=load_mass,
|
|
593
|
-
carriage_mass=carriage_mass,
|
|
594
|
-
)
|
|
595
|
-
response = call(
|
|
596
|
-
"servotuning/is_using_simple_tuning",
|
|
597
|
-
request,
|
|
598
|
-
dto.BoolResponse.from_binary)
|
|
599
|
-
return response.value
|
|
600
|
-
|
|
601
|
-
async def is_using_simple_tuning_async(
|
|
602
|
-
self,
|
|
603
|
-
paramset: ServoTuningParamset,
|
|
604
|
-
tuning_params: List[ServoTuningParam],
|
|
605
|
-
load_mass: float,
|
|
606
|
-
carriage_mass: Optional[float] = None
|
|
607
|
-
) -> bool:
|
|
608
|
-
"""
|
|
609
|
-
Deprecated: Use GetSimpleTuning instead.
|
|
610
|
-
|
|
611
|
-
Checks if the provided simple tuning is being stored by this paramset.
|
|
612
|
-
|
|
613
|
-
Args:
|
|
614
|
-
paramset: The paramset to set tuning for.
|
|
615
|
-
tuning_params: The params used to tune this device.
|
|
616
|
-
To get what parameters are expected, call GetSimpleTuningParamList.
|
|
617
|
-
All values must be between 0 and 1.
|
|
618
|
-
load_mass: The mass loaded on the stage (excluding the mass of the carriage itself) in kg.
|
|
619
|
-
carriage_mass: The mass of the carriage in kg. If this value is not set the default carriage mass is used.
|
|
620
|
-
|
|
621
|
-
Returns:
|
|
622
|
-
True if the provided simple tuning is currently stored in this paramset.
|
|
623
|
-
"""
|
|
624
|
-
request = dto.SetSimpleTuning(
|
|
625
|
-
interface_id=self.axis.device.connection.interface_id,
|
|
626
|
-
device=self.axis.device.device_address,
|
|
627
|
-
axis=self.axis.axis_number,
|
|
628
|
-
paramset=paramset,
|
|
629
|
-
tuning_params=tuning_params,
|
|
630
|
-
load_mass=load_mass,
|
|
631
|
-
carriage_mass=carriage_mass,
|
|
632
|
-
)
|
|
633
|
-
response = await call_async(
|
|
634
|
-
"servotuning/is_using_simple_tuning",
|
|
635
|
-
request,
|
|
636
|
-
dto.BoolResponse.from_binary)
|
|
637
|
-
return response.value
|
|
1
|
+
# pylint: disable=too-many-arguments, too-many-lines
|
|
2
|
+
|
|
3
|
+
# ===== THIS FILE IS GENERATED FROM A TEMPLATE ===== #
|
|
4
|
+
# ============== DO NOT EDIT DIRECTLY ============== #
|
|
5
|
+
from typing import List, Optional
|
|
6
|
+
from ..dto import requests as dto
|
|
7
|
+
from ..call import call, call_async
|
|
8
|
+
from .axis import Axis
|
|
9
|
+
from ..dto.ascii.servo_tuning_paramset import ServoTuningParamset
|
|
10
|
+
from ..dto.ascii.paramset_info import ParamsetInfo
|
|
11
|
+
from ..dto.ascii.servo_tuning_param import ServoTuningParam
|
|
12
|
+
from ..dto.ascii.simple_tuning import SimpleTuning
|
|
13
|
+
from ..dto.ascii.simple_tuning_param_definition import SimpleTuningParamDefinition
|
|
14
|
+
from ..dto.ascii.pid_tuning import PidTuning
|
|
15
|
+
from ..units import UnitsAndLiterals, Units
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class ServoTuner:
|
|
19
|
+
"""
|
|
20
|
+
Exposes the capabilities to inspect and edit an axis' servo tuning.
|
|
21
|
+
Requires at least Firmware 6.25 or 7.00.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
@property
|
|
25
|
+
def axis(self) -> Axis:
|
|
26
|
+
"""
|
|
27
|
+
The axis that will be tuned.
|
|
28
|
+
"""
|
|
29
|
+
return self._axis
|
|
30
|
+
|
|
31
|
+
def __init__(self, axis: Axis):
|
|
32
|
+
"""
|
|
33
|
+
Creates instance of ServoTuner for the given axis.
|
|
34
|
+
"""
|
|
35
|
+
self._axis: Axis = axis
|
|
36
|
+
|
|
37
|
+
def get_startup_paramset(
|
|
38
|
+
self
|
|
39
|
+
) -> ServoTuningParamset:
|
|
40
|
+
"""
|
|
41
|
+
Get the paramset that this device uses by default when it starts up.
|
|
42
|
+
|
|
43
|
+
Returns:
|
|
44
|
+
The paramset used when the device restarts.
|
|
45
|
+
"""
|
|
46
|
+
request = dto.AxisEmptyRequest(
|
|
47
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
48
|
+
device=self.axis.device.device_address,
|
|
49
|
+
axis=self.axis.axis_number,
|
|
50
|
+
)
|
|
51
|
+
response = call(
|
|
52
|
+
"servotuning/get_startup_set",
|
|
53
|
+
request,
|
|
54
|
+
dto.ServoTuningParamsetResponse.from_binary)
|
|
55
|
+
return response.paramset
|
|
56
|
+
|
|
57
|
+
async def get_startup_paramset_async(
|
|
58
|
+
self
|
|
59
|
+
) -> ServoTuningParamset:
|
|
60
|
+
"""
|
|
61
|
+
Get the paramset that this device uses by default when it starts up.
|
|
62
|
+
|
|
63
|
+
Returns:
|
|
64
|
+
The paramset used when the device restarts.
|
|
65
|
+
"""
|
|
66
|
+
request = dto.AxisEmptyRequest(
|
|
67
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
68
|
+
device=self.axis.device.device_address,
|
|
69
|
+
axis=self.axis.axis_number,
|
|
70
|
+
)
|
|
71
|
+
response = await call_async(
|
|
72
|
+
"servotuning/get_startup_set",
|
|
73
|
+
request,
|
|
74
|
+
dto.ServoTuningParamsetResponse.from_binary)
|
|
75
|
+
return response.paramset
|
|
76
|
+
|
|
77
|
+
def set_startup_paramset(
|
|
78
|
+
self,
|
|
79
|
+
paramset: ServoTuningParamset
|
|
80
|
+
) -> None:
|
|
81
|
+
"""
|
|
82
|
+
Set the paramset that this device uses by default when it starts up.
|
|
83
|
+
|
|
84
|
+
Args:
|
|
85
|
+
paramset: The paramset to use at startup.
|
|
86
|
+
"""
|
|
87
|
+
request = dto.ServoTuningRequest(
|
|
88
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
89
|
+
device=self.axis.device.device_address,
|
|
90
|
+
axis=self.axis.axis_number,
|
|
91
|
+
paramset=paramset,
|
|
92
|
+
)
|
|
93
|
+
call("servotuning/set_startup_set", request)
|
|
94
|
+
|
|
95
|
+
async def set_startup_paramset_async(
|
|
96
|
+
self,
|
|
97
|
+
paramset: ServoTuningParamset
|
|
98
|
+
) -> None:
|
|
99
|
+
"""
|
|
100
|
+
Set the paramset that this device uses by default when it starts up.
|
|
101
|
+
|
|
102
|
+
Args:
|
|
103
|
+
paramset: The paramset to use at startup.
|
|
104
|
+
"""
|
|
105
|
+
request = dto.ServoTuningRequest(
|
|
106
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
107
|
+
device=self.axis.device.device_address,
|
|
108
|
+
axis=self.axis.axis_number,
|
|
109
|
+
paramset=paramset,
|
|
110
|
+
)
|
|
111
|
+
await call_async("servotuning/set_startup_set", request)
|
|
112
|
+
|
|
113
|
+
def load_paramset(
|
|
114
|
+
self,
|
|
115
|
+
to_paramset: ServoTuningParamset,
|
|
116
|
+
from_paramset: ServoTuningParamset
|
|
117
|
+
) -> None:
|
|
118
|
+
"""
|
|
119
|
+
Load the values from one paramset into another.
|
|
120
|
+
|
|
121
|
+
Args:
|
|
122
|
+
to_paramset: The paramset to load into.
|
|
123
|
+
from_paramset: The paramset to load from.
|
|
124
|
+
"""
|
|
125
|
+
request = dto.LoadParamset(
|
|
126
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
127
|
+
device=self.axis.device.device_address,
|
|
128
|
+
axis=self.axis.axis_number,
|
|
129
|
+
to_paramset=to_paramset,
|
|
130
|
+
from_paramset=from_paramset,
|
|
131
|
+
)
|
|
132
|
+
call("servotuning/load_paramset", request)
|
|
133
|
+
|
|
134
|
+
async def load_paramset_async(
|
|
135
|
+
self,
|
|
136
|
+
to_paramset: ServoTuningParamset,
|
|
137
|
+
from_paramset: ServoTuningParamset
|
|
138
|
+
) -> None:
|
|
139
|
+
"""
|
|
140
|
+
Load the values from one paramset into another.
|
|
141
|
+
|
|
142
|
+
Args:
|
|
143
|
+
to_paramset: The paramset to load into.
|
|
144
|
+
from_paramset: The paramset to load from.
|
|
145
|
+
"""
|
|
146
|
+
request = dto.LoadParamset(
|
|
147
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
148
|
+
device=self.axis.device.device_address,
|
|
149
|
+
axis=self.axis.axis_number,
|
|
150
|
+
to_paramset=to_paramset,
|
|
151
|
+
from_paramset=from_paramset,
|
|
152
|
+
)
|
|
153
|
+
await call_async("servotuning/load_paramset", request)
|
|
154
|
+
|
|
155
|
+
def get_tuning(
|
|
156
|
+
self,
|
|
157
|
+
paramset: ServoTuningParamset
|
|
158
|
+
) -> ParamsetInfo:
|
|
159
|
+
"""
|
|
160
|
+
Get the full set of tuning parameters used by the firmware driving this axis.
|
|
161
|
+
|
|
162
|
+
Args:
|
|
163
|
+
paramset: The paramset to get tuning for.
|
|
164
|
+
|
|
165
|
+
Returns:
|
|
166
|
+
The raw representation of the current tuning.
|
|
167
|
+
"""
|
|
168
|
+
request = dto.ServoTuningRequest(
|
|
169
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
170
|
+
device=self.axis.device.device_address,
|
|
171
|
+
axis=self.axis.axis_number,
|
|
172
|
+
paramset=paramset,
|
|
173
|
+
)
|
|
174
|
+
response = call(
|
|
175
|
+
"servotuning/get_raw",
|
|
176
|
+
request,
|
|
177
|
+
ParamsetInfo.from_binary)
|
|
178
|
+
return response
|
|
179
|
+
|
|
180
|
+
async def get_tuning_async(
|
|
181
|
+
self,
|
|
182
|
+
paramset: ServoTuningParamset
|
|
183
|
+
) -> ParamsetInfo:
|
|
184
|
+
"""
|
|
185
|
+
Get the full set of tuning parameters used by the firmware driving this axis.
|
|
186
|
+
|
|
187
|
+
Args:
|
|
188
|
+
paramset: The paramset to get tuning for.
|
|
189
|
+
|
|
190
|
+
Returns:
|
|
191
|
+
The raw representation of the current tuning.
|
|
192
|
+
"""
|
|
193
|
+
request = dto.ServoTuningRequest(
|
|
194
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
195
|
+
device=self.axis.device.device_address,
|
|
196
|
+
axis=self.axis.axis_number,
|
|
197
|
+
paramset=paramset,
|
|
198
|
+
)
|
|
199
|
+
response = await call_async(
|
|
200
|
+
"servotuning/get_raw",
|
|
201
|
+
request,
|
|
202
|
+
ParamsetInfo.from_binary)
|
|
203
|
+
return response
|
|
204
|
+
|
|
205
|
+
def set_tuning(
|
|
206
|
+
self,
|
|
207
|
+
paramset: ServoTuningParamset,
|
|
208
|
+
tuning_params: List[ServoTuningParam],
|
|
209
|
+
set_unspecified_to_default: bool = False
|
|
210
|
+
) -> None:
|
|
211
|
+
"""
|
|
212
|
+
Set individual tuning parameters.
|
|
213
|
+
Only use this method if you have a strong understanding of Zaber specific tuning parameters.
|
|
214
|
+
|
|
215
|
+
Args:
|
|
216
|
+
paramset: The paramset to set tuning of.
|
|
217
|
+
tuning_params: The params to set.
|
|
218
|
+
set_unspecified_to_default: If true, any tuning parameters not included in TuningParams
|
|
219
|
+
are reset to their default values.
|
|
220
|
+
"""
|
|
221
|
+
request = dto.SetServoTuningRequest(
|
|
222
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
223
|
+
device=self.axis.device.device_address,
|
|
224
|
+
axis=self.axis.axis_number,
|
|
225
|
+
paramset=paramset,
|
|
226
|
+
tuning_params=tuning_params,
|
|
227
|
+
set_unspecified_to_default=set_unspecified_to_default,
|
|
228
|
+
)
|
|
229
|
+
call("servotuning/set_raw", request)
|
|
230
|
+
|
|
231
|
+
async def set_tuning_async(
|
|
232
|
+
self,
|
|
233
|
+
paramset: ServoTuningParamset,
|
|
234
|
+
tuning_params: List[ServoTuningParam],
|
|
235
|
+
set_unspecified_to_default: bool = False
|
|
236
|
+
) -> None:
|
|
237
|
+
"""
|
|
238
|
+
Set individual tuning parameters.
|
|
239
|
+
Only use this method if you have a strong understanding of Zaber specific tuning parameters.
|
|
240
|
+
|
|
241
|
+
Args:
|
|
242
|
+
paramset: The paramset to set tuning of.
|
|
243
|
+
tuning_params: The params to set.
|
|
244
|
+
set_unspecified_to_default: If true, any tuning parameters not included in TuningParams
|
|
245
|
+
are reset to their default values.
|
|
246
|
+
"""
|
|
247
|
+
request = dto.SetServoTuningRequest(
|
|
248
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
249
|
+
device=self.axis.device.device_address,
|
|
250
|
+
axis=self.axis.axis_number,
|
|
251
|
+
paramset=paramset,
|
|
252
|
+
tuning_params=tuning_params,
|
|
253
|
+
set_unspecified_to_default=set_unspecified_to_default,
|
|
254
|
+
)
|
|
255
|
+
await call_async("servotuning/set_raw", request)
|
|
256
|
+
|
|
257
|
+
def set_pid_tuning(
|
|
258
|
+
self,
|
|
259
|
+
paramset: ServoTuningParamset,
|
|
260
|
+
p: float,
|
|
261
|
+
i: float,
|
|
262
|
+
d: float,
|
|
263
|
+
fc: float
|
|
264
|
+
) -> PidTuning:
|
|
265
|
+
"""
|
|
266
|
+
Sets the tuning of a paramset using the PID method.
|
|
267
|
+
|
|
268
|
+
Args:
|
|
269
|
+
paramset: The paramset to get tuning for.
|
|
270
|
+
p: The proportional gain. Must be in units of N/m for linear devices, and N⋅m/° for rotary devices.
|
|
271
|
+
i: The integral gain. Must be in units of N/(m⋅s) for linear devices, and N⋅m/(°⋅s) for rotary devices.
|
|
272
|
+
d: The derivative gain. Must be in units of N⋅s/m for linear devices, and N⋅m⋅s/° for rotary devices.
|
|
273
|
+
fc: The cutoff frequency. Must be in units of Hz.
|
|
274
|
+
|
|
275
|
+
Returns:
|
|
276
|
+
The PID representation of the current tuning after your changes have been applied.
|
|
277
|
+
"""
|
|
278
|
+
request = dto.SetServoTuningPIDRequest(
|
|
279
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
280
|
+
device=self.axis.device.device_address,
|
|
281
|
+
axis=self.axis.axis_number,
|
|
282
|
+
paramset=paramset,
|
|
283
|
+
p=p,
|
|
284
|
+
i=i,
|
|
285
|
+
d=d,
|
|
286
|
+
fc=fc,
|
|
287
|
+
)
|
|
288
|
+
response = call(
|
|
289
|
+
"servotuning/set_pid",
|
|
290
|
+
request,
|
|
291
|
+
PidTuning.from_binary)
|
|
292
|
+
return response
|
|
293
|
+
|
|
294
|
+
async def set_pid_tuning_async(
|
|
295
|
+
self,
|
|
296
|
+
paramset: ServoTuningParamset,
|
|
297
|
+
p: float,
|
|
298
|
+
i: float,
|
|
299
|
+
d: float,
|
|
300
|
+
fc: float
|
|
301
|
+
) -> PidTuning:
|
|
302
|
+
"""
|
|
303
|
+
Sets the tuning of a paramset using the PID method.
|
|
304
|
+
|
|
305
|
+
Args:
|
|
306
|
+
paramset: The paramset to get tuning for.
|
|
307
|
+
p: The proportional gain. Must be in units of N/m for linear devices, and N⋅m/° for rotary devices.
|
|
308
|
+
i: The integral gain. Must be in units of N/(m⋅s) for linear devices, and N⋅m/(°⋅s) for rotary devices.
|
|
309
|
+
d: The derivative gain. Must be in units of N⋅s/m for linear devices, and N⋅m⋅s/° for rotary devices.
|
|
310
|
+
fc: The cutoff frequency. Must be in units of Hz.
|
|
311
|
+
|
|
312
|
+
Returns:
|
|
313
|
+
The PID representation of the current tuning after your changes have been applied.
|
|
314
|
+
"""
|
|
315
|
+
request = dto.SetServoTuningPIDRequest(
|
|
316
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
317
|
+
device=self.axis.device.device_address,
|
|
318
|
+
axis=self.axis.axis_number,
|
|
319
|
+
paramset=paramset,
|
|
320
|
+
p=p,
|
|
321
|
+
i=i,
|
|
322
|
+
d=d,
|
|
323
|
+
fc=fc,
|
|
324
|
+
)
|
|
325
|
+
response = await call_async(
|
|
326
|
+
"servotuning/set_pid",
|
|
327
|
+
request,
|
|
328
|
+
PidTuning.from_binary)
|
|
329
|
+
return response
|
|
330
|
+
|
|
331
|
+
def get_pid_tuning(
|
|
332
|
+
self,
|
|
333
|
+
paramset: ServoTuningParamset
|
|
334
|
+
) -> PidTuning:
|
|
335
|
+
"""
|
|
336
|
+
Gets the PID representation of this paramset's servo tuning.
|
|
337
|
+
|
|
338
|
+
Args:
|
|
339
|
+
paramset: The paramset to get tuning for.
|
|
340
|
+
|
|
341
|
+
Returns:
|
|
342
|
+
The PID representation of the current tuning.
|
|
343
|
+
"""
|
|
344
|
+
request = dto.ServoTuningRequest(
|
|
345
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
346
|
+
device=self.axis.device.device_address,
|
|
347
|
+
axis=self.axis.axis_number,
|
|
348
|
+
paramset=paramset,
|
|
349
|
+
)
|
|
350
|
+
response = call(
|
|
351
|
+
"servotuning/get_pid",
|
|
352
|
+
request,
|
|
353
|
+
PidTuning.from_binary)
|
|
354
|
+
return response
|
|
355
|
+
|
|
356
|
+
async def get_pid_tuning_async(
|
|
357
|
+
self,
|
|
358
|
+
paramset: ServoTuningParamset
|
|
359
|
+
) -> PidTuning:
|
|
360
|
+
"""
|
|
361
|
+
Gets the PID representation of this paramset's servo tuning.
|
|
362
|
+
|
|
363
|
+
Args:
|
|
364
|
+
paramset: The paramset to get tuning for.
|
|
365
|
+
|
|
366
|
+
Returns:
|
|
367
|
+
The PID representation of the current tuning.
|
|
368
|
+
"""
|
|
369
|
+
request = dto.ServoTuningRequest(
|
|
370
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
371
|
+
device=self.axis.device.device_address,
|
|
372
|
+
axis=self.axis.axis_number,
|
|
373
|
+
paramset=paramset,
|
|
374
|
+
)
|
|
375
|
+
response = await call_async(
|
|
376
|
+
"servotuning/get_pid",
|
|
377
|
+
request,
|
|
378
|
+
PidTuning.from_binary)
|
|
379
|
+
return response
|
|
380
|
+
|
|
381
|
+
def get_simple_tuning_param_definitions(
|
|
382
|
+
self
|
|
383
|
+
) -> List[SimpleTuningParamDefinition]:
|
|
384
|
+
"""
|
|
385
|
+
Gets the parameters that are required to tune this device.
|
|
386
|
+
|
|
387
|
+
Returns:
|
|
388
|
+
The tuning parameters.
|
|
389
|
+
"""
|
|
390
|
+
request = dto.AxisEmptyRequest(
|
|
391
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
392
|
+
device=self.axis.device.device_address,
|
|
393
|
+
axis=self.axis.axis_number,
|
|
394
|
+
)
|
|
395
|
+
response = call(
|
|
396
|
+
"servotuning/get_simple_params_definition",
|
|
397
|
+
request,
|
|
398
|
+
dto.GetSimpleTuningParamDefinitionResponse.from_binary)
|
|
399
|
+
return response.params
|
|
400
|
+
|
|
401
|
+
async def get_simple_tuning_param_definitions_async(
|
|
402
|
+
self
|
|
403
|
+
) -> List[SimpleTuningParamDefinition]:
|
|
404
|
+
"""
|
|
405
|
+
Gets the parameters that are required to tune this device.
|
|
406
|
+
|
|
407
|
+
Returns:
|
|
408
|
+
The tuning parameters.
|
|
409
|
+
"""
|
|
410
|
+
request = dto.AxisEmptyRequest(
|
|
411
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
412
|
+
device=self.axis.device.device_address,
|
|
413
|
+
axis=self.axis.axis_number,
|
|
414
|
+
)
|
|
415
|
+
response = await call_async(
|
|
416
|
+
"servotuning/get_simple_params_definition",
|
|
417
|
+
request,
|
|
418
|
+
dto.GetSimpleTuningParamDefinitionResponse.from_binary)
|
|
419
|
+
return response.params
|
|
420
|
+
|
|
421
|
+
def set_simple_tuning(
|
|
422
|
+
self,
|
|
423
|
+
paramset: ServoTuningParamset,
|
|
424
|
+
tuning_params: List[ServoTuningParam],
|
|
425
|
+
load_mass: float,
|
|
426
|
+
load_mass_units: UnitsAndLiterals = Units.NATIVE,
|
|
427
|
+
carriage_mass: Optional[float] = None,
|
|
428
|
+
carriage_mass_units: UnitsAndLiterals = Units.NATIVE,
|
|
429
|
+
motor_inertia: Optional[float] = None,
|
|
430
|
+
motor_inertia_units: UnitsAndLiterals = Units.NATIVE
|
|
431
|
+
) -> None:
|
|
432
|
+
"""
|
|
433
|
+
Set the tuning of this device using the simple input method.
|
|
434
|
+
|
|
435
|
+
Args:
|
|
436
|
+
paramset: The paramset to set tuning for.
|
|
437
|
+
tuning_params: The params used to tune this device.
|
|
438
|
+
To get what parameters are expected, call GetSimpleTuningParamList.
|
|
439
|
+
All values must be between 0 and 1.
|
|
440
|
+
load_mass: The mass loaded on the stage, excluding the mass of the carriage itself.
|
|
441
|
+
Unless specified by the LoadMassUnits parameter, this is in units of kg for linear devices,
|
|
442
|
+
and kg⋅m² for rotary devices.
|
|
443
|
+
load_mass_units: The units the load mass was supplied in.
|
|
444
|
+
carriage_mass: The mass of the carriage itself. If not supplied, the product's default mass will be used.
|
|
445
|
+
Unless specified by the CarriageMassUnits parameter, this is in units of kg for linear devices,
|
|
446
|
+
and kg⋅m² for rotary devices.
|
|
447
|
+
carriage_mass_units: The units the carriage mass was supplied in.
|
|
448
|
+
motor_inertia: The inertia of the motor. Unless specified by the MotorInertiaUnits parameter,
|
|
449
|
+
this is in units of kg⋅m².
|
|
450
|
+
motor_inertia_units: The units the motor inertia was supplied in.
|
|
451
|
+
"""
|
|
452
|
+
request = dto.SetSimpleTuning(
|
|
453
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
454
|
+
device=self.axis.device.device_address,
|
|
455
|
+
axis=self.axis.axis_number,
|
|
456
|
+
paramset=paramset,
|
|
457
|
+
tuning_params=tuning_params,
|
|
458
|
+
load_mass=load_mass,
|
|
459
|
+
load_mass_units=load_mass_units,
|
|
460
|
+
carriage_mass=carriage_mass,
|
|
461
|
+
carriage_mass_units=carriage_mass_units,
|
|
462
|
+
motor_inertia=motor_inertia,
|
|
463
|
+
motor_inertia_units=motor_inertia_units,
|
|
464
|
+
)
|
|
465
|
+
call("servotuning/set_simple_tuning", request)
|
|
466
|
+
|
|
467
|
+
async def set_simple_tuning_async(
|
|
468
|
+
self,
|
|
469
|
+
paramset: ServoTuningParamset,
|
|
470
|
+
tuning_params: List[ServoTuningParam],
|
|
471
|
+
load_mass: float,
|
|
472
|
+
load_mass_units: UnitsAndLiterals = Units.NATIVE,
|
|
473
|
+
carriage_mass: Optional[float] = None,
|
|
474
|
+
carriage_mass_units: UnitsAndLiterals = Units.NATIVE,
|
|
475
|
+
motor_inertia: Optional[float] = None,
|
|
476
|
+
motor_inertia_units: UnitsAndLiterals = Units.NATIVE
|
|
477
|
+
) -> None:
|
|
478
|
+
"""
|
|
479
|
+
Set the tuning of this device using the simple input method.
|
|
480
|
+
|
|
481
|
+
Args:
|
|
482
|
+
paramset: The paramset to set tuning for.
|
|
483
|
+
tuning_params: The params used to tune this device.
|
|
484
|
+
To get what parameters are expected, call GetSimpleTuningParamList.
|
|
485
|
+
All values must be between 0 and 1.
|
|
486
|
+
load_mass: The mass loaded on the stage, excluding the mass of the carriage itself.
|
|
487
|
+
Unless specified by the LoadMassUnits parameter, this is in units of kg for linear devices,
|
|
488
|
+
and kg⋅m² for rotary devices.
|
|
489
|
+
load_mass_units: The units the load mass was supplied in.
|
|
490
|
+
carriage_mass: The mass of the carriage itself. If not supplied, the product's default mass will be used.
|
|
491
|
+
Unless specified by the CarriageMassUnits parameter, this is in units of kg for linear devices,
|
|
492
|
+
and kg⋅m² for rotary devices.
|
|
493
|
+
carriage_mass_units: The units the carriage mass was supplied in.
|
|
494
|
+
motor_inertia: The inertia of the motor. Unless specified by the MotorInertiaUnits parameter,
|
|
495
|
+
this is in units of kg⋅m².
|
|
496
|
+
motor_inertia_units: The units the motor inertia was supplied in.
|
|
497
|
+
"""
|
|
498
|
+
request = dto.SetSimpleTuning(
|
|
499
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
500
|
+
device=self.axis.device.device_address,
|
|
501
|
+
axis=self.axis.axis_number,
|
|
502
|
+
paramset=paramset,
|
|
503
|
+
tuning_params=tuning_params,
|
|
504
|
+
load_mass=load_mass,
|
|
505
|
+
load_mass_units=load_mass_units,
|
|
506
|
+
carriage_mass=carriage_mass,
|
|
507
|
+
carriage_mass_units=carriage_mass_units,
|
|
508
|
+
motor_inertia=motor_inertia,
|
|
509
|
+
motor_inertia_units=motor_inertia_units,
|
|
510
|
+
)
|
|
511
|
+
await call_async("servotuning/set_simple_tuning", request)
|
|
512
|
+
|
|
513
|
+
def get_simple_tuning(
|
|
514
|
+
self,
|
|
515
|
+
paramset: ServoTuningParamset
|
|
516
|
+
) -> SimpleTuning:
|
|
517
|
+
"""
|
|
518
|
+
Get the simple tuning parameters for this device.
|
|
519
|
+
|
|
520
|
+
Args:
|
|
521
|
+
paramset: The paramset to get tuning for.
|
|
522
|
+
|
|
523
|
+
Returns:
|
|
524
|
+
The simple tuning parameters.
|
|
525
|
+
"""
|
|
526
|
+
request = dto.ServoTuningRequest(
|
|
527
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
528
|
+
device=self.axis.device.device_address,
|
|
529
|
+
axis=self.axis.axis_number,
|
|
530
|
+
paramset=paramset,
|
|
531
|
+
)
|
|
532
|
+
response = call(
|
|
533
|
+
"servotuning/get_simple_tuning",
|
|
534
|
+
request,
|
|
535
|
+
SimpleTuning.from_binary)
|
|
536
|
+
return response
|
|
537
|
+
|
|
538
|
+
async def get_simple_tuning_async(
|
|
539
|
+
self,
|
|
540
|
+
paramset: ServoTuningParamset
|
|
541
|
+
) -> SimpleTuning:
|
|
542
|
+
"""
|
|
543
|
+
Get the simple tuning parameters for this device.
|
|
544
|
+
|
|
545
|
+
Args:
|
|
546
|
+
paramset: The paramset to get tuning for.
|
|
547
|
+
|
|
548
|
+
Returns:
|
|
549
|
+
The simple tuning parameters.
|
|
550
|
+
"""
|
|
551
|
+
request = dto.ServoTuningRequest(
|
|
552
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
553
|
+
device=self.axis.device.device_address,
|
|
554
|
+
axis=self.axis.axis_number,
|
|
555
|
+
paramset=paramset,
|
|
556
|
+
)
|
|
557
|
+
response = await call_async(
|
|
558
|
+
"servotuning/get_simple_tuning",
|
|
559
|
+
request,
|
|
560
|
+
SimpleTuning.from_binary)
|
|
561
|
+
return response
|
|
562
|
+
|
|
563
|
+
def is_using_simple_tuning(
|
|
564
|
+
self,
|
|
565
|
+
paramset: ServoTuningParamset,
|
|
566
|
+
tuning_params: List[ServoTuningParam],
|
|
567
|
+
load_mass: float,
|
|
568
|
+
carriage_mass: Optional[float] = None
|
|
569
|
+
) -> bool:
|
|
570
|
+
"""
|
|
571
|
+
Deprecated: Use GetSimpleTuning instead.
|
|
572
|
+
|
|
573
|
+
Checks if the provided simple tuning is being stored by this paramset.
|
|
574
|
+
|
|
575
|
+
Args:
|
|
576
|
+
paramset: The paramset to set tuning for.
|
|
577
|
+
tuning_params: The params used to tune this device.
|
|
578
|
+
To get what parameters are expected, call GetSimpleTuningParamList.
|
|
579
|
+
All values must be between 0 and 1.
|
|
580
|
+
load_mass: The mass loaded on the stage (excluding the mass of the carriage itself) in kg.
|
|
581
|
+
carriage_mass: The mass of the carriage in kg. If this value is not set the default carriage mass is used.
|
|
582
|
+
|
|
583
|
+
Returns:
|
|
584
|
+
True if the provided simple tuning is currently stored in this paramset.
|
|
585
|
+
"""
|
|
586
|
+
request = dto.SetSimpleTuning(
|
|
587
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
588
|
+
device=self.axis.device.device_address,
|
|
589
|
+
axis=self.axis.axis_number,
|
|
590
|
+
paramset=paramset,
|
|
591
|
+
tuning_params=tuning_params,
|
|
592
|
+
load_mass=load_mass,
|
|
593
|
+
carriage_mass=carriage_mass,
|
|
594
|
+
)
|
|
595
|
+
response = call(
|
|
596
|
+
"servotuning/is_using_simple_tuning",
|
|
597
|
+
request,
|
|
598
|
+
dto.BoolResponse.from_binary)
|
|
599
|
+
return response.value
|
|
600
|
+
|
|
601
|
+
async def is_using_simple_tuning_async(
|
|
602
|
+
self,
|
|
603
|
+
paramset: ServoTuningParamset,
|
|
604
|
+
tuning_params: List[ServoTuningParam],
|
|
605
|
+
load_mass: float,
|
|
606
|
+
carriage_mass: Optional[float] = None
|
|
607
|
+
) -> bool:
|
|
608
|
+
"""
|
|
609
|
+
Deprecated: Use GetSimpleTuning instead.
|
|
610
|
+
|
|
611
|
+
Checks if the provided simple tuning is being stored by this paramset.
|
|
612
|
+
|
|
613
|
+
Args:
|
|
614
|
+
paramset: The paramset to set tuning for.
|
|
615
|
+
tuning_params: The params used to tune this device.
|
|
616
|
+
To get what parameters are expected, call GetSimpleTuningParamList.
|
|
617
|
+
All values must be between 0 and 1.
|
|
618
|
+
load_mass: The mass loaded on the stage (excluding the mass of the carriage itself) in kg.
|
|
619
|
+
carriage_mass: The mass of the carriage in kg. If this value is not set the default carriage mass is used.
|
|
620
|
+
|
|
621
|
+
Returns:
|
|
622
|
+
True if the provided simple tuning is currently stored in this paramset.
|
|
623
|
+
"""
|
|
624
|
+
request = dto.SetSimpleTuning(
|
|
625
|
+
interface_id=self.axis.device.connection.interface_id,
|
|
626
|
+
device=self.axis.device.device_address,
|
|
627
|
+
axis=self.axis.axis_number,
|
|
628
|
+
paramset=paramset,
|
|
629
|
+
tuning_params=tuning_params,
|
|
630
|
+
load_mass=load_mass,
|
|
631
|
+
carriage_mass=carriage_mass,
|
|
632
|
+
)
|
|
633
|
+
response = await call_async(
|
|
634
|
+
"servotuning/is_using_simple_tuning",
|
|
635
|
+
request,
|
|
636
|
+
dto.BoolResponse.from_binary)
|
|
637
|
+
return response.value
|