@rise-maritime/keelson-js 0.5.3 → 0.6.0-pre.3
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 +434 -1
- package/dist/index.js +114 -5
- package/dist/index.test.js +57 -0
- package/dist/interfaces/AlarmAck.d.ts +62 -0
- package/dist/interfaces/AlarmAck.js +218 -0
- package/dist/interfaces/Configurable.d.ts +24 -18
- package/dist/interfaces/Configurable.js +24 -22
- package/dist/interfaces/Coordinate.d.ts +38 -0
- package/dist/interfaces/Coordinate.js +82 -0
- package/dist/interfaces/ErrorResponse.d.ts +1 -1
- package/dist/interfaces/ErrorResponse.js +1 -1
- package/dist/interfaces/MavlinkCommand.d.ts +24 -18
- package/dist/interfaces/MavlinkCommand.js +24 -22
- package/dist/interfaces/Mission.d.ts +128 -0
- package/dist/interfaces/Mission.js +800 -0
- package/dist/interfaces/NetworkPingPong.d.ts +16 -16
- package/dist/interfaces/NetworkPingPong.js +16 -16
- package/dist/interfaces/ReplayControl.d.ts +72 -30
- package/dist/interfaces/ReplayControl.js +72 -58
- package/dist/interfaces/Route.d.ts +627 -0
- package/dist/interfaces/Route.js +4148 -0
- package/dist/interfaces/RoutePlanner.d.ts +152 -0
- package/dist/interfaces/RoutePlanner.js +268 -0
- package/dist/interfaces/Severity.d.ts +22 -0
- package/dist/interfaces/Severity.js +72 -0
- package/dist/interfaces/SimulationControl.d.ts +69 -0
- package/dist/interfaces/SimulationControl.js +153 -0
- package/dist/interfaces/Subscriber.d.ts +24 -18
- package/dist/interfaces/Subscriber.js +24 -22
- package/dist/interfaces/VehicleCommon.d.ts +1 -32
- package/dist/interfaces/VehicleCommon.js +2 -74
- package/dist/interfaces/VehicleControl.d.ts +34 -28
- package/dist/interfaces/VehicleControl.js +34 -22
- package/dist/interfaces/VehicleGeofence.d.ts +26 -19
- package/dist/interfaces/VehicleGeofence.js +40 -37
- package/dist/interfaces/VehicleLifecycle.d.ts +32 -20
- package/dist/interfaces/VehicleLifecycle.js +32 -28
- package/dist/interfaces/VehicleMission.d.ts +42 -97
- package/dist/interfaces/VehicleMission.js +41 -696
- package/dist/interfaces/VehicleNavigation.d.ts +30 -24
- package/dist/interfaces/VehicleNavigation.js +30 -22
- package/dist/interfaces/VehicleParam.d.ts +48 -24
- package/dist/interfaces/VehicleParam.js +48 -40
- package/dist/interfaces/VehicleSimulatorControl.d.ts +57 -0
- package/dist/interfaces/VehicleSimulatorControl.js +155 -0
- package/dist/interfaces/WHEPProxy.d.ts +16 -16
- package/dist/interfaces/WHEPProxy.js +16 -16
- package/dist/interfaces/foxglove/GeoJSON.d.ts +27 -0
- package/dist/interfaces/foxglove/GeoJSON.js +65 -0
- package/dist/interfaces/foxglove/LocationFix.d.ts +49 -0
- package/dist/interfaces/foxglove/LocationFix.js +246 -0
- package/dist/interfaces/google/protobuf/any.d.ts +144 -0
- package/dist/interfaces/google/protobuf/any.js +107 -0
- package/dist/interfaces/google/protobuf/duration.d.ts +99 -0
- package/dist/interfaces/google/protobuf/duration.js +92 -0
- package/dist/interfaces/serviceRegistry.d.ts +428 -0
- package/dist/interfaces/serviceRegistry.js +36 -0
- package/dist/interfaces.json +17 -0
- package/dist/payloads/Alarm.d.ts +7 -12
- package/dist/payloads/Alarm.js +4 -54
- package/dist/payloads/CommandAuthority.d.ts +82 -0
- package/dist/payloads/CommandAuthority.js +364 -0
- package/dist/payloads/Coordinate.d.ts +39 -0
- package/dist/payloads/Coordinate.js +85 -0
- package/dist/payloads/EntityHealth.d.ts +9 -0
- package/dist/payloads/EntityHealth.js +14 -0
- package/dist/payloads/Mission.d.ts +137 -0
- package/dist/payloads/Mission.js +826 -0
- package/dist/payloads/OperationalAuthority.d.ts +165 -4
- package/dist/payloads/OperationalAuthority.js +520 -1
- package/dist/payloads/Route.d.ts +649 -0
- package/dist/payloads/Route.js +4257 -0
- package/dist/payloads/RouteChangeEvent.d.ts +42 -0
- package/dist/payloads/RouteChangeEvent.js +223 -0
- package/dist/payloads/RouteEditAuthority.d.ts +87 -0
- package/dist/payloads/RouteEditAuthority.js +380 -0
- package/dist/payloads/RouteExecution.d.ts +64 -0
- package/dist/payloads/RouteExecution.js +310 -0
- package/dist/payloads/Severity.d.ts +13 -6
- package/dist/payloads/Severity.js +30 -18
- package/dist/payloads/SimulationStatus.d.ts +3 -4
- package/dist/payloads/SimulationStatus.js +12 -18
- package/dist/payloads/TestObjectStatus.d.ts +154 -0
- package/dist/payloads/TestObjectStatus.js +580 -0
- package/dist/payloads/VesselType.d.ts +2 -1
- package/dist/payloads/VesselType.js +1 -1
- package/dist/payloads/Voyage.d.ts +154 -0
- package/dist/payloads/Voyage.js +866 -0
- package/dist/payloads/foxglove/CompressedPointCloud.d.ts +37 -0
- package/dist/payloads/foxglove/CompressedPointCloud.js +185 -0
- package/dist/payloads/google/protobuf/any.d.ts +145 -0
- package/dist/payloads/google/protobuf/any.js +110 -0
- package/dist/payloads/google/protobuf/empty.d.ts +34 -0
- package/dist/payloads/google/protobuf/empty.js +50 -0
- package/dist/payloads/index.foxglove.d.ts +1 -0
- package/dist/payloads/index.foxglove.js +1 -0
- package/dist/payloads/index.google.protobuf.d.ts +2 -0
- package/dist/payloads/index.google.protobuf.js +2 -0
- package/dist/payloads/index.keelson.d.ts +10 -1
- package/dist/payloads/index.keelson.js +10 -1
- package/dist/qos.json +88 -0
- package/dist/subjects.json +28 -1
- package/package.json +2 -1
package/dist/index.test.js
CHANGED
|
@@ -159,3 +159,60 @@ describe("get_subject_from_pubsub_key", () => {
|
|
|
159
159
|
expect(subject).toBe("heading_true_north_deg");
|
|
160
160
|
});
|
|
161
161
|
});
|
|
162
|
+
describe("construct_rpc_key", () => {
|
|
163
|
+
it("builds the interface/version key shape", () => {
|
|
164
|
+
expect((0, index_1.construct_rpc_key)("realm", "boat", "replay_control", "v1", "play", "conn/0"))
|
|
165
|
+
.toBe("realm/@v0/boat/@rpc/replay_control/v1/play/conn/0");
|
|
166
|
+
});
|
|
167
|
+
it("rejects malformed versions", () => {
|
|
168
|
+
expect(() => (0, index_1.construct_rpc_key)("realm", "boat", "replay_control", "1", "play", "c")).toThrow();
|
|
169
|
+
expect(() => (0, index_1.construct_rpc_key)("realm", "boat", "replay_control", "v0", "play", "c")).toThrow();
|
|
170
|
+
expect(() => (0, index_1.construct_rpc_key)("realm", "boat", "replay_control", "v01", "play", "c")).toThrow();
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
describe("construct_rpc_interface_liveliness_key", () => {
|
|
174
|
+
it("builds the interface liveliness token key", () => {
|
|
175
|
+
expect((0, index_1.construct_rpc_interface_liveliness_key)("realm", "boat", "whep_proxy", "v1", "mediamtx/0"))
|
|
176
|
+
.toBe("realm/@v0/boat/@rpc/whep_proxy/v1/*/mediamtx/0");
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
describe("parse_rpc_key", () => {
|
|
180
|
+
it("parses interface, version, procedure and multi-chunk source", () => {
|
|
181
|
+
expect((0, index_1.parse_rpc_key)("realm/@v0/boat/@rpc/replay_control/v1/play/conn/0")).toEqual({
|
|
182
|
+
base_path: "realm",
|
|
183
|
+
entityId: "boat",
|
|
184
|
+
interface: "replay_control",
|
|
185
|
+
version: "v1",
|
|
186
|
+
procedure: "play",
|
|
187
|
+
sourceId: "conn/0",
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
describe("interfaces registry", () => {
|
|
192
|
+
it("knows the bundled well-known interfaces", () => {
|
|
193
|
+
expect((0, index_1.isInterfaceWellKnown)("replay_control/v1")).toBe(true);
|
|
194
|
+
expect((0, index_1.isInterfaceWellKnown)("nope/v1")).toBe(false);
|
|
195
|
+
expect((0, index_1.getInterfaceService)("vehicle_mission/v1"))
|
|
196
|
+
.toBe("keelson.interfaces.vehicle_mission.VehicleMission");
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
describe("interface introspection", () => {
|
|
200
|
+
const { listInterfaces, getProcedures, getProcedureCodecs } = require('./index');
|
|
201
|
+
it("lists every bundled interface", () => {
|
|
202
|
+
const interfaces = listInterfaces();
|
|
203
|
+
expect(interfaces).toContain("vehicle_lifecycle/v1");
|
|
204
|
+
expect(interfaces).toContain("replay_control/v1");
|
|
205
|
+
expect(interfaces.length).toBeGreaterThanOrEqual(14);
|
|
206
|
+
});
|
|
207
|
+
it("enumerates procedures", () => {
|
|
208
|
+
expect(getProcedures("vehicle_lifecycle/v1")).toEqual(["arm", "set_mode", "emergency_stop"]);
|
|
209
|
+
expect(() => getProcedures("nope/v1")).toThrow();
|
|
210
|
+
});
|
|
211
|
+
it("resolves procedure codecs that roundtrip", () => {
|
|
212
|
+
const { requestType } = getProcedureCodecs("replay_control/v1", "set_speed");
|
|
213
|
+
const encoded = requestType.encode(requestType.fromPartial({ speed: 2.5 })).finish();
|
|
214
|
+
const decoded = requestType.decode(encoded);
|
|
215
|
+
expect(decoded.speed).toBeCloseTo(2.5);
|
|
216
|
+
expect(() => getProcedureCodecs("replay_control/v1", "warp")).toThrow();
|
|
217
|
+
});
|
|
218
|
+
});
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
|
+
export declare const protobufPackage = "";
|
|
3
|
+
export interface AcknowledgeAlarmRequest {
|
|
4
|
+
/** Client wall-clock at send, so the responder can log round-trip latency. */
|
|
5
|
+
timestamp: Date | undefined;
|
|
6
|
+
/** `Alarm.identifier` of the alarm being acknowledged. */
|
|
7
|
+
identifier: string;
|
|
8
|
+
/**
|
|
9
|
+
* Who is acknowledging — operator or station id. Recorded verbatim in the
|
|
10
|
+
* alarm's `AlarmAcknowledgment.acknowledged_by`, so it should be meaningful
|
|
11
|
+
* to somebody reading the alarm later, not an opaque session id.
|
|
12
|
+
*/
|
|
13
|
+
acknowledgedBy: string;
|
|
14
|
+
}
|
|
15
|
+
export interface AcknowledgeAlarmResponse {
|
|
16
|
+
/**
|
|
17
|
+
* True when the owner recorded the acknowledgment. False is a legitimate
|
|
18
|
+
* outcome, not an error: an alarm may have expired, may already have been
|
|
19
|
+
* acknowledged by this party, or may carry ACK_NONE.
|
|
20
|
+
*/
|
|
21
|
+
acknowledged: boolean;
|
|
22
|
+
/** Why not, when `acknowledged` is false. Empty otherwise. */
|
|
23
|
+
reason: string;
|
|
24
|
+
/** When the owner recorded it. Set only when `acknowledged` is true. */
|
|
25
|
+
timestampAcknowledged: Date | undefined;
|
|
26
|
+
}
|
|
27
|
+
export declare const AcknowledgeAlarmRequest: MessageFns<AcknowledgeAlarmRequest>;
|
|
28
|
+
export declare const AcknowledgeAlarmResponse: MessageFns<AcknowledgeAlarmResponse>;
|
|
29
|
+
export type AlarmAckDefinition = typeof AlarmAckDefinition;
|
|
30
|
+
export declare const AlarmAckDefinition: {
|
|
31
|
+
readonly name: "AlarmAck";
|
|
32
|
+
readonly fullName: "AlarmAck";
|
|
33
|
+
readonly methods: {
|
|
34
|
+
readonly acknowledge_alarm: {
|
|
35
|
+
readonly name: "acknowledge_alarm";
|
|
36
|
+
readonly requestType: MessageFns<AcknowledgeAlarmRequest>;
|
|
37
|
+
readonly requestStream: false;
|
|
38
|
+
readonly responseType: MessageFns<AcknowledgeAlarmResponse>;
|
|
39
|
+
readonly responseStream: false;
|
|
40
|
+
readonly options: {};
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
45
|
+
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 {} ? {
|
|
46
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
47
|
+
} : Partial<T>;
|
|
48
|
+
type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
49
|
+
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
|
|
50
|
+
[K in keyof P]: Exact<P[K], I[K]>;
|
|
51
|
+
} & {
|
|
52
|
+
[K in Exclude<keyof I, KeysOfUnion<P>>]: never;
|
|
53
|
+
};
|
|
54
|
+
export interface MessageFns<T> {
|
|
55
|
+
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
|
56
|
+
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
|
57
|
+
fromJSON(object: any): T;
|
|
58
|
+
toJSON(message: T): unknown;
|
|
59
|
+
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
|
|
60
|
+
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
|
|
61
|
+
}
|
|
62
|
+
export {};
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
|
+
// versions:
|
|
4
|
+
// protoc-gen-ts_proto v2.6.1
|
|
5
|
+
// protoc v6.30.2
|
|
6
|
+
// source: AlarmAck.proto
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.AlarmAckDefinition = exports.AcknowledgeAlarmResponse = exports.AcknowledgeAlarmRequest = exports.protobufPackage = void 0;
|
|
9
|
+
/* eslint-disable */
|
|
10
|
+
const wire_1 = require("@bufbuild/protobuf/wire");
|
|
11
|
+
const timestamp_1 = require("./google/protobuf/timestamp");
|
|
12
|
+
exports.protobufPackage = "";
|
|
13
|
+
function createBaseAcknowledgeAlarmRequest() {
|
|
14
|
+
return { timestamp: undefined, identifier: "", acknowledgedBy: "" };
|
|
15
|
+
}
|
|
16
|
+
exports.AcknowledgeAlarmRequest = {
|
|
17
|
+
encode(message, writer = new wire_1.BinaryWriter()) {
|
|
18
|
+
if (message.timestamp !== undefined) {
|
|
19
|
+
timestamp_1.Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(10).fork()).join();
|
|
20
|
+
}
|
|
21
|
+
if (message.identifier !== "") {
|
|
22
|
+
writer.uint32(18).string(message.identifier);
|
|
23
|
+
}
|
|
24
|
+
if (message.acknowledgedBy !== "") {
|
|
25
|
+
writer.uint32(26).string(message.acknowledgedBy);
|
|
26
|
+
}
|
|
27
|
+
return writer;
|
|
28
|
+
},
|
|
29
|
+
decode(input, length) {
|
|
30
|
+
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
|
|
31
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
32
|
+
const message = createBaseAcknowledgeAlarmRequest();
|
|
33
|
+
while (reader.pos < end) {
|
|
34
|
+
const tag = reader.uint32();
|
|
35
|
+
switch (tag >>> 3) {
|
|
36
|
+
case 1: {
|
|
37
|
+
if (tag !== 10) {
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
message.timestamp = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
case 2: {
|
|
44
|
+
if (tag !== 18) {
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
message.identifier = reader.string();
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
case 3: {
|
|
51
|
+
if (tag !== 26) {
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
message.acknowledgedBy = reader.string();
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
reader.skip(tag & 7);
|
|
62
|
+
}
|
|
63
|
+
return message;
|
|
64
|
+
},
|
|
65
|
+
fromJSON(object) {
|
|
66
|
+
return {
|
|
67
|
+
timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : undefined,
|
|
68
|
+
identifier: isSet(object.identifier) ? globalThis.String(object.identifier) : "",
|
|
69
|
+
acknowledgedBy: isSet(object.acknowledgedBy) ? globalThis.String(object.acknowledgedBy) : "",
|
|
70
|
+
};
|
|
71
|
+
},
|
|
72
|
+
toJSON(message) {
|
|
73
|
+
const obj = {};
|
|
74
|
+
if (message.timestamp !== undefined) {
|
|
75
|
+
obj.timestamp = message.timestamp.toISOString();
|
|
76
|
+
}
|
|
77
|
+
if (message.identifier !== "") {
|
|
78
|
+
obj.identifier = message.identifier;
|
|
79
|
+
}
|
|
80
|
+
if (message.acknowledgedBy !== "") {
|
|
81
|
+
obj.acknowledgedBy = message.acknowledgedBy;
|
|
82
|
+
}
|
|
83
|
+
return obj;
|
|
84
|
+
},
|
|
85
|
+
create(base) {
|
|
86
|
+
return exports.AcknowledgeAlarmRequest.fromPartial(base ?? {});
|
|
87
|
+
},
|
|
88
|
+
fromPartial(object) {
|
|
89
|
+
const message = createBaseAcknowledgeAlarmRequest();
|
|
90
|
+
message.timestamp = object.timestamp ?? undefined;
|
|
91
|
+
message.identifier = object.identifier ?? "";
|
|
92
|
+
message.acknowledgedBy = object.acknowledgedBy ?? "";
|
|
93
|
+
return message;
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
function createBaseAcknowledgeAlarmResponse() {
|
|
97
|
+
return { acknowledged: false, reason: "", timestampAcknowledged: undefined };
|
|
98
|
+
}
|
|
99
|
+
exports.AcknowledgeAlarmResponse = {
|
|
100
|
+
encode(message, writer = new wire_1.BinaryWriter()) {
|
|
101
|
+
if (message.acknowledged !== false) {
|
|
102
|
+
writer.uint32(8).bool(message.acknowledged);
|
|
103
|
+
}
|
|
104
|
+
if (message.reason !== "") {
|
|
105
|
+
writer.uint32(18).string(message.reason);
|
|
106
|
+
}
|
|
107
|
+
if (message.timestampAcknowledged !== undefined) {
|
|
108
|
+
timestamp_1.Timestamp.encode(toTimestamp(message.timestampAcknowledged), writer.uint32(26).fork()).join();
|
|
109
|
+
}
|
|
110
|
+
return writer;
|
|
111
|
+
},
|
|
112
|
+
decode(input, length) {
|
|
113
|
+
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
|
|
114
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
115
|
+
const message = createBaseAcknowledgeAlarmResponse();
|
|
116
|
+
while (reader.pos < end) {
|
|
117
|
+
const tag = reader.uint32();
|
|
118
|
+
switch (tag >>> 3) {
|
|
119
|
+
case 1: {
|
|
120
|
+
if (tag !== 8) {
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
message.acknowledged = reader.bool();
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
case 2: {
|
|
127
|
+
if (tag !== 18) {
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
message.reason = reader.string();
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
case 3: {
|
|
134
|
+
if (tag !== 26) {
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
message.timestampAcknowledged = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
reader.skip(tag & 7);
|
|
145
|
+
}
|
|
146
|
+
return message;
|
|
147
|
+
},
|
|
148
|
+
fromJSON(object) {
|
|
149
|
+
return {
|
|
150
|
+
acknowledged: isSet(object.acknowledged) ? globalThis.Boolean(object.acknowledged) : false,
|
|
151
|
+
reason: isSet(object.reason) ? globalThis.String(object.reason) : "",
|
|
152
|
+
timestampAcknowledged: isSet(object.timestampAcknowledged)
|
|
153
|
+
? fromJsonTimestamp(object.timestampAcknowledged)
|
|
154
|
+
: undefined,
|
|
155
|
+
};
|
|
156
|
+
},
|
|
157
|
+
toJSON(message) {
|
|
158
|
+
const obj = {};
|
|
159
|
+
if (message.acknowledged !== false) {
|
|
160
|
+
obj.acknowledged = message.acknowledged;
|
|
161
|
+
}
|
|
162
|
+
if (message.reason !== "") {
|
|
163
|
+
obj.reason = message.reason;
|
|
164
|
+
}
|
|
165
|
+
if (message.timestampAcknowledged !== undefined) {
|
|
166
|
+
obj.timestampAcknowledged = message.timestampAcknowledged.toISOString();
|
|
167
|
+
}
|
|
168
|
+
return obj;
|
|
169
|
+
},
|
|
170
|
+
create(base) {
|
|
171
|
+
return exports.AcknowledgeAlarmResponse.fromPartial(base ?? {});
|
|
172
|
+
},
|
|
173
|
+
fromPartial(object) {
|
|
174
|
+
const message = createBaseAcknowledgeAlarmResponse();
|
|
175
|
+
message.acknowledged = object.acknowledged ?? false;
|
|
176
|
+
message.reason = object.reason ?? "";
|
|
177
|
+
message.timestampAcknowledged = object.timestampAcknowledged ?? undefined;
|
|
178
|
+
return message;
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
exports.AlarmAckDefinition = {
|
|
182
|
+
name: "AlarmAck",
|
|
183
|
+
fullName: "AlarmAck",
|
|
184
|
+
methods: {
|
|
185
|
+
acknowledge_alarm: {
|
|
186
|
+
name: "acknowledge_alarm",
|
|
187
|
+
requestType: exports.AcknowledgeAlarmRequest,
|
|
188
|
+
requestStream: false,
|
|
189
|
+
responseType: exports.AcknowledgeAlarmResponse,
|
|
190
|
+
responseStream: false,
|
|
191
|
+
options: {},
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
};
|
|
195
|
+
function toTimestamp(date) {
|
|
196
|
+
const seconds = Math.trunc(date.getTime() / 1000);
|
|
197
|
+
const nanos = (date.getTime() % 1000) * 1000000;
|
|
198
|
+
return { seconds, nanos };
|
|
199
|
+
}
|
|
200
|
+
function fromTimestamp(t) {
|
|
201
|
+
let millis = (t.seconds || 0) * 1000;
|
|
202
|
+
millis += (t.nanos || 0) / 1000000;
|
|
203
|
+
return new globalThis.Date(millis);
|
|
204
|
+
}
|
|
205
|
+
function fromJsonTimestamp(o) {
|
|
206
|
+
if (o instanceof globalThis.Date) {
|
|
207
|
+
return o;
|
|
208
|
+
}
|
|
209
|
+
else if (typeof o === "string") {
|
|
210
|
+
return new globalThis.Date(o);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
function isSet(value) {
|
|
217
|
+
return value !== null && value !== undefined;
|
|
218
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
2
|
import { Empty } from "./google/protobuf/empty";
|
|
3
|
-
export declare const protobufPackage = "";
|
|
3
|
+
export declare const protobufPackage = "keelson.interfaces.configurable";
|
|
4
4
|
/** This represents an actual JSON string, i.e. not a protobuf type! */
|
|
5
5
|
export interface JSON {
|
|
6
6
|
}
|
|
@@ -8,23 +8,29 @@ export interface ConfigurableSuccessResponse {
|
|
|
8
8
|
}
|
|
9
9
|
export declare const JSON: MessageFns<JSON>;
|
|
10
10
|
export declare const ConfigurableSuccessResponse: MessageFns<ConfigurableSuccessResponse>;
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
11
|
+
export type ConfigurableDefinition = typeof ConfigurableDefinition;
|
|
12
|
+
export declare const ConfigurableDefinition: {
|
|
13
|
+
readonly name: "Configurable";
|
|
14
|
+
readonly fullName: "keelson.interfaces.configurable.Configurable";
|
|
15
|
+
readonly methods: {
|
|
16
|
+
readonly get_config: {
|
|
17
|
+
readonly name: "get_config";
|
|
18
|
+
readonly requestType: import("./google/protobuf/empty").MessageFns<Empty>;
|
|
19
|
+
readonly requestStream: false;
|
|
20
|
+
readonly responseType: MessageFns<JSON>;
|
|
21
|
+
readonly responseStream: false;
|
|
22
|
+
readonly options: {};
|
|
23
|
+
};
|
|
24
|
+
readonly set_config: {
|
|
25
|
+
readonly name: "set_config";
|
|
26
|
+
readonly requestType: MessageFns<JSON>;
|
|
27
|
+
readonly requestStream: false;
|
|
28
|
+
readonly responseType: MessageFns<ConfigurableSuccessResponse>;
|
|
29
|
+
readonly responseStream: false;
|
|
30
|
+
readonly options: {};
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
};
|
|
28
34
|
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
29
35
|
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 {} ? {
|
|
30
36
|
[K in keyof T]?: DeepPartial<T[K]>;
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
// protoc v6.30.2
|
|
6
6
|
// source: Configurable.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.
|
|
8
|
+
exports.ConfigurableDefinition = exports.ConfigurableSuccessResponse = exports.JSON = exports.protobufPackage = void 0;
|
|
9
9
|
/* eslint-disable */
|
|
10
10
|
const wire_1 = require("@bufbuild/protobuf/wire");
|
|
11
11
|
const empty_1 = require("./google/protobuf/empty");
|
|
12
|
-
exports.protobufPackage = "";
|
|
12
|
+
exports.protobufPackage = "keelson.interfaces.configurable";
|
|
13
13
|
function createBaseJSON() {
|
|
14
14
|
return {};
|
|
15
15
|
}
|
|
@@ -84,23 +84,25 @@ exports.ConfigurableSuccessResponse = {
|
|
|
84
84
|
return message;
|
|
85
85
|
},
|
|
86
86
|
};
|
|
87
|
-
exports.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}
|
|
106
|
-
|
|
87
|
+
exports.ConfigurableDefinition = {
|
|
88
|
+
name: "Configurable",
|
|
89
|
+
fullName: "keelson.interfaces.configurable.Configurable",
|
|
90
|
+
methods: {
|
|
91
|
+
get_config: {
|
|
92
|
+
name: "get_config",
|
|
93
|
+
requestType: empty_1.Empty,
|
|
94
|
+
requestStream: false,
|
|
95
|
+
responseType: exports.JSON,
|
|
96
|
+
responseStream: false,
|
|
97
|
+
options: {},
|
|
98
|
+
},
|
|
99
|
+
set_config: {
|
|
100
|
+
name: "set_config",
|
|
101
|
+
requestType: exports.JSON,
|
|
102
|
+
requestStream: false,
|
|
103
|
+
responseType: exports.ConfigurableSuccessResponse,
|
|
104
|
+
responseStream: false,
|
|
105
|
+
options: {},
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
|
+
export declare const protobufPackage = "keelson";
|
|
3
|
+
/**
|
|
4
|
+
* WGS84 latitude/longitude in plain degrees. The canonical coordinate
|
|
5
|
+
* shape for keelson *domain nouns* — mission waypoints, geofence
|
|
6
|
+
* vertices, navigation targets, route legs — shared by RPC interfaces
|
|
7
|
+
* and pub/sub payloads alike so consumers see a single coordinate type
|
|
8
|
+
* rather than each surface picking its own scaling / units.
|
|
9
|
+
*
|
|
10
|
+
* Telemetry position *fixes* (the `location_fix` subject) intentionally
|
|
11
|
+
* remain foxglove.LocationFix: a measured fix carries sensor context
|
|
12
|
+
* (covariance, frame_id) that is meaningful for telemetry but noise for
|
|
13
|
+
* a planned position. Don't swap one for the other.
|
|
14
|
+
*/
|
|
15
|
+
export interface Coordinate {
|
|
16
|
+
latitudeDeg: number;
|
|
17
|
+
longitudeDeg: number;
|
|
18
|
+
}
|
|
19
|
+
export declare const Coordinate: MessageFns<Coordinate>;
|
|
20
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
21
|
+
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 {} ? {
|
|
22
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
23
|
+
} : Partial<T>;
|
|
24
|
+
type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
25
|
+
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
|
|
26
|
+
[K in keyof P]: Exact<P[K], I[K]>;
|
|
27
|
+
} & {
|
|
28
|
+
[K in Exclude<keyof I, KeysOfUnion<P>>]: never;
|
|
29
|
+
};
|
|
30
|
+
export interface MessageFns<T> {
|
|
31
|
+
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
|
32
|
+
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
|
33
|
+
fromJSON(object: any): T;
|
|
34
|
+
toJSON(message: T): unknown;
|
|
35
|
+
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
|
|
36
|
+
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
|
+
// versions:
|
|
4
|
+
// protoc-gen-ts_proto v2.6.1
|
|
5
|
+
// protoc v6.30.2
|
|
6
|
+
// source: Coordinate.proto
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.Coordinate = exports.protobufPackage = void 0;
|
|
9
|
+
/* eslint-disable */
|
|
10
|
+
const wire_1 = require("@bufbuild/protobuf/wire");
|
|
11
|
+
exports.protobufPackage = "keelson";
|
|
12
|
+
function createBaseCoordinate() {
|
|
13
|
+
return { latitudeDeg: 0, longitudeDeg: 0 };
|
|
14
|
+
}
|
|
15
|
+
exports.Coordinate = {
|
|
16
|
+
encode(message, writer = new wire_1.BinaryWriter()) {
|
|
17
|
+
if (message.latitudeDeg !== 0) {
|
|
18
|
+
writer.uint32(9).double(message.latitudeDeg);
|
|
19
|
+
}
|
|
20
|
+
if (message.longitudeDeg !== 0) {
|
|
21
|
+
writer.uint32(17).double(message.longitudeDeg);
|
|
22
|
+
}
|
|
23
|
+
return writer;
|
|
24
|
+
},
|
|
25
|
+
decode(input, length) {
|
|
26
|
+
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
|
|
27
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
28
|
+
const message = createBaseCoordinate();
|
|
29
|
+
while (reader.pos < end) {
|
|
30
|
+
const tag = reader.uint32();
|
|
31
|
+
switch (tag >>> 3) {
|
|
32
|
+
case 1: {
|
|
33
|
+
if (tag !== 9) {
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
message.latitudeDeg = reader.double();
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
case 2: {
|
|
40
|
+
if (tag !== 17) {
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
message.longitudeDeg = reader.double();
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
reader.skip(tag & 7);
|
|
51
|
+
}
|
|
52
|
+
return message;
|
|
53
|
+
},
|
|
54
|
+
fromJSON(object) {
|
|
55
|
+
return {
|
|
56
|
+
latitudeDeg: isSet(object.latitudeDeg) ? globalThis.Number(object.latitudeDeg) : 0,
|
|
57
|
+
longitudeDeg: isSet(object.longitudeDeg) ? globalThis.Number(object.longitudeDeg) : 0,
|
|
58
|
+
};
|
|
59
|
+
},
|
|
60
|
+
toJSON(message) {
|
|
61
|
+
const obj = {};
|
|
62
|
+
if (message.latitudeDeg !== 0) {
|
|
63
|
+
obj.latitudeDeg = message.latitudeDeg;
|
|
64
|
+
}
|
|
65
|
+
if (message.longitudeDeg !== 0) {
|
|
66
|
+
obj.longitudeDeg = message.longitudeDeg;
|
|
67
|
+
}
|
|
68
|
+
return obj;
|
|
69
|
+
},
|
|
70
|
+
create(base) {
|
|
71
|
+
return exports.Coordinate.fromPartial(base ?? {});
|
|
72
|
+
},
|
|
73
|
+
fromPartial(object) {
|
|
74
|
+
const message = createBaseCoordinate();
|
|
75
|
+
message.latitudeDeg = object.latitudeDeg ?? 0;
|
|
76
|
+
message.longitudeDeg = object.longitudeDeg ?? 0;
|
|
77
|
+
return message;
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
function isSet(value) {
|
|
81
|
+
return value !== null && value !== undefined;
|
|
82
|
+
}
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
8
8
|
exports.ErrorResponse = exports.errorResponse_CodeToJSON = exports.errorResponse_CodeFromJSON = exports.ErrorResponse_Code = exports.protobufPackage = void 0;
|
|
9
9
|
/* eslint-disable */
|
|
10
10
|
const wire_1 = require("@bufbuild/protobuf/wire");
|
|
11
|
-
exports.protobufPackage = "";
|
|
11
|
+
exports.protobufPackage = "keelson.interfaces";
|
|
12
12
|
/**
|
|
13
13
|
* Typed code so clients can react without parsing the description.
|
|
14
14
|
* Producers SHOULD emit a specific code when applicable; UNSPECIFIED
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
2
|
import { CommandResult } from "./VehicleCommon";
|
|
3
|
-
export declare const protobufPackage = "";
|
|
3
|
+
export declare const protobufPackage = "keelson.interfaces.mavlink_command";
|
|
4
4
|
export interface SetMessageIntervalRequest {
|
|
5
5
|
/**
|
|
6
6
|
* Either the symbolic MAVLink message name (e.g. "ATTITUDE") OR the
|
|
@@ -45,23 +45,29 @@ export declare const SetMessageIntervalRequest: MessageFns<SetMessageIntervalReq
|
|
|
45
45
|
export declare const SetMessageIntervalResponse: MessageFns<SetMessageIntervalResponse>;
|
|
46
46
|
export declare const CommandLongRequest: MessageFns<CommandLongRequest>;
|
|
47
47
|
export declare const CommandLongResponse: MessageFns<CommandLongResponse>;
|
|
48
|
-
export
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
48
|
+
export type MavlinkCommandDefinition = typeof MavlinkCommandDefinition;
|
|
49
|
+
export declare const MavlinkCommandDefinition: {
|
|
50
|
+
readonly name: "MavlinkCommand";
|
|
51
|
+
readonly fullName: "keelson.interfaces.mavlink_command.MavlinkCommand";
|
|
52
|
+
readonly methods: {
|
|
53
|
+
readonly set_message_interval: {
|
|
54
|
+
readonly name: "set_message_interval";
|
|
55
|
+
readonly requestType: MessageFns<SetMessageIntervalRequest>;
|
|
56
|
+
readonly requestStream: false;
|
|
57
|
+
readonly responseType: MessageFns<SetMessageIntervalResponse>;
|
|
58
|
+
readonly responseStream: false;
|
|
59
|
+
readonly options: {};
|
|
60
|
+
};
|
|
61
|
+
readonly send_command_long: {
|
|
62
|
+
readonly name: "send_command_long";
|
|
63
|
+
readonly requestType: MessageFns<CommandLongRequest>;
|
|
64
|
+
readonly requestStream: false;
|
|
65
|
+
readonly responseType: MessageFns<CommandLongResponse>;
|
|
66
|
+
readonly responseStream: false;
|
|
67
|
+
readonly options: {};
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
};
|
|
65
71
|
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
66
72
|
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 {} ? {
|
|
67
73
|
[K in keyof T]?: DeepPartial<T[K]>;
|