@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.
- package/dist/constants/versions/index.d.ts +1 -1
- package/dist/constants/versions/index.js +1 -1
- package/dist/types/devices/vehicles/navigation/index.d.ts +90 -1
- package/dist/types/devices/vehicles/navigation/index.js +23 -0
- package/dist/types/devices/vehicles/x4/index.d.ts +14 -0
- package/package.json +7 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const API_VERSION = "1.0.
|
|
1
|
+
export declare const 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.
|
|
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
|
}
|