@rise-maritime/keelson-js 0.6.0-alpha.255.dev.1 → 0.6.0-alpha.275.dev.2
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/index.d.ts +83 -8
- package/dist/index.js +23 -1
- package/dist/index.test.js +31 -0
- package/dist/interfaces/AlarmAck.d.ts +2 -2
- package/dist/interfaces/AlarmAck.js +2 -2
- package/dist/interfaces/ContainerControl.d.ts +239 -0
- package/dist/interfaces/ContainerControl.js +1053 -0
- package/dist/interfaces/ContainerHost.d.ts +403 -0
- package/dist/interfaces/ContainerHost.js +1230 -0
- package/dist/interfaces/ErrorResponse.d.ts +7 -2
- package/dist/interfaces/ErrorResponse.js +12 -2
- package/dist/interfaces/Route.d.ts +141 -6
- package/dist/interfaces/Route.js +309 -4
- package/dist/interfaces/RoutePlanner.d.ts +19 -1
- package/dist/interfaces/RoutePlanner.js +23 -1
- package/dist/interfaces/ScenarioControl.d.ts +132 -3
- package/dist/interfaces/ScenarioControl.js +439 -37
- package/dist/interfaces/VehicleNavigation.d.ts +55 -0
- package/dist/interfaces/VehicleNavigation.js +233 -1
- package/dist/interfaces/VehicleSimulatorControl.d.ts +0 -83
- package/dist/interfaces/VehicleSimulatorControl.js +1 -293
- package/dist/interfaces/serviceRegistry.d.ts +84 -8
- package/dist/interfaces/serviceRegistry.js +4 -0
- package/dist/interfaces.json +2 -0
- package/dist/payloads/AdviceDisposition.d.ts +55 -0
- package/dist/payloads/AdviceDisposition.js +242 -0
- package/dist/payloads/ChecklistHandover.d.ts +522 -0
- package/dist/payloads/ChecklistHandover.js +1735 -0
- package/dist/payloads/ContainerHost.d.ts +407 -0
- package/dist/payloads/ContainerHost.js +1245 -0
- package/dist/payloads/Encounter.d.ts +104 -0
- package/dist/payloads/Encounter.js +573 -0
- package/dist/payloads/NavigationAdvice.d.ts +94 -0
- package/dist/payloads/NavigationAdvice.js +596 -0
- package/dist/payloads/NavigationState.d.ts +90 -0
- package/dist/payloads/NavigationState.js +377 -0
- package/dist/payloads/Route.d.ts +142 -6
- package/dist/payloads/Route.js +318 -4
- package/dist/payloads/RouteExecution.d.ts +7 -0
- package/dist/payloads/ScenarioEvent.d.ts +14 -0
- package/dist/payloads/ScenarioEvent.js +16 -0
- package/dist/payloads/index.d.ts +1 -1
- package/dist/payloads/index.js +2 -2
- package/dist/payloads/index.keelson.d.ts +10 -4
- package/dist/payloads/index.keelson.js +10 -4
- package/dist/qos.json +6 -0
- package/dist/subjects.json +20 -1
- package/package.json +1 -1
package/dist/payloads/Route.js
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
// protoc v6.30.2
|
|
6
6
|
// source: Route.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.
|
|
9
|
-
exports.RouteStatusUpdate = exports.RouteSignature = exports.RouteSignatures = exports.RouteIssue = exports.RouteChallenge = void 0;
|
|
8
|
+
exports.Leg = exports.Waypoint = exports.DefaultWaypoint = exports.Waypoints = exports.RouteInfo = exports.Route = exports.Extensions_Entry_AttributesEntry = exports.Extensions_Entry = exports.Extensions = exports.CircleGeometry = exports.RouteRef = exports.schedule_OriginToJSON = exports.schedule_OriginFromJSON = exports.Schedule_Origin = exports.actionPointRequiredActionToJSON = exports.actionPointRequiredActionFromJSON = exports.ActionPointRequiredAction = exports.envelopeBoundToJSON = exports.envelopeBoundFromJSON = exports.EnvelopeBound = exports.routeStatusToJSON = exports.routeStatusFromJSON = exports.RouteStatus = exports.routeTopologyToJSON = exports.routeTopologyFromJSON = exports.RouteTopology = exports.xtdCorridorModeToJSON = exports.xtdCorridorModeFromJSON = exports.XtdCorridorMode = exports.geometryTypeToJSON = exports.geometryTypeFromJSON = exports.GeometryType = exports.colregTrafficIntensityToJSON = exports.colregTrafficIntensityFromJSON = exports.ColregTrafficIntensity = exports.colregSituationToJSON = exports.colregSituationFromJSON = exports.ColregSituation = exports.hazardZoneTypeToJSON = exports.hazardZoneTypeFromJSON = exports.HazardZoneType = exports.routeChallengeTypeToJSON = exports.routeChallengeTypeFromJSON = exports.RouteChallengeType = exports.operationalContextToJSON = exports.operationalContextFromJSON = exports.OperationalContext = exports.autonomyLevelToJSON = exports.autonomyLevelFromJSON = exports.AutonomyLevel = void 0;
|
|
9
|
+
exports.RouteStatusUpdate = exports.RouteSignature = exports.RouteSignatures = exports.RouteIssue = exports.RouteChallenge = exports.HazardZone = exports.ActionPoint = exports.ActionPoints = exports.ScheduleElement = exports.Schedule = exports.Schedules = exports.XtdBoundaryPoint = void 0;
|
|
10
10
|
/* eslint-disable */
|
|
11
11
|
const wire_1 = require("@bufbuild/protobuf/wire");
|
|
12
12
|
const Coordinate_1 = require("./Coordinate");
|
|
@@ -267,14 +267,25 @@ function hazardZoneTypeToJSON(object) {
|
|
|
267
267
|
}
|
|
268
268
|
}
|
|
269
269
|
exports.hazardZoneTypeToJSON = hazardZoneTypeToJSON;
|
|
270
|
-
/**
|
|
270
|
+
/**
|
|
271
|
+
* COLREG encounter situation, from own ship's side. One vocabulary for the plan and the live
|
|
272
|
+
* picture: a Route leg is annotated with 1-4 only; Encounter.situation may also carry 5-6, which
|
|
273
|
+
* describe a live target and never a planned leg.
|
|
274
|
+
*/
|
|
271
275
|
var ColregSituation;
|
|
272
276
|
(function (ColregSituation) {
|
|
273
277
|
ColregSituation[ColregSituation["COLREG_SITUATION_UNSPECIFIED"] = 0] = "COLREG_SITUATION_UNSPECIFIED";
|
|
278
|
+
/** COLREG_SITUATION_OVERTAKING - own ship is overtaking */
|
|
274
279
|
ColregSituation[ColregSituation["COLREG_SITUATION_OVERTAKING"] = 1] = "COLREG_SITUATION_OVERTAKING";
|
|
280
|
+
/** COLREG_SITUATION_CROSSING_STBD - target crossing from own starboard */
|
|
275
281
|
ColregSituation[ColregSituation["COLREG_SITUATION_CROSSING_STBD"] = 2] = "COLREG_SITUATION_CROSSING_STBD";
|
|
282
|
+
/** COLREG_SITUATION_CROSSING_PORT - target crossing from own port */
|
|
276
283
|
ColregSituation[ColregSituation["COLREG_SITUATION_CROSSING_PORT"] = 3] = "COLREG_SITUATION_CROSSING_PORT";
|
|
277
284
|
ColregSituation[ColregSituation["COLREG_SITUATION_HEAD_ON"] = 4] = "COLREG_SITUATION_HEAD_ON";
|
|
285
|
+
/** COLREG_SITUATION_OVERTAKEN - target is overtaking own ship (Encounter only) */
|
|
286
|
+
ColregSituation[ColregSituation["COLREG_SITUATION_OVERTAKEN"] = 5] = "COLREG_SITUATION_OVERTAKEN";
|
|
287
|
+
/** COLREG_SITUATION_NONE - target not under way, or restricted visibility (Encounter only) */
|
|
288
|
+
ColregSituation[ColregSituation["COLREG_SITUATION_NONE"] = 6] = "COLREG_SITUATION_NONE";
|
|
278
289
|
ColregSituation[ColregSituation["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
|
|
279
290
|
})(ColregSituation || (exports.ColregSituation = ColregSituation = {}));
|
|
280
291
|
function colregSituationFromJSON(object) {
|
|
@@ -294,6 +305,12 @@ function colregSituationFromJSON(object) {
|
|
|
294
305
|
case 4:
|
|
295
306
|
case "COLREG_SITUATION_HEAD_ON":
|
|
296
307
|
return ColregSituation.COLREG_SITUATION_HEAD_ON;
|
|
308
|
+
case 5:
|
|
309
|
+
case "COLREG_SITUATION_OVERTAKEN":
|
|
310
|
+
return ColregSituation.COLREG_SITUATION_OVERTAKEN;
|
|
311
|
+
case 6:
|
|
312
|
+
case "COLREG_SITUATION_NONE":
|
|
313
|
+
return ColregSituation.COLREG_SITUATION_NONE;
|
|
297
314
|
case -1:
|
|
298
315
|
case "UNRECOGNIZED":
|
|
299
316
|
default:
|
|
@@ -313,6 +330,10 @@ function colregSituationToJSON(object) {
|
|
|
313
330
|
return "COLREG_SITUATION_CROSSING_PORT";
|
|
314
331
|
case ColregSituation.COLREG_SITUATION_HEAD_ON:
|
|
315
332
|
return "COLREG_SITUATION_HEAD_ON";
|
|
333
|
+
case ColregSituation.COLREG_SITUATION_OVERTAKEN:
|
|
334
|
+
return "COLREG_SITUATION_OVERTAKEN";
|
|
335
|
+
case ColregSituation.COLREG_SITUATION_NONE:
|
|
336
|
+
return "COLREG_SITUATION_NONE";
|
|
316
337
|
case ColregSituation.UNRECOGNIZED:
|
|
317
338
|
default:
|
|
318
339
|
return "UNRECOGNIZED";
|
|
@@ -411,6 +432,123 @@ function geometryTypeToJSON(object) {
|
|
|
411
432
|
}
|
|
412
433
|
}
|
|
413
434
|
exports.geometryTypeToJSON = geometryTypeToJSON;
|
|
435
|
+
/**
|
|
436
|
+
* How a leg's XTD corridor is shaped. UNSPECIFIED MUST be read as FIXED:
|
|
437
|
+
* every leg published before this field existed is a fixed-width corridor, and
|
|
438
|
+
* reading it any other way would change routes nobody edited.
|
|
439
|
+
*/
|
|
440
|
+
var XtdCorridorMode;
|
|
441
|
+
(function (XtdCorridorMode) {
|
|
442
|
+
XtdCorridorMode[XtdCorridorMode["XTD_CORRIDOR_MODE_UNSPECIFIED"] = 0] = "XTD_CORRIDOR_MODE_UNSPECIFIED";
|
|
443
|
+
/**
|
|
444
|
+
* XTD_CORRIDOR_MODE_FIXED - Fixed width: parallel lines at xtd_port_m / xtd_starboard_m either side of
|
|
445
|
+
* track.
|
|
446
|
+
*/
|
|
447
|
+
XtdCorridorMode[XtdCorridorMode["XTD_CORRIDOR_MODE_FIXED"] = 1] = "XTD_CORRIDOR_MODE_FIXED";
|
|
448
|
+
/**
|
|
449
|
+
* XTD_CORRIDOR_MODE_VARIABLE - Variable width: a boundary drawn by the planner (Leg.xtd_port_boundary /
|
|
450
|
+
* xtd_starboard_boundary), e.g. a corridor that narrows past a shoal.
|
|
451
|
+
* xtd_port_m / xtd_starboard_m still carry a nominal limit for a monitor
|
|
452
|
+
* that does not evaluate the boundary. That fallback is NOT conservative when
|
|
453
|
+
* the drawn corridor is narrower than the nominal one, which is why such a
|
|
454
|
+
* monitor SHOULD report the leg as monitored at reduced fidelity.
|
|
455
|
+
*/
|
|
456
|
+
XtdCorridorMode[XtdCorridorMode["XTD_CORRIDOR_MODE_VARIABLE"] = 2] = "XTD_CORRIDOR_MODE_VARIABLE";
|
|
457
|
+
XtdCorridorMode[XtdCorridorMode["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
|
|
458
|
+
})(XtdCorridorMode || (exports.XtdCorridorMode = XtdCorridorMode = {}));
|
|
459
|
+
function xtdCorridorModeFromJSON(object) {
|
|
460
|
+
switch (object) {
|
|
461
|
+
case 0:
|
|
462
|
+
case "XTD_CORRIDOR_MODE_UNSPECIFIED":
|
|
463
|
+
return XtdCorridorMode.XTD_CORRIDOR_MODE_UNSPECIFIED;
|
|
464
|
+
case 1:
|
|
465
|
+
case "XTD_CORRIDOR_MODE_FIXED":
|
|
466
|
+
return XtdCorridorMode.XTD_CORRIDOR_MODE_FIXED;
|
|
467
|
+
case 2:
|
|
468
|
+
case "XTD_CORRIDOR_MODE_VARIABLE":
|
|
469
|
+
return XtdCorridorMode.XTD_CORRIDOR_MODE_VARIABLE;
|
|
470
|
+
case -1:
|
|
471
|
+
case "UNRECOGNIZED":
|
|
472
|
+
default:
|
|
473
|
+
return XtdCorridorMode.UNRECOGNIZED;
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
exports.xtdCorridorModeFromJSON = xtdCorridorModeFromJSON;
|
|
477
|
+
function xtdCorridorModeToJSON(object) {
|
|
478
|
+
switch (object) {
|
|
479
|
+
case XtdCorridorMode.XTD_CORRIDOR_MODE_UNSPECIFIED:
|
|
480
|
+
return "XTD_CORRIDOR_MODE_UNSPECIFIED";
|
|
481
|
+
case XtdCorridorMode.XTD_CORRIDOR_MODE_FIXED:
|
|
482
|
+
return "XTD_CORRIDOR_MODE_FIXED";
|
|
483
|
+
case XtdCorridorMode.XTD_CORRIDOR_MODE_VARIABLE:
|
|
484
|
+
return "XTD_CORRIDOR_MODE_VARIABLE";
|
|
485
|
+
case XtdCorridorMode.UNRECOGNIZED:
|
|
486
|
+
default:
|
|
487
|
+
return "UNRECOGNIZED";
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
exports.xtdCorridorModeToJSON = xtdCorridorModeToJSON;
|
|
491
|
+
/**
|
|
492
|
+
* Whether a route's waypoint list closes back on itself. RTZ 1.2 has no such
|
|
493
|
+
* concept, so producers either repeated the first waypoint (breaking id
|
|
494
|
+
* uniqueness) or left closing to consumer convention (silently wrong the first
|
|
495
|
+
* time a consumer chooses not to loop). This field makes the author say.
|
|
496
|
+
*
|
|
497
|
+
* An enum rather than a bool, like every other classification in this file:
|
|
498
|
+
* OPEN says closure was considered and declined, and there is room for a
|
|
499
|
+
* third topology (out-and-back). UNSPECIFIED MUST be read as OPEN; that is
|
|
500
|
+
* the fail-safe direction, since sailing a point-to-point route as a circuit
|
|
501
|
+
* takes the vessel over unplanned water. Terminal behaviour (stop, hold, go
|
|
502
|
+
* round again) is execution policy and belongs on keelson.Voyage, not here.
|
|
503
|
+
* See protocol-specification.md §6.2.1.
|
|
504
|
+
*/
|
|
505
|
+
var RouteTopology;
|
|
506
|
+
(function (RouteTopology) {
|
|
507
|
+
RouteTopology[RouteTopology["ROUTE_TOPOLOGY_UNSPECIFIED"] = 0] = "ROUTE_TOPOLOGY_UNSPECIFIED";
|
|
508
|
+
/**
|
|
509
|
+
* ROUTE_TOPOLOGY_OPEN - Runs from the first waypoint to the last and ends there. The last
|
|
510
|
+
* waypoint has no outgoing leg.
|
|
511
|
+
*/
|
|
512
|
+
RouteTopology[RouteTopology["ROUTE_TOPOLOGY_OPEN"] = 1] = "ROUTE_TOPOLOGY_OPEN";
|
|
513
|
+
/**
|
|
514
|
+
* ROUTE_TOPOLOGY_CLOSED - A circuit: the last waypoint's outgoing leg terminates at the first
|
|
515
|
+
* waypoint, which is NOT repeated at the end of the list.
|
|
516
|
+
*/
|
|
517
|
+
RouteTopology[RouteTopology["ROUTE_TOPOLOGY_CLOSED"] = 2] = "ROUTE_TOPOLOGY_CLOSED";
|
|
518
|
+
RouteTopology[RouteTopology["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
|
|
519
|
+
})(RouteTopology || (exports.RouteTopology = RouteTopology = {}));
|
|
520
|
+
function routeTopologyFromJSON(object) {
|
|
521
|
+
switch (object) {
|
|
522
|
+
case 0:
|
|
523
|
+
case "ROUTE_TOPOLOGY_UNSPECIFIED":
|
|
524
|
+
return RouteTopology.ROUTE_TOPOLOGY_UNSPECIFIED;
|
|
525
|
+
case 1:
|
|
526
|
+
case "ROUTE_TOPOLOGY_OPEN":
|
|
527
|
+
return RouteTopology.ROUTE_TOPOLOGY_OPEN;
|
|
528
|
+
case 2:
|
|
529
|
+
case "ROUTE_TOPOLOGY_CLOSED":
|
|
530
|
+
return RouteTopology.ROUTE_TOPOLOGY_CLOSED;
|
|
531
|
+
case -1:
|
|
532
|
+
case "UNRECOGNIZED":
|
|
533
|
+
default:
|
|
534
|
+
return RouteTopology.UNRECOGNIZED;
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
exports.routeTopologyFromJSON = routeTopologyFromJSON;
|
|
538
|
+
function routeTopologyToJSON(object) {
|
|
539
|
+
switch (object) {
|
|
540
|
+
case RouteTopology.ROUTE_TOPOLOGY_UNSPECIFIED:
|
|
541
|
+
return "ROUTE_TOPOLOGY_UNSPECIFIED";
|
|
542
|
+
case RouteTopology.ROUTE_TOPOLOGY_OPEN:
|
|
543
|
+
return "ROUTE_TOPOLOGY_OPEN";
|
|
544
|
+
case RouteTopology.ROUTE_TOPOLOGY_CLOSED:
|
|
545
|
+
return "ROUTE_TOPOLOGY_CLOSED";
|
|
546
|
+
case RouteTopology.UNRECOGNIZED:
|
|
547
|
+
default:
|
|
548
|
+
return "UNRECOGNIZED";
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
exports.routeTopologyToJSON = routeTopologyToJSON;
|
|
414
552
|
/**
|
|
415
553
|
* Lifecycle status for the route artifact (authoring + quality).
|
|
416
554
|
* Execution-side state (vessel sailing, paused, completed) lives on
|
|
@@ -1730,7 +1868,7 @@ exports.RouteInfo = {
|
|
|
1730
1868
|
};
|
|
1731
1869
|
typeRegistry_1.messageTypeRegistry.set(exports.RouteInfo.$type, exports.RouteInfo);
|
|
1732
1870
|
function createBaseWaypoints() {
|
|
1733
|
-
return { $type: "keelson.Waypoints", defaults: undefined, waypoint: [], extensions: undefined };
|
|
1871
|
+
return { $type: "keelson.Waypoints", defaults: undefined, waypoint: [], topology: 0, extensions: undefined };
|
|
1734
1872
|
}
|
|
1735
1873
|
exports.Waypoints = {
|
|
1736
1874
|
$type: "keelson.Waypoints",
|
|
@@ -1741,6 +1879,9 @@ exports.Waypoints = {
|
|
|
1741
1879
|
for (const v of message.waypoint) {
|
|
1742
1880
|
exports.Waypoint.encode(v, writer.uint32(18).fork()).join();
|
|
1743
1881
|
}
|
|
1882
|
+
if (message.topology !== 0) {
|
|
1883
|
+
writer.uint32(24).int32(message.topology);
|
|
1884
|
+
}
|
|
1744
1885
|
if (message.extensions !== undefined) {
|
|
1745
1886
|
exports.Extensions.encode(message.extensions, writer.uint32(794).fork()).join();
|
|
1746
1887
|
}
|
|
@@ -1767,6 +1908,13 @@ exports.Waypoints = {
|
|
|
1767
1908
|
message.waypoint.push(exports.Waypoint.decode(reader, reader.uint32()));
|
|
1768
1909
|
continue;
|
|
1769
1910
|
}
|
|
1911
|
+
case 3: {
|
|
1912
|
+
if (tag !== 24) {
|
|
1913
|
+
break;
|
|
1914
|
+
}
|
|
1915
|
+
message.topology = reader.int32();
|
|
1916
|
+
continue;
|
|
1917
|
+
}
|
|
1770
1918
|
case 99: {
|
|
1771
1919
|
if (tag !== 794) {
|
|
1772
1920
|
break;
|
|
@@ -1787,6 +1935,7 @@ exports.Waypoints = {
|
|
|
1787
1935
|
$type: exports.Waypoints.$type,
|
|
1788
1936
|
defaults: isSet(object.defaults) ? exports.DefaultWaypoint.fromJSON(object.defaults) : undefined,
|
|
1789
1937
|
waypoint: globalThis.Array.isArray(object?.waypoint) ? object.waypoint.map((e) => exports.Waypoint.fromJSON(e)) : [],
|
|
1938
|
+
topology: isSet(object.topology) ? routeTopologyFromJSON(object.topology) : 0,
|
|
1790
1939
|
extensions: isSet(object.extensions) ? exports.Extensions.fromJSON(object.extensions) : undefined,
|
|
1791
1940
|
};
|
|
1792
1941
|
},
|
|
@@ -1798,6 +1947,9 @@ exports.Waypoints = {
|
|
|
1798
1947
|
if (message.waypoint?.length) {
|
|
1799
1948
|
obj.waypoint = message.waypoint.map((e) => exports.Waypoint.toJSON(e));
|
|
1800
1949
|
}
|
|
1950
|
+
if (message.topology !== 0) {
|
|
1951
|
+
obj.topology = routeTopologyToJSON(message.topology);
|
|
1952
|
+
}
|
|
1801
1953
|
if (message.extensions !== undefined) {
|
|
1802
1954
|
obj.extensions = exports.Extensions.toJSON(message.extensions);
|
|
1803
1955
|
}
|
|
@@ -1812,6 +1964,7 @@ exports.Waypoints = {
|
|
|
1812
1964
|
? exports.DefaultWaypoint.fromPartial(object.defaults)
|
|
1813
1965
|
: undefined;
|
|
1814
1966
|
message.waypoint = object.waypoint?.map((e) => exports.Waypoint.fromPartial(e)) || [];
|
|
1967
|
+
message.topology = object.topology ?? 0;
|
|
1815
1968
|
message.extensions = (object.extensions !== undefined && object.extensions !== null)
|
|
1816
1969
|
? exports.Extensions.fromPartial(object.extensions)
|
|
1817
1970
|
: undefined;
|
|
@@ -2167,6 +2320,9 @@ function createBaseLeg() {
|
|
|
2167
2320
|
xtdStarboardM: undefined,
|
|
2168
2321
|
xtdMonitoringPortM: undefined,
|
|
2169
2322
|
xtdMonitoringStarboardM: undefined,
|
|
2323
|
+
xtdCorridorMode: 0,
|
|
2324
|
+
xtdPortBoundary: [],
|
|
2325
|
+
xtdStarboardBoundary: [],
|
|
2170
2326
|
safetyContourM: undefined,
|
|
2171
2327
|
safetyDepthM: undefined,
|
|
2172
2328
|
ukcStaticM: undefined,
|
|
@@ -2205,6 +2361,15 @@ exports.Leg = {
|
|
|
2205
2361
|
if (message.xtdMonitoringStarboardM !== undefined) {
|
|
2206
2362
|
writer.uint32(37).float(message.xtdMonitoringStarboardM);
|
|
2207
2363
|
}
|
|
2364
|
+
if (message.xtdCorridorMode !== 0) {
|
|
2365
|
+
writer.uint32(40).int32(message.xtdCorridorMode);
|
|
2366
|
+
}
|
|
2367
|
+
for (const v of message.xtdPortBoundary) {
|
|
2368
|
+
exports.XtdBoundaryPoint.encode(v, writer.uint32(50).fork()).join();
|
|
2369
|
+
}
|
|
2370
|
+
for (const v of message.xtdStarboardBoundary) {
|
|
2371
|
+
exports.XtdBoundaryPoint.encode(v, writer.uint32(58).fork()).join();
|
|
2372
|
+
}
|
|
2208
2373
|
if (message.safetyContourM !== undefined) {
|
|
2209
2374
|
writer.uint32(85).float(message.safetyContourM);
|
|
2210
2375
|
}
|
|
@@ -2305,6 +2470,27 @@ exports.Leg = {
|
|
|
2305
2470
|
message.xtdMonitoringStarboardM = reader.float();
|
|
2306
2471
|
continue;
|
|
2307
2472
|
}
|
|
2473
|
+
case 5: {
|
|
2474
|
+
if (tag !== 40) {
|
|
2475
|
+
break;
|
|
2476
|
+
}
|
|
2477
|
+
message.xtdCorridorMode = reader.int32();
|
|
2478
|
+
continue;
|
|
2479
|
+
}
|
|
2480
|
+
case 6: {
|
|
2481
|
+
if (tag !== 50) {
|
|
2482
|
+
break;
|
|
2483
|
+
}
|
|
2484
|
+
message.xtdPortBoundary.push(exports.XtdBoundaryPoint.decode(reader, reader.uint32()));
|
|
2485
|
+
continue;
|
|
2486
|
+
}
|
|
2487
|
+
case 7: {
|
|
2488
|
+
if (tag !== 58) {
|
|
2489
|
+
break;
|
|
2490
|
+
}
|
|
2491
|
+
message.xtdStarboardBoundary.push(exports.XtdBoundaryPoint.decode(reader, reader.uint32()));
|
|
2492
|
+
continue;
|
|
2493
|
+
}
|
|
2308
2494
|
case 10: {
|
|
2309
2495
|
if (tag !== 85) {
|
|
2310
2496
|
break;
|
|
@@ -2469,6 +2655,13 @@ exports.Leg = {
|
|
|
2469
2655
|
xtdMonitoringStarboardM: isSet(object.xtdMonitoringStarboardM)
|
|
2470
2656
|
? globalThis.Number(object.xtdMonitoringStarboardM)
|
|
2471
2657
|
: undefined,
|
|
2658
|
+
xtdCorridorMode: isSet(object.xtdCorridorMode) ? xtdCorridorModeFromJSON(object.xtdCorridorMode) : 0,
|
|
2659
|
+
xtdPortBoundary: globalThis.Array.isArray(object?.xtdPortBoundary)
|
|
2660
|
+
? object.xtdPortBoundary.map((e) => exports.XtdBoundaryPoint.fromJSON(e))
|
|
2661
|
+
: [],
|
|
2662
|
+
xtdStarboardBoundary: globalThis.Array.isArray(object?.xtdStarboardBoundary)
|
|
2663
|
+
? object.xtdStarboardBoundary.map((e) => exports.XtdBoundaryPoint.fromJSON(e))
|
|
2664
|
+
: [],
|
|
2472
2665
|
safetyContourM: isSet(object.safetyContourM) ? globalThis.Number(object.safetyContourM) : undefined,
|
|
2473
2666
|
safetyDepthM: isSet(object.safetyDepthM) ? globalThis.Number(object.safetyDepthM) : undefined,
|
|
2474
2667
|
ukcStaticM: isSet(object.ukcStaticM) ? globalThis.Number(object.ukcStaticM) : undefined,
|
|
@@ -2508,6 +2701,15 @@ exports.Leg = {
|
|
|
2508
2701
|
if (message.xtdMonitoringStarboardM !== undefined) {
|
|
2509
2702
|
obj.xtdMonitoringStarboardM = message.xtdMonitoringStarboardM;
|
|
2510
2703
|
}
|
|
2704
|
+
if (message.xtdCorridorMode !== 0) {
|
|
2705
|
+
obj.xtdCorridorMode = xtdCorridorModeToJSON(message.xtdCorridorMode);
|
|
2706
|
+
}
|
|
2707
|
+
if (message.xtdPortBoundary?.length) {
|
|
2708
|
+
obj.xtdPortBoundary = message.xtdPortBoundary.map((e) => exports.XtdBoundaryPoint.toJSON(e));
|
|
2709
|
+
}
|
|
2710
|
+
if (message.xtdStarboardBoundary?.length) {
|
|
2711
|
+
obj.xtdStarboardBoundary = message.xtdStarboardBoundary.map((e) => exports.XtdBoundaryPoint.toJSON(e));
|
|
2712
|
+
}
|
|
2511
2713
|
if (message.safetyContourM !== undefined) {
|
|
2512
2714
|
obj.safetyContourM = message.safetyContourM;
|
|
2513
2715
|
}
|
|
@@ -2582,6 +2784,9 @@ exports.Leg = {
|
|
|
2582
2784
|
message.xtdStarboardM = object.xtdStarboardM ?? undefined;
|
|
2583
2785
|
message.xtdMonitoringPortM = object.xtdMonitoringPortM ?? undefined;
|
|
2584
2786
|
message.xtdMonitoringStarboardM = object.xtdMonitoringStarboardM ?? undefined;
|
|
2787
|
+
message.xtdCorridorMode = object.xtdCorridorMode ?? 0;
|
|
2788
|
+
message.xtdPortBoundary = object.xtdPortBoundary?.map((e) => exports.XtdBoundaryPoint.fromPartial(e)) || [];
|
|
2789
|
+
message.xtdStarboardBoundary = object.xtdStarboardBoundary?.map((e) => exports.XtdBoundaryPoint.fromPartial(e)) || [];
|
|
2585
2790
|
message.safetyContourM = object.safetyContourM ?? undefined;
|
|
2586
2791
|
message.safetyDepthM = object.safetyDepthM ?? undefined;
|
|
2587
2792
|
message.ukcStaticM = object.ukcStaticM ?? undefined;
|
|
@@ -2609,6 +2814,115 @@ exports.Leg = {
|
|
|
2609
2814
|
},
|
|
2610
2815
|
};
|
|
2611
2816
|
typeRegistry_1.messageTypeRegistry.set(exports.Leg.$type, exports.Leg);
|
|
2817
|
+
function createBaseXtdBoundaryPoint() {
|
|
2818
|
+
return {
|
|
2819
|
+
$type: "keelson.XtdBoundaryPoint",
|
|
2820
|
+
position: undefined,
|
|
2821
|
+
alongTrackFraction: undefined,
|
|
2822
|
+
offsetM: undefined,
|
|
2823
|
+
inTurn: false,
|
|
2824
|
+
};
|
|
2825
|
+
}
|
|
2826
|
+
exports.XtdBoundaryPoint = {
|
|
2827
|
+
$type: "keelson.XtdBoundaryPoint",
|
|
2828
|
+
encode(message, writer = new wire_1.BinaryWriter()) {
|
|
2829
|
+
if (message.position !== undefined) {
|
|
2830
|
+
Coordinate_1.Coordinate.encode(message.position, writer.uint32(10).fork()).join();
|
|
2831
|
+
}
|
|
2832
|
+
if (message.alongTrackFraction !== undefined) {
|
|
2833
|
+
writer.uint32(17).double(message.alongTrackFraction);
|
|
2834
|
+
}
|
|
2835
|
+
if (message.offsetM !== undefined) {
|
|
2836
|
+
writer.uint32(29).float(message.offsetM);
|
|
2837
|
+
}
|
|
2838
|
+
if (message.inTurn !== false) {
|
|
2839
|
+
writer.uint32(32).bool(message.inTurn);
|
|
2840
|
+
}
|
|
2841
|
+
return writer;
|
|
2842
|
+
},
|
|
2843
|
+
decode(input, length) {
|
|
2844
|
+
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
|
|
2845
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
2846
|
+
const message = createBaseXtdBoundaryPoint();
|
|
2847
|
+
while (reader.pos < end) {
|
|
2848
|
+
const tag = reader.uint32();
|
|
2849
|
+
switch (tag >>> 3) {
|
|
2850
|
+
case 1: {
|
|
2851
|
+
if (tag !== 10) {
|
|
2852
|
+
break;
|
|
2853
|
+
}
|
|
2854
|
+
message.position = Coordinate_1.Coordinate.decode(reader, reader.uint32());
|
|
2855
|
+
continue;
|
|
2856
|
+
}
|
|
2857
|
+
case 2: {
|
|
2858
|
+
if (tag !== 17) {
|
|
2859
|
+
break;
|
|
2860
|
+
}
|
|
2861
|
+
message.alongTrackFraction = reader.double();
|
|
2862
|
+
continue;
|
|
2863
|
+
}
|
|
2864
|
+
case 3: {
|
|
2865
|
+
if (tag !== 29) {
|
|
2866
|
+
break;
|
|
2867
|
+
}
|
|
2868
|
+
message.offsetM = reader.float();
|
|
2869
|
+
continue;
|
|
2870
|
+
}
|
|
2871
|
+
case 4: {
|
|
2872
|
+
if (tag !== 32) {
|
|
2873
|
+
break;
|
|
2874
|
+
}
|
|
2875
|
+
message.inTurn = reader.bool();
|
|
2876
|
+
continue;
|
|
2877
|
+
}
|
|
2878
|
+
}
|
|
2879
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
2880
|
+
break;
|
|
2881
|
+
}
|
|
2882
|
+
reader.skip(tag & 7);
|
|
2883
|
+
}
|
|
2884
|
+
return message;
|
|
2885
|
+
},
|
|
2886
|
+
fromJSON(object) {
|
|
2887
|
+
return {
|
|
2888
|
+
$type: exports.XtdBoundaryPoint.$type,
|
|
2889
|
+
position: isSet(object.position) ? Coordinate_1.Coordinate.fromJSON(object.position) : undefined,
|
|
2890
|
+
alongTrackFraction: isSet(object.alongTrackFraction) ? globalThis.Number(object.alongTrackFraction) : undefined,
|
|
2891
|
+
offsetM: isSet(object.offsetM) ? globalThis.Number(object.offsetM) : undefined,
|
|
2892
|
+
inTurn: isSet(object.inTurn) ? globalThis.Boolean(object.inTurn) : false,
|
|
2893
|
+
};
|
|
2894
|
+
},
|
|
2895
|
+
toJSON(message) {
|
|
2896
|
+
const obj = {};
|
|
2897
|
+
if (message.position !== undefined) {
|
|
2898
|
+
obj.position = Coordinate_1.Coordinate.toJSON(message.position);
|
|
2899
|
+
}
|
|
2900
|
+
if (message.alongTrackFraction !== undefined) {
|
|
2901
|
+
obj.alongTrackFraction = message.alongTrackFraction;
|
|
2902
|
+
}
|
|
2903
|
+
if (message.offsetM !== undefined) {
|
|
2904
|
+
obj.offsetM = message.offsetM;
|
|
2905
|
+
}
|
|
2906
|
+
if (message.inTurn !== false) {
|
|
2907
|
+
obj.inTurn = message.inTurn;
|
|
2908
|
+
}
|
|
2909
|
+
return obj;
|
|
2910
|
+
},
|
|
2911
|
+
create(base) {
|
|
2912
|
+
return exports.XtdBoundaryPoint.fromPartial(base ?? {});
|
|
2913
|
+
},
|
|
2914
|
+
fromPartial(object) {
|
|
2915
|
+
const message = createBaseXtdBoundaryPoint();
|
|
2916
|
+
message.position = (object.position !== undefined && object.position !== null)
|
|
2917
|
+
? Coordinate_1.Coordinate.fromPartial(object.position)
|
|
2918
|
+
: undefined;
|
|
2919
|
+
message.alongTrackFraction = object.alongTrackFraction ?? undefined;
|
|
2920
|
+
message.offsetM = object.offsetM ?? undefined;
|
|
2921
|
+
message.inTurn = object.inTurn ?? false;
|
|
2922
|
+
return message;
|
|
2923
|
+
},
|
|
2924
|
+
};
|
|
2925
|
+
typeRegistry_1.messageTypeRegistry.set(exports.XtdBoundaryPoint.$type, exports.XtdBoundaryPoint);
|
|
2612
2926
|
function createBaseSchedules() {
|
|
2613
2927
|
return { $type: "keelson.Schedules", schedule: [], extensions: undefined };
|
|
2614
2928
|
}
|
|
@@ -11,6 +11,13 @@ export interface RouteExecution {
|
|
|
11
11
|
/**
|
|
12
12
|
* Stable id of the next waypoint to be reached. Unset before departure and
|
|
13
13
|
* after final arrival.
|
|
14
|
+
*
|
|
15
|
+
* On the closing leg of a route whose Waypoints.topology is CLOSED this
|
|
16
|
+
* wraps: `current_leg_from_waypoint_id` is the last waypoint and this is the
|
|
17
|
+
* FIRST. A consumer MUST NOT derive "next" by incrementing a position in the
|
|
18
|
+
* waypoint list — on a closed route that runs off the end. The distance and
|
|
19
|
+
* bearing fields below are defined against this id and so follow it round
|
|
20
|
+
* the corner unchanged, which is the payoff of the id-not-index rule above.
|
|
14
21
|
*/
|
|
15
22
|
nextWaypointId?: string | undefined;
|
|
16
23
|
/** Great-circle distance to the next waypoint (metres). */
|
|
@@ -35,6 +35,20 @@ export interface ScenarioEvent {
|
|
|
35
35
|
*/
|
|
36
36
|
runId: string;
|
|
37
37
|
tick: number;
|
|
38
|
+
/**
|
|
39
|
+
* Which scenario was loaded, spelled as ScenarioStatus spells it.
|
|
40
|
+
*
|
|
41
|
+
* run_id above says *which run*; this says *what was being run*, and the two
|
|
42
|
+
* are not recoverable from each other. A reader holding only events has to
|
|
43
|
+
* join them against a ScenarioStatus to learn what the exercise was — which
|
|
44
|
+
* is a join, not a lookup, and one that stops being cheap the moment a
|
|
45
|
+
* recording holds more than one run.
|
|
46
|
+
*
|
|
47
|
+
* Optional in practice: an authority that publishes ScenarioStatus on the
|
|
48
|
+
* same run may leave it empty and lose nothing. It is here so an events-only
|
|
49
|
+
* consumer is not the one paying for that choice.
|
|
50
|
+
*/
|
|
51
|
+
scenarioId: string;
|
|
38
52
|
/**
|
|
39
53
|
* What was done. A free string rather than an enum, deliberately: the
|
|
40
54
|
* vocabulary belongs to the scenario format, not to keelson, and a fixed
|
|
@@ -16,6 +16,7 @@ function createBaseScenarioEvent() {
|
|
|
16
16
|
timestamp: undefined,
|
|
17
17
|
runId: "",
|
|
18
18
|
tick: 0,
|
|
19
|
+
scenarioId: "",
|
|
19
20
|
action: "",
|
|
20
21
|
entityId: "",
|
|
21
22
|
parameters: {},
|
|
@@ -34,6 +35,9 @@ exports.ScenarioEvent = {
|
|
|
34
35
|
if (message.tick !== 0) {
|
|
35
36
|
writer.uint32(24).uint64(message.tick);
|
|
36
37
|
}
|
|
38
|
+
if (message.scenarioId !== "") {
|
|
39
|
+
writer.uint32(66).string(message.scenarioId);
|
|
40
|
+
}
|
|
37
41
|
if (message.action !== "") {
|
|
38
42
|
writer.uint32(34).string(message.action);
|
|
39
43
|
}
|
|
@@ -76,6 +80,13 @@ exports.ScenarioEvent = {
|
|
|
76
80
|
message.tick = longToNumber(reader.uint64());
|
|
77
81
|
continue;
|
|
78
82
|
}
|
|
83
|
+
case 8: {
|
|
84
|
+
if (tag !== 66) {
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
message.scenarioId = reader.string();
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
79
90
|
case 4: {
|
|
80
91
|
if (tag !== 34) {
|
|
81
92
|
break;
|
|
@@ -121,6 +132,7 @@ exports.ScenarioEvent = {
|
|
|
121
132
|
timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : undefined,
|
|
122
133
|
runId: isSet(object.runId) ? globalThis.String(object.runId) : "",
|
|
123
134
|
tick: isSet(object.tick) ? globalThis.Number(object.tick) : 0,
|
|
135
|
+
scenarioId: isSet(object.scenarioId) ? globalThis.String(object.scenarioId) : "",
|
|
124
136
|
action: isSet(object.action) ? globalThis.String(object.action) : "",
|
|
125
137
|
entityId: isSet(object.entityId) ? globalThis.String(object.entityId) : "",
|
|
126
138
|
parameters: isObject(object.parameters)
|
|
@@ -143,6 +155,9 @@ exports.ScenarioEvent = {
|
|
|
143
155
|
if (message.tick !== 0) {
|
|
144
156
|
obj.tick = Math.round(message.tick);
|
|
145
157
|
}
|
|
158
|
+
if (message.scenarioId !== "") {
|
|
159
|
+
obj.scenarioId = message.scenarioId;
|
|
160
|
+
}
|
|
146
161
|
if (message.action !== "") {
|
|
147
162
|
obj.action = message.action;
|
|
148
163
|
}
|
|
@@ -171,6 +186,7 @@ exports.ScenarioEvent = {
|
|
|
171
186
|
message.timestamp = object.timestamp ?? undefined;
|
|
172
187
|
message.runId = object.runId ?? "";
|
|
173
188
|
message.tick = object.tick ?? 0;
|
|
189
|
+
message.scenarioId = object.scenarioId ?? "";
|
|
174
190
|
message.action = object.action ?? "";
|
|
175
191
|
message.entityId = object.entityId ?? "";
|
|
176
192
|
message.parameters = Object.entries(object.parameters ?? {}).reduce((acc, [key, value]) => {
|
package/dist/payloads/index.d.ts
CHANGED
package/dist/payloads/index.js
CHANGED
|
@@ -27,8 +27,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
27
27
|
return result;
|
|
28
28
|
};
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.
|
|
30
|
+
exports.foxglove = exports.keelson = exports.google = void 0;
|
|
31
31
|
/* eslint-disable */
|
|
32
32
|
exports.google = __importStar(require("./index.google"));
|
|
33
|
-
exports.foxglove = __importStar(require("./index.foxglove"));
|
|
34
33
|
exports.keelson = __importStar(require("./index.keelson"));
|
|
34
|
+
exports.foxglove = __importStar(require("./index.foxglove"));
|
|
@@ -1,23 +1,29 @@
|
|
|
1
|
+
export * from "./AdviceDisposition";
|
|
1
2
|
export * from "./Audio";
|
|
2
3
|
export * from "./Severity";
|
|
3
4
|
export * from "./Alarm";
|
|
4
5
|
export * from "./ChecklistEvidence";
|
|
5
6
|
export * from "./ChecklistEvent";
|
|
6
|
-
export * from "./ChecklistPresence";
|
|
7
7
|
export * from "./ChecklistProcedure";
|
|
8
8
|
export * from "./ChecklistState";
|
|
9
|
-
export * from "./CommandAuthority";
|
|
10
9
|
export * from "./Coordinate";
|
|
10
|
+
export * from "./OperationalAuthority";
|
|
11
|
+
export * from "./ChecklistHandover";
|
|
12
|
+
export * from "./ChecklistPresence";
|
|
13
|
+
export * from "./CommandAuthority";
|
|
14
|
+
export * from "./ContainerHost";
|
|
11
15
|
export * from "./Decomposed3DVector";
|
|
12
|
-
export * from "./EntityHealth";
|
|
13
16
|
export * from "./Route";
|
|
17
|
+
export * from "./Encounter";
|
|
18
|
+
export * from "./EntityHealth";
|
|
14
19
|
export * from "./EnvelopeExceedance";
|
|
15
20
|
export * from "./FlagCode";
|
|
16
21
|
export * from "./Geojson";
|
|
17
22
|
export * from "./LocationFixQuality";
|
|
18
23
|
export * from "./Mission";
|
|
24
|
+
export * from "./NavigationAdvice";
|
|
25
|
+
export * from "./NavigationState";
|
|
19
26
|
export * from "./NetworkStatus";
|
|
20
|
-
export * from "./OperationalAuthority";
|
|
21
27
|
export * from "./Primitives";
|
|
22
28
|
export * from "./ROCStatus";
|
|
23
29
|
export * from "./RadarReading";
|
|
@@ -19,26 +19,32 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
19
19
|
};
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
21
|
/* eslint-disable */
|
|
22
|
+
__exportStar(require("./AdviceDisposition"), exports);
|
|
22
23
|
__exportStar(require("./Audio"), exports);
|
|
23
24
|
__exportStar(require("./Severity"), exports);
|
|
24
25
|
__exportStar(require("./Alarm"), exports);
|
|
25
26
|
__exportStar(require("./ChecklistEvidence"), exports);
|
|
26
27
|
__exportStar(require("./ChecklistEvent"), exports);
|
|
27
|
-
__exportStar(require("./ChecklistPresence"), exports);
|
|
28
28
|
__exportStar(require("./ChecklistProcedure"), exports);
|
|
29
29
|
__exportStar(require("./ChecklistState"), exports);
|
|
30
|
-
__exportStar(require("./CommandAuthority"), exports);
|
|
31
30
|
__exportStar(require("./Coordinate"), exports);
|
|
31
|
+
__exportStar(require("./OperationalAuthority"), exports);
|
|
32
|
+
__exportStar(require("./ChecklistHandover"), exports);
|
|
33
|
+
__exportStar(require("./ChecklistPresence"), exports);
|
|
34
|
+
__exportStar(require("./CommandAuthority"), exports);
|
|
35
|
+
__exportStar(require("./ContainerHost"), exports);
|
|
32
36
|
__exportStar(require("./Decomposed3DVector"), exports);
|
|
33
|
-
__exportStar(require("./EntityHealth"), exports);
|
|
34
37
|
__exportStar(require("./Route"), exports);
|
|
38
|
+
__exportStar(require("./Encounter"), exports);
|
|
39
|
+
__exportStar(require("./EntityHealth"), exports);
|
|
35
40
|
__exportStar(require("./EnvelopeExceedance"), exports);
|
|
36
41
|
__exportStar(require("./FlagCode"), exports);
|
|
37
42
|
__exportStar(require("./Geojson"), exports);
|
|
38
43
|
__exportStar(require("./LocationFixQuality"), exports);
|
|
39
44
|
__exportStar(require("./Mission"), exports);
|
|
45
|
+
__exportStar(require("./NavigationAdvice"), exports);
|
|
46
|
+
__exportStar(require("./NavigationState"), exports);
|
|
40
47
|
__exportStar(require("./NetworkStatus"), exports);
|
|
41
|
-
__exportStar(require("./OperationalAuthority"), exports);
|
|
42
48
|
__exportStar(require("./Primitives"), exports);
|
|
43
49
|
__exportStar(require("./ROCStatus"), exports);
|
|
44
50
|
__exportStar(require("./RadarReading"), exports);
|
package/dist/qos.json
CHANGED
|
@@ -83,12 +83,18 @@
|
|
|
83
83
|
"depth_below_transducer_m": "elevated",
|
|
84
84
|
"depth_below_keel_m": "elevated",
|
|
85
85
|
"depth_below_surface_m": "elevated",
|
|
86
|
+
"water_level_above_chart_datum_m": "elevated",
|
|
86
87
|
"envelope_exceedance": "elevated",
|
|
87
88
|
"route_status": "elevated",
|
|
88
89
|
"route_execution": "elevated",
|
|
90
|
+
"navigation_state": "elevated",
|
|
91
|
+
"encounter": "elevated",
|
|
92
|
+
"navigation_advice": "elevated",
|
|
93
|
+
"advice_disposition": "elevated",
|
|
89
94
|
"route_edit_authority": "elevated",
|
|
90
95
|
"route_edit_request": "elevated",
|
|
91
96
|
"checklist_event": "elevated",
|
|
97
|
+
"checklist_handover": "elevated",
|
|
92
98
|
"raw": "background",
|
|
93
99
|
"raw_json": "background",
|
|
94
100
|
"raw_nmea0183": "background",
|