zaber-motion 7.13.0__py3-none-win32.whl → 7.14.0__py3-none-win32.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zaber_motion/__init__.py +103 -103
- zaber_motion/ascii/__init__.py +73 -73
- zaber_motion/ascii/all_axes.py +352 -352
- zaber_motion/ascii/axis.py +1673 -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-386.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
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
# This file is generated. Do not modify by hand.
|
|
2
|
-
# pylint: disable=line-too-long, unused-argument, f-string-without-interpolation, too-many-branches, too-many-statements, unnecessary-pass
|
|
3
|
-
from dataclasses import dataclass
|
|
4
|
-
from typing import Any, Dict
|
|
5
|
-
import decimal
|
|
6
|
-
import zaber_bson
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
@dataclass
|
|
10
|
-
class DeviceCancelOutputScheduleRequest:
|
|
11
|
-
|
|
12
|
-
interface_id: int = 0
|
|
13
|
-
|
|
14
|
-
device: int = 0
|
|
15
|
-
|
|
16
|
-
analog: bool = False
|
|
17
|
-
|
|
18
|
-
channel_number: int = 0
|
|
19
|
-
|
|
20
|
-
@staticmethod
|
|
21
|
-
def zero_values() -> 'DeviceCancelOutputScheduleRequest':
|
|
22
|
-
return DeviceCancelOutputScheduleRequest(
|
|
23
|
-
interface_id=0,
|
|
24
|
-
device=0,
|
|
25
|
-
analog=False,
|
|
26
|
-
channel_number=0,
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
@staticmethod
|
|
30
|
-
def from_binary(data_bytes: bytes) -> 'DeviceCancelOutputScheduleRequest':
|
|
31
|
-
"""" Deserialize a binary representation of this class. """
|
|
32
|
-
data = zaber_bson.loads(data_bytes) # type: Dict[str, Any]
|
|
33
|
-
return DeviceCancelOutputScheduleRequest.from_dict(data)
|
|
34
|
-
|
|
35
|
-
def to_binary(self) -> bytes:
|
|
36
|
-
"""" Serialize this class to a binary representation. """
|
|
37
|
-
self.validate()
|
|
38
|
-
return zaber_bson.dumps(self.to_dict()) # type: ignore
|
|
39
|
-
|
|
40
|
-
def to_dict(self) -> Dict[str, Any]:
|
|
41
|
-
return {
|
|
42
|
-
'interfaceId': int(self.interface_id),
|
|
43
|
-
'device': int(self.device),
|
|
44
|
-
'analog': bool(self.analog),
|
|
45
|
-
'channelNumber': int(self.channel_number),
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
@staticmethod
|
|
49
|
-
def from_dict(data: Dict[str, Any]) -> 'DeviceCancelOutputScheduleRequest':
|
|
50
|
-
return DeviceCancelOutputScheduleRequest(
|
|
51
|
-
interface_id=data.get('interfaceId'), # type: ignore
|
|
52
|
-
device=data.get('device'), # type: ignore
|
|
53
|
-
analog=data.get('analog'), # type: ignore
|
|
54
|
-
channel_number=data.get('channelNumber'), # type: ignore
|
|
55
|
-
)
|
|
56
|
-
|
|
57
|
-
def validate(self) -> None:
|
|
58
|
-
"""" Validates the properties of the instance. """
|
|
59
|
-
if self.interface_id is None:
|
|
60
|
-
raise ValueError(f'Property "InterfaceId" of "DeviceCancelOutputScheduleRequest" is None.')
|
|
61
|
-
|
|
62
|
-
if not isinstance(self.interface_id, (int, float, decimal.Decimal)):
|
|
63
|
-
raise ValueError(f'Property "InterfaceId" of "DeviceCancelOutputScheduleRequest" is not a number.')
|
|
64
|
-
|
|
65
|
-
if int(self.interface_id) != self.interface_id:
|
|
66
|
-
raise ValueError(f'Property "InterfaceId" of "DeviceCancelOutputScheduleRequest" is not integer value.')
|
|
67
|
-
|
|
68
|
-
if self.device is None:
|
|
69
|
-
raise ValueError(f'Property "Device" of "DeviceCancelOutputScheduleRequest" is None.')
|
|
70
|
-
|
|
71
|
-
if not isinstance(self.device, (int, float, decimal.Decimal)):
|
|
72
|
-
raise ValueError(f'Property "Device" of "DeviceCancelOutputScheduleRequest" is not a number.')
|
|
73
|
-
|
|
74
|
-
if int(self.device) != self.device:
|
|
75
|
-
raise ValueError(f'Property "Device" of "DeviceCancelOutputScheduleRequest" is not integer value.')
|
|
76
|
-
|
|
77
|
-
if self.channel_number is None:
|
|
78
|
-
raise ValueError(f'Property "ChannelNumber" of "DeviceCancelOutputScheduleRequest" is None.')
|
|
79
|
-
|
|
80
|
-
if not isinstance(self.channel_number, (int, float, decimal.Decimal)):
|
|
81
|
-
raise ValueError(f'Property "ChannelNumber" of "DeviceCancelOutputScheduleRequest" is not a number.')
|
|
82
|
-
|
|
83
|
-
if int(self.channel_number) != self.channel_number:
|
|
84
|
-
raise ValueError(f'Property "ChannelNumber" of "DeviceCancelOutputScheduleRequest" is not integer value.')
|
|
1
|
+
# This file is generated. Do not modify by hand.
|
|
2
|
+
# pylint: disable=line-too-long, unused-argument, f-string-without-interpolation, too-many-branches, too-many-statements, unnecessary-pass
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
from typing import Any, Dict
|
|
5
|
+
import decimal
|
|
6
|
+
import zaber_bson
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass
|
|
10
|
+
class DeviceCancelOutputScheduleRequest:
|
|
11
|
+
|
|
12
|
+
interface_id: int = 0
|
|
13
|
+
|
|
14
|
+
device: int = 0
|
|
15
|
+
|
|
16
|
+
analog: bool = False
|
|
17
|
+
|
|
18
|
+
channel_number: int = 0
|
|
19
|
+
|
|
20
|
+
@staticmethod
|
|
21
|
+
def zero_values() -> 'DeviceCancelOutputScheduleRequest':
|
|
22
|
+
return DeviceCancelOutputScheduleRequest(
|
|
23
|
+
interface_id=0,
|
|
24
|
+
device=0,
|
|
25
|
+
analog=False,
|
|
26
|
+
channel_number=0,
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
@staticmethod
|
|
30
|
+
def from_binary(data_bytes: bytes) -> 'DeviceCancelOutputScheduleRequest':
|
|
31
|
+
"""" Deserialize a binary representation of this class. """
|
|
32
|
+
data = zaber_bson.loads(data_bytes) # type: Dict[str, Any]
|
|
33
|
+
return DeviceCancelOutputScheduleRequest.from_dict(data)
|
|
34
|
+
|
|
35
|
+
def to_binary(self) -> bytes:
|
|
36
|
+
"""" Serialize this class to a binary representation. """
|
|
37
|
+
self.validate()
|
|
38
|
+
return zaber_bson.dumps(self.to_dict()) # type: ignore
|
|
39
|
+
|
|
40
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
41
|
+
return {
|
|
42
|
+
'interfaceId': int(self.interface_id),
|
|
43
|
+
'device': int(self.device),
|
|
44
|
+
'analog': bool(self.analog),
|
|
45
|
+
'channelNumber': int(self.channel_number),
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@staticmethod
|
|
49
|
+
def from_dict(data: Dict[str, Any]) -> 'DeviceCancelOutputScheduleRequest':
|
|
50
|
+
return DeviceCancelOutputScheduleRequest(
|
|
51
|
+
interface_id=data.get('interfaceId'), # type: ignore
|
|
52
|
+
device=data.get('device'), # type: ignore
|
|
53
|
+
analog=data.get('analog'), # type: ignore
|
|
54
|
+
channel_number=data.get('channelNumber'), # type: ignore
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
def validate(self) -> None:
|
|
58
|
+
"""" Validates the properties of the instance. """
|
|
59
|
+
if self.interface_id is None:
|
|
60
|
+
raise ValueError(f'Property "InterfaceId" of "DeviceCancelOutputScheduleRequest" is None.')
|
|
61
|
+
|
|
62
|
+
if not isinstance(self.interface_id, (int, float, decimal.Decimal)):
|
|
63
|
+
raise ValueError(f'Property "InterfaceId" of "DeviceCancelOutputScheduleRequest" is not a number.')
|
|
64
|
+
|
|
65
|
+
if int(self.interface_id) != self.interface_id:
|
|
66
|
+
raise ValueError(f'Property "InterfaceId" of "DeviceCancelOutputScheduleRequest" is not integer value.')
|
|
67
|
+
|
|
68
|
+
if self.device is None:
|
|
69
|
+
raise ValueError(f'Property "Device" of "DeviceCancelOutputScheduleRequest" is None.')
|
|
70
|
+
|
|
71
|
+
if not isinstance(self.device, (int, float, decimal.Decimal)):
|
|
72
|
+
raise ValueError(f'Property "Device" of "DeviceCancelOutputScheduleRequest" is not a number.')
|
|
73
|
+
|
|
74
|
+
if int(self.device) != self.device:
|
|
75
|
+
raise ValueError(f'Property "Device" of "DeviceCancelOutputScheduleRequest" is not integer value.')
|
|
76
|
+
|
|
77
|
+
if self.channel_number is None:
|
|
78
|
+
raise ValueError(f'Property "ChannelNumber" of "DeviceCancelOutputScheduleRequest" is None.')
|
|
79
|
+
|
|
80
|
+
if not isinstance(self.channel_number, (int, float, decimal.Decimal)):
|
|
81
|
+
raise ValueError(f'Property "ChannelNumber" of "DeviceCancelOutputScheduleRequest" is not a number.')
|
|
82
|
+
|
|
83
|
+
if int(self.channel_number) != self.channel_number:
|
|
84
|
+
raise ValueError(f'Property "ChannelNumber" of "DeviceCancelOutputScheduleRequest" is not integer value.')
|
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
# This file is generated. Do not modify by hand.
|
|
2
|
-
# pylint: disable=line-too-long, unused-argument, f-string-without-interpolation, too-many-branches, too-many-statements, unnecessary-pass
|
|
3
|
-
from dataclasses import dataclass
|
|
4
|
-
from typing import Any, Dict
|
|
5
|
-
import decimal
|
|
6
|
-
import zaber_bson
|
|
7
|
-
from ...units import Units, UnitsAndLiterals, units_from_literals
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
@dataclass
|
|
11
|
-
class DeviceConvertSettingRequest:
|
|
12
|
-
|
|
13
|
-
interface_id: int = 0
|
|
14
|
-
|
|
15
|
-
device: int = 0
|
|
16
|
-
|
|
17
|
-
axis: int = 0
|
|
18
|
-
|
|
19
|
-
setting: str = ""
|
|
20
|
-
|
|
21
|
-
unit: UnitsAndLiterals = Units.NATIVE
|
|
22
|
-
|
|
23
|
-
value: float = 0
|
|
24
|
-
|
|
25
|
-
from_native: bool = False
|
|
26
|
-
|
|
27
|
-
@staticmethod
|
|
28
|
-
def zero_values() -> 'DeviceConvertSettingRequest':
|
|
29
|
-
return DeviceConvertSettingRequest(
|
|
30
|
-
interface_id=0,
|
|
31
|
-
device=0,
|
|
32
|
-
axis=0,
|
|
33
|
-
setting="",
|
|
34
|
-
unit=Units.NATIVE,
|
|
35
|
-
value=0,
|
|
36
|
-
from_native=False,
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
@staticmethod
|
|
40
|
-
def from_binary(data_bytes: bytes) -> 'DeviceConvertSettingRequest':
|
|
41
|
-
"""" Deserialize a binary representation of this class. """
|
|
42
|
-
data = zaber_bson.loads(data_bytes) # type: Dict[str, Any]
|
|
43
|
-
return DeviceConvertSettingRequest.from_dict(data)
|
|
44
|
-
|
|
45
|
-
def to_binary(self) -> bytes:
|
|
46
|
-
"""" Serialize this class to a binary representation. """
|
|
47
|
-
self.validate()
|
|
48
|
-
return zaber_bson.dumps(self.to_dict()) # type: ignore
|
|
49
|
-
|
|
50
|
-
def to_dict(self) -> Dict[str, Any]:
|
|
51
|
-
return {
|
|
52
|
-
'interfaceId': int(self.interface_id),
|
|
53
|
-
'device': int(self.device),
|
|
54
|
-
'axis': int(self.axis),
|
|
55
|
-
'setting': str(self.setting or ''),
|
|
56
|
-
'unit': units_from_literals(self.unit).value,
|
|
57
|
-
'value': float(self.value),
|
|
58
|
-
'fromNative': bool(self.from_native),
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
@staticmethod
|
|
62
|
-
def from_dict(data: Dict[str, Any]) -> 'DeviceConvertSettingRequest':
|
|
63
|
-
return DeviceConvertSettingRequest(
|
|
64
|
-
interface_id=data.get('interfaceId'), # type: ignore
|
|
65
|
-
device=data.get('device'), # type: ignore
|
|
66
|
-
axis=data.get('axis'), # type: ignore
|
|
67
|
-
setting=data.get('setting'), # type: ignore
|
|
68
|
-
unit=Units(data.get('unit')), # type: ignore
|
|
69
|
-
value=data.get('value'), # type: ignore
|
|
70
|
-
from_native=data.get('fromNative'), # type: ignore
|
|
71
|
-
)
|
|
72
|
-
|
|
73
|
-
def validate(self) -> None:
|
|
74
|
-
"""" Validates the properties of the instance. """
|
|
75
|
-
if self.interface_id is None:
|
|
76
|
-
raise ValueError(f'Property "InterfaceId" of "DeviceConvertSettingRequest" is None.')
|
|
77
|
-
|
|
78
|
-
if not isinstance(self.interface_id, (int, float, decimal.Decimal)):
|
|
79
|
-
raise ValueError(f'Property "InterfaceId" of "DeviceConvertSettingRequest" is not a number.')
|
|
80
|
-
|
|
81
|
-
if int(self.interface_id) != self.interface_id:
|
|
82
|
-
raise ValueError(f'Property "InterfaceId" of "DeviceConvertSettingRequest" is not integer value.')
|
|
83
|
-
|
|
84
|
-
if self.device is None:
|
|
85
|
-
raise ValueError(f'Property "Device" of "DeviceConvertSettingRequest" is None.')
|
|
86
|
-
|
|
87
|
-
if not isinstance(self.device, (int, float, decimal.Decimal)):
|
|
88
|
-
raise ValueError(f'Property "Device" of "DeviceConvertSettingRequest" is not a number.')
|
|
89
|
-
|
|
90
|
-
if int(self.device) != self.device:
|
|
91
|
-
raise ValueError(f'Property "Device" of "DeviceConvertSettingRequest" is not integer value.')
|
|
92
|
-
|
|
93
|
-
if self.axis is None:
|
|
94
|
-
raise ValueError(f'Property "Axis" of "DeviceConvertSettingRequest" is None.')
|
|
95
|
-
|
|
96
|
-
if not isinstance(self.axis, (int, float, decimal.Decimal)):
|
|
97
|
-
raise ValueError(f'Property "Axis" of "DeviceConvertSettingRequest" is not a number.')
|
|
98
|
-
|
|
99
|
-
if int(self.axis) != self.axis:
|
|
100
|
-
raise ValueError(f'Property "Axis" of "DeviceConvertSettingRequest" is not integer value.')
|
|
101
|
-
|
|
102
|
-
if self.setting is not None:
|
|
103
|
-
if not isinstance(self.setting, str):
|
|
104
|
-
raise ValueError(f'Property "Setting" of "DeviceConvertSettingRequest" is not a string.')
|
|
105
|
-
|
|
106
|
-
if self.unit is None:
|
|
107
|
-
raise ValueError(f'Property "Unit" of "DeviceConvertSettingRequest" is None.')
|
|
108
|
-
|
|
109
|
-
if not isinstance(self.unit, (Units, str)):
|
|
110
|
-
raise ValueError(f'Property "Unit" of "DeviceConvertSettingRequest" is not Units.')
|
|
111
|
-
|
|
112
|
-
if self.value is None:
|
|
113
|
-
raise ValueError(f'Property "Value" of "DeviceConvertSettingRequest" is None.')
|
|
114
|
-
|
|
115
|
-
if not isinstance(self.value, (int, float, decimal.Decimal)):
|
|
116
|
-
raise ValueError(f'Property "Value" of "DeviceConvertSettingRequest" is not a number.')
|
|
1
|
+
# This file is generated. Do not modify by hand.
|
|
2
|
+
# pylint: disable=line-too-long, unused-argument, f-string-without-interpolation, too-many-branches, too-many-statements, unnecessary-pass
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
from typing import Any, Dict
|
|
5
|
+
import decimal
|
|
6
|
+
import zaber_bson
|
|
7
|
+
from ...units import Units, UnitsAndLiterals, units_from_literals
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@dataclass
|
|
11
|
+
class DeviceConvertSettingRequest:
|
|
12
|
+
|
|
13
|
+
interface_id: int = 0
|
|
14
|
+
|
|
15
|
+
device: int = 0
|
|
16
|
+
|
|
17
|
+
axis: int = 0
|
|
18
|
+
|
|
19
|
+
setting: str = ""
|
|
20
|
+
|
|
21
|
+
unit: UnitsAndLiterals = Units.NATIVE
|
|
22
|
+
|
|
23
|
+
value: float = 0
|
|
24
|
+
|
|
25
|
+
from_native: bool = False
|
|
26
|
+
|
|
27
|
+
@staticmethod
|
|
28
|
+
def zero_values() -> 'DeviceConvertSettingRequest':
|
|
29
|
+
return DeviceConvertSettingRequest(
|
|
30
|
+
interface_id=0,
|
|
31
|
+
device=0,
|
|
32
|
+
axis=0,
|
|
33
|
+
setting="",
|
|
34
|
+
unit=Units.NATIVE,
|
|
35
|
+
value=0,
|
|
36
|
+
from_native=False,
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
@staticmethod
|
|
40
|
+
def from_binary(data_bytes: bytes) -> 'DeviceConvertSettingRequest':
|
|
41
|
+
"""" Deserialize a binary representation of this class. """
|
|
42
|
+
data = zaber_bson.loads(data_bytes) # type: Dict[str, Any]
|
|
43
|
+
return DeviceConvertSettingRequest.from_dict(data)
|
|
44
|
+
|
|
45
|
+
def to_binary(self) -> bytes:
|
|
46
|
+
"""" Serialize this class to a binary representation. """
|
|
47
|
+
self.validate()
|
|
48
|
+
return zaber_bson.dumps(self.to_dict()) # type: ignore
|
|
49
|
+
|
|
50
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
51
|
+
return {
|
|
52
|
+
'interfaceId': int(self.interface_id),
|
|
53
|
+
'device': int(self.device),
|
|
54
|
+
'axis': int(self.axis),
|
|
55
|
+
'setting': str(self.setting or ''),
|
|
56
|
+
'unit': units_from_literals(self.unit).value,
|
|
57
|
+
'value': float(self.value),
|
|
58
|
+
'fromNative': bool(self.from_native),
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@staticmethod
|
|
62
|
+
def from_dict(data: Dict[str, Any]) -> 'DeviceConvertSettingRequest':
|
|
63
|
+
return DeviceConvertSettingRequest(
|
|
64
|
+
interface_id=data.get('interfaceId'), # type: ignore
|
|
65
|
+
device=data.get('device'), # type: ignore
|
|
66
|
+
axis=data.get('axis'), # type: ignore
|
|
67
|
+
setting=data.get('setting'), # type: ignore
|
|
68
|
+
unit=Units(data.get('unit')), # type: ignore
|
|
69
|
+
value=data.get('value'), # type: ignore
|
|
70
|
+
from_native=data.get('fromNative'), # type: ignore
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
def validate(self) -> None:
|
|
74
|
+
"""" Validates the properties of the instance. """
|
|
75
|
+
if self.interface_id is None:
|
|
76
|
+
raise ValueError(f'Property "InterfaceId" of "DeviceConvertSettingRequest" is None.')
|
|
77
|
+
|
|
78
|
+
if not isinstance(self.interface_id, (int, float, decimal.Decimal)):
|
|
79
|
+
raise ValueError(f'Property "InterfaceId" of "DeviceConvertSettingRequest" is not a number.')
|
|
80
|
+
|
|
81
|
+
if int(self.interface_id) != self.interface_id:
|
|
82
|
+
raise ValueError(f'Property "InterfaceId" of "DeviceConvertSettingRequest" is not integer value.')
|
|
83
|
+
|
|
84
|
+
if self.device is None:
|
|
85
|
+
raise ValueError(f'Property "Device" of "DeviceConvertSettingRequest" is None.')
|
|
86
|
+
|
|
87
|
+
if not isinstance(self.device, (int, float, decimal.Decimal)):
|
|
88
|
+
raise ValueError(f'Property "Device" of "DeviceConvertSettingRequest" is not a number.')
|
|
89
|
+
|
|
90
|
+
if int(self.device) != self.device:
|
|
91
|
+
raise ValueError(f'Property "Device" of "DeviceConvertSettingRequest" is not integer value.')
|
|
92
|
+
|
|
93
|
+
if self.axis is None:
|
|
94
|
+
raise ValueError(f'Property "Axis" of "DeviceConvertSettingRequest" is None.')
|
|
95
|
+
|
|
96
|
+
if not isinstance(self.axis, (int, float, decimal.Decimal)):
|
|
97
|
+
raise ValueError(f'Property "Axis" of "DeviceConvertSettingRequest" is not a number.')
|
|
98
|
+
|
|
99
|
+
if int(self.axis) != self.axis:
|
|
100
|
+
raise ValueError(f'Property "Axis" of "DeviceConvertSettingRequest" is not integer value.')
|
|
101
|
+
|
|
102
|
+
if self.setting is not None:
|
|
103
|
+
if not isinstance(self.setting, str):
|
|
104
|
+
raise ValueError(f'Property "Setting" of "DeviceConvertSettingRequest" is not a string.')
|
|
105
|
+
|
|
106
|
+
if self.unit is None:
|
|
107
|
+
raise ValueError(f'Property "Unit" of "DeviceConvertSettingRequest" is None.')
|
|
108
|
+
|
|
109
|
+
if not isinstance(self.unit, (Units, str)):
|
|
110
|
+
raise ValueError(f'Property "Unit" of "DeviceConvertSettingRequest" is not Units.')
|
|
111
|
+
|
|
112
|
+
if self.value is None:
|
|
113
|
+
raise ValueError(f'Property "Value" of "DeviceConvertSettingRequest" is None.')
|
|
114
|
+
|
|
115
|
+
if not isinstance(self.value, (int, float, decimal.Decimal)):
|
|
116
|
+
raise ValueError(f'Property "Value" of "DeviceConvertSettingRequest" is not a number.')
|
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
# This file is generated. Do not modify by hand.
|
|
2
|
-
# pylint: disable=line-too-long, unused-argument, f-string-without-interpolation, too-many-branches, too-many-statements, unnecessary-pass
|
|
3
|
-
from dataclasses import dataclass
|
|
4
|
-
from typing import Any, Dict
|
|
5
|
-
import decimal
|
|
6
|
-
import zaber_bson
|
|
7
|
-
from .device_type import DeviceType
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
@dataclass
|
|
11
|
-
class DeviceDetectRequest:
|
|
12
|
-
|
|
13
|
-
interface_id: int = 0
|
|
14
|
-
|
|
15
|
-
identify_devices: bool = False
|
|
16
|
-
|
|
17
|
-
type: DeviceType = next(first for first in DeviceType)
|
|
18
|
-
|
|
19
|
-
@staticmethod
|
|
20
|
-
def zero_values() -> 'DeviceDetectRequest':
|
|
21
|
-
return DeviceDetectRequest(
|
|
22
|
-
interface_id=0,
|
|
23
|
-
identify_devices=False,
|
|
24
|
-
type=next(first for first in DeviceType),
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
@staticmethod
|
|
28
|
-
def from_binary(data_bytes: bytes) -> 'DeviceDetectRequest':
|
|
29
|
-
"""" Deserialize a binary representation of this class. """
|
|
30
|
-
data = zaber_bson.loads(data_bytes) # type: Dict[str, Any]
|
|
31
|
-
return DeviceDetectRequest.from_dict(data)
|
|
32
|
-
|
|
33
|
-
def to_binary(self) -> bytes:
|
|
34
|
-
"""" Serialize this class to a binary representation. """
|
|
35
|
-
self.validate()
|
|
36
|
-
return zaber_bson.dumps(self.to_dict()) # type: ignore
|
|
37
|
-
|
|
38
|
-
def to_dict(self) -> Dict[str, Any]:
|
|
39
|
-
return {
|
|
40
|
-
'interfaceId': int(self.interface_id),
|
|
41
|
-
'identifyDevices': bool(self.identify_devices),
|
|
42
|
-
'type': self.type.value,
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
@staticmethod
|
|
46
|
-
def from_dict(data: Dict[str, Any]) -> 'DeviceDetectRequest':
|
|
47
|
-
return DeviceDetectRequest(
|
|
48
|
-
interface_id=data.get('interfaceId'), # type: ignore
|
|
49
|
-
identify_devices=data.get('identifyDevices'), # type: ignore
|
|
50
|
-
type=DeviceType(data.get('type')), # type: ignore
|
|
51
|
-
)
|
|
52
|
-
|
|
53
|
-
def validate(self) -> None:
|
|
54
|
-
"""" Validates the properties of the instance. """
|
|
55
|
-
if self.interface_id is None:
|
|
56
|
-
raise ValueError(f'Property "InterfaceId" of "DeviceDetectRequest" is None.')
|
|
57
|
-
|
|
58
|
-
if not isinstance(self.interface_id, (int, float, decimal.Decimal)):
|
|
59
|
-
raise ValueError(f'Property "InterfaceId" of "DeviceDetectRequest" is not a number.')
|
|
60
|
-
|
|
61
|
-
if int(self.interface_id) != self.interface_id:
|
|
62
|
-
raise ValueError(f'Property "InterfaceId" of "DeviceDetectRequest" is not integer value.')
|
|
63
|
-
|
|
64
|
-
if self.type is None:
|
|
65
|
-
raise ValueError(f'Property "Type" of "DeviceDetectRequest" is None.')
|
|
66
|
-
|
|
67
|
-
if not isinstance(self.type, DeviceType):
|
|
68
|
-
raise ValueError(f'Property "Type" of "DeviceDetectRequest" is not an instance of "DeviceType".')
|
|
1
|
+
# This file is generated. Do not modify by hand.
|
|
2
|
+
# pylint: disable=line-too-long, unused-argument, f-string-without-interpolation, too-many-branches, too-many-statements, unnecessary-pass
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
from typing import Any, Dict
|
|
5
|
+
import decimal
|
|
6
|
+
import zaber_bson
|
|
7
|
+
from .device_type import DeviceType
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@dataclass
|
|
11
|
+
class DeviceDetectRequest:
|
|
12
|
+
|
|
13
|
+
interface_id: int = 0
|
|
14
|
+
|
|
15
|
+
identify_devices: bool = False
|
|
16
|
+
|
|
17
|
+
type: DeviceType = next(first for first in DeviceType)
|
|
18
|
+
|
|
19
|
+
@staticmethod
|
|
20
|
+
def zero_values() -> 'DeviceDetectRequest':
|
|
21
|
+
return DeviceDetectRequest(
|
|
22
|
+
interface_id=0,
|
|
23
|
+
identify_devices=False,
|
|
24
|
+
type=next(first for first in DeviceType),
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
@staticmethod
|
|
28
|
+
def from_binary(data_bytes: bytes) -> 'DeviceDetectRequest':
|
|
29
|
+
"""" Deserialize a binary representation of this class. """
|
|
30
|
+
data = zaber_bson.loads(data_bytes) # type: Dict[str, Any]
|
|
31
|
+
return DeviceDetectRequest.from_dict(data)
|
|
32
|
+
|
|
33
|
+
def to_binary(self) -> bytes:
|
|
34
|
+
"""" Serialize this class to a binary representation. """
|
|
35
|
+
self.validate()
|
|
36
|
+
return zaber_bson.dumps(self.to_dict()) # type: ignore
|
|
37
|
+
|
|
38
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
39
|
+
return {
|
|
40
|
+
'interfaceId': int(self.interface_id),
|
|
41
|
+
'identifyDevices': bool(self.identify_devices),
|
|
42
|
+
'type': self.type.value,
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@staticmethod
|
|
46
|
+
def from_dict(data: Dict[str, Any]) -> 'DeviceDetectRequest':
|
|
47
|
+
return DeviceDetectRequest(
|
|
48
|
+
interface_id=data.get('interfaceId'), # type: ignore
|
|
49
|
+
identify_devices=data.get('identifyDevices'), # type: ignore
|
|
50
|
+
type=DeviceType(data.get('type')), # type: ignore
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
def validate(self) -> None:
|
|
54
|
+
"""" Validates the properties of the instance. """
|
|
55
|
+
if self.interface_id is None:
|
|
56
|
+
raise ValueError(f'Property "InterfaceId" of "DeviceDetectRequest" is None.')
|
|
57
|
+
|
|
58
|
+
if not isinstance(self.interface_id, (int, float, decimal.Decimal)):
|
|
59
|
+
raise ValueError(f'Property "InterfaceId" of "DeviceDetectRequest" is not a number.')
|
|
60
|
+
|
|
61
|
+
if int(self.interface_id) != self.interface_id:
|
|
62
|
+
raise ValueError(f'Property "InterfaceId" of "DeviceDetectRequest" is not integer value.')
|
|
63
|
+
|
|
64
|
+
if self.type is None:
|
|
65
|
+
raise ValueError(f'Property "Type" of "DeviceDetectRequest" is None.')
|
|
66
|
+
|
|
67
|
+
if not isinstance(self.type, DeviceType):
|
|
68
|
+
raise ValueError(f'Property "Type" of "DeviceDetectRequest" is not an instance of "DeviceType".')
|
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
# This file is generated. Do not modify by hand.
|
|
2
|
-
# pylint: disable=line-too-long, unused-argument, f-string-without-interpolation, too-many-branches, too-many-statements, unnecessary-pass
|
|
3
|
-
from dataclasses import dataclass, field
|
|
4
|
-
from typing import Any, Dict, List
|
|
5
|
-
import decimal
|
|
6
|
-
from collections.abc import Iterable
|
|
7
|
-
import zaber_bson
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
@dataclass
|
|
11
|
-
class DeviceDetectResponse:
|
|
12
|
-
|
|
13
|
-
devices: List[int] = field(default_factory=list)
|
|
14
|
-
|
|
15
|
-
@staticmethod
|
|
16
|
-
def zero_values() -> 'DeviceDetectResponse':
|
|
17
|
-
return DeviceDetectResponse(
|
|
18
|
-
devices=[],
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
@staticmethod
|
|
22
|
-
def from_binary(data_bytes: bytes) -> 'DeviceDetectResponse':
|
|
23
|
-
"""" Deserialize a binary representation of this class. """
|
|
24
|
-
data = zaber_bson.loads(data_bytes) # type: Dict[str, Any]
|
|
25
|
-
return DeviceDetectResponse.from_dict(data)
|
|
26
|
-
|
|
27
|
-
def to_binary(self) -> bytes:
|
|
28
|
-
"""" Serialize this class to a binary representation. """
|
|
29
|
-
self.validate()
|
|
30
|
-
return zaber_bson.dumps(self.to_dict()) # type: ignore
|
|
31
|
-
|
|
32
|
-
def to_dict(self) -> Dict[str, Any]:
|
|
33
|
-
return {
|
|
34
|
-
'devices': [int(item) for item in self.devices] if self.devices is not None else [],
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
@staticmethod
|
|
38
|
-
def from_dict(data: Dict[str, Any]) -> 'DeviceDetectResponse':
|
|
39
|
-
return DeviceDetectResponse(
|
|
40
|
-
devices=data.get('devices'), # type: ignore
|
|
41
|
-
)
|
|
42
|
-
|
|
43
|
-
def validate(self) -> None:
|
|
44
|
-
"""" Validates the properties of the instance. """
|
|
45
|
-
if self.devices is not None:
|
|
46
|
-
if not isinstance(self.devices, Iterable):
|
|
47
|
-
raise ValueError('Property "Devices" of "DeviceDetectResponse" is not iterable.')
|
|
48
|
-
|
|
49
|
-
for i, devices_item in enumerate(self.devices):
|
|
50
|
-
if devices_item is None:
|
|
51
|
-
raise ValueError(f'Item {i} in property "Devices" of "DeviceDetectResponse" is None.')
|
|
52
|
-
|
|
53
|
-
if not isinstance(devices_item, (int, float, decimal.Decimal)):
|
|
54
|
-
raise ValueError(f'Item {i} in property "Devices" of "DeviceDetectResponse" is not a number.')
|
|
55
|
-
|
|
56
|
-
if int(devices_item) != devices_item:
|
|
57
|
-
raise ValueError(f'Item {i} in property "Devices" of "DeviceDetectResponse" is not integer value.')
|
|
1
|
+
# This file is generated. Do not modify by hand.
|
|
2
|
+
# pylint: disable=line-too-long, unused-argument, f-string-without-interpolation, too-many-branches, too-many-statements, unnecessary-pass
|
|
3
|
+
from dataclasses import dataclass, field
|
|
4
|
+
from typing import Any, Dict, List
|
|
5
|
+
import decimal
|
|
6
|
+
from collections.abc import Iterable
|
|
7
|
+
import zaber_bson
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@dataclass
|
|
11
|
+
class DeviceDetectResponse:
|
|
12
|
+
|
|
13
|
+
devices: List[int] = field(default_factory=list)
|
|
14
|
+
|
|
15
|
+
@staticmethod
|
|
16
|
+
def zero_values() -> 'DeviceDetectResponse':
|
|
17
|
+
return DeviceDetectResponse(
|
|
18
|
+
devices=[],
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
@staticmethod
|
|
22
|
+
def from_binary(data_bytes: bytes) -> 'DeviceDetectResponse':
|
|
23
|
+
"""" Deserialize a binary representation of this class. """
|
|
24
|
+
data = zaber_bson.loads(data_bytes) # type: Dict[str, Any]
|
|
25
|
+
return DeviceDetectResponse.from_dict(data)
|
|
26
|
+
|
|
27
|
+
def to_binary(self) -> bytes:
|
|
28
|
+
"""" Serialize this class to a binary representation. """
|
|
29
|
+
self.validate()
|
|
30
|
+
return zaber_bson.dumps(self.to_dict()) # type: ignore
|
|
31
|
+
|
|
32
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
33
|
+
return {
|
|
34
|
+
'devices': [int(item) for item in self.devices] if self.devices is not None else [],
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@staticmethod
|
|
38
|
+
def from_dict(data: Dict[str, Any]) -> 'DeviceDetectResponse':
|
|
39
|
+
return DeviceDetectResponse(
|
|
40
|
+
devices=data.get('devices'), # type: ignore
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
def validate(self) -> None:
|
|
44
|
+
"""" Validates the properties of the instance. """
|
|
45
|
+
if self.devices is not None:
|
|
46
|
+
if not isinstance(self.devices, Iterable):
|
|
47
|
+
raise ValueError('Property "Devices" of "DeviceDetectResponse" is not iterable.')
|
|
48
|
+
|
|
49
|
+
for i, devices_item in enumerate(self.devices):
|
|
50
|
+
if devices_item is None:
|
|
51
|
+
raise ValueError(f'Item {i} in property "Devices" of "DeviceDetectResponse" is None.')
|
|
52
|
+
|
|
53
|
+
if not isinstance(devices_item, (int, float, decimal.Decimal)):
|
|
54
|
+
raise ValueError(f'Item {i} in property "Devices" of "DeviceDetectResponse" is not a number.')
|
|
55
|
+
|
|
56
|
+
if int(devices_item) != devices_item:
|
|
57
|
+
raise ValueError(f'Item {i} in property "Devices" of "DeviceDetectResponse" is not integer value.')
|