@blueyerobotics/protocol-definitions 3.2.0-43e7a52a → 3.2.0-479898f9

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.
@@ -90,6 +90,8 @@ export declare enum InstructionType {
90
90
  INSTRUCTION_TYPE_GO_TO_SEABED = 11,
91
91
  /** INSTRUCTION_TYPE_GO_TO_HOME - Returning to home. */
92
92
  INSTRUCTION_TYPE_GO_TO_HOME = 12,
93
+ /** INSTRUCTION_TYPE_SURVEY - Execute a survey pattern over a polygon area. */
94
+ INSTRUCTION_TYPE_SURVEY = 13,
93
95
  UNRECOGNIZED = -1
94
96
  }
95
97
  export declare function instructionTypeFromJSON(object: any): InstructionType;
@@ -166,6 +168,8 @@ export interface Instruction {
166
168
  goToSeabedCommand?: GoToSeabedCommand | undefined;
167
169
  /** Go to home position. */
168
170
  goToHomeCommand?: GoToHomeCommand | undefined;
171
+ /** Execute a survey pattern over a polygon area. */
172
+ surveyCommand?: SurveyCommand | undefined;
169
173
  }
170
174
  /** Depth set point is used to describe a depth set-point relative to the surface or the seabed. */
171
175
  export interface DepthSetPoint {
@@ -245,6 +249,55 @@ export interface GoToHomeCommand {
245
249
  /** Desired speed to home (m/s). */
246
250
  desiredSpeed: number;
247
251
  }
252
+ /**
253
+ * A SurveyCommand defines a survey (lawn-mower) pattern over a polygon area.
254
+ * The planner generates waypoints from the polygon + parameters and stores them
255
+ * in the waypoints field. The drone executes these pre-computed waypoints directly
256
+ * without re-running the survey algorithm. The polygon and parameters remain
257
+ * editable in the planner — regenerate waypoints when they change.
258
+ * Planners SHOULD validate that the polygon is simple (non-self-intersecting)
259
+ * before generating waypoints, as behavior is undefined for invalid polygons.
260
+ */
261
+ export interface SurveyCommand {
262
+ /**
263
+ * Polygon vertices defining the survey area boundary (decimal degrees).
264
+ * The polygon is implicitly closed: the last vertex connects back to the first.
265
+ * Clients MUST NOT repeat the first vertex at the end of the list.
266
+ * Vertices should be ordered clockwise when viewed from above.
267
+ * The boundary must form a simple polygon (no self-intersections).
268
+ * At least three distinct vertices are required.
269
+ */
270
+ vertices: LatLongPosition[];
271
+ /**
272
+ * Survey line heading relative to north in degrees (0-360).
273
+ * NOTE: Unlike PathSegment.course_to_target (which uses radians), this field
274
+ * uses degrees to match compass convention. Convert radians before assigning.
275
+ */
276
+ surveyLineHeading: number;
277
+ /** Distance between parallel scan lines (m). */
278
+ laneSpacing: number;
279
+ /** Overshoot distance past polygon boundary at each turn (m). */
280
+ turnaroundDistance: number;
281
+ /** Desired speed over ground during survey (m/s). */
282
+ cruiseSpeed: number;
283
+ /** Radius of acceptance circle for generated waypoints (m). */
284
+ circleOfAcceptance: number;
285
+ /** Optional depth set point for all generated waypoints. */
286
+ depthSetPoint: DepthSetPoint | undefined;
287
+ /** If true, reverse the scan line order (swap start and end points). */
288
+ reverse: boolean;
289
+ /**
290
+ * Pre-computed waypoints generated by the planner from the polygon and parameters.
291
+ * The drone executes these directly. Individual waypoint parameters (speed, CoA,
292
+ * depth) can be tweaked after generation without modifying the survey shape.
293
+ * Regenerated automatically when polygon or survey parameters change.
294
+ */
295
+ waypoints: Waypoint[];
296
+ /** Sensor swath width (m). When set with overlap_percent, overrides lane_spacing. */
297
+ swathWidth: number;
298
+ /** Desired overlap between adjacent scan lines (0-100%). Used with swath_width. */
299
+ overlapPercent: number;
300
+ }
248
301
  /** Path segment used to describe segments of a mission as a line between to waypoints. */
249
302
  export interface PathSegment {
250
303
  /** Path segment id starting at 0, -1 for inactive. */
@@ -328,6 +381,7 @@ export declare const CameraCommand: MessageFns<CameraCommand>;
328
381
  export declare const GoToSurfaceCommand: MessageFns<GoToSurfaceCommand>;
329
382
  export declare const GoToSeabedCommand: MessageFns<GoToSeabedCommand>;
330
383
  export declare const GoToHomeCommand: MessageFns<GoToHomeCommand>;
384
+ export declare const SurveyCommand: MessageFns<SurveyCommand>;
331
385
  export declare const PathSegment: MessageFns<PathSegment>;
332
386
  export declare const ReferenceAutoPilot: MessageFns<ReferenceAutoPilot>;
333
387
  export declare const MissionStatus: MessageFns<MissionStatus>;
@@ -5,7 +5,7 @@
5
5
  // protoc v3.21.12
6
6
  // source: mission_planning.proto
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.MissionStatus = exports.ReferenceAutoPilot = exports.PathSegment = exports.GoToHomeCommand = exports.GoToSeabedCommand = exports.GoToSurfaceCommand = exports.CameraCommand = exports.WaitForCommand = exports.TiltMultibeamCommand = exports.TiltMainCameraCommand = exports.DepthSetPointCommand = exports.WaypointCommand = exports.ControlModeCommand = exports.Waypoint = exports.DepthSetPoint = exports.Instruction = exports.Mission = exports.MissionState = exports.InstructionType = exports.CameraAction = exports.ControlModeHorizontal = exports.ControlModeVertical = exports.DepthZeroReference = void 0;
8
+ exports.MissionStatus = exports.ReferenceAutoPilot = exports.PathSegment = exports.SurveyCommand = exports.GoToHomeCommand = exports.GoToSeabedCommand = exports.GoToSurfaceCommand = exports.CameraCommand = exports.WaitForCommand = exports.TiltMultibeamCommand = exports.TiltMainCameraCommand = exports.DepthSetPointCommand = exports.WaypointCommand = exports.ControlModeCommand = exports.Waypoint = exports.DepthSetPoint = exports.Instruction = exports.Mission = exports.MissionState = exports.InstructionType = exports.CameraAction = exports.ControlModeHorizontal = exports.ControlModeVertical = exports.DepthZeroReference = void 0;
9
9
  exports.depthZeroReferenceFromJSON = depthZeroReferenceFromJSON;
10
10
  exports.depthZeroReferenceToJSON = depthZeroReferenceToJSON;
11
11
  exports.controlModeVerticalFromJSON = controlModeVerticalFromJSON;
@@ -258,6 +258,8 @@ var InstructionType;
258
258
  InstructionType[InstructionType["INSTRUCTION_TYPE_GO_TO_SEABED"] = 11] = "INSTRUCTION_TYPE_GO_TO_SEABED";
259
259
  /** INSTRUCTION_TYPE_GO_TO_HOME - Returning to home. */
260
260
  InstructionType[InstructionType["INSTRUCTION_TYPE_GO_TO_HOME"] = 12] = "INSTRUCTION_TYPE_GO_TO_HOME";
261
+ /** INSTRUCTION_TYPE_SURVEY - Execute a survey pattern over a polygon area. */
262
+ InstructionType[InstructionType["INSTRUCTION_TYPE_SURVEY"] = 13] = "INSTRUCTION_TYPE_SURVEY";
261
263
  InstructionType[InstructionType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
262
264
  })(InstructionType || (exports.InstructionType = InstructionType = {}));
263
265
  function instructionTypeFromJSON(object) {
@@ -301,6 +303,9 @@ function instructionTypeFromJSON(object) {
301
303
  case 12:
302
304
  case "INSTRUCTION_TYPE_GO_TO_HOME":
303
305
  return InstructionType.INSTRUCTION_TYPE_GO_TO_HOME;
306
+ case 13:
307
+ case "INSTRUCTION_TYPE_SURVEY":
308
+ return InstructionType.INSTRUCTION_TYPE_SURVEY;
304
309
  case -1:
305
310
  case "UNRECOGNIZED":
306
311
  default:
@@ -335,6 +340,8 @@ function instructionTypeToJSON(object) {
335
340
  return "INSTRUCTION_TYPE_GO_TO_SEABED";
336
341
  case InstructionType.INSTRUCTION_TYPE_GO_TO_HOME:
337
342
  return "INSTRUCTION_TYPE_GO_TO_HOME";
343
+ case InstructionType.INSTRUCTION_TYPE_SURVEY:
344
+ return "INSTRUCTION_TYPE_SURVEY";
338
345
  case InstructionType.UNRECOGNIZED:
339
346
  default:
340
347
  return "UNRECOGNIZED";
@@ -627,6 +634,7 @@ function createBaseInstruction() {
627
634
  goToSurfaceCommand: undefined,
628
635
  goToSeabedCommand: undefined,
629
636
  goToHomeCommand: undefined,
637
+ surveyCommand: undefined,
630
638
  };
631
639
  }
632
640
  exports.Instruction = {
@@ -670,6 +678,9 @@ exports.Instruction = {
670
678
  if (message.goToHomeCommand !== undefined) {
671
679
  exports.GoToHomeCommand.encode(message.goToHomeCommand, writer.uint32(106).fork()).join();
672
680
  }
681
+ if (message.surveyCommand !== undefined) {
682
+ exports.SurveyCommand.encode(message.surveyCommand, writer.uint32(114).fork()).join();
683
+ }
673
684
  return writer;
674
685
  },
675
686
  decode(input, length) {
@@ -770,6 +781,13 @@ exports.Instruction = {
770
781
  message.goToHomeCommand = exports.GoToHomeCommand.decode(reader, reader.uint32());
771
782
  continue;
772
783
  }
784
+ case 14: {
785
+ if (tag !== 114) {
786
+ break;
787
+ }
788
+ message.surveyCommand = exports.SurveyCommand.decode(reader, reader.uint32());
789
+ continue;
790
+ }
773
791
  }
774
792
  if ((tag & 7) === 4 || tag === 0) {
775
793
  break;
@@ -805,6 +823,7 @@ exports.Instruction = {
805
823
  ? exports.GoToSeabedCommand.fromJSON(object.goToSeabedCommand)
806
824
  : undefined,
807
825
  goToHomeCommand: isSet(object.goToHomeCommand) ? exports.GoToHomeCommand.fromJSON(object.goToHomeCommand) : undefined,
826
+ surveyCommand: isSet(object.surveyCommand) ? exports.SurveyCommand.fromJSON(object.surveyCommand) : undefined,
808
827
  };
809
828
  },
810
829
  toJSON(message) {
@@ -848,6 +867,9 @@ exports.Instruction = {
848
867
  if (message.goToHomeCommand !== undefined) {
849
868
  obj.goToHomeCommand = exports.GoToHomeCommand.toJSON(message.goToHomeCommand);
850
869
  }
870
+ if (message.surveyCommand !== undefined) {
871
+ obj.surveyCommand = exports.SurveyCommand.toJSON(message.surveyCommand);
872
+ }
851
873
  return obj;
852
874
  },
853
875
  create(base) {
@@ -889,6 +911,9 @@ exports.Instruction = {
889
911
  message.goToHomeCommand = (object.goToHomeCommand !== undefined && object.goToHomeCommand !== null)
890
912
  ? exports.GoToHomeCommand.fromPartial(object.goToHomeCommand)
891
913
  : undefined;
914
+ message.surveyCommand = (object.surveyCommand !== undefined && object.surveyCommand !== null)
915
+ ? exports.SurveyCommand.fromPartial(object.surveyCommand)
916
+ : undefined;
892
917
  return message;
893
918
  },
894
919
  };
@@ -1672,6 +1697,223 @@ exports.GoToHomeCommand = {
1672
1697
  return message;
1673
1698
  },
1674
1699
  };
1700
+ function createBaseSurveyCommand() {
1701
+ return {
1702
+ vertices: [],
1703
+ surveyLineHeading: 0,
1704
+ laneSpacing: 0,
1705
+ turnaroundDistance: 0,
1706
+ cruiseSpeed: 0,
1707
+ circleOfAcceptance: 0,
1708
+ depthSetPoint: undefined,
1709
+ reverse: false,
1710
+ waypoints: [],
1711
+ swathWidth: 0,
1712
+ overlapPercent: 0,
1713
+ };
1714
+ }
1715
+ exports.SurveyCommand = {
1716
+ encode(message, writer = new wire_1.BinaryWriter()) {
1717
+ for (const v of message.vertices) {
1718
+ message_formats_1.LatLongPosition.encode(v, writer.uint32(10).fork()).join();
1719
+ }
1720
+ if (message.surveyLineHeading !== 0) {
1721
+ writer.uint32(21).float(message.surveyLineHeading);
1722
+ }
1723
+ if (message.laneSpacing !== 0) {
1724
+ writer.uint32(29).float(message.laneSpacing);
1725
+ }
1726
+ if (message.turnaroundDistance !== 0) {
1727
+ writer.uint32(37).float(message.turnaroundDistance);
1728
+ }
1729
+ if (message.cruiseSpeed !== 0) {
1730
+ writer.uint32(45).float(message.cruiseSpeed);
1731
+ }
1732
+ if (message.circleOfAcceptance !== 0) {
1733
+ writer.uint32(53).float(message.circleOfAcceptance);
1734
+ }
1735
+ if (message.depthSetPoint !== undefined) {
1736
+ exports.DepthSetPoint.encode(message.depthSetPoint, writer.uint32(58).fork()).join();
1737
+ }
1738
+ if (message.reverse !== false) {
1739
+ writer.uint32(64).bool(message.reverse);
1740
+ }
1741
+ for (const v of message.waypoints) {
1742
+ exports.Waypoint.encode(v, writer.uint32(74).fork()).join();
1743
+ }
1744
+ if (message.swathWidth !== 0) {
1745
+ writer.uint32(85).float(message.swathWidth);
1746
+ }
1747
+ if (message.overlapPercent !== 0) {
1748
+ writer.uint32(93).float(message.overlapPercent);
1749
+ }
1750
+ return writer;
1751
+ },
1752
+ decode(input, length) {
1753
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1754
+ const end = length === undefined ? reader.len : reader.pos + length;
1755
+ const message = createBaseSurveyCommand();
1756
+ while (reader.pos < end) {
1757
+ const tag = reader.uint32();
1758
+ switch (tag >>> 3) {
1759
+ case 1: {
1760
+ if (tag !== 10) {
1761
+ break;
1762
+ }
1763
+ message.vertices.push(message_formats_1.LatLongPosition.decode(reader, reader.uint32()));
1764
+ continue;
1765
+ }
1766
+ case 2: {
1767
+ if (tag !== 21) {
1768
+ break;
1769
+ }
1770
+ message.surveyLineHeading = reader.float();
1771
+ continue;
1772
+ }
1773
+ case 3: {
1774
+ if (tag !== 29) {
1775
+ break;
1776
+ }
1777
+ message.laneSpacing = reader.float();
1778
+ continue;
1779
+ }
1780
+ case 4: {
1781
+ if (tag !== 37) {
1782
+ break;
1783
+ }
1784
+ message.turnaroundDistance = reader.float();
1785
+ continue;
1786
+ }
1787
+ case 5: {
1788
+ if (tag !== 45) {
1789
+ break;
1790
+ }
1791
+ message.cruiseSpeed = reader.float();
1792
+ continue;
1793
+ }
1794
+ case 6: {
1795
+ if (tag !== 53) {
1796
+ break;
1797
+ }
1798
+ message.circleOfAcceptance = reader.float();
1799
+ continue;
1800
+ }
1801
+ case 7: {
1802
+ if (tag !== 58) {
1803
+ break;
1804
+ }
1805
+ message.depthSetPoint = exports.DepthSetPoint.decode(reader, reader.uint32());
1806
+ continue;
1807
+ }
1808
+ case 8: {
1809
+ if (tag !== 64) {
1810
+ break;
1811
+ }
1812
+ message.reverse = reader.bool();
1813
+ continue;
1814
+ }
1815
+ case 9: {
1816
+ if (tag !== 74) {
1817
+ break;
1818
+ }
1819
+ message.waypoints.push(exports.Waypoint.decode(reader, reader.uint32()));
1820
+ continue;
1821
+ }
1822
+ case 10: {
1823
+ if (tag !== 85) {
1824
+ break;
1825
+ }
1826
+ message.swathWidth = reader.float();
1827
+ continue;
1828
+ }
1829
+ case 11: {
1830
+ if (tag !== 93) {
1831
+ break;
1832
+ }
1833
+ message.overlapPercent = reader.float();
1834
+ continue;
1835
+ }
1836
+ }
1837
+ if ((tag & 7) === 4 || tag === 0) {
1838
+ break;
1839
+ }
1840
+ reader.skip(tag & 7);
1841
+ }
1842
+ return message;
1843
+ },
1844
+ fromJSON(object) {
1845
+ return {
1846
+ vertices: gt.Array.isArray(object?.vertices) ? object.vertices.map((e) => message_formats_1.LatLongPosition.fromJSON(e)) : [],
1847
+ surveyLineHeading: isSet(object.surveyLineHeading) ? gt.Number(object.surveyLineHeading) : 0,
1848
+ laneSpacing: isSet(object.laneSpacing) ? gt.Number(object.laneSpacing) : 0,
1849
+ turnaroundDistance: isSet(object.turnaroundDistance) ? gt.Number(object.turnaroundDistance) : 0,
1850
+ cruiseSpeed: isSet(object.cruiseSpeed) ? gt.Number(object.cruiseSpeed) : 0,
1851
+ circleOfAcceptance: isSet(object.circleOfAcceptance) ? gt.Number(object.circleOfAcceptance) : 0,
1852
+ depthSetPoint: isSet(object.depthSetPoint) ? exports.DepthSetPoint.fromJSON(object.depthSetPoint) : undefined,
1853
+ reverse: isSet(object.reverse) ? gt.Boolean(object.reverse) : false,
1854
+ waypoints: gt.Array.isArray(object?.waypoints) ? object.waypoints.map((e) => exports.Waypoint.fromJSON(e)) : [],
1855
+ swathWidth: isSet(object.swathWidth) ? gt.Number(object.swathWidth) : 0,
1856
+ overlapPercent: isSet(object.overlapPercent) ? gt.Number(object.overlapPercent) : 0,
1857
+ };
1858
+ },
1859
+ toJSON(message) {
1860
+ const obj = {};
1861
+ if (message.vertices?.length) {
1862
+ obj.vertices = message.vertices.map((e) => message_formats_1.LatLongPosition.toJSON(e));
1863
+ }
1864
+ if (message.surveyLineHeading !== 0) {
1865
+ obj.surveyLineHeading = message.surveyLineHeading;
1866
+ }
1867
+ if (message.laneSpacing !== 0) {
1868
+ obj.laneSpacing = message.laneSpacing;
1869
+ }
1870
+ if (message.turnaroundDistance !== 0) {
1871
+ obj.turnaroundDistance = message.turnaroundDistance;
1872
+ }
1873
+ if (message.cruiseSpeed !== 0) {
1874
+ obj.cruiseSpeed = message.cruiseSpeed;
1875
+ }
1876
+ if (message.circleOfAcceptance !== 0) {
1877
+ obj.circleOfAcceptance = message.circleOfAcceptance;
1878
+ }
1879
+ if (message.depthSetPoint !== undefined) {
1880
+ obj.depthSetPoint = exports.DepthSetPoint.toJSON(message.depthSetPoint);
1881
+ }
1882
+ if (message.reverse !== false) {
1883
+ obj.reverse = message.reverse;
1884
+ }
1885
+ if (message.waypoints?.length) {
1886
+ obj.waypoints = message.waypoints.map((e) => exports.Waypoint.toJSON(e));
1887
+ }
1888
+ if (message.swathWidth !== 0) {
1889
+ obj.swathWidth = message.swathWidth;
1890
+ }
1891
+ if (message.overlapPercent !== 0) {
1892
+ obj.overlapPercent = message.overlapPercent;
1893
+ }
1894
+ return obj;
1895
+ },
1896
+ create(base) {
1897
+ return exports.SurveyCommand.fromPartial(base ?? {});
1898
+ },
1899
+ fromPartial(object) {
1900
+ const message = createBaseSurveyCommand();
1901
+ message.vertices = object.vertices?.map((e) => message_formats_1.LatLongPosition.fromPartial(e)) || [];
1902
+ message.surveyLineHeading = object.surveyLineHeading ?? 0;
1903
+ message.laneSpacing = object.laneSpacing ?? 0;
1904
+ message.turnaroundDistance = object.turnaroundDistance ?? 0;
1905
+ message.cruiseSpeed = object.cruiseSpeed ?? 0;
1906
+ message.circleOfAcceptance = object.circleOfAcceptance ?? 0;
1907
+ message.depthSetPoint = (object.depthSetPoint !== undefined && object.depthSetPoint !== null)
1908
+ ? exports.DepthSetPoint.fromPartial(object.depthSetPoint)
1909
+ : undefined;
1910
+ message.reverse = object.reverse ?? false;
1911
+ message.waypoints = object.waypoints?.map((e) => exports.Waypoint.fromPartial(e)) || [];
1912
+ message.swathWidth = object.swathWidth ?? 0;
1913
+ message.overlapPercent = object.overlapPercent ?? 0;
1914
+ return message;
1915
+ },
1916
+ };
1675
1917
  function createBasePathSegment() {
1676
1918
  return {
1677
1919
  id: 0,
@@ -1,6 +1,6 @@
1
1
  import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
2
  import { AquaTrollProbeMetadata, AquaTrollSensorMetadataArray, AquaTrollSensorParametersArray } from "./aquatroll";
3
- import { Altitude, Attitude, Battery, BatteryBQ40Z50, CalibrationState, CanisterHumidity, CanisterTemperature, ConnectedClient, ControlForce, ControllerHealth, ControlMode, CpProbe, CPUInfo, CPUTemperature, Depth, DiveTime, DroneInfo, DvlVelocity, ErrorFlags, ForwardDistance, GenericServo, GuestPortCurrent, Imu, IperfStatus, KernelLogEntry, Laser, LatLongPosition, Lights, LogEntry, MagneticDeclination, MedusaSpectrometerData, MultibeamConfig, MultibeamDiscovery, MultibeamPing, MultibeamServo, Notification, NStreamers, PositionEstimate, RecordState, Reference, RemovableStorageDevice, StorageSpace, SurfaceUnitBatteryInfo, SurfaceUnitVersionInfo, SystemTime, ThicknessGauge, TiltAngle, TiltStabilizationState, TimeLapseState, WaterTemperature } from "./message_formats";
3
+ import { Altitude, Attitude, Battery, BatteryBQ40Z50, CalibrationState, CameraPanTiltZoom, CanisterHumidity, CanisterTemperature, ConnectedClient, ControlForce, ControllerHealth, ControlMode, CpProbe, CPUInfo, CPUTemperature, Depth, DiveTime, DroneInfo, DvlVelocity, ErrorFlags, FilterMessage, ForwardDistance, GenericServo, GuestPortCurrent, Imu, IperfStatus, KernelLogEntry, Laser, LatLongPosition, Lights, LogEntry, MagneticDeclination, MedusaSpectrometerData, MultibeamConfig, MultibeamDiscovery, MultibeamPing, MultibeamServo, Notification, NStreamers, ObjectDetections, PositionEstimate, RecordState, Reference, RemovableStorageDevice, StorageSpace, SurfaceUnitBatteryInfo, SurfaceUnitVersionInfo, SystemTime, ThicknessGauge, TiltAngle, TiltStabilizationState, TimeLapseState, WaterTemperature } from "./message_formats";
4
4
  import { MissionStatus, ReferenceAutoPilot } from "./mission_planning";
5
5
  /**
6
6
  * Telemetry
@@ -319,6 +319,30 @@ export interface LogEntryTel {
319
319
  /** Kernel log entry. */
320
320
  kernel?: KernelLogEntry | undefined;
321
321
  }
322
+ /** Object detections from a computer vision model. */
323
+ export interface ObjectDetectionsTel {
324
+ /** List of object detections from a video frame. */
325
+ objectDetections: ObjectDetections | undefined;
326
+ }
327
+ /**
328
+ * Turbidity filter settings telemetry message.
329
+ *
330
+ * Message is published when the filter settings are changed.
331
+ */
332
+ export interface TurbidityFilterTel {
333
+ /** Turbidity filter settings. */
334
+ turbidityFilter: FilterMessage | undefined;
335
+ }
336
+ /**
337
+ * Digital pan, tilt, and zoom telemetry from the main camera.
338
+ *
339
+ * Reports the actual pan, tilt, and zoom state of the camera.
340
+ * Only supported on X3 Ultra.
341
+ */
342
+ export interface CameraPanTiltZoomTel {
343
+ /** Current pan, tilt, and zoom state. */
344
+ cameraPanTiltZoom: CameraPanTiltZoom | undefined;
345
+ }
322
346
  export declare const AttitudeTel: MessageFns<AttitudeTel>;
323
347
  export declare const MagneticDeclinationTel: MessageFns<MagneticDeclinationTel>;
324
348
  export declare const AltitudeTel: MessageFns<AltitudeTel>;
@@ -378,6 +402,9 @@ export declare const MultibeamDiscoveryTel: MessageFns<MultibeamDiscoveryTel>;
378
402
  export declare const CPUInfoTel: MessageFns<CPUInfoTel>;
379
403
  export declare const SurfaceUnitTel: MessageFns<SurfaceUnitTel>;
380
404
  export declare const LogEntryTel: MessageFns<LogEntryTel>;
405
+ export declare const ObjectDetectionsTel: MessageFns<ObjectDetectionsTel>;
406
+ export declare const TurbidityFilterTel: MessageFns<TurbidityFilterTel>;
407
+ export declare const CameraPanTiltZoomTel: MessageFns<CameraPanTiltZoomTel>;
381
408
  type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
382
409
  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 {} ? {
383
410
  [K in keyof T]?: DeepPartial<T[K]>;
package/dist/telemetry.js CHANGED
@@ -6,7 +6,7 @@
6
6
  // source: telemetry.proto
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.Imu2Tel = exports.Imu1Tel = exports.CalibratedImuTel = exports.GuestPortCurrentTel = exports.MultibeamServoTel = exports.GenericServoTel = exports.ConnectedClientsTel = exports.AquaTrollSensorParametersTel = exports.AquaTrollSensorMetadataTel = exports.AquaTrollProbeMetadataTel = exports.CpProbeTel = exports.ThicknessGaugeTel = exports.ControlModeTel = exports.ErrorFlagsTel = exports.DroneInfoTel = exports.TiltAngleTel = exports.NStreamersTel = exports.IperfTel = exports.TiltStabilizationTel = exports.CalibrationStateTel = exports.DataStorageSpaceTel = exports.RemovableStorageTel = exports.VideoStorageSpaceTel = exports.CanisterBottomHumidityTel = exports.CanisterBottomTemperatureTel = exports.CPUTemperatureTel = exports.WaterTemperatureTel = exports.DroneTimeTel = exports.DiveTimeTel = exports.BatteryBQ40Z50Tel = exports.BatteryTel = exports.TimeLapseStateTel = exports.RecordStateTel = exports.PilotGPSPositionTel = exports.LaserTel = exports.GuestPortLightsTel = exports.LightsTel = exports.ControllerHealthTel = exports.ControlForceTel = exports.NotificationTel = exports.MissionStatusTel = exports.ReferenceAutoPilotTel = exports.ReferenceTel = exports.DepthTel = exports.PositionEstimateTel = exports.DvlVelocityTel = exports.ForwardDistanceTel = exports.AltitudeTel = exports.MagneticDeclinationTel = exports.AttitudeTel = void 0;
9
- exports.LogEntryTel = exports.SurfaceUnitTel = exports.CPUInfoTel = exports.MultibeamDiscoveryTel = exports.MultibeamConfigTel = exports.MultibeamPingTel = exports.MedusaSpectrometerDataTel = exports.CalibratedImuHpTel = exports.ImuHpTel = void 0;
9
+ exports.CameraPanTiltZoomTel = exports.TurbidityFilterTel = exports.ObjectDetectionsTel = exports.LogEntryTel = exports.SurfaceUnitTel = exports.CPUInfoTel = exports.MultibeamDiscoveryTel = exports.MultibeamConfigTel = exports.MultibeamPingTel = exports.MedusaSpectrometerDataTel = exports.CalibratedImuHpTel = exports.ImuHpTel = void 0;
10
10
  /* eslint-disable */
11
11
  const wire_1 = require("@bufbuild/protobuf/wire");
12
12
  const aquatroll_1 = require("./aquatroll");
@@ -3274,6 +3274,173 @@ exports.LogEntryTel = {
3274
3274
  return message;
3275
3275
  },
3276
3276
  };
3277
+ function createBaseObjectDetectionsTel() {
3278
+ return { objectDetections: undefined };
3279
+ }
3280
+ exports.ObjectDetectionsTel = {
3281
+ encode(message, writer = new wire_1.BinaryWriter()) {
3282
+ if (message.objectDetections !== undefined) {
3283
+ message_formats_1.ObjectDetections.encode(message.objectDetections, writer.uint32(10).fork()).join();
3284
+ }
3285
+ return writer;
3286
+ },
3287
+ decode(input, length) {
3288
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
3289
+ const end = length === undefined ? reader.len : reader.pos + length;
3290
+ const message = createBaseObjectDetectionsTel();
3291
+ while (reader.pos < end) {
3292
+ const tag = reader.uint32();
3293
+ switch (tag >>> 3) {
3294
+ case 1: {
3295
+ if (tag !== 10) {
3296
+ break;
3297
+ }
3298
+ message.objectDetections = message_formats_1.ObjectDetections.decode(reader, reader.uint32());
3299
+ continue;
3300
+ }
3301
+ }
3302
+ if ((tag & 7) === 4 || tag === 0) {
3303
+ break;
3304
+ }
3305
+ reader.skip(tag & 7);
3306
+ }
3307
+ return message;
3308
+ },
3309
+ fromJSON(object) {
3310
+ return {
3311
+ objectDetections: isSet(object.objectDetections) ? message_formats_1.ObjectDetections.fromJSON(object.objectDetections) : undefined,
3312
+ };
3313
+ },
3314
+ toJSON(message) {
3315
+ const obj = {};
3316
+ if (message.objectDetections !== undefined) {
3317
+ obj.objectDetections = message_formats_1.ObjectDetections.toJSON(message.objectDetections);
3318
+ }
3319
+ return obj;
3320
+ },
3321
+ create(base) {
3322
+ return exports.ObjectDetectionsTel.fromPartial(base ?? {});
3323
+ },
3324
+ fromPartial(object) {
3325
+ const message = createBaseObjectDetectionsTel();
3326
+ message.objectDetections = (object.objectDetections !== undefined && object.objectDetections !== null)
3327
+ ? message_formats_1.ObjectDetections.fromPartial(object.objectDetections)
3328
+ : undefined;
3329
+ return message;
3330
+ },
3331
+ };
3332
+ function createBaseTurbidityFilterTel() {
3333
+ return { turbidityFilter: undefined };
3334
+ }
3335
+ exports.TurbidityFilterTel = {
3336
+ encode(message, writer = new wire_1.BinaryWriter()) {
3337
+ if (message.turbidityFilter !== undefined) {
3338
+ message_formats_1.FilterMessage.encode(message.turbidityFilter, writer.uint32(10).fork()).join();
3339
+ }
3340
+ return writer;
3341
+ },
3342
+ decode(input, length) {
3343
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
3344
+ const end = length === undefined ? reader.len : reader.pos + length;
3345
+ const message = createBaseTurbidityFilterTel();
3346
+ while (reader.pos < end) {
3347
+ const tag = reader.uint32();
3348
+ switch (tag >>> 3) {
3349
+ case 1: {
3350
+ if (tag !== 10) {
3351
+ break;
3352
+ }
3353
+ message.turbidityFilter = message_formats_1.FilterMessage.decode(reader, reader.uint32());
3354
+ continue;
3355
+ }
3356
+ }
3357
+ if ((tag & 7) === 4 || tag === 0) {
3358
+ break;
3359
+ }
3360
+ reader.skip(tag & 7);
3361
+ }
3362
+ return message;
3363
+ },
3364
+ fromJSON(object) {
3365
+ return {
3366
+ turbidityFilter: isSet(object.turbidityFilter) ? message_formats_1.FilterMessage.fromJSON(object.turbidityFilter) : undefined,
3367
+ };
3368
+ },
3369
+ toJSON(message) {
3370
+ const obj = {};
3371
+ if (message.turbidityFilter !== undefined) {
3372
+ obj.turbidityFilter = message_formats_1.FilterMessage.toJSON(message.turbidityFilter);
3373
+ }
3374
+ return obj;
3375
+ },
3376
+ create(base) {
3377
+ return exports.TurbidityFilterTel.fromPartial(base ?? {});
3378
+ },
3379
+ fromPartial(object) {
3380
+ const message = createBaseTurbidityFilterTel();
3381
+ message.turbidityFilter = (object.turbidityFilter !== undefined && object.turbidityFilter !== null)
3382
+ ? message_formats_1.FilterMessage.fromPartial(object.turbidityFilter)
3383
+ : undefined;
3384
+ return message;
3385
+ },
3386
+ };
3387
+ function createBaseCameraPanTiltZoomTel() {
3388
+ return { cameraPanTiltZoom: undefined };
3389
+ }
3390
+ exports.CameraPanTiltZoomTel = {
3391
+ encode(message, writer = new wire_1.BinaryWriter()) {
3392
+ if (message.cameraPanTiltZoom !== undefined) {
3393
+ message_formats_1.CameraPanTiltZoom.encode(message.cameraPanTiltZoom, writer.uint32(10).fork()).join();
3394
+ }
3395
+ return writer;
3396
+ },
3397
+ decode(input, length) {
3398
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
3399
+ const end = length === undefined ? reader.len : reader.pos + length;
3400
+ const message = createBaseCameraPanTiltZoomTel();
3401
+ while (reader.pos < end) {
3402
+ const tag = reader.uint32();
3403
+ switch (tag >>> 3) {
3404
+ case 1: {
3405
+ if (tag !== 10) {
3406
+ break;
3407
+ }
3408
+ message.cameraPanTiltZoom = message_formats_1.CameraPanTiltZoom.decode(reader, reader.uint32());
3409
+ continue;
3410
+ }
3411
+ }
3412
+ if ((tag & 7) === 4 || tag === 0) {
3413
+ break;
3414
+ }
3415
+ reader.skip(tag & 7);
3416
+ }
3417
+ return message;
3418
+ },
3419
+ fromJSON(object) {
3420
+ return {
3421
+ cameraPanTiltZoom: isSet(object.cameraPanTiltZoom)
3422
+ ? message_formats_1.CameraPanTiltZoom.fromJSON(object.cameraPanTiltZoom)
3423
+ : undefined,
3424
+ };
3425
+ },
3426
+ toJSON(message) {
3427
+ const obj = {};
3428
+ if (message.cameraPanTiltZoom !== undefined) {
3429
+ obj.cameraPanTiltZoom = message_formats_1.CameraPanTiltZoom.toJSON(message.cameraPanTiltZoom);
3430
+ }
3431
+ return obj;
3432
+ },
3433
+ create(base) {
3434
+ return exports.CameraPanTiltZoomTel.fromPartial(base ?? {});
3435
+ },
3436
+ fromPartial(object) {
3437
+ const message = createBaseCameraPanTiltZoomTel();
3438
+ message.cameraPanTiltZoom = (object.cameraPanTiltZoom !== undefined && object.cameraPanTiltZoom !== null)
3439
+ ? message_formats_1.CameraPanTiltZoom.fromPartial(object.cameraPanTiltZoom)
3440
+ : undefined;
3441
+ return message;
3442
+ },
3443
+ };
3277
3444
  const gt = (() => {
3278
3445
  if (typeof globalThis !== "undefined") {
3279
3446
  return globalThis;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blueyerobotics/protocol-definitions",
3
- "version": "3.2.0-43e7a52a",
3
+ "version": "3.2.0-479898f9",
4
4
  "license": "LGPL-3.0-only",
5
5
  "description": "TypeScript definitions for Blueye Robotics protocols",
6
6
  "repository": {