@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
@@ -936,132 +936,6 @@ class Stream {
936
936
  const response = gateway.callSync('device/stream_get_mode', request, requests.StreamModeResponse.fromBinary);
937
937
  return response.streamMode;
938
938
  }
939
- /**
940
- * @deprecated Use Stream.Io.WaitDigitalInput instead.
941
- *
942
- * Wait for a digital input channel to reach a given value.
943
- * @param channelNumber The number of the digital input channel.
944
- * Channel numbers are numbered from one.
945
- * @param value The value that the stream should wait for.
946
- */
947
- async waitDigitalInput(channelNumber, value) {
948
- const request = {
949
- ...requests.StreamWaitDigitalInputRequest.DEFAULT,
950
- interfaceId: this.device.connection.interfaceId,
951
- device: this.device.deviceAddress,
952
- streamId: this.streamId,
953
- channelNumber: channelNumber,
954
- value: value,
955
- toBinary() {
956
- return requests.StreamWaitDigitalInputRequest.toBinary(this);
957
- },
958
- };
959
- await gateway.callAsync('device/stream_wait_digital_input', request);
960
- }
961
- /**
962
- * @deprecated Use Stream.Io.WaitAnalogInput instead.
963
- *
964
- * Wait for the value of a analog input channel to reach a condition concerning a given value.
965
- * @param channelNumber The number of the analog input channel.
966
- * Channel numbers are numbered from one.
967
- * @param condition A condition (e.g. <, <=, ==, !=).
968
- * @param value The value that the condition concerns, in Volts.
969
- */
970
- async waitAnalogInput(channelNumber, condition, value) {
971
- const request = {
972
- ...requests.StreamWaitAnalogInputRequest.DEFAULT,
973
- interfaceId: this.device.connection.interfaceId,
974
- device: this.device.deviceAddress,
975
- streamId: this.streamId,
976
- channelNumber: channelNumber,
977
- condition: condition,
978
- value: value,
979
- toBinary() {
980
- return requests.StreamWaitAnalogInputRequest.toBinary(this);
981
- },
982
- };
983
- await gateway.callAsync('device/stream_wait_analog_input', request);
984
- }
985
- /**
986
- * @deprecated Use Stream.Io.SetDigitalOutput instead.
987
- *
988
- * Sets value for the specified digital output channel.
989
- * @param channelNumber Channel number starting at 1.
990
- * @param value The type of action to perform on the channel.
991
- */
992
- async setDigitalOutput(channelNumber, value) {
993
- const request = {
994
- ...requests.StreamSetDigitalOutputRequest.DEFAULT,
995
- interfaceId: this.device.connection.interfaceId,
996
- device: this.device.deviceAddress,
997
- streamId: this.streamId,
998
- channelNumber: channelNumber,
999
- value: value,
1000
- toBinary() {
1001
- return requests.StreamSetDigitalOutputRequest.toBinary(this);
1002
- },
1003
- };
1004
- await gateway.callAsync('device/stream_set_digital_output', request);
1005
- }
1006
- /**
1007
- * @deprecated Use Stream.Io.SetAllDigitalOutputs instead.
1008
- *
1009
- * Sets values for all digital output channels.
1010
- * @param values The type of action to perform on the channel.
1011
- */
1012
- async setAllDigitalOutputs(values) {
1013
- const request = {
1014
- ...requests.StreamSetAllDigitalOutputsRequest.DEFAULT,
1015
- interfaceId: this.device.connection.interfaceId,
1016
- device: this.device.deviceAddress,
1017
- streamId: this.streamId,
1018
- values: values,
1019
- toBinary() {
1020
- return requests.StreamSetAllDigitalOutputsRequest.toBinary(this);
1021
- },
1022
- };
1023
- await gateway.callAsync('device/stream_set_all_digital_outputs', request);
1024
- }
1025
- /**
1026
- * @deprecated Use Stream.Io.setAnalogOutput instead.
1027
- *
1028
- * Sets value for the specified analog output channel.
1029
- * @param channelNumber Channel number starting at 1.
1030
- * @param value Value to set the output channel voltage to.
1031
- */
1032
- async setAnalogOutput(channelNumber, value) {
1033
- const request = {
1034
- ...requests.StreamSetAnalogOutputRequest.DEFAULT,
1035
- interfaceId: this.device.connection.interfaceId,
1036
- device: this.device.deviceAddress,
1037
- streamId: this.streamId,
1038
- channelNumber: channelNumber,
1039
- value: value,
1040
- toBinary() {
1041
- return requests.StreamSetAnalogOutputRequest.toBinary(this);
1042
- },
1043
- };
1044
- await gateway.callAsync('device/stream_set_analog_output', request);
1045
- }
1046
- /**
1047
- * @deprecated Use Stream.Io.setAllAnalogOutputs instead.
1048
- *
1049
- * Sets values for all analog output channels.
1050
- * @param values Voltage values to set the output channels to.
1051
- */
1052
- async setAllAnalogOutputs(values) {
1053
- const request = {
1054
- ...requests.StreamSetAllAnalogOutputsRequest.DEFAULT,
1055
- interfaceId: this.device.connection.interfaceId,
1056
- device: this.device.deviceAddress,
1057
- streamId: this.streamId,
1058
- values: values,
1059
- toBinary() {
1060
- return requests.StreamSetAllAnalogOutputsRequest.toBinary(this);
1061
- },
1062
- };
1063
- await gateway.callAsync('device/stream_set_all_analog_outputs', request);
1064
- }
1065
939
  }
1066
940
  exports.Stream = Stream;
1067
941
  //# sourceMappingURL=stream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../src/ascii/stream.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 { Time, Native, Acceleration, AngularAcceleration, AngularVelocity, Velocity, Units } from '../units';\nimport { RotationDirection } from '../rotation_direction';\nimport * as gateway from '../gateway';\nimport * as requests from '../requests';\nimport { Measurement } from '../measurement';\nimport { StreamBuffer } from './stream_buffer';\nimport { StreamMode } from './stream_mode';\nimport { StreamAxisDefinition } from './stream_axis_definition';\nimport { StreamIo } from './stream_io';\nimport { DigitalOutputAction } from './digital_output_action';\n\n\n/**\n * A handle for a stream with this number on the device.\n * Streams provide a way to execute or store a sequence of actions.\n * Stream methods append actions to a queue which executes or stores actions in a first in, first out order.\n */\nexport class Stream {\n /**\n * Device that controls this stream.\n */\n public get device(): Device {\n return this._device;\n }\n private _device: Device;\n\n /**\n * The number that identifies the stream on the device.\n */\n public get streamId(): number {\n return this._streamId;\n }\n private _streamId: number;\n\n /**\n * Current mode of the stream.\n */\n public get mode(): StreamMode {\n return this._retrieveMode();\n }\n\n /**\n * An array of axes definitions the stream is set up to control.\n */\n public get axes(): StreamAxisDefinition[] {\n return this._retrieveAxes();\n }\n\n /**\n * Gets an object that provides access to I/O for this stream.\n */\n public get io(): StreamIo {\n return this._io;\n }\n private _io: StreamIo;\n\n constructor(device: Device, streamId: number) {\n this._device = device;\n this._streamId = streamId;\n this._io = new StreamIo(device, streamId);\n }\n\n /**\n * Setup the stream to control the specified axes and to queue actions on the device.\n * Allows use of lockstep axes in a stream.\n * @param axes Definition of the stream axes.\n */\n public async setupLiveComposite(\n ...axes: StreamAxisDefinition[]\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.streamId,\n axes: axes,\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 stream to control the specified axes and to queue actions on the device.\n * @param axes Numbers of physical axes to setup the stream 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.streamId,\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 stream to control the specified axes and queue actions into a stream buffer.\n * Allows use of lockstep axes in a stream.\n * @param streamBuffer The stream buffer to queue actions in.\n * @param axes Definition of the stream axes.\n */\n public async setupStoreComposite(\n streamBuffer: StreamBuffer,\n ...axes: StreamAxisDefinition[]\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.streamId,\n streamBuffer: streamBuffer.bufferId,\n axes: axes,\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 stream to control the specified axes and queue actions into a stream buffer.\n * @param streamBuffer The stream buffer to queue actions in.\n * @param axes Numbers of physical axes to setup the stream on.\n */\n public async setupStore(\n streamBuffer: StreamBuffer,\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.streamId,\n streamBuffer: streamBuffer.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 * Setup the stream to use a specified number of axes, and to queue actions in a stream buffer.\n * Afterwards, you may call the resulting stream buffer on arbitrary axes.\n * This mode does not allow for unit conversions.\n * @param streamBuffer The stream buffer to queue actions in.\n * @param axesCount The number of axes in the stream.\n */\n public async setupStoreArbitraryAxes(\n streamBuffer: StreamBuffer,\n axesCount: number\n ): Promise<void> {\n const request: requests.StreamSetupStoreArbitraryAxesRequest & gateway.Message = {\n ...requests.StreamSetupStoreArbitraryAxesRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n streamBuffer: streamBuffer.bufferId,\n axesCount: axesCount,\n toBinary() {\n return requests.StreamSetupStoreArbitraryAxesRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_setup_store_arbitrary_axes', request);\n }\n\n /**\n * Append the actions in a stream buffer to the queue.\n * @param streamBuffer The stream buffer to call.\n */\n public async call(\n streamBuffer: StreamBuffer\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.streamId,\n streamBuffer: streamBuffer.bufferId,\n toBinary() {\n return requests.StreamCallRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_call', request);\n }\n\n /**\n * Queue an absolute line movement in the stream.\n * @param endpoint Positions for the axes to move to, relative to their home positions.\n */\n public async lineAbsolute(\n ...endpoint: Measurement[]\n ): Promise<void> {\n const request: requests.StreamLineRequest & gateway.Message = {\n ...requests.StreamLineRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.ABS,\n endpoint: endpoint,\n toBinary() {\n return requests.StreamLineRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_line', request);\n }\n\n /**\n * Queue a relative line movement in the stream.\n * @param endpoint Positions for the axes to move to, relative to their positions before movement.\n */\n public async lineRelative(\n ...endpoint: Measurement[]\n ): Promise<void> {\n const request: requests.StreamLineRequest & gateway.Message = {\n ...requests.StreamLineRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.REL,\n endpoint: endpoint,\n toBinary() {\n return requests.StreamLineRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_line', request);\n }\n\n /**\n * Queue an absolute line movement in the stream, targeting a subset of the stream axes.\n * Requires at least Firmware 7.11.\n * @param targetAxesIndices Indices of the axes in the stream the movement targets.\n * Refers to the axes provided during the stream setup or further execution.\n * Indices are zero-based.\n * @param endpoint Positions for the axes to move to, relative to their home positions.\n */\n public async lineAbsoluteOn(\n targetAxesIndices: number[],\n endpoint: Measurement[]\n ): Promise<void> {\n const request: requests.StreamLineRequest & gateway.Message = {\n ...requests.StreamLineRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.ABS,\n targetAxesIndices: targetAxesIndices,\n endpoint: endpoint,\n toBinary() {\n return requests.StreamLineRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_line', request);\n }\n\n /**\n * Queue a relative line movement in the stream, targeting a subset of the stream axes.\n * Requires at least Firmware 7.11.\n * @param targetAxesIndices Indices of the axes in the stream the movement targets.\n * Refers to the axes provided during the stream setup or further execution.\n * Indices are zero-based.\n * @param endpoint Positions for the axes to move to, relative to their positions before movement.\n */\n public async lineRelativeOn(\n targetAxesIndices: number[],\n endpoint: Measurement[]\n ): Promise<void> {\n const request: requests.StreamLineRequest & gateway.Message = {\n ...requests.StreamLineRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.REL,\n targetAxesIndices: targetAxesIndices,\n endpoint: endpoint,\n toBinary() {\n return requests.StreamLineRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_line', request);\n }\n\n /**\n * Queue an absolute arc movement on the first two axes of the stream.\n * Absolute meaning that the home positions of the axes is treated as the origin.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle on which the arc exists.\n * @param centerY The second dimension of the position of the center of the circle on which the arc exists.\n * @param endX The first dimension of the end position of the arc.\n * @param endY The second dimension of the end position of the arc.\n */\n public async arcAbsolute(\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement,\n endX: Measurement,\n endY: Measurement\n ): Promise<void> {\n const request: requests.StreamArcRequest & gateway.Message = {\n ...requests.StreamArcRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.ABS,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n endX: endX,\n endY: endY,\n toBinary() {\n return requests.StreamArcRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_arc', request);\n }\n\n /**\n * Queue a relative arc movement on the first two axes of the stream.\n * Relative meaning that the current position of the axes is treated as the origin.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle on which the arc exists.\n * @param centerY The second dimension of the position of the center of the circle on which the arc exists.\n * @param endX The first dimension of the end position of the arc.\n * @param endY The second dimension of the end position of the arc.\n */\n public async arcRelative(\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement,\n endX: Measurement,\n endY: Measurement\n ): Promise<void> {\n const request: requests.StreamArcRequest & gateway.Message = {\n ...requests.StreamArcRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.REL,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n endX: endX,\n endY: endY,\n toBinary() {\n return requests.StreamArcRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_arc', request);\n }\n\n /**\n * Queue an absolute arc movement in the stream.\n * The movement will only target the specified subset of axes in the stream.\n * Requires at least Firmware 7.11.\n * @param targetAxesIndices Indices of the axes in the stream the movement targets.\n * Refers to the axes provided during the stream setup or further execution.\n * Indices are zero-based.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle on which the arc exists.\n * @param centerY The second dimension of the position of the center of the circle on which the arc exists.\n * @param endX The first dimension of the end position of the arc.\n * @param endY The second dimension of the end position of the arc.\n */\n public async arcAbsoluteOn(\n targetAxesIndices: number[],\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement,\n endX: Measurement,\n endY: Measurement\n ): Promise<void> {\n const request: requests.StreamArcRequest & gateway.Message = {\n ...requests.StreamArcRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.ABS,\n targetAxesIndices: targetAxesIndices,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n endX: endX,\n endY: endY,\n toBinary() {\n return requests.StreamArcRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_arc', request);\n }\n\n /**\n * Queue a relative arc movement in the stream.\n * The movement will only target the specified subset of axes in the stream.\n * Requires at least Firmware 7.11.\n * @param targetAxesIndices Indices of the axes in the stream the movement targets.\n * Refers to the axes provided during the stream setup or further execution.\n * Indices are zero-based.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle on which the arc exists.\n * @param centerY The second dimension of the position of the center of the circle on which the arc exists.\n * @param endX The first dimension of the end position of the arc.\n * @param endY The second dimension of the end position of the arc.\n */\n public async arcRelativeOn(\n targetAxesIndices: number[],\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement,\n endX: Measurement,\n endY: Measurement\n ): Promise<void> {\n const request: requests.StreamArcRequest & gateway.Message = {\n ...requests.StreamArcRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.REL,\n targetAxesIndices: targetAxesIndices,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n endX: endX,\n endY: endY,\n toBinary() {\n return requests.StreamArcRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_arc', request);\n }\n\n /**\n * Queue an absolute helix movement in the stream.\n * Requires at least Firmware 7.28.\n * @param targetAxesIndices Indices of the axes in the stream the movement targets.\n * Refers to the axes provided during the stream setup or further execution.\n * Indices are zero-based.\n * The first two axes refer to the helix's arc component,\n * while the rest refers to the helix's line component.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle on which the helix projects.\n * @param centerY The second dimension of the position of the center of the circle on which the helix projects.\n * @param endX The first dimension of the end position of the helix's arc component.\n * @param endY The second dimension of the end position of the helix's arc component.\n * @param endpoint Positions for the helix's line component axes, relative to their home positions.\n */\n public async helixAbsoluteOn(\n targetAxesIndices: number[],\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement,\n endX: Measurement,\n endY: Measurement,\n ...endpoint: Measurement[]\n ): Promise<void> {\n const request: requests.StreamArcRequest & gateway.Message = {\n ...requests.StreamArcRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.ABS,\n targetAxesIndices: targetAxesIndices,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n endX: endX,\n endY: endY,\n endpoint: endpoint,\n toBinary() {\n return requests.StreamArcRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_helix', request);\n }\n\n /**\n * Queue a relative helix movement in the stream.\n * Requires at least Firmware 7.28.\n * @param targetAxesIndices Indices of the axes in the stream the movement targets.\n * Refers to the axes provided during the stream setup or further execution.\n * Indices are zero-based.\n * The first two axes refer to the helix's arc component,\n * while the rest refers to the helix's line component.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle on which the helix projects.\n * @param centerY The second dimension of the position of the center of the circle on which the helix projects.\n * @param endX The first dimension of the end position of the helix's arc component.\n * @param endY The second dimension of the end position of the helix's arc component.\n * @param endpoint Positions for the helix's line component axes, relative to their positions before movement.\n */\n public async helixRelativeOn(\n targetAxesIndices: number[],\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement,\n endX: Measurement,\n endY: Measurement,\n ...endpoint: Measurement[]\n ): Promise<void> {\n const request: requests.StreamArcRequest & gateway.Message = {\n ...requests.StreamArcRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.REL,\n targetAxesIndices: targetAxesIndices,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n endX: endX,\n endY: endY,\n endpoint: endpoint,\n toBinary() {\n return requests.StreamArcRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_helix', request);\n }\n\n /**\n * Queue an absolute circle movement on the first two axes of the stream.\n * Absolute meaning that the home positions of the axes are treated as the origin.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle.\n * @param centerY The second dimension of the position of the center of the circle.\n */\n public async circleAbsolute(\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement\n ): Promise<void> {\n const request: requests.StreamCircleRequest & gateway.Message = {\n ...requests.StreamCircleRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.ABS,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n toBinary() {\n return requests.StreamCircleRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_circle', request);\n }\n\n /**\n * Queue a relative circle movement on the first two axes of the stream.\n * Relative meaning that the current position of the axes is treated as the origin.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle.\n * @param centerY The second dimension of the position of the center of the circle.\n */\n public async circleRelative(\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement\n ): Promise<void> {\n const request: requests.StreamCircleRequest & gateway.Message = {\n ...requests.StreamCircleRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.REL,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n toBinary() {\n return requests.StreamCircleRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_circle', request);\n }\n\n /**\n * Queue an absolute circle movement in the stream.\n * The movement will only target the specified subset of axes in the stream.\n * Requires at least Firmware 7.11.\n * @param targetAxesIndices Indices of the axes in the stream the movement targets.\n * Refers to the axes provided during the stream setup or further execution.\n * Indices are zero-based.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle.\n * @param centerY The second dimension of the position of the center of the circle.\n */\n public async circleAbsoluteOn(\n targetAxesIndices: number[],\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement\n ): Promise<void> {\n const request: requests.StreamCircleRequest & gateway.Message = {\n ...requests.StreamCircleRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.ABS,\n targetAxesIndices: targetAxesIndices,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n toBinary() {\n return requests.StreamCircleRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_circle', request);\n }\n\n /**\n * Queue a relative circle movement in the stream.\n * The movement will only target the specified subset of axes in the stream.\n * Requires at least Firmware 7.11.\n * @param targetAxesIndices Indices of the axes in the stream the movement targets.\n * Refers to the axes provided during the stream setup or further execution.\n * Indices are zero-based.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle.\n * @param centerY The second dimension of the position of the center of the circle.\n */\n public async circleRelativeOn(\n targetAxesIndices: number[],\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement\n ): Promise<void> {\n const request: requests.StreamCircleRequest & gateway.Message = {\n ...requests.StreamCircleRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.REL,\n targetAxesIndices: targetAxesIndices,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n toBinary() {\n return requests.StreamCircleRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_circle', request);\n }\n\n /**\n * Wait a specified time.\n * @param time Amount of time to wait.\n * @param [unit=Units.NATIVE] Units of time.\n */\n public async wait(\n time: number,\n unit: Time | Native = Units.NATIVE\n ): Promise<void> {\n const request: requests.StreamWaitRequest & gateway.Message = {\n ...requests.StreamWaitRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n time: time,\n unit: unit,\n toBinary() {\n return requests.StreamWaitRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_wait', request);\n }\n\n /**\n * Waits until the live stream 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: Stream.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.streamId,\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 stream'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 stream commands reaching the device late.\n * You can only cork an idle live stream.\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.streamId,\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 stream 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.streamId,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_uncork', request);\n }\n\n /**\n * Pauses or resumes execution of the stream in live mode.\n * The hold only takes effect during execution of motion segments.\n * @param hold True to pause execution, false to resume.\n */\n public async setHold(\n hold: boolean\n ): Promise<void> {\n const request: requests.StreamSetHoldRequest & gateway.Message = {\n ...requests.StreamSetHoldRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n hold: hold,\n toBinary() {\n return requests.StreamSetHoldRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_set_hold', request);\n }\n\n /**\n * Returns a boolean value indicating whether the live stream is executing a queued action.\n * @returns True if the stream 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.streamId,\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 * Gets the maximum speed of the live stream.\n * Converts the units using the first axis of the stream.\n * @param [unit=Units.NATIVE] Units of velocity.\n * @returns The maximum speed of the stream.\n */\n public async getMaxSpeed(\n unit: Velocity | AngularVelocity | Native = Units.NATIVE\n ): Promise<number> {\n const request: requests.StreamGetMaxSpeedRequest & gateway.Message = {\n ...requests.StreamGetMaxSpeedRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n unit: unit,\n toBinary() {\n return requests.StreamGetMaxSpeedRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.DoubleResponse>(\n 'device/stream_get_max_speed',\n request,\n requests.DoubleResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Sets the maximum speed of the live stream.\n * Converts the units using the first axis of the stream.\n * @param maxSpeed Maximum speed at which any stream action is executed.\n * @param [unit=Units.NATIVE] Units of velocity.\n */\n public async setMaxSpeed(\n maxSpeed: number,\n unit: Velocity | AngularVelocity | Native = Units.NATIVE\n ): Promise<void> {\n const request: requests.StreamSetMaxSpeedRequest & gateway.Message = {\n ...requests.StreamSetMaxSpeedRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n maxSpeed: maxSpeed,\n unit: unit,\n toBinary() {\n return requests.StreamSetMaxSpeedRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_set_max_speed', request);\n }\n\n /**\n * Gets the maximum tangential acceleration of the live stream.\n * Converts the units using the first axis of the stream.\n * @param [unit=Units.NATIVE] Units of acceleration.\n * @returns The maximum tangential acceleration of the live stream.\n */\n public async getMaxTangentialAcceleration(\n unit: Acceleration | AngularAcceleration | Native = Units.NATIVE\n ): Promise<number> {\n const request: requests.StreamGetMaxTangentialAccelerationRequest & gateway.Message = {\n ...requests.StreamGetMaxTangentialAccelerationRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n unit: unit,\n toBinary() {\n return requests.StreamGetMaxTangentialAccelerationRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.DoubleResponse>(\n 'device/stream_get_max_tangential_acceleration',\n request,\n requests.DoubleResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Sets the maximum tangential acceleration of the live stream.\n * Converts the units using the first axis of the stream.\n * @param maxTangentialAcceleration Maximum tangential acceleration at which any stream action is executed.\n * @param [unit=Units.NATIVE] Units of acceleration.\n */\n public async setMaxTangentialAcceleration(\n maxTangentialAcceleration: number,\n unit: Acceleration | AngularAcceleration | Native = Units.NATIVE\n ): Promise<void> {\n const request: requests.StreamSetMaxTangentialAccelerationRequest & gateway.Message = {\n ...requests.StreamSetMaxTangentialAccelerationRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n maxTangentialAcceleration: maxTangentialAcceleration,\n unit: unit,\n toBinary() {\n return requests.StreamSetMaxTangentialAccelerationRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_set_max_tangential_acceleration', request);\n }\n\n /**\n * Gets the maximum centripetal acceleration of the live stream.\n * Converts the units using the first axis of the stream.\n * @param [unit=Units.NATIVE] Units of acceleration.\n * @returns The maximum centripetal acceleration of the live stream.\n */\n public async getMaxCentripetalAcceleration(\n unit: Acceleration | AngularAcceleration | Native = Units.NATIVE\n ): Promise<number> {\n const request: requests.StreamGetMaxCentripetalAccelerationRequest & gateway.Message = {\n ...requests.StreamGetMaxCentripetalAccelerationRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n unit: unit,\n toBinary() {\n return requests.StreamGetMaxCentripetalAccelerationRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.DoubleResponse>(\n 'device/stream_get_max_centripetal_acceleration',\n request,\n requests.DoubleResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Sets the maximum centripetal acceleration of the live stream.\n * Converts the units using the first axis of the stream.\n * @param maxCentripetalAcceleration Maximum centripetal acceleration at which any stream action is executed.\n * @param [unit=Units.NATIVE] Units of acceleration.\n */\n public async setMaxCentripetalAcceleration(\n maxCentripetalAcceleration: number,\n unit: Acceleration | AngularAcceleration | Native = Units.NATIVE\n ): Promise<void> {\n const request: requests.StreamSetMaxCentripetalAccelerationRequest & gateway.Message = {\n ...requests.StreamSetMaxCentripetalAccelerationRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n maxCentripetalAcceleration: maxCentripetalAcceleration,\n unit: unit,\n toBinary() {\n return requests.StreamSetMaxCentripetalAccelerationRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_set_max_centripetal_acceleration', request);\n }\n\n /**\n * Returns a string which represents the stream.\n * @returns String which represents the stream.\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.streamId,\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 stream.\n * If the stream is not setup, this command does nothing.\n * Once disabled, the stream will no longer accept stream commands.\n * The stream 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.streamId,\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 stream.\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.streamId,\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 stream.\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.streamId,\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 stream status from the device\n * and returns boolean indicating whether the stream is disabled.\n * Useful to determine if streaming was interrupted by other movements.\n * @returns True if the stream 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.streamId,\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 stream throw StreamDiscontinuityException 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.streamId,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n gateway.callSync('device/stream_treat_discontinuities', request);\n }\n\n /**\n * Prevents StreamDiscontinuityException as a result of expected discontinuity when resuming streaming.\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.streamId,\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 stream.\n * @returns An array of axis numbers of the axes the stream is set up to control.\n */\n private _retrieveAxes(): StreamAxisDefinition[] {\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.streamId,\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.axes;\n }\n\n /**\n * Get the mode of the stream.\n * @returns Mode of the stream.\n */\n private _retrieveMode(): StreamMode {\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.streamId,\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.streamMode;\n }\n\n /**\n * @deprecated Use Stream.Io.WaitDigitalInput instead.\n *\n * Wait for a digital input channel to reach a given value.\n * @param channelNumber The number of the digital input channel.\n * Channel numbers are numbered from one.\n * @param value The value that the stream should wait for.\n */\n public async waitDigitalInput(\n channelNumber: number,\n value: boolean\n ): Promise<void> {\n const request: requests.StreamWaitDigitalInputRequest & gateway.Message = {\n ...requests.StreamWaitDigitalInputRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n channelNumber: channelNumber,\n value: value,\n toBinary() {\n return requests.StreamWaitDigitalInputRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_wait_digital_input', request);\n }\n\n /**\n * @deprecated Use Stream.Io.WaitAnalogInput instead.\n *\n * Wait for the value of a analog input channel to reach a condition concerning a given value.\n * @param channelNumber The number of the analog input channel.\n * Channel numbers are numbered from one.\n * @param condition A condition (e.g. <, <=, ==, !=).\n * @param value The value that the condition concerns, in Volts.\n */\n public async waitAnalogInput(\n channelNumber: number,\n condition: string,\n value: number\n ): Promise<void> {\n const request: requests.StreamWaitAnalogInputRequest & gateway.Message = {\n ...requests.StreamWaitAnalogInputRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n channelNumber: channelNumber,\n condition: condition,\n value: value,\n toBinary() {\n return requests.StreamWaitAnalogInputRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_wait_analog_input', request);\n }\n\n /**\n * @deprecated Use Stream.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.streamId,\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 Stream.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.streamId,\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 Stream.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.streamId,\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 Stream.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.streamId,\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 Stream {\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":"stream.js","sourceRoot":"","sources":["../../../src/ascii/stream.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 { Time, Native, Acceleration, AngularAcceleration, AngularVelocity, Velocity, Units } from '../units';\nimport { RotationDirection } from '../rotation_direction';\nimport * as gateway from '../gateway';\nimport * as requests from '../requests';\nimport { Measurement } from '../measurement';\nimport { StreamBuffer } from './stream_buffer';\nimport { StreamMode } from './stream_mode';\nimport { StreamAxisDefinition } from './stream_axis_definition';\nimport { StreamIo } from './stream_io';\n\n\n/**\n * A handle for a stream with this number on the device.\n * Streams provide a way to execute or store a sequence of actions.\n * Stream methods append actions to a queue which executes or stores actions in a first in, first out order.\n */\nexport class Stream {\n /**\n * Device that controls this stream.\n */\n public get device(): Device {\n return this._device;\n }\n private _device: Device;\n\n /**\n * The number that identifies the stream on the device.\n */\n public get streamId(): number {\n return this._streamId;\n }\n private _streamId: number;\n\n /**\n * Current mode of the stream.\n */\n public get mode(): StreamMode {\n return this._retrieveMode();\n }\n\n /**\n * An array of axes definitions the stream is set up to control.\n */\n public get axes(): StreamAxisDefinition[] {\n return this._retrieveAxes();\n }\n\n /**\n * Gets an object that provides access to I/O for this stream.\n */\n public get io(): StreamIo {\n return this._io;\n }\n private _io: StreamIo;\n\n constructor(device: Device, streamId: number) {\n this._device = device;\n this._streamId = streamId;\n this._io = new StreamIo(device, streamId);\n }\n\n /**\n * Setup the stream to control the specified axes and to queue actions on the device.\n * Allows use of lockstep axes in a stream.\n * @param axes Definition of the stream axes.\n */\n public async setupLiveComposite(\n ...axes: StreamAxisDefinition[]\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.streamId,\n axes: axes,\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 stream to control the specified axes and to queue actions on the device.\n * @param axes Numbers of physical axes to setup the stream 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.streamId,\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 stream to control the specified axes and queue actions into a stream buffer.\n * Allows use of lockstep axes in a stream.\n * @param streamBuffer The stream buffer to queue actions in.\n * @param axes Definition of the stream axes.\n */\n public async setupStoreComposite(\n streamBuffer: StreamBuffer,\n ...axes: StreamAxisDefinition[]\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.streamId,\n streamBuffer: streamBuffer.bufferId,\n axes: axes,\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 stream to control the specified axes and queue actions into a stream buffer.\n * @param streamBuffer The stream buffer to queue actions in.\n * @param axes Numbers of physical axes to setup the stream on.\n */\n public async setupStore(\n streamBuffer: StreamBuffer,\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.streamId,\n streamBuffer: streamBuffer.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 * Setup the stream to use a specified number of axes, and to queue actions in a stream buffer.\n * Afterwards, you may call the resulting stream buffer on arbitrary axes.\n * This mode does not allow for unit conversions.\n * @param streamBuffer The stream buffer to queue actions in.\n * @param axesCount The number of axes in the stream.\n */\n public async setupStoreArbitraryAxes(\n streamBuffer: StreamBuffer,\n axesCount: number\n ): Promise<void> {\n const request: requests.StreamSetupStoreArbitraryAxesRequest & gateway.Message = {\n ...requests.StreamSetupStoreArbitraryAxesRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n streamBuffer: streamBuffer.bufferId,\n axesCount: axesCount,\n toBinary() {\n return requests.StreamSetupStoreArbitraryAxesRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_setup_store_arbitrary_axes', request);\n }\n\n /**\n * Append the actions in a stream buffer to the queue.\n * @param streamBuffer The stream buffer to call.\n */\n public async call(\n streamBuffer: StreamBuffer\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.streamId,\n streamBuffer: streamBuffer.bufferId,\n toBinary() {\n return requests.StreamCallRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_call', request);\n }\n\n /**\n * Queue an absolute line movement in the stream.\n * @param endpoint Positions for the axes to move to, relative to their home positions.\n */\n public async lineAbsolute(\n ...endpoint: Measurement[]\n ): Promise<void> {\n const request: requests.StreamLineRequest & gateway.Message = {\n ...requests.StreamLineRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.ABS,\n endpoint: endpoint,\n toBinary() {\n return requests.StreamLineRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_line', request);\n }\n\n /**\n * Queue a relative line movement in the stream.\n * @param endpoint Positions for the axes to move to, relative to their positions before movement.\n */\n public async lineRelative(\n ...endpoint: Measurement[]\n ): Promise<void> {\n const request: requests.StreamLineRequest & gateway.Message = {\n ...requests.StreamLineRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.REL,\n endpoint: endpoint,\n toBinary() {\n return requests.StreamLineRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_line', request);\n }\n\n /**\n * Queue an absolute line movement in the stream, targeting a subset of the stream axes.\n * Requires at least Firmware 7.11.\n * @param targetAxesIndices Indices of the axes in the stream the movement targets.\n * Refers to the axes provided during the stream setup or further execution.\n * Indices are zero-based.\n * @param endpoint Positions for the axes to move to, relative to their home positions.\n */\n public async lineAbsoluteOn(\n targetAxesIndices: number[],\n endpoint: Measurement[]\n ): Promise<void> {\n const request: requests.StreamLineRequest & gateway.Message = {\n ...requests.StreamLineRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.ABS,\n targetAxesIndices: targetAxesIndices,\n endpoint: endpoint,\n toBinary() {\n return requests.StreamLineRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_line', request);\n }\n\n /**\n * Queue a relative line movement in the stream, targeting a subset of the stream axes.\n * Requires at least Firmware 7.11.\n * @param targetAxesIndices Indices of the axes in the stream the movement targets.\n * Refers to the axes provided during the stream setup or further execution.\n * Indices are zero-based.\n * @param endpoint Positions for the axes to move to, relative to their positions before movement.\n */\n public async lineRelativeOn(\n targetAxesIndices: number[],\n endpoint: Measurement[]\n ): Promise<void> {\n const request: requests.StreamLineRequest & gateway.Message = {\n ...requests.StreamLineRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.REL,\n targetAxesIndices: targetAxesIndices,\n endpoint: endpoint,\n toBinary() {\n return requests.StreamLineRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_line', request);\n }\n\n /**\n * Queue an absolute arc movement on the first two axes of the stream.\n * Absolute meaning that the home positions of the axes is treated as the origin.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle on which the arc exists.\n * @param centerY The second dimension of the position of the center of the circle on which the arc exists.\n * @param endX The first dimension of the end position of the arc.\n * @param endY The second dimension of the end position of the arc.\n */\n public async arcAbsolute(\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement,\n endX: Measurement,\n endY: Measurement\n ): Promise<void> {\n const request: requests.StreamArcRequest & gateway.Message = {\n ...requests.StreamArcRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.ABS,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n endX: endX,\n endY: endY,\n toBinary() {\n return requests.StreamArcRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_arc', request);\n }\n\n /**\n * Queue a relative arc movement on the first two axes of the stream.\n * Relative meaning that the current position of the axes is treated as the origin.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle on which the arc exists.\n * @param centerY The second dimension of the position of the center of the circle on which the arc exists.\n * @param endX The first dimension of the end position of the arc.\n * @param endY The second dimension of the end position of the arc.\n */\n public async arcRelative(\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement,\n endX: Measurement,\n endY: Measurement\n ): Promise<void> {\n const request: requests.StreamArcRequest & gateway.Message = {\n ...requests.StreamArcRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.REL,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n endX: endX,\n endY: endY,\n toBinary() {\n return requests.StreamArcRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_arc', request);\n }\n\n /**\n * Queue an absolute arc movement in the stream.\n * The movement will only target the specified subset of axes in the stream.\n * Requires at least Firmware 7.11.\n * @param targetAxesIndices Indices of the axes in the stream the movement targets.\n * Refers to the axes provided during the stream setup or further execution.\n * Indices are zero-based.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle on which the arc exists.\n * @param centerY The second dimension of the position of the center of the circle on which the arc exists.\n * @param endX The first dimension of the end position of the arc.\n * @param endY The second dimension of the end position of the arc.\n */\n public async arcAbsoluteOn(\n targetAxesIndices: number[],\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement,\n endX: Measurement,\n endY: Measurement\n ): Promise<void> {\n const request: requests.StreamArcRequest & gateway.Message = {\n ...requests.StreamArcRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.ABS,\n targetAxesIndices: targetAxesIndices,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n endX: endX,\n endY: endY,\n toBinary() {\n return requests.StreamArcRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_arc', request);\n }\n\n /**\n * Queue a relative arc movement in the stream.\n * The movement will only target the specified subset of axes in the stream.\n * Requires at least Firmware 7.11.\n * @param targetAxesIndices Indices of the axes in the stream the movement targets.\n * Refers to the axes provided during the stream setup or further execution.\n * Indices are zero-based.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle on which the arc exists.\n * @param centerY The second dimension of the position of the center of the circle on which the arc exists.\n * @param endX The first dimension of the end position of the arc.\n * @param endY The second dimension of the end position of the arc.\n */\n public async arcRelativeOn(\n targetAxesIndices: number[],\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement,\n endX: Measurement,\n endY: Measurement\n ): Promise<void> {\n const request: requests.StreamArcRequest & gateway.Message = {\n ...requests.StreamArcRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.REL,\n targetAxesIndices: targetAxesIndices,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n endX: endX,\n endY: endY,\n toBinary() {\n return requests.StreamArcRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_arc', request);\n }\n\n /**\n * Queue an absolute helix movement in the stream.\n * Requires at least Firmware 7.28.\n * @param targetAxesIndices Indices of the axes in the stream the movement targets.\n * Refers to the axes provided during the stream setup or further execution.\n * Indices are zero-based.\n * The first two axes refer to the helix's arc component,\n * while the rest refers to the helix's line component.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle on which the helix projects.\n * @param centerY The second dimension of the position of the center of the circle on which the helix projects.\n * @param endX The first dimension of the end position of the helix's arc component.\n * @param endY The second dimension of the end position of the helix's arc component.\n * @param endpoint Positions for the helix's line component axes, relative to their home positions.\n */\n public async helixAbsoluteOn(\n targetAxesIndices: number[],\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement,\n endX: Measurement,\n endY: Measurement,\n ...endpoint: Measurement[]\n ): Promise<void> {\n const request: requests.StreamArcRequest & gateway.Message = {\n ...requests.StreamArcRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.ABS,\n targetAxesIndices: targetAxesIndices,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n endX: endX,\n endY: endY,\n endpoint: endpoint,\n toBinary() {\n return requests.StreamArcRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_helix', request);\n }\n\n /**\n * Queue a relative helix movement in the stream.\n * Requires at least Firmware 7.28.\n * @param targetAxesIndices Indices of the axes in the stream the movement targets.\n * Refers to the axes provided during the stream setup or further execution.\n * Indices are zero-based.\n * The first two axes refer to the helix's arc component,\n * while the rest refers to the helix's line component.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle on which the helix projects.\n * @param centerY The second dimension of the position of the center of the circle on which the helix projects.\n * @param endX The first dimension of the end position of the helix's arc component.\n * @param endY The second dimension of the end position of the helix's arc component.\n * @param endpoint Positions for the helix's line component axes, relative to their positions before movement.\n */\n public async helixRelativeOn(\n targetAxesIndices: number[],\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement,\n endX: Measurement,\n endY: Measurement,\n ...endpoint: Measurement[]\n ): Promise<void> {\n const request: requests.StreamArcRequest & gateway.Message = {\n ...requests.StreamArcRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.REL,\n targetAxesIndices: targetAxesIndices,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n endX: endX,\n endY: endY,\n endpoint: endpoint,\n toBinary() {\n return requests.StreamArcRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_helix', request);\n }\n\n /**\n * Queue an absolute circle movement on the first two axes of the stream.\n * Absolute meaning that the home positions of the axes are treated as the origin.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle.\n * @param centerY The second dimension of the position of the center of the circle.\n */\n public async circleAbsolute(\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement\n ): Promise<void> {\n const request: requests.StreamCircleRequest & gateway.Message = {\n ...requests.StreamCircleRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.ABS,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n toBinary() {\n return requests.StreamCircleRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_circle', request);\n }\n\n /**\n * Queue a relative circle movement on the first two axes of the stream.\n * Relative meaning that the current position of the axes is treated as the origin.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle.\n * @param centerY The second dimension of the position of the center of the circle.\n */\n public async circleRelative(\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement\n ): Promise<void> {\n const request: requests.StreamCircleRequest & gateway.Message = {\n ...requests.StreamCircleRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.REL,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n toBinary() {\n return requests.StreamCircleRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_circle', request);\n }\n\n /**\n * Queue an absolute circle movement in the stream.\n * The movement will only target the specified subset of axes in the stream.\n * Requires at least Firmware 7.11.\n * @param targetAxesIndices Indices of the axes in the stream the movement targets.\n * Refers to the axes provided during the stream setup or further execution.\n * Indices are zero-based.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle.\n * @param centerY The second dimension of the position of the center of the circle.\n */\n public async circleAbsoluteOn(\n targetAxesIndices: number[],\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement\n ): Promise<void> {\n const request: requests.StreamCircleRequest & gateway.Message = {\n ...requests.StreamCircleRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.ABS,\n targetAxesIndices: targetAxesIndices,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n toBinary() {\n return requests.StreamCircleRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_circle', request);\n }\n\n /**\n * Queue a relative circle movement in the stream.\n * The movement will only target the specified subset of axes in the stream.\n * Requires at least Firmware 7.11.\n * @param targetAxesIndices Indices of the axes in the stream the movement targets.\n * Refers to the axes provided during the stream setup or further execution.\n * Indices are zero-based.\n * @param rotationDirection The direction of the rotation.\n * @param centerX The first dimension of the position of the center of the circle.\n * @param centerY The second dimension of the position of the center of the circle.\n */\n public async circleRelativeOn(\n targetAxesIndices: number[],\n rotationDirection: RotationDirection,\n centerX: Measurement,\n centerY: Measurement\n ): Promise<void> {\n const request: requests.StreamCircleRequest & gateway.Message = {\n ...requests.StreamCircleRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n type: requests.StreamSegmentType.REL,\n targetAxesIndices: targetAxesIndices,\n rotationDirection: rotationDirection,\n centerX: centerX,\n centerY: centerY,\n toBinary() {\n return requests.StreamCircleRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_circle', request);\n }\n\n /**\n * Wait a specified time.\n * @param time Amount of time to wait.\n * @param [unit=Units.NATIVE] Units of time.\n */\n public async wait(\n time: number,\n unit: Time | Native = Units.NATIVE\n ): Promise<void> {\n const request: requests.StreamWaitRequest & gateway.Message = {\n ...requests.StreamWaitRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n time: time,\n unit: unit,\n toBinary() {\n return requests.StreamWaitRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_wait', request);\n }\n\n /**\n * Waits until the live stream 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: Stream.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.streamId,\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 stream'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 stream commands reaching the device late.\n * You can only cork an idle live stream.\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.streamId,\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 stream 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.streamId,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_uncork', request);\n }\n\n /**\n * Pauses or resumes execution of the stream in live mode.\n * The hold only takes effect during execution of motion segments.\n * @param hold True to pause execution, false to resume.\n */\n public async setHold(\n hold: boolean\n ): Promise<void> {\n const request: requests.StreamSetHoldRequest & gateway.Message = {\n ...requests.StreamSetHoldRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n hold: hold,\n toBinary() {\n return requests.StreamSetHoldRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_set_hold', request);\n }\n\n /**\n * Returns a boolean value indicating whether the live stream is executing a queued action.\n * @returns True if the stream 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.streamId,\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 * Gets the maximum speed of the live stream.\n * Converts the units using the first axis of the stream.\n * @param [unit=Units.NATIVE] Units of velocity.\n * @returns The maximum speed of the stream.\n */\n public async getMaxSpeed(\n unit: Velocity | AngularVelocity | Native = Units.NATIVE\n ): Promise<number> {\n const request: requests.StreamGetMaxSpeedRequest & gateway.Message = {\n ...requests.StreamGetMaxSpeedRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n unit: unit,\n toBinary() {\n return requests.StreamGetMaxSpeedRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.DoubleResponse>(\n 'device/stream_get_max_speed',\n request,\n requests.DoubleResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Sets the maximum speed of the live stream.\n * Converts the units using the first axis of the stream.\n * @param maxSpeed Maximum speed at which any stream action is executed.\n * @param [unit=Units.NATIVE] Units of velocity.\n */\n public async setMaxSpeed(\n maxSpeed: number,\n unit: Velocity | AngularVelocity | Native = Units.NATIVE\n ): Promise<void> {\n const request: requests.StreamSetMaxSpeedRequest & gateway.Message = {\n ...requests.StreamSetMaxSpeedRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n maxSpeed: maxSpeed,\n unit: unit,\n toBinary() {\n return requests.StreamSetMaxSpeedRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_set_max_speed', request);\n }\n\n /**\n * Gets the maximum tangential acceleration of the live stream.\n * Converts the units using the first axis of the stream.\n * @param [unit=Units.NATIVE] Units of acceleration.\n * @returns The maximum tangential acceleration of the live stream.\n */\n public async getMaxTangentialAcceleration(\n unit: Acceleration | AngularAcceleration | Native = Units.NATIVE\n ): Promise<number> {\n const request: requests.StreamGetMaxTangentialAccelerationRequest & gateway.Message = {\n ...requests.StreamGetMaxTangentialAccelerationRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n unit: unit,\n toBinary() {\n return requests.StreamGetMaxTangentialAccelerationRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.DoubleResponse>(\n 'device/stream_get_max_tangential_acceleration',\n request,\n requests.DoubleResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Sets the maximum tangential acceleration of the live stream.\n * Converts the units using the first axis of the stream.\n * @param maxTangentialAcceleration Maximum tangential acceleration at which any stream action is executed.\n * @param [unit=Units.NATIVE] Units of acceleration.\n */\n public async setMaxTangentialAcceleration(\n maxTangentialAcceleration: number,\n unit: Acceleration | AngularAcceleration | Native = Units.NATIVE\n ): Promise<void> {\n const request: requests.StreamSetMaxTangentialAccelerationRequest & gateway.Message = {\n ...requests.StreamSetMaxTangentialAccelerationRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n maxTangentialAcceleration: maxTangentialAcceleration,\n unit: unit,\n toBinary() {\n return requests.StreamSetMaxTangentialAccelerationRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_set_max_tangential_acceleration', request);\n }\n\n /**\n * Gets the maximum centripetal acceleration of the live stream.\n * Converts the units using the first axis of the stream.\n * @param [unit=Units.NATIVE] Units of acceleration.\n * @returns The maximum centripetal acceleration of the live stream.\n */\n public async getMaxCentripetalAcceleration(\n unit: Acceleration | AngularAcceleration | Native = Units.NATIVE\n ): Promise<number> {\n const request: requests.StreamGetMaxCentripetalAccelerationRequest & gateway.Message = {\n ...requests.StreamGetMaxCentripetalAccelerationRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n unit: unit,\n toBinary() {\n return requests.StreamGetMaxCentripetalAccelerationRequest.toBinary(this);\n },\n };\n\n const response = await gateway.callAsync<requests.DoubleResponse>(\n 'device/stream_get_max_centripetal_acceleration',\n request,\n requests.DoubleResponse.fromBinary);\n return response.value;\n }\n\n /**\n * Sets the maximum centripetal acceleration of the live stream.\n * Converts the units using the first axis of the stream.\n * @param maxCentripetalAcceleration Maximum centripetal acceleration at which any stream action is executed.\n * @param [unit=Units.NATIVE] Units of acceleration.\n */\n public async setMaxCentripetalAcceleration(\n maxCentripetalAcceleration: number,\n unit: Acceleration | AngularAcceleration | Native = Units.NATIVE\n ): Promise<void> {\n const request: requests.StreamSetMaxCentripetalAccelerationRequest & gateway.Message = {\n ...requests.StreamSetMaxCentripetalAccelerationRequest.DEFAULT,\n interfaceId: this.device.connection.interfaceId,\n device: this.device.deviceAddress,\n streamId: this.streamId,\n maxCentripetalAcceleration: maxCentripetalAcceleration,\n unit: unit,\n toBinary() {\n return requests.StreamSetMaxCentripetalAccelerationRequest.toBinary(this);\n },\n };\n\n await gateway.callAsync('device/stream_set_max_centripetal_acceleration', request);\n }\n\n /**\n * Returns a string which represents the stream.\n * @returns String which represents the stream.\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.streamId,\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 stream.\n * If the stream is not setup, this command does nothing.\n * Once disabled, the stream will no longer accept stream commands.\n * The stream 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.streamId,\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 stream.\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.streamId,\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 stream.\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.streamId,\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 stream status from the device\n * and returns boolean indicating whether the stream is disabled.\n * Useful to determine if streaming was interrupted by other movements.\n * @returns True if the stream 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.streamId,\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 stream throw StreamDiscontinuityException 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.streamId,\n toBinary() {\n return requests.StreamEmptyRequest.toBinary(this);\n },\n };\n\n gateway.callSync('device/stream_treat_discontinuities', request);\n }\n\n /**\n * Prevents StreamDiscontinuityException as a result of expected discontinuity when resuming streaming.\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.streamId,\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 stream.\n * @returns An array of axis numbers of the axes the stream is set up to control.\n */\n private _retrieveAxes(): StreamAxisDefinition[] {\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.streamId,\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.axes;\n }\n\n /**\n * Get the mode of the stream.\n * @returns Mode of the stream.\n */\n private _retrieveMode(): StreamMode {\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.streamId,\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.streamMode;\n }\n}\n\nnamespace Stream {\n export interface WaitUntilIdleOptions {\n /**\n * Determines whether to throw error when fault is observed.\n */\n throwErrorOnFault?: boolean;\n }\n}\n"]}
@@ -14,14 +14,17 @@ export interface UnknownResponseEvent {
14
14
  axisNumber: number;
15
15
  /**
16
16
  * The reply flag indicates if the request was accepted (OK) or rejected (RJ).
17
+ * Does not apply to info messages.
17
18
  */
18
19
  replyFlag: string;
19
20
  /**
20
21
  * The device status contains BUSY when the axis is moving and IDLE otherwise.
22
+ * Does not apply to info messages.
21
23
  */
22
24
  status: string;
23
25
  /**
24
26
  * The warning flag contains the highest priority warning currently active for the device or axis.
27
+ * Does not apply to info messages.
25
28
  */
26
29
  warningFlag: string;
27
30
  /**
@@ -29,7 +32,7 @@ export interface UnknownResponseEvent {
29
32
  */
30
33
  data: string;
31
34
  /**
32
- * Type of the reply received.
35
+ * Type of the response received (only Reply or Info).
33
36
  */
34
37
  messageType: MessageType;
35
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"unknown_response_event.d.ts","sourceRoot":"","sources":["../../../src/ascii/unknown_response_event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,EAAE,WAAW,CAAC;CAE1B;AAED,eAAO,MAAM,oBAAoB;yBACV,UAAU,KAAG,oBAAoB;sBACpC,oBAAoB,KAAG,UAAU;;sBAUjC,oBAAoB,KAAG,oBAAoB;qBAa5C,KAAK,QAAQ,KAAG,oBAAoB;CAStD,CAAC"}
1
+ {"version":3,"file":"unknown_response_event.d.ts","sourceRoot":"","sources":["../../../src/ascii/unknown_response_event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,EAAE,WAAW,CAAC;CAE1B;AAED,eAAO,MAAM,oBAAoB;yBACV,UAAU,KAAG,oBAAoB;sBACpC,oBAAoB,KAAG,UAAU;;sBAUjC,oBAAoB,KAAG,oBAAoB;qBAa5C,KAAK,QAAQ,KAAG,oBAAoB;CAStD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"unknown_response_event.js","sourceRoot":"","sources":["../../../src/ascii/unknown_response_event.ts"],"names":[],"mappings":";;;AAAA,oDAAoD;AACpD,+BAA4B;AAC5B,oDAAiD;AACjD,wDAAoD;AA2CvC,QAAA,oBAAoB,GAAG;IAClC,UAAU,EAAE,CAAC,MAAkB,EAAwB,EAAE,CAAC,4BAAoB,CAAC,OAAO,CAAC,WAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACvI,QAAQ,EAAE,CAAC,KAA2B,EAAc,EAAE,CAAC,WAAI,CAAC,SAAS,CAAC,4BAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3G,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,EAAE;QACb,MAAM,EAAE,EAAE;QACV,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,EAAE;QACR,WAAW,EAAE,CAAgB;KAC9B,CAAmC;IACpC,QAAQ,EAAE,CAAC,KAA2B,EAAwB,EAAE;QAC9D,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAAC,MAAM,IAAI,SAAS,CAAC,iEAAiE,CAAC,CAAA;QAAC,CAAC;QAC7G,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAAC,MAAM,IAAI,SAAS,CAAC,gDAAgD,OAAO,KAAK,GAAG,CAAC,CAAA;QAAC,CAAC;QACvH,OAAO;YACL,aAAa,EAAE,qBAAS,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC;YAC1E,UAAU,EAAE,qBAAS,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC;YACjE,SAAS,EAAE,qBAAS,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC;YACjE,MAAM,EAAE,qBAAS,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;YACxD,WAAW,EAAE,qBAAS,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC;YACvE,IAAI,EAAE,qBAAS,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;YAClD,WAAW,EAAE,qBAAS,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,EAAE,0BAAW,EAAE,aAAa,CAAC;SAClG,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC,KAAoB,EAAwB,EAAE,CAAC,CAAC;QACxD,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;CACH,CAAC","sourcesContent":["/* This file is generated. Do not modify by hand. */\nimport { BSON } from 'bson';\nimport { sanitizer } from '../gateway/sanitizer';\nimport { MessageType } from '../ascii/message_type';\n\n/**\n * Reply that could not be matched to a request.\n */\nexport interface UnknownResponseEvent {\n /**\n * Number of the device that sent the message.\n */\n deviceAddress: number;\n\n /**\n * Number of the axis which the response applies to. Zero denotes device scope.\n */\n axisNumber: number;\n\n /**\n * The reply flag indicates if the request was accepted (OK) or rejected (RJ).\n */\n replyFlag: string;\n\n /**\n * The device status contains BUSY when the axis is moving and IDLE otherwise.\n */\n status: string;\n\n /**\n * The warning flag contains the highest priority warning currently active for the device or axis.\n */\n warningFlag: string;\n\n /**\n * Response data which varies depending on the request.\n */\n data: string;\n\n /**\n * Type of the reply received.\n */\n messageType: MessageType;\n\n}\n\nexport const UnknownResponseEvent = {\n fromBinary: (buffer: Uint8Array): UnknownResponseEvent => UnknownResponseEvent.convert(BSON.deserialize(buffer, { useBigInt64: true })),\n toBinary: (value: UnknownResponseEvent): Uint8Array => BSON.serialize(UnknownResponseEvent.sanitize(value)),\n DEFAULT: Object.freeze({\n deviceAddress: 0,\n axisNumber: 0,\n replyFlag: '',\n status: '',\n warningFlag: '',\n data: '',\n messageType: 0 as MessageType,\n }) as Readonly<UnknownResponseEvent>,\n sanitize: (value: UnknownResponseEvent): UnknownResponseEvent => {\n if (value == null) { throw new TypeError('Expected UnknownResponseEvent object but got null or undefined.') }\n if (typeof value !== 'object') { throw new TypeError(`Expected UnknownResponseEvent object but got ${typeof value}.`) }\n return {\n deviceAddress: sanitizer.sanitizeInt(value.deviceAddress, 'deviceAddress'),\n axisNumber: sanitizer.sanitizeInt(value.axisNumber, 'axisNumber'),\n replyFlag: sanitizer.sanitizeString(value.replyFlag, 'replyFlag'),\n status: sanitizer.sanitizeString(value.status, 'status'),\n warningFlag: sanitizer.sanitizeString(value.warningFlag, 'warningFlag'),\n data: sanitizer.sanitizeString(value.data, 'data'),\n messageType: sanitizer.sanitizeEnum(value.messageType, 'MessageType', MessageType, 'messageType'),\n };\n },\n convert: (value: BSON.Document): UnknownResponseEvent => ({\n deviceAddress: value.deviceAddress,\n axisNumber: value.axisNumber,\n replyFlag: value.replyFlag,\n status: value.status,\n warningFlag: value.warningFlag,\n data: value.data,\n messageType: value.messageType,\n })\n};\n"]}
1
+ {"version":3,"file":"unknown_response_event.js","sourceRoot":"","sources":["../../../src/ascii/unknown_response_event.ts"],"names":[],"mappings":";;;AAAA,oDAAoD;AACpD,+BAA4B;AAC5B,oDAAiD;AACjD,wDAAoD;AA8CvC,QAAA,oBAAoB,GAAG;IAClC,UAAU,EAAE,CAAC,MAAkB,EAAwB,EAAE,CAAC,4BAAoB,CAAC,OAAO,CAAC,WAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACvI,QAAQ,EAAE,CAAC,KAA2B,EAAc,EAAE,CAAC,WAAI,CAAC,SAAS,CAAC,4BAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3G,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,EAAE;QACb,MAAM,EAAE,EAAE;QACV,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,EAAE;QACR,WAAW,EAAE,CAAgB;KAC9B,CAAmC;IACpC,QAAQ,EAAE,CAAC,KAA2B,EAAwB,EAAE;QAC9D,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAAC,MAAM,IAAI,SAAS,CAAC,iEAAiE,CAAC,CAAA;QAAC,CAAC;QAC7G,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAAC,MAAM,IAAI,SAAS,CAAC,gDAAgD,OAAO,KAAK,GAAG,CAAC,CAAA;QAAC,CAAC;QACvH,OAAO;YACL,aAAa,EAAE,qBAAS,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC;YAC1E,UAAU,EAAE,qBAAS,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC;YACjE,SAAS,EAAE,qBAAS,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC;YACjE,MAAM,EAAE,qBAAS,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;YACxD,WAAW,EAAE,qBAAS,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC;YACvE,IAAI,EAAE,qBAAS,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;YAClD,WAAW,EAAE,qBAAS,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,EAAE,0BAAW,EAAE,aAAa,CAAC;SAClG,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC,KAAoB,EAAwB,EAAE,CAAC,CAAC;QACxD,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;CACH,CAAC","sourcesContent":["/* This file is generated. Do not modify by hand. */\nimport { BSON } from 'bson';\nimport { sanitizer } from '../gateway/sanitizer';\nimport { MessageType } from '../ascii/message_type';\n\n/**\n * Reply that could not be matched to a request.\n */\nexport interface UnknownResponseEvent {\n /**\n * Number of the device that sent the message.\n */\n deviceAddress: number;\n\n /**\n * Number of the axis which the response applies to. Zero denotes device scope.\n */\n axisNumber: number;\n\n /**\n * The reply flag indicates if the request was accepted (OK) or rejected (RJ).\n * Does not apply to info messages.\n */\n replyFlag: string;\n\n /**\n * The device status contains BUSY when the axis is moving and IDLE otherwise.\n * Does not apply to info messages.\n */\n status: string;\n\n /**\n * The warning flag contains the highest priority warning currently active for the device or axis.\n * Does not apply to info messages.\n */\n warningFlag: string;\n\n /**\n * Response data which varies depending on the request.\n */\n data: string;\n\n /**\n * Type of the response received (only Reply or Info).\n */\n messageType: MessageType;\n\n}\n\nexport const UnknownResponseEvent = {\n fromBinary: (buffer: Uint8Array): UnknownResponseEvent => UnknownResponseEvent.convert(BSON.deserialize(buffer, { useBigInt64: true })),\n toBinary: (value: UnknownResponseEvent): Uint8Array => BSON.serialize(UnknownResponseEvent.sanitize(value)),\n DEFAULT: Object.freeze({\n deviceAddress: 0,\n axisNumber: 0,\n replyFlag: '',\n status: '',\n warningFlag: '',\n data: '',\n messageType: 0 as MessageType,\n }) as Readonly<UnknownResponseEvent>,\n sanitize: (value: UnknownResponseEvent): UnknownResponseEvent => {\n if (value == null) { throw new TypeError('Expected UnknownResponseEvent object but got null or undefined.') }\n if (typeof value !== 'object') { throw new TypeError(`Expected UnknownResponseEvent object but got ${typeof value}.`) }\n return {\n deviceAddress: sanitizer.sanitizeInt(value.deviceAddress, 'deviceAddress'),\n axisNumber: sanitizer.sanitizeInt(value.axisNumber, 'axisNumber'),\n replyFlag: sanitizer.sanitizeString(value.replyFlag, 'replyFlag'),\n status: sanitizer.sanitizeString(value.status, 'status'),\n warningFlag: sanitizer.sanitizeString(value.warningFlag, 'warningFlag'),\n data: sanitizer.sanitizeString(value.data, 'data'),\n messageType: sanitizer.sanitizeEnum(value.messageType, 'MessageType', MessageType, 'messageType'),\n };\n },\n convert: (value: BSON.Document): UnknownResponseEvent => ({\n deviceAddress: value.deviceAddress,\n axisNumber: value.axisNumber,\n replyFlag: value.replyFlag,\n status: value.status,\n warningFlag: value.warningFlag,\n data: value.data,\n messageType: value.messageType,\n })\n};\n"]}
@@ -21,6 +21,17 @@ export declare class Connection {
21
21
  * Default baud rate for serial connections.
22
22
  */
23
23
  static readonly DEFAULT_BAUD_RATE: number;
24
+ /**
25
+ * Commands sent over this port are forwarded to the device chain.
26
+ * The bandwidth may be limited as the commands are forwarded over a serial connection.
27
+ */
28
+ static readonly TCP_PORT_CHAIN: number;
29
+ /**
30
+ * Commands send over this port are processed only by the device
31
+ * and not forwarded to the rest of the chain.
32
+ * Using this port typically makes the communication faster.
33
+ */
34
+ static readonly TCP_PORT_DEVICE_ONLY: number;
24
35
  /**
25
36
  * The interface ID identifies thisConnection instance with the underlying library.
26
37
  */
@@ -44,12 +55,12 @@ export declare class Connection {
44
55
  /**
45
56
  * Opens a TCP connection.
46
57
  * @param hostName Hostname or IP address.
47
- * @param port Port number.
58
+ * @param [options.port=Connection.TCP_PORT_CHAIN] Optional port number (defaults to 55550).
48
59
  * @param [options.useMessageIds=false] Enable use of message IDs (defaults to disabled).
49
60
  * All your devices must be pre-configured to match.
50
61
  * @returns An object representing the connection.
51
62
  */
52
- static openTcp(hostName: string, port: number, options?: Connection.OpenTcpOptions): Promise<Connection>;
63
+ static openTcp(hostName: string, options?: Connection.OpenTcpOptions): Promise<Connection>;
53
64
  /**
54
65
  * Close the connection.
55
66
  */
@@ -146,6 +157,10 @@ declare namespace Connection {
146
157
  useMessageIds?: boolean;
147
158
  }
148
159
  interface OpenTcpOptions {
160
+ /**
161
+ * Optional port number (defaults to 55550).
162
+ */
163
+ port?: number;
149
164
  /**
150
165
  * Enable use of message IDs (defaults to disabled).
151
166
  * All your devices must be pre-configured to match.
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/binary/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/binary/connection.ts"],"names":[],"mappings":"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"}
@@ -82,13 +82,13 @@ class Connection {
82
82
  /**
83
83
  * Opens a TCP connection.
84
84
  * @param hostName Hostname or IP address.
85
- * @param port Port number.
85
+ * @param [options.port=Connection.TCP_PORT_CHAIN] Optional port number (defaults to 55550).
86
86
  * @param [options.useMessageIds=false] Enable use of message IDs (defaults to disabled).
87
87
  * All your devices must be pre-configured to match.
88
88
  * @returns An object representing the connection.
89
89
  */
90
- static async openTcp(hostName, port, options = {}) {
91
- const { useMessageIds = false, } = options;
90
+ static async openTcp(hostName, options = {}) {
91
+ const { port = Connection.TCP_PORT_CHAIN, useMessageIds = false, } = options;
92
92
  const request = {
93
93
  ...requests.OpenBinaryInterfaceRequest.DEFAULT,
94
94
  interfaceType: requests.InterfaceType.TCP,
@@ -306,4 +306,15 @@ exports.Connection = Connection;
306
306
  * Default baud rate for serial connections.
307
307
  */
308
308
  Connection.DEFAULT_BAUD_RATE = 9600;
309
+ /**
310
+ * Commands sent over this port are forwarded to the device chain.
311
+ * The bandwidth may be limited as the commands are forwarded over a serial connection.
312
+ */
313
+ Connection.TCP_PORT_CHAIN = 55550;
314
+ /**
315
+ * Commands send over this port are processed only by the device
316
+ * and not forwarded to the rest of the chain.
317
+ * Using this port typically makes the communication faster.
318
+ */
319
+ Connection.TCP_PORT_DEVICE_ONLY = 55551;
309
320
  //# sourceMappingURL=connection.js.map