@rise-maritime/keelson-js 0.6.0-experimental.2 → 0.6.0-experimental.20
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 +98 -0
- package/dist/index.test.js +1 -1
- package/dist/interfaces/NavigationControl.d.ts +266 -0
- package/dist/interfaces/NavigationControl.js +1264 -0
- package/dist/interfaces/NavigationRiskControl.d.ts +161 -0
- package/dist/interfaces/NavigationRiskControl.js +1007 -0
- package/dist/interfaces/NavigationState.d.ts +208 -0
- package/dist/interfaces/NavigationState.js +980 -0
- package/dist/interfaces/OperationalAuthority.d.ts +217 -0
- package/dist/interfaces/OperationalAuthority.js +807 -0
- package/dist/interfaces/ReplayControl.d.ts +50 -1
- package/dist/interfaces/ReplayControl.js +96 -3
- package/dist/interfaces/Route.d.ts +3 -0
- package/dist/interfaces/ScenarioControl.d.ts +10 -0
- package/dist/interfaces/ScenarioControl.js +19 -2
- package/dist/interfaces/VehicleControl.d.ts +20 -0
- package/dist/interfaces/VehicleLifecycle.d.ts +30 -0
- package/dist/interfaces/VehicleLifecycle.js +143 -1
- package/dist/interfaces/VehicleNavigation.d.ts +10 -2
- package/dist/interfaces/VehicleNavigation.js +35 -2
- package/dist/interfaces/VesselType.d.ts +133 -0
- package/dist/interfaces/VesselType.js +726 -0
- package/dist/interfaces/Voyage.d.ts +161 -0
- package/dist/interfaces/Voyage.js +871 -0
- package/dist/interfaces/serviceRegistry.d.ts +100 -0
- package/dist/interfaces/serviceRegistry.js +4 -0
- package/dist/interfaces.json +2 -0
- package/dist/payloads/NavigationRisk.d.ts +359 -0
- package/dist/payloads/NavigationRisk.js +2680 -0
- package/dist/payloads/NavigationState.d.ts +126 -1
- package/dist/payloads/NavigationState.js +633 -2
- package/dist/payloads/NetworkStatus.d.ts +16 -0
- package/dist/payloads/NetworkStatus.js +64 -0
- package/dist/payloads/PilotCard.d.ts +297 -0
- package/dist/payloads/PilotCard.js +1582 -0
- package/dist/payloads/ReplayStatus.d.ts +22 -2
- package/dist/payloads/ReplayStatus.js +73 -1
- package/dist/payloads/Route.d.ts +3 -0
- package/dist/payloads/Voyage.d.ts +10 -0
- package/dist/payloads/Voyage.js +16 -0
- package/dist/payloads/index.keelson.d.ts +2 -0
- package/dist/payloads/index.keelson.js +2 -0
- package/dist/subjects.json +13 -2
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -131,6 +131,59 @@ export declare function getInterfaceDefinition(interfaceAndVersion: string): {
|
|
|
131
131
|
readonly options: {};
|
|
132
132
|
};
|
|
133
133
|
};
|
|
134
|
+
} | {
|
|
135
|
+
readonly name: "NavigationControl";
|
|
136
|
+
readonly fullName: "keelson.interfaces.navigation_control.NavigationControl";
|
|
137
|
+
readonly methods: {
|
|
138
|
+
readonly load_route: {
|
|
139
|
+
readonly name: "load_route";
|
|
140
|
+
readonly requestType: import("./interfaces/NavigationControl").MessageFns<import("./interfaces/NavigationControl").LoadRouteRequest>;
|
|
141
|
+
readonly requestStream: false;
|
|
142
|
+
readonly responseType: import("./interfaces/NavigationControl").MessageFns<import("./interfaces/NavigationControl").LoadRouteResponse>;
|
|
143
|
+
readonly responseStream: false;
|
|
144
|
+
readonly options: {};
|
|
145
|
+
};
|
|
146
|
+
readonly set_guidance_order: {
|
|
147
|
+
readonly name: "set_guidance_order";
|
|
148
|
+
readonly requestType: import("./interfaces/NavigationControl").MessageFns<import("./interfaces/NavigationControl").SetGuidanceOrderRequest>;
|
|
149
|
+
readonly requestStream: false;
|
|
150
|
+
readonly responseType: import("./interfaces/NavigationControl").MessageFns<import("./interfaces/NavigationControl").SetGuidanceOrderResponse>;
|
|
151
|
+
readonly responseStream: false;
|
|
152
|
+
readonly options: {};
|
|
153
|
+
};
|
|
154
|
+
readonly set_voyage_status: {
|
|
155
|
+
readonly name: "set_voyage_status";
|
|
156
|
+
readonly requestType: import("./interfaces/NavigationControl").MessageFns<import("./interfaces/NavigationControl").SetVoyageStatusRequest>;
|
|
157
|
+
readonly requestStream: false;
|
|
158
|
+
readonly responseType: import("./interfaces/NavigationControl").MessageFns<import("./interfaces/NavigationControl").SetVoyageStatusResponse>;
|
|
159
|
+
readonly responseStream: false;
|
|
160
|
+
readonly options: {};
|
|
161
|
+
};
|
|
162
|
+
readonly get_navigation_state: {
|
|
163
|
+
readonly name: "get_navigation_state";
|
|
164
|
+
readonly requestType: import("./interfaces/NavigationControl").MessageFns<import("./interfaces/NavigationControl").GetNavigationStateRequest>;
|
|
165
|
+
readonly requestStream: false;
|
|
166
|
+
readonly responseType: import("./interfaces/NavigationState").MessageFns<import("./interfaces/NavigationState").NavigationState>;
|
|
167
|
+
readonly responseStream: false;
|
|
168
|
+
readonly options: {};
|
|
169
|
+
};
|
|
170
|
+
readonly get_settings: {
|
|
171
|
+
readonly name: "get_settings";
|
|
172
|
+
readonly requestType: import("./interfaces/NavigationControl").MessageFns<import("./interfaces/NavigationControl").GetSettingsRequest>;
|
|
173
|
+
readonly requestStream: false;
|
|
174
|
+
readonly responseType: import("./interfaces/NavigationControl").MessageFns<import("./interfaces/NavigationControl").GetSettingsResponse>;
|
|
175
|
+
readonly responseStream: false;
|
|
176
|
+
readonly options: {};
|
|
177
|
+
};
|
|
178
|
+
readonly set_settings: {
|
|
179
|
+
readonly name: "set_settings";
|
|
180
|
+
readonly requestType: import("./interfaces/NavigationControl").MessageFns<import("./interfaces/NavigationControl").SetSettingsRequest>;
|
|
181
|
+
readonly requestStream: false;
|
|
182
|
+
readonly responseType: import("./interfaces/NavigationControl").MessageFns<import("./interfaces/NavigationControl").SetSettingsResponse>;
|
|
183
|
+
readonly responseStream: false;
|
|
184
|
+
readonly options: {};
|
|
185
|
+
};
|
|
186
|
+
};
|
|
134
187
|
} | {
|
|
135
188
|
readonly name: "NetworkPingPong";
|
|
136
189
|
readonly fullName: "keelson.interfaces.network_ping_pong.NetworkPingPong";
|
|
@@ -144,6 +197,35 @@ export declare function getInterfaceDefinition(interfaceAndVersion: string): {
|
|
|
144
197
|
readonly options: {};
|
|
145
198
|
};
|
|
146
199
|
};
|
|
200
|
+
} | {
|
|
201
|
+
readonly name: "NavigationRiskControl";
|
|
202
|
+
readonly fullName: "keelson.interfaces.navigation_risk_control.NavigationRiskControl";
|
|
203
|
+
readonly methods: {
|
|
204
|
+
readonly list_assessments: {
|
|
205
|
+
readonly name: "list_assessments";
|
|
206
|
+
readonly requestType: import("./interfaces/NavigationRiskControl").MessageFns<import("./interfaces/NavigationRiskControl").ListAssessmentsRequest>;
|
|
207
|
+
readonly requestStream: false;
|
|
208
|
+
readonly responseType: import("./interfaces/NavigationRiskControl").MessageFns<import("./interfaces/NavigationRiskControl").ListAssessmentsResponse>;
|
|
209
|
+
readonly responseStream: false;
|
|
210
|
+
readonly options: {};
|
|
211
|
+
};
|
|
212
|
+
readonly start_assessment: {
|
|
213
|
+
readonly name: "start_assessment";
|
|
214
|
+
readonly requestType: import("./interfaces/NavigationRiskControl").MessageFns<import("./interfaces/NavigationRiskControl").StartAssessmentRequest>;
|
|
215
|
+
readonly requestStream: false;
|
|
216
|
+
readonly responseType: import("./interfaces/NavigationRiskControl").MessageFns<import("./interfaces/NavigationRiskControl").StartAssessmentResponse>;
|
|
217
|
+
readonly responseStream: false;
|
|
218
|
+
readonly options: {};
|
|
219
|
+
};
|
|
220
|
+
readonly stop_assessment: {
|
|
221
|
+
readonly name: "stop_assessment";
|
|
222
|
+
readonly requestType: import("./interfaces/NavigationRiskControl").MessageFns<import("./interfaces/NavigationRiskControl").StopAssessmentRequest>;
|
|
223
|
+
readonly requestStream: false;
|
|
224
|
+
readonly responseType: import("./interfaces/NavigationRiskControl").MessageFns<import("./interfaces/NavigationRiskControl").StopAssessmentResponse>;
|
|
225
|
+
readonly responseStream: false;
|
|
226
|
+
readonly options: {};
|
|
227
|
+
};
|
|
228
|
+
};
|
|
147
229
|
} | {
|
|
148
230
|
readonly name: "ReplayControl";
|
|
149
231
|
readonly fullName: "keelson.interfaces.replay_control.ReplayControl";
|
|
@@ -220,6 +302,14 @@ export declare function getInterfaceDefinition(interfaceAndVersion: string): {
|
|
|
220
302
|
readonly responseStream: false;
|
|
221
303
|
readonly options: {};
|
|
222
304
|
};
|
|
305
|
+
readonly set_range: {
|
|
306
|
+
readonly name: "set_range";
|
|
307
|
+
readonly requestType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").SetRangeRequest>;
|
|
308
|
+
readonly requestStream: false;
|
|
309
|
+
readonly responseType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").ReplaySuccessResponse>;
|
|
310
|
+
readonly responseStream: false;
|
|
311
|
+
readonly options: {};
|
|
312
|
+
};
|
|
223
313
|
};
|
|
224
314
|
} | {
|
|
225
315
|
readonly name: "RoutePlanner";
|
|
@@ -476,6 +566,14 @@ export declare function getInterfaceDefinition(interfaceAndVersion: string): {
|
|
|
476
566
|
readonly responseStream: false;
|
|
477
567
|
readonly options: {};
|
|
478
568
|
};
|
|
569
|
+
readonly crash_stop: {
|
|
570
|
+
readonly name: "crash_stop";
|
|
571
|
+
readonly requestType: import("./interfaces/VehicleLifecycle").MessageFns<import("./interfaces/VehicleLifecycle").CrashStopRequest>;
|
|
572
|
+
readonly requestStream: false;
|
|
573
|
+
readonly responseType: import("./interfaces/VehicleLifecycle").MessageFns<import("./interfaces/VehicleLifecycle").CrashStopResponse>;
|
|
574
|
+
readonly responseStream: false;
|
|
575
|
+
readonly options: {};
|
|
576
|
+
};
|
|
479
577
|
};
|
|
480
578
|
} | {
|
|
481
579
|
readonly name: "VehicleMission";
|
package/dist/index.test.js
CHANGED
|
@@ -205,7 +205,7 @@ describe("interface introspection", () => {
|
|
|
205
205
|
expect(interfaces.length).toBeGreaterThanOrEqual(14);
|
|
206
206
|
});
|
|
207
207
|
it("enumerates procedures", () => {
|
|
208
|
-
expect(getProcedures("vehicle_lifecycle/v1")).toEqual(["arm", "set_mode", "emergency_stop"]);
|
|
208
|
+
expect(getProcedures("vehicle_lifecycle/v1")).toEqual(["arm", "set_mode", "emergency_stop", "crash_stop"]);
|
|
209
209
|
expect(() => getProcedures("nope/v1")).toThrow();
|
|
210
210
|
});
|
|
211
211
|
it("resolves procedure codecs that roundtrip", () => {
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
|
+
import { GuidanceOrder, NavigationState } from "./NavigationState";
|
|
3
|
+
import { RouteRef } from "./Route";
|
|
4
|
+
import { CommandResult } from "./VehicleCommon";
|
|
5
|
+
import { VoyageStatus } from "./Voyage";
|
|
6
|
+
export declare const protobufPackage = "keelson.interfaces.navigation_control";
|
|
7
|
+
/** Who is calling, and on what authority. Carried by every mutating request. */
|
|
8
|
+
export interface Caller {
|
|
9
|
+
/**
|
|
10
|
+
* Identity of the operator and site, or the service, e.g. "ted@ROC-1", "slipway". Recorded in
|
|
11
|
+
* the responder's decision log, so it should mean something to somebody reading that later.
|
|
12
|
+
*/
|
|
13
|
+
controllerId: string;
|
|
14
|
+
/**
|
|
15
|
+
* The token of the command_authority lease the caller holds. Absent when it holds none, which
|
|
16
|
+
* is valid only while the responder holds the conn itself. The token is broadcast on a stored
|
|
17
|
+
* slot, so this is an interlock against a station that has lost the conn, not a credential
|
|
18
|
+
* (protocols/navigation_conduct.yaml).
|
|
19
|
+
*/
|
|
20
|
+
authorityToken?: string | undefined;
|
|
21
|
+
}
|
|
22
|
+
/** Make a route edition the active voyage of this vessel. */
|
|
23
|
+
export interface LoadRouteRequest {
|
|
24
|
+
/** Client wall-clock at send, for latency logging only. */
|
|
25
|
+
timestamp: Date | undefined;
|
|
26
|
+
caller: Caller | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* The entity whose route tree holds the edition. RouteRef names no entity, so it always
|
|
29
|
+
* resolves inside the vessel's own tree; a route drawn for another vessel is copied first.
|
|
30
|
+
* When it differs from this vessel, the responder reads
|
|
31
|
+
* `{base}/@v0/{source_entity_id}/pubsub/route/{route_id}/edition/{N}` and republishes it
|
|
32
|
+
* unchanged under its own vessel, with the same route_id and edition, before activating it.
|
|
33
|
+
* Editions are immutable, so the copy is the same route, not a new one.
|
|
34
|
+
*/
|
|
35
|
+
sourceEntityId: string;
|
|
36
|
+
/**
|
|
37
|
+
* The edition to sail. Never `latest`: an edition that cannot be resolved is refused, never
|
|
38
|
+
* silently replaced.
|
|
39
|
+
*/
|
|
40
|
+
routeRef: RouteRef | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* The voyage to activate. Absent: the responder mints one. Present and already a voyage of
|
|
43
|
+
* this vessel: that voyage is re-pinned to `route_ref` (a reroute).
|
|
44
|
+
*/
|
|
45
|
+
voyageId?: string | undefined;
|
|
46
|
+
/** The guidance order to take up once the voyage is active. Absent: TRACK. */
|
|
47
|
+
initialOrder?: GuidanceOrder | undefined;
|
|
48
|
+
}
|
|
49
|
+
export interface LoadRouteResponse {
|
|
50
|
+
result: CommandResult;
|
|
51
|
+
/**
|
|
52
|
+
* Why not, when result is not ACCEPTED: an unresolvable edition, no conn, another voyage the
|
|
53
|
+
* responder will not displace. Empty otherwise.
|
|
54
|
+
*/
|
|
55
|
+
detail: string;
|
|
56
|
+
/** The voyage now ACTIVE, when result is ACCEPTED. */
|
|
57
|
+
voyageId?: string | undefined;
|
|
58
|
+
/** The navigation state the order produced. */
|
|
59
|
+
state?: NavigationState | undefined;
|
|
60
|
+
}
|
|
61
|
+
/** Change how the vessel is steered while a voyage is active. */
|
|
62
|
+
export interface SetGuidanceOrderRequest {
|
|
63
|
+
timestamp: Date | undefined;
|
|
64
|
+
caller: Caller | undefined;
|
|
65
|
+
order: GuidanceOrder | undefined;
|
|
66
|
+
}
|
|
67
|
+
export interface SetGuidanceOrderResponse {
|
|
68
|
+
/**
|
|
69
|
+
* UNSUPPORTED when the responder, or the vehicle behind it, cannot hold the requested frame —
|
|
70
|
+
* it never substitutes course for heading or the reverse, never approximates a `go_to` by a
|
|
71
|
+
* course, and never a `dynamic_positioning` by a `go_to`: DP without lateral authority is
|
|
72
|
+
* UNSUPPORTED; so is a track offset, reverse travel or speed_plan_factor from a responder that
|
|
73
|
+
* cannot honour it -- never ignored. TEMPORARILY_REJECTED when there is no active voyage to steer. INVALID_ARGUMENT
|
|
74
|
+
* for both cross-track offsets or both speed_knots and speed_plan_factor, a
|
|
75
|
+
* cross_track_offset_fraction outside -1..1, a speed_plan_factor that is not greater than zero,
|
|
76
|
+
* for a position outside WGS84 ranges, a negative arrival radius, a loiter radius that is not
|
|
77
|
+
* greater than zero, a DP heading outside [0, 360), or a walk or return speed that is not
|
|
78
|
+
* greater than zero.
|
|
79
|
+
*/
|
|
80
|
+
result: CommandResult;
|
|
81
|
+
detail: string;
|
|
82
|
+
state?: NavigationState | undefined;
|
|
83
|
+
}
|
|
84
|
+
/** Pause, resume, complete or abort the active voyage. */
|
|
85
|
+
export interface SetVoyageStatusRequest {
|
|
86
|
+
timestamp: Date | undefined;
|
|
87
|
+
caller: Caller | undefined;
|
|
88
|
+
voyageId: string;
|
|
89
|
+
/**
|
|
90
|
+
* PAUSED, ACTIVE (resume), COMPLETED or ABORTED. PLANNED is refused: a voyage is planned by
|
|
91
|
+
* publishing it, not by asking the process sailing it.
|
|
92
|
+
*/
|
|
93
|
+
status: VoyageStatus;
|
|
94
|
+
/** Why, for the voyage's audit trail. Free text. */
|
|
95
|
+
reason: string;
|
|
96
|
+
}
|
|
97
|
+
export interface SetVoyageStatusResponse {
|
|
98
|
+
result: CommandResult;
|
|
99
|
+
detail: string;
|
|
100
|
+
state?: NavigationState | undefined;
|
|
101
|
+
}
|
|
102
|
+
export interface GetNavigationStateRequest {
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* What an operator may tune while the navigation process runs. Every field is optional: in a
|
|
106
|
+
* set_settings request only the fields present change; in a reply a field is present when the
|
|
107
|
+
* process has that setting at all. Settings tune HOW it carries out orders -- they never move the
|
|
108
|
+
* conn, change the voyage, or give an order.
|
|
109
|
+
*/
|
|
110
|
+
export interface NavigationSettings {
|
|
111
|
+
/**
|
|
112
|
+
* false pauses the COLREG advisor: no new encounters or advice. Advice already accepted is
|
|
113
|
+
* steered to its end; open advice is left to expire.
|
|
114
|
+
*/
|
|
115
|
+
colregAdvisorActive?: boolean | undefined;
|
|
116
|
+
/**
|
|
117
|
+
* Accept its own advice, within what the authority level in force allows. false: every piece
|
|
118
|
+
* of advice waits for an operator's advice_disposition.
|
|
119
|
+
*/
|
|
120
|
+
autoAcceptAdvice?: boolean | undefined;
|
|
121
|
+
/** The passage speed, knots, > 0, when an order names none and a leg plans none. */
|
|
122
|
+
defaultSpeedKnots?: number | undefined;
|
|
123
|
+
/** Arrival radius, metres, >= 0, for a GuidanceOrder.go_to that names none. */
|
|
124
|
+
goToArrivalRadiusM?: number | undefined;
|
|
125
|
+
/** Return speed through the water, knots, > 0, for a GuidanceOrder.loiter that names none. */
|
|
126
|
+
loiterReturnSpeedKnots?: number | undefined;
|
|
127
|
+
/** Targets farther than this, metres, > 0, are not considered for traffic or COLREG. */
|
|
128
|
+
trafficRangeM?: number | undefined;
|
|
129
|
+
/** Whether the route monitor publishes its alarms (deviation, envelope). Monitoring itself goes on. */
|
|
130
|
+
routeAlarms?: boolean | undefined;
|
|
131
|
+
}
|
|
132
|
+
export interface GetSettingsRequest {
|
|
133
|
+
}
|
|
134
|
+
export interface GetSettingsResponse {
|
|
135
|
+
settings: NavigationSettings | undefined;
|
|
136
|
+
/**
|
|
137
|
+
* Settings this process has but cannot change while it runs, by field name (e.g.
|
|
138
|
+
* "colreg_advisor_active" when the advisor was not started). A set naming one is UNSUPPORTED.
|
|
139
|
+
*/
|
|
140
|
+
fixed: string[];
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Change settings while the process runs. The same who-may-call rule as every other mutating
|
|
144
|
+
* procedure here: the holder of the live lease presenting its token, or a permitted controller.
|
|
145
|
+
*/
|
|
146
|
+
export interface SetSettingsRequest {
|
|
147
|
+
timestamp: Date | undefined;
|
|
148
|
+
caller: Caller | undefined;
|
|
149
|
+
settings: NavigationSettings | undefined;
|
|
150
|
+
}
|
|
151
|
+
export interface SetSettingsResponse {
|
|
152
|
+
/**
|
|
153
|
+
* DENIED without the conn or its token. UNSUPPORTED for a field in GetSettingsResponse.fixed, or
|
|
154
|
+
* one this process does not have. INVALID_ARGUMENT for a value out of range. A request is applied
|
|
155
|
+
* whole or not at all -- never partly.
|
|
156
|
+
*/
|
|
157
|
+
result: CommandResult;
|
|
158
|
+
detail: string;
|
|
159
|
+
/** The settings in force after the call, whatever the result. */
|
|
160
|
+
settings: NavigationSettings | undefined;
|
|
161
|
+
}
|
|
162
|
+
export declare const Caller: MessageFns<Caller>;
|
|
163
|
+
export declare const LoadRouteRequest: MessageFns<LoadRouteRequest>;
|
|
164
|
+
export declare const LoadRouteResponse: MessageFns<LoadRouteResponse>;
|
|
165
|
+
export declare const SetGuidanceOrderRequest: MessageFns<SetGuidanceOrderRequest>;
|
|
166
|
+
export declare const SetGuidanceOrderResponse: MessageFns<SetGuidanceOrderResponse>;
|
|
167
|
+
export declare const SetVoyageStatusRequest: MessageFns<SetVoyageStatusRequest>;
|
|
168
|
+
export declare const SetVoyageStatusResponse: MessageFns<SetVoyageStatusResponse>;
|
|
169
|
+
export declare const GetNavigationStateRequest: MessageFns<GetNavigationStateRequest>;
|
|
170
|
+
export declare const NavigationSettings: MessageFns<NavigationSettings>;
|
|
171
|
+
export declare const GetSettingsRequest: MessageFns<GetSettingsRequest>;
|
|
172
|
+
export declare const GetSettingsResponse: MessageFns<GetSettingsResponse>;
|
|
173
|
+
export declare const SetSettingsRequest: MessageFns<SetSettingsRequest>;
|
|
174
|
+
export declare const SetSettingsResponse: MessageFns<SetSettingsResponse>;
|
|
175
|
+
export type NavigationControlDefinition = typeof NavigationControlDefinition;
|
|
176
|
+
export declare const NavigationControlDefinition: {
|
|
177
|
+
readonly name: "NavigationControl";
|
|
178
|
+
readonly fullName: "keelson.interfaces.navigation_control.NavigationControl";
|
|
179
|
+
readonly methods: {
|
|
180
|
+
/**
|
|
181
|
+
* Make a route edition this vessel's active voyage, copying it from another vessel's tree when
|
|
182
|
+
* needed, and take up a guidance order.
|
|
183
|
+
*/
|
|
184
|
+
readonly load_route: {
|
|
185
|
+
readonly name: "load_route";
|
|
186
|
+
readonly requestType: MessageFns<LoadRouteRequest>;
|
|
187
|
+
readonly requestStream: false;
|
|
188
|
+
readonly responseType: MessageFns<LoadRouteResponse>;
|
|
189
|
+
readonly responseStream: false;
|
|
190
|
+
readonly options: {};
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* Steer by the track, a course, a heading, for a position; hold, loiter, or keep a position and
|
|
194
|
+
* heading (DP); optionally with a speed.
|
|
195
|
+
*/
|
|
196
|
+
readonly set_guidance_order: {
|
|
197
|
+
readonly name: "set_guidance_order";
|
|
198
|
+
readonly requestType: MessageFns<SetGuidanceOrderRequest>;
|
|
199
|
+
readonly requestStream: false;
|
|
200
|
+
readonly responseType: MessageFns<SetGuidanceOrderResponse>;
|
|
201
|
+
readonly responseStream: false;
|
|
202
|
+
readonly options: {};
|
|
203
|
+
};
|
|
204
|
+
/** Pause, resume, complete or abort the active voyage. */
|
|
205
|
+
readonly set_voyage_status: {
|
|
206
|
+
readonly name: "set_voyage_status";
|
|
207
|
+
readonly requestType: MessageFns<SetVoyageStatusRequest>;
|
|
208
|
+
readonly requestStream: false;
|
|
209
|
+
readonly responseType: MessageFns<SetVoyageStatusResponse>;
|
|
210
|
+
readonly responseStream: false;
|
|
211
|
+
readonly options: {};
|
|
212
|
+
};
|
|
213
|
+
/**
|
|
214
|
+
* The current NavigationState — the same payload as the `navigation_state` broadcast, for a
|
|
215
|
+
* caller that cannot wait for the next one. Needs no authority.
|
|
216
|
+
*/
|
|
217
|
+
readonly get_navigation_state: {
|
|
218
|
+
readonly name: "get_navigation_state";
|
|
219
|
+
readonly requestType: MessageFns<GetNavigationStateRequest>;
|
|
220
|
+
readonly requestStream: false;
|
|
221
|
+
readonly responseType: import("./NavigationState").MessageFns<NavigationState>;
|
|
222
|
+
readonly responseStream: false;
|
|
223
|
+
readonly options: {};
|
|
224
|
+
};
|
|
225
|
+
/** The settings in force, and which cannot change while it runs. Needs no authority. */
|
|
226
|
+
readonly get_settings: {
|
|
227
|
+
readonly name: "get_settings";
|
|
228
|
+
readonly requestType: MessageFns<GetSettingsRequest>;
|
|
229
|
+
readonly requestStream: false;
|
|
230
|
+
readonly responseType: MessageFns<GetSettingsResponse>;
|
|
231
|
+
readonly responseStream: false;
|
|
232
|
+
readonly options: {};
|
|
233
|
+
};
|
|
234
|
+
/**
|
|
235
|
+
* Tune the process while it runs: COLREG advisor, advice auto-accept, default speeds and radii,
|
|
236
|
+
* traffic range, route alarms. Never moves the conn.
|
|
237
|
+
*/
|
|
238
|
+
readonly set_settings: {
|
|
239
|
+
readonly name: "set_settings";
|
|
240
|
+
readonly requestType: MessageFns<SetSettingsRequest>;
|
|
241
|
+
readonly requestStream: false;
|
|
242
|
+
readonly responseType: MessageFns<SetSettingsResponse>;
|
|
243
|
+
readonly responseStream: false;
|
|
244
|
+
readonly options: {};
|
|
245
|
+
};
|
|
246
|
+
};
|
|
247
|
+
};
|
|
248
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
249
|
+
export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
|
|
250
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
251
|
+
} : Partial<T>;
|
|
252
|
+
type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
253
|
+
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
|
|
254
|
+
[K in keyof P]: Exact<P[K], I[K]>;
|
|
255
|
+
} & {
|
|
256
|
+
[K in Exclude<keyof I, KeysOfUnion<P>>]: never;
|
|
257
|
+
};
|
|
258
|
+
export interface MessageFns<T> {
|
|
259
|
+
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
|
260
|
+
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
|
261
|
+
fromJSON(object: any): T;
|
|
262
|
+
toJSON(message: T): unknown;
|
|
263
|
+
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
|
|
264
|
+
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
|
|
265
|
+
}
|
|
266
|
+
export {};
|