zaber-motion 7.13.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 -1673
- 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 -134
- 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.13.0.dist-info → zaber_motion-7.14.0.dist-info}/LICENSE.txt +2119 -2119
- {zaber_motion-7.13.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.13.0.dist-info/RECORD +0 -494
- {zaber_motion-7.13.0.dist-info → zaber_motion-7.14.0.dist-info}/WHEEL +0 -0
- {zaber_motion-7.13.0.dist-info → zaber_motion-7.14.0.dist-info}/top_level.txt +0 -0
zaber_motion/ascii/trigger.py
CHANGED
|
@@ -1,886 +1,886 @@
|
|
|
1
|
-
# ===== THIS FILE IS GENERATED FROM A TEMPLATE ===== #
|
|
2
|
-
# ============== DO NOT EDIT DIRECTLY ============== #
|
|
3
|
-
from typing import TYPE_CHECKING, Optional
|
|
4
|
-
from ..dto import requests as dto
|
|
5
|
-
from ..call import call, call_async
|
|
6
|
-
from ..units import Units, LengthUnits, UnitsAndLiterals, TimeUnits
|
|
7
|
-
from ..dto.ascii.trigger_state import TriggerState
|
|
8
|
-
from ..dto.ascii.trigger_enabled_state import TriggerEnabledState
|
|
9
|
-
from ..dto.ascii.io_port_type import IoPortType
|
|
10
|
-
from ..dto.ascii.trigger_condition import TriggerCondition
|
|
11
|
-
from ..dto.ascii.trigger_action import TriggerAction
|
|
12
|
-
from ..dto.ascii.trigger_operation import TriggerOperation
|
|
13
|
-
|
|
14
|
-
if TYPE_CHECKING:
|
|
15
|
-
from .device import Device
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class Trigger:
|
|
19
|
-
"""
|
|
20
|
-
A handle for a trigger with this number on the device.
|
|
21
|
-
Triggers allow setting up actions that occur when a certain condition has been met or an event has occurred.
|
|
22
|
-
Please note that the Triggers API is currently an experimental feature.
|
|
23
|
-
Requires at least Firmware 7.06.
|
|
24
|
-
"""
|
|
25
|
-
|
|
26
|
-
@property
|
|
27
|
-
def device(self) -> 'Device':
|
|
28
|
-
"""
|
|
29
|
-
Device that this trigger belongs to.
|
|
30
|
-
"""
|
|
31
|
-
return self._device
|
|
32
|
-
|
|
33
|
-
@property
|
|
34
|
-
def trigger_number(self) -> int:
|
|
35
|
-
"""
|
|
36
|
-
Number of this trigger.
|
|
37
|
-
"""
|
|
38
|
-
return self._trigger_number
|
|
39
|
-
|
|
40
|
-
def __init__(self, device: 'Device', trigger_number: int):
|
|
41
|
-
self._device: 'Device' = device
|
|
42
|
-
self._trigger_number: int = trigger_number
|
|
43
|
-
|
|
44
|
-
def enable(
|
|
45
|
-
self,
|
|
46
|
-
count: int = 0
|
|
47
|
-
) -> None:
|
|
48
|
-
"""
|
|
49
|
-
Enables the trigger.
|
|
50
|
-
Once a trigger is enabled, it will fire whenever its condition transitions from false to true.
|
|
51
|
-
If a trigger condition is true when a disabled trigger is enabled, the trigger will fire immediately.
|
|
52
|
-
|
|
53
|
-
Args:
|
|
54
|
-
count: Number of times the trigger will fire before disabling itself.
|
|
55
|
-
If count is not specified, or 0, the trigger will fire indefinitely.
|
|
56
|
-
"""
|
|
57
|
-
if count < 0:
|
|
58
|
-
raise ValueError('Invalid value; count must be 0 or positive.')
|
|
59
|
-
|
|
60
|
-
request = dto.TriggerEnableRequest(
|
|
61
|
-
interface_id=self.device.connection.interface_id,
|
|
62
|
-
device=self.device.device_address,
|
|
63
|
-
trigger_number=self.trigger_number,
|
|
64
|
-
count=count,
|
|
65
|
-
)
|
|
66
|
-
call("trigger/enable", request)
|
|
67
|
-
|
|
68
|
-
async def enable_async(
|
|
69
|
-
self,
|
|
70
|
-
count: int = 0
|
|
71
|
-
) -> None:
|
|
72
|
-
"""
|
|
73
|
-
Enables the trigger.
|
|
74
|
-
Once a trigger is enabled, it will fire whenever its condition transitions from false to true.
|
|
75
|
-
If a trigger condition is true when a disabled trigger is enabled, the trigger will fire immediately.
|
|
76
|
-
|
|
77
|
-
Args:
|
|
78
|
-
count: Number of times the trigger will fire before disabling itself.
|
|
79
|
-
If count is not specified, or 0, the trigger will fire indefinitely.
|
|
80
|
-
"""
|
|
81
|
-
if count < 0:
|
|
82
|
-
raise ValueError('Invalid value; count must be 0 or positive.')
|
|
83
|
-
|
|
84
|
-
request = dto.TriggerEnableRequest(
|
|
85
|
-
interface_id=self.device.connection.interface_id,
|
|
86
|
-
device=self.device.device_address,
|
|
87
|
-
trigger_number=self.trigger_number,
|
|
88
|
-
count=count,
|
|
89
|
-
)
|
|
90
|
-
await call_async("trigger/enable", request)
|
|
91
|
-
|
|
92
|
-
def disable(
|
|
93
|
-
self
|
|
94
|
-
) -> None:
|
|
95
|
-
"""
|
|
96
|
-
Disables the trigger.
|
|
97
|
-
Once disabled, the trigger will not fire and trigger actions will not run, even if trigger conditions are met.
|
|
98
|
-
"""
|
|
99
|
-
request = dto.TriggerEmptyRequest(
|
|
100
|
-
interface_id=self.device.connection.interface_id,
|
|
101
|
-
device=self.device.device_address,
|
|
102
|
-
trigger_number=self.trigger_number,
|
|
103
|
-
)
|
|
104
|
-
call("trigger/disable", request)
|
|
105
|
-
|
|
106
|
-
async def disable_async(
|
|
107
|
-
self
|
|
108
|
-
) -> None:
|
|
109
|
-
"""
|
|
110
|
-
Disables the trigger.
|
|
111
|
-
Once disabled, the trigger will not fire and trigger actions will not run, even if trigger conditions are met.
|
|
112
|
-
"""
|
|
113
|
-
request = dto.TriggerEmptyRequest(
|
|
114
|
-
interface_id=self.device.connection.interface_id,
|
|
115
|
-
device=self.device.device_address,
|
|
116
|
-
trigger_number=self.trigger_number,
|
|
117
|
-
)
|
|
118
|
-
await call_async("trigger/disable", request)
|
|
119
|
-
|
|
120
|
-
def get_state(
|
|
121
|
-
self
|
|
122
|
-
) -> TriggerState:
|
|
123
|
-
"""
|
|
124
|
-
Gets the state of the trigger.
|
|
125
|
-
|
|
126
|
-
Returns:
|
|
127
|
-
Complete state of the trigger.
|
|
128
|
-
"""
|
|
129
|
-
request = dto.TriggerEmptyRequest(
|
|
130
|
-
interface_id=self.device.connection.interface_id,
|
|
131
|
-
device=self.device.device_address,
|
|
132
|
-
trigger_number=self.trigger_number,
|
|
133
|
-
)
|
|
134
|
-
response = call(
|
|
135
|
-
"trigger/get_state",
|
|
136
|
-
request,
|
|
137
|
-
TriggerState.from_binary)
|
|
138
|
-
return response
|
|
139
|
-
|
|
140
|
-
async def get_state_async(
|
|
141
|
-
self
|
|
142
|
-
) -> TriggerState:
|
|
143
|
-
"""
|
|
144
|
-
Gets the state of the trigger.
|
|
145
|
-
|
|
146
|
-
Returns:
|
|
147
|
-
Complete state of the trigger.
|
|
148
|
-
"""
|
|
149
|
-
request = dto.TriggerEmptyRequest(
|
|
150
|
-
interface_id=self.device.connection.interface_id,
|
|
151
|
-
device=self.device.device_address,
|
|
152
|
-
trigger_number=self.trigger_number,
|
|
153
|
-
)
|
|
154
|
-
response = await call_async(
|
|
155
|
-
"trigger/get_state",
|
|
156
|
-
request,
|
|
157
|
-
TriggerState.from_binary)
|
|
158
|
-
return response
|
|
159
|
-
|
|
160
|
-
def get_enabled_state(
|
|
161
|
-
self
|
|
162
|
-
) -> TriggerEnabledState:
|
|
163
|
-
"""
|
|
164
|
-
Gets the enabled state of the trigger.
|
|
165
|
-
|
|
166
|
-
Returns:
|
|
167
|
-
Whether the trigger is enabled and the number of times it will fire.
|
|
168
|
-
"""
|
|
169
|
-
request = dto.TriggerEmptyRequest(
|
|
170
|
-
interface_id=self.device.connection.interface_id,
|
|
171
|
-
device=self.device.device_address,
|
|
172
|
-
trigger_number=self.trigger_number,
|
|
173
|
-
)
|
|
174
|
-
response = call(
|
|
175
|
-
"trigger/get_enabled_state",
|
|
176
|
-
request,
|
|
177
|
-
TriggerEnabledState.from_binary)
|
|
178
|
-
return response
|
|
179
|
-
|
|
180
|
-
async def get_enabled_state_async(
|
|
181
|
-
self
|
|
182
|
-
) -> TriggerEnabledState:
|
|
183
|
-
"""
|
|
184
|
-
Gets the enabled state of the trigger.
|
|
185
|
-
|
|
186
|
-
Returns:
|
|
187
|
-
Whether the trigger is enabled and the number of times it will fire.
|
|
188
|
-
"""
|
|
189
|
-
request = dto.TriggerEmptyRequest(
|
|
190
|
-
interface_id=self.device.connection.interface_id,
|
|
191
|
-
device=self.device.device_address,
|
|
192
|
-
trigger_number=self.trigger_number,
|
|
193
|
-
)
|
|
194
|
-
response = await call_async(
|
|
195
|
-
"trigger/get_enabled_state",
|
|
196
|
-
request,
|
|
197
|
-
TriggerEnabledState.from_binary)
|
|
198
|
-
return response
|
|
199
|
-
|
|
200
|
-
def fire_when(
|
|
201
|
-
self,
|
|
202
|
-
condition: str
|
|
203
|
-
) -> None:
|
|
204
|
-
"""
|
|
205
|
-
Set a generic trigger condition.
|
|
206
|
-
|
|
207
|
-
Args:
|
|
208
|
-
condition: The condition to set for this trigger.
|
|
209
|
-
"""
|
|
210
|
-
request = dto.TriggerFireWhenRequest(
|
|
211
|
-
interface_id=self.device.connection.interface_id,
|
|
212
|
-
device=self.device.device_address,
|
|
213
|
-
trigger_number=self.trigger_number,
|
|
214
|
-
condition=condition,
|
|
215
|
-
)
|
|
216
|
-
call("trigger/fire_when", request)
|
|
217
|
-
|
|
218
|
-
async def fire_when_async(
|
|
219
|
-
self,
|
|
220
|
-
condition: str
|
|
221
|
-
) -> None:
|
|
222
|
-
"""
|
|
223
|
-
Set a generic trigger condition.
|
|
224
|
-
|
|
225
|
-
Args:
|
|
226
|
-
condition: The condition to set for this trigger.
|
|
227
|
-
"""
|
|
228
|
-
request = dto.TriggerFireWhenRequest(
|
|
229
|
-
interface_id=self.device.connection.interface_id,
|
|
230
|
-
device=self.device.device_address,
|
|
231
|
-
trigger_number=self.trigger_number,
|
|
232
|
-
condition=condition,
|
|
233
|
-
)
|
|
234
|
-
await call_async("trigger/fire_when", request)
|
|
235
|
-
|
|
236
|
-
def fire_when_encoder_distance_travelled(
|
|
237
|
-
self,
|
|
238
|
-
axis: int,
|
|
239
|
-
distance: float,
|
|
240
|
-
unit: LengthUnits = Units.NATIVE
|
|
241
|
-
) -> None:
|
|
242
|
-
"""
|
|
243
|
-
Set a trigger condition for when an encoder position has changed by a specific distance.
|
|
244
|
-
|
|
245
|
-
Args:
|
|
246
|
-
axis: The axis to monitor for this condition.
|
|
247
|
-
May be set to 0 on single-axis devices only.
|
|
248
|
-
distance: The measured encoder distance between trigger fires.
|
|
249
|
-
unit: Units of dist.
|
|
250
|
-
"""
|
|
251
|
-
if distance <= 0:
|
|
252
|
-
raise ValueError('Invalid value; encoder distance must be a positive value.')
|
|
253
|
-
|
|
254
|
-
request = dto.TriggerFireWhenDistanceTravelledRequest(
|
|
255
|
-
interface_id=self.device.connection.interface_id,
|
|
256
|
-
device=self.device.device_address,
|
|
257
|
-
trigger_number=self.trigger_number,
|
|
258
|
-
axis=axis,
|
|
259
|
-
distance=distance,
|
|
260
|
-
unit=unit,
|
|
261
|
-
)
|
|
262
|
-
call("trigger/fire_when_encoder_distance_travelled", request)
|
|
263
|
-
|
|
264
|
-
async def fire_when_encoder_distance_travelled_async(
|
|
265
|
-
self,
|
|
266
|
-
axis: int,
|
|
267
|
-
distance: float,
|
|
268
|
-
unit: LengthUnits = Units.NATIVE
|
|
269
|
-
) -> None:
|
|
270
|
-
"""
|
|
271
|
-
Set a trigger condition for when an encoder position has changed by a specific distance.
|
|
272
|
-
|
|
273
|
-
Args:
|
|
274
|
-
axis: The axis to monitor for this condition.
|
|
275
|
-
May be set to 0 on single-axis devices only.
|
|
276
|
-
distance: The measured encoder distance between trigger fires.
|
|
277
|
-
unit: Units of dist.
|
|
278
|
-
"""
|
|
279
|
-
if distance <= 0:
|
|
280
|
-
raise ValueError('Invalid value; encoder distance must be a positive value.')
|
|
281
|
-
|
|
282
|
-
request = dto.TriggerFireWhenDistanceTravelledRequest(
|
|
283
|
-
interface_id=self.device.connection.interface_id,
|
|
284
|
-
device=self.device.device_address,
|
|
285
|
-
trigger_number=self.trigger_number,
|
|
286
|
-
axis=axis,
|
|
287
|
-
distance=distance,
|
|
288
|
-
unit=unit,
|
|
289
|
-
)
|
|
290
|
-
await call_async("trigger/fire_when_encoder_distance_travelled", request)
|
|
291
|
-
|
|
292
|
-
def fire_when_distance_travelled(
|
|
293
|
-
self,
|
|
294
|
-
axis: int,
|
|
295
|
-
distance: float,
|
|
296
|
-
unit: LengthUnits = Units.NATIVE
|
|
297
|
-
) -> None:
|
|
298
|
-
"""
|
|
299
|
-
Set a trigger condition for when an axis position has changed by a specific distance.
|
|
300
|
-
|
|
301
|
-
Args:
|
|
302
|
-
axis: The axis to monitor for this condition.
|
|
303
|
-
May be set to 0 on single-axis devices only.
|
|
304
|
-
distance: The measured distance between trigger fires.
|
|
305
|
-
unit: Units of dist.
|
|
306
|
-
"""
|
|
307
|
-
if distance <= 0:
|
|
308
|
-
raise ValueError('Invalid value; distance must be a positive value.')
|
|
309
|
-
|
|
310
|
-
request = dto.TriggerFireWhenDistanceTravelledRequest(
|
|
311
|
-
interface_id=self.device.connection.interface_id,
|
|
312
|
-
device=self.device.device_address,
|
|
313
|
-
trigger_number=self.trigger_number,
|
|
314
|
-
axis=axis,
|
|
315
|
-
distance=distance,
|
|
316
|
-
unit=unit,
|
|
317
|
-
)
|
|
318
|
-
call("trigger/fire_when_distance_travelled", request)
|
|
319
|
-
|
|
320
|
-
async def fire_when_distance_travelled_async(
|
|
321
|
-
self,
|
|
322
|
-
axis: int,
|
|
323
|
-
distance: float,
|
|
324
|
-
unit: LengthUnits = Units.NATIVE
|
|
325
|
-
) -> None:
|
|
326
|
-
"""
|
|
327
|
-
Set a trigger condition for when an axis position has changed by a specific distance.
|
|
328
|
-
|
|
329
|
-
Args:
|
|
330
|
-
axis: The axis to monitor for this condition.
|
|
331
|
-
May be set to 0 on single-axis devices only.
|
|
332
|
-
distance: The measured distance between trigger fires.
|
|
333
|
-
unit: Units of dist.
|
|
334
|
-
"""
|
|
335
|
-
if distance <= 0:
|
|
336
|
-
raise ValueError('Invalid value; distance must be a positive value.')
|
|
337
|
-
|
|
338
|
-
request = dto.TriggerFireWhenDistanceTravelledRequest(
|
|
339
|
-
interface_id=self.device.connection.interface_id,
|
|
340
|
-
device=self.device.device_address,
|
|
341
|
-
trigger_number=self.trigger_number,
|
|
342
|
-
axis=axis,
|
|
343
|
-
distance=distance,
|
|
344
|
-
unit=unit,
|
|
345
|
-
)
|
|
346
|
-
await call_async("trigger/fire_when_distance_travelled", request)
|
|
347
|
-
|
|
348
|
-
def fire_when_io(
|
|
349
|
-
self,
|
|
350
|
-
port_type: IoPortType,
|
|
351
|
-
channel: int,
|
|
352
|
-
trigger_condition: TriggerCondition,
|
|
353
|
-
value: float
|
|
354
|
-
) -> None:
|
|
355
|
-
"""
|
|
356
|
-
Set a trigger condition based on an IO channel value.
|
|
357
|
-
|
|
358
|
-
Args:
|
|
359
|
-
port_type: The type of IO channel to monitor.
|
|
360
|
-
channel: The IO channel to monitor.
|
|
361
|
-
trigger_condition: Comparison operator.
|
|
362
|
-
value: Comparison value.
|
|
363
|
-
"""
|
|
364
|
-
if channel <= 0:
|
|
365
|
-
raise ValueError('Invalid value; channel must be a positive value.')
|
|
366
|
-
|
|
367
|
-
request = dto.TriggerFireWhenIoRequest(
|
|
368
|
-
interface_id=self.device.connection.interface_id,
|
|
369
|
-
device=self.device.device_address,
|
|
370
|
-
trigger_number=self.trigger_number,
|
|
371
|
-
port_type=port_type,
|
|
372
|
-
channel=channel,
|
|
373
|
-
trigger_condition=trigger_condition,
|
|
374
|
-
value=value,
|
|
375
|
-
)
|
|
376
|
-
call("trigger/fire_when_io", request)
|
|
377
|
-
|
|
378
|
-
async def fire_when_io_async(
|
|
379
|
-
self,
|
|
380
|
-
port_type: IoPortType,
|
|
381
|
-
channel: int,
|
|
382
|
-
trigger_condition: TriggerCondition,
|
|
383
|
-
value: float
|
|
384
|
-
) -> None:
|
|
385
|
-
"""
|
|
386
|
-
Set a trigger condition based on an IO channel value.
|
|
387
|
-
|
|
388
|
-
Args:
|
|
389
|
-
port_type: The type of IO channel to monitor.
|
|
390
|
-
channel: The IO channel to monitor.
|
|
391
|
-
trigger_condition: Comparison operator.
|
|
392
|
-
value: Comparison value.
|
|
393
|
-
"""
|
|
394
|
-
if channel <= 0:
|
|
395
|
-
raise ValueError('Invalid value; channel must be a positive value.')
|
|
396
|
-
|
|
397
|
-
request = dto.TriggerFireWhenIoRequest(
|
|
398
|
-
interface_id=self.device.connection.interface_id,
|
|
399
|
-
device=self.device.device_address,
|
|
400
|
-
trigger_number=self.trigger_number,
|
|
401
|
-
port_type=port_type,
|
|
402
|
-
channel=channel,
|
|
403
|
-
trigger_condition=trigger_condition,
|
|
404
|
-
value=value,
|
|
405
|
-
)
|
|
406
|
-
await call_async("trigger/fire_when_io", request)
|
|
407
|
-
|
|
408
|
-
def fire_when_setting(
|
|
409
|
-
self,
|
|
410
|
-
axis: int,
|
|
411
|
-
setting: str,
|
|
412
|
-
trigger_condition: TriggerCondition,
|
|
413
|
-
value: float,
|
|
414
|
-
unit: UnitsAndLiterals = Units.NATIVE
|
|
415
|
-
) -> None:
|
|
416
|
-
"""
|
|
417
|
-
Set a trigger condition based on a setting value.
|
|
418
|
-
|
|
419
|
-
Args:
|
|
420
|
-
axis: The axis to monitor for this condition.
|
|
421
|
-
Set to 0 for device-scope settings.
|
|
422
|
-
setting: The setting to monitor.
|
|
423
|
-
trigger_condition: Comparison operator.
|
|
424
|
-
value: Comparison value.
|
|
425
|
-
unit: Units of value.
|
|
426
|
-
"""
|
|
427
|
-
request = dto.TriggerFireWhenSettingRequest(
|
|
428
|
-
interface_id=self.device.connection.interface_id,
|
|
429
|
-
device=self.device.device_address,
|
|
430
|
-
trigger_number=self.trigger_number,
|
|
431
|
-
axis=axis,
|
|
432
|
-
setting=setting,
|
|
433
|
-
trigger_condition=trigger_condition,
|
|
434
|
-
value=value,
|
|
435
|
-
unit=unit,
|
|
436
|
-
)
|
|
437
|
-
call("trigger/fire_when_setting", request)
|
|
438
|
-
|
|
439
|
-
async def fire_when_setting_async(
|
|
440
|
-
self,
|
|
441
|
-
axis: int,
|
|
442
|
-
setting: str,
|
|
443
|
-
trigger_condition: TriggerCondition,
|
|
444
|
-
value: float,
|
|
445
|
-
unit: UnitsAndLiterals = Units.NATIVE
|
|
446
|
-
) -> None:
|
|
447
|
-
"""
|
|
448
|
-
Set a trigger condition based on a setting value.
|
|
449
|
-
|
|
450
|
-
Args:
|
|
451
|
-
axis: The axis to monitor for this condition.
|
|
452
|
-
Set to 0 for device-scope settings.
|
|
453
|
-
setting: The setting to monitor.
|
|
454
|
-
trigger_condition: Comparison operator.
|
|
455
|
-
value: Comparison value.
|
|
456
|
-
unit: Units of value.
|
|
457
|
-
"""
|
|
458
|
-
request = dto.TriggerFireWhenSettingRequest(
|
|
459
|
-
interface_id=self.device.connection.interface_id,
|
|
460
|
-
device=self.device.device_address,
|
|
461
|
-
trigger_number=self.trigger_number,
|
|
462
|
-
axis=axis,
|
|
463
|
-
setting=setting,
|
|
464
|
-
trigger_condition=trigger_condition,
|
|
465
|
-
value=value,
|
|
466
|
-
unit=unit,
|
|
467
|
-
)
|
|
468
|
-
await call_async("trigger/fire_when_setting", request)
|
|
469
|
-
|
|
470
|
-
def fire_when_absolute_setting(
|
|
471
|
-
self,
|
|
472
|
-
axis: int,
|
|
473
|
-
setting: str,
|
|
474
|
-
trigger_condition: TriggerCondition,
|
|
475
|
-
value: float,
|
|
476
|
-
unit: UnitsAndLiterals = Units.NATIVE
|
|
477
|
-
) -> None:
|
|
478
|
-
"""
|
|
479
|
-
Set a trigger condition based on an absolute setting value.
|
|
480
|
-
|
|
481
|
-
Args:
|
|
482
|
-
axis: The axis to monitor for this condition.
|
|
483
|
-
Set to 0 for device-scope settings.
|
|
484
|
-
setting: The setting to monitor.
|
|
485
|
-
trigger_condition: Comparison operator.
|
|
486
|
-
value: Comparison value.
|
|
487
|
-
unit: Units of value.
|
|
488
|
-
"""
|
|
489
|
-
request = dto.TriggerFireWhenSettingRequest(
|
|
490
|
-
interface_id=self.device.connection.interface_id,
|
|
491
|
-
device=self.device.device_address,
|
|
492
|
-
trigger_number=self.trigger_number,
|
|
493
|
-
axis=axis,
|
|
494
|
-
setting=setting,
|
|
495
|
-
trigger_condition=trigger_condition,
|
|
496
|
-
value=value,
|
|
497
|
-
unit=unit,
|
|
498
|
-
)
|
|
499
|
-
call("trigger/fire_when_setting_absolute", request)
|
|
500
|
-
|
|
501
|
-
async def fire_when_absolute_setting_async(
|
|
502
|
-
self,
|
|
503
|
-
axis: int,
|
|
504
|
-
setting: str,
|
|
505
|
-
trigger_condition: TriggerCondition,
|
|
506
|
-
value: float,
|
|
507
|
-
unit: UnitsAndLiterals = Units.NATIVE
|
|
508
|
-
) -> None:
|
|
509
|
-
"""
|
|
510
|
-
Set a trigger condition based on an absolute setting value.
|
|
511
|
-
|
|
512
|
-
Args:
|
|
513
|
-
axis: The axis to monitor for this condition.
|
|
514
|
-
Set to 0 for device-scope settings.
|
|
515
|
-
setting: The setting to monitor.
|
|
516
|
-
trigger_condition: Comparison operator.
|
|
517
|
-
value: Comparison value.
|
|
518
|
-
unit: Units of value.
|
|
519
|
-
"""
|
|
520
|
-
request = dto.TriggerFireWhenSettingRequest(
|
|
521
|
-
interface_id=self.device.connection.interface_id,
|
|
522
|
-
device=self.device.device_address,
|
|
523
|
-
trigger_number=self.trigger_number,
|
|
524
|
-
axis=axis,
|
|
525
|
-
setting=setting,
|
|
526
|
-
trigger_condition=trigger_condition,
|
|
527
|
-
value=value,
|
|
528
|
-
unit=unit,
|
|
529
|
-
)
|
|
530
|
-
await call_async("trigger/fire_when_setting_absolute", request)
|
|
531
|
-
|
|
532
|
-
def fire_at_interval(
|
|
533
|
-
self,
|
|
534
|
-
interval: float,
|
|
535
|
-
unit: TimeUnits = Units.NATIVE
|
|
536
|
-
) -> None:
|
|
537
|
-
"""
|
|
538
|
-
Set a trigger condition based on a time interval.
|
|
539
|
-
|
|
540
|
-
Args:
|
|
541
|
-
interval: The time interval between trigger fires.
|
|
542
|
-
unit: Units of time.
|
|
543
|
-
"""
|
|
544
|
-
if interval <= 0:
|
|
545
|
-
raise ValueError('Invalid value; interval must be a positive value.')
|
|
546
|
-
|
|
547
|
-
request = dto.TriggerFireAtIntervalRequest(
|
|
548
|
-
interface_id=self.device.connection.interface_id,
|
|
549
|
-
device=self.device.device_address,
|
|
550
|
-
trigger_number=self.trigger_number,
|
|
551
|
-
interval=interval,
|
|
552
|
-
unit=unit,
|
|
553
|
-
)
|
|
554
|
-
call("trigger/fire_at_interval", request)
|
|
555
|
-
|
|
556
|
-
async def fire_at_interval_async(
|
|
557
|
-
self,
|
|
558
|
-
interval: float,
|
|
559
|
-
unit: TimeUnits = Units.NATIVE
|
|
560
|
-
) -> None:
|
|
561
|
-
"""
|
|
562
|
-
Set a trigger condition based on a time interval.
|
|
563
|
-
|
|
564
|
-
Args:
|
|
565
|
-
interval: The time interval between trigger fires.
|
|
566
|
-
unit: Units of time.
|
|
567
|
-
"""
|
|
568
|
-
if interval <= 0:
|
|
569
|
-
raise ValueError('Invalid value; interval must be a positive value.')
|
|
570
|
-
|
|
571
|
-
request = dto.TriggerFireAtIntervalRequest(
|
|
572
|
-
interface_id=self.device.connection.interface_id,
|
|
573
|
-
device=self.device.device_address,
|
|
574
|
-
trigger_number=self.trigger_number,
|
|
575
|
-
interval=interval,
|
|
576
|
-
unit=unit,
|
|
577
|
-
)
|
|
578
|
-
await call_async("trigger/fire_at_interval", request)
|
|
579
|
-
|
|
580
|
-
def on_fire(
|
|
581
|
-
self,
|
|
582
|
-
action: TriggerAction,
|
|
583
|
-
axis: int,
|
|
584
|
-
command: str
|
|
585
|
-
) -> None:
|
|
586
|
-
"""
|
|
587
|
-
Set a command to be a trigger action.
|
|
588
|
-
|
|
589
|
-
Args:
|
|
590
|
-
action: The action number to assign the command to.
|
|
591
|
-
axis: The axis to on which to run this command.
|
|
592
|
-
Set to 0 for device-scope settings or to run command on all axes.
|
|
593
|
-
command: The command to run when the action is triggered.
|
|
594
|
-
"""
|
|
595
|
-
request = dto.TriggerOnFireRequest(
|
|
596
|
-
interface_id=self.device.connection.interface_id,
|
|
597
|
-
device=self.device.device_address,
|
|
598
|
-
trigger_number=self.trigger_number,
|
|
599
|
-
action=action,
|
|
600
|
-
axis=axis,
|
|
601
|
-
command=command,
|
|
602
|
-
)
|
|
603
|
-
call("trigger/on_fire", request)
|
|
604
|
-
|
|
605
|
-
async def on_fire_async(
|
|
606
|
-
self,
|
|
607
|
-
action: TriggerAction,
|
|
608
|
-
axis: int,
|
|
609
|
-
command: str
|
|
610
|
-
) -> None:
|
|
611
|
-
"""
|
|
612
|
-
Set a command to be a trigger action.
|
|
613
|
-
|
|
614
|
-
Args:
|
|
615
|
-
action: The action number to assign the command to.
|
|
616
|
-
axis: The axis to on which to run this command.
|
|
617
|
-
Set to 0 for device-scope settings or to run command on all axes.
|
|
618
|
-
command: The command to run when the action is triggered.
|
|
619
|
-
"""
|
|
620
|
-
request = dto.TriggerOnFireRequest(
|
|
621
|
-
interface_id=self.device.connection.interface_id,
|
|
622
|
-
device=self.device.device_address,
|
|
623
|
-
trigger_number=self.trigger_number,
|
|
624
|
-
action=action,
|
|
625
|
-
axis=axis,
|
|
626
|
-
command=command,
|
|
627
|
-
)
|
|
628
|
-
await call_async("trigger/on_fire", request)
|
|
629
|
-
|
|
630
|
-
def on_fire_set(
|
|
631
|
-
self,
|
|
632
|
-
action: TriggerAction,
|
|
633
|
-
axis: int,
|
|
634
|
-
setting: str,
|
|
635
|
-
operation: TriggerOperation,
|
|
636
|
-
value: float,
|
|
637
|
-
unit: UnitsAndLiterals = Units.NATIVE
|
|
638
|
-
) -> None:
|
|
639
|
-
"""
|
|
640
|
-
Set a trigger action to update a setting.
|
|
641
|
-
|
|
642
|
-
Args:
|
|
643
|
-
action: The action number to assign the command to.
|
|
644
|
-
axis: The axis on which to change the setting.
|
|
645
|
-
Set to 0 to change the setting for the device.
|
|
646
|
-
setting: The name of the setting to change.
|
|
647
|
-
operation: The operation to apply to the setting.
|
|
648
|
-
value: Operation value.
|
|
649
|
-
unit: Units of value.
|
|
650
|
-
"""
|
|
651
|
-
request = dto.TriggerOnFireSetRequest(
|
|
652
|
-
interface_id=self.device.connection.interface_id,
|
|
653
|
-
device=self.device.device_address,
|
|
654
|
-
trigger_number=self.trigger_number,
|
|
655
|
-
action=action,
|
|
656
|
-
axis=axis,
|
|
657
|
-
setting=setting,
|
|
658
|
-
operation=operation,
|
|
659
|
-
value=value,
|
|
660
|
-
unit=unit,
|
|
661
|
-
)
|
|
662
|
-
call("trigger/on_fire_set", request)
|
|
663
|
-
|
|
664
|
-
async def on_fire_set_async(
|
|
665
|
-
self,
|
|
666
|
-
action: TriggerAction,
|
|
667
|
-
axis: int,
|
|
668
|
-
setting: str,
|
|
669
|
-
operation: TriggerOperation,
|
|
670
|
-
value: float,
|
|
671
|
-
unit: UnitsAndLiterals = Units.NATIVE
|
|
672
|
-
) -> None:
|
|
673
|
-
"""
|
|
674
|
-
Set a trigger action to update a setting.
|
|
675
|
-
|
|
676
|
-
Args:
|
|
677
|
-
action: The action number to assign the command to.
|
|
678
|
-
axis: The axis on which to change the setting.
|
|
679
|
-
Set to 0 to change the setting for the device.
|
|
680
|
-
setting: The name of the setting to change.
|
|
681
|
-
operation: The operation to apply to the setting.
|
|
682
|
-
value: Operation value.
|
|
683
|
-
unit: Units of value.
|
|
684
|
-
"""
|
|
685
|
-
request = dto.TriggerOnFireSetRequest(
|
|
686
|
-
interface_id=self.device.connection.interface_id,
|
|
687
|
-
device=self.device.device_address,
|
|
688
|
-
trigger_number=self.trigger_number,
|
|
689
|
-
action=action,
|
|
690
|
-
axis=axis,
|
|
691
|
-
setting=setting,
|
|
692
|
-
operation=operation,
|
|
693
|
-
value=value,
|
|
694
|
-
unit=unit,
|
|
695
|
-
)
|
|
696
|
-
await call_async("trigger/on_fire_set", request)
|
|
697
|
-
|
|
698
|
-
def on_fire_set_to_setting(
|
|
699
|
-
self,
|
|
700
|
-
action: TriggerAction,
|
|
701
|
-
axis: int,
|
|
702
|
-
setting: str,
|
|
703
|
-
operation: TriggerOperation,
|
|
704
|
-
from_axis: int,
|
|
705
|
-
from_setting: str
|
|
706
|
-
) -> None:
|
|
707
|
-
"""
|
|
708
|
-
Set a trigger action to update a setting with the value of another setting.
|
|
709
|
-
|
|
710
|
-
Args:
|
|
711
|
-
action: The action number to assign the command to.
|
|
712
|
-
axis: The axis on which to change the setting.
|
|
713
|
-
Set to 0 to change the setting for the device.
|
|
714
|
-
setting: The name of the setting to change.
|
|
715
|
-
Must have either integer or boolean type.
|
|
716
|
-
operation: The operation to apply to the setting.
|
|
717
|
-
from_axis: The axis from which to read the setting.
|
|
718
|
-
Set to 0 to read the setting from the device.
|
|
719
|
-
from_setting: The name of the setting to read.
|
|
720
|
-
Must have either integer or boolean type.
|
|
721
|
-
"""
|
|
722
|
-
request = dto.TriggerOnFireSetToSettingRequest(
|
|
723
|
-
interface_id=self.device.connection.interface_id,
|
|
724
|
-
device=self.device.device_address,
|
|
725
|
-
trigger_number=self.trigger_number,
|
|
726
|
-
action=action,
|
|
727
|
-
axis=axis,
|
|
728
|
-
setting=setting,
|
|
729
|
-
operation=operation,
|
|
730
|
-
from_axis=from_axis,
|
|
731
|
-
from_setting=from_setting,
|
|
732
|
-
)
|
|
733
|
-
call("trigger/on_fire_set_to_setting", request)
|
|
734
|
-
|
|
735
|
-
async def on_fire_set_to_setting_async(
|
|
736
|
-
self,
|
|
737
|
-
action: TriggerAction,
|
|
738
|
-
axis: int,
|
|
739
|
-
setting: str,
|
|
740
|
-
operation: TriggerOperation,
|
|
741
|
-
from_axis: int,
|
|
742
|
-
from_setting: str
|
|
743
|
-
) -> None:
|
|
744
|
-
"""
|
|
745
|
-
Set a trigger action to update a setting with the value of another setting.
|
|
746
|
-
|
|
747
|
-
Args:
|
|
748
|
-
action: The action number to assign the command to.
|
|
749
|
-
axis: The axis on which to change the setting.
|
|
750
|
-
Set to 0 to change the setting for the device.
|
|
751
|
-
setting: The name of the setting to change.
|
|
752
|
-
Must have either integer or boolean type.
|
|
753
|
-
operation: The operation to apply to the setting.
|
|
754
|
-
from_axis: The axis from which to read the setting.
|
|
755
|
-
Set to 0 to read the setting from the device.
|
|
756
|
-
from_setting: The name of the setting to read.
|
|
757
|
-
Must have either integer or boolean type.
|
|
758
|
-
"""
|
|
759
|
-
request = dto.TriggerOnFireSetToSettingRequest(
|
|
760
|
-
interface_id=self.device.connection.interface_id,
|
|
761
|
-
device=self.device.device_address,
|
|
762
|
-
trigger_number=self.trigger_number,
|
|
763
|
-
action=action,
|
|
764
|
-
axis=axis,
|
|
765
|
-
setting=setting,
|
|
766
|
-
operation=operation,
|
|
767
|
-
from_axis=from_axis,
|
|
768
|
-
from_setting=from_setting,
|
|
769
|
-
)
|
|
770
|
-
await call_async("trigger/on_fire_set_to_setting", request)
|
|
771
|
-
|
|
772
|
-
def clear_action(
|
|
773
|
-
self,
|
|
774
|
-
action: TriggerAction = TriggerAction.ALL
|
|
775
|
-
) -> None:
|
|
776
|
-
"""
|
|
777
|
-
Clear a trigger action.
|
|
778
|
-
|
|
779
|
-
Args:
|
|
780
|
-
action: The action number to clear.
|
|
781
|
-
The default option is to clear all actions.
|
|
782
|
-
"""
|
|
783
|
-
request = dto.TriggerClearActionRequest(
|
|
784
|
-
interface_id=self.device.connection.interface_id,
|
|
785
|
-
device=self.device.device_address,
|
|
786
|
-
trigger_number=self.trigger_number,
|
|
787
|
-
action=action,
|
|
788
|
-
)
|
|
789
|
-
call("trigger/clear_action", request)
|
|
790
|
-
|
|
791
|
-
async def clear_action_async(
|
|
792
|
-
self,
|
|
793
|
-
action: TriggerAction = TriggerAction.ALL
|
|
794
|
-
) -> None:
|
|
795
|
-
"""
|
|
796
|
-
Clear a trigger action.
|
|
797
|
-
|
|
798
|
-
Args:
|
|
799
|
-
action: The action number to clear.
|
|
800
|
-
The default option is to clear all actions.
|
|
801
|
-
"""
|
|
802
|
-
request = dto.TriggerClearActionRequest(
|
|
803
|
-
interface_id=self.device.connection.interface_id,
|
|
804
|
-
device=self.device.device_address,
|
|
805
|
-
trigger_number=self.trigger_number,
|
|
806
|
-
action=action,
|
|
807
|
-
)
|
|
808
|
-
await call_async("trigger/clear_action", request)
|
|
809
|
-
|
|
810
|
-
def get_label(
|
|
811
|
-
self
|
|
812
|
-
) -> str:
|
|
813
|
-
"""
|
|
814
|
-
Returns the label for the trigger.
|
|
815
|
-
|
|
816
|
-
Returns:
|
|
817
|
-
The label for the trigger.
|
|
818
|
-
"""
|
|
819
|
-
request = dto.TriggerEmptyRequest(
|
|
820
|
-
interface_id=self.device.connection.interface_id,
|
|
821
|
-
device=self.device.device_address,
|
|
822
|
-
trigger_number=self.trigger_number,
|
|
823
|
-
)
|
|
824
|
-
response = call(
|
|
825
|
-
"trigger/get_label",
|
|
826
|
-
request,
|
|
827
|
-
dto.StringResponse.from_binary)
|
|
828
|
-
return response.value
|
|
829
|
-
|
|
830
|
-
async def get_label_async(
|
|
831
|
-
self
|
|
832
|
-
) -> str:
|
|
833
|
-
"""
|
|
834
|
-
Returns the label for the trigger.
|
|
835
|
-
|
|
836
|
-
Returns:
|
|
837
|
-
The label for the trigger.
|
|
838
|
-
"""
|
|
839
|
-
request = dto.TriggerEmptyRequest(
|
|
840
|
-
interface_id=self.device.connection.interface_id,
|
|
841
|
-
device=self.device.device_address,
|
|
842
|
-
trigger_number=self.trigger_number,
|
|
843
|
-
)
|
|
844
|
-
response = await call_async(
|
|
845
|
-
"trigger/get_label",
|
|
846
|
-
request,
|
|
847
|
-
dto.StringResponse.from_binary)
|
|
848
|
-
return response.value
|
|
849
|
-
|
|
850
|
-
def set_label(
|
|
851
|
-
self,
|
|
852
|
-
label: Optional[str]
|
|
853
|
-
) -> None:
|
|
854
|
-
"""
|
|
855
|
-
Sets the label for the trigger.
|
|
856
|
-
|
|
857
|
-
Args:
|
|
858
|
-
label: The label to set for this trigger.
|
|
859
|
-
If no value or an empty string is provided, this label is deleted.
|
|
860
|
-
"""
|
|
861
|
-
request = dto.TriggerSetLabelRequest(
|
|
862
|
-
interface_id=self.device.connection.interface_id,
|
|
863
|
-
device=self.device.device_address,
|
|
864
|
-
trigger_number=self.trigger_number,
|
|
865
|
-
label=label,
|
|
866
|
-
)
|
|
867
|
-
call("trigger/set_label", request)
|
|
868
|
-
|
|
869
|
-
async def set_label_async(
|
|
870
|
-
self,
|
|
871
|
-
label: Optional[str]
|
|
872
|
-
) -> None:
|
|
873
|
-
"""
|
|
874
|
-
Sets the label for the trigger.
|
|
875
|
-
|
|
876
|
-
Args:
|
|
877
|
-
label: The label to set for this trigger.
|
|
878
|
-
If no value or an empty string is provided, this label is deleted.
|
|
879
|
-
"""
|
|
880
|
-
request = dto.TriggerSetLabelRequest(
|
|
881
|
-
interface_id=self.device.connection.interface_id,
|
|
882
|
-
device=self.device.device_address,
|
|
883
|
-
trigger_number=self.trigger_number,
|
|
884
|
-
label=label,
|
|
885
|
-
)
|
|
886
|
-
await call_async("trigger/set_label", request)
|
|
1
|
+
# ===== THIS FILE IS GENERATED FROM A TEMPLATE ===== #
|
|
2
|
+
# ============== DO NOT EDIT DIRECTLY ============== #
|
|
3
|
+
from typing import TYPE_CHECKING, Optional
|
|
4
|
+
from ..dto import requests as dto
|
|
5
|
+
from ..call import call, call_async
|
|
6
|
+
from ..units import Units, LengthUnits, UnitsAndLiterals, TimeUnits
|
|
7
|
+
from ..dto.ascii.trigger_state import TriggerState
|
|
8
|
+
from ..dto.ascii.trigger_enabled_state import TriggerEnabledState
|
|
9
|
+
from ..dto.ascii.io_port_type import IoPortType
|
|
10
|
+
from ..dto.ascii.trigger_condition import TriggerCondition
|
|
11
|
+
from ..dto.ascii.trigger_action import TriggerAction
|
|
12
|
+
from ..dto.ascii.trigger_operation import TriggerOperation
|
|
13
|
+
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from .device import Device
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class Trigger:
|
|
19
|
+
"""
|
|
20
|
+
A handle for a trigger with this number on the device.
|
|
21
|
+
Triggers allow setting up actions that occur when a certain condition has been met or an event has occurred.
|
|
22
|
+
Please note that the Triggers API is currently an experimental feature.
|
|
23
|
+
Requires at least Firmware 7.06.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
@property
|
|
27
|
+
def device(self) -> 'Device':
|
|
28
|
+
"""
|
|
29
|
+
Device that this trigger belongs to.
|
|
30
|
+
"""
|
|
31
|
+
return self._device
|
|
32
|
+
|
|
33
|
+
@property
|
|
34
|
+
def trigger_number(self) -> int:
|
|
35
|
+
"""
|
|
36
|
+
Number of this trigger.
|
|
37
|
+
"""
|
|
38
|
+
return self._trigger_number
|
|
39
|
+
|
|
40
|
+
def __init__(self, device: 'Device', trigger_number: int):
|
|
41
|
+
self._device: 'Device' = device
|
|
42
|
+
self._trigger_number: int = trigger_number
|
|
43
|
+
|
|
44
|
+
def enable(
|
|
45
|
+
self,
|
|
46
|
+
count: int = 0
|
|
47
|
+
) -> None:
|
|
48
|
+
"""
|
|
49
|
+
Enables the trigger.
|
|
50
|
+
Once a trigger is enabled, it will fire whenever its condition transitions from false to true.
|
|
51
|
+
If a trigger condition is true when a disabled trigger is enabled, the trigger will fire immediately.
|
|
52
|
+
|
|
53
|
+
Args:
|
|
54
|
+
count: Number of times the trigger will fire before disabling itself.
|
|
55
|
+
If count is not specified, or 0, the trigger will fire indefinitely.
|
|
56
|
+
"""
|
|
57
|
+
if count < 0:
|
|
58
|
+
raise ValueError('Invalid value; count must be 0 or positive.')
|
|
59
|
+
|
|
60
|
+
request = dto.TriggerEnableRequest(
|
|
61
|
+
interface_id=self.device.connection.interface_id,
|
|
62
|
+
device=self.device.device_address,
|
|
63
|
+
trigger_number=self.trigger_number,
|
|
64
|
+
count=count,
|
|
65
|
+
)
|
|
66
|
+
call("trigger/enable", request)
|
|
67
|
+
|
|
68
|
+
async def enable_async(
|
|
69
|
+
self,
|
|
70
|
+
count: int = 0
|
|
71
|
+
) -> None:
|
|
72
|
+
"""
|
|
73
|
+
Enables the trigger.
|
|
74
|
+
Once a trigger is enabled, it will fire whenever its condition transitions from false to true.
|
|
75
|
+
If a trigger condition is true when a disabled trigger is enabled, the trigger will fire immediately.
|
|
76
|
+
|
|
77
|
+
Args:
|
|
78
|
+
count: Number of times the trigger will fire before disabling itself.
|
|
79
|
+
If count is not specified, or 0, the trigger will fire indefinitely.
|
|
80
|
+
"""
|
|
81
|
+
if count < 0:
|
|
82
|
+
raise ValueError('Invalid value; count must be 0 or positive.')
|
|
83
|
+
|
|
84
|
+
request = dto.TriggerEnableRequest(
|
|
85
|
+
interface_id=self.device.connection.interface_id,
|
|
86
|
+
device=self.device.device_address,
|
|
87
|
+
trigger_number=self.trigger_number,
|
|
88
|
+
count=count,
|
|
89
|
+
)
|
|
90
|
+
await call_async("trigger/enable", request)
|
|
91
|
+
|
|
92
|
+
def disable(
|
|
93
|
+
self
|
|
94
|
+
) -> None:
|
|
95
|
+
"""
|
|
96
|
+
Disables the trigger.
|
|
97
|
+
Once disabled, the trigger will not fire and trigger actions will not run, even if trigger conditions are met.
|
|
98
|
+
"""
|
|
99
|
+
request = dto.TriggerEmptyRequest(
|
|
100
|
+
interface_id=self.device.connection.interface_id,
|
|
101
|
+
device=self.device.device_address,
|
|
102
|
+
trigger_number=self.trigger_number,
|
|
103
|
+
)
|
|
104
|
+
call("trigger/disable", request)
|
|
105
|
+
|
|
106
|
+
async def disable_async(
|
|
107
|
+
self
|
|
108
|
+
) -> None:
|
|
109
|
+
"""
|
|
110
|
+
Disables the trigger.
|
|
111
|
+
Once disabled, the trigger will not fire and trigger actions will not run, even if trigger conditions are met.
|
|
112
|
+
"""
|
|
113
|
+
request = dto.TriggerEmptyRequest(
|
|
114
|
+
interface_id=self.device.connection.interface_id,
|
|
115
|
+
device=self.device.device_address,
|
|
116
|
+
trigger_number=self.trigger_number,
|
|
117
|
+
)
|
|
118
|
+
await call_async("trigger/disable", request)
|
|
119
|
+
|
|
120
|
+
def get_state(
|
|
121
|
+
self
|
|
122
|
+
) -> TriggerState:
|
|
123
|
+
"""
|
|
124
|
+
Gets the state of the trigger.
|
|
125
|
+
|
|
126
|
+
Returns:
|
|
127
|
+
Complete state of the trigger.
|
|
128
|
+
"""
|
|
129
|
+
request = dto.TriggerEmptyRequest(
|
|
130
|
+
interface_id=self.device.connection.interface_id,
|
|
131
|
+
device=self.device.device_address,
|
|
132
|
+
trigger_number=self.trigger_number,
|
|
133
|
+
)
|
|
134
|
+
response = call(
|
|
135
|
+
"trigger/get_state",
|
|
136
|
+
request,
|
|
137
|
+
TriggerState.from_binary)
|
|
138
|
+
return response
|
|
139
|
+
|
|
140
|
+
async def get_state_async(
|
|
141
|
+
self
|
|
142
|
+
) -> TriggerState:
|
|
143
|
+
"""
|
|
144
|
+
Gets the state of the trigger.
|
|
145
|
+
|
|
146
|
+
Returns:
|
|
147
|
+
Complete state of the trigger.
|
|
148
|
+
"""
|
|
149
|
+
request = dto.TriggerEmptyRequest(
|
|
150
|
+
interface_id=self.device.connection.interface_id,
|
|
151
|
+
device=self.device.device_address,
|
|
152
|
+
trigger_number=self.trigger_number,
|
|
153
|
+
)
|
|
154
|
+
response = await call_async(
|
|
155
|
+
"trigger/get_state",
|
|
156
|
+
request,
|
|
157
|
+
TriggerState.from_binary)
|
|
158
|
+
return response
|
|
159
|
+
|
|
160
|
+
def get_enabled_state(
|
|
161
|
+
self
|
|
162
|
+
) -> TriggerEnabledState:
|
|
163
|
+
"""
|
|
164
|
+
Gets the enabled state of the trigger.
|
|
165
|
+
|
|
166
|
+
Returns:
|
|
167
|
+
Whether the trigger is enabled and the number of times it will fire.
|
|
168
|
+
"""
|
|
169
|
+
request = dto.TriggerEmptyRequest(
|
|
170
|
+
interface_id=self.device.connection.interface_id,
|
|
171
|
+
device=self.device.device_address,
|
|
172
|
+
trigger_number=self.trigger_number,
|
|
173
|
+
)
|
|
174
|
+
response = call(
|
|
175
|
+
"trigger/get_enabled_state",
|
|
176
|
+
request,
|
|
177
|
+
TriggerEnabledState.from_binary)
|
|
178
|
+
return response
|
|
179
|
+
|
|
180
|
+
async def get_enabled_state_async(
|
|
181
|
+
self
|
|
182
|
+
) -> TriggerEnabledState:
|
|
183
|
+
"""
|
|
184
|
+
Gets the enabled state of the trigger.
|
|
185
|
+
|
|
186
|
+
Returns:
|
|
187
|
+
Whether the trigger is enabled and the number of times it will fire.
|
|
188
|
+
"""
|
|
189
|
+
request = dto.TriggerEmptyRequest(
|
|
190
|
+
interface_id=self.device.connection.interface_id,
|
|
191
|
+
device=self.device.device_address,
|
|
192
|
+
trigger_number=self.trigger_number,
|
|
193
|
+
)
|
|
194
|
+
response = await call_async(
|
|
195
|
+
"trigger/get_enabled_state",
|
|
196
|
+
request,
|
|
197
|
+
TriggerEnabledState.from_binary)
|
|
198
|
+
return response
|
|
199
|
+
|
|
200
|
+
def fire_when(
|
|
201
|
+
self,
|
|
202
|
+
condition: str
|
|
203
|
+
) -> None:
|
|
204
|
+
"""
|
|
205
|
+
Set a generic trigger condition.
|
|
206
|
+
|
|
207
|
+
Args:
|
|
208
|
+
condition: The condition to set for this trigger.
|
|
209
|
+
"""
|
|
210
|
+
request = dto.TriggerFireWhenRequest(
|
|
211
|
+
interface_id=self.device.connection.interface_id,
|
|
212
|
+
device=self.device.device_address,
|
|
213
|
+
trigger_number=self.trigger_number,
|
|
214
|
+
condition=condition,
|
|
215
|
+
)
|
|
216
|
+
call("trigger/fire_when", request)
|
|
217
|
+
|
|
218
|
+
async def fire_when_async(
|
|
219
|
+
self,
|
|
220
|
+
condition: str
|
|
221
|
+
) -> None:
|
|
222
|
+
"""
|
|
223
|
+
Set a generic trigger condition.
|
|
224
|
+
|
|
225
|
+
Args:
|
|
226
|
+
condition: The condition to set for this trigger.
|
|
227
|
+
"""
|
|
228
|
+
request = dto.TriggerFireWhenRequest(
|
|
229
|
+
interface_id=self.device.connection.interface_id,
|
|
230
|
+
device=self.device.device_address,
|
|
231
|
+
trigger_number=self.trigger_number,
|
|
232
|
+
condition=condition,
|
|
233
|
+
)
|
|
234
|
+
await call_async("trigger/fire_when", request)
|
|
235
|
+
|
|
236
|
+
def fire_when_encoder_distance_travelled(
|
|
237
|
+
self,
|
|
238
|
+
axis: int,
|
|
239
|
+
distance: float,
|
|
240
|
+
unit: LengthUnits = Units.NATIVE
|
|
241
|
+
) -> None:
|
|
242
|
+
"""
|
|
243
|
+
Set a trigger condition for when an encoder position has changed by a specific distance.
|
|
244
|
+
|
|
245
|
+
Args:
|
|
246
|
+
axis: The axis to monitor for this condition.
|
|
247
|
+
May be set to 0 on single-axis devices only.
|
|
248
|
+
distance: The measured encoder distance between trigger fires.
|
|
249
|
+
unit: Units of dist.
|
|
250
|
+
"""
|
|
251
|
+
if distance <= 0:
|
|
252
|
+
raise ValueError('Invalid value; encoder distance must be a positive value.')
|
|
253
|
+
|
|
254
|
+
request = dto.TriggerFireWhenDistanceTravelledRequest(
|
|
255
|
+
interface_id=self.device.connection.interface_id,
|
|
256
|
+
device=self.device.device_address,
|
|
257
|
+
trigger_number=self.trigger_number,
|
|
258
|
+
axis=axis,
|
|
259
|
+
distance=distance,
|
|
260
|
+
unit=unit,
|
|
261
|
+
)
|
|
262
|
+
call("trigger/fire_when_encoder_distance_travelled", request)
|
|
263
|
+
|
|
264
|
+
async def fire_when_encoder_distance_travelled_async(
|
|
265
|
+
self,
|
|
266
|
+
axis: int,
|
|
267
|
+
distance: float,
|
|
268
|
+
unit: LengthUnits = Units.NATIVE
|
|
269
|
+
) -> None:
|
|
270
|
+
"""
|
|
271
|
+
Set a trigger condition for when an encoder position has changed by a specific distance.
|
|
272
|
+
|
|
273
|
+
Args:
|
|
274
|
+
axis: The axis to monitor for this condition.
|
|
275
|
+
May be set to 0 on single-axis devices only.
|
|
276
|
+
distance: The measured encoder distance between trigger fires.
|
|
277
|
+
unit: Units of dist.
|
|
278
|
+
"""
|
|
279
|
+
if distance <= 0:
|
|
280
|
+
raise ValueError('Invalid value; encoder distance must be a positive value.')
|
|
281
|
+
|
|
282
|
+
request = dto.TriggerFireWhenDistanceTravelledRequest(
|
|
283
|
+
interface_id=self.device.connection.interface_id,
|
|
284
|
+
device=self.device.device_address,
|
|
285
|
+
trigger_number=self.trigger_number,
|
|
286
|
+
axis=axis,
|
|
287
|
+
distance=distance,
|
|
288
|
+
unit=unit,
|
|
289
|
+
)
|
|
290
|
+
await call_async("trigger/fire_when_encoder_distance_travelled", request)
|
|
291
|
+
|
|
292
|
+
def fire_when_distance_travelled(
|
|
293
|
+
self,
|
|
294
|
+
axis: int,
|
|
295
|
+
distance: float,
|
|
296
|
+
unit: LengthUnits = Units.NATIVE
|
|
297
|
+
) -> None:
|
|
298
|
+
"""
|
|
299
|
+
Set a trigger condition for when an axis position has changed by a specific distance.
|
|
300
|
+
|
|
301
|
+
Args:
|
|
302
|
+
axis: The axis to monitor for this condition.
|
|
303
|
+
May be set to 0 on single-axis devices only.
|
|
304
|
+
distance: The measured distance between trigger fires.
|
|
305
|
+
unit: Units of dist.
|
|
306
|
+
"""
|
|
307
|
+
if distance <= 0:
|
|
308
|
+
raise ValueError('Invalid value; distance must be a positive value.')
|
|
309
|
+
|
|
310
|
+
request = dto.TriggerFireWhenDistanceTravelledRequest(
|
|
311
|
+
interface_id=self.device.connection.interface_id,
|
|
312
|
+
device=self.device.device_address,
|
|
313
|
+
trigger_number=self.trigger_number,
|
|
314
|
+
axis=axis,
|
|
315
|
+
distance=distance,
|
|
316
|
+
unit=unit,
|
|
317
|
+
)
|
|
318
|
+
call("trigger/fire_when_distance_travelled", request)
|
|
319
|
+
|
|
320
|
+
async def fire_when_distance_travelled_async(
|
|
321
|
+
self,
|
|
322
|
+
axis: int,
|
|
323
|
+
distance: float,
|
|
324
|
+
unit: LengthUnits = Units.NATIVE
|
|
325
|
+
) -> None:
|
|
326
|
+
"""
|
|
327
|
+
Set a trigger condition for when an axis position has changed by a specific distance.
|
|
328
|
+
|
|
329
|
+
Args:
|
|
330
|
+
axis: The axis to monitor for this condition.
|
|
331
|
+
May be set to 0 on single-axis devices only.
|
|
332
|
+
distance: The measured distance between trigger fires.
|
|
333
|
+
unit: Units of dist.
|
|
334
|
+
"""
|
|
335
|
+
if distance <= 0:
|
|
336
|
+
raise ValueError('Invalid value; distance must be a positive value.')
|
|
337
|
+
|
|
338
|
+
request = dto.TriggerFireWhenDistanceTravelledRequest(
|
|
339
|
+
interface_id=self.device.connection.interface_id,
|
|
340
|
+
device=self.device.device_address,
|
|
341
|
+
trigger_number=self.trigger_number,
|
|
342
|
+
axis=axis,
|
|
343
|
+
distance=distance,
|
|
344
|
+
unit=unit,
|
|
345
|
+
)
|
|
346
|
+
await call_async("trigger/fire_when_distance_travelled", request)
|
|
347
|
+
|
|
348
|
+
def fire_when_io(
|
|
349
|
+
self,
|
|
350
|
+
port_type: IoPortType,
|
|
351
|
+
channel: int,
|
|
352
|
+
trigger_condition: TriggerCondition,
|
|
353
|
+
value: float
|
|
354
|
+
) -> None:
|
|
355
|
+
"""
|
|
356
|
+
Set a trigger condition based on an IO channel value.
|
|
357
|
+
|
|
358
|
+
Args:
|
|
359
|
+
port_type: The type of IO channel to monitor.
|
|
360
|
+
channel: The IO channel to monitor.
|
|
361
|
+
trigger_condition: Comparison operator.
|
|
362
|
+
value: Comparison value.
|
|
363
|
+
"""
|
|
364
|
+
if channel <= 0:
|
|
365
|
+
raise ValueError('Invalid value; channel must be a positive value.')
|
|
366
|
+
|
|
367
|
+
request = dto.TriggerFireWhenIoRequest(
|
|
368
|
+
interface_id=self.device.connection.interface_id,
|
|
369
|
+
device=self.device.device_address,
|
|
370
|
+
trigger_number=self.trigger_number,
|
|
371
|
+
port_type=port_type,
|
|
372
|
+
channel=channel,
|
|
373
|
+
trigger_condition=trigger_condition,
|
|
374
|
+
value=value,
|
|
375
|
+
)
|
|
376
|
+
call("trigger/fire_when_io", request)
|
|
377
|
+
|
|
378
|
+
async def fire_when_io_async(
|
|
379
|
+
self,
|
|
380
|
+
port_type: IoPortType,
|
|
381
|
+
channel: int,
|
|
382
|
+
trigger_condition: TriggerCondition,
|
|
383
|
+
value: float
|
|
384
|
+
) -> None:
|
|
385
|
+
"""
|
|
386
|
+
Set a trigger condition based on an IO channel value.
|
|
387
|
+
|
|
388
|
+
Args:
|
|
389
|
+
port_type: The type of IO channel to monitor.
|
|
390
|
+
channel: The IO channel to monitor.
|
|
391
|
+
trigger_condition: Comparison operator.
|
|
392
|
+
value: Comparison value.
|
|
393
|
+
"""
|
|
394
|
+
if channel <= 0:
|
|
395
|
+
raise ValueError('Invalid value; channel must be a positive value.')
|
|
396
|
+
|
|
397
|
+
request = dto.TriggerFireWhenIoRequest(
|
|
398
|
+
interface_id=self.device.connection.interface_id,
|
|
399
|
+
device=self.device.device_address,
|
|
400
|
+
trigger_number=self.trigger_number,
|
|
401
|
+
port_type=port_type,
|
|
402
|
+
channel=channel,
|
|
403
|
+
trigger_condition=trigger_condition,
|
|
404
|
+
value=value,
|
|
405
|
+
)
|
|
406
|
+
await call_async("trigger/fire_when_io", request)
|
|
407
|
+
|
|
408
|
+
def fire_when_setting(
|
|
409
|
+
self,
|
|
410
|
+
axis: int,
|
|
411
|
+
setting: str,
|
|
412
|
+
trigger_condition: TriggerCondition,
|
|
413
|
+
value: float,
|
|
414
|
+
unit: UnitsAndLiterals = Units.NATIVE
|
|
415
|
+
) -> None:
|
|
416
|
+
"""
|
|
417
|
+
Set a trigger condition based on a setting value.
|
|
418
|
+
|
|
419
|
+
Args:
|
|
420
|
+
axis: The axis to monitor for this condition.
|
|
421
|
+
Set to 0 for device-scope settings.
|
|
422
|
+
setting: The setting to monitor.
|
|
423
|
+
trigger_condition: Comparison operator.
|
|
424
|
+
value: Comparison value.
|
|
425
|
+
unit: Units of value.
|
|
426
|
+
"""
|
|
427
|
+
request = dto.TriggerFireWhenSettingRequest(
|
|
428
|
+
interface_id=self.device.connection.interface_id,
|
|
429
|
+
device=self.device.device_address,
|
|
430
|
+
trigger_number=self.trigger_number,
|
|
431
|
+
axis=axis,
|
|
432
|
+
setting=setting,
|
|
433
|
+
trigger_condition=trigger_condition,
|
|
434
|
+
value=value,
|
|
435
|
+
unit=unit,
|
|
436
|
+
)
|
|
437
|
+
call("trigger/fire_when_setting", request)
|
|
438
|
+
|
|
439
|
+
async def fire_when_setting_async(
|
|
440
|
+
self,
|
|
441
|
+
axis: int,
|
|
442
|
+
setting: str,
|
|
443
|
+
trigger_condition: TriggerCondition,
|
|
444
|
+
value: float,
|
|
445
|
+
unit: UnitsAndLiterals = Units.NATIVE
|
|
446
|
+
) -> None:
|
|
447
|
+
"""
|
|
448
|
+
Set a trigger condition based on a setting value.
|
|
449
|
+
|
|
450
|
+
Args:
|
|
451
|
+
axis: The axis to monitor for this condition.
|
|
452
|
+
Set to 0 for device-scope settings.
|
|
453
|
+
setting: The setting to monitor.
|
|
454
|
+
trigger_condition: Comparison operator.
|
|
455
|
+
value: Comparison value.
|
|
456
|
+
unit: Units of value.
|
|
457
|
+
"""
|
|
458
|
+
request = dto.TriggerFireWhenSettingRequest(
|
|
459
|
+
interface_id=self.device.connection.interface_id,
|
|
460
|
+
device=self.device.device_address,
|
|
461
|
+
trigger_number=self.trigger_number,
|
|
462
|
+
axis=axis,
|
|
463
|
+
setting=setting,
|
|
464
|
+
trigger_condition=trigger_condition,
|
|
465
|
+
value=value,
|
|
466
|
+
unit=unit,
|
|
467
|
+
)
|
|
468
|
+
await call_async("trigger/fire_when_setting", request)
|
|
469
|
+
|
|
470
|
+
def fire_when_absolute_setting(
|
|
471
|
+
self,
|
|
472
|
+
axis: int,
|
|
473
|
+
setting: str,
|
|
474
|
+
trigger_condition: TriggerCondition,
|
|
475
|
+
value: float,
|
|
476
|
+
unit: UnitsAndLiterals = Units.NATIVE
|
|
477
|
+
) -> None:
|
|
478
|
+
"""
|
|
479
|
+
Set a trigger condition based on an absolute setting value.
|
|
480
|
+
|
|
481
|
+
Args:
|
|
482
|
+
axis: The axis to monitor for this condition.
|
|
483
|
+
Set to 0 for device-scope settings.
|
|
484
|
+
setting: The setting to monitor.
|
|
485
|
+
trigger_condition: Comparison operator.
|
|
486
|
+
value: Comparison value.
|
|
487
|
+
unit: Units of value.
|
|
488
|
+
"""
|
|
489
|
+
request = dto.TriggerFireWhenSettingRequest(
|
|
490
|
+
interface_id=self.device.connection.interface_id,
|
|
491
|
+
device=self.device.device_address,
|
|
492
|
+
trigger_number=self.trigger_number,
|
|
493
|
+
axis=axis,
|
|
494
|
+
setting=setting,
|
|
495
|
+
trigger_condition=trigger_condition,
|
|
496
|
+
value=value,
|
|
497
|
+
unit=unit,
|
|
498
|
+
)
|
|
499
|
+
call("trigger/fire_when_setting_absolute", request)
|
|
500
|
+
|
|
501
|
+
async def fire_when_absolute_setting_async(
|
|
502
|
+
self,
|
|
503
|
+
axis: int,
|
|
504
|
+
setting: str,
|
|
505
|
+
trigger_condition: TriggerCondition,
|
|
506
|
+
value: float,
|
|
507
|
+
unit: UnitsAndLiterals = Units.NATIVE
|
|
508
|
+
) -> None:
|
|
509
|
+
"""
|
|
510
|
+
Set a trigger condition based on an absolute setting value.
|
|
511
|
+
|
|
512
|
+
Args:
|
|
513
|
+
axis: The axis to monitor for this condition.
|
|
514
|
+
Set to 0 for device-scope settings.
|
|
515
|
+
setting: The setting to monitor.
|
|
516
|
+
trigger_condition: Comparison operator.
|
|
517
|
+
value: Comparison value.
|
|
518
|
+
unit: Units of value.
|
|
519
|
+
"""
|
|
520
|
+
request = dto.TriggerFireWhenSettingRequest(
|
|
521
|
+
interface_id=self.device.connection.interface_id,
|
|
522
|
+
device=self.device.device_address,
|
|
523
|
+
trigger_number=self.trigger_number,
|
|
524
|
+
axis=axis,
|
|
525
|
+
setting=setting,
|
|
526
|
+
trigger_condition=trigger_condition,
|
|
527
|
+
value=value,
|
|
528
|
+
unit=unit,
|
|
529
|
+
)
|
|
530
|
+
await call_async("trigger/fire_when_setting_absolute", request)
|
|
531
|
+
|
|
532
|
+
def fire_at_interval(
|
|
533
|
+
self,
|
|
534
|
+
interval: float,
|
|
535
|
+
unit: TimeUnits = Units.NATIVE
|
|
536
|
+
) -> None:
|
|
537
|
+
"""
|
|
538
|
+
Set a trigger condition based on a time interval.
|
|
539
|
+
|
|
540
|
+
Args:
|
|
541
|
+
interval: The time interval between trigger fires.
|
|
542
|
+
unit: Units of time.
|
|
543
|
+
"""
|
|
544
|
+
if interval <= 0:
|
|
545
|
+
raise ValueError('Invalid value; interval must be a positive value.')
|
|
546
|
+
|
|
547
|
+
request = dto.TriggerFireAtIntervalRequest(
|
|
548
|
+
interface_id=self.device.connection.interface_id,
|
|
549
|
+
device=self.device.device_address,
|
|
550
|
+
trigger_number=self.trigger_number,
|
|
551
|
+
interval=interval,
|
|
552
|
+
unit=unit,
|
|
553
|
+
)
|
|
554
|
+
call("trigger/fire_at_interval", request)
|
|
555
|
+
|
|
556
|
+
async def fire_at_interval_async(
|
|
557
|
+
self,
|
|
558
|
+
interval: float,
|
|
559
|
+
unit: TimeUnits = Units.NATIVE
|
|
560
|
+
) -> None:
|
|
561
|
+
"""
|
|
562
|
+
Set a trigger condition based on a time interval.
|
|
563
|
+
|
|
564
|
+
Args:
|
|
565
|
+
interval: The time interval between trigger fires.
|
|
566
|
+
unit: Units of time.
|
|
567
|
+
"""
|
|
568
|
+
if interval <= 0:
|
|
569
|
+
raise ValueError('Invalid value; interval must be a positive value.')
|
|
570
|
+
|
|
571
|
+
request = dto.TriggerFireAtIntervalRequest(
|
|
572
|
+
interface_id=self.device.connection.interface_id,
|
|
573
|
+
device=self.device.device_address,
|
|
574
|
+
trigger_number=self.trigger_number,
|
|
575
|
+
interval=interval,
|
|
576
|
+
unit=unit,
|
|
577
|
+
)
|
|
578
|
+
await call_async("trigger/fire_at_interval", request)
|
|
579
|
+
|
|
580
|
+
def on_fire(
|
|
581
|
+
self,
|
|
582
|
+
action: TriggerAction,
|
|
583
|
+
axis: int,
|
|
584
|
+
command: str
|
|
585
|
+
) -> None:
|
|
586
|
+
"""
|
|
587
|
+
Set a command to be a trigger action.
|
|
588
|
+
|
|
589
|
+
Args:
|
|
590
|
+
action: The action number to assign the command to.
|
|
591
|
+
axis: The axis to on which to run this command.
|
|
592
|
+
Set to 0 for device-scope settings or to run command on all axes.
|
|
593
|
+
command: The command to run when the action is triggered.
|
|
594
|
+
"""
|
|
595
|
+
request = dto.TriggerOnFireRequest(
|
|
596
|
+
interface_id=self.device.connection.interface_id,
|
|
597
|
+
device=self.device.device_address,
|
|
598
|
+
trigger_number=self.trigger_number,
|
|
599
|
+
action=action,
|
|
600
|
+
axis=axis,
|
|
601
|
+
command=command,
|
|
602
|
+
)
|
|
603
|
+
call("trigger/on_fire", request)
|
|
604
|
+
|
|
605
|
+
async def on_fire_async(
|
|
606
|
+
self,
|
|
607
|
+
action: TriggerAction,
|
|
608
|
+
axis: int,
|
|
609
|
+
command: str
|
|
610
|
+
) -> None:
|
|
611
|
+
"""
|
|
612
|
+
Set a command to be a trigger action.
|
|
613
|
+
|
|
614
|
+
Args:
|
|
615
|
+
action: The action number to assign the command to.
|
|
616
|
+
axis: The axis to on which to run this command.
|
|
617
|
+
Set to 0 for device-scope settings or to run command on all axes.
|
|
618
|
+
command: The command to run when the action is triggered.
|
|
619
|
+
"""
|
|
620
|
+
request = dto.TriggerOnFireRequest(
|
|
621
|
+
interface_id=self.device.connection.interface_id,
|
|
622
|
+
device=self.device.device_address,
|
|
623
|
+
trigger_number=self.trigger_number,
|
|
624
|
+
action=action,
|
|
625
|
+
axis=axis,
|
|
626
|
+
command=command,
|
|
627
|
+
)
|
|
628
|
+
await call_async("trigger/on_fire", request)
|
|
629
|
+
|
|
630
|
+
def on_fire_set(
|
|
631
|
+
self,
|
|
632
|
+
action: TriggerAction,
|
|
633
|
+
axis: int,
|
|
634
|
+
setting: str,
|
|
635
|
+
operation: TriggerOperation,
|
|
636
|
+
value: float,
|
|
637
|
+
unit: UnitsAndLiterals = Units.NATIVE
|
|
638
|
+
) -> None:
|
|
639
|
+
"""
|
|
640
|
+
Set a trigger action to update a setting.
|
|
641
|
+
|
|
642
|
+
Args:
|
|
643
|
+
action: The action number to assign the command to.
|
|
644
|
+
axis: The axis on which to change the setting.
|
|
645
|
+
Set to 0 to change the setting for the device.
|
|
646
|
+
setting: The name of the setting to change.
|
|
647
|
+
operation: The operation to apply to the setting.
|
|
648
|
+
value: Operation value.
|
|
649
|
+
unit: Units of value.
|
|
650
|
+
"""
|
|
651
|
+
request = dto.TriggerOnFireSetRequest(
|
|
652
|
+
interface_id=self.device.connection.interface_id,
|
|
653
|
+
device=self.device.device_address,
|
|
654
|
+
trigger_number=self.trigger_number,
|
|
655
|
+
action=action,
|
|
656
|
+
axis=axis,
|
|
657
|
+
setting=setting,
|
|
658
|
+
operation=operation,
|
|
659
|
+
value=value,
|
|
660
|
+
unit=unit,
|
|
661
|
+
)
|
|
662
|
+
call("trigger/on_fire_set", request)
|
|
663
|
+
|
|
664
|
+
async def on_fire_set_async(
|
|
665
|
+
self,
|
|
666
|
+
action: TriggerAction,
|
|
667
|
+
axis: int,
|
|
668
|
+
setting: str,
|
|
669
|
+
operation: TriggerOperation,
|
|
670
|
+
value: float,
|
|
671
|
+
unit: UnitsAndLiterals = Units.NATIVE
|
|
672
|
+
) -> None:
|
|
673
|
+
"""
|
|
674
|
+
Set a trigger action to update a setting.
|
|
675
|
+
|
|
676
|
+
Args:
|
|
677
|
+
action: The action number to assign the command to.
|
|
678
|
+
axis: The axis on which to change the setting.
|
|
679
|
+
Set to 0 to change the setting for the device.
|
|
680
|
+
setting: The name of the setting to change.
|
|
681
|
+
operation: The operation to apply to the setting.
|
|
682
|
+
value: Operation value.
|
|
683
|
+
unit: Units of value.
|
|
684
|
+
"""
|
|
685
|
+
request = dto.TriggerOnFireSetRequest(
|
|
686
|
+
interface_id=self.device.connection.interface_id,
|
|
687
|
+
device=self.device.device_address,
|
|
688
|
+
trigger_number=self.trigger_number,
|
|
689
|
+
action=action,
|
|
690
|
+
axis=axis,
|
|
691
|
+
setting=setting,
|
|
692
|
+
operation=operation,
|
|
693
|
+
value=value,
|
|
694
|
+
unit=unit,
|
|
695
|
+
)
|
|
696
|
+
await call_async("trigger/on_fire_set", request)
|
|
697
|
+
|
|
698
|
+
def on_fire_set_to_setting(
|
|
699
|
+
self,
|
|
700
|
+
action: TriggerAction,
|
|
701
|
+
axis: int,
|
|
702
|
+
setting: str,
|
|
703
|
+
operation: TriggerOperation,
|
|
704
|
+
from_axis: int,
|
|
705
|
+
from_setting: str
|
|
706
|
+
) -> None:
|
|
707
|
+
"""
|
|
708
|
+
Set a trigger action to update a setting with the value of another setting.
|
|
709
|
+
|
|
710
|
+
Args:
|
|
711
|
+
action: The action number to assign the command to.
|
|
712
|
+
axis: The axis on which to change the setting.
|
|
713
|
+
Set to 0 to change the setting for the device.
|
|
714
|
+
setting: The name of the setting to change.
|
|
715
|
+
Must have either integer or boolean type.
|
|
716
|
+
operation: The operation to apply to the setting.
|
|
717
|
+
from_axis: The axis from which to read the setting.
|
|
718
|
+
Set to 0 to read the setting from the device.
|
|
719
|
+
from_setting: The name of the setting to read.
|
|
720
|
+
Must have either integer or boolean type.
|
|
721
|
+
"""
|
|
722
|
+
request = dto.TriggerOnFireSetToSettingRequest(
|
|
723
|
+
interface_id=self.device.connection.interface_id,
|
|
724
|
+
device=self.device.device_address,
|
|
725
|
+
trigger_number=self.trigger_number,
|
|
726
|
+
action=action,
|
|
727
|
+
axis=axis,
|
|
728
|
+
setting=setting,
|
|
729
|
+
operation=operation,
|
|
730
|
+
from_axis=from_axis,
|
|
731
|
+
from_setting=from_setting,
|
|
732
|
+
)
|
|
733
|
+
call("trigger/on_fire_set_to_setting", request)
|
|
734
|
+
|
|
735
|
+
async def on_fire_set_to_setting_async(
|
|
736
|
+
self,
|
|
737
|
+
action: TriggerAction,
|
|
738
|
+
axis: int,
|
|
739
|
+
setting: str,
|
|
740
|
+
operation: TriggerOperation,
|
|
741
|
+
from_axis: int,
|
|
742
|
+
from_setting: str
|
|
743
|
+
) -> None:
|
|
744
|
+
"""
|
|
745
|
+
Set a trigger action to update a setting with the value of another setting.
|
|
746
|
+
|
|
747
|
+
Args:
|
|
748
|
+
action: The action number to assign the command to.
|
|
749
|
+
axis: The axis on which to change the setting.
|
|
750
|
+
Set to 0 to change the setting for the device.
|
|
751
|
+
setting: The name of the setting to change.
|
|
752
|
+
Must have either integer or boolean type.
|
|
753
|
+
operation: The operation to apply to the setting.
|
|
754
|
+
from_axis: The axis from which to read the setting.
|
|
755
|
+
Set to 0 to read the setting from the device.
|
|
756
|
+
from_setting: The name of the setting to read.
|
|
757
|
+
Must have either integer or boolean type.
|
|
758
|
+
"""
|
|
759
|
+
request = dto.TriggerOnFireSetToSettingRequest(
|
|
760
|
+
interface_id=self.device.connection.interface_id,
|
|
761
|
+
device=self.device.device_address,
|
|
762
|
+
trigger_number=self.trigger_number,
|
|
763
|
+
action=action,
|
|
764
|
+
axis=axis,
|
|
765
|
+
setting=setting,
|
|
766
|
+
operation=operation,
|
|
767
|
+
from_axis=from_axis,
|
|
768
|
+
from_setting=from_setting,
|
|
769
|
+
)
|
|
770
|
+
await call_async("trigger/on_fire_set_to_setting", request)
|
|
771
|
+
|
|
772
|
+
def clear_action(
|
|
773
|
+
self,
|
|
774
|
+
action: TriggerAction = TriggerAction.ALL
|
|
775
|
+
) -> None:
|
|
776
|
+
"""
|
|
777
|
+
Clear a trigger action.
|
|
778
|
+
|
|
779
|
+
Args:
|
|
780
|
+
action: The action number to clear.
|
|
781
|
+
The default option is to clear all actions.
|
|
782
|
+
"""
|
|
783
|
+
request = dto.TriggerClearActionRequest(
|
|
784
|
+
interface_id=self.device.connection.interface_id,
|
|
785
|
+
device=self.device.device_address,
|
|
786
|
+
trigger_number=self.trigger_number,
|
|
787
|
+
action=action,
|
|
788
|
+
)
|
|
789
|
+
call("trigger/clear_action", request)
|
|
790
|
+
|
|
791
|
+
async def clear_action_async(
|
|
792
|
+
self,
|
|
793
|
+
action: TriggerAction = TriggerAction.ALL
|
|
794
|
+
) -> None:
|
|
795
|
+
"""
|
|
796
|
+
Clear a trigger action.
|
|
797
|
+
|
|
798
|
+
Args:
|
|
799
|
+
action: The action number to clear.
|
|
800
|
+
The default option is to clear all actions.
|
|
801
|
+
"""
|
|
802
|
+
request = dto.TriggerClearActionRequest(
|
|
803
|
+
interface_id=self.device.connection.interface_id,
|
|
804
|
+
device=self.device.device_address,
|
|
805
|
+
trigger_number=self.trigger_number,
|
|
806
|
+
action=action,
|
|
807
|
+
)
|
|
808
|
+
await call_async("trigger/clear_action", request)
|
|
809
|
+
|
|
810
|
+
def get_label(
|
|
811
|
+
self
|
|
812
|
+
) -> str:
|
|
813
|
+
"""
|
|
814
|
+
Returns the label for the trigger.
|
|
815
|
+
|
|
816
|
+
Returns:
|
|
817
|
+
The label for the trigger.
|
|
818
|
+
"""
|
|
819
|
+
request = dto.TriggerEmptyRequest(
|
|
820
|
+
interface_id=self.device.connection.interface_id,
|
|
821
|
+
device=self.device.device_address,
|
|
822
|
+
trigger_number=self.trigger_number,
|
|
823
|
+
)
|
|
824
|
+
response = call(
|
|
825
|
+
"trigger/get_label",
|
|
826
|
+
request,
|
|
827
|
+
dto.StringResponse.from_binary)
|
|
828
|
+
return response.value
|
|
829
|
+
|
|
830
|
+
async def get_label_async(
|
|
831
|
+
self
|
|
832
|
+
) -> str:
|
|
833
|
+
"""
|
|
834
|
+
Returns the label for the trigger.
|
|
835
|
+
|
|
836
|
+
Returns:
|
|
837
|
+
The label for the trigger.
|
|
838
|
+
"""
|
|
839
|
+
request = dto.TriggerEmptyRequest(
|
|
840
|
+
interface_id=self.device.connection.interface_id,
|
|
841
|
+
device=self.device.device_address,
|
|
842
|
+
trigger_number=self.trigger_number,
|
|
843
|
+
)
|
|
844
|
+
response = await call_async(
|
|
845
|
+
"trigger/get_label",
|
|
846
|
+
request,
|
|
847
|
+
dto.StringResponse.from_binary)
|
|
848
|
+
return response.value
|
|
849
|
+
|
|
850
|
+
def set_label(
|
|
851
|
+
self,
|
|
852
|
+
label: Optional[str]
|
|
853
|
+
) -> None:
|
|
854
|
+
"""
|
|
855
|
+
Sets the label for the trigger.
|
|
856
|
+
|
|
857
|
+
Args:
|
|
858
|
+
label: The label to set for this trigger.
|
|
859
|
+
If no value or an empty string is provided, this label is deleted.
|
|
860
|
+
"""
|
|
861
|
+
request = dto.TriggerSetLabelRequest(
|
|
862
|
+
interface_id=self.device.connection.interface_id,
|
|
863
|
+
device=self.device.device_address,
|
|
864
|
+
trigger_number=self.trigger_number,
|
|
865
|
+
label=label,
|
|
866
|
+
)
|
|
867
|
+
call("trigger/set_label", request)
|
|
868
|
+
|
|
869
|
+
async def set_label_async(
|
|
870
|
+
self,
|
|
871
|
+
label: Optional[str]
|
|
872
|
+
) -> None:
|
|
873
|
+
"""
|
|
874
|
+
Sets the label for the trigger.
|
|
875
|
+
|
|
876
|
+
Args:
|
|
877
|
+
label: The label to set for this trigger.
|
|
878
|
+
If no value or an empty string is provided, this label is deleted.
|
|
879
|
+
"""
|
|
880
|
+
request = dto.TriggerSetLabelRequest(
|
|
881
|
+
interface_id=self.device.connection.interface_id,
|
|
882
|
+
device=self.device.device_address,
|
|
883
|
+
trigger_number=self.trigger_number,
|
|
884
|
+
label=label,
|
|
885
|
+
)
|
|
886
|
+
await call_async("trigger/set_label", request)
|