@zaber/motion 2.9.0 → 2.10.1

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 (80) hide show
  1. package/dist/binding/wasm/zaber-motion-lib.wasm +0 -0
  2. package/dist/lib/ascii/connection.d.ts +11 -0
  3. package/dist/lib/ascii/connection.js +11 -0
  4. package/dist/lib/ascii/connection.js.map +1 -1
  5. package/dist/lib/ascii/device.d.ts +10 -0
  6. package/dist/lib/ascii/device.js +14 -0
  7. package/dist/lib/ascii/device.js.map +1 -1
  8. package/dist/lib/ascii/device_identity.d.ts +4 -0
  9. package/dist/lib/ascii/device_identity.js +1 -0
  10. package/dist/lib/ascii/device_identity.js.map +1 -1
  11. package/dist/lib/ascii/index.d.ts +3 -0
  12. package/dist/lib/ascii/index.js +7 -1
  13. package/dist/lib/ascii/index.js.map +1 -1
  14. package/dist/lib/ascii/oscilloscope.d.ts +62 -0
  15. package/dist/lib/ascii/oscilloscope.js +153 -0
  16. package/dist/lib/ascii/oscilloscope.js.map +1 -0
  17. package/dist/lib/ascii/oscilloscope_capture_properties.d.ts +16 -0
  18. package/dist/lib/ascii/oscilloscope_capture_properties.js +18 -0
  19. package/dist/lib/ascii/oscilloscope_capture_properties.js.map +1 -0
  20. package/dist/lib/ascii/oscilloscope_data.d.ts +67 -0
  21. package/dist/lib/ascii/oscilloscope_data.js +151 -0
  22. package/dist/lib/ascii/oscilloscope_data.js.map +1 -0
  23. package/dist/lib/ascii/stream.d.ts +17 -0
  24. package/dist/lib/ascii/stream.js +38 -0
  25. package/dist/lib/ascii/stream.js.map +1 -1
  26. package/dist/lib/ascii/stream_axis_definition.js +3 -0
  27. package/dist/lib/ascii/stream_axis_definition.js.map +1 -1
  28. package/dist/lib/ascii/transport.d.ts +4 -0
  29. package/dist/lib/ascii/transport.js +4 -0
  30. package/dist/lib/ascii/transport.js.map +1 -1
  31. package/dist/lib/ascii_ns.d.ts +6 -0
  32. package/dist/lib/ascii_ns.js +3 -0
  33. package/dist/lib/ascii_ns.js.map +1 -1
  34. package/dist/lib/exceptions/index.d.ts +1 -0
  35. package/dist/lib/exceptions/index.js +4 -2
  36. package/dist/lib/exceptions/index.js.map +1 -1
  37. package/dist/lib/exceptions/invalid_operation_exception.d.ts +7 -0
  38. package/dist/lib/exceptions/invalid_operation_exception.js +17 -0
  39. package/dist/lib/exceptions/invalid_operation_exception.js.map +1 -0
  40. package/dist/lib/gateway/convert_exceptions.js +1 -0
  41. package/dist/lib/gateway/convert_exceptions.js.map +1 -1
  42. package/dist/lib/gcode/axis_definition.d.ts +18 -0
  43. package/dist/lib/gcode/{translator_axis_definition.js → axis_definition.js} +11 -10
  44. package/dist/lib/gcode/axis_definition.js.map +1 -0
  45. package/dist/lib/gcode/axis_mapping.js +3 -0
  46. package/dist/lib/gcode/axis_mapping.js.map +1 -1
  47. package/dist/lib/gcode/axis_transformation.d.ts +21 -0
  48. package/dist/lib/gcode/axis_transformation.js +43 -0
  49. package/dist/lib/gcode/axis_transformation.js.map +1 -0
  50. package/dist/lib/gcode/device_definition.d.ts +24 -0
  51. package/dist/lib/gcode/{translator_definition.js → device_definition.js} +14 -9
  52. package/dist/lib/gcode/device_definition.js.map +1 -0
  53. package/dist/lib/gcode/index.d.ts +4 -3
  54. package/dist/lib/gcode/index.js +9 -7
  55. package/dist/lib/gcode/index.js.map +1 -1
  56. package/dist/lib/gcode/offline_translator.d.ts +114 -0
  57. package/dist/lib/gcode/offline_translator.js +226 -0
  58. package/dist/lib/gcode/offline_translator.js.map +1 -0
  59. package/dist/lib/gcode/translator.d.ts +66 -12
  60. package/dist/lib/gcode/translator.js +113 -17
  61. package/dist/lib/gcode/translator.js.map +1 -1
  62. package/dist/lib/gcode/translator_config.d.ts +6 -6
  63. package/dist/lib/gcode/translator_config.js +7 -4
  64. package/dist/lib/gcode/translator_config.js.map +1 -1
  65. package/dist/lib/gcode_ns.d.ts +8 -6
  66. package/dist/lib/gcode_ns.js +4 -3
  67. package/dist/lib/gcode_ns.js.map +1 -1
  68. package/dist/lib/measurement.js +3 -0
  69. package/dist/lib/measurement.js.map +1 -1
  70. package/dist/lib/protobufs/main_pb.d.ts +621 -14
  71. package/dist/lib/protobufs/main_pb.js +6265 -1581
  72. package/dist/lib/protobufs/main_pb.js.map +1 -1
  73. package/package.json +1 -1
  74. package/dist/lib/gcode/translator_axis_definition.d.ts +0 -20
  75. package/dist/lib/gcode/translator_axis_definition.js.map +0 -1
  76. package/dist/lib/gcode/translator_definition.d.ts +0 -18
  77. package/dist/lib/gcode/translator_definition.js.map +0 -1
  78. package/dist/lib/gcode/translator_live.d.ts +0 -70
  79. package/dist/lib/gcode/translator_live.js +0 -147
  80. package/dist/lib/gcode/translator_live.js.map +0 -1
@@ -21,28 +21,29 @@ var __importStar = (this && this.__importStar) || function (mod) {
21
21
  return result;
22
22
  };
23
23
  Object.defineProperty(exports, "__esModule", { value: true });
24
- exports.TranslatorAxisDefinition = void 0;
24
+ exports.AxisDefinition = void 0;
25
25
  const gateway = __importStar(require("../gateway"));
26
- var TranslatorAxisDefinition;
27
- (function (TranslatorAxisDefinition) {
28
- TranslatorAxisDefinition.__type = 'TranslatorAxisDefinition';
26
+ var AxisDefinition;
27
+ (function (AxisDefinition) {
28
+ AxisDefinition.__type = 'AxisDefinition';
29
29
  /** @internal */
30
30
  function fromProtobuf(pbData) {
31
31
  return {
32
- axisLetter: pbData.axisLetter,
33
32
  peripheralId: pbData.peripheralId,
34
33
  microstepResolution: pbData.microstepResolution,
35
34
  };
36
35
  }
37
- TranslatorAxisDefinition.fromProtobuf = fromProtobuf;
36
+ AxisDefinition.fromProtobuf = fromProtobuf;
38
37
  /** @internal */
39
38
  function toProtobuf(source) {
40
39
  const pbData = new gateway.TranslatorAxisDefinition();
41
- pbData.setAxisLetter(source.axisLetter);
40
+ if (source == null) {
41
+ return pbData;
42
+ }
42
43
  pbData.setPeripheralId(source.peripheralId);
43
44
  pbData.setMicrostepResolution(source.microstepResolution);
44
45
  return pbData;
45
46
  }
46
- TranslatorAxisDefinition.toProtobuf = toProtobuf;
47
- })(TranslatorAxisDefinition = exports.TranslatorAxisDefinition || (exports.TranslatorAxisDefinition = {}));
48
- //# sourceMappingURL=translator_axis_definition.js.map
47
+ AxisDefinition.toProtobuf = toProtobuf;
48
+ })(AxisDefinition = exports.AxisDefinition || (exports.AxisDefinition = {}));
49
+ //# sourceMappingURL=axis_definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axis_definition.js","sourceRoot":"","sources":["../../../src/gcode/axis_definition.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,sDAAsD;;;;;;;;;;;;;;;;;;;;;;AAEtD,oDAAsC;AAoBtC,IAAiB,cAAc,CAqB9B;AArBD,WAAiB,cAAc;IAChB,qBAAM,GAAG,gBAAgB,CAAC;IAEvC,gBAAgB;IAChB,SAAgB,YAAY,CAAC,MAAiD;QAC5E,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;SAChD,CAAC;IACJ,CAAC;IALe,2BAAY,eAK3B,CAAA;IACD,gBAAgB;IAChB,SAAgB,UAAU,CAAC,MAAyC;QAClE,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;QACtD,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,OAAO,MAAM,CAAC;SACf;QAED,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,mBAAoB,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC;IATe,yBAAU,aASzB,CAAA;AACH,CAAC,EArBgB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAqB9B","sourcesContent":["// ==== THIS FILE IS GENERATED FROM A TEMPLATE ==== //\n// ============= DO NOT EDIT DIRECTLY ============= //\n\nimport * as gateway from '../gateway';\n\n/**\n * Defines an axis of the translator.\n */\nexport interface AxisDefinition {\n /**\n * ID of the peripheral.\n */\n peripheralId: number;\n\n /**\n * Microstep resolution of the axis.\n * Can be obtained by reading the resolution setting.\n * Leave empty if the axis does not have the setting.\n */\n microstepResolution?: number;\n\n}\n\nexport namespace AxisDefinition {\n export const __type = 'AxisDefinition';\n\n /** @internal */\n export function fromProtobuf(pbData: gateway.TranslatorAxisDefinition.AsObject): AxisDefinition {\n return {\n peripheralId: pbData.peripheralId,\n microstepResolution: pbData.microstepResolution,\n };\n }\n /** @internal */\n export function toProtobuf(source: AxisDefinition | null | undefined): gateway.TranslatorAxisDefinition {\n const pbData = new gateway.TranslatorAxisDefinition();\n if (source == null) {\n return pbData;\n }\n\n pbData.setPeripheralId(source.peripheralId);\n pbData.setMicrostepResolution(source.microstepResolution!);\n return pbData;\n }\n}\n"]}
@@ -29,6 +29,9 @@ var AxisMapping;
29
29
  /** @internal */
30
30
  function toProtobuf(source) {
31
31
  const pbData = new gateway.TranslatorAxisMapping();
32
+ if (source == null) {
33
+ return pbData;
34
+ }
32
35
  pbData.setAxisLetter(source.axisLetter);
33
36
  pbData.setAxisIndex(source.axisIndex);
34
37
  return pbData;
@@ -1 +1 @@
1
- {"version":3,"file":"axis_mapping.js","sourceRoot":"","sources":["../../../src/gcode/axis_mapping.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,sDAAsD;;;;;;;;;;;;;;;;;;;;;;AAEtD,oDAAsC;AAkBtC,IAAiB,WAAW,CAU3B;AAVD,WAAiB,WAAW;IACb,kBAAM,GAAG,aAAa,CAAC;IAEpC,gBAAgB;IAChB,SAAgB,UAAU,CAAC,MAAmB;QAC5C,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACnD,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IALe,sBAAU,aAKzB,CAAA;AACH,CAAC,EAVgB,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAU3B","sourcesContent":["// ==== THIS FILE IS GENERATED FROM A TEMPLATE ==== //\n// ============= DO NOT EDIT DIRECTLY ============= //\n\nimport * as gateway from '../gateway';\n\n/**\n * Maps a translator axis to a Zaber stream axis.\n */\nexport interface AxisMapping {\n /**\n * Letter of the translator axis (X,Y,Z,A,B,C,E).\n */\n axisLetter: string;\n\n /**\n * Index of the stream axis.\n */\n axisIndex: number;\n\n}\n\nexport namespace AxisMapping {\n export const __type = 'AxisMapping';\n\n /** @internal */\n export function toProtobuf(source: AxisMapping): gateway.TranslatorAxisMapping {\n const pbData = new gateway.TranslatorAxisMapping();\n pbData.setAxisLetter(source.axisLetter);\n pbData.setAxisIndex(source.axisIndex);\n return pbData;\n }\n}\n"]}
1
+ {"version":3,"file":"axis_mapping.js","sourceRoot":"","sources":["../../../src/gcode/axis_mapping.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,sDAAsD;;;;;;;;;;;;;;;;;;;;;;AAEtD,oDAAsC;AAkBtC,IAAiB,WAAW,CAc3B;AAdD,WAAiB,WAAW;IACb,kBAAM,GAAG,aAAa,CAAC;IAEpC,gBAAgB;IAChB,SAAgB,UAAU,CAAC,MAAsC;QAC/D,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACnD,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,OAAO,MAAM,CAAC;SACf;QAED,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IATe,sBAAU,aASzB,CAAA;AACH,CAAC,EAdgB,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAc3B","sourcesContent":["// ==== THIS FILE IS GENERATED FROM A TEMPLATE ==== //\n// ============= DO NOT EDIT DIRECTLY ============= //\n\nimport * as gateway from '../gateway';\n\n/**\n * Maps a translator axis to a Zaber stream axis.\n */\nexport interface AxisMapping {\n /**\n * Letter of the translator axis (X,Y,Z,A,B,C,E).\n */\n axisLetter: string;\n\n /**\n * Index of the stream axis.\n */\n axisIndex: number;\n\n}\n\nexport namespace AxisMapping {\n export const __type = 'AxisMapping';\n\n /** @internal */\n export function toProtobuf(source: AxisMapping | null | undefined): gateway.TranslatorAxisMapping {\n const pbData = new gateway.TranslatorAxisMapping();\n if (source == null) {\n return pbData;\n }\n\n pbData.setAxisLetter(source.axisLetter);\n pbData.setAxisIndex(source.axisIndex);\n return pbData;\n }\n}\n"]}
@@ -0,0 +1,21 @@
1
+ import { Measurement } from '../measurement';
2
+ /**
3
+ * Represents a transformation of a translator axis.
4
+ */
5
+ export interface AxisTransformation {
6
+ /**
7
+ * Letter of the translator axis (X,Y,Z,A,B,C,E).
8
+ */
9
+ axisLetter: string;
10
+ /**
11
+ * Scaling factor.
12
+ */
13
+ scaling?: number;
14
+ /**
15
+ * Translation distance.
16
+ */
17
+ translation?: Measurement;
18
+ }
19
+ export declare namespace AxisTransformation {
20
+ const __type = "AxisTransformation";
21
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ // ==== THIS FILE IS GENERATED FROM A TEMPLATE ==== //
3
+ // ============= DO NOT EDIT DIRECTLY ============= //
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
7
+ }) : (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ o[k2] = m[k];
10
+ }));
11
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
12
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
13
+ }) : function(o, v) {
14
+ o["default"] = v;
15
+ });
16
+ var __importStar = (this && this.__importStar) || function (mod) {
17
+ if (mod && mod.__esModule) return mod;
18
+ var result = {};
19
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
20
+ __setModuleDefault(result, mod);
21
+ return result;
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.AxisTransformation = void 0;
25
+ const gateway = __importStar(require("../gateway"));
26
+ const measurement_1 = require("../measurement");
27
+ var AxisTransformation;
28
+ (function (AxisTransformation) {
29
+ AxisTransformation.__type = 'AxisTransformation';
30
+ /** @internal */
31
+ function toProtobuf(source) {
32
+ const pbData = new gateway.TranslatorAxisTransformation();
33
+ if (source == null) {
34
+ return pbData;
35
+ }
36
+ pbData.setAxisLetter(source.axisLetter);
37
+ pbData.setScaling(source.scaling);
38
+ pbData.setTranslation(measurement_1.Measurement.toProtobuf(source.translation));
39
+ return pbData;
40
+ }
41
+ AxisTransformation.toProtobuf = toProtobuf;
42
+ })(AxisTransformation = exports.AxisTransformation || (exports.AxisTransformation = {}));
43
+ //# sourceMappingURL=axis_transformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axis_transformation.js","sourceRoot":"","sources":["../../../src/gcode/axis_transformation.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,sDAAsD;;;;;;;;;;;;;;;;;;;;;;AAEtD,oDAAsC;AACtC,gDAA6C;AAuB7C,IAAiB,kBAAkB,CAelC;AAfD,WAAiB,kBAAkB;IACpB,yBAAM,GAAG,oBAAoB,CAAC;IAE3C,gBAAgB;IAChB,SAAgB,UAAU,CAAC,MAA6C;QACtE,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,4BAA4B,EAAE,CAAC;QAC1D,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,OAAO,MAAM,CAAC;SACf;QAED,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAQ,CAAC,CAAC;QACnC,MAAM,CAAC,cAAc,CAAC,yBAAW,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC;IAChB,CAAC;IAVe,6BAAU,aAUzB,CAAA;AACH,CAAC,EAfgB,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAelC","sourcesContent":["// ==== THIS FILE IS GENERATED FROM A TEMPLATE ==== //\n// ============= DO NOT EDIT DIRECTLY ============= //\n\nimport * as gateway from '../gateway';\nimport { Measurement } from '../measurement';\n\n/**\n * Represents a transformation of a translator axis.\n */\nexport interface AxisTransformation {\n /**\n * Letter of the translator axis (X,Y,Z,A,B,C,E).\n */\n axisLetter: string;\n\n /**\n * Scaling factor.\n */\n scaling?: number;\n\n /**\n * Translation distance.\n */\n translation?: Measurement;\n\n}\n\nexport namespace AxisTransformation {\n export const __type = 'AxisTransformation';\n\n /** @internal */\n export function toProtobuf(source: AxisTransformation | null | undefined): gateway.TranslatorAxisTransformation {\n const pbData = new gateway.TranslatorAxisTransformation();\n if (source == null) {\n return pbData;\n }\n\n pbData.setAxisLetter(source.axisLetter);\n pbData.setScaling(source.scaling!);\n pbData.setTranslation(Measurement.toProtobuf(source.translation));\n return pbData;\n }\n}\n"]}
@@ -0,0 +1,24 @@
1
+ import { AxisDefinition } from './axis_definition';
2
+ import { Measurement } from '../measurement';
3
+ /**
4
+ * Holds information about device and its axes for purpose of a translator.
5
+ */
6
+ export interface DeviceDefinition {
7
+ /**
8
+ * Device ID of the controller.
9
+ * Can be obtained from device settings.
10
+ */
11
+ deviceId: number;
12
+ /**
13
+ * Applicable axes of the device.
14
+ */
15
+ axes: AxisDefinition[];
16
+ /**
17
+ * The smallest of each axis' maxspeed setting value.
18
+ * This value becomes the traverse rate of the translator.
19
+ */
20
+ maxSpeed: Measurement;
21
+ }
22
+ export declare namespace DeviceDefinition {
23
+ const __type = "DeviceDefinition";
24
+ }
@@ -21,19 +21,24 @@ var __importStar = (this && this.__importStar) || function (mod) {
21
21
  return result;
22
22
  };
23
23
  Object.defineProperty(exports, "__esModule", { value: true });
24
- exports.TranslatorDefinition = void 0;
24
+ exports.DeviceDefinition = void 0;
25
25
  const gateway = __importStar(require("../gateway"));
26
- const translator_axis_definition_1 = require("./translator_axis_definition");
27
- var TranslatorDefinition;
28
- (function (TranslatorDefinition) {
29
- TranslatorDefinition.__type = 'TranslatorDefinition';
26
+ const axis_definition_1 = require("./axis_definition");
27
+ const measurement_1 = require("../measurement");
28
+ var DeviceDefinition;
29
+ (function (DeviceDefinition) {
30
+ DeviceDefinition.__type = 'DeviceDefinition';
30
31
  /** @internal */
31
32
  function toProtobuf(source) {
32
33
  const pbData = new gateway.TranslatorDefinition();
34
+ if (source == null) {
35
+ return pbData;
36
+ }
33
37
  pbData.setDeviceId(source.deviceId);
34
- pbData.setAxesList(source.axes.map(item => translator_axis_definition_1.TranslatorAxisDefinition.toProtobuf(item)));
38
+ pbData.setAxesList(source.axes.map(item => axis_definition_1.AxisDefinition.toProtobuf(item)));
39
+ pbData.setMaxSpeed(measurement_1.Measurement.toProtobuf(source.maxSpeed));
35
40
  return pbData;
36
41
  }
37
- TranslatorDefinition.toProtobuf = toProtobuf;
38
- })(TranslatorDefinition = exports.TranslatorDefinition || (exports.TranslatorDefinition = {}));
39
- //# sourceMappingURL=translator_definition.js.map
42
+ DeviceDefinition.toProtobuf = toProtobuf;
43
+ })(DeviceDefinition = exports.DeviceDefinition || (exports.DeviceDefinition = {}));
44
+ //# sourceMappingURL=device_definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device_definition.js","sourceRoot":"","sources":["../../../src/gcode/device_definition.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,sDAAsD;;;;;;;;;;;;;;;;;;;;;;AAEtD,oDAAsC;AACtC,uDAAmD;AACnD,gDAA6C;AAyB7C,IAAiB,gBAAgB,CAehC;AAfD,WAAiB,gBAAgB;IAClB,uBAAM,GAAG,kBAAkB,CAAC;IAEzC,gBAAgB;IAChB,SAAgB,UAAU,CAAC,MAA2C;QACpE,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAClD,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,OAAO,MAAM,CAAC;SACf;QAED,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,gCAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,WAAW,CAAC,yBAAW,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC;IAChB,CAAC;IAVe,2BAAU,aAUzB,CAAA;AACH,CAAC,EAfgB,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAehC","sourcesContent":["// ==== THIS FILE IS GENERATED FROM A TEMPLATE ==== //\n// ============= DO NOT EDIT DIRECTLY ============= //\n\nimport * as gateway from '../gateway';\nimport { AxisDefinition } from './axis_definition';\nimport { Measurement } from '../measurement';\n\n/**\n * Holds information about device and its axes for purpose of a translator.\n */\nexport interface DeviceDefinition {\n /**\n * Device ID of the controller.\n * Can be obtained from device settings.\n */\n deviceId: number;\n\n /**\n * Applicable axes of the device.\n */\n axes: AxisDefinition[];\n\n /**\n * The smallest of each axis' maxspeed setting value.\n * This value becomes the traverse rate of the translator.\n */\n maxSpeed: Measurement;\n\n}\n\nexport namespace DeviceDefinition {\n export const __type = 'DeviceDefinition';\n\n /** @internal */\n export function toProtobuf(source: DeviceDefinition | null | undefined): gateway.TranslatorDefinition {\n const pbData = new gateway.TranslatorDefinition();\n if (source == null) {\n return pbData;\n }\n\n pbData.setDeviceId(source.deviceId);\n pbData.setAxesList(source.axes.map(item => AxisDefinition.toProtobuf(item)));\n pbData.setMaxSpeed(Measurement.toProtobuf(source.maxSpeed));\n return pbData;\n }\n}\n"]}
@@ -1,8 +1,9 @@
1
1
  export { TranslateMessage } from './translate_message';
2
2
  export { TranslateResult } from './translate_result';
3
3
  export { TranslatorConfig } from './translator_config';
4
- export { TranslatorAxisDefinition } from './translator_axis_definition';
5
- export { TranslatorDefinition } from './translator_definition';
4
+ export { AxisDefinition } from './axis_definition';
5
+ export { DeviceDefinition } from './device_definition';
6
6
  export { AxisMapping } from './axis_mapping';
7
+ export { AxisTransformation } from './axis_transformation';
7
8
  export { Translator } from './translator';
8
- export { TranslatorLive } from './translator_live';
9
+ export { OfflineTranslator } from './offline_translator';
@@ -1,20 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TranslatorLive = exports.Translator = exports.AxisMapping = exports.TranslatorDefinition = exports.TranslatorAxisDefinition = exports.TranslatorConfig = exports.TranslateResult = exports.TranslateMessage = void 0;
3
+ exports.OfflineTranslator = exports.Translator = exports.AxisTransformation = exports.AxisMapping = exports.DeviceDefinition = exports.AxisDefinition = exports.TranslatorConfig = exports.TranslateResult = exports.TranslateMessage = void 0;
4
4
  var translate_message_1 = require("./translate_message");
5
5
  Object.defineProperty(exports, "TranslateMessage", { enumerable: true, get: function () { return translate_message_1.TranslateMessage; } });
6
6
  var translate_result_1 = require("./translate_result");
7
7
  Object.defineProperty(exports, "TranslateResult", { enumerable: true, get: function () { return translate_result_1.TranslateResult; } });
8
8
  var translator_config_1 = require("./translator_config");
9
9
  Object.defineProperty(exports, "TranslatorConfig", { enumerable: true, get: function () { return translator_config_1.TranslatorConfig; } });
10
- var translator_axis_definition_1 = require("./translator_axis_definition");
11
- Object.defineProperty(exports, "TranslatorAxisDefinition", { enumerable: true, get: function () { return translator_axis_definition_1.TranslatorAxisDefinition; } });
12
- var translator_definition_1 = require("./translator_definition");
13
- Object.defineProperty(exports, "TranslatorDefinition", { enumerable: true, get: function () { return translator_definition_1.TranslatorDefinition; } });
10
+ var axis_definition_1 = require("./axis_definition");
11
+ Object.defineProperty(exports, "AxisDefinition", { enumerable: true, get: function () { return axis_definition_1.AxisDefinition; } });
12
+ var device_definition_1 = require("./device_definition");
13
+ Object.defineProperty(exports, "DeviceDefinition", { enumerable: true, get: function () { return device_definition_1.DeviceDefinition; } });
14
14
  var axis_mapping_1 = require("./axis_mapping");
15
15
  Object.defineProperty(exports, "AxisMapping", { enumerable: true, get: function () { return axis_mapping_1.AxisMapping; } });
16
+ var axis_transformation_1 = require("./axis_transformation");
17
+ Object.defineProperty(exports, "AxisTransformation", { enumerable: true, get: function () { return axis_transformation_1.AxisTransformation; } });
16
18
  var translator_1 = require("./translator");
17
19
  Object.defineProperty(exports, "Translator", { enumerable: true, get: function () { return translator_1.Translator; } });
18
- var translator_live_1 = require("./translator_live");
19
- Object.defineProperty(exports, "TranslatorLive", { enumerable: true, get: function () { return translator_live_1.TranslatorLive; } });
20
+ var offline_translator_1 = require("./offline_translator");
21
+ Object.defineProperty(exports, "OfflineTranslator", { enumerable: true, get: function () { return offline_translator_1.OfflineTranslator; } });
20
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gcode/index.ts"],"names":[],"mappings":";;;AAAA,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,2EAAwE;AAA/D,sIAAA,wBAAwB,OAAA;AACjC,iEAA+D;AAAtD,6HAAA,oBAAoB,OAAA;AAC7B,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA","sourcesContent":["export { TranslateMessage } from './translate_message';\nexport { TranslateResult } from './translate_result';\nexport { TranslatorConfig } from './translator_config';\nexport { TranslatorAxisDefinition } from './translator_axis_definition';\nexport { TranslatorDefinition } from './translator_definition';\nexport { AxisMapping } from './axis_mapping';\nexport { Translator } from './translator';\nexport { TranslatorLive } from './translator_live';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gcode/index.ts"],"names":[],"mappings":";;;AAAA,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA;AAC3B,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA","sourcesContent":["export { TranslateMessage } from './translate_message';\nexport { TranslateResult } from './translate_result';\nexport { TranslatorConfig } from './translator_config';\nexport { AxisDefinition } from './axis_definition';\nexport { DeviceDefinition } from './device_definition';\nexport { AxisMapping } from './axis_mapping';\nexport { AxisTransformation } from './axis_transformation';\nexport { Translator } from './translator';\nexport { OfflineTranslator } from './offline_translator';\n"]}
@@ -0,0 +1,114 @@
1
+ import { DeviceDefinition } from './device_definition';
2
+ import { TranslatorConfig } from './translator_config';
3
+ import { TranslateResult } from './translate_result';
4
+ import { Angle, Length, Native, AngularVelocity, Velocity } from '../units';
5
+ /**
6
+ * Represents an offline G-Code translator.
7
+ * It allows to translate G-Code blocks to Zaber ASCII protocol stream commands.
8
+ * This translator does not need a connected device to perform translation.
9
+ */
10
+ export declare class OfflineTranslator {
11
+ /**
12
+ * The ID of the translator that serves to identify native resources.
13
+ */
14
+ get translatorId(): number;
15
+ private _translatorId;
16
+ /**
17
+ * Current coordinate system.
18
+ */
19
+ get coordinateSystem(): string;
20
+ constructor(translatorId: number);
21
+ /**
22
+ * Sets up translator from provided device definition and configuration.
23
+ * @param definition Definition of device and its peripherals.
24
+ * The definition must match a device that later performs the commands.
25
+ * @param config? Configuration of the translator.
26
+ * @return New instance of translator.
27
+ */
28
+ static setup(definition: DeviceDefinition, config?: TranslatorConfig): Promise<OfflineTranslator>;
29
+ /**
30
+ * Translates a single block (line) of G-code.
31
+ * @param block Block (line) of G-code.
32
+ * @return Result of translation containing the stream commands.
33
+ */
34
+ translate(block: string): TranslateResult;
35
+ /**
36
+ * Flushes the remaining stream commands waiting in optimization buffer.
37
+ * The flush is also performed by M2 and M30 codes.
38
+ * @return The remaining stream commands.
39
+ */
40
+ flush(): string[];
41
+ /**
42
+ * Sets the speed at which the device moves when traversing (G0).
43
+ * @param traverseRate The traverse rate.
44
+ * @param unit Units of the traverse rate.
45
+ */
46
+ setTraverseRate(traverseRate: number, unit: Velocity | AngularVelocity | Native): void;
47
+ /**
48
+ * Sets position of translator's axis.
49
+ * Use this method to set position after performing movement outside of the translator.
50
+ * This method does not cause any movement.
51
+ * @param axis Letter of the axis.
52
+ * @param position The position.
53
+ * @param unit Units of position.
54
+ */
55
+ setAxisPosition(axis: string, position: number, unit: Length | Angle | Native): void;
56
+ /**
57
+ * Gets position of translator's axis.
58
+ * This method does not query device but returns value from translator's state.
59
+ * @param axis Letter of the axis.
60
+ * @param unit Units of position.
61
+ * @return Position of translator's axis.
62
+ */
63
+ getAxisPosition(axis: string, unit: Length | Angle | Native): number;
64
+ /**
65
+ * Sets the home position of translator's axis.
66
+ * This position is used by G28.
67
+ * @param axis Letter of the axis.
68
+ * @param position The home position.
69
+ * @param unit Units of position.
70
+ */
71
+ setAxisHomePosition(axis: string, position: number, unit: Length | Angle | Native): void;
72
+ /**
73
+ * Sets the secondary home position of translator's axis.
74
+ * This position is used by G30.
75
+ * @param axis Letter of the axis.
76
+ * @param position The home position.
77
+ * @param unit Units of position.
78
+ */
79
+ setAxisSecondaryHomePosition(axis: string, position: number, unit: Length | Angle | Native): void;
80
+ /**
81
+ * Gets offset of an axis in a given coordinate system.
82
+ * @param coordinateSystem Coordinate system (e.g. G54).
83
+ * @param axis Letter of the axis.
84
+ * @param unit Units of position.
85
+ * @return Offset in translator units of the axis.
86
+ */
87
+ getAxisCoordinateSystemOffset(coordinateSystem: string, axis: string, unit: Length | Angle | Native): number;
88
+ /**
89
+ * Resets internal state after device rejected generated command.
90
+ * Axis positions become uninitialized.
91
+ */
92
+ resetAfterStreamError(): void;
93
+ /**
94
+ * Allows to scale feed rate of the translated code by a coefficient.
95
+ * @param coefficient Coefficient of the original feed rate.
96
+ */
97
+ setFeedRateOverride(coefficient: number): void;
98
+ /**
99
+ * Releases native resources of a translator.
100
+ * @param translatorId The ID of the translator.
101
+ */
102
+ private static _free;
103
+ /**
104
+ * Gets current coordinate system (e.g. G54).
105
+ * @return Current coordinate system.
106
+ */
107
+ private _getCurrentCoordinateSystem;
108
+ /**
109
+ * Releases the native resources of the translator.
110
+ * Should only be called if your environment does not support FinalizationRegistry.
111
+ * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry
112
+ */
113
+ free(): void;
114
+ }
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ // ==== THIS FILE IS GENERATED FROM A TEMPLATE ==== //
3
+ // ============= DO NOT EDIT DIRECTLY ============= //
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
7
+ }) : (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ o[k2] = m[k];
10
+ }));
11
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
12
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
13
+ }) : function(o, v) {
14
+ o["default"] = v;
15
+ });
16
+ var __importStar = (this && this.__importStar) || function (mod) {
17
+ if (mod && mod.__esModule) return mod;
18
+ var result = {};
19
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
20
+ __setModuleDefault(result, mod);
21
+ return result;
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.OfflineTranslator = void 0;
25
+ const gateway = __importStar(require("../gateway"));
26
+ const device_definition_1 = require("./device_definition");
27
+ const translator_config_1 = require("./translator_config");
28
+ const translate_result_1 = require("./translate_result");
29
+ const finalizer_1 = require("../finalizer");
30
+ /**
31
+ * Represents an offline G-Code translator.
32
+ * It allows to translate G-Code blocks to Zaber ASCII protocol stream commands.
33
+ * This translator does not need a connected device to perform translation.
34
+ */
35
+ class OfflineTranslator {
36
+ constructor(translatorId) {
37
+ this._translatorId = translatorId;
38
+ (0, finalizer_1.registerForFinalization)(this, OfflineTranslator._free.bind(null, translatorId));
39
+ }
40
+ /**
41
+ * The ID of the translator that serves to identify native resources.
42
+ */
43
+ get translatorId() {
44
+ return this._translatorId;
45
+ }
46
+ /**
47
+ * Current coordinate system.
48
+ */
49
+ get coordinateSystem() {
50
+ return this._getCurrentCoordinateSystem();
51
+ }
52
+ /**
53
+ * Sets up translator from provided device definition and configuration.
54
+ * @param definition Definition of device and its peripherals.
55
+ * The definition must match a device that later performs the commands.
56
+ * @param config? Configuration of the translator.
57
+ * @return New instance of translator.
58
+ */
59
+ static async setup(definition, config) {
60
+ const request = new gateway.TranslatorCreateRequest();
61
+ request.setDefinition(device_definition_1.DeviceDefinition.toProtobuf(definition));
62
+ request.setConfig(translator_config_1.TranslatorConfig.toProtobuf(config));
63
+ const response = await gateway.callAsync('gcode/create', request, gateway.TranslatorCreateResponse);
64
+ return new OfflineTranslator(response.getTranslatorId());
65
+ }
66
+ /**
67
+ * Translates a single block (line) of G-code.
68
+ * @param block Block (line) of G-code.
69
+ * @return Result of translation containing the stream commands.
70
+ */
71
+ translate(block) {
72
+ const request = new gateway.TranslatorTranslateRequest();
73
+ request.setTranslatorId(this.translatorId);
74
+ request.setBlock(block);
75
+ const response = gateway.callSync('gcode/translate', request, gateway.TranslatorTranslateResponse);
76
+ return translate_result_1.TranslateResult.fromProtobuf(response.toObject());
77
+ }
78
+ /**
79
+ * Flushes the remaining stream commands waiting in optimization buffer.
80
+ * The flush is also performed by M2 and M30 codes.
81
+ * @return The remaining stream commands.
82
+ */
83
+ flush() {
84
+ const request = new gateway.TranslatorEmptyRequest();
85
+ request.setTranslatorId(this.translatorId);
86
+ const response = gateway.callSync('gcode/flush', request, gateway.TranslatorFlushResponse);
87
+ return response.getCommandsList();
88
+ }
89
+ /**
90
+ * Sets the speed at which the device moves when traversing (G0).
91
+ * @param traverseRate The traverse rate.
92
+ * @param unit Units of the traverse rate.
93
+ */
94
+ setTraverseRate(traverseRate, unit) {
95
+ const request = new gateway.TranslatorSetTraverseRateRequest();
96
+ request.setTranslatorId(this.translatorId);
97
+ request.setTraverseRate(traverseRate);
98
+ request.setUnit(unit);
99
+ gateway.callSync('gcode/set_traverse_rate', request);
100
+ }
101
+ /**
102
+ * Sets position of translator's axis.
103
+ * Use this method to set position after performing movement outside of the translator.
104
+ * This method does not cause any movement.
105
+ * @param axis Letter of the axis.
106
+ * @param position The position.
107
+ * @param unit Units of position.
108
+ */
109
+ setAxisPosition(axis, position, unit) {
110
+ const request = new gateway.TranslatorSetAxisPositionRequest();
111
+ request.setTranslatorId(this.translatorId);
112
+ request.setAxis(axis);
113
+ request.setPosition(position);
114
+ request.setUnit(unit);
115
+ gateway.callSync('gcode/set_axis_position', request);
116
+ }
117
+ /**
118
+ * Gets position of translator's axis.
119
+ * This method does not query device but returns value from translator's state.
120
+ * @param axis Letter of the axis.
121
+ * @param unit Units of position.
122
+ * @return Position of translator's axis.
123
+ */
124
+ getAxisPosition(axis, unit) {
125
+ const request = new gateway.TranslatorGetAxisPositionRequest();
126
+ request.setTranslatorId(this.translatorId);
127
+ request.setAxis(axis);
128
+ request.setUnit(unit);
129
+ const response = gateway.callSync('gcode/get_axis_position', request, gateway.TranslatorGetAxisPositionResponse);
130
+ return response.getValue();
131
+ }
132
+ /**
133
+ * Sets the home position of translator's axis.
134
+ * This position is used by G28.
135
+ * @param axis Letter of the axis.
136
+ * @param position The home position.
137
+ * @param unit Units of position.
138
+ */
139
+ setAxisHomePosition(axis, position, unit) {
140
+ const request = new gateway.TranslatorSetAxisPositionRequest();
141
+ request.setTranslatorId(this.translatorId);
142
+ request.setAxis(axis);
143
+ request.setPosition(position);
144
+ request.setUnit(unit);
145
+ gateway.callSync('gcode/set_axis_home', request);
146
+ }
147
+ /**
148
+ * Sets the secondary home position of translator's axis.
149
+ * This position is used by G30.
150
+ * @param axis Letter of the axis.
151
+ * @param position The home position.
152
+ * @param unit Units of position.
153
+ */
154
+ setAxisSecondaryHomePosition(axis, position, unit) {
155
+ const request = new gateway.TranslatorSetAxisPositionRequest();
156
+ request.setTranslatorId(this.translatorId);
157
+ request.setAxis(axis);
158
+ request.setPosition(position);
159
+ request.setUnit(unit);
160
+ gateway.callSync('gcode/set_axis_secondary_home', request);
161
+ }
162
+ /**
163
+ * Gets offset of an axis in a given coordinate system.
164
+ * @param coordinateSystem Coordinate system (e.g. G54).
165
+ * @param axis Letter of the axis.
166
+ * @param unit Units of position.
167
+ * @return Offset in translator units of the axis.
168
+ */
169
+ getAxisCoordinateSystemOffset(coordinateSystem, axis, unit) {
170
+ const request = new gateway.TranslatorGetAxisOffsetRequest();
171
+ request.setTranslatorId(this.translatorId);
172
+ request.setCoordinateSystem(coordinateSystem);
173
+ request.setAxis(axis);
174
+ request.setUnit(unit);
175
+ const response = gateway.callSync('gcode/get_axis_offset', request, gateway.TranslatorGetAxisPositionResponse);
176
+ return response.getValue();
177
+ }
178
+ /**
179
+ * Resets internal state after device rejected generated command.
180
+ * Axis positions become uninitialized.
181
+ */
182
+ resetAfterStreamError() {
183
+ const request = new gateway.TranslatorEmptyRequest();
184
+ request.setTranslatorId(this.translatorId);
185
+ gateway.callSync('gcode/reset_after_stream_error', request);
186
+ }
187
+ /**
188
+ * Allows to scale feed rate of the translated code by a coefficient.
189
+ * @param coefficient Coefficient of the original feed rate.
190
+ */
191
+ setFeedRateOverride(coefficient) {
192
+ const request = new gateway.TranslatorSetFeedRateOverrideRequest();
193
+ request.setTranslatorId(this.translatorId);
194
+ request.setCoefficient(coefficient);
195
+ gateway.callSync('gcode/set_feed_rate_override', request);
196
+ }
197
+ /**
198
+ * Releases native resources of a translator.
199
+ * @param translatorId The ID of the translator.
200
+ */
201
+ static _free(translatorId) {
202
+ const request = new gateway.TranslatorEmptyRequest();
203
+ request.setTranslatorId(translatorId);
204
+ gateway.callSync('gcode/free', request);
205
+ }
206
+ /**
207
+ * Gets current coordinate system (e.g. G54).
208
+ * @return Current coordinate system.
209
+ */
210
+ _getCurrentCoordinateSystem() {
211
+ const request = new gateway.TranslatorEmptyRequest();
212
+ request.setTranslatorId(this.translatorId);
213
+ const response = gateway.callSync('gcode/get_current_coordinate_system', request, gateway.TranslatorGetCurrentCoordinateSystemResponse);
214
+ return response.getValue();
215
+ }
216
+ /**
217
+ * Releases the native resources of the translator.
218
+ * Should only be called if your environment does not support FinalizationRegistry.
219
+ * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry
220
+ */
221
+ free() {
222
+ OfflineTranslator._free(this.translatorId);
223
+ }
224
+ }
225
+ exports.OfflineTranslator = OfflineTranslator;
226
+ //# sourceMappingURL=offline_translator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offline_translator.js","sourceRoot":"","sources":["../../../src/gcode/offline_translator.ts"],"names":[],"mappings":"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","sourcesContent":["// ==== THIS FILE IS GENERATED FROM A TEMPLATE ==== //\n// ============= DO NOT EDIT DIRECTLY ============= //\n\nimport * as gateway from '../gateway';\nimport { DeviceDefinition } from './device_definition';\nimport { TranslatorConfig } from './translator_config';\nimport { TranslateResult } from './translate_result';\nimport { Angle, Length, Native, AngularVelocity, Velocity } from '../units';\nimport { registerForFinalization } from '../finalizer';\n\n/**\n * Represents an offline G-Code translator.\n * It allows to translate G-Code blocks to Zaber ASCII protocol stream commands.\n * This translator does not need a connected device to perform translation.\n */\nexport class OfflineTranslator {\n /**\n * The ID of the translator that serves to identify native resources.\n */\n public get translatorId(): number {\n return this._translatorId;\n }\n private _translatorId: number;\n\n /**\n * Current coordinate system.\n */\n public get coordinateSystem(): string {\n return this._getCurrentCoordinateSystem();\n }\n\n constructor(translatorId: number) {\n this._translatorId = translatorId;\n registerForFinalization(this, OfflineTranslator._free.bind(null, translatorId));\n }\n\n /**\n * Sets up translator from provided device definition and configuration.\n * @param definition Definition of device and its peripherals.\n * The definition must match a device that later performs the commands.\n * @param config? Configuration of the translator.\n * @return New instance of translator.\n */\n public static async setup(\n definition: DeviceDefinition,\n config?: TranslatorConfig\n ): Promise<OfflineTranslator> {\n const request = new gateway.TranslatorCreateRequest();\n request.setDefinition(DeviceDefinition.toProtobuf(definition));\n request.setConfig(TranslatorConfig.toProtobuf(config));\n\n const response = await gateway.callAsync<gateway.TranslatorCreateResponse>(\n 'gcode/create',\n request,\n gateway.TranslatorCreateResponse);\n return new OfflineTranslator(response.getTranslatorId());\n }\n\n /**\n * Translates a single block (line) of G-code.\n * @param block Block (line) of G-code.\n * @return Result of translation containing the stream commands.\n */\n public translate(\n block: string\n ): TranslateResult {\n const request = new gateway.TranslatorTranslateRequest();\n request.setTranslatorId(this.translatorId);\n request.setBlock(block);\n\n const response = gateway.callSync<gateway.TranslatorTranslateResponse>(\n 'gcode/translate',\n request,\n gateway.TranslatorTranslateResponse);\n return TranslateResult.fromProtobuf(response.toObject());\n }\n\n /**\n * Flushes the remaining stream commands waiting in optimization buffer.\n * The flush is also performed by M2 and M30 codes.\n * @return The remaining stream commands.\n */\n public flush(): string[] {\n const request = new gateway.TranslatorEmptyRequest();\n request.setTranslatorId(this.translatorId);\n\n const response = gateway.callSync<gateway.TranslatorFlushResponse>(\n 'gcode/flush',\n request,\n gateway.TranslatorFlushResponse);\n return response.getCommandsList();\n }\n\n /**\n * Sets the speed at which the device moves when traversing (G0).\n * @param traverseRate The traverse rate.\n * @param unit Units of the traverse rate.\n */\n public setTraverseRate(\n traverseRate: number,\n unit: Velocity | AngularVelocity | Native\n ): void {\n const request = new gateway.TranslatorSetTraverseRateRequest();\n request.setTranslatorId(this.translatorId);\n request.setTraverseRate(traverseRate);\n request.setUnit(unit);\n\n gateway.callSync('gcode/set_traverse_rate', request);\n }\n\n /**\n * Sets position of translator's axis.\n * Use this method to set position after performing movement outside of the translator.\n * This method does not cause any movement.\n * @param axis Letter of the axis.\n * @param position The position.\n * @param unit Units of position.\n */\n public setAxisPosition(\n axis: string,\n position: number,\n unit: Length | Angle | Native\n ): void {\n const request = new gateway.TranslatorSetAxisPositionRequest();\n request.setTranslatorId(this.translatorId);\n request.setAxis(axis);\n request.setPosition(position);\n request.setUnit(unit);\n\n gateway.callSync('gcode/set_axis_position', request);\n }\n\n /**\n * Gets position of translator's axis.\n * This method does not query device but returns value from translator's state.\n * @param axis Letter of the axis.\n * @param unit Units of position.\n * @return Position of translator's axis.\n */\n public getAxisPosition(\n axis: string,\n unit: Length | Angle | Native\n ): number {\n const request = new gateway.TranslatorGetAxisPositionRequest();\n request.setTranslatorId(this.translatorId);\n request.setAxis(axis);\n request.setUnit(unit);\n\n const response = gateway.callSync<gateway.TranslatorGetAxisPositionResponse>(\n 'gcode/get_axis_position',\n request,\n gateway.TranslatorGetAxisPositionResponse);\n return response.getValue();\n }\n\n /**\n * Sets the home position of translator's axis.\n * This position is used by G28.\n * @param axis Letter of the axis.\n * @param position The home position.\n * @param unit Units of position.\n */\n public setAxisHomePosition(\n axis: string,\n position: number,\n unit: Length | Angle | Native\n ): void {\n const request = new gateway.TranslatorSetAxisPositionRequest();\n request.setTranslatorId(this.translatorId);\n request.setAxis(axis);\n request.setPosition(position);\n request.setUnit(unit);\n\n gateway.callSync('gcode/set_axis_home', request);\n }\n\n /**\n * Sets the secondary home position of translator's axis.\n * This position is used by G30.\n * @param axis Letter of the axis.\n * @param position The home position.\n * @param unit Units of position.\n */\n public setAxisSecondaryHomePosition(\n axis: string,\n position: number,\n unit: Length | Angle | Native\n ): void {\n const request = new gateway.TranslatorSetAxisPositionRequest();\n request.setTranslatorId(this.translatorId);\n request.setAxis(axis);\n request.setPosition(position);\n request.setUnit(unit);\n\n gateway.callSync('gcode/set_axis_secondary_home', request);\n }\n\n /**\n * Gets offset of an axis in a given coordinate system.\n * @param coordinateSystem Coordinate system (e.g. G54).\n * @param axis Letter of the axis.\n * @param unit Units of position.\n * @return Offset in translator units of the axis.\n */\n public getAxisCoordinateSystemOffset(\n coordinateSystem: string,\n axis: string,\n unit: Length | Angle | Native\n ): number {\n const request = new gateway.TranslatorGetAxisOffsetRequest();\n request.setTranslatorId(this.translatorId);\n request.setCoordinateSystem(coordinateSystem);\n request.setAxis(axis);\n request.setUnit(unit);\n\n const response = gateway.callSync<gateway.TranslatorGetAxisPositionResponse>(\n 'gcode/get_axis_offset',\n request,\n gateway.TranslatorGetAxisPositionResponse);\n return response.getValue();\n }\n\n /**\n * Resets internal state after device rejected generated command.\n * Axis positions become uninitialized.\n */\n public resetAfterStreamError(): void {\n const request = new gateway.TranslatorEmptyRequest();\n request.setTranslatorId(this.translatorId);\n\n gateway.callSync('gcode/reset_after_stream_error', request);\n }\n\n /**\n * Allows to scale feed rate of the translated code by a coefficient.\n * @param coefficient Coefficient of the original feed rate.\n */\n public setFeedRateOverride(\n coefficient: number\n ): void {\n const request = new gateway.TranslatorSetFeedRateOverrideRequest();\n request.setTranslatorId(this.translatorId);\n request.setCoefficient(coefficient);\n\n gateway.callSync('gcode/set_feed_rate_override', request);\n }\n\n /**\n * Releases native resources of a translator.\n * @param translatorId The ID of the translator.\n */\n private static _free(\n translatorId: number\n ): void {\n const request = new gateway.TranslatorEmptyRequest();\n request.setTranslatorId(translatorId);\n\n gateway.callSync('gcode/free', request);\n }\n\n /**\n * Gets current coordinate system (e.g. G54).\n * @return Current coordinate system.\n */\n private _getCurrentCoordinateSystem(): string {\n const request = new gateway.TranslatorEmptyRequest();\n request.setTranslatorId(this.translatorId);\n\n const response = gateway.callSync<gateway.TranslatorGetCurrentCoordinateSystemResponse>(\n 'gcode/get_current_coordinate_system',\n request,\n gateway.TranslatorGetCurrentCoordinateSystemResponse);\n return response.getValue();\n }\n\n /**\n * Releases the native resources of the translator.\n * Should only be called if your environment does not support FinalizationRegistry.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry\n */\n public free(): void {\n OfflineTranslator._free(this.translatorId);\n }\n}\n"]}