@deeptrekker/api-domain 1.0.41 → 1.0.43-x4-localization.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.
@@ -1 +1 @@
1
- export declare const API_VERSION = "1.0.41";
1
+ export declare const API_VERSION = "1.0.43-x4-localization.0";
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.API_VERSION = void 0;
4
4
  /* AUTO GENERATED FILE */
5
- exports.API_VERSION = "1.0.41";
5
+ exports.API_VERSION = "1.0.43-x4-localization.0";
@@ -55,7 +55,30 @@ export declare enum PositionSources {
55
55
  NONE = "NONE",
56
56
  SEATRAC_USBL = "SEATRAC_USBL",
57
57
  EXTERNAL_GPS = "EXTERNAL_GPS",
58
- STATIC = "STATIC"
58
+ STATIC = "STATIC",
59
+ /**
60
+ * The vehicle's own onboard GPS, usable only at or near the surface. X4 only.
61
+ */
62
+ ROV_GPS = "ROV_GPS",
63
+ /**
64
+ * An acoustic USBL fix, without naming a vendor. Distinct from {@link PositionSources.SEATRAC_USBL},
65
+ * which names a specific device on the older vehicles. X4 only.
66
+ */
67
+ USBL = "USBL",
68
+ /**
69
+ * A NMEA position supplied over SOIP by an external device. X4 only.
70
+ */
71
+ EXTERNAL = "EXTERNAL",
72
+ /**
73
+ * An operator-supplied position, set by clicking the map. Holds until released, and
74
+ * suppresses every sensor source while active. X4 only.
75
+ */
76
+ MANUAL = "MANUAL",
77
+ /**
78
+ * Arbitration picks the highest-priority available source. This is the default, and is
79
+ * reported whenever the operator has not pinned a source. X4 only.
80
+ */
81
+ AUTOMATIC = "AUTOMATIC"
59
82
  }
60
83
  /**
61
84
  * Enumerates the possible topside location provider sources available to the Web App.
@@ -223,6 +246,72 @@ export type PositionNavigationOption = {
223
246
  * @readonly
224
247
  */
225
248
  rovGpsStatus?: GpsStatus;
249
+ /**
250
+ * Position of the controller, which is the surface end of the tether and the
251
+ * reference the USBL head is offset from.
252
+ *
253
+ * @remarks Reported by the vehicle whatever the source, so a client that did not
254
+ * issue the write still renders it. Settable only when {@link PositionNavigationOption.topSource}
255
+ * is `STATIC`. X4 only.
256
+ * @see {@link ControllerPosition | ControllerPosition}
257
+ */
258
+ topsidePosition?: ControllerPosition;
259
+ /**
260
+ * Fixed offset from the controller to the USBL head.
261
+ *
262
+ * @remarks Applies when the head is not co-located with the controller. X4 only.
263
+ * @see {@link UsblOffset | UsblOffset}
264
+ */
265
+ usblOffset?: UsblOffset;
266
+ /**
267
+ * Re-zeroes the position filter.
268
+ *
269
+ * @remarks Write-only trigger; accepts `true` only and always reads back empty.
270
+ * Clears an operator-pinned position, hands arbitration back to the sensors, and
271
+ * moves the local map frame. X4 only.
272
+ */
273
+ resetFilter?: boolean;
274
+ };
275
+ /**
276
+ * Controller position
277
+ *
278
+ * @remarks Latitude and longitude of the controller, in degrees.
279
+ * @group Devices
280
+ * @category Navigation
281
+ */
282
+ export type ControllerPosition = {
283
+ /**
284
+ * Latitude of the controller, in degrees.
285
+ *
286
+ * @minimum -90
287
+ * @maximum 90
288
+ */
289
+ lat?: number;
290
+ /**
291
+ * Longitude of the controller, in degrees.
292
+ *
293
+ * @minimum -180
294
+ * @maximum 180
295
+ */
296
+ lng?: number;
297
+ };
298
+ /**
299
+ * USBL head offset
300
+ *
301
+ * @remarks Offset from the controller to the USBL head, in metres. Note these are
302
+ * compass-aligned rather than vehicle-relative: `x` is east and `y` is north.
303
+ * @group Devices
304
+ * @category Navigation
305
+ */
306
+ export type UsblOffset = {
307
+ /**
308
+ * Distance east from the controller to the USBL head (in meters). Negative is west.
309
+ */
310
+ x?: number;
311
+ /**
312
+ * Distance north from the controller to the USBL head (in meters). Negative is south.
313
+ */
314
+ y?: number;
226
315
  };
227
316
  /**
228
317
  * Navigation Options type
@@ -21,6 +21,29 @@ var PositionSources;
21
21
  PositionSources["SEATRAC_USBL"] = "SEATRAC_USBL";
22
22
  PositionSources["EXTERNAL_GPS"] = "EXTERNAL_GPS";
23
23
  PositionSources["STATIC"] = "STATIC";
24
+ /**
25
+ * The vehicle's own onboard GPS, usable only at or near the surface. X4 only.
26
+ */
27
+ PositionSources["ROV_GPS"] = "ROV_GPS";
28
+ /**
29
+ * An acoustic USBL fix, without naming a vendor. Distinct from {@link PositionSources.SEATRAC_USBL},
30
+ * which names a specific device on the older vehicles. X4 only.
31
+ */
32
+ PositionSources["USBL"] = "USBL";
33
+ /**
34
+ * A NMEA position supplied over SOIP by an external device. X4 only.
35
+ */
36
+ PositionSources["EXTERNAL"] = "EXTERNAL";
37
+ /**
38
+ * An operator-supplied position, set by clicking the map. Holds until released, and
39
+ * suppresses every sensor source while active. X4 only.
40
+ */
41
+ PositionSources["MANUAL"] = "MANUAL";
42
+ /**
43
+ * Arbitration picks the highest-priority available source. This is the default, and is
44
+ * reported whenever the operator has not pinned a source. X4 only.
45
+ */
46
+ PositionSources["AUTOMATIC"] = "AUTOMATIC";
24
47
  })(PositionSources || (exports.PositionSources = PositionSources = {}));
25
48
  /**
26
49
  * Enumerates the possible topside location provider sources available to the Web App.
@@ -2,6 +2,7 @@ import { Movement } from "../../../core";
2
2
  import { DeviceModel, MotorDiagnostics, Sonar, StereoCamera, X4CameraHead } from "../../cameraHeads";
3
3
  import { ImpaqDriver, SensorPod, X4Light } from "../../peripherals";
4
4
  import { CygnusType } from "../..";
5
+ import { NavigationOptions } from "../navigation";
5
6
  /**
6
7
  * The coordinate system used for navigation and positioning.
7
8
  * @internal
@@ -781,6 +782,19 @@ export type X4 = {
781
782
  * @readonly
782
783
  */
783
784
  vehiclePosition?: X4Position;
785
+ /**
786
+ * Navigation settings and options for the X4: which source supplies the global position,
787
+ * where the controller is, and the heading corrections.
788
+ *
789
+ * Only `navigationOptions` is taken from {@link Navigation | Navigation}, rather than
790
+ * intersecting the whole type as {@link RovVehicle | RovVehicle} does. The X4 reports
791
+ * its pose through its own flattened {@link X4Position | X4Position} on
792
+ * `vehiclePosition`, so `Navigation`'s `position`, `velocity` and
793
+ * `locationForwarderOptions` have no producer here and would read as available.
794
+ *
795
+ * @see {@link NavigationOptions | NavigationOptions}
796
+ */
797
+ navigationOptions?: NavigationOptions;
784
798
  /**
785
799
  * The tracked position of the X4 vehicle, which includes points of interest (POIs) and a snail trail.
786
800
  * It is used for tracking the vehicle's movement over time and for rendering in the frontend.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deeptrekker/api-domain",
3
- "version": "1.0.41",
3
+ "version": "1.0.43-x4-localization.0",
4
4
  "description": "A business domain of types and schemas that the Deep Trekker topside communicates with via an API.",
5
5
  "main": "dist/index.js",
6
6
  "engines": {
@@ -37,16 +37,16 @@
37
37
  "@knodes/typedoc-plugin-code-blocks": "^0.22.7",
38
38
  "@types/lodash": "^4.14.182",
39
39
  "@types/node": "^22.0.0",
40
- "@typescript-eslint/eslint-plugin": "^6.1.0",
41
- "@typescript-eslint/parser": "^6.1.0",
42
40
  "@zamiell/typedoc-plugin-not-exported": "^0.2.0",
43
- "eslint": "^8.45.0",
44
- "eslint-config-prettier": "^8.8.0",
45
- "eslint-plugin-unused-imports": "^3.0.0",
46
41
  "prettier": "3.0.3",
47
42
  "rimraf": "^3.0.2",
48
43
  "semver-compare-cli": "^2.0.0",
49
44
  "ts-json-schema-generator": "2.4.0",
45
+ "eslint": "^8.45.0",
46
+ "@typescript-eslint/eslint-plugin": "^6.1.0",
47
+ "@typescript-eslint/parser": "^6.1.0",
48
+ "eslint-plugin-unused-imports": "^3.0.0",
49
+ "eslint-config-prettier": "^8.8.0",
50
50
  "ts-node": "^10.8.1",
51
51
  "tslib": "^2.4.0",
52
52
  "typedoc": "^0.28.9",
@@ -62,7 +62,6 @@
62
62
  "mkdirp": "^1.0.4",
63
63
  "ts-pattern": "^4.3.0",
64
64
  "ts-toolbelt": "^9.6.0",
65
- "type-zoo": "^3.4.1",
66
- "yarn": "^1.22.22"
65
+ "type-zoo": "^3.4.1"
67
66
  }
68
67
  }