@zaber/motion 7.15.0 → 8.0.0

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 (91) hide show
  1. package/LICENSE +504 -7
  2. package/dist/binding/wasm/zaber-motion-core.wasm +0 -0
  3. package/dist/lib/ascii/axis.d.ts +10 -0
  4. package/dist/lib/ascii/axis.d.ts.map +1 -1
  5. package/dist/lib/ascii/axis.js +22 -0
  6. package/dist/lib/ascii/axis.js.map +1 -1
  7. package/dist/lib/ascii/axis_settings.d.ts +8 -0
  8. package/dist/lib/ascii/axis_settings.d.ts.map +1 -1
  9. package/dist/lib/ascii/axis_settings.js +21 -0
  10. package/dist/lib/ascii/axis_settings.js.map +1 -1
  11. package/dist/lib/ascii/device.d.ts +10 -0
  12. package/dist/lib/ascii/device.d.ts.map +1 -1
  13. package/dist/lib/ascii/device.js +21 -0
  14. package/dist/lib/ascii/device.js.map +1 -1
  15. package/dist/lib/ascii/device_settings.d.ts +8 -0
  16. package/dist/lib/ascii/device_settings.d.ts.map +1 -1
  17. package/dist/lib/ascii/device_settings.js +20 -0
  18. package/dist/lib/ascii/device_settings.js.map +1 -1
  19. package/dist/lib/ascii/index.d.ts +0 -1
  20. package/dist/lib/ascii/index.d.ts.map +1 -1
  21. package/dist/lib/ascii/index.js +0 -1
  22. package/dist/lib/ascii/index.js.map +1 -1
  23. package/dist/lib/ascii/lockstep.d.ts +0 -8
  24. package/dist/lib/ascii/lockstep.d.ts.map +1 -1
  25. package/dist/lib/ascii/lockstep.js +0 -20
  26. package/dist/lib/ascii/lockstep.js.map +1 -1
  27. package/dist/lib/ascii/pvt_sequence.d.ts +0 -31
  28. package/dist/lib/ascii/pvt_sequence.d.ts.map +1 -1
  29. package/dist/lib/ascii/pvt_sequence.js +0 -84
  30. package/dist/lib/ascii/pvt_sequence.js.map +1 -1
  31. package/dist/lib/ascii/response.d.ts +4 -1
  32. package/dist/lib/ascii/response.d.ts.map +1 -1
  33. package/dist/lib/ascii/response.js.map +1 -1
  34. package/dist/lib/ascii/servo_tuner.d.ts +11 -30
  35. package/dist/lib/ascii/servo_tuner.d.ts.map +1 -1
  36. package/dist/lib/ascii/servo_tuner.js +12 -42
  37. package/dist/lib/ascii/servo_tuner.js.map +1 -1
  38. package/dist/lib/ascii/simple_tuning.d.ts +5 -4
  39. package/dist/lib/ascii/simple_tuning.d.ts.map +1 -1
  40. package/dist/lib/ascii/simple_tuning.js +6 -6
  41. package/dist/lib/ascii/simple_tuning.js.map +1 -1
  42. package/dist/lib/ascii/stream.d.ts +0 -50
  43. package/dist/lib/ascii/stream.d.ts.map +1 -1
  44. package/dist/lib/ascii/stream.js +0 -126
  45. package/dist/lib/ascii/stream.js.map +1 -1
  46. package/dist/lib/ascii/unknown_response_event.d.ts +4 -1
  47. package/dist/lib/ascii/unknown_response_event.d.ts.map +1 -1
  48. package/dist/lib/ascii/unknown_response_event.js.map +1 -1
  49. package/dist/lib/binary/connection.d.ts +17 -2
  50. package/dist/lib/binary/connection.d.ts.map +1 -1
  51. package/dist/lib/binary/connection.js +14 -3
  52. package/dist/lib/binary/connection.js.map +1 -1
  53. package/dist/lib/index.d.ts +1 -0
  54. package/dist/lib/index.d.ts.map +1 -1
  55. package/dist/lib/index.js +1 -0
  56. package/dist/lib/index.js.map +1 -1
  57. package/dist/lib/library.js +1 -1
  58. package/dist/lib/library.js.map +1 -1
  59. package/dist/lib/microscopy/objective_changer.d.ts +0 -23
  60. package/dist/lib/microscopy/objective_changer.d.ts.map +1 -1
  61. package/dist/lib/microscopy/objective_changer.js +0 -27
  62. package/dist/lib/microscopy/objective_changer.js.map +1 -1
  63. package/dist/lib/requests/get_command_unit_conversion_response.d.ts +13 -0
  64. package/dist/lib/requests/get_command_unit_conversion_response.d.ts.map +1 -0
  65. package/dist/lib/requests/get_command_unit_conversion_response.js +28 -0
  66. package/dist/lib/requests/get_command_unit_conversion_response.js.map +1 -0
  67. package/dist/lib/requests/index.d.ts +2 -0
  68. package/dist/lib/requests/index.d.ts.map +1 -1
  69. package/dist/lib/requests/index.js +2 -0
  70. package/dist/lib/requests/index.js.map +1 -1
  71. package/dist/lib/requests/set_simple_tuning.d.ts +4 -4
  72. package/dist/lib/requests/set_simple_tuning.d.ts.map +1 -1
  73. package/dist/lib/requests/set_simple_tuning.js +12 -12
  74. package/dist/lib/requests/set_simple_tuning.js.map +1 -1
  75. package/dist/lib/requests/unit_convert_native_request.d.ts +17 -0
  76. package/dist/lib/requests/unit_convert_native_request.d.ts.map +1 -0
  77. package/dist/lib/requests/unit_convert_native_request.js +39 -0
  78. package/dist/lib/requests/unit_convert_native_request.js.map +1 -0
  79. package/dist/lib/unit_conversion_descriptor.d.ts +30 -0
  80. package/dist/lib/unit_conversion_descriptor.d.ts.map +1 -0
  81. package/dist/lib/unit_conversion_descriptor.js +37 -0
  82. package/dist/lib/unit_conversion_descriptor.js.map +1 -0
  83. package/dist/lib/unit_table.d.ts +33 -0
  84. package/dist/lib/unit_table.d.ts.map +1 -1
  85. package/dist/lib/unit_table.js +80 -0
  86. package/dist/lib/unit_table.js.map +1 -1
  87. package/package.json +1 -1
  88. package/dist/lib/ascii/lockstep_axes.d.ts +0 -30
  89. package/dist/lib/ascii/lockstep_axes.d.ts.map +0 -1
  90. package/dist/lib/ascii/lockstep_axes.js +0 -37
  91. package/dist/lib/ascii/lockstep_axes.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"lockstep.js","sourceRoot":"","sources":["../../../src/ascii/lockstep.ts"],"names":[],"mappings":"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","sourcesContent":["// ==== THIS FILE IS GENERATED FROM A TEMPLATE ==== //\n// ============= DO NOT EDIT DIRECTLY ============= //\n\nimport { Device } from './device';\nimport { Angle, Length, Native, AngularVelocity, Velocity, Acceleration, AngularAcceleration, Units, Time } from '../units';\nimport * as gateway from '../gateway';\nimport * as requests from '../requests';\nimport { LockstepAxes } from './lockstep_axes';\n\n/**\n * Represents a lockstep group with this ID on a device.\n * A lockstep group is a movement synchronized pair of axes on a device.\n * Requires at least Firmware 6.15 or 7.11.\n */\nexport class Lockstep {\n /**\n * Device that controls this lockstep group.\n */\n public get device(): Device {\n return this._device;\n }\n private _device: Device;\n\n /**\n * The number that identifies the lockstep group on the device.\n */\n public get lockstepGroupId(): number {\n return this._lockstepGroupId;\n }\n private _lockstepGroupId: number;\n\n constructor(device: Device, lockstepGroupId: number) {\n this._device = device;\n this._lockstepGroupId = lockstepGroupId;\n }\n\n /**\n * Activate the lockstep group on the axes specified.\n * @param axes The numbers of axes in the lockstep group.\n */\n public async enable(\n ...axes: number[]\n ): Promise<void> {\n const request: requests.LockstepEnableRequest & gateway.Message = {\n ...requests.LockstepEnableRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n axes: axes,\n toBinary() {\n return requests.LockstepEnableRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_enable', request);\n }\n\n /**\n * Disable the lockstep group.\n */\n public async disable(): Promise<void> {\n const request: requests.LockstepDisableRequest & gateway.Message = {\n ...requests.LockstepDisableRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepDisableRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_disable', request);\n }\n\n /**\n * Stops ongoing lockstep group movement. Decelerates until zero speed.\n * @param [options.waitUntilIdle=true] Determines whether function should return after the movement is finished or just started.\n */\n public async stop(\n options: Lockstep.StopOptions = {}\n ): Promise<void> {\n const {\n waitUntilIdle = true,\n } = options;\n const request: requests.LockstepStopRequest & gateway.Message = {\n ...requests.LockstepStopRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n waitUntilIdle: waitUntilIdle,\n toBinary() {\n return requests.LockstepStopRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_stop', request);\n }\n\n /**\n * Retracts the axes of the lockstep group until a home associated with an individual axis is detected.\n * @param [options.waitUntilIdle=true] Determines whether function should return after the movement is finished or just started.\n */\n public async home(\n options: Lockstep.HomeOptions = {}\n ): Promise<void> {\n const {\n waitUntilIdle = true,\n } = options;\n const request: requests.LockstepHomeRequest & gateway.Message = {\n ...requests.LockstepHomeRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n waitUntilIdle: waitUntilIdle,\n toBinary() {\n return requests.LockstepHomeRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_home', request);\n }\n\n /**\n * Move the first axis of the lockstep group to an absolute position.\n * The other axes in the lockstep group maintain their offsets throughout movement.\n * @param position Absolute position.\n * @param [unit=Units.NATIVE] Units of position.\n * @param [options.waitUntilIdle=true] Determines whether function should return after the movement is finished or just started.\n * @param [options.velocity=0] Movement velocity.\n * Default value of 0 indicates that the maxspeed setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.velocityUnit=Units.NATIVE] Units of velocity.\n * @param [options.acceleration=0] Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.accelerationUnit=Units.NATIVE] Units of acceleration.\n */\n public async moveAbsolute(\n position: number,\n unit: Length | Angle | Native = Units.NATIVE,\n options: Lockstep.MoveAbsoluteOptions = {}\n ): Promise<void> {\n const {\n waitUntilIdle = true,\n velocity = 0,\n velocityUnit = Units.NATIVE,\n acceleration = 0,\n accelerationUnit = Units.NATIVE,\n } = options;\n const request: requests.LockstepMoveRequest & gateway.Message = {\n ...requests.LockstepMoveRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n type: requests.AxisMoveType.ABS,\n arg: position,\n unit: unit,\n waitUntilIdle: waitUntilIdle,\n velocity: velocity,\n velocityUnit: velocityUnit,\n acceleration: acceleration,\n accelerationUnit: accelerationUnit,\n toBinary() {\n return requests.LockstepMoveRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_move', request);\n }\n\n /**\n * Move the first axis of the lockstep group to a position relative to its current position.\n * The other axes in the lockstep group maintain their offsets throughout movement.\n * @param position Relative position.\n * @param [unit=Units.NATIVE] Units of position.\n * @param [options.waitUntilIdle=true] Determines whether function should return after the movement is finished or just started.\n * @param [options.velocity=0] Movement velocity.\n * Default value of 0 indicates that the maxspeed setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.velocityUnit=Units.NATIVE] Units of velocity.\n * @param [options.acceleration=0] Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.accelerationUnit=Units.NATIVE] Units of acceleration.\n */\n public async moveRelative(\n position: number,\n unit: Length | Angle | Native = Units.NATIVE,\n options: Lockstep.MoveRelativeOptions = {}\n ): Promise<void> {\n const {\n waitUntilIdle = true,\n velocity = 0,\n velocityUnit = Units.NATIVE,\n acceleration = 0,\n accelerationUnit = Units.NATIVE,\n } = options;\n const request: requests.LockstepMoveRequest & gateway.Message = {\n ...requests.LockstepMoveRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n type: requests.AxisMoveType.REL,\n arg: position,\n unit: unit,\n waitUntilIdle: waitUntilIdle,\n velocity: velocity,\n velocityUnit: velocityUnit,\n acceleration: acceleration,\n accelerationUnit: accelerationUnit,\n toBinary() {\n return requests.LockstepMoveRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_move', request);\n }\n\n /**\n * Moves the first axis of the lockstep group at the specified speed.\n * The other axes in the lockstep group maintain their offsets throughout movement.\n * @param velocity Movement velocity.\n * @param [unit=Units.NATIVE] Units of velocity.\n * @param [options.acceleration=0] Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.accelerationUnit=Units.NATIVE] Units of acceleration.\n */\n public async moveVelocity(\n velocity: number,\n unit: Velocity | AngularVelocity | Native = Units.NATIVE,\n options: Lockstep.MoveVelocityOptions = {}\n ): Promise<void> {\n const {\n acceleration = 0,\n accelerationUnit = Units.NATIVE,\n } = options;\n const request: requests.LockstepMoveRequest & gateway.Message = {\n ...requests.LockstepMoveRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n type: requests.AxisMoveType.VEL,\n arg: velocity,\n unit: unit,\n acceleration: acceleration,\n accelerationUnit: accelerationUnit,\n toBinary() {\n return requests.LockstepMoveRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_move', request);\n }\n\n /**\n * Moves the first axis of the lockstep group in a sinusoidal trajectory.\n * The other axes in the lockstep group maintain their offsets throughout movement.\n * @param amplitude Amplitude of the sinusoidal motion (half of the motion's peak-to-peak range).\n * @param amplitudeUnits Units of position.\n * @param period Period of the sinusoidal motion in milliseconds.\n * @param periodUnits Units of time.\n * @param [options.count=0] Number of sinusoidal cycles to complete.\n * Must be a multiple of 0.5\n * If count is not specified or set to 0, the axis will move indefinitely.\n * @param [options.waitUntilIdle=true] Determines whether function should return after the movement is finished or just started.\n */\n public async moveSin(\n amplitude: number,\n amplitudeUnits: Length | Angle | Native,\n period: number,\n periodUnits: Time | Native,\n options: Lockstep.MoveSinOptions = {}\n ): Promise<void> {\n const {\n count = 0,\n waitUntilIdle = true,\n } = options;\n const request: requests.LockstepMoveSinRequest & gateway.Message = {\n ...requests.LockstepMoveSinRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n amplitude: amplitude,\n amplitudeUnits: amplitudeUnits,\n period: period,\n periodUnits: periodUnits,\n count: count,\n waitUntilIdle: waitUntilIdle,\n toBinary() {\n return requests.LockstepMoveSinRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_move_sin', request);\n }\n\n /**\n * Stops the lockstep group at the end of the sinusoidal trajectory for the first axis.\n * If the sinusoidal motion was started with an integer-plus-half cycle count,\n * the motion ends at the half-way point of the sinusoidal trajectory.\n * @param [options.waitUntilIdle=true] Determines whether function should return after the movement is finished.\n */\n public async moveSinStop(\n options: Lockstep.MoveSinStopOptions = {}\n ): Promise<void> {\n const {\n waitUntilIdle = true,\n } = options;\n const request: requests.LockstepStopRequest & gateway.Message = {\n ...requests.LockstepStopRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n waitUntilIdle: waitUntilIdle,\n toBinary() {\n return requests.LockstepStopRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_move_sin_stop', request);\n }\n\n /**\n * Moves the axes to the maximum valid position.\n * The axes in the lockstep group maintain their offsets throughout movement.\n * Respects lim.max for all axes in the group.\n * @param [options.waitUntilIdle=true] Determines whether function should return after the movement is finished or just started.\n * @param [options.velocity=0] Movement velocity.\n * Default value of 0 indicates that the maxspeed setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.velocityUnit=Units.NATIVE] Units of velocity.\n * @param [options.acceleration=0] Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.accelerationUnit=Units.NATIVE] Units of acceleration.\n */\n public async moveMax(\n options: Lockstep.MoveMaxOptions = {}\n ): Promise<void> {\n const {\n waitUntilIdle = true,\n velocity = 0,\n velocityUnit = Units.NATIVE,\n acceleration = 0,\n accelerationUnit = Units.NATIVE,\n } = options;\n const request: requests.LockstepMoveRequest & gateway.Message = {\n ...requests.LockstepMoveRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n type: requests.AxisMoveType.MAX,\n waitUntilIdle: waitUntilIdle,\n velocity: velocity,\n velocityUnit: velocityUnit,\n acceleration: acceleration,\n accelerationUnit: accelerationUnit,\n toBinary() {\n return requests.LockstepMoveRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_move', request);\n }\n\n /**\n * Moves the axes to the minimum valid position.\n * The axes in the lockstep group maintain their offsets throughout movement.\n * Respects lim.min for all axes in the group.\n * @param [options.waitUntilIdle=true] Determines whether function should return after the movement is finished or just started.\n * @param [options.velocity=0] Movement velocity.\n * Default value of 0 indicates that the maxspeed setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.velocityUnit=Units.NATIVE] Units of velocity.\n * @param [options.acceleration=0] Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.accelerationUnit=Units.NATIVE] Units of acceleration.\n */\n public async moveMin(\n options: Lockstep.MoveMinOptions = {}\n ): Promise<void> {\n const {\n waitUntilIdle = true,\n velocity = 0,\n velocityUnit = Units.NATIVE,\n acceleration = 0,\n accelerationUnit = Units.NATIVE,\n } = options;\n const request: requests.LockstepMoveRequest & gateway.Message = {\n ...requests.LockstepMoveRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n type: requests.AxisMoveType.MIN,\n waitUntilIdle: waitUntilIdle,\n velocity: velocity,\n velocityUnit: velocityUnit,\n acceleration: acceleration,\n accelerationUnit: accelerationUnit,\n toBinary() {\n return requests.LockstepMoveRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_move', request);\n }\n\n /**\n * Waits until the lockstep group stops moving.\n * @param [options.throwErrorOnFault=true] Determines whether to throw error when fault is observed.\n */\n public async waitUntilIdle(\n options: Lockstep.WaitUntilIdleOptions = {}\n ): Promise<void> {\n const {\n throwErrorOnFault = true,\n } = options;\n const request: requests.LockstepWaitUntilIdleRequest & gateway.Message = {\n ...requests.LockstepWaitUntilIdleRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n throwErrorOnFault: throwErrorOnFault,\n toBinary() {\n return requests.LockstepWaitUntilIdleRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_wait_until_idle', request);\n }\n\n /**\n * Returns bool indicating whether the lockstep group is executing a motion command.\n * @returns True if the axes are currently executing a motion command.\n */\n public async isBusy(): Promise<boolean> {\n const request: requests.LockstepEmptyRequest & gateway.Message = {\n ...requests.LockstepEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepEmptyRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.BoolResponse>(\n 'device/lockstep_is_busy',\n request,\n requests.BoolResponse.fromBinary);\n return response.value;\n }\n\n /**\n * @deprecated Use GetAxisNumbers instead.\n *\n * Gets the axes of the lockstep group.\n * @returns LockstepAxes instance which contains the axes numbers of the lockstep group.\n */\n public async getAxes(): Promise<LockstepAxes> {\n const request: requests.LockstepEmptyRequest & gateway.Message = {\n ...requests.LockstepEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepEmptyRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<LockstepAxes>(\n 'device/lockstep_get_axes',\n request,\n LockstepAxes.fromBinary);\n return response;\n }\n\n /**\n * Gets the axis numbers of the lockstep group.\n * @returns Axis numbers in order specified when enabling lockstep.\n */\n public async getAxisNumbers(): Promise<number[]> {\n const request: requests.LockstepEmptyRequest & gateway.Message = {\n ...requests.LockstepEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepEmptyRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.LockstepGetAxisNumbersResponse>(\n 'device/lockstep_get_axis_numbers',\n request,\n requests.LockstepGetAxisNumbersResponse.fromBinary);\n return response.axes;\n }\n\n /**\n * Gets the initial offsets of secondary axes of an enabled lockstep group.\n * @param [unit=Units.NATIVE] Units of position.\n * Uses primary axis unit conversion.\n * @returns Initial offset for each axis of the lockstep group.\n */\n public async getOffsets(\n unit: Length | Angle | Native = Units.NATIVE\n ): Promise<number[]> {\n const request: requests.LockstepGetRequest & gateway.Message = {\n ...requests.LockstepGetRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n unit: unit,\n toBinary() {\n return requests.LockstepGetRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.DoubleArrayResponse>(\n 'device/lockstep_get_offsets',\n request,\n requests.DoubleArrayResponse.fromBinary);\n return response.values;\n }\n\n /**\n * Gets the twists of secondary axes of an enabled lockstep group.\n * @param [unit=Units.NATIVE] Units of position.\n * Uses primary axis unit conversion.\n * @returns Difference between the initial offset and the actual offset for each axis of the lockstep group.\n */\n public async getTwists(\n unit: Length | Angle | Native = Units.NATIVE\n ): Promise<number[]> {\n const request: requests.LockstepGetRequest & gateway.Message = {\n ...requests.LockstepGetRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n unit: unit,\n toBinary() {\n return requests.LockstepGetRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.DoubleArrayResponse>(\n 'device/lockstep_get_twists',\n request,\n requests.DoubleArrayResponse.fromBinary);\n return response.values;\n }\n\n /**\n * Returns current position of the primary axis.\n * @param [unit=Units.NATIVE] Units of the position.\n * @returns Primary axis position.\n */\n public async getPosition(\n unit: Length | Angle | Native = Units.NATIVE\n ): Promise<number> {\n const request: requests.LockstepGetRequest & gateway.Message = {\n ...requests.LockstepGetRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n unit: unit,\n toBinary() {\n return requests.LockstepGetRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.DoubleResponse>(\n 'device/lockstep_get_pos',\n request,\n requests.DoubleResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Sets lockstep twist tolerance.\n * Twist tolerances that do not match the system configuration can reduce performance or damage the system.\n * @param tolerance Twist tolerance.\n * @param [unit=Units.NATIVE] Units of the tolerance.\n * Uses primary axis unit conversion when setting to all axes,\n * otherwise uses specified secondary axis unit conversion.\n * @param [options.axisIndex=0] Optional index of a secondary axis to set the tolerance for.\n * If left empty or set to 0, the tolerance is set to all the secondary axes.\n */\n public async setTolerance(\n tolerance: number,\n unit: Length | Angle | Native = Units.NATIVE,\n options: Lockstep.SetToleranceOptions = {}\n ): Promise<void> {\n const {\n axisIndex = 0,\n } = options;\n const request: requests.LockstepSetRequest & gateway.Message = {\n ...requests.LockstepSetRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n value: tolerance,\n unit: unit,\n axisIndex: axisIndex,\n toBinary() {\n return requests.LockstepSetRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_set_tolerance', request);\n }\n\n /**\n * Checks if the lockstep group is currently enabled on the device.\n * @returns True if a lockstep group with this ID is enabled on the device.\n */\n public async isEnabled(): Promise<boolean> {\n const request: requests.LockstepEmptyRequest & gateway.Message = {\n ...requests.LockstepEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepEmptyRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.BoolResponse>(\n 'device/lockstep_is_enabled',\n request,\n requests.BoolResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Returns a string which represents the enabled lockstep group.\n * @returns String which represents the enabled lockstep group.\n */\n public toString(): string {\n const request: requests.LockstepEmptyRequest & gateway.Message = {\n ...requests.LockstepEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepEmptyRequest.toBinary(this);\n },\n };\n\n const response = gateway.callSync<requests.StringResponse>(\n 'device/lockstep_to_string',\n request,\n requests.StringResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Parks lockstep group in anticipation of turning the power off.\n * It can later be powered on, unparked, and moved without first having to home it.\n */\n public async park(): Promise<void> {\n const request: requests.LockstepEmptyRequest & gateway.Message = {\n ...requests.LockstepEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepEmptyRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_park', request);\n }\n\n /**\n * Unparks lockstep group. Lockstep group will now be able to move.\n */\n public async unpark(): Promise<void> {\n const request: requests.LockstepEmptyRequest & gateway.Message = {\n ...requests.LockstepEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepEmptyRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_unpark', request);\n }\n\n /**\n * Returns bool indicating whether the axis is parked or not.\n * @returns True if lockstep group is parked.\n */\n public async isParked(): Promise<boolean> {\n const request: requests.LockstepEmptyRequest & gateway.Message = {\n ...requests.LockstepEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepEmptyRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.BoolResponse>(\n 'device/lockstep_is_parked',\n request,\n requests.BoolResponse.fromBinary);\n return response.value;\n }\n}\n\nnamespace Lockstep {\n export interface StopOptions {\n /**\n * Determines whether function should return after the movement is finished or just started.\n */\n waitUntilIdle?: boolean;\n }\n export interface HomeOptions {\n /**\n * Determines whether function should return after the movement is finished or just started.\n */\n waitUntilIdle?: boolean;\n }\n export interface MoveAbsoluteOptions {\n /**\n * Determines whether function should return after the movement is finished or just started.\n */\n waitUntilIdle?: boolean;\n /**\n * Movement velocity.\n * Default value of 0 indicates that the maxspeed setting is used instead.\n * Requires at least Firmware 7.25.\n */\n velocity?: number;\n /**\n * Units of velocity.\n */\n velocityUnit?: Velocity | AngularVelocity | Native;\n /**\n * Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n */\n acceleration?: number;\n /**\n * Units of acceleration.\n */\n accelerationUnit?: Acceleration | AngularAcceleration | Native;\n }\n export interface MoveRelativeOptions {\n /**\n * Determines whether function should return after the movement is finished or just started.\n */\n waitUntilIdle?: boolean;\n /**\n * Movement velocity.\n * Default value of 0 indicates that the maxspeed setting is used instead.\n * Requires at least Firmware 7.25.\n */\n velocity?: number;\n /**\n * Units of velocity.\n */\n velocityUnit?: Velocity | AngularVelocity | Native;\n /**\n * Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n */\n acceleration?: number;\n /**\n * Units of acceleration.\n */\n accelerationUnit?: Acceleration | AngularAcceleration | Native;\n }\n export interface MoveVelocityOptions {\n /**\n * Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n */\n acceleration?: number;\n /**\n * Units of acceleration.\n */\n accelerationUnit?: Acceleration | AngularAcceleration | Native;\n }\n export interface MoveSinOptions {\n /**\n * Number of sinusoidal cycles to complete.\n * Must be a multiple of 0.5\n * If count is not specified or set to 0, the axis will move indefinitely.\n */\n count?: number;\n /**\n * Determines whether function should return after the movement is finished or just started.\n */\n waitUntilIdle?: boolean;\n }\n export interface MoveSinStopOptions {\n /**\n * Determines whether function should return after the movement is finished.\n */\n waitUntilIdle?: boolean;\n }\n export interface MoveMaxOptions {\n /**\n * Determines whether function should return after the movement is finished or just started.\n */\n waitUntilIdle?: boolean;\n /**\n * Movement velocity.\n * Default value of 0 indicates that the maxspeed setting is used instead.\n * Requires at least Firmware 7.25.\n */\n velocity?: number;\n /**\n * Units of velocity.\n */\n velocityUnit?: Velocity | AngularVelocity | Native;\n /**\n * Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n */\n acceleration?: number;\n /**\n * Units of acceleration.\n */\n accelerationUnit?: Acceleration | AngularAcceleration | Native;\n }\n export interface MoveMinOptions {\n /**\n * Determines whether function should return after the movement is finished or just started.\n */\n waitUntilIdle?: boolean;\n /**\n * Movement velocity.\n * Default value of 0 indicates that the maxspeed setting is used instead.\n * Requires at least Firmware 7.25.\n */\n velocity?: number;\n /**\n * Units of velocity.\n */\n velocityUnit?: Velocity | AngularVelocity | Native;\n /**\n * Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n */\n acceleration?: number;\n /**\n * Units of acceleration.\n */\n accelerationUnit?: Acceleration | AngularAcceleration | Native;\n }\n export interface WaitUntilIdleOptions {\n /**\n * Determines whether to throw error when fault is observed.\n */\n throwErrorOnFault?: boolean;\n }\n export interface SetToleranceOptions {\n /**\n * Optional index of a secondary axis to set the tolerance for.\n * If left empty or set to 0, the tolerance is set to all the secondary axes.\n */\n axisIndex?: number;\n }\n}\n"]}
1
+ {"version":3,"file":"lockstep.js","sourceRoot":"","sources":["../../../src/ascii/lockstep.ts"],"names":[],"mappings":"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","sourcesContent":["// ==== THIS FILE IS GENERATED FROM A TEMPLATE ==== //\n// ============= DO NOT EDIT DIRECTLY ============= //\n\nimport { Device } from './device';\nimport { Angle, Length, Native, AngularVelocity, Velocity, Acceleration, AngularAcceleration, Units, Time } from '../units';\nimport * as gateway from '../gateway';\nimport * as requests from '../requests';\n\n/**\n * Represents a lockstep group with this ID on a device.\n * A lockstep group is a movement synchronized pair of axes on a device.\n * Requires at least Firmware 6.15 or 7.11.\n */\nexport class Lockstep {\n /**\n * Device that controls this lockstep group.\n */\n public get device(): Device {\n return this._device;\n }\n private _device: Device;\n\n /**\n * The number that identifies the lockstep group on the device.\n */\n public get lockstepGroupId(): number {\n return this._lockstepGroupId;\n }\n private _lockstepGroupId: number;\n\n constructor(device: Device, lockstepGroupId: number) {\n this._device = device;\n this._lockstepGroupId = lockstepGroupId;\n }\n\n /**\n * Activate the lockstep group on the axes specified.\n * @param axes The numbers of axes in the lockstep group.\n */\n public async enable(\n ...axes: number[]\n ): Promise<void> {\n const request: requests.LockstepEnableRequest & gateway.Message = {\n ...requests.LockstepEnableRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n axes: axes,\n toBinary() {\n return requests.LockstepEnableRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_enable', request);\n }\n\n /**\n * Disable the lockstep group.\n */\n public async disable(): Promise<void> {\n const request: requests.LockstepDisableRequest & gateway.Message = {\n ...requests.LockstepDisableRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepDisableRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_disable', request);\n }\n\n /**\n * Stops ongoing lockstep group movement. Decelerates until zero speed.\n * @param [options.waitUntilIdle=true] Determines whether function should return after the movement is finished or just started.\n */\n public async stop(\n options: Lockstep.StopOptions = {}\n ): Promise<void> {\n const {\n waitUntilIdle = true,\n } = options;\n const request: requests.LockstepStopRequest & gateway.Message = {\n ...requests.LockstepStopRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n waitUntilIdle: waitUntilIdle,\n toBinary() {\n return requests.LockstepStopRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_stop', request);\n }\n\n /**\n * Retracts the axes of the lockstep group until a home associated with an individual axis is detected.\n * @param [options.waitUntilIdle=true] Determines whether function should return after the movement is finished or just started.\n */\n public async home(\n options: Lockstep.HomeOptions = {}\n ): Promise<void> {\n const {\n waitUntilIdle = true,\n } = options;\n const request: requests.LockstepHomeRequest & gateway.Message = {\n ...requests.LockstepHomeRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n waitUntilIdle: waitUntilIdle,\n toBinary() {\n return requests.LockstepHomeRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_home', request);\n }\n\n /**\n * Move the first axis of the lockstep group to an absolute position.\n * The other axes in the lockstep group maintain their offsets throughout movement.\n * @param position Absolute position.\n * @param [unit=Units.NATIVE] Units of position.\n * @param [options.waitUntilIdle=true] Determines whether function should return after the movement is finished or just started.\n * @param [options.velocity=0] Movement velocity.\n * Default value of 0 indicates that the maxspeed setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.velocityUnit=Units.NATIVE] Units of velocity.\n * @param [options.acceleration=0] Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.accelerationUnit=Units.NATIVE] Units of acceleration.\n */\n public async moveAbsolute(\n position: number,\n unit: Length | Angle | Native = Units.NATIVE,\n options: Lockstep.MoveAbsoluteOptions = {}\n ): Promise<void> {\n const {\n waitUntilIdle = true,\n velocity = 0,\n velocityUnit = Units.NATIVE,\n acceleration = 0,\n accelerationUnit = Units.NATIVE,\n } = options;\n const request: requests.LockstepMoveRequest & gateway.Message = {\n ...requests.LockstepMoveRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n type: requests.AxisMoveType.ABS,\n arg: position,\n unit: unit,\n waitUntilIdle: waitUntilIdle,\n velocity: velocity,\n velocityUnit: velocityUnit,\n acceleration: acceleration,\n accelerationUnit: accelerationUnit,\n toBinary() {\n return requests.LockstepMoveRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_move', request);\n }\n\n /**\n * Move the first axis of the lockstep group to a position relative to its current position.\n * The other axes in the lockstep group maintain their offsets throughout movement.\n * @param position Relative position.\n * @param [unit=Units.NATIVE] Units of position.\n * @param [options.waitUntilIdle=true] Determines whether function should return after the movement is finished or just started.\n * @param [options.velocity=0] Movement velocity.\n * Default value of 0 indicates that the maxspeed setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.velocityUnit=Units.NATIVE] Units of velocity.\n * @param [options.acceleration=0] Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.accelerationUnit=Units.NATIVE] Units of acceleration.\n */\n public async moveRelative(\n position: number,\n unit: Length | Angle | Native = Units.NATIVE,\n options: Lockstep.MoveRelativeOptions = {}\n ): Promise<void> {\n const {\n waitUntilIdle = true,\n velocity = 0,\n velocityUnit = Units.NATIVE,\n acceleration = 0,\n accelerationUnit = Units.NATIVE,\n } = options;\n const request: requests.LockstepMoveRequest & gateway.Message = {\n ...requests.LockstepMoveRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n type: requests.AxisMoveType.REL,\n arg: position,\n unit: unit,\n waitUntilIdle: waitUntilIdle,\n velocity: velocity,\n velocityUnit: velocityUnit,\n acceleration: acceleration,\n accelerationUnit: accelerationUnit,\n toBinary() {\n return requests.LockstepMoveRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_move', request);\n }\n\n /**\n * Moves the first axis of the lockstep group at the specified speed.\n * The other axes in the lockstep group maintain their offsets throughout movement.\n * @param velocity Movement velocity.\n * @param [unit=Units.NATIVE] Units of velocity.\n * @param [options.acceleration=0] Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.accelerationUnit=Units.NATIVE] Units of acceleration.\n */\n public async moveVelocity(\n velocity: number,\n unit: Velocity | AngularVelocity | Native = Units.NATIVE,\n options: Lockstep.MoveVelocityOptions = {}\n ): Promise<void> {\n const {\n acceleration = 0,\n accelerationUnit = Units.NATIVE,\n } = options;\n const request: requests.LockstepMoveRequest & gateway.Message = {\n ...requests.LockstepMoveRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n type: requests.AxisMoveType.VEL,\n arg: velocity,\n unit: unit,\n acceleration: acceleration,\n accelerationUnit: accelerationUnit,\n toBinary() {\n return requests.LockstepMoveRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_move', request);\n }\n\n /**\n * Moves the first axis of the lockstep group in a sinusoidal trajectory.\n * The other axes in the lockstep group maintain their offsets throughout movement.\n * @param amplitude Amplitude of the sinusoidal motion (half of the motion's peak-to-peak range).\n * @param amplitudeUnits Units of position.\n * @param period Period of the sinusoidal motion in milliseconds.\n * @param periodUnits Units of time.\n * @param [options.count=0] Number of sinusoidal cycles to complete.\n * Must be a multiple of 0.5\n * If count is not specified or set to 0, the axis will move indefinitely.\n * @param [options.waitUntilIdle=true] Determines whether function should return after the movement is finished or just started.\n */\n public async moveSin(\n amplitude: number,\n amplitudeUnits: Length | Angle | Native,\n period: number,\n periodUnits: Time | Native,\n options: Lockstep.MoveSinOptions = {}\n ): Promise<void> {\n const {\n count = 0,\n waitUntilIdle = true,\n } = options;\n const request: requests.LockstepMoveSinRequest & gateway.Message = {\n ...requests.LockstepMoveSinRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n amplitude: amplitude,\n amplitudeUnits: amplitudeUnits,\n period: period,\n periodUnits: periodUnits,\n count: count,\n waitUntilIdle: waitUntilIdle,\n toBinary() {\n return requests.LockstepMoveSinRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_move_sin', request);\n }\n\n /**\n * Stops the lockstep group at the end of the sinusoidal trajectory for the first axis.\n * If the sinusoidal motion was started with an integer-plus-half cycle count,\n * the motion ends at the half-way point of the sinusoidal trajectory.\n * @param [options.waitUntilIdle=true] Determines whether function should return after the movement is finished.\n */\n public async moveSinStop(\n options: Lockstep.MoveSinStopOptions = {}\n ): Promise<void> {\n const {\n waitUntilIdle = true,\n } = options;\n const request: requests.LockstepStopRequest & gateway.Message = {\n ...requests.LockstepStopRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n waitUntilIdle: waitUntilIdle,\n toBinary() {\n return requests.LockstepStopRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_move_sin_stop', request);\n }\n\n /**\n * Moves the axes to the maximum valid position.\n * The axes in the lockstep group maintain their offsets throughout movement.\n * Respects lim.max for all axes in the group.\n * @param [options.waitUntilIdle=true] Determines whether function should return after the movement is finished or just started.\n * @param [options.velocity=0] Movement velocity.\n * Default value of 0 indicates that the maxspeed setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.velocityUnit=Units.NATIVE] Units of velocity.\n * @param [options.acceleration=0] Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.accelerationUnit=Units.NATIVE] Units of acceleration.\n */\n public async moveMax(\n options: Lockstep.MoveMaxOptions = {}\n ): Promise<void> {\n const {\n waitUntilIdle = true,\n velocity = 0,\n velocityUnit = Units.NATIVE,\n acceleration = 0,\n accelerationUnit = Units.NATIVE,\n } = options;\n const request: requests.LockstepMoveRequest & gateway.Message = {\n ...requests.LockstepMoveRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n type: requests.AxisMoveType.MAX,\n waitUntilIdle: waitUntilIdle,\n velocity: velocity,\n velocityUnit: velocityUnit,\n acceleration: acceleration,\n accelerationUnit: accelerationUnit,\n toBinary() {\n return requests.LockstepMoveRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_move', request);\n }\n\n /**\n * Moves the axes to the minimum valid position.\n * The axes in the lockstep group maintain their offsets throughout movement.\n * Respects lim.min for all axes in the group.\n * @param [options.waitUntilIdle=true] Determines whether function should return after the movement is finished or just started.\n * @param [options.velocity=0] Movement velocity.\n * Default value of 0 indicates that the maxspeed setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.velocityUnit=Units.NATIVE] Units of velocity.\n * @param [options.acceleration=0] Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n * @param [options.accelerationUnit=Units.NATIVE] Units of acceleration.\n */\n public async moveMin(\n options: Lockstep.MoveMinOptions = {}\n ): Promise<void> {\n const {\n waitUntilIdle = true,\n velocity = 0,\n velocityUnit = Units.NATIVE,\n acceleration = 0,\n accelerationUnit = Units.NATIVE,\n } = options;\n const request: requests.LockstepMoveRequest & gateway.Message = {\n ...requests.LockstepMoveRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n type: requests.AxisMoveType.MIN,\n waitUntilIdle: waitUntilIdle,\n velocity: velocity,\n velocityUnit: velocityUnit,\n acceleration: acceleration,\n accelerationUnit: accelerationUnit,\n toBinary() {\n return requests.LockstepMoveRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_move', request);\n }\n\n /**\n * Waits until the lockstep group stops moving.\n * @param [options.throwErrorOnFault=true] Determines whether to throw error when fault is observed.\n */\n public async waitUntilIdle(\n options: Lockstep.WaitUntilIdleOptions = {}\n ): Promise<void> {\n const {\n throwErrorOnFault = true,\n } = options;\n const request: requests.LockstepWaitUntilIdleRequest & gateway.Message = {\n ...requests.LockstepWaitUntilIdleRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n throwErrorOnFault: throwErrorOnFault,\n toBinary() {\n return requests.LockstepWaitUntilIdleRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_wait_until_idle', request);\n }\n\n /**\n * Returns bool indicating whether the lockstep group is executing a motion command.\n * @returns True if the axes are currently executing a motion command.\n */\n public async isBusy(): Promise<boolean> {\n const request: requests.LockstepEmptyRequest & gateway.Message = {\n ...requests.LockstepEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepEmptyRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.BoolResponse>(\n 'device/lockstep_is_busy',\n request,\n requests.BoolResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Gets the axis numbers of the lockstep group.\n * @returns Axis numbers in order specified when enabling lockstep.\n */\n public async getAxisNumbers(): Promise<number[]> {\n const request: requests.LockstepEmptyRequest & gateway.Message = {\n ...requests.LockstepEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepEmptyRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.LockstepGetAxisNumbersResponse>(\n 'device/lockstep_get_axis_numbers',\n request,\n requests.LockstepGetAxisNumbersResponse.fromBinary);\n return response.axes;\n }\n\n /**\n * Gets the initial offsets of secondary axes of an enabled lockstep group.\n * @param [unit=Units.NATIVE] Units of position.\n * Uses primary axis unit conversion.\n * @returns Initial offset for each axis of the lockstep group.\n */\n public async getOffsets(\n unit: Length | Angle | Native = Units.NATIVE\n ): Promise<number[]> {\n const request: requests.LockstepGetRequest & gateway.Message = {\n ...requests.LockstepGetRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n unit: unit,\n toBinary() {\n return requests.LockstepGetRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.DoubleArrayResponse>(\n 'device/lockstep_get_offsets',\n request,\n requests.DoubleArrayResponse.fromBinary);\n return response.values;\n }\n\n /**\n * Gets the twists of secondary axes of an enabled lockstep group.\n * @param [unit=Units.NATIVE] Units of position.\n * Uses primary axis unit conversion.\n * @returns Difference between the initial offset and the actual offset for each axis of the lockstep group.\n */\n public async getTwists(\n unit: Length | Angle | Native = Units.NATIVE\n ): Promise<number[]> {\n const request: requests.LockstepGetRequest & gateway.Message = {\n ...requests.LockstepGetRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n unit: unit,\n toBinary() {\n return requests.LockstepGetRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.DoubleArrayResponse>(\n 'device/lockstep_get_twists',\n request,\n requests.DoubleArrayResponse.fromBinary);\n return response.values;\n }\n\n /**\n * Returns current position of the primary axis.\n * @param [unit=Units.NATIVE] Units of the position.\n * @returns Primary axis position.\n */\n public async getPosition(\n unit: Length | Angle | Native = Units.NATIVE\n ): Promise<number> {\n const request: requests.LockstepGetRequest & gateway.Message = {\n ...requests.LockstepGetRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n unit: unit,\n toBinary() {\n return requests.LockstepGetRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.DoubleResponse>(\n 'device/lockstep_get_pos',\n request,\n requests.DoubleResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Sets lockstep twist tolerance.\n * Twist tolerances that do not match the system configuration can reduce performance or damage the system.\n * @param tolerance Twist tolerance.\n * @param [unit=Units.NATIVE] Units of the tolerance.\n * Uses primary axis unit conversion when setting to all axes,\n * otherwise uses specified secondary axis unit conversion.\n * @param [options.axisIndex=0] Optional index of a secondary axis to set the tolerance for.\n * If left empty or set to 0, the tolerance is set to all the secondary axes.\n */\n public async setTolerance(\n tolerance: number,\n unit: Length | Angle | Native = Units.NATIVE,\n options: Lockstep.SetToleranceOptions = {}\n ): Promise<void> {\n const {\n axisIndex = 0,\n } = options;\n const request: requests.LockstepSetRequest & gateway.Message = {\n ...requests.LockstepSetRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n value: tolerance,\n unit: unit,\n axisIndex: axisIndex,\n toBinary() {\n return requests.LockstepSetRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_set_tolerance', request);\n }\n\n /**\n * Checks if the lockstep group is currently enabled on the device.\n * @returns True if a lockstep group with this ID is enabled on the device.\n */\n public async isEnabled(): Promise<boolean> {\n const request: requests.LockstepEmptyRequest & gateway.Message = {\n ...requests.LockstepEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepEmptyRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.BoolResponse>(\n 'device/lockstep_is_enabled',\n request,\n requests.BoolResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Returns a string which represents the enabled lockstep group.\n * @returns String which represents the enabled lockstep group.\n */\n public toString(): string {\n const request: requests.LockstepEmptyRequest & gateway.Message = {\n ...requests.LockstepEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepEmptyRequest.toBinary(this);\n },\n };\n\n const response = gateway.callSync<requests.StringResponse>(\n 'device/lockstep_to_string',\n request,\n requests.StringResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Parks lockstep group in anticipation of turning the power off.\n * It can later be powered on, unparked, and moved without first having to home it.\n */\n public async park(): Promise<void> {\n const request: requests.LockstepEmptyRequest & gateway.Message = {\n ...requests.LockstepEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepEmptyRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_park', request);\n }\n\n /**\n * Unparks lockstep group. Lockstep group will now be able to move.\n */\n public async unpark(): Promise<void> {\n const request: requests.LockstepEmptyRequest & gateway.Message = {\n ...requests.LockstepEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepEmptyRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/lockstep_unpark', request);\n }\n\n /**\n * Returns bool indicating whether the axis is parked or not.\n * @returns True if lockstep group is parked.\n */\n public async isParked(): Promise<boolean> {\n const request: requests.LockstepEmptyRequest & gateway.Message = {\n ...requests.LockstepEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n lockstepGroupId: this.lockstepGroupId,\n toBinary() {\n return requests.LockstepEmptyRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.BoolResponse>(\n 'device/lockstep_is_parked',\n request,\n requests.BoolResponse.fromBinary);\n return response.value;\n }\n}\n\nnamespace Lockstep {\n export interface StopOptions {\n /**\n * Determines whether function should return after the movement is finished or just started.\n */\n waitUntilIdle?: boolean;\n }\n export interface HomeOptions {\n /**\n * Determines whether function should return after the movement is finished or just started.\n */\n waitUntilIdle?: boolean;\n }\n export interface MoveAbsoluteOptions {\n /**\n * Determines whether function should return after the movement is finished or just started.\n */\n waitUntilIdle?: boolean;\n /**\n * Movement velocity.\n * Default value of 0 indicates that the maxspeed setting is used instead.\n * Requires at least Firmware 7.25.\n */\n velocity?: number;\n /**\n * Units of velocity.\n */\n velocityUnit?: Velocity | AngularVelocity | Native;\n /**\n * Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n */\n acceleration?: number;\n /**\n * Units of acceleration.\n */\n accelerationUnit?: Acceleration | AngularAcceleration | Native;\n }\n export interface MoveRelativeOptions {\n /**\n * Determines whether function should return after the movement is finished or just started.\n */\n waitUntilIdle?: boolean;\n /**\n * Movement velocity.\n * Default value of 0 indicates that the maxspeed setting is used instead.\n * Requires at least Firmware 7.25.\n */\n velocity?: number;\n /**\n * Units of velocity.\n */\n velocityUnit?: Velocity | AngularVelocity | Native;\n /**\n * Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n */\n acceleration?: number;\n /**\n * Units of acceleration.\n */\n accelerationUnit?: Acceleration | AngularAcceleration | Native;\n }\n export interface MoveVelocityOptions {\n /**\n * Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n */\n acceleration?: number;\n /**\n * Units of acceleration.\n */\n accelerationUnit?: Acceleration | AngularAcceleration | Native;\n }\n export interface MoveSinOptions {\n /**\n * Number of sinusoidal cycles to complete.\n * Must be a multiple of 0.5\n * If count is not specified or set to 0, the axis will move indefinitely.\n */\n count?: number;\n /**\n * Determines whether function should return after the movement is finished or just started.\n */\n waitUntilIdle?: boolean;\n }\n export interface MoveSinStopOptions {\n /**\n * Determines whether function should return after the movement is finished.\n */\n waitUntilIdle?: boolean;\n }\n export interface MoveMaxOptions {\n /**\n * Determines whether function should return after the movement is finished or just started.\n */\n waitUntilIdle?: boolean;\n /**\n * Movement velocity.\n * Default value of 0 indicates that the maxspeed setting is used instead.\n * Requires at least Firmware 7.25.\n */\n velocity?: number;\n /**\n * Units of velocity.\n */\n velocityUnit?: Velocity | AngularVelocity | Native;\n /**\n * Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n */\n acceleration?: number;\n /**\n * Units of acceleration.\n */\n accelerationUnit?: Acceleration | AngularAcceleration | Native;\n }\n export interface MoveMinOptions {\n /**\n * Determines whether function should return after the movement is finished or just started.\n */\n waitUntilIdle?: boolean;\n /**\n * Movement velocity.\n * Default value of 0 indicates that the maxspeed setting is used instead.\n * Requires at least Firmware 7.25.\n */\n velocity?: number;\n /**\n * Units of velocity.\n */\n velocityUnit?: Velocity | AngularVelocity | Native;\n /**\n * Movement acceleration.\n * Default value of 0 indicates that the accel setting is used instead.\n * Requires at least Firmware 7.25.\n */\n acceleration?: number;\n /**\n * Units of acceleration.\n */\n accelerationUnit?: Acceleration | AngularAcceleration | Native;\n }\n export interface WaitUntilIdleOptions {\n /**\n * Determines whether to throw error when fault is observed.\n */\n throwErrorOnFault?: boolean;\n }\n export interface SetToleranceOptions {\n /**\n * Optional index of a secondary axis to set the tolerance for.\n * If left empty or set to 0, the tolerance is set to all the secondary axes.\n */\n axisIndex?: number;\n }\n}\n"]}
@@ -8,7 +8,6 @@ import { OptionalMeasurementSequence } from './optional_measurement_sequence';
8
8
  import { PvtSequenceData } from './pvt_sequence_data';
9
9
  import { PvtCsvData } from './pvt_csv_data';
10
10
  import { PvtIo } from './pvt_io';
11
- import { DigitalOutputAction } from './digital_output_action';
12
11
  /**
13
12
  * A handle for a PVT sequence with this number on the device.
14
13
  * PVT sequences provide a way execute or store trajectory
@@ -294,36 +293,6 @@ export declare class PvtSequence {
294
293
  * @param sequenceData The PVT sequence data to submit.
295
294
  */
296
295
  submitSequenceData(sequenceData: PvtSequenceData): Promise<void>;
297
- /**
298
- * @deprecated Use PvtSequence.Io.SetDigitalOutput instead.
299
- *
300
- * Sets value for the specified digital output channel.
301
- * @param channelNumber Channel number starting at 1.
302
- * @param value The type of action to perform on the channel.
303
- */
304
- setDigitalOutput(channelNumber: number, value: DigitalOutputAction): Promise<void>;
305
- /**
306
- * @deprecated Use PvtSequence.Io.SetAllDigitalOutputs instead.
307
- *
308
- * Sets values for all digital output channels.
309
- * @param values The type of action to perform on the channel.
310
- */
311
- setAllDigitalOutputs(values: DigitalOutputAction[]): Promise<void>;
312
- /**
313
- * @deprecated Use PvtSequence.Io.SetAnalogOutput instead.
314
- *
315
- * Sets value for the specified analog output channel.
316
- * @param channelNumber Channel number starting at 1.
317
- * @param value Value to set the output channel voltage to.
318
- */
319
- setAnalogOutput(channelNumber: number, value: number): Promise<void>;
320
- /**
321
- * @deprecated Use PvtSequence.Io.SetAllAnalogOutputs instead.
322
- *
323
- * Sets values for all analog output channels.
324
- * @param values Voltage values to set the output channels to.
325
- */
326
- setAllAnalogOutputs(values: number[]): Promise<void>;
327
296
  }
328
297
  declare namespace PvtSequence {
329
298
  interface WaitUntilIdleOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"pvt_sequence.d.ts","sourceRoot":"","sources":["../../../src/ascii/pvt_sequence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pvt_sequence.d.ts","sourceRoot":"","sources":["../../../src/ascii/pvt_sequence.ts"],"names":[],"mappings":"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"}
@@ -697,90 +697,6 @@ class PvtSequence {
697
697
  };
698
698
  await gateway.callAsync('device/stream_pvt_submit_data', request);
699
699
  }
700
- /**
701
- * @deprecated Use PvtSequence.Io.SetDigitalOutput instead.
702
- *
703
- * Sets value for the specified digital output channel.
704
- * @param channelNumber Channel number starting at 1.
705
- * @param value The type of action to perform on the channel.
706
- */
707
- async setDigitalOutput(channelNumber, value) {
708
- const request = {
709
- ...requests.StreamSetDigitalOutputRequest.DEFAULT,
710
- interfaceId: this.device.connection.interfaceId,
711
- device: this.device.deviceAddress,
712
- streamId: this.pvtId,
713
- pvt: true,
714
- channelNumber: channelNumber,
715
- value: value,
716
- toBinary() {
717
- return requests.StreamSetDigitalOutputRequest.toBinary(this);
718
- },
719
- };
720
- await gateway.callAsync('device/stream_set_digital_output', request);
721
- }
722
- /**
723
- * @deprecated Use PvtSequence.Io.SetAllDigitalOutputs instead.
724
- *
725
- * Sets values for all digital output channels.
726
- * @param values The type of action to perform on the channel.
727
- */
728
- async setAllDigitalOutputs(values) {
729
- const request = {
730
- ...requests.StreamSetAllDigitalOutputsRequest.DEFAULT,
731
- interfaceId: this.device.connection.interfaceId,
732
- device: this.device.deviceAddress,
733
- streamId: this.pvtId,
734
- pvt: true,
735
- values: values,
736
- toBinary() {
737
- return requests.StreamSetAllDigitalOutputsRequest.toBinary(this);
738
- },
739
- };
740
- await gateway.callAsync('device/stream_set_all_digital_outputs', request);
741
- }
742
- /**
743
- * @deprecated Use PvtSequence.Io.SetAnalogOutput instead.
744
- *
745
- * Sets value for the specified analog output channel.
746
- * @param channelNumber Channel number starting at 1.
747
- * @param value Value to set the output channel voltage to.
748
- */
749
- async setAnalogOutput(channelNumber, value) {
750
- const request = {
751
- ...requests.StreamSetAnalogOutputRequest.DEFAULT,
752
- interfaceId: this.device.connection.interfaceId,
753
- device: this.device.deviceAddress,
754
- streamId: this.pvtId,
755
- pvt: true,
756
- channelNumber: channelNumber,
757
- value: value,
758
- toBinary() {
759
- return requests.StreamSetAnalogOutputRequest.toBinary(this);
760
- },
761
- };
762
- await gateway.callAsync('device/stream_set_analog_output', request);
763
- }
764
- /**
765
- * @deprecated Use PvtSequence.Io.SetAllAnalogOutputs instead.
766
- *
767
- * Sets values for all analog output channels.
768
- * @param values Voltage values to set the output channels to.
769
- */
770
- async setAllAnalogOutputs(values) {
771
- const request = {
772
- ...requests.StreamSetAllAnalogOutputsRequest.DEFAULT,
773
- interfaceId: this.device.connection.interfaceId,
774
- device: this.device.deviceAddress,
775
- streamId: this.pvtId,
776
- pvt: true,
777
- values: values,
778
- toBinary() {
779
- return requests.StreamSetAllAnalogOutputsRequest.toBinary(this);
780
- },
781
- };
782
- await gateway.callAsync('device/stream_set_all_analog_outputs', request);
783
- }
784
700
  }
785
701
  exports.PvtSequence = PvtSequence;
786
702
  //# sourceMappingURL=pvt_sequence.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pvt_sequence.js","sourceRoot":"","sources":["../../../src/ascii/pvt_sequence.ts"],"names":[],"mappings":"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","sourcesContent":["// ==== THIS FILE IS GENERATED FROM A TEMPLATE ==== //\n// ============= DO NOT EDIT DIRECTLY ============= //\n\nimport { Device } from './device';\nimport * as gateway from '../gateway';\nimport * as requests from '../requests';\nimport { Measurement } from '../measurement';\nimport { PvtBuffer } from './pvt_buffer';\nimport { PvtMode } from './pvt_mode';\nimport { PvtAxisDefinition } from './pvt_axis_definition';\nimport { MeasurementSequence } from './measurement_sequence';\nimport { OptionalMeasurementSequence } from './optional_measurement_sequence';\nimport { PvtSequenceData } from './pvt_sequence_data';\nimport { PvtCsvData } from './pvt_csv_data';\nimport { PvtIo } from './pvt_io';\nimport { DigitalOutputAction } from './digital_output_action';\n\n/**\n * A handle for a PVT sequence with this number on the device.\n * PVT sequences provide a way execute or store trajectory\n * consisting of points with defined position, velocity, and time.\n * PVT sequence methods append actions to a queue which executes\n * or stores actions in a first in, first out order.\n */\nexport class PvtSequence {\n /**\n * Device that controls this PVT sequence.\n */\n public get device(): Device {\n return this._device;\n }\n private _device: Device;\n\n /**\n * The number that identifies the PVT sequence on the device.\n */\n public get pvtId(): number {\n return this._pvtId;\n }\n private _pvtId: number;\n\n /**\n * Current mode of the PVT sequence.\n */\n public get mode(): PvtMode {\n return this._retrieveMode();\n }\n\n /**\n * An array of axes definitions the PVT sequence is set up to control.\n */\n public get axes(): PvtAxisDefinition[] {\n return this._retrieveAxes();\n }\n\n /**\n * Gets an object that provides access to I/O for this sequence.\n */\n public get io(): PvtIo {\n return this._io;\n }\n private _io: PvtIo;\n\n constructor(device: Device, pvtId: number) {\n this._device = device;\n this._pvtId = pvtId;\n this._io = new PvtIo(device, pvtId);\n }\n\n /**\n * Setup the PVT sequence to control the specified axes and to queue actions on the device.\n * Allows use of lockstep axes in a PVT sequence.\n * @param pvtAxes Definition of the PVT sequence axes.\n */\n public async setupLiveComposite(\n ...pvtAxes: PvtAxisDefinition[]\n ): Promise<void> {\n const request: requests.StreamSetupLiveCompositeRequest & gateway.Message = {\n ...requests.StreamSetupLiveCompositeRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n pvtAxes: pvtAxes,\n toBinary() {\n return requests.StreamSetupLiveCompositeRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_setup_live_composite', request);\n }\n\n /**\n * Setup the PVT sequence to control the specified axes and to queue actions on the device.\n * @param axes Numbers of physical axes to setup the PVT sequence on.\n */\n public async setupLive(\n ...axes: number[]\n ): Promise<void> {\n const request: requests.StreamSetupLiveRequest & gateway.Message = {\n ...requests.StreamSetupLiveRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n axes: axes,\n toBinary() {\n return requests.StreamSetupLiveRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_setup_live', request);\n }\n\n /**\n * Setup the PVT sequence to use the specified axes and queue actions into a PVT buffer.\n * Allows use of lockstep axes in a PVT sequence.\n * @param pvtBuffer The PVT buffer to queue actions in.\n * @param pvtAxes Definition of the PVT sequence axes.\n */\n public async setupStoreComposite(\n pvtBuffer: PvtBuffer,\n ...pvtAxes: PvtAxisDefinition[]\n ): Promise<void> {\n const request: requests.StreamSetupStoreCompositeRequest & gateway.Message = {\n ...requests.StreamSetupStoreCompositeRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n pvtBuffer: pvtBuffer.bufferId,\n pvtAxes: pvtAxes,\n toBinary() {\n return requests.StreamSetupStoreCompositeRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_setup_store_composite', request);\n }\n\n /**\n * Setup the PVT sequence to use the specified axes and queue actions into a PVT buffer.\n * @param pvtBuffer The PVT buffer to queue actions in.\n * @param axes Numbers of physical axes to setup the PVT sequence on.\n */\n public async setupStore(\n pvtBuffer: PvtBuffer,\n ...axes: number[]\n ): Promise<void> {\n const request: requests.StreamSetupStoreRequest & gateway.Message = {\n ...requests.StreamSetupStoreRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n pvtBuffer: pvtBuffer.bufferId,\n axes: axes,\n toBinary() {\n return requests.StreamSetupStoreRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_setup_store', request);\n }\n\n /**\n * Append the actions in a PVT buffer to the sequence's queue.\n * @param pvtBuffer The PVT buffer to call.\n */\n public async call(\n pvtBuffer: PvtBuffer\n ): Promise<void> {\n const request: requests.StreamCallRequest & gateway.Message = {\n ...requests.StreamCallRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n pvtBuffer: pvtBuffer.bufferId,\n toBinary() {\n return requests.StreamCallRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_call', request);\n }\n\n /**\n * Queues a point with absolute coordinates in the PVT sequence.\n * If some or all velocities are not provided, the sequence calculates the velocities\n * from surrounding points using finite difference.\n * The last point of the sequence must have defined velocity (likely zero).\n * @param positions Positions for the axes to move through, relative to their home positions.\n * @param velocities The axes velocities at the given point.\n * Specify an empty array or null for specific axes to make the sequence calculate the velocity.\n * @param time The duration between the previous point in the sequence and this one.\n */\n public async point(\n positions: Measurement[],\n velocities: (Measurement | null)[],\n time: Measurement\n ): Promise<void> {\n const request: requests.PvtPointRequest & gateway.Message = {\n ...requests.PvtPointRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n type: requests.StreamSegmentType.ABS,\n positions: positions,\n velocities: velocities,\n time: time,\n toBinary() {\n return requests.PvtPointRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_point', request);\n }\n\n /**\n * Queues points with absolute coordinates in the PVT sequence.\n * @param positions Per-axis sequences of positions.\n * @param velocities Per-axis sequences of velocities.\n * For velocities [v0, v1, ...] and positions [p0, p1, ...], v1 is the target velocity at point p1.\n * @param times Segment times from one point to another.\n * For times [t0, t1, ...] and positions [p0, p1, ...], t1 is the time it takes to move from p0 to p1.\n */\n public async points(\n positions: MeasurementSequence[],\n velocities: MeasurementSequence[],\n times: MeasurementSequence\n ): Promise<void> {\n const request: requests.PvtPointsRequest & gateway.Message = {\n ...requests.PvtPointsRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n type: requests.StreamSegmentType.ABS,\n positions: positions,\n velocities: velocities,\n times: times,\n toBinary() {\n return requests.PvtPointsRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_points', request);\n }\n\n /**\n * Queues a point with coordinates relative to the previous point in the PVT sequence.\n * If some or all velocities are not provided, the sequence calculates the velocities\n * from surrounding points using finite difference.\n * The last point of the sequence must have defined velocity (likely zero).\n * @param positions Positions for the axes to move through, relative to the previous point.\n * @param velocities The axes velocities at the given point.\n * Specify an empty array or null for specific axes to make the sequence calculate the velocity.\n * @param time The duration between the previous point in the sequence and this one.\n */\n public async pointRelative(\n positions: Measurement[],\n velocities: (Measurement | null)[],\n time: Measurement\n ): Promise<void> {\n const request: requests.PvtPointRequest & gateway.Message = {\n ...requests.PvtPointRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n type: requests.StreamSegmentType.REL,\n positions: positions,\n velocities: velocities,\n time: time,\n toBinary() {\n return requests.PvtPointRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_point', request);\n }\n\n /**\n * Queues points with coordinates relative to the previous point in the PVT sequence.\n * @param positions Per-axis sequences of positions.\n * @param velocities Per-axis sequences of velocities.\n * For velocities [v0, v1, ...] and positions [p0, p1, ...], v1 is the target velocity at point p1.\n * @param times Segment times from one point to another.\n * For times [t0, t1, ...] and positions [p0, p1, ...], t1 is the time it takes to move from p0 to p1.\n */\n public async pointsRelative(\n positions: MeasurementSequence[],\n velocities: MeasurementSequence[],\n times: MeasurementSequence\n ): Promise<void> {\n const request: requests.PvtPointsRequest & gateway.Message = {\n ...requests.PvtPointsRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n type: requests.StreamSegmentType.REL,\n positions: positions,\n velocities: velocities,\n times: times,\n toBinary() {\n return requests.PvtPointsRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_points', request);\n }\n\n /**\n * Generates velocities for a sequence of positions and times, and (optionally) a partially defined sequence\n * of velocities. Note that if some velocities are defined, the solver will NOT modify them in any way.\n * If all velocities are defined, the solver will simply return the same velocities.\n * This function calculates velocities by enforcing that acceleration be continuous at each segment transition.\n *\n * Also note that if generating a path for multiple axes, the user must provide a position measurement sequence\n * per axis, And the values arrays for each sequence must be equal in length to each other and also to the\n * times sequence.\n *\n * Does not support native units.\n * @param positions Positions for the axes to move through, relative to their home positions.\n * Each MeasurementSequence represents a sequence of positions along a particular dimension.\n * For example, a 2D path sequence would contain two MeasurementSequence objects,\n * one representing positions along X and one for those along Y.\n * @param times The relative or absolute time of each position in the PVT sequence.\n * @param velocities Optional velocities corresponding to each point in the position sequences.\n * @param [timesRelative=true] If true, the times sequence values are interpreted as relative. Otherwise,\n * they are interpreted as absolute. Note that the values of the returned time\n * sequence are ALWAYS relative. This is because the PVT sequence API expects\n * points to have relative times.\n * @returns Object containing the generated PVT sequence. Note that returned time sequence is always relative.\n */\n public static async generateVelocities(\n positions: MeasurementSequence[],\n times: MeasurementSequence,\n velocities?: OptionalMeasurementSequence[],\n timesRelative: boolean = true\n ): Promise<PvtSequenceData> {\n const request: requests.PvtGenerateVelocitiesRequest & gateway.Message = {\n ...requests.PvtGenerateVelocitiesRequest.DEFAULT,\n positions: positions,\n times: times,\n velocities: velocities,\n timesRelative: timesRelative,\n toBinary() {\n return requests.PvtGenerateVelocitiesRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<PvtSequenceData>(\n 'device/pvt_generate_velocities',\n request,\n PvtSequenceData.fromBinary);\n return response;\n }\n\n /**\n * Generates positions for a sequence of velocities and times. This function calculates\n * positions by enforcing that acceleration be continuous at each segment transition.\n *\n * Note that if generating a path for multiple axes, the user must provide a\n * velocity measurement sequence per axis, and the values arrays for each sequence\n * must be equal in length to each other and also to the times sequence.\n *\n * Does not support native units.\n * @param velocities The sequence of velocities for each axis.\n * Each MeasurementSequence represents a sequence of velocities along particular dimension.\n * @param times The relative or absolute time of each position in the PVT sequence.\n * @param [timesRelative=true] If true, the times sequence values are interpreted as relative. Otherwise,\n * they are interpreted as absolute. Note that the values of the returned time\n * sequence are ALWAYS relative. This is because the PVT sequence API expects\n * points to have relative times.\n * @returns Object containing the generated PVT sequence. Note that returned time sequence is always relative.\n */\n public static async generatePositions(\n velocities: MeasurementSequence[],\n times: MeasurementSequence,\n timesRelative: boolean = true\n ): Promise<PvtSequenceData> {\n const request: requests.PvtGeneratePositionsRequest & gateway.Message = {\n ...requests.PvtGeneratePositionsRequest.DEFAULT,\n velocities: velocities,\n times: times,\n timesRelative: timesRelative,\n toBinary() {\n return requests.PvtGeneratePositionsRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<PvtSequenceData>(\n 'device/pvt_generate_positions',\n request,\n PvtSequenceData.fromBinary);\n return response;\n }\n\n /**\n * Generates sequences of velocities and times for a sequence of positions.\n * This function fits a geometric spline (not-a-knot cubic for sequences of >3 points,\n * natural cubic for 3, and a straight line for 2) over the position sequence\n * and then calculates the velocity and time information by traversing it using a\n * trapezoidal motion profile.\n *\n * This generation scheme attempts to keep speed and acceleration less than the\n * specified target values, but does not guarantee it. Generally speaking, a higher\n * resample number will bring the generated trajectory closer to respecting these\n * limits.\n *\n * Note that consecutive duplicate points will be automatically removed as they\n * have no geometric significance without additional time information. Also note that\n * for multi-dimensional paths this function expects axes to be linear and orthogonal,\n * however for paths of a single dimension rotary units are accepted.\n *\n * Does not support native units.\n * @param positions Positions for the axes to move through, relative to their home positions.\n * @param targetSpeed The target speed used to generate positions and times.\n * @param targetAcceleration The target acceleration used to generate positions and times.\n * @param resampleNumber The number of points to resample the sequence by.\n * Leave undefined to use the specified points.\n * @returns Object containing the generated PVT sequence. Note that returned time sequence is always relative.\n */\n public static async generateVelocitiesAndTimes(\n positions: MeasurementSequence[],\n targetSpeed: Measurement,\n targetAcceleration: Measurement,\n resampleNumber?: number\n ): Promise<PvtSequenceData> {\n if (targetSpeed.value <= 0 || targetAcceleration.value <= 0) {\n throw new TypeError('Target speed and acceleration values must be greater than zero.');\n }\n const request: requests.PvtGenerateVelocitiesAndTimesRequest & gateway.Message = {\n ...requests.PvtGenerateVelocitiesAndTimesRequest.DEFAULT,\n positions: positions,\n targetSpeed: targetSpeed,\n targetAcceleration: targetAcceleration,\n resampleNumber: resampleNumber,\n toBinary() {\n return requests.PvtGenerateVelocitiesAndTimesRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<PvtSequenceData>(\n 'device/pvt_generate_velocities_and_times',\n request,\n PvtSequenceData.fromBinary);\n return response;\n }\n\n /**\n * Waits until the live PVT sequence executes all queued actions.\n * @param [options.throwErrorOnFault=true] Determines whether to throw error when fault is observed.\n */\n public async waitUntilIdle(\n options: PvtSequence.WaitUntilIdleOptions = {}\n ): Promise<void> {\n const {\n throwErrorOnFault = true,\n } = options;\n const request: requests.StreamWaitUntilIdleRequest & gateway.Message = {\n ...requests.StreamWaitUntilIdleRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n throwErrorOnFault: throwErrorOnFault,\n toBinary() {\n return requests.StreamWaitUntilIdleRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_wait_until_idle', request);\n }\n\n /**\n * Cork the front of the PVT sequences's action queue, blocking execution.\n * Execution resumes upon uncorking the queue, or when the number of queued actions reaches its limit.\n * Corking eliminates discontinuities in motion due to subsequent PVT commands reaching the device late.\n * You can only cork an idle live PVT sequence.\n */\n public async cork(): Promise<void> {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_cork', request);\n }\n\n /**\n * Uncork the front of the queue, unblocking command execution.\n * You can only uncork an idle live PVT sequence that is corked.\n */\n public async uncork(): Promise<void> {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_uncork', request);\n }\n\n /**\n * Returns a boolean value indicating whether the live PVT sequence is executing a queued action.\n * @returns True if the PVT sequence is executing a queued action.\n */\n public async isBusy(): Promise<boolean> {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.BoolResponse>(\n 'device/stream_is_busy',\n request,\n requests.BoolResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Returns a string which represents the PVT sequence.\n * @returns String which represents the PVT sequence.\n */\n public toString(): string {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n const response = gateway.callSync<requests.StringResponse>(\n 'device/stream_to_string',\n request,\n requests.StringResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Disables the PVT sequence.\n * If the PVT sequence is not setup, this command does nothing.\n * Once disabled, the PVT sequence will no longer accept PVT commands.\n * The PVT sequence will process the rest of the commands in the queue until it is empty.\n */\n public async disable(): Promise<void> {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_disable', request);\n }\n\n /**\n * Sends a generic ASCII command to the PVT sequence.\n * Keeps resending the command while the device rejects with AGAIN reason.\n * @param command Command and its parameters.\n */\n public async genericCommand(\n command: string\n ): Promise<void> {\n const request: requests.StreamGenericCommandRequest & gateway.Message = {\n ...requests.StreamGenericCommandRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n command: command,\n toBinary() {\n return requests.StreamGenericCommandRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_generic_command', request);\n }\n\n /**\n * Sends a batch of generic ASCII commands to the PVT sequence.\n * Keeps resending command while the device rejects with AGAIN reason.\n * The batch is atomic in terms of thread safety.\n * @param batch Array of commands.\n */\n public async genericCommandBatch(\n batch: string[]\n ): Promise<void> {\n const request: requests.StreamGenericCommandBatchRequest & gateway.Message = {\n ...requests.StreamGenericCommandBatchRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n batch: batch,\n toBinary() {\n return requests.StreamGenericCommandBatchRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_generic_command_batch', request);\n }\n\n /**\n * Queries the PVT sequence status from the device\n * and returns boolean indicating whether the PVT sequence is disabled.\n * Useful to determine if execution was interrupted by other movements.\n * @returns True if the PVT sequence is disabled.\n */\n public async checkDisabled(): Promise<boolean> {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.BoolResponse>(\n 'device/stream_check_disabled',\n request,\n requests.BoolResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Makes the PVT sequence throw PvtDiscontinuityException when it encounters discontinuities (ND warning flag).\n */\n public treatDiscontinuitiesAsError(): void {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n gateway.callSync('device/stream_treat_discontinuities', request);\n }\n\n /**\n * Prevents PvtDiscontinuityException as a result of expected discontinuity when resuming the sequence.\n */\n public ignoreCurrentDiscontinuity(): void {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n gateway.callSync('device/stream_ignore_discontinuity', request);\n }\n\n /**\n * Gets the axes of the PVT sequence.\n * @returns An array of axis numbers of the axes the PVT sequence is set up to control.\n */\n private _retrieveAxes(): PvtAxisDefinition[] {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n const response = gateway.callSync<requests.StreamGetAxesResponse>(\n 'device/stream_get_axes',\n request,\n requests.StreamGetAxesResponse.fromBinary);\n return response.pvtAxes;\n }\n\n /**\n * Get the mode of the PVT sequence.\n * @returns Mode of the PVT sequence.\n */\n private _retrieveMode(): PvtMode {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n const response = gateway.callSync<requests.StreamModeResponse>(\n 'device/stream_get_mode',\n request,\n requests.StreamModeResponse.fromBinary);\n return response.pvtMode;\n }\n\n /**\n * Saves PvtSequenceData object as csv file.\n * Save format is compatible with Zaber Launcher PVT Editor App.\n *\n * Throws InvalidArgumentException if fields are undefined or inconsistent.\n * For example, position and velocity arrays must have the same dimensions.\n * Sequence lengths must be consistent for positions, velocities and times.\n * @param sequenceData The PVT sequence data to save.\n * @param path The path to save the file to.\n * @param dimensionNames Optional csv column names for each series.\n * If not provided, the default names will be used: Series 1, Series 2, etc..\n * Length of this array must be equal to number of dimensions in sequence data.\n */\n public static async saveSequenceData(\n sequenceData: PvtSequenceData,\n path: string,\n dimensionNames?: string[]\n ): Promise<void> {\n const request: requests.PvtSaveCsvRequest & gateway.Message = {\n ...requests.PvtSaveCsvRequest.DEFAULT,\n sequenceData: sequenceData,\n path: path,\n dimensionNames: dimensionNames,\n toBinary() {\n return requests.PvtSaveCsvRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_pvt_save_csv', request);\n }\n\n /**\n * Load PVT Sequence data from CSV file.\n * The CSV data can include a header (recommended).\n * There are two possible header formats:\n *\n * 1. A time column with named position and velocity columns.\n * For example, \"Time (ms),X Position (cm),X Velocity (cm/s),...\".\n * In this case, position, velocity and time columns are all optional.\n * Also, order does not matter, but position and velocity names must be consistent.\n * This is our recommended CSV format.\n *\n * 2. A time column with alternating position and velocity columns.\n * For example, \"Time (ms),Position (cm),Velocity (cm/s),...\".\n * In this case, only the time column is optional and order does matter.\n *\n * Units must be wrapped in parens or square braces: ie. (µm/s), [µm/s].\n * Additionally, native units are the default if no units are specified.\n * Time values default to milliseconds if no units are provided.\n * If no header is included, then column order is assumed to be \"T,P1,V1,P2,V2,...\".\n * In this case the number of columns must be odd.\n * @param path The path to the csv file to load.\n * @returns The PVT csv data loaded from the file.\n */\n public static async loadSequenceData(\n path: string\n ): Promise<PvtCsvData> {\n const request: requests.PvtLoadCsvRequest & gateway.Message = {\n ...requests.PvtLoadCsvRequest.DEFAULT,\n path: path,\n toBinary() {\n return requests.PvtLoadCsvRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<PvtCsvData>(\n 'device/stream_pvt_load_csv',\n request,\n PvtCsvData.fromBinary);\n return response;\n }\n\n /**\n * Writes the contents of a PvtSequenceData object to the sequence.\n * @param sequenceData The PVT sequence data to submit.\n */\n public async submitSequenceData(\n sequenceData: PvtSequenceData\n ): Promise<void> {\n const request: requests.PvtSubmitSequenceDataRequest & gateway.Message = {\n ...requests.PvtSubmitSequenceDataRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n sequenceData: sequenceData,\n toBinary() {\n return requests.PvtSubmitSequenceDataRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_pvt_submit_data', request);\n }\n\n /**\n * @deprecated Use PvtSequence.Io.SetDigitalOutput instead.\n *\n * Sets value for the specified digital output channel.\n * @param channelNumber Channel number starting at 1.\n * @param value The type of action to perform on the channel.\n */\n public async setDigitalOutput(\n channelNumber: number,\n value: DigitalOutputAction\n ): Promise<void> {\n const request: requests.StreamSetDigitalOutputRequest & gateway.Message = {\n ...requests.StreamSetDigitalOutputRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n channelNumber: channelNumber,\n value: value,\n toBinary() {\n return requests.StreamSetDigitalOutputRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_set_digital_output', request);\n }\n\n /**\n * @deprecated Use PvtSequence.Io.SetAllDigitalOutputs instead.\n *\n * Sets values for all digital output channels.\n * @param values The type of action to perform on the channel.\n */\n public async setAllDigitalOutputs(\n values: DigitalOutputAction[]\n ): Promise<void> {\n const request: requests.StreamSetAllDigitalOutputsRequest & gateway.Message = {\n ...requests.StreamSetAllDigitalOutputsRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n values: values,\n toBinary() {\n return requests.StreamSetAllDigitalOutputsRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_set_all_digital_outputs', request);\n }\n\n /**\n * @deprecated Use PvtSequence.Io.SetAnalogOutput instead.\n *\n * Sets value for the specified analog output channel.\n * @param channelNumber Channel number starting at 1.\n * @param value Value to set the output channel voltage to.\n */\n public async setAnalogOutput(\n channelNumber: number,\n value: number\n ): Promise<void> {\n const request: requests.StreamSetAnalogOutputRequest & gateway.Message = {\n ...requests.StreamSetAnalogOutputRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n channelNumber: channelNumber,\n value: value,\n toBinary() {\n return requests.StreamSetAnalogOutputRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_set_analog_output', request);\n }\n\n /**\n * @deprecated Use PvtSequence.Io.SetAllAnalogOutputs instead.\n *\n * Sets values for all analog output channels.\n * @param values Voltage values to set the output channels to.\n */\n public async setAllAnalogOutputs(\n values: number[]\n ): Promise<void> {\n const request: requests.StreamSetAllAnalogOutputsRequest & gateway.Message = {\n ...requests.StreamSetAllAnalogOutputsRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n values: values,\n toBinary() {\n return requests.StreamSetAllAnalogOutputsRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_set_all_analog_outputs', request);\n }\n}\n\nnamespace PvtSequence {\n export interface WaitUntilIdleOptions {\n /**\n * Determines whether to throw error when fault is observed.\n */\n throwErrorOnFault?: boolean;\n }\n}\n"]}
1
+ {"version":3,"file":"pvt_sequence.js","sourceRoot":"","sources":["../../../src/ascii/pvt_sequence.ts"],"names":[],"mappings":"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","sourcesContent":["// ==== THIS FILE IS GENERATED FROM A TEMPLATE ==== //\n// ============= DO NOT EDIT DIRECTLY ============= //\n\nimport { Device } from './device';\nimport * as gateway from '../gateway';\nimport * as requests from '../requests';\nimport { Measurement } from '../measurement';\nimport { PvtBuffer } from './pvt_buffer';\nimport { PvtMode } from './pvt_mode';\nimport { PvtAxisDefinition } from './pvt_axis_definition';\nimport { MeasurementSequence } from './measurement_sequence';\nimport { OptionalMeasurementSequence } from './optional_measurement_sequence';\nimport { PvtSequenceData } from './pvt_sequence_data';\nimport { PvtCsvData } from './pvt_csv_data';\nimport { PvtIo } from './pvt_io';\n\n/**\n * A handle for a PVT sequence with this number on the device.\n * PVT sequences provide a way execute or store trajectory\n * consisting of points with defined position, velocity, and time.\n * PVT sequence methods append actions to a queue which executes\n * or stores actions in a first in, first out order.\n */\nexport class PvtSequence {\n /**\n * Device that controls this PVT sequence.\n */\n public get device(): Device {\n return this._device;\n }\n private _device: Device;\n\n /**\n * The number that identifies the PVT sequence on the device.\n */\n public get pvtId(): number {\n return this._pvtId;\n }\n private _pvtId: number;\n\n /**\n * Current mode of the PVT sequence.\n */\n public get mode(): PvtMode {\n return this._retrieveMode();\n }\n\n /**\n * An array of axes definitions the PVT sequence is set up to control.\n */\n public get axes(): PvtAxisDefinition[] {\n return this._retrieveAxes();\n }\n\n /**\n * Gets an object that provides access to I/O for this sequence.\n */\n public get io(): PvtIo {\n return this._io;\n }\n private _io: PvtIo;\n\n constructor(device: Device, pvtId: number) {\n this._device = device;\n this._pvtId = pvtId;\n this._io = new PvtIo(device, pvtId);\n }\n\n /**\n * Setup the PVT sequence to control the specified axes and to queue actions on the device.\n * Allows use of lockstep axes in a PVT sequence.\n * @param pvtAxes Definition of the PVT sequence axes.\n */\n public async setupLiveComposite(\n ...pvtAxes: PvtAxisDefinition[]\n ): Promise<void> {\n const request: requests.StreamSetupLiveCompositeRequest & gateway.Message = {\n ...requests.StreamSetupLiveCompositeRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n pvtAxes: pvtAxes,\n toBinary() {\n return requests.StreamSetupLiveCompositeRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_setup_live_composite', request);\n }\n\n /**\n * Setup the PVT sequence to control the specified axes and to queue actions on the device.\n * @param axes Numbers of physical axes to setup the PVT sequence on.\n */\n public async setupLive(\n ...axes: number[]\n ): Promise<void> {\n const request: requests.StreamSetupLiveRequest & gateway.Message = {\n ...requests.StreamSetupLiveRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n axes: axes,\n toBinary() {\n return requests.StreamSetupLiveRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_setup_live', request);\n }\n\n /**\n * Setup the PVT sequence to use the specified axes and queue actions into a PVT buffer.\n * Allows use of lockstep axes in a PVT sequence.\n * @param pvtBuffer The PVT buffer to queue actions in.\n * @param pvtAxes Definition of the PVT sequence axes.\n */\n public async setupStoreComposite(\n pvtBuffer: PvtBuffer,\n ...pvtAxes: PvtAxisDefinition[]\n ): Promise<void> {\n const request: requests.StreamSetupStoreCompositeRequest & gateway.Message = {\n ...requests.StreamSetupStoreCompositeRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n pvtBuffer: pvtBuffer.bufferId,\n pvtAxes: pvtAxes,\n toBinary() {\n return requests.StreamSetupStoreCompositeRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_setup_store_composite', request);\n }\n\n /**\n * Setup the PVT sequence to use the specified axes and queue actions into a PVT buffer.\n * @param pvtBuffer The PVT buffer to queue actions in.\n * @param axes Numbers of physical axes to setup the PVT sequence on.\n */\n public async setupStore(\n pvtBuffer: PvtBuffer,\n ...axes: number[]\n ): Promise<void> {\n const request: requests.StreamSetupStoreRequest & gateway.Message = {\n ...requests.StreamSetupStoreRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n pvtBuffer: pvtBuffer.bufferId,\n axes: axes,\n toBinary() {\n return requests.StreamSetupStoreRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_setup_store', request);\n }\n\n /**\n * Append the actions in a PVT buffer to the sequence's queue.\n * @param pvtBuffer The PVT buffer to call.\n */\n public async call(\n pvtBuffer: PvtBuffer\n ): Promise<void> {\n const request: requests.StreamCallRequest & gateway.Message = {\n ...requests.StreamCallRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n pvtBuffer: pvtBuffer.bufferId,\n toBinary() {\n return requests.StreamCallRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_call', request);\n }\n\n /**\n * Queues a point with absolute coordinates in the PVT sequence.\n * If some or all velocities are not provided, the sequence calculates the velocities\n * from surrounding points using finite difference.\n * The last point of the sequence must have defined velocity (likely zero).\n * @param positions Positions for the axes to move through, relative to their home positions.\n * @param velocities The axes velocities at the given point.\n * Specify an empty array or null for specific axes to make the sequence calculate the velocity.\n * @param time The duration between the previous point in the sequence and this one.\n */\n public async point(\n positions: Measurement[],\n velocities: (Measurement | null)[],\n time: Measurement\n ): Promise<void> {\n const request: requests.PvtPointRequest & gateway.Message = {\n ...requests.PvtPointRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n type: requests.StreamSegmentType.ABS,\n positions: positions,\n velocities: velocities,\n time: time,\n toBinary() {\n return requests.PvtPointRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_point', request);\n }\n\n /**\n * Queues points with absolute coordinates in the PVT sequence.\n * @param positions Per-axis sequences of positions.\n * @param velocities Per-axis sequences of velocities.\n * For velocities [v0, v1, ...] and positions [p0, p1, ...], v1 is the target velocity at point p1.\n * @param times Segment times from one point to another.\n * For times [t0, t1, ...] and positions [p0, p1, ...], t1 is the time it takes to move from p0 to p1.\n */\n public async points(\n positions: MeasurementSequence[],\n velocities: MeasurementSequence[],\n times: MeasurementSequence\n ): Promise<void> {\n const request: requests.PvtPointsRequest & gateway.Message = {\n ...requests.PvtPointsRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n type: requests.StreamSegmentType.ABS,\n positions: positions,\n velocities: velocities,\n times: times,\n toBinary() {\n return requests.PvtPointsRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_points', request);\n }\n\n /**\n * Queues a point with coordinates relative to the previous point in the PVT sequence.\n * If some or all velocities are not provided, the sequence calculates the velocities\n * from surrounding points using finite difference.\n * The last point of the sequence must have defined velocity (likely zero).\n * @param positions Positions for the axes to move through, relative to the previous point.\n * @param velocities The axes velocities at the given point.\n * Specify an empty array or null for specific axes to make the sequence calculate the velocity.\n * @param time The duration between the previous point in the sequence and this one.\n */\n public async pointRelative(\n positions: Measurement[],\n velocities: (Measurement | null)[],\n time: Measurement\n ): Promise<void> {\n const request: requests.PvtPointRequest & gateway.Message = {\n ...requests.PvtPointRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n type: requests.StreamSegmentType.REL,\n positions: positions,\n velocities: velocities,\n time: time,\n toBinary() {\n return requests.PvtPointRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_point', request);\n }\n\n /**\n * Queues points with coordinates relative to the previous point in the PVT sequence.\n * @param positions Per-axis sequences of positions.\n * @param velocities Per-axis sequences of velocities.\n * For velocities [v0, v1, ...] and positions [p0, p1, ...], v1 is the target velocity at point p1.\n * @param times Segment times from one point to another.\n * For times [t0, t1, ...] and positions [p0, p1, ...], t1 is the time it takes to move from p0 to p1.\n */\n public async pointsRelative(\n positions: MeasurementSequence[],\n velocities: MeasurementSequence[],\n times: MeasurementSequence\n ): Promise<void> {\n const request: requests.PvtPointsRequest & gateway.Message = {\n ...requests.PvtPointsRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n type: requests.StreamSegmentType.REL,\n positions: positions,\n velocities: velocities,\n times: times,\n toBinary() {\n return requests.PvtPointsRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_points', request);\n }\n\n /**\n * Generates velocities for a sequence of positions and times, and (optionally) a partially defined sequence\n * of velocities. Note that if some velocities are defined, the solver will NOT modify them in any way.\n * If all velocities are defined, the solver will simply return the same velocities.\n * This function calculates velocities by enforcing that acceleration be continuous at each segment transition.\n *\n * Also note that if generating a path for multiple axes, the user must provide a position measurement sequence\n * per axis, And the values arrays for each sequence must be equal in length to each other and also to the\n * times sequence.\n *\n * Does not support native units.\n * @param positions Positions for the axes to move through, relative to their home positions.\n * Each MeasurementSequence represents a sequence of positions along a particular dimension.\n * For example, a 2D path sequence would contain two MeasurementSequence objects,\n * one representing positions along X and one for those along Y.\n * @param times The relative or absolute time of each position in the PVT sequence.\n * @param velocities Optional velocities corresponding to each point in the position sequences.\n * @param [timesRelative=true] If true, the times sequence values are interpreted as relative. Otherwise,\n * they are interpreted as absolute. Note that the values of the returned time\n * sequence are ALWAYS relative. This is because the PVT sequence API expects\n * points to have relative times.\n * @returns Object containing the generated PVT sequence. Note that returned time sequence is always relative.\n */\n public static async generateVelocities(\n positions: MeasurementSequence[],\n times: MeasurementSequence,\n velocities?: OptionalMeasurementSequence[],\n timesRelative: boolean = true\n ): Promise<PvtSequenceData> {\n const request: requests.PvtGenerateVelocitiesRequest & gateway.Message = {\n ...requests.PvtGenerateVelocitiesRequest.DEFAULT,\n positions: positions,\n times: times,\n velocities: velocities,\n timesRelative: timesRelative,\n toBinary() {\n return requests.PvtGenerateVelocitiesRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<PvtSequenceData>(\n 'device/pvt_generate_velocities',\n request,\n PvtSequenceData.fromBinary);\n return response;\n }\n\n /**\n * Generates positions for a sequence of velocities and times. This function calculates\n * positions by enforcing that acceleration be continuous at each segment transition.\n *\n * Note that if generating a path for multiple axes, the user must provide a\n * velocity measurement sequence per axis, and the values arrays for each sequence\n * must be equal in length to each other and also to the times sequence.\n *\n * Does not support native units.\n * @param velocities The sequence of velocities for each axis.\n * Each MeasurementSequence represents a sequence of velocities along particular dimension.\n * @param times The relative or absolute time of each position in the PVT sequence.\n * @param [timesRelative=true] If true, the times sequence values are interpreted as relative. Otherwise,\n * they are interpreted as absolute. Note that the values of the returned time\n * sequence are ALWAYS relative. This is because the PVT sequence API expects\n * points to have relative times.\n * @returns Object containing the generated PVT sequence. Note that returned time sequence is always relative.\n */\n public static async generatePositions(\n velocities: MeasurementSequence[],\n times: MeasurementSequence,\n timesRelative: boolean = true\n ): Promise<PvtSequenceData> {\n const request: requests.PvtGeneratePositionsRequest & gateway.Message = {\n ...requests.PvtGeneratePositionsRequest.DEFAULT,\n velocities: velocities,\n times: times,\n timesRelative: timesRelative,\n toBinary() {\n return requests.PvtGeneratePositionsRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<PvtSequenceData>(\n 'device/pvt_generate_positions',\n request,\n PvtSequenceData.fromBinary);\n return response;\n }\n\n /**\n * Generates sequences of velocities and times for a sequence of positions.\n * This function fits a geometric spline (not-a-knot cubic for sequences of >3 points,\n * natural cubic for 3, and a straight line for 2) over the position sequence\n * and then calculates the velocity and time information by traversing it using a\n * trapezoidal motion profile.\n *\n * This generation scheme attempts to keep speed and acceleration less than the\n * specified target values, but does not guarantee it. Generally speaking, a higher\n * resample number will bring the generated trajectory closer to respecting these\n * limits.\n *\n * Note that consecutive duplicate points will be automatically removed as they\n * have no geometric significance without additional time information. Also note that\n * for multi-dimensional paths this function expects axes to be linear and orthogonal,\n * however for paths of a single dimension rotary units are accepted.\n *\n * Does not support native units.\n * @param positions Positions for the axes to move through, relative to their home positions.\n * @param targetSpeed The target speed used to generate positions and times.\n * @param targetAcceleration The target acceleration used to generate positions and times.\n * @param resampleNumber The number of points to resample the sequence by.\n * Leave undefined to use the specified points.\n * @returns Object containing the generated PVT sequence. Note that returned time sequence is always relative.\n */\n public static async generateVelocitiesAndTimes(\n positions: MeasurementSequence[],\n targetSpeed: Measurement,\n targetAcceleration: Measurement,\n resampleNumber?: number\n ): Promise<PvtSequenceData> {\n if (targetSpeed.value <= 0 || targetAcceleration.value <= 0) {\n throw new TypeError('Target speed and acceleration values must be greater than zero.');\n }\n const request: requests.PvtGenerateVelocitiesAndTimesRequest & gateway.Message = {\n ...requests.PvtGenerateVelocitiesAndTimesRequest.DEFAULT,\n positions: positions,\n targetSpeed: targetSpeed,\n targetAcceleration: targetAcceleration,\n resampleNumber: resampleNumber,\n toBinary() {\n return requests.PvtGenerateVelocitiesAndTimesRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<PvtSequenceData>(\n 'device/pvt_generate_velocities_and_times',\n request,\n PvtSequenceData.fromBinary);\n return response;\n }\n\n /**\n * Waits until the live PVT sequence executes all queued actions.\n * @param [options.throwErrorOnFault=true] Determines whether to throw error when fault is observed.\n */\n public async waitUntilIdle(\n options: PvtSequence.WaitUntilIdleOptions = {}\n ): Promise<void> {\n const {\n throwErrorOnFault = true,\n } = options;\n const request: requests.StreamWaitUntilIdleRequest & gateway.Message = {\n ...requests.StreamWaitUntilIdleRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n throwErrorOnFault: throwErrorOnFault,\n toBinary() {\n return requests.StreamWaitUntilIdleRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_wait_until_idle', request);\n }\n\n /**\n * Cork the front of the PVT sequences's action queue, blocking execution.\n * Execution resumes upon uncorking the queue, or when the number of queued actions reaches its limit.\n * Corking eliminates discontinuities in motion due to subsequent PVT commands reaching the device late.\n * You can only cork an idle live PVT sequence.\n */\n public async cork(): Promise<void> {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_cork', request);\n }\n\n /**\n * Uncork the front of the queue, unblocking command execution.\n * You can only uncork an idle live PVT sequence that is corked.\n */\n public async uncork(): Promise<void> {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_uncork', request);\n }\n\n /**\n * Returns a boolean value indicating whether the live PVT sequence is executing a queued action.\n * @returns True if the PVT sequence is executing a queued action.\n */\n public async isBusy(): Promise<boolean> {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.BoolResponse>(\n 'device/stream_is_busy',\n request,\n requests.BoolResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Returns a string which represents the PVT sequence.\n * @returns String which represents the PVT sequence.\n */\n public toString(): string {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n const response = gateway.callSync<requests.StringResponse>(\n 'device/stream_to_string',\n request,\n requests.StringResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Disables the PVT sequence.\n * If the PVT sequence is not setup, this command does nothing.\n * Once disabled, the PVT sequence will no longer accept PVT commands.\n * The PVT sequence will process the rest of the commands in the queue until it is empty.\n */\n public async disable(): Promise<void> {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_disable', request);\n }\n\n /**\n * Sends a generic ASCII command to the PVT sequence.\n * Keeps resending the command while the device rejects with AGAIN reason.\n * @param command Command and its parameters.\n */\n public async genericCommand(\n command: string\n ): Promise<void> {\n const request: requests.StreamGenericCommandRequest & gateway.Message = {\n ...requests.StreamGenericCommandRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n command: command,\n toBinary() {\n return requests.StreamGenericCommandRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_generic_command', request);\n }\n\n /**\n * Sends a batch of generic ASCII commands to the PVT sequence.\n * Keeps resending command while the device rejects with AGAIN reason.\n * The batch is atomic in terms of thread safety.\n * @param batch Array of commands.\n */\n public async genericCommandBatch(\n batch: string[]\n ): Promise<void> {\n const request: requests.StreamGenericCommandBatchRequest & gateway.Message = {\n ...requests.StreamGenericCommandBatchRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n batch: batch,\n toBinary() {\n return requests.StreamGenericCommandBatchRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_generic_command_batch', request);\n }\n\n /**\n * Queries the PVT sequence status from the device\n * and returns boolean indicating whether the PVT sequence is disabled.\n * Useful to determine if execution was interrupted by other movements.\n * @returns True if the PVT sequence is disabled.\n */\n public async checkDisabled(): Promise<boolean> {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.BoolResponse>(\n 'device/stream_check_disabled',\n request,\n requests.BoolResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Makes the PVT sequence throw PvtDiscontinuityException when it encounters discontinuities (ND warning flag).\n */\n public treatDiscontinuitiesAsError(): void {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n gateway.callSync('device/stream_treat_discontinuities', request);\n }\n\n /**\n * Prevents PvtDiscontinuityException as a result of expected discontinuity when resuming the sequence.\n */\n public ignoreCurrentDiscontinuity(): void {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n gateway.callSync('device/stream_ignore_discontinuity', request);\n }\n\n /**\n * Gets the axes of the PVT sequence.\n * @returns An array of axis numbers of the axes the PVT sequence is set up to control.\n */\n private _retrieveAxes(): PvtAxisDefinition[] {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n const response = gateway.callSync<requests.StreamGetAxesResponse>(\n 'device/stream_get_axes',\n request,\n requests.StreamGetAxesResponse.fromBinary);\n return response.pvtAxes;\n }\n\n /**\n * Get the mode of the PVT sequence.\n * @returns Mode of the PVT sequence.\n */\n private _retrieveMode(): PvtMode {\n const request: requests.StreamEmptyRequest & gateway.Message = {\n ...requests.StreamEmptyRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n pvt: true,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n const response = gateway.callSync<requests.StreamModeResponse>(\n 'device/stream_get_mode',\n request,\n requests.StreamModeResponse.fromBinary);\n return response.pvtMode;\n }\n\n /**\n * Saves PvtSequenceData object as csv file.\n * Save format is compatible with Zaber Launcher PVT Editor App.\n *\n * Throws InvalidArgumentException if fields are undefined or inconsistent.\n * For example, position and velocity arrays must have the same dimensions.\n * Sequence lengths must be consistent for positions, velocities and times.\n * @param sequenceData The PVT sequence data to save.\n * @param path The path to save the file to.\n * @param dimensionNames Optional csv column names for each series.\n * If not provided, the default names will be used: Series 1, Series 2, etc..\n * Length of this array must be equal to number of dimensions in sequence data.\n */\n public static async saveSequenceData(\n sequenceData: PvtSequenceData,\n path: string,\n dimensionNames?: string[]\n ): Promise<void> {\n const request: requests.PvtSaveCsvRequest & gateway.Message = {\n ...requests.PvtSaveCsvRequest.DEFAULT,\n sequenceData: sequenceData,\n path: path,\n dimensionNames: dimensionNames,\n toBinary() {\n return requests.PvtSaveCsvRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_pvt_save_csv', request);\n }\n\n /**\n * Load PVT Sequence data from CSV file.\n * The CSV data can include a header (recommended).\n * There are two possible header formats:\n *\n * 1. A time column with named position and velocity columns.\n * For example, \"Time (ms),X Position (cm),X Velocity (cm/s),...\".\n * In this case, position, velocity and time columns are all optional.\n * Also, order does not matter, but position and velocity names must be consistent.\n * This is our recommended CSV format.\n *\n * 2. A time column with alternating position and velocity columns.\n * For example, \"Time (ms),Position (cm),Velocity (cm/s),...\".\n * In this case, only the time column is optional and order does matter.\n *\n * Units must be wrapped in parens or square braces: ie. (µm/s), [µm/s].\n * Additionally, native units are the default if no units are specified.\n * Time values default to milliseconds if no units are provided.\n * If no header is included, then column order is assumed to be \"T,P1,V1,P2,V2,...\".\n * In this case the number of columns must be odd.\n * @param path The path to the csv file to load.\n * @returns The PVT csv data loaded from the file.\n */\n public static async loadSequenceData(\n path: string\n ): Promise<PvtCsvData> {\n const request: requests.PvtLoadCsvRequest & gateway.Message = {\n ...requests.PvtLoadCsvRequest.DEFAULT,\n path: path,\n toBinary() {\n return requests.PvtLoadCsvRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<PvtCsvData>(\n 'device/stream_pvt_load_csv',\n request,\n PvtCsvData.fromBinary);\n return response;\n }\n\n /**\n * Writes the contents of a PvtSequenceData object to the sequence.\n * @param sequenceData The PVT sequence data to submit.\n */\n public async submitSequenceData(\n sequenceData: PvtSequenceData\n ): Promise<void> {\n const request: requests.PvtSubmitSequenceDataRequest & gateway.Message = {\n ...requests.PvtSubmitSequenceDataRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.pvtId,\n sequenceData: sequenceData,\n toBinary() {\n return requests.PvtSubmitSequenceDataRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_pvt_submit_data', request);\n }\n}\n\nnamespace PvtSequence {\n export interface WaitUntilIdleOptions {\n /**\n * Determines whether to throw error when fault is observed.\n */\n throwErrorOnFault?: boolean;\n }\n}\n"]}