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,401 +1,401 @@
|
|
|
1
|
-
# ===== THIS FILE IS GENERATED FROM A TEMPLATE ===== #
|
|
2
|
-
# ============== DO NOT EDIT DIRECTLY ============== #
|
|
3
|
-
|
|
4
|
-
from typing import List, Optional
|
|
5
|
-
from ..call import call, call_async, call_sync
|
|
6
|
-
|
|
7
|
-
from ..dto import requests as dto
|
|
8
|
-
from ..units import LengthUnits, VelocityUnits
|
|
9
|
-
from ..ascii import Device
|
|
10
|
-
from ..dto.gcode.device_definition import DeviceDefinition
|
|
11
|
-
from ..dto.gcode.translator_config import TranslatorConfig
|
|
12
|
-
from ..dto.gcode.translate_result import TranslateResult
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class OfflineTranslator:
|
|
16
|
-
"""
|
|
17
|
-
Represents an offline G-Code translator.
|
|
18
|
-
It allows to translate G-Code blocks to Zaber ASCII protocol stream commands.
|
|
19
|
-
This translator does not need a connected device to perform translation.
|
|
20
|
-
Requires at least Firmware 7.11.
|
|
21
|
-
"""
|
|
22
|
-
|
|
23
|
-
@property
|
|
24
|
-
def translator_id(self) -> int:
|
|
25
|
-
"""
|
|
26
|
-
The ID of the translator that serves to identify native resources.
|
|
27
|
-
"""
|
|
28
|
-
return self._translator_id
|
|
29
|
-
|
|
30
|
-
@property
|
|
31
|
-
def coordinate_system(self) -> str:
|
|
32
|
-
"""
|
|
33
|
-
Current coordinate system.
|
|
34
|
-
"""
|
|
35
|
-
return self.__get_current_coordinate_system()
|
|
36
|
-
|
|
37
|
-
def __init__(self, translator_id: int):
|
|
38
|
-
self._translator_id: int = translator_id
|
|
39
|
-
|
|
40
|
-
@staticmethod
|
|
41
|
-
def setup(
|
|
42
|
-
definition: DeviceDefinition,
|
|
43
|
-
config: Optional[TranslatorConfig] = None
|
|
44
|
-
) -> 'OfflineTranslator':
|
|
45
|
-
"""
|
|
46
|
-
Sets up translator from provided device definition and configuration.
|
|
47
|
-
|
|
48
|
-
Args:
|
|
49
|
-
definition: Definition of device and its peripherals.
|
|
50
|
-
The definition must match a device that later performs the commands.
|
|
51
|
-
config: Configuration of the translator.
|
|
52
|
-
|
|
53
|
-
Returns:
|
|
54
|
-
New instance of translator.
|
|
55
|
-
"""
|
|
56
|
-
request = dto.TranslatorCreateRequest(
|
|
57
|
-
definition=definition,
|
|
58
|
-
config=config,
|
|
59
|
-
)
|
|
60
|
-
response = call(
|
|
61
|
-
"gcode/create",
|
|
62
|
-
request,
|
|
63
|
-
dto.TranslatorCreateResponse.from_binary)
|
|
64
|
-
return OfflineTranslator(response.translator_id)
|
|
65
|
-
|
|
66
|
-
@staticmethod
|
|
67
|
-
async def setup_async(
|
|
68
|
-
definition: DeviceDefinition,
|
|
69
|
-
config: Optional[TranslatorConfig] = None
|
|
70
|
-
) -> 'OfflineTranslator':
|
|
71
|
-
"""
|
|
72
|
-
Sets up translator from provided device definition and configuration.
|
|
73
|
-
|
|
74
|
-
Args:
|
|
75
|
-
definition: Definition of device and its peripherals.
|
|
76
|
-
The definition must match a device that later performs the commands.
|
|
77
|
-
config: Configuration of the translator.
|
|
78
|
-
|
|
79
|
-
Returns:
|
|
80
|
-
New instance of translator.
|
|
81
|
-
"""
|
|
82
|
-
request = dto.TranslatorCreateRequest(
|
|
83
|
-
definition=definition,
|
|
84
|
-
config=config,
|
|
85
|
-
)
|
|
86
|
-
response = await call_async(
|
|
87
|
-
"gcode/create",
|
|
88
|
-
request,
|
|
89
|
-
dto.TranslatorCreateResponse.from_binary)
|
|
90
|
-
return OfflineTranslator(response.translator_id)
|
|
91
|
-
|
|
92
|
-
@staticmethod
|
|
93
|
-
def setup_from_device(
|
|
94
|
-
device: Device,
|
|
95
|
-
axes: List[int],
|
|
96
|
-
config: Optional[TranslatorConfig] = None
|
|
97
|
-
) -> 'OfflineTranslator':
|
|
98
|
-
"""
|
|
99
|
-
Sets up an offline translator from provided device, axes, and configuration.
|
|
100
|
-
|
|
101
|
-
Args:
|
|
102
|
-
device: Device that later performs the command streaming.
|
|
103
|
-
axes: Axis numbers that are later used to setup the stream.
|
|
104
|
-
For a lockstep group specify only the first axis of the group.
|
|
105
|
-
config: Configuration of the translator.
|
|
106
|
-
|
|
107
|
-
Returns:
|
|
108
|
-
New instance of translator.
|
|
109
|
-
"""
|
|
110
|
-
request = dto.TranslatorCreateFromDeviceRequest(
|
|
111
|
-
interface_id=device.connection.interface_id,
|
|
112
|
-
device=device.device_address,
|
|
113
|
-
axes=axes,
|
|
114
|
-
config=config,
|
|
115
|
-
)
|
|
116
|
-
response = call(
|
|
117
|
-
"gcode/create_from_device",
|
|
118
|
-
request,
|
|
119
|
-
dto.TranslatorCreateResponse.from_binary)
|
|
120
|
-
return OfflineTranslator(response.translator_id)
|
|
121
|
-
|
|
122
|
-
@staticmethod
|
|
123
|
-
async def setup_from_device_async(
|
|
124
|
-
device: Device,
|
|
125
|
-
axes: List[int],
|
|
126
|
-
config: Optional[TranslatorConfig] = None
|
|
127
|
-
) -> 'OfflineTranslator':
|
|
128
|
-
"""
|
|
129
|
-
Sets up an offline translator from provided device, axes, and configuration.
|
|
130
|
-
|
|
131
|
-
Args:
|
|
132
|
-
device: Device that later performs the command streaming.
|
|
133
|
-
axes: Axis numbers that are later used to setup the stream.
|
|
134
|
-
For a lockstep group specify only the first axis of the group.
|
|
135
|
-
config: Configuration of the translator.
|
|
136
|
-
|
|
137
|
-
Returns:
|
|
138
|
-
New instance of translator.
|
|
139
|
-
"""
|
|
140
|
-
request = dto.TranslatorCreateFromDeviceRequest(
|
|
141
|
-
interface_id=device.connection.interface_id,
|
|
142
|
-
device=device.device_address,
|
|
143
|
-
axes=axes,
|
|
144
|
-
config=config,
|
|
145
|
-
)
|
|
146
|
-
response = await call_async(
|
|
147
|
-
"gcode/create_from_device",
|
|
148
|
-
request,
|
|
149
|
-
dto.TranslatorCreateResponse.from_binary)
|
|
150
|
-
return OfflineTranslator(response.translator_id)
|
|
151
|
-
|
|
152
|
-
def translate(
|
|
153
|
-
self,
|
|
154
|
-
block: str
|
|
155
|
-
) -> TranslateResult:
|
|
156
|
-
"""
|
|
157
|
-
Translates a single block (line) of G-code.
|
|
158
|
-
|
|
159
|
-
Args:
|
|
160
|
-
block: Block (line) of G-code.
|
|
161
|
-
|
|
162
|
-
Returns:
|
|
163
|
-
Result of translation containing the stream commands.
|
|
164
|
-
"""
|
|
165
|
-
request = dto.TranslatorTranslateRequest(
|
|
166
|
-
translator_id=self.translator_id,
|
|
167
|
-
block=block,
|
|
168
|
-
)
|
|
169
|
-
response = call_sync(
|
|
170
|
-
"gcode/translate",
|
|
171
|
-
request,
|
|
172
|
-
TranslateResult.from_binary)
|
|
173
|
-
return response
|
|
174
|
-
|
|
175
|
-
def flush(
|
|
176
|
-
self
|
|
177
|
-
) -> List[str]:
|
|
178
|
-
"""
|
|
179
|
-
Flushes the remaining stream commands waiting in optimization buffer.
|
|
180
|
-
The flush is also performed by M2 and M30 codes.
|
|
181
|
-
|
|
182
|
-
Returns:
|
|
183
|
-
The remaining stream commands.
|
|
184
|
-
"""
|
|
185
|
-
request = dto.TranslatorEmptyRequest(
|
|
186
|
-
translator_id=self.translator_id,
|
|
187
|
-
)
|
|
188
|
-
response = call_sync(
|
|
189
|
-
"gcode/flush",
|
|
190
|
-
request,
|
|
191
|
-
dto.TranslatorFlushResponse.from_binary)
|
|
192
|
-
return response.commands
|
|
193
|
-
|
|
194
|
-
def set_traverse_rate(
|
|
195
|
-
self,
|
|
196
|
-
traverse_rate: float,
|
|
197
|
-
unit: VelocityUnits
|
|
198
|
-
) -> None:
|
|
199
|
-
"""
|
|
200
|
-
Sets the speed at which the device moves when traversing (G0).
|
|
201
|
-
|
|
202
|
-
Args:
|
|
203
|
-
traverse_rate: The traverse rate.
|
|
204
|
-
unit: Units of the traverse rate.
|
|
205
|
-
"""
|
|
206
|
-
request = dto.TranslatorSetTraverseRateRequest(
|
|
207
|
-
translator_id=self.translator_id,
|
|
208
|
-
traverse_rate=traverse_rate,
|
|
209
|
-
unit=unit,
|
|
210
|
-
)
|
|
211
|
-
call_sync("gcode/set_traverse_rate", request)
|
|
212
|
-
|
|
213
|
-
def set_axis_position(
|
|
214
|
-
self,
|
|
215
|
-
axis: str,
|
|
216
|
-
position: float,
|
|
217
|
-
unit: LengthUnits
|
|
218
|
-
) -> None:
|
|
219
|
-
"""
|
|
220
|
-
Sets position of translator's axis.
|
|
221
|
-
Use this method to set position after performing movement outside of the translator.
|
|
222
|
-
This method does not cause any movement.
|
|
223
|
-
|
|
224
|
-
Args:
|
|
225
|
-
axis: Letter of the axis.
|
|
226
|
-
position: The position.
|
|
227
|
-
unit: Units of position.
|
|
228
|
-
"""
|
|
229
|
-
request = dto.TranslatorSetAxisPositionRequest(
|
|
230
|
-
translator_id=self.translator_id,
|
|
231
|
-
axis=axis,
|
|
232
|
-
position=position,
|
|
233
|
-
unit=unit,
|
|
234
|
-
)
|
|
235
|
-
call_sync("gcode/set_axis_position", request)
|
|
236
|
-
|
|
237
|
-
def get_axis_position(
|
|
238
|
-
self,
|
|
239
|
-
axis: str,
|
|
240
|
-
unit: LengthUnits
|
|
241
|
-
) -> float:
|
|
242
|
-
"""
|
|
243
|
-
Gets position of translator's axis.
|
|
244
|
-
This method does not query device but returns value from translator's state.
|
|
245
|
-
|
|
246
|
-
Args:
|
|
247
|
-
axis: Letter of the axis.
|
|
248
|
-
unit: Units of position.
|
|
249
|
-
|
|
250
|
-
Returns:
|
|
251
|
-
Position of translator's axis.
|
|
252
|
-
"""
|
|
253
|
-
request = dto.TranslatorGetAxisPositionRequest(
|
|
254
|
-
translator_id=self.translator_id,
|
|
255
|
-
axis=axis,
|
|
256
|
-
unit=unit,
|
|
257
|
-
)
|
|
258
|
-
response = call_sync(
|
|
259
|
-
"gcode/get_axis_position",
|
|
260
|
-
request,
|
|
261
|
-
dto.DoubleResponse.from_binary)
|
|
262
|
-
return response.value
|
|
263
|
-
|
|
264
|
-
def set_axis_home_position(
|
|
265
|
-
self,
|
|
266
|
-
axis: str,
|
|
267
|
-
position: float,
|
|
268
|
-
unit: LengthUnits
|
|
269
|
-
) -> None:
|
|
270
|
-
"""
|
|
271
|
-
Sets the home position of translator's axis.
|
|
272
|
-
This position is used by G28.
|
|
273
|
-
|
|
274
|
-
Args:
|
|
275
|
-
axis: Letter of the axis.
|
|
276
|
-
position: The home position.
|
|
277
|
-
unit: Units of position.
|
|
278
|
-
"""
|
|
279
|
-
request = dto.TranslatorSetAxisPositionRequest(
|
|
280
|
-
translator_id=self.translator_id,
|
|
281
|
-
axis=axis,
|
|
282
|
-
position=position,
|
|
283
|
-
unit=unit,
|
|
284
|
-
)
|
|
285
|
-
call_sync("gcode/set_axis_home", request)
|
|
286
|
-
|
|
287
|
-
def set_axis_secondary_home_position(
|
|
288
|
-
self,
|
|
289
|
-
axis: str,
|
|
290
|
-
position: float,
|
|
291
|
-
unit: LengthUnits
|
|
292
|
-
) -> None:
|
|
293
|
-
"""
|
|
294
|
-
Sets the secondary home position of translator's axis.
|
|
295
|
-
This position is used by G30.
|
|
296
|
-
|
|
297
|
-
Args:
|
|
298
|
-
axis: Letter of the axis.
|
|
299
|
-
position: The home position.
|
|
300
|
-
unit: Units of position.
|
|
301
|
-
"""
|
|
302
|
-
request = dto.TranslatorSetAxisPositionRequest(
|
|
303
|
-
translator_id=self.translator_id,
|
|
304
|
-
axis=axis,
|
|
305
|
-
position=position,
|
|
306
|
-
unit=unit,
|
|
307
|
-
)
|
|
308
|
-
call_sync("gcode/set_axis_secondary_home", request)
|
|
309
|
-
|
|
310
|
-
def get_axis_coordinate_system_offset(
|
|
311
|
-
self,
|
|
312
|
-
coordinate_system: str,
|
|
313
|
-
axis: str,
|
|
314
|
-
unit: LengthUnits
|
|
315
|
-
) -> float:
|
|
316
|
-
"""
|
|
317
|
-
Gets offset of an axis in a given coordinate system.
|
|
318
|
-
|
|
319
|
-
Args:
|
|
320
|
-
coordinate_system: Coordinate system (e.g. G54).
|
|
321
|
-
axis: Letter of the axis.
|
|
322
|
-
unit: Units of position.
|
|
323
|
-
|
|
324
|
-
Returns:
|
|
325
|
-
Offset in translator units of the axis.
|
|
326
|
-
"""
|
|
327
|
-
request = dto.TranslatorGetAxisOffsetRequest(
|
|
328
|
-
translator_id=self.translator_id,
|
|
329
|
-
coordinate_system=coordinate_system,
|
|
330
|
-
axis=axis,
|
|
331
|
-
unit=unit,
|
|
332
|
-
)
|
|
333
|
-
response = call_sync(
|
|
334
|
-
"gcode/get_axis_offset",
|
|
335
|
-
request,
|
|
336
|
-
dto.DoubleResponse.from_binary)
|
|
337
|
-
return response.value
|
|
338
|
-
|
|
339
|
-
def reset_after_stream_error(
|
|
340
|
-
self
|
|
341
|
-
) -> None:
|
|
342
|
-
"""
|
|
343
|
-
Resets internal state after device rejected generated command.
|
|
344
|
-
Axis positions become uninitialized.
|
|
345
|
-
"""
|
|
346
|
-
request = dto.TranslatorEmptyRequest(
|
|
347
|
-
translator_id=self.translator_id,
|
|
348
|
-
)
|
|
349
|
-
call_sync("gcode/reset_after_stream_error", request)
|
|
350
|
-
|
|
351
|
-
def set_feed_rate_override(
|
|
352
|
-
self,
|
|
353
|
-
coefficient: float
|
|
354
|
-
) -> None:
|
|
355
|
-
"""
|
|
356
|
-
Allows to scale feed rate of the translated code by a coefficient.
|
|
357
|
-
|
|
358
|
-
Args:
|
|
359
|
-
coefficient: Coefficient of the original feed rate.
|
|
360
|
-
"""
|
|
361
|
-
request = dto.TranslatorSetFeedRateOverrideRequest(
|
|
362
|
-
translator_id=self.translator_id,
|
|
363
|
-
coefficient=coefficient,
|
|
364
|
-
)
|
|
365
|
-
call_sync("gcode/set_feed_rate_override", request)
|
|
366
|
-
|
|
367
|
-
@staticmethod
|
|
368
|
-
def __free(
|
|
369
|
-
translator_id: int
|
|
370
|
-
) -> None:
|
|
371
|
-
"""
|
|
372
|
-
Releases native resources of a translator.
|
|
373
|
-
|
|
374
|
-
Args:
|
|
375
|
-
translator_id: The ID of the translator.
|
|
376
|
-
"""
|
|
377
|
-
request = dto.TranslatorEmptyRequest(
|
|
378
|
-
translator_id=translator_id,
|
|
379
|
-
)
|
|
380
|
-
call_sync("gcode/free", request)
|
|
381
|
-
|
|
382
|
-
def __get_current_coordinate_system(
|
|
383
|
-
self
|
|
384
|
-
) -> str:
|
|
385
|
-
"""
|
|
386
|
-
Gets current coordinate system (e.g. G54).
|
|
387
|
-
|
|
388
|
-
Returns:
|
|
389
|
-
Current coordinate system.
|
|
390
|
-
"""
|
|
391
|
-
request = dto.TranslatorEmptyRequest(
|
|
392
|
-
translator_id=self.translator_id,
|
|
393
|
-
)
|
|
394
|
-
response = call_sync(
|
|
395
|
-
"gcode/get_current_coordinate_system",
|
|
396
|
-
request,
|
|
397
|
-
dto.StringResponse.from_binary)
|
|
398
|
-
return response.value
|
|
399
|
-
|
|
400
|
-
def __del__(self) -> None:
|
|
401
|
-
OfflineTranslator.__free(self.translator_id)
|
|
1
|
+
# ===== THIS FILE IS GENERATED FROM A TEMPLATE ===== #
|
|
2
|
+
# ============== DO NOT EDIT DIRECTLY ============== #
|
|
3
|
+
|
|
4
|
+
from typing import List, Optional
|
|
5
|
+
from ..call import call, call_async, call_sync
|
|
6
|
+
|
|
7
|
+
from ..dto import requests as dto
|
|
8
|
+
from ..units import LengthUnits, VelocityUnits
|
|
9
|
+
from ..ascii import Device
|
|
10
|
+
from ..dto.gcode.device_definition import DeviceDefinition
|
|
11
|
+
from ..dto.gcode.translator_config import TranslatorConfig
|
|
12
|
+
from ..dto.gcode.translate_result import TranslateResult
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class OfflineTranslator:
|
|
16
|
+
"""
|
|
17
|
+
Represents an offline G-Code translator.
|
|
18
|
+
It allows to translate G-Code blocks to Zaber ASCII protocol stream commands.
|
|
19
|
+
This translator does not need a connected device to perform translation.
|
|
20
|
+
Requires at least Firmware 7.11.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
@property
|
|
24
|
+
def translator_id(self) -> int:
|
|
25
|
+
"""
|
|
26
|
+
The ID of the translator that serves to identify native resources.
|
|
27
|
+
"""
|
|
28
|
+
return self._translator_id
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def coordinate_system(self) -> str:
|
|
32
|
+
"""
|
|
33
|
+
Current coordinate system.
|
|
34
|
+
"""
|
|
35
|
+
return self.__get_current_coordinate_system()
|
|
36
|
+
|
|
37
|
+
def __init__(self, translator_id: int):
|
|
38
|
+
self._translator_id: int = translator_id
|
|
39
|
+
|
|
40
|
+
@staticmethod
|
|
41
|
+
def setup(
|
|
42
|
+
definition: DeviceDefinition,
|
|
43
|
+
config: Optional[TranslatorConfig] = None
|
|
44
|
+
) -> 'OfflineTranslator':
|
|
45
|
+
"""
|
|
46
|
+
Sets up translator from provided device definition and configuration.
|
|
47
|
+
|
|
48
|
+
Args:
|
|
49
|
+
definition: Definition of device and its peripherals.
|
|
50
|
+
The definition must match a device that later performs the commands.
|
|
51
|
+
config: Configuration of the translator.
|
|
52
|
+
|
|
53
|
+
Returns:
|
|
54
|
+
New instance of translator.
|
|
55
|
+
"""
|
|
56
|
+
request = dto.TranslatorCreateRequest(
|
|
57
|
+
definition=definition,
|
|
58
|
+
config=config,
|
|
59
|
+
)
|
|
60
|
+
response = call(
|
|
61
|
+
"gcode/create",
|
|
62
|
+
request,
|
|
63
|
+
dto.TranslatorCreateResponse.from_binary)
|
|
64
|
+
return OfflineTranslator(response.translator_id)
|
|
65
|
+
|
|
66
|
+
@staticmethod
|
|
67
|
+
async def setup_async(
|
|
68
|
+
definition: DeviceDefinition,
|
|
69
|
+
config: Optional[TranslatorConfig] = None
|
|
70
|
+
) -> 'OfflineTranslator':
|
|
71
|
+
"""
|
|
72
|
+
Sets up translator from provided device definition and configuration.
|
|
73
|
+
|
|
74
|
+
Args:
|
|
75
|
+
definition: Definition of device and its peripherals.
|
|
76
|
+
The definition must match a device that later performs the commands.
|
|
77
|
+
config: Configuration of the translator.
|
|
78
|
+
|
|
79
|
+
Returns:
|
|
80
|
+
New instance of translator.
|
|
81
|
+
"""
|
|
82
|
+
request = dto.TranslatorCreateRequest(
|
|
83
|
+
definition=definition,
|
|
84
|
+
config=config,
|
|
85
|
+
)
|
|
86
|
+
response = await call_async(
|
|
87
|
+
"gcode/create",
|
|
88
|
+
request,
|
|
89
|
+
dto.TranslatorCreateResponse.from_binary)
|
|
90
|
+
return OfflineTranslator(response.translator_id)
|
|
91
|
+
|
|
92
|
+
@staticmethod
|
|
93
|
+
def setup_from_device(
|
|
94
|
+
device: Device,
|
|
95
|
+
axes: List[int],
|
|
96
|
+
config: Optional[TranslatorConfig] = None
|
|
97
|
+
) -> 'OfflineTranslator':
|
|
98
|
+
"""
|
|
99
|
+
Sets up an offline translator from provided device, axes, and configuration.
|
|
100
|
+
|
|
101
|
+
Args:
|
|
102
|
+
device: Device that later performs the command streaming.
|
|
103
|
+
axes: Axis numbers that are later used to setup the stream.
|
|
104
|
+
For a lockstep group specify only the first axis of the group.
|
|
105
|
+
config: Configuration of the translator.
|
|
106
|
+
|
|
107
|
+
Returns:
|
|
108
|
+
New instance of translator.
|
|
109
|
+
"""
|
|
110
|
+
request = dto.TranslatorCreateFromDeviceRequest(
|
|
111
|
+
interface_id=device.connection.interface_id,
|
|
112
|
+
device=device.device_address,
|
|
113
|
+
axes=axes,
|
|
114
|
+
config=config,
|
|
115
|
+
)
|
|
116
|
+
response = call(
|
|
117
|
+
"gcode/create_from_device",
|
|
118
|
+
request,
|
|
119
|
+
dto.TranslatorCreateResponse.from_binary)
|
|
120
|
+
return OfflineTranslator(response.translator_id)
|
|
121
|
+
|
|
122
|
+
@staticmethod
|
|
123
|
+
async def setup_from_device_async(
|
|
124
|
+
device: Device,
|
|
125
|
+
axes: List[int],
|
|
126
|
+
config: Optional[TranslatorConfig] = None
|
|
127
|
+
) -> 'OfflineTranslator':
|
|
128
|
+
"""
|
|
129
|
+
Sets up an offline translator from provided device, axes, and configuration.
|
|
130
|
+
|
|
131
|
+
Args:
|
|
132
|
+
device: Device that later performs the command streaming.
|
|
133
|
+
axes: Axis numbers that are later used to setup the stream.
|
|
134
|
+
For a lockstep group specify only the first axis of the group.
|
|
135
|
+
config: Configuration of the translator.
|
|
136
|
+
|
|
137
|
+
Returns:
|
|
138
|
+
New instance of translator.
|
|
139
|
+
"""
|
|
140
|
+
request = dto.TranslatorCreateFromDeviceRequest(
|
|
141
|
+
interface_id=device.connection.interface_id,
|
|
142
|
+
device=device.device_address,
|
|
143
|
+
axes=axes,
|
|
144
|
+
config=config,
|
|
145
|
+
)
|
|
146
|
+
response = await call_async(
|
|
147
|
+
"gcode/create_from_device",
|
|
148
|
+
request,
|
|
149
|
+
dto.TranslatorCreateResponse.from_binary)
|
|
150
|
+
return OfflineTranslator(response.translator_id)
|
|
151
|
+
|
|
152
|
+
def translate(
|
|
153
|
+
self,
|
|
154
|
+
block: str
|
|
155
|
+
) -> TranslateResult:
|
|
156
|
+
"""
|
|
157
|
+
Translates a single block (line) of G-code.
|
|
158
|
+
|
|
159
|
+
Args:
|
|
160
|
+
block: Block (line) of G-code.
|
|
161
|
+
|
|
162
|
+
Returns:
|
|
163
|
+
Result of translation containing the stream commands.
|
|
164
|
+
"""
|
|
165
|
+
request = dto.TranslatorTranslateRequest(
|
|
166
|
+
translator_id=self.translator_id,
|
|
167
|
+
block=block,
|
|
168
|
+
)
|
|
169
|
+
response = call_sync(
|
|
170
|
+
"gcode/translate",
|
|
171
|
+
request,
|
|
172
|
+
TranslateResult.from_binary)
|
|
173
|
+
return response
|
|
174
|
+
|
|
175
|
+
def flush(
|
|
176
|
+
self
|
|
177
|
+
) -> List[str]:
|
|
178
|
+
"""
|
|
179
|
+
Flushes the remaining stream commands waiting in optimization buffer.
|
|
180
|
+
The flush is also performed by M2 and M30 codes.
|
|
181
|
+
|
|
182
|
+
Returns:
|
|
183
|
+
The remaining stream commands.
|
|
184
|
+
"""
|
|
185
|
+
request = dto.TranslatorEmptyRequest(
|
|
186
|
+
translator_id=self.translator_id,
|
|
187
|
+
)
|
|
188
|
+
response = call_sync(
|
|
189
|
+
"gcode/flush",
|
|
190
|
+
request,
|
|
191
|
+
dto.TranslatorFlushResponse.from_binary)
|
|
192
|
+
return response.commands
|
|
193
|
+
|
|
194
|
+
def set_traverse_rate(
|
|
195
|
+
self,
|
|
196
|
+
traverse_rate: float,
|
|
197
|
+
unit: VelocityUnits
|
|
198
|
+
) -> None:
|
|
199
|
+
"""
|
|
200
|
+
Sets the speed at which the device moves when traversing (G0).
|
|
201
|
+
|
|
202
|
+
Args:
|
|
203
|
+
traverse_rate: The traverse rate.
|
|
204
|
+
unit: Units of the traverse rate.
|
|
205
|
+
"""
|
|
206
|
+
request = dto.TranslatorSetTraverseRateRequest(
|
|
207
|
+
translator_id=self.translator_id,
|
|
208
|
+
traverse_rate=traverse_rate,
|
|
209
|
+
unit=unit,
|
|
210
|
+
)
|
|
211
|
+
call_sync("gcode/set_traverse_rate", request)
|
|
212
|
+
|
|
213
|
+
def set_axis_position(
|
|
214
|
+
self,
|
|
215
|
+
axis: str,
|
|
216
|
+
position: float,
|
|
217
|
+
unit: LengthUnits
|
|
218
|
+
) -> None:
|
|
219
|
+
"""
|
|
220
|
+
Sets position of translator's axis.
|
|
221
|
+
Use this method to set position after performing movement outside of the translator.
|
|
222
|
+
This method does not cause any movement.
|
|
223
|
+
|
|
224
|
+
Args:
|
|
225
|
+
axis: Letter of the axis.
|
|
226
|
+
position: The position.
|
|
227
|
+
unit: Units of position.
|
|
228
|
+
"""
|
|
229
|
+
request = dto.TranslatorSetAxisPositionRequest(
|
|
230
|
+
translator_id=self.translator_id,
|
|
231
|
+
axis=axis,
|
|
232
|
+
position=position,
|
|
233
|
+
unit=unit,
|
|
234
|
+
)
|
|
235
|
+
call_sync("gcode/set_axis_position", request)
|
|
236
|
+
|
|
237
|
+
def get_axis_position(
|
|
238
|
+
self,
|
|
239
|
+
axis: str,
|
|
240
|
+
unit: LengthUnits
|
|
241
|
+
) -> float:
|
|
242
|
+
"""
|
|
243
|
+
Gets position of translator's axis.
|
|
244
|
+
This method does not query device but returns value from translator's state.
|
|
245
|
+
|
|
246
|
+
Args:
|
|
247
|
+
axis: Letter of the axis.
|
|
248
|
+
unit: Units of position.
|
|
249
|
+
|
|
250
|
+
Returns:
|
|
251
|
+
Position of translator's axis.
|
|
252
|
+
"""
|
|
253
|
+
request = dto.TranslatorGetAxisPositionRequest(
|
|
254
|
+
translator_id=self.translator_id,
|
|
255
|
+
axis=axis,
|
|
256
|
+
unit=unit,
|
|
257
|
+
)
|
|
258
|
+
response = call_sync(
|
|
259
|
+
"gcode/get_axis_position",
|
|
260
|
+
request,
|
|
261
|
+
dto.DoubleResponse.from_binary)
|
|
262
|
+
return response.value
|
|
263
|
+
|
|
264
|
+
def set_axis_home_position(
|
|
265
|
+
self,
|
|
266
|
+
axis: str,
|
|
267
|
+
position: float,
|
|
268
|
+
unit: LengthUnits
|
|
269
|
+
) -> None:
|
|
270
|
+
"""
|
|
271
|
+
Sets the home position of translator's axis.
|
|
272
|
+
This position is used by G28.
|
|
273
|
+
|
|
274
|
+
Args:
|
|
275
|
+
axis: Letter of the axis.
|
|
276
|
+
position: The home position.
|
|
277
|
+
unit: Units of position.
|
|
278
|
+
"""
|
|
279
|
+
request = dto.TranslatorSetAxisPositionRequest(
|
|
280
|
+
translator_id=self.translator_id,
|
|
281
|
+
axis=axis,
|
|
282
|
+
position=position,
|
|
283
|
+
unit=unit,
|
|
284
|
+
)
|
|
285
|
+
call_sync("gcode/set_axis_home", request)
|
|
286
|
+
|
|
287
|
+
def set_axis_secondary_home_position(
|
|
288
|
+
self,
|
|
289
|
+
axis: str,
|
|
290
|
+
position: float,
|
|
291
|
+
unit: LengthUnits
|
|
292
|
+
) -> None:
|
|
293
|
+
"""
|
|
294
|
+
Sets the secondary home position of translator's axis.
|
|
295
|
+
This position is used by G30.
|
|
296
|
+
|
|
297
|
+
Args:
|
|
298
|
+
axis: Letter of the axis.
|
|
299
|
+
position: The home position.
|
|
300
|
+
unit: Units of position.
|
|
301
|
+
"""
|
|
302
|
+
request = dto.TranslatorSetAxisPositionRequest(
|
|
303
|
+
translator_id=self.translator_id,
|
|
304
|
+
axis=axis,
|
|
305
|
+
position=position,
|
|
306
|
+
unit=unit,
|
|
307
|
+
)
|
|
308
|
+
call_sync("gcode/set_axis_secondary_home", request)
|
|
309
|
+
|
|
310
|
+
def get_axis_coordinate_system_offset(
|
|
311
|
+
self,
|
|
312
|
+
coordinate_system: str,
|
|
313
|
+
axis: str,
|
|
314
|
+
unit: LengthUnits
|
|
315
|
+
) -> float:
|
|
316
|
+
"""
|
|
317
|
+
Gets offset of an axis in a given coordinate system.
|
|
318
|
+
|
|
319
|
+
Args:
|
|
320
|
+
coordinate_system: Coordinate system (e.g. G54).
|
|
321
|
+
axis: Letter of the axis.
|
|
322
|
+
unit: Units of position.
|
|
323
|
+
|
|
324
|
+
Returns:
|
|
325
|
+
Offset in translator units of the axis.
|
|
326
|
+
"""
|
|
327
|
+
request = dto.TranslatorGetAxisOffsetRequest(
|
|
328
|
+
translator_id=self.translator_id,
|
|
329
|
+
coordinate_system=coordinate_system,
|
|
330
|
+
axis=axis,
|
|
331
|
+
unit=unit,
|
|
332
|
+
)
|
|
333
|
+
response = call_sync(
|
|
334
|
+
"gcode/get_axis_offset",
|
|
335
|
+
request,
|
|
336
|
+
dto.DoubleResponse.from_binary)
|
|
337
|
+
return response.value
|
|
338
|
+
|
|
339
|
+
def reset_after_stream_error(
|
|
340
|
+
self
|
|
341
|
+
) -> None:
|
|
342
|
+
"""
|
|
343
|
+
Resets internal state after device rejected generated command.
|
|
344
|
+
Axis positions become uninitialized.
|
|
345
|
+
"""
|
|
346
|
+
request = dto.TranslatorEmptyRequest(
|
|
347
|
+
translator_id=self.translator_id,
|
|
348
|
+
)
|
|
349
|
+
call_sync("gcode/reset_after_stream_error", request)
|
|
350
|
+
|
|
351
|
+
def set_feed_rate_override(
|
|
352
|
+
self,
|
|
353
|
+
coefficient: float
|
|
354
|
+
) -> None:
|
|
355
|
+
"""
|
|
356
|
+
Allows to scale feed rate of the translated code by a coefficient.
|
|
357
|
+
|
|
358
|
+
Args:
|
|
359
|
+
coefficient: Coefficient of the original feed rate.
|
|
360
|
+
"""
|
|
361
|
+
request = dto.TranslatorSetFeedRateOverrideRequest(
|
|
362
|
+
translator_id=self.translator_id,
|
|
363
|
+
coefficient=coefficient,
|
|
364
|
+
)
|
|
365
|
+
call_sync("gcode/set_feed_rate_override", request)
|
|
366
|
+
|
|
367
|
+
@staticmethod
|
|
368
|
+
def __free(
|
|
369
|
+
translator_id: int
|
|
370
|
+
) -> None:
|
|
371
|
+
"""
|
|
372
|
+
Releases native resources of a translator.
|
|
373
|
+
|
|
374
|
+
Args:
|
|
375
|
+
translator_id: The ID of the translator.
|
|
376
|
+
"""
|
|
377
|
+
request = dto.TranslatorEmptyRequest(
|
|
378
|
+
translator_id=translator_id,
|
|
379
|
+
)
|
|
380
|
+
call_sync("gcode/free", request)
|
|
381
|
+
|
|
382
|
+
def __get_current_coordinate_system(
|
|
383
|
+
self
|
|
384
|
+
) -> str:
|
|
385
|
+
"""
|
|
386
|
+
Gets current coordinate system (e.g. G54).
|
|
387
|
+
|
|
388
|
+
Returns:
|
|
389
|
+
Current coordinate system.
|
|
390
|
+
"""
|
|
391
|
+
request = dto.TranslatorEmptyRequest(
|
|
392
|
+
translator_id=self.translator_id,
|
|
393
|
+
)
|
|
394
|
+
response = call_sync(
|
|
395
|
+
"gcode/get_current_coordinate_system",
|
|
396
|
+
request,
|
|
397
|
+
dto.StringResponse.from_binary)
|
|
398
|
+
return response.value
|
|
399
|
+
|
|
400
|
+
def __del__(self) -> None:
|
|
401
|
+
OfflineTranslator.__free(self.translator_id)
|