zaber-motion 7.12.0__py3-none-win_amd64.whl → 7.14.0__py3-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (492) hide show
  1. zaber_motion/__init__.py +103 -103
  2. zaber_motion/ascii/__init__.py +73 -73
  3. zaber_motion/ascii/all_axes.py +352 -352
  4. zaber_motion/ascii/axis.py +1673 -1666
  5. zaber_motion/ascii/axis_group.py +391 -391
  6. zaber_motion/ascii/axis_settings.py +752 -752
  7. zaber_motion/ascii/connection.py +1174 -1174
  8. zaber_motion/ascii/device.py +908 -908
  9. zaber_motion/ascii/device_io.py +1170 -1170
  10. zaber_motion/ascii/device_settings.py +735 -735
  11. zaber_motion/ascii/lockstep.py +1184 -1184
  12. zaber_motion/ascii/oscilloscope.py +635 -635
  13. zaber_motion/ascii/oscilloscope_data.py +240 -240
  14. zaber_motion/ascii/pvt.py +105 -105
  15. zaber_motion/ascii/pvt_buffer.py +146 -146
  16. zaber_motion/ascii/pvt_io.py +630 -630
  17. zaber_motion/ascii/pvt_sequence.py +1530 -1530
  18. zaber_motion/ascii/servo_tuner.py +637 -637
  19. zaber_motion/ascii/setting_constants.py +1755 -1755
  20. zaber_motion/ascii/storage.py +905 -905
  21. zaber_motion/ascii/stream.py +2182 -2182
  22. zaber_motion/ascii/stream_buffer.py +101 -101
  23. zaber_motion/ascii/stream_io.py +700 -700
  24. zaber_motion/ascii/streams.py +105 -105
  25. zaber_motion/ascii/transport.py +202 -202
  26. zaber_motion/ascii/trigger.py +886 -886
  27. zaber_motion/ascii/triggers.py +241 -241
  28. zaber_motion/ascii/warning_flags.py +178 -178
  29. zaber_motion/ascii/warnings.py +152 -152
  30. zaber_motion/async_utils.py +46 -46
  31. zaber_motion/binary/__init__.py +14 -14
  32. zaber_motion/binary/connection.py +648 -648
  33. zaber_motion/binary/device.py +924 -924
  34. zaber_motion/binary/device_settings.py +121 -121
  35. zaber_motion/bindings.py +50 -50
  36. zaber_motion/call.py +198 -198
  37. zaber_motion/convert_exception.py +138 -138
  38. zaber_motion/dto/__init__.py +11 -11
  39. zaber_motion/dto/ascii/__init__.py +46 -46
  40. zaber_motion/dto/ascii/alert_event.py +110 -110
  41. zaber_motion/dto/ascii/axis_identity.py +134 -117
  42. zaber_motion/dto/ascii/axis_type.py +14 -14
  43. zaber_motion/dto/ascii/can_set_state_axis_response.py +69 -69
  44. zaber_motion/dto/ascii/can_set_state_device_response.py +75 -75
  45. zaber_motion/dto/ascii/conversion_factor.py +81 -81
  46. zaber_motion/dto/ascii/device_identity.py +136 -136
  47. zaber_motion/dto/ascii/device_io_info.py +108 -108
  48. zaber_motion/dto/ascii/digital_output_action.py +13 -13
  49. zaber_motion/dto/ascii/get_axis_setting.py +64 -64
  50. zaber_motion/dto/ascii/get_axis_setting_result.py +81 -81
  51. zaber_motion/dto/ascii/get_setting.py +88 -88
  52. zaber_motion/dto/ascii/get_setting_result.py +87 -87
  53. zaber_motion/dto/ascii/io_port_label.py +84 -84
  54. zaber_motion/dto/ascii/io_port_type.py +14 -14
  55. zaber_motion/dto/ascii/lockstep_axes.py +108 -108
  56. zaber_motion/dto/ascii/measurement_sequence.py +73 -73
  57. zaber_motion/dto/ascii/message_type.py +14 -14
  58. zaber_motion/dto/ascii/optional_measurement_sequence.py +71 -71
  59. zaber_motion/dto/ascii/oscilloscope_capture_properties.py +116 -116
  60. zaber_motion/dto/ascii/oscilloscope_data_source.py +11 -11
  61. zaber_motion/dto/ascii/paramset_info.py +92 -92
  62. zaber_motion/dto/ascii/pid_tuning.py +125 -125
  63. zaber_motion/dto/ascii/pvt_axis_definition.py +70 -70
  64. zaber_motion/dto/ascii/pvt_axis_type.py +11 -11
  65. zaber_motion/dto/ascii/pvt_csv_data.py +75 -75
  66. zaber_motion/dto/ascii/pvt_mode.py +12 -12
  67. zaber_motion/dto/ascii/pvt_sequence_data.py +99 -99
  68. zaber_motion/dto/ascii/response.py +137 -137
  69. zaber_motion/dto/ascii/servo_tuning_param.py +66 -66
  70. zaber_motion/dto/ascii/servo_tuning_paramset.py +21 -21
  71. zaber_motion/dto/ascii/set_state_axis_response.py +75 -75
  72. zaber_motion/dto/ascii/set_state_device_response.py +80 -80
  73. zaber_motion/dto/ascii/simple_tuning.py +118 -118
  74. zaber_motion/dto/ascii/simple_tuning_param_definition.py +100 -100
  75. zaber_motion/dto/ascii/stream_axis_definition.py +70 -70
  76. zaber_motion/dto/ascii/stream_axis_type.py +11 -11
  77. zaber_motion/dto/ascii/stream_mode.py +13 -13
  78. zaber_motion/dto/ascii/trigger_action.py +12 -12
  79. zaber_motion/dto/ascii/trigger_condition.py +15 -15
  80. zaber_motion/dto/ascii/trigger_enabled_state.py +68 -68
  81. zaber_motion/dto/ascii/trigger_operation.py +12 -12
  82. zaber_motion/dto/ascii/trigger_state.py +114 -114
  83. zaber_motion/dto/ascii/unknown_response_event.py +137 -137
  84. zaber_motion/dto/axis_address.py +74 -74
  85. zaber_motion/dto/binary/__init__.py +11 -11
  86. zaber_motion/dto/binary/binary_settings.py +74 -74
  87. zaber_motion/dto/binary/command_code.py +106 -106
  88. zaber_motion/dto/binary/device_identity.py +156 -156
  89. zaber_motion/dto/binary/device_type.py +12 -12
  90. zaber_motion/dto/binary/error_code.py +101 -101
  91. zaber_motion/dto/binary/message.py +91 -91
  92. zaber_motion/dto/binary/reply_code.py +16 -16
  93. zaber_motion/dto/binary/reply_only_event.py +91 -91
  94. zaber_motion/dto/binary/unknown_response_event.py +91 -91
  95. zaber_motion/dto/channel_address.py +74 -74
  96. zaber_motion/dto/device_db_source.py +66 -66
  97. zaber_motion/dto/device_db_source_type.py +11 -11
  98. zaber_motion/dto/exceptions/__init__.py +24 -24
  99. zaber_motion/dto/exceptions/binary_command_failed_exception_data.py +57 -57
  100. zaber_motion/dto/exceptions/command_failed_exception_data.py +151 -151
  101. zaber_motion/dto/exceptions/command_too_long_exception_data.py +98 -98
  102. zaber_motion/dto/exceptions/device_address_conflict_exception_data.py +63 -63
  103. zaber_motion/dto/exceptions/device_db_failed_exception_data.py +74 -74
  104. zaber_motion/dto/exceptions/device_db_inner_error.py +85 -85
  105. zaber_motion/dto/exceptions/g_code_execution_exception_data.py +75 -75
  106. zaber_motion/dto/exceptions/g_code_syntax_exception_data.py +75 -75
  107. zaber_motion/dto/exceptions/invalid_packet_exception_data.py +63 -63
  108. zaber_motion/dto/exceptions/invalid_pvt_point.py +69 -69
  109. zaber_motion/dto/exceptions/invalid_response_exception_data.py +51 -51
  110. zaber_motion/dto/exceptions/movement_failed_exception_data.py +104 -104
  111. zaber_motion/dto/exceptions/movement_interrupted_exception_data.py +104 -104
  112. zaber_motion/dto/exceptions/operation_failed_exception_data.py +104 -104
  113. zaber_motion/dto/exceptions/pvt_execution_exception_data.py +86 -86
  114. zaber_motion/dto/exceptions/pvt_movement_failed_exception_data.py +69 -69
  115. zaber_motion/dto/exceptions/pvt_movement_interrupted_exception_data.py +69 -69
  116. zaber_motion/dto/exceptions/set_device_state_exception_data.py +176 -176
  117. zaber_motion/dto/exceptions/set_peripheral_state_exception_data.py +121 -121
  118. zaber_motion/dto/exceptions/stream_execution_exception_data.py +63 -63
  119. zaber_motion/dto/exceptions/stream_movement_failed_exception_data.py +69 -69
  120. zaber_motion/dto/exceptions/stream_movement_interrupted_exception_data.py +69 -69
  121. zaber_motion/dto/firmware_version.py +91 -91
  122. zaber_motion/dto/gcode/__init__.py +9 -9
  123. zaber_motion/dto/gcode/axis_definition.py +74 -74
  124. zaber_motion/dto/gcode/axis_mapping.py +69 -69
  125. zaber_motion/dto/gcode/axis_transformation.py +79 -79
  126. zaber_motion/dto/gcode/device_definition.py +99 -99
  127. zaber_motion/dto/gcode/translate_message.py +87 -87
  128. zaber_motion/dto/gcode/translate_result.py +79 -79
  129. zaber_motion/dto/gcode/translator_config.py +84 -84
  130. zaber_motion/dto/log_output_mode.py +13 -13
  131. zaber_motion/dto/measurement.py +67 -67
  132. zaber_motion/dto/microscopy/__init__.py +6 -6
  133. zaber_motion/dto/microscopy/autofocus_status.py +57 -57
  134. zaber_motion/dto/microscopy/microscope_config.py +159 -159
  135. zaber_motion/dto/microscopy/third_party_components.py +55 -55
  136. zaber_motion/dto/microscopy/wdi_autofocus_provider_status.py +57 -57
  137. zaber_motion/dto/named_parameter.py +64 -64
  138. zaber_motion/dto/product/__init__.py +5 -5
  139. zaber_motion/dto/product/process_controller_mode.py +13 -13
  140. zaber_motion/dto/product/process_controller_source.py +72 -72
  141. zaber_motion/dto/product/process_controller_source_sensor.py +11 -11
  142. zaber_motion/dto/requests/__init__.py +256 -254
  143. zaber_motion/dto/requests/alert_event_wrapper.py +82 -82
  144. zaber_motion/dto/requests/autofocus_focus_request.py +131 -131
  145. zaber_motion/dto/requests/autofocus_get_objective_params_request.py +121 -121
  146. zaber_motion/dto/requests/autofocus_get_objective_params_response.py +56 -56
  147. zaber_motion/dto/requests/autofocus_get_status_response.py +50 -50
  148. zaber_motion/dto/requests/autofocus_set_objective_params_request.py +141 -141
  149. zaber_motion/dto/requests/axes_empty_request.py +95 -95
  150. zaber_motion/dto/requests/axes_get_setting_request.py +121 -121
  151. zaber_motion/dto/requests/axes_move_request.py +114 -114
  152. zaber_motion/dto/requests/axis_empty_request.py +79 -79
  153. zaber_motion/dto/requests/axis_move_type.py +12 -12
  154. zaber_motion/dto/requests/axis_to_string_request.py +88 -88
  155. zaber_motion/dto/requests/binary_device_detect_request.py +56 -56
  156. zaber_motion/dto/requests/binary_device_detect_response.py +57 -57
  157. zaber_motion/dto/requests/binary_device_get_setting_request.py +89 -89
  158. zaber_motion/dto/requests/binary_device_home_request.py +88 -88
  159. zaber_motion/dto/requests/binary_device_move_request.py +111 -111
  160. zaber_motion/dto/requests/binary_device_set_setting_request.py +100 -100
  161. zaber_motion/dto/requests/binary_device_stop_request.py +88 -88
  162. zaber_motion/dto/requests/binary_generic_with_units_request.py +122 -122
  163. zaber_motion/dto/requests/binary_message_collection.py +56 -56
  164. zaber_motion/dto/requests/binary_reply_only_event_wrapper.py +82 -82
  165. zaber_motion/dto/requests/bool_response.py +43 -43
  166. zaber_motion/dto/requests/can_set_state_axis_response.py +60 -60
  167. zaber_motion/dto/requests/can_set_state_request.py +100 -100
  168. zaber_motion/dto/requests/channel_on.py +84 -84
  169. zaber_motion/dto/requests/channel_set_intensity.py +90 -90
  170. zaber_motion/dto/requests/check_version_request.py +54 -54
  171. zaber_motion/dto/requests/custom_interface_close_request.py +60 -60
  172. zaber_motion/dto/requests/custom_interface_open_response.py +51 -51
  173. zaber_motion/dto/requests/custom_interface_read_request.py +51 -51
  174. zaber_motion/dto/requests/custom_interface_write_request.py +60 -60
  175. zaber_motion/dto/requests/device_cancel_all_outputs_schedule_request.py +80 -80
  176. zaber_motion/dto/requests/device_cancel_output_schedule_request.py +84 -84
  177. zaber_motion/dto/requests/device_convert_setting_request.py +116 -116
  178. zaber_motion/dto/requests/device_detect_request.py +68 -68
  179. zaber_motion/dto/requests/device_detect_response.py +57 -57
  180. zaber_motion/dto/requests/device_empty_request.py +65 -65
  181. zaber_motion/dto/requests/device_get_all_analog_io_request.py +74 -74
  182. zaber_motion/dto/requests/device_get_all_analog_io_response.py +54 -54
  183. zaber_motion/dto/requests/device_get_all_digital_io_request.py +74 -74
  184. zaber_motion/dto/requests/device_get_all_digital_io_response.py +46 -46
  185. zaber_motion/dto/requests/device_get_analog_io_request.py +88 -88
  186. zaber_motion/dto/requests/device_get_digital_io_request.py +88 -88
  187. zaber_motion/dto/requests/device_get_setting_request.py +100 -100
  188. zaber_motion/dto/requests/device_get_storage_request.py +93 -93
  189. zaber_motion/dto/requests/device_get_warnings_request.py +84 -84
  190. zaber_motion/dto/requests/device_get_warnings_response.py +51 -51
  191. zaber_motion/dto/requests/device_home_request.py +84 -84
  192. zaber_motion/dto/requests/device_identify_request.py +77 -77
  193. zaber_motion/dto/requests/device_move_request.py +177 -177
  194. zaber_motion/dto/requests/device_move_sin_request.py +140 -140
  195. zaber_motion/dto/requests/device_multi_get_setting_request.py +118 -118
  196. zaber_motion/dto/requests/device_on_all_request.py +56 -56
  197. zaber_motion/dto/requests/device_on_all_response.py +57 -57
  198. zaber_motion/dto/requests/device_restore_request.py +84 -84
  199. zaber_motion/dto/requests/device_set_all_analog_outputs_request.py +82 -82
  200. zaber_motion/dto/requests/device_set_all_analog_outputs_schedule_request.py +121 -121
  201. zaber_motion/dto/requests/device_set_all_digital_outputs_request.py +83 -83
  202. zaber_motion/dto/requests/device_set_all_digital_outputs_schedule_request.py +122 -122
  203. zaber_motion/dto/requests/device_set_analog_output_request.py +90 -90
  204. zaber_motion/dto/requests/device_set_analog_output_schedule_request.py +124 -124
  205. zaber_motion/dto/requests/device_set_digital_output_request.py +91 -91
  206. zaber_motion/dto/requests/device_set_digital_output_schedule_request.py +125 -125
  207. zaber_motion/dto/requests/device_set_lowpass_filter_request.py +102 -102
  208. zaber_motion/dto/requests/device_set_setting_bool_request.py +93 -93
  209. zaber_motion/dto/requests/device_set_setting_int_request.py +102 -102
  210. zaber_motion/dto/requests/device_set_setting_request.py +111 -111
  211. zaber_motion/dto/requests/device_set_setting_str_request.py +97 -97
  212. zaber_motion/dto/requests/device_set_storage_bool_request.py +93 -93
  213. zaber_motion/dto/requests/device_set_storage_number_request.py +99 -99
  214. zaber_motion/dto/requests/device_set_storage_request.py +102 -102
  215. zaber_motion/dto/requests/device_set_unit_conversions_request.py +108 -108
  216. zaber_motion/dto/requests/device_stop_request.py +84 -84
  217. zaber_motion/dto/requests/device_storage_list_keys_request.py +88 -88
  218. zaber_motion/dto/requests/device_storage_request.py +88 -88
  219. zaber_motion/dto/requests/device_type.py +8 -8
  220. zaber_motion/dto/requests/device_wait_until_idle_request.py +84 -84
  221. zaber_motion/dto/requests/disconnected_event.py +101 -101
  222. zaber_motion/dto/requests/double_array_response.py +54 -54
  223. zaber_motion/dto/requests/double_response.py +48 -48
  224. zaber_motion/dto/requests/driver_enable_request.py +90 -90
  225. zaber_motion/dto/requests/empty_autofocus_request.py +107 -107
  226. zaber_motion/dto/requests/empty_request.py +38 -38
  227. zaber_motion/dto/requests/errors.py +68 -68
  228. zaber_motion/dto/requests/find_device_request.py +65 -65
  229. zaber_motion/dto/requests/find_device_response.py +51 -51
  230. zaber_motion/dto/requests/forget_devices_request.py +71 -71
  231. zaber_motion/dto/requests/gateway_event.py +45 -45
  232. zaber_motion/dto/requests/gateway_request.py +45 -45
  233. zaber_motion/dto/requests/gateway_response.py +69 -69
  234. zaber_motion/dto/requests/generic_binary_request.py +107 -107
  235. zaber_motion/dto/requests/generic_command_request.py +107 -107
  236. zaber_motion/dto/requests/generic_command_response_collection.py +56 -56
  237. zaber_motion/dto/requests/get_all_io_port_labels_response.py +56 -56
  238. zaber_motion/dto/requests/get_axis_setting_results.py +56 -56
  239. zaber_motion/dto/requests/get_io_port_label_request.py +91 -91
  240. zaber_motion/dto/requests/get_setting_results.py +56 -56
  241. zaber_motion/dto/requests/get_simple_tuning_param_definition_response.py +56 -56
  242. zaber_motion/dto/requests/int_64_response.py +51 -51
  243. zaber_motion/dto/requests/int_array_response.py +57 -57
  244. zaber_motion/dto/requests/int_request.py +51 -51
  245. zaber_motion/dto/requests/int_response.py +51 -51
  246. zaber_motion/dto/requests/interface_empty_request.py +51 -51
  247. zaber_motion/dto/requests/interface_type.py +11 -11
  248. zaber_motion/dto/requests/load_paramset.py +102 -102
  249. zaber_motion/dto/requests/lockstep_disable_request.py +84 -84
  250. zaber_motion/dto/requests/lockstep_empty_request.py +79 -79
  251. zaber_motion/dto/requests/lockstep_enable_request.py +99 -99
  252. zaber_motion/dto/requests/lockstep_get_axis_numbers_response.py +57 -57
  253. zaber_motion/dto/requests/lockstep_get_request.py +91 -91
  254. zaber_motion/dto/requests/lockstep_home_request.py +84 -84
  255. zaber_motion/dto/requests/lockstep_move_request.py +163 -163
  256. zaber_motion/dto/requests/lockstep_move_sin_request.py +140 -140
  257. zaber_motion/dto/requests/lockstep_set_request.py +116 -116
  258. zaber_motion/dto/requests/lockstep_stop_request.py +84 -84
  259. zaber_motion/dto/requests/lockstep_wait_until_idle_request.py +84 -84
  260. zaber_motion/dto/requests/microscope_config_response.py +50 -50
  261. zaber_motion/dto/requests/microscope_empty_request.py +65 -65
  262. zaber_motion/dto/requests/microscope_find_request.py +63 -63
  263. zaber_motion/dto/requests/microscope_init_request.py +70 -70
  264. zaber_motion/dto/requests/microscope_trigger_camera_request.py +107 -107
  265. zaber_motion/dto/requests/objective_changer_change_request.py +119 -119
  266. zaber_motion/dto/requests/objective_changer_create_response.py +79 -79
  267. zaber_motion/dto/requests/objective_changer_get_current_response.py +51 -51
  268. zaber_motion/dto/requests/objective_changer_request.py +93 -93
  269. zaber_motion/dto/requests/objective_changer_set_request.py +116 -116
  270. zaber_motion/dto/requests/open_binary_interface_request.py +100 -100
  271. zaber_motion/dto/requests/open_interface_request.py +159 -159
  272. zaber_motion/dto/requests/open_interface_response.py +51 -51
  273. zaber_motion/dto/requests/oscilloscope_add_io_channel_request.py +91 -91
  274. zaber_motion/dto/requests/oscilloscope_add_setting_channel_request.py +88 -88
  275. zaber_motion/dto/requests/oscilloscope_data_get_request.py +63 -63
  276. zaber_motion/dto/requests/oscilloscope_data_get_sample_time_request.py +77 -77
  277. zaber_motion/dto/requests/oscilloscope_data_get_samples_response.py +54 -54
  278. zaber_motion/dto/requests/oscilloscope_data_identifier.py +51 -51
  279. zaber_motion/dto/requests/oscilloscope_read_response.py +57 -57
  280. zaber_motion/dto/requests/oscilloscope_request.py +65 -65
  281. zaber_motion/dto/requests/oscilloscope_start_request.py +79 -79
  282. zaber_motion/dto/requests/prepare_command_request.py +108 -108
  283. zaber_motion/dto/requests/process_on.py +107 -107
  284. zaber_motion/dto/requests/pvt_buffer_get_sequence_data_request.py +79 -79
  285. zaber_motion/dto/requests/pvt_csv_request.py +59 -59
  286. zaber_motion/dto/requests/pvt_generate_positions_request.py +74 -74
  287. zaber_motion/dto/requests/pvt_generate_velocities_and_times_request.py +96 -96
  288. zaber_motion/dto/requests/pvt_generate_velocities_request.py +93 -93
  289. zaber_motion/dto/requests/pvt_load_csv_request.py +45 -45
  290. zaber_motion/dto/requests/pvt_point_request.py +145 -145
  291. zaber_motion/dto/requests/pvt_points_request.py +147 -147
  292. zaber_motion/dto/requests/pvt_save_csv_request.py +74 -74
  293. zaber_motion/dto/requests/pvt_submit_sequence_data_request.py +93 -93
  294. zaber_motion/dto/requests/renumber_request.py +79 -79
  295. zaber_motion/dto/requests/response_type.py +8 -8
  296. zaber_motion/dto/requests/servo_tuning_paramset_response.py +48 -48
  297. zaber_motion/dto/requests/servo_tuning_request.py +91 -91
  298. zaber_motion/dto/requests/set_device_db_layered_sources_request.py +56 -56
  299. zaber_motion/dto/requests/set_device_db_source_request.py +63 -63
  300. zaber_motion/dto/requests/set_interface_checksum_enabled_request.py +56 -56
  301. zaber_motion/dto/requests/set_interface_timeout_request.py +65 -65
  302. zaber_motion/dto/requests/set_internal_mode_request.py +43 -43
  303. zaber_motion/dto/requests/set_io_port_label_request.py +100 -100
  304. zaber_motion/dto/requests/set_log_output_request.py +57 -57
  305. zaber_motion/dto/requests/set_process_controller_source.py +93 -93
  306. zaber_motion/dto/requests/set_servo_tuning_pid_request.py +135 -135
  307. zaber_motion/dto/requests/set_servo_tuning_request.py +116 -116
  308. zaber_motion/dto/requests/set_simple_tuning.py +174 -174
  309. zaber_motion/dto/requests/set_state_request.py +93 -93
  310. zaber_motion/dto/requests/stream_arc_request.py +199 -199
  311. zaber_motion/dto/requests/stream_buffer_erase_request.py +84 -84
  312. zaber_motion/dto/requests/stream_buffer_get_content_request.py +84 -84
  313. zaber_motion/dto/requests/stream_buffer_get_content_response.py +51 -51
  314. zaber_motion/dto/requests/stream_buffer_list.py +70 -70
  315. zaber_motion/dto/requests/stream_call_request.py +112 -112
  316. zaber_motion/dto/requests/stream_cancel_all_outputs_schedule_request.py +99 -99
  317. zaber_motion/dto/requests/stream_cancel_output_schedule_request.py +103 -103
  318. zaber_motion/dto/requests/stream_circle_request.py +155 -155
  319. zaber_motion/dto/requests/stream_empty_request.py +84 -84
  320. zaber_motion/dto/requests/stream_generic_command_batch_request.py +99 -99
  321. zaber_motion/dto/requests/stream_generic_command_request.py +93 -93
  322. zaber_motion/dto/requests/stream_get_axes_response.py +75 -75
  323. zaber_motion/dto/requests/stream_get_max_centripetal_acceleration_request.py +96 -96
  324. zaber_motion/dto/requests/stream_get_max_speed_request.py +96 -96
  325. zaber_motion/dto/requests/stream_get_max_tangential_acceleration_request.py +96 -96
  326. zaber_motion/dto/requests/stream_line_request.py +135 -135
  327. zaber_motion/dto/requests/stream_mode_response.py +60 -60
  328. zaber_motion/dto/requests/stream_segment_type.py +8 -8
  329. zaber_motion/dto/requests/stream_set_all_analog_outputs_request.py +101 -101
  330. zaber_motion/dto/requests/stream_set_all_analog_outputs_schedule_request.py +140 -140
  331. zaber_motion/dto/requests/stream_set_all_digital_outputs_request.py +102 -102
  332. zaber_motion/dto/requests/stream_set_all_digital_outputs_schedule_request.py +141 -141
  333. zaber_motion/dto/requests/stream_set_analog_output_request.py +109 -109
  334. zaber_motion/dto/requests/stream_set_analog_output_schedule_request.py +143 -143
  335. zaber_motion/dto/requests/stream_set_digital_output_request.py +110 -110
  336. zaber_motion/dto/requests/stream_set_digital_output_schedule_request.py +144 -144
  337. zaber_motion/dto/requests/stream_set_hold_request.py +89 -89
  338. zaber_motion/dto/requests/stream_set_max_centripetal_acceleration_request.py +107 -107
  339. zaber_motion/dto/requests/stream_set_max_speed_request.py +107 -107
  340. zaber_motion/dto/requests/stream_set_max_tangential_acceleration_request.py +107 -107
  341. zaber_motion/dto/requests/stream_setup_live_composite_request.py +123 -123
  342. zaber_motion/dto/requests/stream_setup_live_request.py +104 -104
  343. zaber_motion/dto/requests/stream_setup_store_arbitrary_axes_request.py +126 -126
  344. zaber_motion/dto/requests/stream_setup_store_composite_request.py +151 -151
  345. zaber_motion/dto/requests/stream_setup_store_request.py +132 -132
  346. zaber_motion/dto/requests/stream_wait_analog_input_request.py +118 -118
  347. zaber_motion/dto/requests/stream_wait_digital_input_request.py +103 -103
  348. zaber_motion/dto/requests/stream_wait_request.py +107 -107
  349. zaber_motion/dto/requests/stream_wait_until_idle_request.py +89 -89
  350. zaber_motion/dto/requests/string_array_response.py +51 -51
  351. zaber_motion/dto/requests/string_response.py +45 -45
  352. zaber_motion/dto/requests/test_event.py +45 -45
  353. zaber_motion/dto/requests/test_request.py +55 -55
  354. zaber_motion/dto/requests/test_request_complex.py +57 -0
  355. zaber_motion/dto/requests/test_response.py +45 -45
  356. zaber_motion/dto/requests/test_response_long.py +51 -51
  357. zaber_motion/dto/requests/toggle_device_db_store_request.py +50 -50
  358. zaber_motion/dto/requests/tools_list_serial_ports_response.py +51 -51
  359. zaber_motion/dto/requests/translator_create_from_device_request.py +97 -97
  360. zaber_motion/dto/requests/translator_create_live_request.py +91 -91
  361. zaber_motion/dto/requests/translator_create_request.py +62 -62
  362. zaber_motion/dto/requests/translator_create_response.py +51 -51
  363. zaber_motion/dto/requests/translator_empty_request.py +51 -51
  364. zaber_motion/dto/requests/translator_flush_live_request.py +56 -56
  365. zaber_motion/dto/requests/translator_flush_response.py +51 -51
  366. zaber_motion/dto/requests/translator_get_axis_offset_request.py +81 -81
  367. zaber_motion/dto/requests/translator_get_axis_position_request.py +72 -72
  368. zaber_motion/dto/requests/translator_set_axis_position_request.py +83 -83
  369. zaber_motion/dto/requests/translator_set_feed_rate_override_request.py +62 -62
  370. zaber_motion/dto/requests/translator_set_traverse_rate_request.py +74 -74
  371. zaber_motion/dto/requests/translator_translate_request.py +60 -60
  372. zaber_motion/dto/requests/trigger_clear_action_request.py +91 -91
  373. zaber_motion/dto/requests/trigger_empty_request.py +79 -79
  374. zaber_motion/dto/requests/trigger_enable_request.py +93 -93
  375. zaber_motion/dto/requests/trigger_enabled_states.py +56 -56
  376. zaber_motion/dto/requests/trigger_fire_at_interval_request.py +102 -102
  377. zaber_motion/dto/requests/trigger_fire_when_distance_travelled_request.py +116 -116
  378. zaber_motion/dto/requests/trigger_fire_when_io_request.py +128 -128
  379. zaber_motion/dto/requests/trigger_fire_when_request.py +88 -88
  380. zaber_motion/dto/requests/trigger_fire_when_setting_request.py +137 -137
  381. zaber_motion/dto/requests/trigger_on_fire_request.py +114 -114
  382. zaber_motion/dto/requests/trigger_on_fire_set_request.py +149 -149
  383. zaber_motion/dto/requests/trigger_on_fire_set_to_setting_request.py +149 -149
  384. zaber_motion/dto/requests/trigger_set_label_request.py +88 -88
  385. zaber_motion/dto/requests/trigger_states.py +56 -56
  386. zaber_motion/dto/requests/unit_convert_unit_request.py +71 -71
  387. zaber_motion/dto/requests/unit_get_enum_request.py +45 -45
  388. zaber_motion/dto/requests/unit_get_enum_response.py +48 -48
  389. zaber_motion/dto/requests/unit_get_symbol_request.py +48 -48
  390. zaber_motion/dto/requests/unit_get_symbol_response.py +45 -45
  391. zaber_motion/dto/requests/unknown_binary_response_event_wrapper.py +82 -82
  392. zaber_motion/dto/requests/unknown_response_event_wrapper.py +82 -82
  393. zaber_motion/dto/requests/wait_to_clear_warnings_request.py +105 -105
  394. zaber_motion/dto/requests/wait_to_respond_request.py +76 -76
  395. zaber_motion/dto/requests/wdi_generic_float_request.py +119 -0
  396. zaber_motion/dto/requests/wdi_generic_request.py +136 -136
  397. zaber_motion/dto/requests/wdi_get_status_response.py +50 -50
  398. zaber_motion/dto/rotation_direction.py +13 -13
  399. zaber_motion/dto_object.py +18 -18
  400. zaber_motion/events.py +112 -112
  401. zaber_motion/exceptions/__init__.py +87 -87
  402. zaber_motion/exceptions/bad_command_exception.py +10 -10
  403. zaber_motion/exceptions/bad_data_exception.py +10 -10
  404. zaber_motion/exceptions/binary_command_failed_exception.py +27 -27
  405. zaber_motion/exceptions/command_failed_exception.py +27 -27
  406. zaber_motion/exceptions/command_preempted_exception.py +10 -10
  407. zaber_motion/exceptions/command_too_long_exception.py +27 -27
  408. zaber_motion/exceptions/connection_closed_exception.py +10 -10
  409. zaber_motion/exceptions/connection_failed_exception.py +10 -10
  410. zaber_motion/exceptions/conversion_failed_exception.py +10 -10
  411. zaber_motion/exceptions/device_address_conflict_exception.py +27 -27
  412. zaber_motion/exceptions/device_busy_exception.py +10 -10
  413. zaber_motion/exceptions/device_db_failed_exception.py +27 -27
  414. zaber_motion/exceptions/device_detection_failed_exception.py +10 -10
  415. zaber_motion/exceptions/device_failed_exception.py +11 -11
  416. zaber_motion/exceptions/device_not_identified_exception.py +10 -10
  417. zaber_motion/exceptions/driver_disabled_exception.py +10 -10
  418. zaber_motion/exceptions/g_code_execution_exception.py +27 -27
  419. zaber_motion/exceptions/g_code_syntax_exception.py +27 -27
  420. zaber_motion/exceptions/incompatible_shared_library_exception.py +11 -11
  421. zaber_motion/exceptions/internal_error_exception.py +10 -10
  422. zaber_motion/exceptions/invalid_argument_exception.py +10 -10
  423. zaber_motion/exceptions/invalid_csv_data_exception.py +10 -10
  424. zaber_motion/exceptions/invalid_data_exception.py +10 -10
  425. zaber_motion/exceptions/invalid_operation_exception.py +10 -10
  426. zaber_motion/exceptions/invalid_packet_exception.py +27 -27
  427. zaber_motion/exceptions/invalid_park_state_exception.py +10 -10
  428. zaber_motion/exceptions/invalid_request_data_exception.py +11 -11
  429. zaber_motion/exceptions/invalid_response_exception.py +27 -27
  430. zaber_motion/exceptions/io_channel_out_of_range_exception.py +10 -10
  431. zaber_motion/exceptions/io_failed_exception.py +10 -10
  432. zaber_motion/exceptions/lockstep_enabled_exception.py +10 -10
  433. zaber_motion/exceptions/lockstep_not_enabled_exception.py +10 -10
  434. zaber_motion/exceptions/motion_lib_exception.py +18 -18
  435. zaber_motion/exceptions/movement_failed_exception.py +27 -27
  436. zaber_motion/exceptions/movement_interrupted_exception.py +27 -27
  437. zaber_motion/exceptions/no_device_found_exception.py +10 -10
  438. zaber_motion/exceptions/no_value_for_key_exception.py +10 -10
  439. zaber_motion/exceptions/not_supported_exception.py +10 -10
  440. zaber_motion/exceptions/operation_failed_exception.py +27 -27
  441. zaber_motion/exceptions/os_failed_exception.py +10 -10
  442. zaber_motion/exceptions/out_of_request_ids_exception.py +10 -10
  443. zaber_motion/exceptions/pvt_discontinuity_exception.py +10 -10
  444. zaber_motion/exceptions/pvt_execution_exception.py +27 -27
  445. zaber_motion/exceptions/pvt_mode_exception.py +10 -10
  446. zaber_motion/exceptions/pvt_movement_failed_exception.py +27 -27
  447. zaber_motion/exceptions/pvt_movement_interrupted_exception.py +27 -27
  448. zaber_motion/exceptions/pvt_sequence_generation_failed_exception.py +10 -10
  449. zaber_motion/exceptions/pvt_setup_failed_exception.py +10 -10
  450. zaber_motion/exceptions/remote_mode_exception.py +11 -11
  451. zaber_motion/exceptions/request_timeout_exception.py +10 -10
  452. zaber_motion/exceptions/serial_port_busy_exception.py +10 -10
  453. zaber_motion/exceptions/set_device_state_failed_exception.py +27 -27
  454. zaber_motion/exceptions/set_peripheral_state_failed_exception.py +27 -27
  455. zaber_motion/exceptions/setting_not_found_exception.py +10 -10
  456. zaber_motion/exceptions/stream_discontinuity_exception.py +10 -10
  457. zaber_motion/exceptions/stream_execution_exception.py +27 -27
  458. zaber_motion/exceptions/stream_mode_exception.py +10 -10
  459. zaber_motion/exceptions/stream_movement_failed_exception.py +27 -27
  460. zaber_motion/exceptions/stream_movement_interrupted_exception.py +27 -27
  461. zaber_motion/exceptions/stream_setup_failed_exception.py +10 -10
  462. zaber_motion/exceptions/timeout_exception.py +10 -10
  463. zaber_motion/exceptions/transport_already_used_exception.py +10 -10
  464. zaber_motion/exceptions/unknown_request_exception.py +10 -10
  465. zaber_motion/gcode/__init__.py +11 -11
  466. zaber_motion/gcode/offline_translator.py +401 -401
  467. zaber_motion/gcode/translator.py +424 -424
  468. zaber_motion/library.py +179 -179
  469. zaber_motion/microscopy/__init__.py +14 -14
  470. zaber_motion/microscopy/autofocus.py +645 -645
  471. zaber_motion/microscopy/camera_trigger.py +108 -108
  472. zaber_motion/microscopy/filter_changer.py +167 -167
  473. zaber_motion/microscopy/illuminator.py +139 -139
  474. zaber_motion/microscopy/illuminator_channel.py +616 -616
  475. zaber_motion/microscopy/microscope.py +315 -315
  476. zaber_motion/microscopy/objective_changer.py +403 -403
  477. zaber_motion/microscopy/wdi_autofocus_provider.py +536 -396
  478. zaber_motion/product/__init__.py +7 -7
  479. zaber_motion/product/process.py +818 -818
  480. zaber_motion/product/process_controller.py +134 -134
  481. zaber_motion/serialization.py +32 -32
  482. zaber_motion/tools.py +78 -78
  483. zaber_motion/unit_table.py +86 -86
  484. zaber_motion/units.py +206 -206
  485. zaber_motion/version.py +1 -1
  486. {zaber_motion-7.12.0.dist-info → zaber_motion-7.14.0.dist-info}/LICENSE.txt +2119 -2119
  487. {zaber_motion-7.12.0.dist-info → zaber_motion-7.14.0.dist-info}/METADATA +1 -1
  488. zaber_motion-7.14.0.dist-info/RECORD +496 -0
  489. zaber_motion_bindings/zaber-motion-core-windows-amd64.dll +0 -0
  490. zaber_motion-7.12.0.dist-info/RECORD +0 -494
  491. {zaber_motion-7.12.0.dist-info → zaber_motion-7.14.0.dist-info}/WHEEL +0 -0
  492. {zaber_motion-7.12.0.dist-info → zaber_motion-7.14.0.dist-info}/top_level.txt +0 -0
@@ -1,637 +1,637 @@
1
- # pylint: disable=too-many-arguments, too-many-lines
2
-
3
- # ===== THIS FILE IS GENERATED FROM A TEMPLATE ===== #
4
- # ============== DO NOT EDIT DIRECTLY ============== #
5
- from typing import List, Optional
6
- from ..dto import requests as dto
7
- from ..call import call, call_async
8
- from .axis import Axis
9
- from ..dto.ascii.servo_tuning_paramset import ServoTuningParamset
10
- from ..dto.ascii.paramset_info import ParamsetInfo
11
- from ..dto.ascii.servo_tuning_param import ServoTuningParam
12
- from ..dto.ascii.simple_tuning import SimpleTuning
13
- from ..dto.ascii.simple_tuning_param_definition import SimpleTuningParamDefinition
14
- from ..dto.ascii.pid_tuning import PidTuning
15
- from ..units import UnitsAndLiterals, Units
16
-
17
-
18
- class ServoTuner:
19
- """
20
- Exposes the capabilities to inspect and edit an axis' servo tuning.
21
- Requires at least Firmware 6.25 or 7.00.
22
- """
23
-
24
- @property
25
- def axis(self) -> Axis:
26
- """
27
- The axis that will be tuned.
28
- """
29
- return self._axis
30
-
31
- def __init__(self, axis: Axis):
32
- """
33
- Creates instance of ServoTuner for the given axis.
34
- """
35
- self._axis: Axis = axis
36
-
37
- def get_startup_paramset(
38
- self
39
- ) -> ServoTuningParamset:
40
- """
41
- Get the paramset that this device uses by default when it starts up.
42
-
43
- Returns:
44
- The paramset used when the device restarts.
45
- """
46
- request = dto.AxisEmptyRequest(
47
- interface_id=self.axis.device.connection.interface_id,
48
- device=self.axis.device.device_address,
49
- axis=self.axis.axis_number,
50
- )
51
- response = call(
52
- "servotuning/get_startup_set",
53
- request,
54
- dto.ServoTuningParamsetResponse.from_binary)
55
- return response.paramset
56
-
57
- async def get_startup_paramset_async(
58
- self
59
- ) -> ServoTuningParamset:
60
- """
61
- Get the paramset that this device uses by default when it starts up.
62
-
63
- Returns:
64
- The paramset used when the device restarts.
65
- """
66
- request = dto.AxisEmptyRequest(
67
- interface_id=self.axis.device.connection.interface_id,
68
- device=self.axis.device.device_address,
69
- axis=self.axis.axis_number,
70
- )
71
- response = await call_async(
72
- "servotuning/get_startup_set",
73
- request,
74
- dto.ServoTuningParamsetResponse.from_binary)
75
- return response.paramset
76
-
77
- def set_startup_paramset(
78
- self,
79
- paramset: ServoTuningParamset
80
- ) -> None:
81
- """
82
- Set the paramset that this device uses by default when it starts up.
83
-
84
- Args:
85
- paramset: The paramset to use at startup.
86
- """
87
- request = dto.ServoTuningRequest(
88
- interface_id=self.axis.device.connection.interface_id,
89
- device=self.axis.device.device_address,
90
- axis=self.axis.axis_number,
91
- paramset=paramset,
92
- )
93
- call("servotuning/set_startup_set", request)
94
-
95
- async def set_startup_paramset_async(
96
- self,
97
- paramset: ServoTuningParamset
98
- ) -> None:
99
- """
100
- Set the paramset that this device uses by default when it starts up.
101
-
102
- Args:
103
- paramset: The paramset to use at startup.
104
- """
105
- request = dto.ServoTuningRequest(
106
- interface_id=self.axis.device.connection.interface_id,
107
- device=self.axis.device.device_address,
108
- axis=self.axis.axis_number,
109
- paramset=paramset,
110
- )
111
- await call_async("servotuning/set_startup_set", request)
112
-
113
- def load_paramset(
114
- self,
115
- to_paramset: ServoTuningParamset,
116
- from_paramset: ServoTuningParamset
117
- ) -> None:
118
- """
119
- Load the values from one paramset into another.
120
-
121
- Args:
122
- to_paramset: The paramset to load into.
123
- from_paramset: The paramset to load from.
124
- """
125
- request = dto.LoadParamset(
126
- interface_id=self.axis.device.connection.interface_id,
127
- device=self.axis.device.device_address,
128
- axis=self.axis.axis_number,
129
- to_paramset=to_paramset,
130
- from_paramset=from_paramset,
131
- )
132
- call("servotuning/load_paramset", request)
133
-
134
- async def load_paramset_async(
135
- self,
136
- to_paramset: ServoTuningParamset,
137
- from_paramset: ServoTuningParamset
138
- ) -> None:
139
- """
140
- Load the values from one paramset into another.
141
-
142
- Args:
143
- to_paramset: The paramset to load into.
144
- from_paramset: The paramset to load from.
145
- """
146
- request = dto.LoadParamset(
147
- interface_id=self.axis.device.connection.interface_id,
148
- device=self.axis.device.device_address,
149
- axis=self.axis.axis_number,
150
- to_paramset=to_paramset,
151
- from_paramset=from_paramset,
152
- )
153
- await call_async("servotuning/load_paramset", request)
154
-
155
- def get_tuning(
156
- self,
157
- paramset: ServoTuningParamset
158
- ) -> ParamsetInfo:
159
- """
160
- Get the full set of tuning parameters used by the firmware driving this axis.
161
-
162
- Args:
163
- paramset: The paramset to get tuning for.
164
-
165
- Returns:
166
- The raw representation of the current tuning.
167
- """
168
- request = dto.ServoTuningRequest(
169
- interface_id=self.axis.device.connection.interface_id,
170
- device=self.axis.device.device_address,
171
- axis=self.axis.axis_number,
172
- paramset=paramset,
173
- )
174
- response = call(
175
- "servotuning/get_raw",
176
- request,
177
- ParamsetInfo.from_binary)
178
- return response
179
-
180
- async def get_tuning_async(
181
- self,
182
- paramset: ServoTuningParamset
183
- ) -> ParamsetInfo:
184
- """
185
- Get the full set of tuning parameters used by the firmware driving this axis.
186
-
187
- Args:
188
- paramset: The paramset to get tuning for.
189
-
190
- Returns:
191
- The raw representation of the current tuning.
192
- """
193
- request = dto.ServoTuningRequest(
194
- interface_id=self.axis.device.connection.interface_id,
195
- device=self.axis.device.device_address,
196
- axis=self.axis.axis_number,
197
- paramset=paramset,
198
- )
199
- response = await call_async(
200
- "servotuning/get_raw",
201
- request,
202
- ParamsetInfo.from_binary)
203
- return response
204
-
205
- def set_tuning(
206
- self,
207
- paramset: ServoTuningParamset,
208
- tuning_params: List[ServoTuningParam],
209
- set_unspecified_to_default: bool = False
210
- ) -> None:
211
- """
212
- Set individual tuning parameters.
213
- Only use this method if you have a strong understanding of Zaber specific tuning parameters.
214
-
215
- Args:
216
- paramset: The paramset to set tuning of.
217
- tuning_params: The params to set.
218
- set_unspecified_to_default: If true, any tuning parameters not included in TuningParams
219
- are reset to their default values.
220
- """
221
- request = dto.SetServoTuningRequest(
222
- interface_id=self.axis.device.connection.interface_id,
223
- device=self.axis.device.device_address,
224
- axis=self.axis.axis_number,
225
- paramset=paramset,
226
- tuning_params=tuning_params,
227
- set_unspecified_to_default=set_unspecified_to_default,
228
- )
229
- call("servotuning/set_raw", request)
230
-
231
- async def set_tuning_async(
232
- self,
233
- paramset: ServoTuningParamset,
234
- tuning_params: List[ServoTuningParam],
235
- set_unspecified_to_default: bool = False
236
- ) -> None:
237
- """
238
- Set individual tuning parameters.
239
- Only use this method if you have a strong understanding of Zaber specific tuning parameters.
240
-
241
- Args:
242
- paramset: The paramset to set tuning of.
243
- tuning_params: The params to set.
244
- set_unspecified_to_default: If true, any tuning parameters not included in TuningParams
245
- are reset to their default values.
246
- """
247
- request = dto.SetServoTuningRequest(
248
- interface_id=self.axis.device.connection.interface_id,
249
- device=self.axis.device.device_address,
250
- axis=self.axis.axis_number,
251
- paramset=paramset,
252
- tuning_params=tuning_params,
253
- set_unspecified_to_default=set_unspecified_to_default,
254
- )
255
- await call_async("servotuning/set_raw", request)
256
-
257
- def set_pid_tuning(
258
- self,
259
- paramset: ServoTuningParamset,
260
- p: float,
261
- i: float,
262
- d: float,
263
- fc: float
264
- ) -> PidTuning:
265
- """
266
- Sets the tuning of a paramset using the PID method.
267
-
268
- Args:
269
- paramset: The paramset to get tuning for.
270
- p: The proportional gain. Must be in units of N/m for linear devices, and N⋅m/° for rotary devices.
271
- i: The integral gain. Must be in units of N/(m⋅s) for linear devices, and N⋅m/(°⋅s) for rotary devices.
272
- d: The derivative gain. Must be in units of N⋅s/m for linear devices, and N⋅m⋅s/° for rotary devices.
273
- fc: The cutoff frequency. Must be in units of Hz.
274
-
275
- Returns:
276
- The PID representation of the current tuning after your changes have been applied.
277
- """
278
- request = dto.SetServoTuningPIDRequest(
279
- interface_id=self.axis.device.connection.interface_id,
280
- device=self.axis.device.device_address,
281
- axis=self.axis.axis_number,
282
- paramset=paramset,
283
- p=p,
284
- i=i,
285
- d=d,
286
- fc=fc,
287
- )
288
- response = call(
289
- "servotuning/set_pid",
290
- request,
291
- PidTuning.from_binary)
292
- return response
293
-
294
- async def set_pid_tuning_async(
295
- self,
296
- paramset: ServoTuningParamset,
297
- p: float,
298
- i: float,
299
- d: float,
300
- fc: float
301
- ) -> PidTuning:
302
- """
303
- Sets the tuning of a paramset using the PID method.
304
-
305
- Args:
306
- paramset: The paramset to get tuning for.
307
- p: The proportional gain. Must be in units of N/m for linear devices, and N⋅m/° for rotary devices.
308
- i: The integral gain. Must be in units of N/(m⋅s) for linear devices, and N⋅m/(°⋅s) for rotary devices.
309
- d: The derivative gain. Must be in units of N⋅s/m for linear devices, and N⋅m⋅s/° for rotary devices.
310
- fc: The cutoff frequency. Must be in units of Hz.
311
-
312
- Returns:
313
- The PID representation of the current tuning after your changes have been applied.
314
- """
315
- request = dto.SetServoTuningPIDRequest(
316
- interface_id=self.axis.device.connection.interface_id,
317
- device=self.axis.device.device_address,
318
- axis=self.axis.axis_number,
319
- paramset=paramset,
320
- p=p,
321
- i=i,
322
- d=d,
323
- fc=fc,
324
- )
325
- response = await call_async(
326
- "servotuning/set_pid",
327
- request,
328
- PidTuning.from_binary)
329
- return response
330
-
331
- def get_pid_tuning(
332
- self,
333
- paramset: ServoTuningParamset
334
- ) -> PidTuning:
335
- """
336
- Gets the PID representation of this paramset's servo tuning.
337
-
338
- Args:
339
- paramset: The paramset to get tuning for.
340
-
341
- Returns:
342
- The PID representation of the current tuning.
343
- """
344
- request = dto.ServoTuningRequest(
345
- interface_id=self.axis.device.connection.interface_id,
346
- device=self.axis.device.device_address,
347
- axis=self.axis.axis_number,
348
- paramset=paramset,
349
- )
350
- response = call(
351
- "servotuning/get_pid",
352
- request,
353
- PidTuning.from_binary)
354
- return response
355
-
356
- async def get_pid_tuning_async(
357
- self,
358
- paramset: ServoTuningParamset
359
- ) -> PidTuning:
360
- """
361
- Gets the PID representation of this paramset's servo tuning.
362
-
363
- Args:
364
- paramset: The paramset to get tuning for.
365
-
366
- Returns:
367
- The PID representation of the current tuning.
368
- """
369
- request = dto.ServoTuningRequest(
370
- interface_id=self.axis.device.connection.interface_id,
371
- device=self.axis.device.device_address,
372
- axis=self.axis.axis_number,
373
- paramset=paramset,
374
- )
375
- response = await call_async(
376
- "servotuning/get_pid",
377
- request,
378
- PidTuning.from_binary)
379
- return response
380
-
381
- def get_simple_tuning_param_definitions(
382
- self
383
- ) -> List[SimpleTuningParamDefinition]:
384
- """
385
- Gets the parameters that are required to tune this device.
386
-
387
- Returns:
388
- The tuning parameters.
389
- """
390
- request = dto.AxisEmptyRequest(
391
- interface_id=self.axis.device.connection.interface_id,
392
- device=self.axis.device.device_address,
393
- axis=self.axis.axis_number,
394
- )
395
- response = call(
396
- "servotuning/get_simple_params_definition",
397
- request,
398
- dto.GetSimpleTuningParamDefinitionResponse.from_binary)
399
- return response.params
400
-
401
- async def get_simple_tuning_param_definitions_async(
402
- self
403
- ) -> List[SimpleTuningParamDefinition]:
404
- """
405
- Gets the parameters that are required to tune this device.
406
-
407
- Returns:
408
- The tuning parameters.
409
- """
410
- request = dto.AxisEmptyRequest(
411
- interface_id=self.axis.device.connection.interface_id,
412
- device=self.axis.device.device_address,
413
- axis=self.axis.axis_number,
414
- )
415
- response = await call_async(
416
- "servotuning/get_simple_params_definition",
417
- request,
418
- dto.GetSimpleTuningParamDefinitionResponse.from_binary)
419
- return response.params
420
-
421
- def set_simple_tuning(
422
- self,
423
- paramset: ServoTuningParamset,
424
- tuning_params: List[ServoTuningParam],
425
- load_mass: float,
426
- load_mass_units: UnitsAndLiterals = Units.NATIVE,
427
- carriage_mass: Optional[float] = None,
428
- carriage_mass_units: UnitsAndLiterals = Units.NATIVE,
429
- motor_inertia: Optional[float] = None,
430
- motor_inertia_units: UnitsAndLiterals = Units.NATIVE
431
- ) -> None:
432
- """
433
- Set the tuning of this device using the simple input method.
434
-
435
- Args:
436
- paramset: The paramset to set tuning for.
437
- tuning_params: The params used to tune this device.
438
- To get what parameters are expected, call GetSimpleTuningParamList.
439
- All values must be between 0 and 1.
440
- load_mass: The mass loaded on the stage, excluding the mass of the carriage itself.
441
- Unless specified by the LoadMassUnits parameter, this is in units of kg for linear devices,
442
- and kg⋅m² for rotary devices.
443
- load_mass_units: The units the load mass was supplied in.
444
- carriage_mass: The mass of the carriage itself. If not supplied, the product's default mass will be used.
445
- Unless specified by the CarriageMassUnits parameter, this is in units of kg for linear devices,
446
- and kg⋅m² for rotary devices.
447
- carriage_mass_units: The units the carriage mass was supplied in.
448
- motor_inertia: The inertia of the motor. Unless specified by the MotorInertiaUnits parameter,
449
- this is in units of kg⋅m².
450
- motor_inertia_units: The units the motor inertia was supplied in.
451
- """
452
- request = dto.SetSimpleTuning(
453
- interface_id=self.axis.device.connection.interface_id,
454
- device=self.axis.device.device_address,
455
- axis=self.axis.axis_number,
456
- paramset=paramset,
457
- tuning_params=tuning_params,
458
- load_mass=load_mass,
459
- load_mass_units=load_mass_units,
460
- carriage_mass=carriage_mass,
461
- carriage_mass_units=carriage_mass_units,
462
- motor_inertia=motor_inertia,
463
- motor_inertia_units=motor_inertia_units,
464
- )
465
- call("servotuning/set_simple_tuning", request)
466
-
467
- async def set_simple_tuning_async(
468
- self,
469
- paramset: ServoTuningParamset,
470
- tuning_params: List[ServoTuningParam],
471
- load_mass: float,
472
- load_mass_units: UnitsAndLiterals = Units.NATIVE,
473
- carriage_mass: Optional[float] = None,
474
- carriage_mass_units: UnitsAndLiterals = Units.NATIVE,
475
- motor_inertia: Optional[float] = None,
476
- motor_inertia_units: UnitsAndLiterals = Units.NATIVE
477
- ) -> None:
478
- """
479
- Set the tuning of this device using the simple input method.
480
-
481
- Args:
482
- paramset: The paramset to set tuning for.
483
- tuning_params: The params used to tune this device.
484
- To get what parameters are expected, call GetSimpleTuningParamList.
485
- All values must be between 0 and 1.
486
- load_mass: The mass loaded on the stage, excluding the mass of the carriage itself.
487
- Unless specified by the LoadMassUnits parameter, this is in units of kg for linear devices,
488
- and kg⋅m² for rotary devices.
489
- load_mass_units: The units the load mass was supplied in.
490
- carriage_mass: The mass of the carriage itself. If not supplied, the product's default mass will be used.
491
- Unless specified by the CarriageMassUnits parameter, this is in units of kg for linear devices,
492
- and kg⋅m² for rotary devices.
493
- carriage_mass_units: The units the carriage mass was supplied in.
494
- motor_inertia: The inertia of the motor. Unless specified by the MotorInertiaUnits parameter,
495
- this is in units of kg⋅m².
496
- motor_inertia_units: The units the motor inertia was supplied in.
497
- """
498
- request = dto.SetSimpleTuning(
499
- interface_id=self.axis.device.connection.interface_id,
500
- device=self.axis.device.device_address,
501
- axis=self.axis.axis_number,
502
- paramset=paramset,
503
- tuning_params=tuning_params,
504
- load_mass=load_mass,
505
- load_mass_units=load_mass_units,
506
- carriage_mass=carriage_mass,
507
- carriage_mass_units=carriage_mass_units,
508
- motor_inertia=motor_inertia,
509
- motor_inertia_units=motor_inertia_units,
510
- )
511
- await call_async("servotuning/set_simple_tuning", request)
512
-
513
- def get_simple_tuning(
514
- self,
515
- paramset: ServoTuningParamset
516
- ) -> SimpleTuning:
517
- """
518
- Get the simple tuning parameters for this device.
519
-
520
- Args:
521
- paramset: The paramset to get tuning for.
522
-
523
- Returns:
524
- The simple tuning parameters.
525
- """
526
- request = dto.ServoTuningRequest(
527
- interface_id=self.axis.device.connection.interface_id,
528
- device=self.axis.device.device_address,
529
- axis=self.axis.axis_number,
530
- paramset=paramset,
531
- )
532
- response = call(
533
- "servotuning/get_simple_tuning",
534
- request,
535
- SimpleTuning.from_binary)
536
- return response
537
-
538
- async def get_simple_tuning_async(
539
- self,
540
- paramset: ServoTuningParamset
541
- ) -> SimpleTuning:
542
- """
543
- Get the simple tuning parameters for this device.
544
-
545
- Args:
546
- paramset: The paramset to get tuning for.
547
-
548
- Returns:
549
- The simple tuning parameters.
550
- """
551
- request = dto.ServoTuningRequest(
552
- interface_id=self.axis.device.connection.interface_id,
553
- device=self.axis.device.device_address,
554
- axis=self.axis.axis_number,
555
- paramset=paramset,
556
- )
557
- response = await call_async(
558
- "servotuning/get_simple_tuning",
559
- request,
560
- SimpleTuning.from_binary)
561
- return response
562
-
563
- def is_using_simple_tuning(
564
- self,
565
- paramset: ServoTuningParamset,
566
- tuning_params: List[ServoTuningParam],
567
- load_mass: float,
568
- carriage_mass: Optional[float] = None
569
- ) -> bool:
570
- """
571
- Deprecated: Use GetSimpleTuning instead.
572
-
573
- Checks if the provided simple tuning is being stored by this paramset.
574
-
575
- Args:
576
- paramset: The paramset to set tuning for.
577
- tuning_params: The params used to tune this device.
578
- To get what parameters are expected, call GetSimpleTuningParamList.
579
- All values must be between 0 and 1.
580
- load_mass: The mass loaded on the stage (excluding the mass of the carriage itself) in kg.
581
- carriage_mass: The mass of the carriage in kg. If this value is not set the default carriage mass is used.
582
-
583
- Returns:
584
- True if the provided simple tuning is currently stored in this paramset.
585
- """
586
- request = dto.SetSimpleTuning(
587
- interface_id=self.axis.device.connection.interface_id,
588
- device=self.axis.device.device_address,
589
- axis=self.axis.axis_number,
590
- paramset=paramset,
591
- tuning_params=tuning_params,
592
- load_mass=load_mass,
593
- carriage_mass=carriage_mass,
594
- )
595
- response = call(
596
- "servotuning/is_using_simple_tuning",
597
- request,
598
- dto.BoolResponse.from_binary)
599
- return response.value
600
-
601
- async def is_using_simple_tuning_async(
602
- self,
603
- paramset: ServoTuningParamset,
604
- tuning_params: List[ServoTuningParam],
605
- load_mass: float,
606
- carriage_mass: Optional[float] = None
607
- ) -> bool:
608
- """
609
- Deprecated: Use GetSimpleTuning instead.
610
-
611
- Checks if the provided simple tuning is being stored by this paramset.
612
-
613
- Args:
614
- paramset: The paramset to set tuning for.
615
- tuning_params: The params used to tune this device.
616
- To get what parameters are expected, call GetSimpleTuningParamList.
617
- All values must be between 0 and 1.
618
- load_mass: The mass loaded on the stage (excluding the mass of the carriage itself) in kg.
619
- carriage_mass: The mass of the carriage in kg. If this value is not set the default carriage mass is used.
620
-
621
- Returns:
622
- True if the provided simple tuning is currently stored in this paramset.
623
- """
624
- request = dto.SetSimpleTuning(
625
- interface_id=self.axis.device.connection.interface_id,
626
- device=self.axis.device.device_address,
627
- axis=self.axis.axis_number,
628
- paramset=paramset,
629
- tuning_params=tuning_params,
630
- load_mass=load_mass,
631
- carriage_mass=carriage_mass,
632
- )
633
- response = await call_async(
634
- "servotuning/is_using_simple_tuning",
635
- request,
636
- dto.BoolResponse.from_binary)
637
- return response.value
1
+ # pylint: disable=too-many-arguments, too-many-lines
2
+
3
+ # ===== THIS FILE IS GENERATED FROM A TEMPLATE ===== #
4
+ # ============== DO NOT EDIT DIRECTLY ============== #
5
+ from typing import List, Optional
6
+ from ..dto import requests as dto
7
+ from ..call import call, call_async
8
+ from .axis import Axis
9
+ from ..dto.ascii.servo_tuning_paramset import ServoTuningParamset
10
+ from ..dto.ascii.paramset_info import ParamsetInfo
11
+ from ..dto.ascii.servo_tuning_param import ServoTuningParam
12
+ from ..dto.ascii.simple_tuning import SimpleTuning
13
+ from ..dto.ascii.simple_tuning_param_definition import SimpleTuningParamDefinition
14
+ from ..dto.ascii.pid_tuning import PidTuning
15
+ from ..units import UnitsAndLiterals, Units
16
+
17
+
18
+ class ServoTuner:
19
+ """
20
+ Exposes the capabilities to inspect and edit an axis' servo tuning.
21
+ Requires at least Firmware 6.25 or 7.00.
22
+ """
23
+
24
+ @property
25
+ def axis(self) -> Axis:
26
+ """
27
+ The axis that will be tuned.
28
+ """
29
+ return self._axis
30
+
31
+ def __init__(self, axis: Axis):
32
+ """
33
+ Creates instance of ServoTuner for the given axis.
34
+ """
35
+ self._axis: Axis = axis
36
+
37
+ def get_startup_paramset(
38
+ self
39
+ ) -> ServoTuningParamset:
40
+ """
41
+ Get the paramset that this device uses by default when it starts up.
42
+
43
+ Returns:
44
+ The paramset used when the device restarts.
45
+ """
46
+ request = dto.AxisEmptyRequest(
47
+ interface_id=self.axis.device.connection.interface_id,
48
+ device=self.axis.device.device_address,
49
+ axis=self.axis.axis_number,
50
+ )
51
+ response = call(
52
+ "servotuning/get_startup_set",
53
+ request,
54
+ dto.ServoTuningParamsetResponse.from_binary)
55
+ return response.paramset
56
+
57
+ async def get_startup_paramset_async(
58
+ self
59
+ ) -> ServoTuningParamset:
60
+ """
61
+ Get the paramset that this device uses by default when it starts up.
62
+
63
+ Returns:
64
+ The paramset used when the device restarts.
65
+ """
66
+ request = dto.AxisEmptyRequest(
67
+ interface_id=self.axis.device.connection.interface_id,
68
+ device=self.axis.device.device_address,
69
+ axis=self.axis.axis_number,
70
+ )
71
+ response = await call_async(
72
+ "servotuning/get_startup_set",
73
+ request,
74
+ dto.ServoTuningParamsetResponse.from_binary)
75
+ return response.paramset
76
+
77
+ def set_startup_paramset(
78
+ self,
79
+ paramset: ServoTuningParamset
80
+ ) -> None:
81
+ """
82
+ Set the paramset that this device uses by default when it starts up.
83
+
84
+ Args:
85
+ paramset: The paramset to use at startup.
86
+ """
87
+ request = dto.ServoTuningRequest(
88
+ interface_id=self.axis.device.connection.interface_id,
89
+ device=self.axis.device.device_address,
90
+ axis=self.axis.axis_number,
91
+ paramset=paramset,
92
+ )
93
+ call("servotuning/set_startup_set", request)
94
+
95
+ async def set_startup_paramset_async(
96
+ self,
97
+ paramset: ServoTuningParamset
98
+ ) -> None:
99
+ """
100
+ Set the paramset that this device uses by default when it starts up.
101
+
102
+ Args:
103
+ paramset: The paramset to use at startup.
104
+ """
105
+ request = dto.ServoTuningRequest(
106
+ interface_id=self.axis.device.connection.interface_id,
107
+ device=self.axis.device.device_address,
108
+ axis=self.axis.axis_number,
109
+ paramset=paramset,
110
+ )
111
+ await call_async("servotuning/set_startup_set", request)
112
+
113
+ def load_paramset(
114
+ self,
115
+ to_paramset: ServoTuningParamset,
116
+ from_paramset: ServoTuningParamset
117
+ ) -> None:
118
+ """
119
+ Load the values from one paramset into another.
120
+
121
+ Args:
122
+ to_paramset: The paramset to load into.
123
+ from_paramset: The paramset to load from.
124
+ """
125
+ request = dto.LoadParamset(
126
+ interface_id=self.axis.device.connection.interface_id,
127
+ device=self.axis.device.device_address,
128
+ axis=self.axis.axis_number,
129
+ to_paramset=to_paramset,
130
+ from_paramset=from_paramset,
131
+ )
132
+ call("servotuning/load_paramset", request)
133
+
134
+ async def load_paramset_async(
135
+ self,
136
+ to_paramset: ServoTuningParamset,
137
+ from_paramset: ServoTuningParamset
138
+ ) -> None:
139
+ """
140
+ Load the values from one paramset into another.
141
+
142
+ Args:
143
+ to_paramset: The paramset to load into.
144
+ from_paramset: The paramset to load from.
145
+ """
146
+ request = dto.LoadParamset(
147
+ interface_id=self.axis.device.connection.interface_id,
148
+ device=self.axis.device.device_address,
149
+ axis=self.axis.axis_number,
150
+ to_paramset=to_paramset,
151
+ from_paramset=from_paramset,
152
+ )
153
+ await call_async("servotuning/load_paramset", request)
154
+
155
+ def get_tuning(
156
+ self,
157
+ paramset: ServoTuningParamset
158
+ ) -> ParamsetInfo:
159
+ """
160
+ Get the full set of tuning parameters used by the firmware driving this axis.
161
+
162
+ Args:
163
+ paramset: The paramset to get tuning for.
164
+
165
+ Returns:
166
+ The raw representation of the current tuning.
167
+ """
168
+ request = dto.ServoTuningRequest(
169
+ interface_id=self.axis.device.connection.interface_id,
170
+ device=self.axis.device.device_address,
171
+ axis=self.axis.axis_number,
172
+ paramset=paramset,
173
+ )
174
+ response = call(
175
+ "servotuning/get_raw",
176
+ request,
177
+ ParamsetInfo.from_binary)
178
+ return response
179
+
180
+ async def get_tuning_async(
181
+ self,
182
+ paramset: ServoTuningParamset
183
+ ) -> ParamsetInfo:
184
+ """
185
+ Get the full set of tuning parameters used by the firmware driving this axis.
186
+
187
+ Args:
188
+ paramset: The paramset to get tuning for.
189
+
190
+ Returns:
191
+ The raw representation of the current tuning.
192
+ """
193
+ request = dto.ServoTuningRequest(
194
+ interface_id=self.axis.device.connection.interface_id,
195
+ device=self.axis.device.device_address,
196
+ axis=self.axis.axis_number,
197
+ paramset=paramset,
198
+ )
199
+ response = await call_async(
200
+ "servotuning/get_raw",
201
+ request,
202
+ ParamsetInfo.from_binary)
203
+ return response
204
+
205
+ def set_tuning(
206
+ self,
207
+ paramset: ServoTuningParamset,
208
+ tuning_params: List[ServoTuningParam],
209
+ set_unspecified_to_default: bool = False
210
+ ) -> None:
211
+ """
212
+ Set individual tuning parameters.
213
+ Only use this method if you have a strong understanding of Zaber specific tuning parameters.
214
+
215
+ Args:
216
+ paramset: The paramset to set tuning of.
217
+ tuning_params: The params to set.
218
+ set_unspecified_to_default: If true, any tuning parameters not included in TuningParams
219
+ are reset to their default values.
220
+ """
221
+ request = dto.SetServoTuningRequest(
222
+ interface_id=self.axis.device.connection.interface_id,
223
+ device=self.axis.device.device_address,
224
+ axis=self.axis.axis_number,
225
+ paramset=paramset,
226
+ tuning_params=tuning_params,
227
+ set_unspecified_to_default=set_unspecified_to_default,
228
+ )
229
+ call("servotuning/set_raw", request)
230
+
231
+ async def set_tuning_async(
232
+ self,
233
+ paramset: ServoTuningParamset,
234
+ tuning_params: List[ServoTuningParam],
235
+ set_unspecified_to_default: bool = False
236
+ ) -> None:
237
+ """
238
+ Set individual tuning parameters.
239
+ Only use this method if you have a strong understanding of Zaber specific tuning parameters.
240
+
241
+ Args:
242
+ paramset: The paramset to set tuning of.
243
+ tuning_params: The params to set.
244
+ set_unspecified_to_default: If true, any tuning parameters not included in TuningParams
245
+ are reset to their default values.
246
+ """
247
+ request = dto.SetServoTuningRequest(
248
+ interface_id=self.axis.device.connection.interface_id,
249
+ device=self.axis.device.device_address,
250
+ axis=self.axis.axis_number,
251
+ paramset=paramset,
252
+ tuning_params=tuning_params,
253
+ set_unspecified_to_default=set_unspecified_to_default,
254
+ )
255
+ await call_async("servotuning/set_raw", request)
256
+
257
+ def set_pid_tuning(
258
+ self,
259
+ paramset: ServoTuningParamset,
260
+ p: float,
261
+ i: float,
262
+ d: float,
263
+ fc: float
264
+ ) -> PidTuning:
265
+ """
266
+ Sets the tuning of a paramset using the PID method.
267
+
268
+ Args:
269
+ paramset: The paramset to get tuning for.
270
+ p: The proportional gain. Must be in units of N/m for linear devices, and N⋅m/° for rotary devices.
271
+ i: The integral gain. Must be in units of N/(m⋅s) for linear devices, and N⋅m/(°⋅s) for rotary devices.
272
+ d: The derivative gain. Must be in units of N⋅s/m for linear devices, and N⋅m⋅s/° for rotary devices.
273
+ fc: The cutoff frequency. Must be in units of Hz.
274
+
275
+ Returns:
276
+ The PID representation of the current tuning after your changes have been applied.
277
+ """
278
+ request = dto.SetServoTuningPIDRequest(
279
+ interface_id=self.axis.device.connection.interface_id,
280
+ device=self.axis.device.device_address,
281
+ axis=self.axis.axis_number,
282
+ paramset=paramset,
283
+ p=p,
284
+ i=i,
285
+ d=d,
286
+ fc=fc,
287
+ )
288
+ response = call(
289
+ "servotuning/set_pid",
290
+ request,
291
+ PidTuning.from_binary)
292
+ return response
293
+
294
+ async def set_pid_tuning_async(
295
+ self,
296
+ paramset: ServoTuningParamset,
297
+ p: float,
298
+ i: float,
299
+ d: float,
300
+ fc: float
301
+ ) -> PidTuning:
302
+ """
303
+ Sets the tuning of a paramset using the PID method.
304
+
305
+ Args:
306
+ paramset: The paramset to get tuning for.
307
+ p: The proportional gain. Must be in units of N/m for linear devices, and N⋅m/° for rotary devices.
308
+ i: The integral gain. Must be in units of N/(m⋅s) for linear devices, and N⋅m/(°⋅s) for rotary devices.
309
+ d: The derivative gain. Must be in units of N⋅s/m for linear devices, and N⋅m⋅s/° for rotary devices.
310
+ fc: The cutoff frequency. Must be in units of Hz.
311
+
312
+ Returns:
313
+ The PID representation of the current tuning after your changes have been applied.
314
+ """
315
+ request = dto.SetServoTuningPIDRequest(
316
+ interface_id=self.axis.device.connection.interface_id,
317
+ device=self.axis.device.device_address,
318
+ axis=self.axis.axis_number,
319
+ paramset=paramset,
320
+ p=p,
321
+ i=i,
322
+ d=d,
323
+ fc=fc,
324
+ )
325
+ response = await call_async(
326
+ "servotuning/set_pid",
327
+ request,
328
+ PidTuning.from_binary)
329
+ return response
330
+
331
+ def get_pid_tuning(
332
+ self,
333
+ paramset: ServoTuningParamset
334
+ ) -> PidTuning:
335
+ """
336
+ Gets the PID representation of this paramset's servo tuning.
337
+
338
+ Args:
339
+ paramset: The paramset to get tuning for.
340
+
341
+ Returns:
342
+ The PID representation of the current tuning.
343
+ """
344
+ request = dto.ServoTuningRequest(
345
+ interface_id=self.axis.device.connection.interface_id,
346
+ device=self.axis.device.device_address,
347
+ axis=self.axis.axis_number,
348
+ paramset=paramset,
349
+ )
350
+ response = call(
351
+ "servotuning/get_pid",
352
+ request,
353
+ PidTuning.from_binary)
354
+ return response
355
+
356
+ async def get_pid_tuning_async(
357
+ self,
358
+ paramset: ServoTuningParamset
359
+ ) -> PidTuning:
360
+ """
361
+ Gets the PID representation of this paramset's servo tuning.
362
+
363
+ Args:
364
+ paramset: The paramset to get tuning for.
365
+
366
+ Returns:
367
+ The PID representation of the current tuning.
368
+ """
369
+ request = dto.ServoTuningRequest(
370
+ interface_id=self.axis.device.connection.interface_id,
371
+ device=self.axis.device.device_address,
372
+ axis=self.axis.axis_number,
373
+ paramset=paramset,
374
+ )
375
+ response = await call_async(
376
+ "servotuning/get_pid",
377
+ request,
378
+ PidTuning.from_binary)
379
+ return response
380
+
381
+ def get_simple_tuning_param_definitions(
382
+ self
383
+ ) -> List[SimpleTuningParamDefinition]:
384
+ """
385
+ Gets the parameters that are required to tune this device.
386
+
387
+ Returns:
388
+ The tuning parameters.
389
+ """
390
+ request = dto.AxisEmptyRequest(
391
+ interface_id=self.axis.device.connection.interface_id,
392
+ device=self.axis.device.device_address,
393
+ axis=self.axis.axis_number,
394
+ )
395
+ response = call(
396
+ "servotuning/get_simple_params_definition",
397
+ request,
398
+ dto.GetSimpleTuningParamDefinitionResponse.from_binary)
399
+ return response.params
400
+
401
+ async def get_simple_tuning_param_definitions_async(
402
+ self
403
+ ) -> List[SimpleTuningParamDefinition]:
404
+ """
405
+ Gets the parameters that are required to tune this device.
406
+
407
+ Returns:
408
+ The tuning parameters.
409
+ """
410
+ request = dto.AxisEmptyRequest(
411
+ interface_id=self.axis.device.connection.interface_id,
412
+ device=self.axis.device.device_address,
413
+ axis=self.axis.axis_number,
414
+ )
415
+ response = await call_async(
416
+ "servotuning/get_simple_params_definition",
417
+ request,
418
+ dto.GetSimpleTuningParamDefinitionResponse.from_binary)
419
+ return response.params
420
+
421
+ def set_simple_tuning(
422
+ self,
423
+ paramset: ServoTuningParamset,
424
+ tuning_params: List[ServoTuningParam],
425
+ load_mass: float,
426
+ load_mass_units: UnitsAndLiterals = Units.NATIVE,
427
+ carriage_mass: Optional[float] = None,
428
+ carriage_mass_units: UnitsAndLiterals = Units.NATIVE,
429
+ motor_inertia: Optional[float] = None,
430
+ motor_inertia_units: UnitsAndLiterals = Units.NATIVE
431
+ ) -> None:
432
+ """
433
+ Set the tuning of this device using the simple input method.
434
+
435
+ Args:
436
+ paramset: The paramset to set tuning for.
437
+ tuning_params: The params used to tune this device.
438
+ To get what parameters are expected, call GetSimpleTuningParamList.
439
+ All values must be between 0 and 1.
440
+ load_mass: The mass loaded on the stage, excluding the mass of the carriage itself.
441
+ Unless specified by the LoadMassUnits parameter, this is in units of kg for linear devices,
442
+ and kg⋅m² for rotary devices.
443
+ load_mass_units: The units the load mass was supplied in.
444
+ carriage_mass: The mass of the carriage itself. If not supplied, the product's default mass will be used.
445
+ Unless specified by the CarriageMassUnits parameter, this is in units of kg for linear devices,
446
+ and kg⋅m² for rotary devices.
447
+ carriage_mass_units: The units the carriage mass was supplied in.
448
+ motor_inertia: The inertia of the motor. Unless specified by the MotorInertiaUnits parameter,
449
+ this is in units of kg⋅m².
450
+ motor_inertia_units: The units the motor inertia was supplied in.
451
+ """
452
+ request = dto.SetSimpleTuning(
453
+ interface_id=self.axis.device.connection.interface_id,
454
+ device=self.axis.device.device_address,
455
+ axis=self.axis.axis_number,
456
+ paramset=paramset,
457
+ tuning_params=tuning_params,
458
+ load_mass=load_mass,
459
+ load_mass_units=load_mass_units,
460
+ carriage_mass=carriage_mass,
461
+ carriage_mass_units=carriage_mass_units,
462
+ motor_inertia=motor_inertia,
463
+ motor_inertia_units=motor_inertia_units,
464
+ )
465
+ call("servotuning/set_simple_tuning", request)
466
+
467
+ async def set_simple_tuning_async(
468
+ self,
469
+ paramset: ServoTuningParamset,
470
+ tuning_params: List[ServoTuningParam],
471
+ load_mass: float,
472
+ load_mass_units: UnitsAndLiterals = Units.NATIVE,
473
+ carriage_mass: Optional[float] = None,
474
+ carriage_mass_units: UnitsAndLiterals = Units.NATIVE,
475
+ motor_inertia: Optional[float] = None,
476
+ motor_inertia_units: UnitsAndLiterals = Units.NATIVE
477
+ ) -> None:
478
+ """
479
+ Set the tuning of this device using the simple input method.
480
+
481
+ Args:
482
+ paramset: The paramset to set tuning for.
483
+ tuning_params: The params used to tune this device.
484
+ To get what parameters are expected, call GetSimpleTuningParamList.
485
+ All values must be between 0 and 1.
486
+ load_mass: The mass loaded on the stage, excluding the mass of the carriage itself.
487
+ Unless specified by the LoadMassUnits parameter, this is in units of kg for linear devices,
488
+ and kg⋅m² for rotary devices.
489
+ load_mass_units: The units the load mass was supplied in.
490
+ carriage_mass: The mass of the carriage itself. If not supplied, the product's default mass will be used.
491
+ Unless specified by the CarriageMassUnits parameter, this is in units of kg for linear devices,
492
+ and kg⋅m² for rotary devices.
493
+ carriage_mass_units: The units the carriage mass was supplied in.
494
+ motor_inertia: The inertia of the motor. Unless specified by the MotorInertiaUnits parameter,
495
+ this is in units of kg⋅m².
496
+ motor_inertia_units: The units the motor inertia was supplied in.
497
+ """
498
+ request = dto.SetSimpleTuning(
499
+ interface_id=self.axis.device.connection.interface_id,
500
+ device=self.axis.device.device_address,
501
+ axis=self.axis.axis_number,
502
+ paramset=paramset,
503
+ tuning_params=tuning_params,
504
+ load_mass=load_mass,
505
+ load_mass_units=load_mass_units,
506
+ carriage_mass=carriage_mass,
507
+ carriage_mass_units=carriage_mass_units,
508
+ motor_inertia=motor_inertia,
509
+ motor_inertia_units=motor_inertia_units,
510
+ )
511
+ await call_async("servotuning/set_simple_tuning", request)
512
+
513
+ def get_simple_tuning(
514
+ self,
515
+ paramset: ServoTuningParamset
516
+ ) -> SimpleTuning:
517
+ """
518
+ Get the simple tuning parameters for this device.
519
+
520
+ Args:
521
+ paramset: The paramset to get tuning for.
522
+
523
+ Returns:
524
+ The simple tuning parameters.
525
+ """
526
+ request = dto.ServoTuningRequest(
527
+ interface_id=self.axis.device.connection.interface_id,
528
+ device=self.axis.device.device_address,
529
+ axis=self.axis.axis_number,
530
+ paramset=paramset,
531
+ )
532
+ response = call(
533
+ "servotuning/get_simple_tuning",
534
+ request,
535
+ SimpleTuning.from_binary)
536
+ return response
537
+
538
+ async def get_simple_tuning_async(
539
+ self,
540
+ paramset: ServoTuningParamset
541
+ ) -> SimpleTuning:
542
+ """
543
+ Get the simple tuning parameters for this device.
544
+
545
+ Args:
546
+ paramset: The paramset to get tuning for.
547
+
548
+ Returns:
549
+ The simple tuning parameters.
550
+ """
551
+ request = dto.ServoTuningRequest(
552
+ interface_id=self.axis.device.connection.interface_id,
553
+ device=self.axis.device.device_address,
554
+ axis=self.axis.axis_number,
555
+ paramset=paramset,
556
+ )
557
+ response = await call_async(
558
+ "servotuning/get_simple_tuning",
559
+ request,
560
+ SimpleTuning.from_binary)
561
+ return response
562
+
563
+ def is_using_simple_tuning(
564
+ self,
565
+ paramset: ServoTuningParamset,
566
+ tuning_params: List[ServoTuningParam],
567
+ load_mass: float,
568
+ carriage_mass: Optional[float] = None
569
+ ) -> bool:
570
+ """
571
+ Deprecated: Use GetSimpleTuning instead.
572
+
573
+ Checks if the provided simple tuning is being stored by this paramset.
574
+
575
+ Args:
576
+ paramset: The paramset to set tuning for.
577
+ tuning_params: The params used to tune this device.
578
+ To get what parameters are expected, call GetSimpleTuningParamList.
579
+ All values must be between 0 and 1.
580
+ load_mass: The mass loaded on the stage (excluding the mass of the carriage itself) in kg.
581
+ carriage_mass: The mass of the carriage in kg. If this value is not set the default carriage mass is used.
582
+
583
+ Returns:
584
+ True if the provided simple tuning is currently stored in this paramset.
585
+ """
586
+ request = dto.SetSimpleTuning(
587
+ interface_id=self.axis.device.connection.interface_id,
588
+ device=self.axis.device.device_address,
589
+ axis=self.axis.axis_number,
590
+ paramset=paramset,
591
+ tuning_params=tuning_params,
592
+ load_mass=load_mass,
593
+ carriage_mass=carriage_mass,
594
+ )
595
+ response = call(
596
+ "servotuning/is_using_simple_tuning",
597
+ request,
598
+ dto.BoolResponse.from_binary)
599
+ return response.value
600
+
601
+ async def is_using_simple_tuning_async(
602
+ self,
603
+ paramset: ServoTuningParamset,
604
+ tuning_params: List[ServoTuningParam],
605
+ load_mass: float,
606
+ carriage_mass: Optional[float] = None
607
+ ) -> bool:
608
+ """
609
+ Deprecated: Use GetSimpleTuning instead.
610
+
611
+ Checks if the provided simple tuning is being stored by this paramset.
612
+
613
+ Args:
614
+ paramset: The paramset to set tuning for.
615
+ tuning_params: The params used to tune this device.
616
+ To get what parameters are expected, call GetSimpleTuningParamList.
617
+ All values must be between 0 and 1.
618
+ load_mass: The mass loaded on the stage (excluding the mass of the carriage itself) in kg.
619
+ carriage_mass: The mass of the carriage in kg. If this value is not set the default carriage mass is used.
620
+
621
+ Returns:
622
+ True if the provided simple tuning is currently stored in this paramset.
623
+ """
624
+ request = dto.SetSimpleTuning(
625
+ interface_id=self.axis.device.connection.interface_id,
626
+ device=self.axis.device.device_address,
627
+ axis=self.axis.axis_number,
628
+ paramset=paramset,
629
+ tuning_params=tuning_params,
630
+ load_mass=load_mass,
631
+ carriage_mass=carriage_mass,
632
+ )
633
+ response = await call_async(
634
+ "servotuning/is_using_simple_tuning",
635
+ request,
636
+ dto.BoolResponse.from_binary)
637
+ return response.value