@blueyerobotics/protocol-definitions 3.2.0-28a7294b → 3.2.0-2ad7db62
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/control.d.ts +28 -1
- package/dist/control.js +197 -1
- package/dist/message_formats.d.ts +283 -5
- package/dist/message_formats.js +1929 -115
- package/dist/req_rep.d.ts +10 -0
- package/dist/req_rep.js +89 -1
- package/dist/telemetry.d.ts +29 -5
- package/dist/telemetry.js +143 -13
- package/package.json +1 -1
package/dist/control.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
2
|
import { SetAquaTrollConnectionStatus, SetAquaTrollParameterUnit } from "./aquatroll";
|
|
3
|
-
import { AutoAltitudeState, AutoDepthState, AutoHeadingState, AutoPilotHeaveState, AutoPilotSurgeYawState, CameraPanTiltZoom, ConnectionDuration, FilterMessage, GenericServo, GripperVelocities, GuestPortRestartInfo, Laser, LatLongPosition, Lights, MotionInput, MultibeamConfig, MultibeamServo, OperatorInfo, PingerConfiguration, RecordOn, ResetPositionSettings, StationKeepingState, StorageLocation, SystemTime, TiltStabilizationState, TiltVelocity, WaterDensity, WeatherVaningState } from "./message_formats";
|
|
3
|
+
import { AutoAltitudeState, AutoDepthState, AutoHeadingState, AutoPilotHeaveState, AutoPilotSurgeYawState, BoundingBox, CameraPanTiltZoom, ConnectionDuration, FilterMessage, GenericServo, GripperVelocities, GuestPortRestartInfo, Laser, LatLongPosition, Lights, MotionInput, MultibeamConfig, MultibeamServo, OperatorInfo, PingerConfiguration, RecordOn, ResetPositionSettings, StationKeepingState, StorageLocation, SystemTime, TiltStabilizationState, TiltVelocity, WaterDensity, WeatherVaningState } from "./message_formats";
|
|
4
4
|
/**
|
|
5
5
|
* Control
|
|
6
6
|
*
|
|
@@ -235,6 +235,29 @@ export interface CameraPanTiltZoomCtrl {
|
|
|
235
235
|
/** The desired pan, tilt, and zoom state. */
|
|
236
236
|
cameraPanTiltZoom: CameraPanTiltZoom | undefined;
|
|
237
237
|
}
|
|
238
|
+
/** Message sent to start streaming log entries to the client. */
|
|
239
|
+
export interface StartLogStreamingCtrl {
|
|
240
|
+
}
|
|
241
|
+
/** Message sent to stop streaming log entries to the client. */
|
|
242
|
+
export interface StopLogStreamingCtrl {
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Issue a command to set the single-object tracking (SOT) target.
|
|
246
|
+
*
|
|
247
|
+
* Send a bounding box to start tracking a new target. The CV pipeline will
|
|
248
|
+
* initialize the SOT tracker on the specified region of the video frame.
|
|
249
|
+
*/
|
|
250
|
+
export interface SetSotTargetCtrl {
|
|
251
|
+
/** Target bounding box. */
|
|
252
|
+
boundingBox: BoundingBox | undefined;
|
|
253
|
+
/** Width of the frame the bounding box was drawn on. */
|
|
254
|
+
imageWidth: number;
|
|
255
|
+
/** Height of the frame the bounding box was drawn on. */
|
|
256
|
+
imageHeight: number;
|
|
257
|
+
}
|
|
258
|
+
/** Issue a command to clear the single-object tracking (SOT) target (stop tracking). */
|
|
259
|
+
export interface ClearSotTargetCtrl {
|
|
260
|
+
}
|
|
238
261
|
export declare const MotionInputCtrl: MessageFns<MotionInputCtrl>;
|
|
239
262
|
export declare const TiltVelocityCtrl: MessageFns<TiltVelocityCtrl>;
|
|
240
263
|
export declare const LightsCtrl: MessageFns<LightsCtrl>;
|
|
@@ -280,6 +303,10 @@ export declare const EndDiveCtrl: MessageFns<EndDiveCtrl>;
|
|
|
280
303
|
export declare const FormatRemovableStorageDeviceCtrl: MessageFns<FormatRemovableStorageDeviceCtrl>;
|
|
281
304
|
export declare const SetTurbidityFilterCtrl: MessageFns<SetTurbidityFilterCtrl>;
|
|
282
305
|
export declare const CameraPanTiltZoomCtrl: MessageFns<CameraPanTiltZoomCtrl>;
|
|
306
|
+
export declare const StartLogStreamingCtrl: MessageFns<StartLogStreamingCtrl>;
|
|
307
|
+
export declare const StopLogStreamingCtrl: MessageFns<StopLogStreamingCtrl>;
|
|
308
|
+
export declare const SetSotTargetCtrl: MessageFns<SetSotTargetCtrl>;
|
|
309
|
+
export declare const ClearSotTargetCtrl: MessageFns<ClearSotTargetCtrl>;
|
|
283
310
|
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
284
311
|
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 {} ? {
|
|
285
312
|
[K in keyof T]?: DeepPartial<T[K]>;
|
package/dist/control.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// protoc v3.21.12
|
|
6
6
|
// source: control.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.CameraPanTiltZoomCtrl = exports.SetTurbidityFilterCtrl = exports.FormatRemovableStorageDeviceCtrl = exports.EndDiveCtrl = exports.StartDiveCtrl = exports.DeactivateMultibeamCtrl = exports.ActivateMultibeamCtrl = exports.SetMultibeamConfigCtrl = exports.SetAquaTrollConnectionStatusCtrl = exports.SetAquaTrollParameterUnitCtrl = exports.RestartGuestPortsCtrl = exports.ActivateGuestPortsCtrl = exports.DeactivateGuestPortsCtrl = exports.MultibeamServoCtrl = exports.GenericServoCtrl = exports.GripperCtrl = exports.SystemTimeCtrl = exports.PingerConfigurationCtrl = exports.WaterDensityCtrl = exports.TiltStabilizationCtrl = exports.CalibrateDvlGyroCtrl = exports.ResetOdometerCtrl = exports.ResetPositionCtrl = exports.ClearMissionCtrl = exports.PauseMissionCtrl = exports.RunMissionCtrl = exports.AutoPilotHeaveCtrl = exports.AutoPilotSurgeYawCtrl = exports.WeatherVaningCtrl = exports.StationKeepingCtrl = exports.AutoAltitudeCtrl = exports.AutoDepthCtrl = exports.AutoHeadingCtrl = exports.FinishCalibrationCtrl = exports.CancelCalibrationCtrl = exports.StartCalibrationCtrl = exports.TakePictureCtrl = exports.RecordCtrl = exports.WatchdogCtrl = exports.PilotGPSPositionCtrl = exports.LaserCtrl = exports.GuestportLightsCtrl = exports.LightsCtrl = exports.TiltVelocityCtrl = exports.MotionInputCtrl = void 0;
|
|
8
|
+
exports.ClearSotTargetCtrl = exports.SetSotTargetCtrl = exports.StopLogStreamingCtrl = exports.StartLogStreamingCtrl = exports.CameraPanTiltZoomCtrl = exports.SetTurbidityFilterCtrl = exports.FormatRemovableStorageDeviceCtrl = exports.EndDiveCtrl = exports.StartDiveCtrl = exports.DeactivateMultibeamCtrl = exports.ActivateMultibeamCtrl = exports.SetMultibeamConfigCtrl = exports.SetAquaTrollConnectionStatusCtrl = exports.SetAquaTrollParameterUnitCtrl = exports.RestartGuestPortsCtrl = exports.ActivateGuestPortsCtrl = exports.DeactivateGuestPortsCtrl = exports.MultibeamServoCtrl = exports.GenericServoCtrl = exports.GripperCtrl = exports.SystemTimeCtrl = exports.PingerConfigurationCtrl = exports.WaterDensityCtrl = exports.TiltStabilizationCtrl = exports.CalibrateDvlGyroCtrl = exports.ResetOdometerCtrl = exports.ResetPositionCtrl = exports.ClearMissionCtrl = exports.PauseMissionCtrl = exports.RunMissionCtrl = exports.AutoPilotHeaveCtrl = exports.AutoPilotSurgeYawCtrl = exports.WeatherVaningCtrl = exports.StationKeepingCtrl = exports.AutoAltitudeCtrl = exports.AutoDepthCtrl = exports.AutoHeadingCtrl = exports.FinishCalibrationCtrl = exports.CancelCalibrationCtrl = exports.StartCalibrationCtrl = exports.TakePictureCtrl = exports.RecordCtrl = exports.WatchdogCtrl = exports.PilotGPSPositionCtrl = exports.LaserCtrl = exports.GuestportLightsCtrl = exports.LightsCtrl = exports.TiltVelocityCtrl = exports.MotionInputCtrl = void 0;
|
|
9
9
|
/* eslint-disable */
|
|
10
10
|
const wire_1 = require("@bufbuild/protobuf/wire");
|
|
11
11
|
const aquatroll_1 = require("./aquatroll");
|
|
@@ -2237,6 +2237,202 @@ exports.CameraPanTiltZoomCtrl = {
|
|
|
2237
2237
|
return message;
|
|
2238
2238
|
},
|
|
2239
2239
|
};
|
|
2240
|
+
function createBaseStartLogStreamingCtrl() {
|
|
2241
|
+
return {};
|
|
2242
|
+
}
|
|
2243
|
+
exports.StartLogStreamingCtrl = {
|
|
2244
|
+
encode(_, writer = new wire_1.BinaryWriter()) {
|
|
2245
|
+
return writer;
|
|
2246
|
+
},
|
|
2247
|
+
decode(input, length) {
|
|
2248
|
+
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
|
|
2249
|
+
const end = length === undefined ? reader.len : reader.pos + length;
|
|
2250
|
+
const message = createBaseStartLogStreamingCtrl();
|
|
2251
|
+
while (reader.pos < end) {
|
|
2252
|
+
const tag = reader.uint32();
|
|
2253
|
+
switch (tag >>> 3) {
|
|
2254
|
+
}
|
|
2255
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
2256
|
+
break;
|
|
2257
|
+
}
|
|
2258
|
+
reader.skip(tag & 7);
|
|
2259
|
+
}
|
|
2260
|
+
return message;
|
|
2261
|
+
},
|
|
2262
|
+
fromJSON(_) {
|
|
2263
|
+
return {};
|
|
2264
|
+
},
|
|
2265
|
+
toJSON(_) {
|
|
2266
|
+
const obj = {};
|
|
2267
|
+
return obj;
|
|
2268
|
+
},
|
|
2269
|
+
create(base) {
|
|
2270
|
+
return exports.StartLogStreamingCtrl.fromPartial(base ?? {});
|
|
2271
|
+
},
|
|
2272
|
+
fromPartial(_) {
|
|
2273
|
+
const message = createBaseStartLogStreamingCtrl();
|
|
2274
|
+
return message;
|
|
2275
|
+
},
|
|
2276
|
+
};
|
|
2277
|
+
function createBaseStopLogStreamingCtrl() {
|
|
2278
|
+
return {};
|
|
2279
|
+
}
|
|
2280
|
+
exports.StopLogStreamingCtrl = {
|
|
2281
|
+
encode(_, writer = new wire_1.BinaryWriter()) {
|
|
2282
|
+
return writer;
|
|
2283
|
+
},
|
|
2284
|
+
decode(input, length) {
|
|
2285
|
+
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
|
|
2286
|
+
const end = length === undefined ? reader.len : reader.pos + length;
|
|
2287
|
+
const message = createBaseStopLogStreamingCtrl();
|
|
2288
|
+
while (reader.pos < end) {
|
|
2289
|
+
const tag = reader.uint32();
|
|
2290
|
+
switch (tag >>> 3) {
|
|
2291
|
+
}
|
|
2292
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
2293
|
+
break;
|
|
2294
|
+
}
|
|
2295
|
+
reader.skip(tag & 7);
|
|
2296
|
+
}
|
|
2297
|
+
return message;
|
|
2298
|
+
},
|
|
2299
|
+
fromJSON(_) {
|
|
2300
|
+
return {};
|
|
2301
|
+
},
|
|
2302
|
+
toJSON(_) {
|
|
2303
|
+
const obj = {};
|
|
2304
|
+
return obj;
|
|
2305
|
+
},
|
|
2306
|
+
create(base) {
|
|
2307
|
+
return exports.StopLogStreamingCtrl.fromPartial(base ?? {});
|
|
2308
|
+
},
|
|
2309
|
+
fromPartial(_) {
|
|
2310
|
+
const message = createBaseStopLogStreamingCtrl();
|
|
2311
|
+
return message;
|
|
2312
|
+
},
|
|
2313
|
+
};
|
|
2314
|
+
function createBaseSetSotTargetCtrl() {
|
|
2315
|
+
return { boundingBox: undefined, imageWidth: 0, imageHeight: 0 };
|
|
2316
|
+
}
|
|
2317
|
+
exports.SetSotTargetCtrl = {
|
|
2318
|
+
encode(message, writer = new wire_1.BinaryWriter()) {
|
|
2319
|
+
if (message.boundingBox !== undefined) {
|
|
2320
|
+
message_formats_1.BoundingBox.encode(message.boundingBox, writer.uint32(10).fork()).join();
|
|
2321
|
+
}
|
|
2322
|
+
if (message.imageWidth !== 0) {
|
|
2323
|
+
writer.uint32(16).uint32(message.imageWidth);
|
|
2324
|
+
}
|
|
2325
|
+
if (message.imageHeight !== 0) {
|
|
2326
|
+
writer.uint32(24).uint32(message.imageHeight);
|
|
2327
|
+
}
|
|
2328
|
+
return writer;
|
|
2329
|
+
},
|
|
2330
|
+
decode(input, length) {
|
|
2331
|
+
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
|
|
2332
|
+
const end = length === undefined ? reader.len : reader.pos + length;
|
|
2333
|
+
const message = createBaseSetSotTargetCtrl();
|
|
2334
|
+
while (reader.pos < end) {
|
|
2335
|
+
const tag = reader.uint32();
|
|
2336
|
+
switch (tag >>> 3) {
|
|
2337
|
+
case 1: {
|
|
2338
|
+
if (tag !== 10) {
|
|
2339
|
+
break;
|
|
2340
|
+
}
|
|
2341
|
+
message.boundingBox = message_formats_1.BoundingBox.decode(reader, reader.uint32());
|
|
2342
|
+
continue;
|
|
2343
|
+
}
|
|
2344
|
+
case 2: {
|
|
2345
|
+
if (tag !== 16) {
|
|
2346
|
+
break;
|
|
2347
|
+
}
|
|
2348
|
+
message.imageWidth = reader.uint32();
|
|
2349
|
+
continue;
|
|
2350
|
+
}
|
|
2351
|
+
case 3: {
|
|
2352
|
+
if (tag !== 24) {
|
|
2353
|
+
break;
|
|
2354
|
+
}
|
|
2355
|
+
message.imageHeight = reader.uint32();
|
|
2356
|
+
continue;
|
|
2357
|
+
}
|
|
2358
|
+
}
|
|
2359
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
2360
|
+
break;
|
|
2361
|
+
}
|
|
2362
|
+
reader.skip(tag & 7);
|
|
2363
|
+
}
|
|
2364
|
+
return message;
|
|
2365
|
+
},
|
|
2366
|
+
fromJSON(object) {
|
|
2367
|
+
return {
|
|
2368
|
+
boundingBox: isSet(object.boundingBox) ? message_formats_1.BoundingBox.fromJSON(object.boundingBox) : undefined,
|
|
2369
|
+
imageWidth: isSet(object.imageWidth) ? gt.Number(object.imageWidth) : 0,
|
|
2370
|
+
imageHeight: isSet(object.imageHeight) ? gt.Number(object.imageHeight) : 0,
|
|
2371
|
+
};
|
|
2372
|
+
},
|
|
2373
|
+
toJSON(message) {
|
|
2374
|
+
const obj = {};
|
|
2375
|
+
if (message.boundingBox !== undefined) {
|
|
2376
|
+
obj.boundingBox = message_formats_1.BoundingBox.toJSON(message.boundingBox);
|
|
2377
|
+
}
|
|
2378
|
+
if (message.imageWidth !== 0) {
|
|
2379
|
+
obj.imageWidth = Math.round(message.imageWidth);
|
|
2380
|
+
}
|
|
2381
|
+
if (message.imageHeight !== 0) {
|
|
2382
|
+
obj.imageHeight = Math.round(message.imageHeight);
|
|
2383
|
+
}
|
|
2384
|
+
return obj;
|
|
2385
|
+
},
|
|
2386
|
+
create(base) {
|
|
2387
|
+
return exports.SetSotTargetCtrl.fromPartial(base ?? {});
|
|
2388
|
+
},
|
|
2389
|
+
fromPartial(object) {
|
|
2390
|
+
const message = createBaseSetSotTargetCtrl();
|
|
2391
|
+
message.boundingBox = (object.boundingBox !== undefined && object.boundingBox !== null)
|
|
2392
|
+
? message_formats_1.BoundingBox.fromPartial(object.boundingBox)
|
|
2393
|
+
: undefined;
|
|
2394
|
+
message.imageWidth = object.imageWidth ?? 0;
|
|
2395
|
+
message.imageHeight = object.imageHeight ?? 0;
|
|
2396
|
+
return message;
|
|
2397
|
+
},
|
|
2398
|
+
};
|
|
2399
|
+
function createBaseClearSotTargetCtrl() {
|
|
2400
|
+
return {};
|
|
2401
|
+
}
|
|
2402
|
+
exports.ClearSotTargetCtrl = {
|
|
2403
|
+
encode(_, writer = new wire_1.BinaryWriter()) {
|
|
2404
|
+
return writer;
|
|
2405
|
+
},
|
|
2406
|
+
decode(input, length) {
|
|
2407
|
+
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
|
|
2408
|
+
const end = length === undefined ? reader.len : reader.pos + length;
|
|
2409
|
+
const message = createBaseClearSotTargetCtrl();
|
|
2410
|
+
while (reader.pos < end) {
|
|
2411
|
+
const tag = reader.uint32();
|
|
2412
|
+
switch (tag >>> 3) {
|
|
2413
|
+
}
|
|
2414
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
2415
|
+
break;
|
|
2416
|
+
}
|
|
2417
|
+
reader.skip(tag & 7);
|
|
2418
|
+
}
|
|
2419
|
+
return message;
|
|
2420
|
+
},
|
|
2421
|
+
fromJSON(_) {
|
|
2422
|
+
return {};
|
|
2423
|
+
},
|
|
2424
|
+
toJSON(_) {
|
|
2425
|
+
const obj = {};
|
|
2426
|
+
return obj;
|
|
2427
|
+
},
|
|
2428
|
+
create(base) {
|
|
2429
|
+
return exports.ClearSotTargetCtrl.fromPartial(base ?? {});
|
|
2430
|
+
},
|
|
2431
|
+
fromPartial(_) {
|
|
2432
|
+
const message = createBaseClearSotTargetCtrl();
|
|
2433
|
+
return message;
|
|
2434
|
+
},
|
|
2435
|
+
};
|
|
2240
2436
|
const gt = (() => {
|
|
2241
2437
|
if (typeof globalThis !== "undefined") {
|
|
2242
2438
|
return globalThis;
|
|
@@ -136,6 +136,8 @@ export declare enum NotificationType {
|
|
|
136
136
|
NOTIFICATION_TYPE_DVL_HIGH_TEMPERATURE_DETECTED = 31,
|
|
137
137
|
/** NOTIFICATION_TYPE_DVL_THERMAL_PROTECTION_MODE_DETECTED - DVL thermal protection mode detected. */
|
|
138
138
|
NOTIFICATION_TYPE_DVL_THERMAL_PROTECTION_MODE_DETECTED = 32,
|
|
139
|
+
/** NOTIFICATION_TYPE_VIDEO_PARTITION_NOT_MOUNTED - Video partition not mounted. */
|
|
140
|
+
NOTIFICATION_TYPE_VIDEO_PARTITION_NOT_MOUNTED = 33,
|
|
139
141
|
UNRECOGNIZED = -1
|
|
140
142
|
}
|
|
141
143
|
export declare function notificationTypeFromJSON(object: any): NotificationType;
|
|
@@ -268,6 +270,18 @@ export declare enum StreamingProtocol {
|
|
|
268
270
|
}
|
|
269
271
|
export declare function streamingProtocolFromJSON(object: any): StreamingProtocol;
|
|
270
272
|
export declare function streamingProtocolToJSON(object: StreamingProtocol): string;
|
|
273
|
+
/** Recording video codec. */
|
|
274
|
+
export declare enum RecordingCodec {
|
|
275
|
+
/** RECORDING_CODEC_UNSPECIFIED - Use platform default (H.264). */
|
|
276
|
+
RECORDING_CODEC_UNSPECIFIED = 0,
|
|
277
|
+
/** RECORDING_CODEC_H264 - H.264/AVC codec. Wider compatibility with players/editors. */
|
|
278
|
+
RECORDING_CODEC_H264 = 1,
|
|
279
|
+
/** RECORDING_CODEC_H265 - H.265/HEVC codec. Better compression, limited compatibility. Ultra only. */
|
|
280
|
+
RECORDING_CODEC_H265 = 2,
|
|
281
|
+
UNRECOGNIZED = -1
|
|
282
|
+
}
|
|
283
|
+
export declare function recordingCodecFromJSON(object: any): RecordingCodec;
|
|
284
|
+
export declare function recordingCodecToJSON(object: RecordingCodec): string;
|
|
271
285
|
/** Available temperature units. */
|
|
272
286
|
export declare enum TemperatureUnit {
|
|
273
287
|
/** TEMPERATURE_UNIT_UNSPECIFIED - Temperature unit not specified. */
|
|
@@ -334,6 +348,8 @@ export declare enum FontSize {
|
|
|
334
348
|
FONT_SIZE_PX35 = 5,
|
|
335
349
|
/** FONT_SIZE_PX40 - 40 px. */
|
|
336
350
|
FONT_SIZE_PX40 = 6,
|
|
351
|
+
/** FONT_SIZE_PX50 - 50 px. */
|
|
352
|
+
FONT_SIZE_PX50 = 7,
|
|
337
353
|
UNRECOGNIZED = -1
|
|
338
354
|
}
|
|
339
355
|
export declare function fontSizeFromJSON(object: any): FontSize;
|
|
@@ -436,6 +452,8 @@ export declare enum GuestPortDeviceID {
|
|
|
436
452
|
GUEST_PORT_DEVICE_ID_BLUEYE_MULTIBEAM_SERVO_V2 = 46,
|
|
437
453
|
/** GUEST_PORT_DEVICE_ID_CERULEAN_OMNISCAN_450_COMPACT - Cerulean Omniscan 450 Compact. */
|
|
438
454
|
GUEST_PORT_DEVICE_ID_CERULEAN_OMNISCAN_450_COMPACT = 47,
|
|
455
|
+
/** GUEST_PORT_DEVICE_ID_BLUEYE_SCALING_LASER - Blueye Scaling Laser. */
|
|
456
|
+
GUEST_PORT_DEVICE_ID_BLUEYE_SCALING_LASER = 48,
|
|
439
457
|
UNRECOGNIZED = -1
|
|
440
458
|
}
|
|
441
459
|
export declare function guestPortDeviceIDFromJSON(object: any): GuestPortDeviceID;
|
|
@@ -521,6 +539,18 @@ export declare enum MultibeamFrequencyMode {
|
|
|
521
539
|
}
|
|
522
540
|
export declare function multibeamFrequencyModeFromJSON(object: any): MultibeamFrequencyMode;
|
|
523
541
|
export declare function multibeamFrequencyModeToJSON(object: MultibeamFrequencyMode): string;
|
|
542
|
+
/** Thermal zone identifiers. */
|
|
543
|
+
export declare enum ThermalZoneId {
|
|
544
|
+
/** THERMAL_ZONE_ID_UNSPECIFIED - Unspecified thermal zone. */
|
|
545
|
+
THERMAL_ZONE_ID_UNSPECIFIED = 0,
|
|
546
|
+
/** THERMAL_ZONE_ID_TJ - Junction temperature (Tj). */
|
|
547
|
+
THERMAL_ZONE_ID_TJ = 1,
|
|
548
|
+
/** THERMAL_ZONE_ID_CANISTER - Canister temperature. */
|
|
549
|
+
THERMAL_ZONE_ID_CANISTER = 2,
|
|
550
|
+
UNRECOGNIZED = -1
|
|
551
|
+
}
|
|
552
|
+
export declare function thermalZoneIdFromJSON(object: any): ThermalZoneId;
|
|
553
|
+
export declare function thermalZoneIdToJSON(object: ThermalZoneId): string;
|
|
524
554
|
/**
|
|
525
555
|
* Wrapper message for each entry in the drone telemetry logfile.
|
|
526
556
|
*
|
|
@@ -654,6 +684,46 @@ export interface Lights {
|
|
|
654
684
|
export interface Laser {
|
|
655
685
|
/** Laser intensity, any value above 0 turns the laser on (0..1). */
|
|
656
686
|
value: number;
|
|
687
|
+
/** Modulate the laser at 5Hz for tracking. Only available on Ultra. */
|
|
688
|
+
modulated: boolean;
|
|
689
|
+
}
|
|
690
|
+
/** Point in 2D space. */
|
|
691
|
+
export interface Point2D {
|
|
692
|
+
/** X coordinate of the point (px). */
|
|
693
|
+
x: number;
|
|
694
|
+
/** Y coordinate of the point (px). */
|
|
695
|
+
y: number;
|
|
696
|
+
}
|
|
697
|
+
/**
|
|
698
|
+
* Message representing the detection of scaling lasers in the main camera.
|
|
699
|
+
*
|
|
700
|
+
* The message contains the centroids of the detected dots, the distance between them in pixels,
|
|
701
|
+
* and the confidence of the detection. The dots are detected through temporal DFT analysis of
|
|
702
|
+
* 5 Hz laser modulation, isolating flickering pixels from the static scene background.
|
|
703
|
+
*
|
|
704
|
+
* Only available on Ultra.
|
|
705
|
+
*/
|
|
706
|
+
export interface LaserDetection {
|
|
707
|
+
/** True if the laser is detected by the drone. */
|
|
708
|
+
detected: boolean;
|
|
709
|
+
/** First dot centroid (leftmost). */
|
|
710
|
+
dot1: Point2D | undefined;
|
|
711
|
+
/** Second dot centroid (rightmost). */
|
|
712
|
+
dot2: Point2D | undefined;
|
|
713
|
+
/** Distance between dots in pixels. */
|
|
714
|
+
pixelDistance: number;
|
|
715
|
+
/** Confidence of the detection (0..1). */
|
|
716
|
+
confidence: number;
|
|
717
|
+
/** Source frame width. */
|
|
718
|
+
imageWidth: number;
|
|
719
|
+
/** Source frame height. */
|
|
720
|
+
imageHeight: number;
|
|
721
|
+
/** Real world distance between the two laser dots (m). */
|
|
722
|
+
laserWidth: number;
|
|
723
|
+
/** Distance after lens undistortion (px). */
|
|
724
|
+
correctedPixelDistance: number;
|
|
725
|
+
/** Estimated subject distance (m). */
|
|
726
|
+
estimatedDistance: number;
|
|
657
727
|
}
|
|
658
728
|
/** Latitude and longitude position in WGS 84 decimal degrees format. */
|
|
659
729
|
export interface LatLongPosition {
|
|
@@ -840,7 +910,7 @@ export interface WaterTemperature {
|
|
|
840
910
|
/** Water temperature (°C). */
|
|
841
911
|
value: number;
|
|
842
912
|
}
|
|
843
|
-
/** CPU temperature. */
|
|
913
|
+
/** CPU temperature (deprecated, use SystemPerformanceInfo.thermal_zones instead). */
|
|
844
914
|
export interface CPUTemperature {
|
|
845
915
|
/** CPU temperature (°C). */
|
|
846
916
|
value: number;
|
|
@@ -1413,6 +1483,31 @@ export interface TiltVelocity {
|
|
|
1413
1483
|
/**
|
|
1414
1484
|
* Information about the drone.
|
|
1415
1485
|
*
|
|
1486
|
+
* Information about a loaded computer vision model.
|
|
1487
|
+
*/
|
|
1488
|
+
export interface CvModelInfo {
|
|
1489
|
+
/** Human-readable model name (from model_meta.json). */
|
|
1490
|
+
name: string;
|
|
1491
|
+
/** Type of CV model. */
|
|
1492
|
+
type: CvModelInfo_ModelType;
|
|
1493
|
+
/** Whether the model is currently running. */
|
|
1494
|
+
running: boolean;
|
|
1495
|
+
/** Execution provider (e.g. "cuda", "tensorrt"). */
|
|
1496
|
+
device: string;
|
|
1497
|
+
/** Package directory name (e.g. "tinyyolov2_package"). Stable identifier. */
|
|
1498
|
+
packageId: string;
|
|
1499
|
+
/** Class names the model can detect (indexed by class_id). */
|
|
1500
|
+
labels: string[];
|
|
1501
|
+
}
|
|
1502
|
+
export declare enum CvModelInfo_ModelType {
|
|
1503
|
+
MODEL_TYPE_UNSPECIFIED = 0,
|
|
1504
|
+
MODEL_TYPE_DETECTION = 1,
|
|
1505
|
+
MODEL_TYPE_SOT = 2,
|
|
1506
|
+
UNRECOGNIZED = -1
|
|
1507
|
+
}
|
|
1508
|
+
export declare function cvModelInfo_ModelTypeFromJSON(object: any): CvModelInfo_ModelType;
|
|
1509
|
+
export declare function cvModelInfo_ModelTypeToJSON(object: CvModelInfo_ModelType): string;
|
|
1510
|
+
/**
|
|
1416
1511
|
* This message contains serial numbers and version information for
|
|
1417
1512
|
* internal components in the drone. Primarily used for diagnostics, or to
|
|
1418
1513
|
* determine the origin of a logfile.
|
|
@@ -1440,6 +1535,8 @@ export interface DroneInfo {
|
|
|
1440
1535
|
gp: GuestPortInfo | undefined;
|
|
1441
1536
|
/** Type of depth sensor that is connected to the drone. */
|
|
1442
1537
|
depthSensor: PressureSensorType;
|
|
1538
|
+
/** List of loaded computer vision models. */
|
|
1539
|
+
cvModels: CvModelInfo[];
|
|
1443
1540
|
}
|
|
1444
1541
|
/** Known error states for the drone. */
|
|
1445
1542
|
export interface ErrorFlags {
|
|
@@ -1590,6 +1687,13 @@ export interface CameraParameters {
|
|
|
1590
1687
|
* The Blueye App allows users to set values between 500 and 1460.
|
|
1591
1688
|
*/
|
|
1592
1689
|
mtuSize: number;
|
|
1690
|
+
/** Recording video codec. If unset, uses platform default. */
|
|
1691
|
+
recordingCodec: RecordingCodec;
|
|
1692
|
+
/**
|
|
1693
|
+
* Recording bitrate in bits/sec. If 0 or unset, a default is computed based
|
|
1694
|
+
* on resolution, framerate, and encoding. Set explicitly to override.
|
|
1695
|
+
*/
|
|
1696
|
+
recordingBitrate: number;
|
|
1593
1697
|
}
|
|
1594
1698
|
/**
|
|
1595
1699
|
* Overlay parameters.
|
|
@@ -1955,7 +2059,7 @@ export interface PersistentStorageSettings {
|
|
|
1955
2059
|
accCalibration: boolean;
|
|
1956
2060
|
}
|
|
1957
2061
|
/**
|
|
1958
|
-
* CPU information.
|
|
2062
|
+
* CPU information (deprecated, use SystemPerformanceInfo instead).
|
|
1959
2063
|
*
|
|
1960
2064
|
* Contains information about the CPU load and memory usage of the drone.
|
|
1961
2065
|
*/
|
|
@@ -1971,6 +2075,119 @@ export interface CPUInfo {
|
|
|
1971
2075
|
/** Communication queue load (0..1). */
|
|
1972
2076
|
commQueueLoad: number;
|
|
1973
2077
|
}
|
|
2078
|
+
/** Per-core CPU utilization. */
|
|
2079
|
+
export interface CpuCoreLoad {
|
|
2080
|
+
/** Core index (0-based). */
|
|
2081
|
+
coreIndex: number;
|
|
2082
|
+
/** Core load (0..1). */
|
|
2083
|
+
load: number;
|
|
2084
|
+
/** Current clock frequency (MHz). */
|
|
2085
|
+
frequencyMhz: number;
|
|
2086
|
+
}
|
|
2087
|
+
/** GPU utilization and status. */
|
|
2088
|
+
export interface GpuInfo {
|
|
2089
|
+
/** GPU load (0..1). */
|
|
2090
|
+
load: number;
|
|
2091
|
+
/** Current GPU clock frequency (MHz). */
|
|
2092
|
+
frequencyMhz: number;
|
|
2093
|
+
}
|
|
2094
|
+
/**
|
|
2095
|
+
* Deep Learning Accelerator (DLA) utilization.
|
|
2096
|
+
*
|
|
2097
|
+
* Jetson Orin NX has two DLA engines used for inference offload.
|
|
2098
|
+
*/
|
|
2099
|
+
export interface DlaInfo {
|
|
2100
|
+
/** DLA engine index (0-based). */
|
|
2101
|
+
engineIndex: number;
|
|
2102
|
+
/** DLA engine load (0..1). */
|
|
2103
|
+
load: number;
|
|
2104
|
+
/** Core clock frequency (MHz). 0 when disabled. */
|
|
2105
|
+
frequencyMhz: number;
|
|
2106
|
+
/** True when the DLA engine is actively processing. */
|
|
2107
|
+
enabled: boolean;
|
|
2108
|
+
/** Falcon microcontroller clock frequency (MHz). 0 when disabled. */
|
|
2109
|
+
falconFrequencyMhz: number;
|
|
2110
|
+
}
|
|
2111
|
+
/** System memory information. */
|
|
2112
|
+
export interface MemoryInfo {
|
|
2113
|
+
/** Total RAM (bytes). */
|
|
2114
|
+
totalBytes: number;
|
|
2115
|
+
/** Used RAM (bytes). */
|
|
2116
|
+
usedBytes: number;
|
|
2117
|
+
/** Cached RAM (bytes). */
|
|
2118
|
+
cachedBytes: number;
|
|
2119
|
+
/** Memory bus utilization (0..1). i.MX only. */
|
|
2120
|
+
busLoad: number;
|
|
2121
|
+
}
|
|
2122
|
+
/** Thermal zone reading. */
|
|
2123
|
+
export interface ThermalZone {
|
|
2124
|
+
/** Thermal zone identifier. */
|
|
2125
|
+
zone: ThermalZoneId;
|
|
2126
|
+
/** Temperature (°C). */
|
|
2127
|
+
temperature: number;
|
|
2128
|
+
}
|
|
2129
|
+
/** Video codec engine status. */
|
|
2130
|
+
export interface VideoCodecInfo {
|
|
2131
|
+
/** Jetson only (NVENC/NVDEC/NVJPG/VIC devfreq). */
|
|
2132
|
+
encoderActive: boolean;
|
|
2133
|
+
/** Video encoder clock frequency (MHz). */
|
|
2134
|
+
encoderFrequencyMhz: number;
|
|
2135
|
+
/** Video decoder (NVDEC) is active. */
|
|
2136
|
+
decoderActive: boolean;
|
|
2137
|
+
/** Video decoder clock frequency (MHz). */
|
|
2138
|
+
decoderFrequencyMhz: number;
|
|
2139
|
+
/** JPEG engine (NVJPG) is active. */
|
|
2140
|
+
nvjpgActive: boolean;
|
|
2141
|
+
/** JPEG engine clock frequency (MHz). */
|
|
2142
|
+
nvjpgFrequencyMhz: number;
|
|
2143
|
+
/** Video Image Compositor (VIC) is active. */
|
|
2144
|
+
vicActive: boolean;
|
|
2145
|
+
/** VIC clock frequency (MHz). */
|
|
2146
|
+
vicFrequencyMhz: number;
|
|
2147
|
+
/** i.MX only (CODA VPU). */
|
|
2148
|
+
vpuActive: boolean;
|
|
2149
|
+
/** VPU AXI clock frequency (MHz). */
|
|
2150
|
+
vpuFrequencyMhz: number;
|
|
2151
|
+
/** Cumulative VPU_CODEC_IRQ count. */
|
|
2152
|
+
vpuCodecIrqCount: number;
|
|
2153
|
+
/** Cumulative VPU_JPG_IRQ count. */
|
|
2154
|
+
vpuJpgIrqCount: number;
|
|
2155
|
+
}
|
|
2156
|
+
/**
|
|
2157
|
+
* System performance information.
|
|
2158
|
+
*
|
|
2159
|
+
* Comprehensive performance metrics for the drone's compute platform.
|
|
2160
|
+
* Covers CPU, GPU, DLA, memory, thermals, and video codec utilization.
|
|
2161
|
+
* Fields not applicable to a platform are left at their zero/empty defaults.
|
|
2162
|
+
*/
|
|
2163
|
+
export interface SystemPerformanceInfo {
|
|
2164
|
+
/** Per-core CPU utilization. */
|
|
2165
|
+
cpuCores: CpuCoreLoad[];
|
|
2166
|
+
/** Mean CPU utilization across all cores (0..1). */
|
|
2167
|
+
cpuUtilization: number;
|
|
2168
|
+
/** GPU utilization. */
|
|
2169
|
+
gpu: GpuInfo | undefined;
|
|
2170
|
+
/** DLA engine utilization (Jetson only). */
|
|
2171
|
+
dlaEngines: DlaInfo[];
|
|
2172
|
+
/** RAM usage. */
|
|
2173
|
+
memory: MemoryInfo | undefined;
|
|
2174
|
+
/** All thermal zone readings. */
|
|
2175
|
+
thermalZones: ThermalZone[];
|
|
2176
|
+
/** Video encoder/decoder status. */
|
|
2177
|
+
videoCodec: VideoCodecInfo | undefined;
|
|
2178
|
+
/** Main queue load (0..1). */
|
|
2179
|
+
mainQueueLoad: number;
|
|
2180
|
+
/** Guestport queue load (0..1). */
|
|
2181
|
+
guestportQueueLoad: number;
|
|
2182
|
+
/** Communication queue load (0..1). */
|
|
2183
|
+
commQueueLoad: number;
|
|
2184
|
+
/** Camera queue load (0..1). */
|
|
2185
|
+
cameraQueueLoad: number;
|
|
2186
|
+
/** Overlay queue load (0..1). */
|
|
2187
|
+
overlayQueueLoad: number;
|
|
2188
|
+
/** Position observer queue load (0..1). */
|
|
2189
|
+
positionObserverQueueLoad: number;
|
|
2190
|
+
}
|
|
1974
2191
|
/**
|
|
1975
2192
|
* Surface Unit battery information.
|
|
1976
2193
|
*
|
|
@@ -2018,6 +2235,22 @@ export interface BoundingBox {
|
|
|
2018
2235
|
/** Height of the bounding box (px). */
|
|
2019
2236
|
height: number;
|
|
2020
2237
|
}
|
|
2238
|
+
/**
|
|
2239
|
+
* RLE-encoded binary segmentation mask relative to the bounding box.
|
|
2240
|
+
*
|
|
2241
|
+
* The mask bitmap has dimensions (mask_width x mask_height) covering the
|
|
2242
|
+
* detection's bounding box area. The counts field stores run-length encoded
|
|
2243
|
+
* data as packed uint16 little-endian: alternating background/foreground
|
|
2244
|
+
* pixel runs starting with background.
|
|
2245
|
+
*/
|
|
2246
|
+
export interface SegmentationMask {
|
|
2247
|
+
/** Width of the RLE bitmap. */
|
|
2248
|
+
maskWidth: number;
|
|
2249
|
+
/** Height of the RLE bitmap. */
|
|
2250
|
+
maskHeight: number;
|
|
2251
|
+
/** RLE counts as packed uint16 little-endian. */
|
|
2252
|
+
counts: Uint8Array;
|
|
2253
|
+
}
|
|
2021
2254
|
/** A single object detection from a computer vision model. */
|
|
2022
2255
|
export interface ObjectDetection {
|
|
2023
2256
|
/** Bounding box of the detected object. */
|
|
@@ -2030,13 +2263,21 @@ export interface ObjectDetection {
|
|
|
2030
2263
|
className: string;
|
|
2031
2264
|
/** Unique ID for tracking the same object across frames. */
|
|
2032
2265
|
trackingId: number;
|
|
2266
|
+
/** Instance segmentation mask (absent if model has no segmentation). */
|
|
2267
|
+
mask: SegmentationMask | undefined;
|
|
2033
2268
|
}
|
|
2034
|
-
/** A list of object detections from a single video frame. */
|
|
2035
|
-
export interface
|
|
2269
|
+
/** A list of object detections from a single model for a single video frame. */
|
|
2270
|
+
export interface ModelDetections {
|
|
2036
2271
|
/** List of detections in the frame. */
|
|
2037
2272
|
detections: ObjectDetection[];
|
|
2038
2273
|
/** Which camera the detections are from. */
|
|
2039
2274
|
camera: Camera;
|
|
2275
|
+
/** Width of the source image (px). */
|
|
2276
|
+
imageWidth: number;
|
|
2277
|
+
/** Height of the source image (px). */
|
|
2278
|
+
imageHeight: number;
|
|
2279
|
+
/** Name of the computer vision model that produced the detections. */
|
|
2280
|
+
modelName: string;
|
|
2040
2281
|
}
|
|
2041
2282
|
/** Generic filter settings. */
|
|
2042
2283
|
export interface FilterMessage {
|
|
@@ -2070,6 +2311,31 @@ export interface OperatorInfo {
|
|
|
2070
2311
|
/** E-mail address of the operator. */
|
|
2071
2312
|
email: string;
|
|
2072
2313
|
}
|
|
2314
|
+
/** Single-object tracking (SOT) state reported by the computer vision pipeline. */
|
|
2315
|
+
export interface SotState {
|
|
2316
|
+
/** Current tracking state. */
|
|
2317
|
+
state: SotState_State;
|
|
2318
|
+
/** Current tracked bounding box (valid when TRACKING). */
|
|
2319
|
+
boundingBox: BoundingBox | undefined;
|
|
2320
|
+
/** Width of the source frame in pixels. */
|
|
2321
|
+
imageWidth: number;
|
|
2322
|
+
/** Height of the source frame in pixels. */
|
|
2323
|
+
imageHeight: number;
|
|
2324
|
+
}
|
|
2325
|
+
/** Current state of the SOT tracker. */
|
|
2326
|
+
export declare enum SotState_State {
|
|
2327
|
+
/** STATE_UNSPECIFIED - Unspecified state. */
|
|
2328
|
+
STATE_UNSPECIFIED = 0,
|
|
2329
|
+
/** STATE_IDLE - No target selected, waiting for a target bounding box. */
|
|
2330
|
+
STATE_IDLE = 1,
|
|
2331
|
+
/** STATE_TRACKING - Actively tracking a target. */
|
|
2332
|
+
STATE_TRACKING = 2,
|
|
2333
|
+
/** STATE_LOST - Target was lost (tracker failed to follow the object). */
|
|
2334
|
+
STATE_LOST = 3,
|
|
2335
|
+
UNRECOGNIZED = -1
|
|
2336
|
+
}
|
|
2337
|
+
export declare function sotState_StateFromJSON(object: any): SotState_State;
|
|
2338
|
+
export declare function sotState_StateToJSON(object: SotState_State): string;
|
|
2073
2339
|
export declare const BinlogRecord: MessageFns<BinlogRecord>;
|
|
2074
2340
|
export declare const LogEntry: MessageFns<LogEntry>;
|
|
2075
2341
|
export declare const KernelLogEntry: MessageFns<KernelLogEntry>;
|
|
@@ -2077,6 +2343,8 @@ export declare const KernelLogEntry_KeyValuePair: MessageFns<KernelLogEntry_KeyV
|
|
|
2077
2343
|
export declare const MotionInput: MessageFns<MotionInput>;
|
|
2078
2344
|
export declare const Lights: MessageFns<Lights>;
|
|
2079
2345
|
export declare const Laser: MessageFns<Laser>;
|
|
2346
|
+
export declare const Point2D: MessageFns<Point2D>;
|
|
2347
|
+
export declare const LaserDetection: MessageFns<LaserDetection>;
|
|
2080
2348
|
export declare const LatLongPosition: MessageFns<LatLongPosition>;
|
|
2081
2349
|
export declare const ConnectionDuration: MessageFns<ConnectionDuration>;
|
|
2082
2350
|
export declare const AutoHeadingState: MessageFns<AutoHeadingState>;
|
|
@@ -2133,6 +2401,7 @@ export declare const IperfStatus: MessageFns<IperfStatus>;
|
|
|
2133
2401
|
export declare const NStreamers: MessageFns<NStreamers>;
|
|
2134
2402
|
export declare const TiltAngle: MessageFns<TiltAngle>;
|
|
2135
2403
|
export declare const TiltVelocity: MessageFns<TiltVelocity>;
|
|
2404
|
+
export declare const CvModelInfo: MessageFns<CvModelInfo>;
|
|
2136
2405
|
export declare const DroneInfo: MessageFns<DroneInfo>;
|
|
2137
2406
|
export declare const ErrorFlags: MessageFns<ErrorFlags>;
|
|
2138
2407
|
export declare const CameraParameters: MessageFns<CameraParameters>;
|
|
@@ -2159,14 +2428,23 @@ export declare const MultibeamFrameOffset: MessageFns<MultibeamFrameOffset>;
|
|
|
2159
2428
|
export declare const MutltibeamRecordingIndex: MessageFns<MutltibeamRecordingIndex>;
|
|
2160
2429
|
export declare const PersistentStorageSettings: MessageFns<PersistentStorageSettings>;
|
|
2161
2430
|
export declare const CPUInfo: MessageFns<CPUInfo>;
|
|
2431
|
+
export declare const CpuCoreLoad: MessageFns<CpuCoreLoad>;
|
|
2432
|
+
export declare const GpuInfo: MessageFns<GpuInfo>;
|
|
2433
|
+
export declare const DlaInfo: MessageFns<DlaInfo>;
|
|
2434
|
+
export declare const MemoryInfo: MessageFns<MemoryInfo>;
|
|
2435
|
+
export declare const ThermalZone: MessageFns<ThermalZone>;
|
|
2436
|
+
export declare const VideoCodecInfo: MessageFns<VideoCodecInfo>;
|
|
2437
|
+
export declare const SystemPerformanceInfo: MessageFns<SystemPerformanceInfo>;
|
|
2162
2438
|
export declare const SurfaceUnitBatteryInfo: MessageFns<SurfaceUnitBatteryInfo>;
|
|
2163
2439
|
export declare const SurfaceUnitVersionInfo: MessageFns<SurfaceUnitVersionInfo>;
|
|
2164
2440
|
export declare const BoundingBox: MessageFns<BoundingBox>;
|
|
2441
|
+
export declare const SegmentationMask: MessageFns<SegmentationMask>;
|
|
2165
2442
|
export declare const ObjectDetection: MessageFns<ObjectDetection>;
|
|
2166
|
-
export declare const
|
|
2443
|
+
export declare const ModelDetections: MessageFns<ModelDetections>;
|
|
2167
2444
|
export declare const FilterMessage: MessageFns<FilterMessage>;
|
|
2168
2445
|
export declare const CameraPanTiltZoom: MessageFns<CameraPanTiltZoom>;
|
|
2169
2446
|
export declare const OperatorInfo: MessageFns<OperatorInfo>;
|
|
2447
|
+
export declare const SotState: MessageFns<SotState>;
|
|
2170
2448
|
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
2171
2449
|
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 {} ? {
|
|
2172
2450
|
[K in keyof T]?: DeepPartial<T[K]>;
|