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

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