@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 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 ObjectDetections {
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 ObjectDetections: MessageFns<ObjectDetections>;
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]>;