@blueyerobotics/protocol-definitions 3.2.0-10007c3e → 3.2.0-28a7294b

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.
@@ -7,7 +7,7 @@
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.AutoPilotHeaveState = exports.AutoPilotSurgeYawState = exports.WeatherVaningState = exports.StationKeepingState = exports.AutoAltitudeState = exports.AutoDepthState = exports.AutoHeadingState = exports.ConnectionDuration = exports.LatLongPosition = exports.Laser = exports.Lights = exports.MotionInput = exports.KernelLogEntry_KeyValuePair = exports.KernelLogEntry = exports.LogEntry = exports.BinlogRecord = exports.SurfaceUnitBatteryInfo_ChargeStatus = exports.MultibeamConfig_MaximumNumberOfBeams = exports.MultibeamConfig_PingRate = exports.CalibrationState_Status = exports.RemovableStorageDevice_Status = exports.BatteryBQ40Z50_BatteryStatus_BatteryError = exports.PingerConfiguration_MountingDirection = exports.KernelLogEntry_KernelLogLevel = exports.LogEntry_LogLevel = exports.MultibeamFrequencyMode = exports.GuestPortError = exports.GuestPortDetachStatus = exports.NavigationSensorID = exports.GuestPortNumber = exports.GuestPortDeviceID = exports.FontSize = exports.ThicknessUnit = exports.DepthUnit = exports.LogoType = exports.TemperatureUnit = exports.StreamingProtocol = exports.Camera = exports.Framerate = exports.Resolution = exports.PressureSensorType = exports.Model = exports.StorageLocation = exports.NotificationLevel = exports.NotificationType = exports.ResetCoordinateSource = exports.HeadingMode = exports.HeadingSource = exports.LocationSource = exports.IntervalType = void 0;
9
9
  exports.CameraParameters = exports.ErrorFlags = exports.DroneInfo = exports.TiltVelocity = exports.TiltAngle = exports.NStreamers = exports.IperfStatus = exports.CalibrationState = exports.RemovableStorageErrorFlags = exports.RemovableStorageDevice = exports.StoragePartition = exports.StorageSpace = exports.RecordOn = exports.DiveTime = exports.ControllerHealth = exports.ControlForce = exports.Notification = exports.Reference = exports.Depth = exports.DvlVelocity = exports.DvlTransducer = exports.ResetPositionSettings = exports.PositionEstimate = exports.ForwardDistance = exports.Altitude = exports.MagneticDeclination = exports.Attitude = exports.BatteryBQ40Z50_BatteryChargingEvents = exports.BatteryBQ40Z50_BatterySafetyEvents = exports.BatteryBQ40Z50_BatteryLifetimes_CellVoltages = exports.BatteryBQ40Z50_BatteryLifetimes = exports.BatteryBQ40Z50_BatteryStatus = exports.BatteryBQ40Z50_Temperature = exports.BatteryBQ40Z50_Voltage = exports.BatteryBQ40Z50 = exports.Battery = exports.CanisterHumidity = exports.CanisterTemperature = exports.CPUTemperature = exports.WaterTemperature = exports.PingerConfiguration = exports.WaterDensity = exports.TimeLapseState = exports.RecordState = exports.ConnectedClient = exports.ClientInfo = exports.GripperVelocities = exports.SystemTime = exports.TiltStabilizationState = exports.ControlMode = void 0;
10
- exports.SurfaceUnitVersionInfo = exports.SurfaceUnitBatteryInfo = exports.CPUInfo = exports.PersistentStorageSettings = exports.MutltibeamRecordingIndex = exports.MultibeamFrameOffset = exports.MultibeamErrorFlags = exports.MultibeamDiscovery = exports.MultibeamConfig = exports.MultibeamPing = exports.MedusaSpectrometerData = exports.Imu = exports.Vector3 = exports.GuestPortCurrent = exports.MultibeamServo = exports.GenericServo = exports.CpProbe = exports.ThicknessGauge = exports.GuestPortRestartInfo = exports.GuestPortInfo = exports.GuestPortConnectorInfo = exports.GuestPortDeviceList = exports.GuestPortDevice = exports.NavigationSensorStatus = exports.OverlayParameters = void 0;
10
+ exports.OperatorInfo = exports.CameraPanTiltZoom = exports.FilterMessage = exports.ObjectDetections = exports.ObjectDetection = exports.BoundingBox = exports.SurfaceUnitVersionInfo = exports.SurfaceUnitBatteryInfo = exports.CPUInfo = exports.PersistentStorageSettings = exports.MutltibeamRecordingIndex = exports.MultibeamFrameOffset = exports.MultibeamErrorFlags = exports.MultibeamDiscovery = exports.MultibeamConfig = exports.MultibeamPing = exports.MedusaSpectrometerData = exports.Imu = exports.Vector3 = exports.GuestPortCurrent = exports.MultibeamServo = exports.GenericServo = exports.CpProbe = exports.ThicknessGauge = exports.GuestPortRestartInfo = exports.GuestPortInfo = exports.GuestPortConnectorInfo = exports.GuestPortDeviceList = exports.GuestPortDevice = exports.NavigationSensorStatus = exports.OverlayParameters = void 0;
11
11
  exports.intervalTypeFromJSON = intervalTypeFromJSON;
12
12
  exports.intervalTypeToJSON = intervalTypeToJSON;
13
13
  exports.locationSourceFromJSON = locationSourceFromJSON;
@@ -657,6 +657,8 @@ var Model;
657
657
  Model[Model["MODEL_X3"] = 3] = "MODEL_X3";
658
658
  /** MODEL_X3_ULTRA - Blueye X3 Ultra. */
659
659
  Model[Model["MODEL_X3_ULTRA"] = 6] = "MODEL_X3_ULTRA";
660
+ /** MODEL_X7 - Blueye X7. */
661
+ Model[Model["MODEL_X7"] = 7] = "MODEL_X7";
660
662
  /** MODEL_NEXT - Blueye ? */
661
663
  Model[Model["MODEL_NEXT"] = 5] = "MODEL_NEXT";
662
664
  Model[Model["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
@@ -681,6 +683,9 @@ function modelFromJSON(object) {
681
683
  case 6:
682
684
  case "MODEL_X3_ULTRA":
683
685
  return Model.MODEL_X3_ULTRA;
686
+ case 7:
687
+ case "MODEL_X7":
688
+ return Model.MODEL_X7;
684
689
  case 5:
685
690
  case "MODEL_NEXT":
686
691
  return Model.MODEL_NEXT;
@@ -704,6 +709,8 @@ function modelToJSON(object) {
704
709
  return "MODEL_X3";
705
710
  case Model.MODEL_X3_ULTRA:
706
711
  return "MODEL_X3_ULTRA";
712
+ case Model.MODEL_X7:
713
+ return "MODEL_X7";
707
714
  case Model.MODEL_NEXT:
708
715
  return "MODEL_NEXT";
709
716
  case Model.UNRECOGNIZED:
@@ -779,6 +786,8 @@ var Resolution;
779
786
  Resolution[Resolution["RESOLUTION_FULLHD_1080P"] = 1] = "RESOLUTION_FULLHD_1080P";
780
787
  /** RESOLUTION_UHD_4K - 4K Ultra HD (3840x2160, Only supported on X3 Ultra). */
781
788
  Resolution[Resolution["RESOLUTION_UHD_4K"] = 3] = "RESOLUTION_UHD_4K";
789
+ /** RESOLUTION_QHD_2K - 2K QHD (2560x1440, Only supported on X3 Ultra). */
790
+ Resolution[Resolution["RESOLUTION_QHD_2K"] = 5] = "RESOLUTION_QHD_2K";
782
791
  Resolution[Resolution["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
783
792
  })(Resolution || (exports.Resolution = Resolution = {}));
784
793
  function resolutionFromJSON(object) {
@@ -798,6 +807,9 @@ function resolutionFromJSON(object) {
798
807
  case 3:
799
808
  case "RESOLUTION_UHD_4K":
800
809
  return Resolution.RESOLUTION_UHD_4K;
810
+ case 5:
811
+ case "RESOLUTION_QHD_2K":
812
+ return Resolution.RESOLUTION_QHD_2K;
801
813
  case -1:
802
814
  case "UNRECOGNIZED":
803
815
  default:
@@ -816,12 +828,19 @@ function resolutionToJSON(object) {
816
828
  return "RESOLUTION_FULLHD_1080P";
817
829
  case Resolution.RESOLUTION_UHD_4K:
818
830
  return "RESOLUTION_UHD_4K";
831
+ case Resolution.RESOLUTION_QHD_2K:
832
+ return "RESOLUTION_QHD_2K";
819
833
  case Resolution.UNRECOGNIZED:
820
834
  default:
821
835
  return "UNRECOGNIZED";
822
836
  }
823
837
  }
824
- /** Available camera frame rates. */
838
+ /**
839
+ * Available camera frame rates.
840
+ *
841
+ * If the requested frame rate is higher than what is supported at the current resolution,
842
+ * the frame rate will be reduced while the resolution is respected.
843
+ */
825
844
  var Framerate;
826
845
  (function (Framerate) {
827
846
  /** FRAMERATE_UNSPECIFIED - Framerate not specified. */
@@ -830,6 +849,8 @@ var Framerate;
830
849
  Framerate[Framerate["FRAMERATE_FPS_30"] = 1] = "FRAMERATE_FPS_30";
831
850
  /** FRAMERATE_FPS_25 - 25 frames per second. (Only supported on Pioneer/Pro/X1/X3) */
832
851
  Framerate[Framerate["FRAMERATE_FPS_25"] = 2] = "FRAMERATE_FPS_25";
852
+ /** FRAMERATE_FPS_60 - 60 frames per second. (Only supported on X3 Ultra at QHD, 1080p and 720p) */
853
+ Framerate[Framerate["FRAMERATE_FPS_60"] = 3] = "FRAMERATE_FPS_60";
833
854
  Framerate[Framerate["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
834
855
  })(Framerate || (exports.Framerate = Framerate = {}));
835
856
  function framerateFromJSON(object) {
@@ -843,6 +864,9 @@ function framerateFromJSON(object) {
843
864
  case 2:
844
865
  case "FRAMERATE_FPS_25":
845
866
  return Framerate.FRAMERATE_FPS_25;
867
+ case 3:
868
+ case "FRAMERATE_FPS_60":
869
+ return Framerate.FRAMERATE_FPS_60;
846
870
  case -1:
847
871
  case "UNRECOGNIZED":
848
872
  default:
@@ -857,6 +881,8 @@ function framerateToJSON(object) {
857
881
  return "FRAMERATE_FPS_30";
858
882
  case Framerate.FRAMERATE_FPS_25:
859
883
  return "FRAMERATE_FPS_25";
884
+ case Framerate.FRAMERATE_FPS_60:
885
+ return "FRAMERATE_FPS_60";
860
886
  case Framerate.UNRECOGNIZED:
861
887
  default:
862
888
  return "UNRECOGNIZED";
@@ -13387,6 +13413,508 @@ exports.SurfaceUnitVersionInfo = {
13387
13413
  return message;
13388
13414
  },
13389
13415
  };
13416
+ function createBaseBoundingBox() {
13417
+ return { x: 0, y: 0, width: 0, height: 0 };
13418
+ }
13419
+ exports.BoundingBox = {
13420
+ encode(message, writer = new wire_1.BinaryWriter()) {
13421
+ if (message.x !== 0) {
13422
+ writer.uint32(8).uint32(message.x);
13423
+ }
13424
+ if (message.y !== 0) {
13425
+ writer.uint32(16).uint32(message.y);
13426
+ }
13427
+ if (message.width !== 0) {
13428
+ writer.uint32(24).uint32(message.width);
13429
+ }
13430
+ if (message.height !== 0) {
13431
+ writer.uint32(32).uint32(message.height);
13432
+ }
13433
+ return writer;
13434
+ },
13435
+ decode(input, length) {
13436
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
13437
+ const end = length === undefined ? reader.len : reader.pos + length;
13438
+ const message = createBaseBoundingBox();
13439
+ while (reader.pos < end) {
13440
+ const tag = reader.uint32();
13441
+ switch (tag >>> 3) {
13442
+ case 1: {
13443
+ if (tag !== 8) {
13444
+ break;
13445
+ }
13446
+ message.x = reader.uint32();
13447
+ continue;
13448
+ }
13449
+ case 2: {
13450
+ if (tag !== 16) {
13451
+ break;
13452
+ }
13453
+ message.y = reader.uint32();
13454
+ continue;
13455
+ }
13456
+ case 3: {
13457
+ if (tag !== 24) {
13458
+ break;
13459
+ }
13460
+ message.width = reader.uint32();
13461
+ continue;
13462
+ }
13463
+ case 4: {
13464
+ if (tag !== 32) {
13465
+ break;
13466
+ }
13467
+ message.height = reader.uint32();
13468
+ continue;
13469
+ }
13470
+ }
13471
+ if ((tag & 7) === 4 || tag === 0) {
13472
+ break;
13473
+ }
13474
+ reader.skip(tag & 7);
13475
+ }
13476
+ return message;
13477
+ },
13478
+ fromJSON(object) {
13479
+ return {
13480
+ x: isSet(object.x) ? gt.Number(object.x) : 0,
13481
+ y: isSet(object.y) ? gt.Number(object.y) : 0,
13482
+ width: isSet(object.width) ? gt.Number(object.width) : 0,
13483
+ height: isSet(object.height) ? gt.Number(object.height) : 0,
13484
+ };
13485
+ },
13486
+ toJSON(message) {
13487
+ const obj = {};
13488
+ if (message.x !== 0) {
13489
+ obj.x = Math.round(message.x);
13490
+ }
13491
+ if (message.y !== 0) {
13492
+ obj.y = Math.round(message.y);
13493
+ }
13494
+ if (message.width !== 0) {
13495
+ obj.width = Math.round(message.width);
13496
+ }
13497
+ if (message.height !== 0) {
13498
+ obj.height = Math.round(message.height);
13499
+ }
13500
+ return obj;
13501
+ },
13502
+ create(base) {
13503
+ return exports.BoundingBox.fromPartial(base ?? {});
13504
+ },
13505
+ fromPartial(object) {
13506
+ const message = createBaseBoundingBox();
13507
+ message.x = object.x ?? 0;
13508
+ message.y = object.y ?? 0;
13509
+ message.width = object.width ?? 0;
13510
+ message.height = object.height ?? 0;
13511
+ return message;
13512
+ },
13513
+ };
13514
+ function createBaseObjectDetection() {
13515
+ return { boundingBox: undefined, confidence: 0, classId: 0, className: "", trackingId: 0 };
13516
+ }
13517
+ exports.ObjectDetection = {
13518
+ encode(message, writer = new wire_1.BinaryWriter()) {
13519
+ if (message.boundingBox !== undefined) {
13520
+ exports.BoundingBox.encode(message.boundingBox, writer.uint32(10).fork()).join();
13521
+ }
13522
+ if (message.confidence !== 0) {
13523
+ writer.uint32(21).float(message.confidence);
13524
+ }
13525
+ if (message.classId !== 0) {
13526
+ writer.uint32(24).uint32(message.classId);
13527
+ }
13528
+ if (message.className !== "") {
13529
+ writer.uint32(34).string(message.className);
13530
+ }
13531
+ if (message.trackingId !== 0) {
13532
+ writer.uint32(40).uint32(message.trackingId);
13533
+ }
13534
+ return writer;
13535
+ },
13536
+ decode(input, length) {
13537
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
13538
+ const end = length === undefined ? reader.len : reader.pos + length;
13539
+ const message = createBaseObjectDetection();
13540
+ while (reader.pos < end) {
13541
+ const tag = reader.uint32();
13542
+ switch (tag >>> 3) {
13543
+ case 1: {
13544
+ if (tag !== 10) {
13545
+ break;
13546
+ }
13547
+ message.boundingBox = exports.BoundingBox.decode(reader, reader.uint32());
13548
+ continue;
13549
+ }
13550
+ case 2: {
13551
+ if (tag !== 21) {
13552
+ break;
13553
+ }
13554
+ message.confidence = reader.float();
13555
+ continue;
13556
+ }
13557
+ case 3: {
13558
+ if (tag !== 24) {
13559
+ break;
13560
+ }
13561
+ message.classId = reader.uint32();
13562
+ continue;
13563
+ }
13564
+ case 4: {
13565
+ if (tag !== 34) {
13566
+ break;
13567
+ }
13568
+ message.className = reader.string();
13569
+ continue;
13570
+ }
13571
+ case 5: {
13572
+ if (tag !== 40) {
13573
+ break;
13574
+ }
13575
+ message.trackingId = reader.uint32();
13576
+ continue;
13577
+ }
13578
+ }
13579
+ if ((tag & 7) === 4 || tag === 0) {
13580
+ break;
13581
+ }
13582
+ reader.skip(tag & 7);
13583
+ }
13584
+ return message;
13585
+ },
13586
+ fromJSON(object) {
13587
+ return {
13588
+ boundingBox: isSet(object.boundingBox) ? exports.BoundingBox.fromJSON(object.boundingBox) : undefined,
13589
+ confidence: isSet(object.confidence) ? gt.Number(object.confidence) : 0,
13590
+ classId: isSet(object.classId) ? gt.Number(object.classId) : 0,
13591
+ className: isSet(object.className) ? gt.String(object.className) : "",
13592
+ trackingId: isSet(object.trackingId) ? gt.Number(object.trackingId) : 0,
13593
+ };
13594
+ },
13595
+ toJSON(message) {
13596
+ const obj = {};
13597
+ if (message.boundingBox !== undefined) {
13598
+ obj.boundingBox = exports.BoundingBox.toJSON(message.boundingBox);
13599
+ }
13600
+ if (message.confidence !== 0) {
13601
+ obj.confidence = message.confidence;
13602
+ }
13603
+ if (message.classId !== 0) {
13604
+ obj.classId = Math.round(message.classId);
13605
+ }
13606
+ if (message.className !== "") {
13607
+ obj.className = message.className;
13608
+ }
13609
+ if (message.trackingId !== 0) {
13610
+ obj.trackingId = Math.round(message.trackingId);
13611
+ }
13612
+ return obj;
13613
+ },
13614
+ create(base) {
13615
+ return exports.ObjectDetection.fromPartial(base ?? {});
13616
+ },
13617
+ fromPartial(object) {
13618
+ const message = createBaseObjectDetection();
13619
+ message.boundingBox = (object.boundingBox !== undefined && object.boundingBox !== null)
13620
+ ? exports.BoundingBox.fromPartial(object.boundingBox)
13621
+ : undefined;
13622
+ message.confidence = object.confidence ?? 0;
13623
+ message.classId = object.classId ?? 0;
13624
+ message.className = object.className ?? "";
13625
+ message.trackingId = object.trackingId ?? 0;
13626
+ return message;
13627
+ },
13628
+ };
13629
+ function createBaseObjectDetections() {
13630
+ return { detections: [], camera: 0 };
13631
+ }
13632
+ exports.ObjectDetections = {
13633
+ encode(message, writer = new wire_1.BinaryWriter()) {
13634
+ for (const v of message.detections) {
13635
+ exports.ObjectDetection.encode(v, writer.uint32(10).fork()).join();
13636
+ }
13637
+ if (message.camera !== 0) {
13638
+ writer.uint32(16).int32(message.camera);
13639
+ }
13640
+ return writer;
13641
+ },
13642
+ decode(input, length) {
13643
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
13644
+ const end = length === undefined ? reader.len : reader.pos + length;
13645
+ const message = createBaseObjectDetections();
13646
+ while (reader.pos < end) {
13647
+ const tag = reader.uint32();
13648
+ switch (tag >>> 3) {
13649
+ case 1: {
13650
+ if (tag !== 10) {
13651
+ break;
13652
+ }
13653
+ message.detections.push(exports.ObjectDetection.decode(reader, reader.uint32()));
13654
+ continue;
13655
+ }
13656
+ case 2: {
13657
+ if (tag !== 16) {
13658
+ break;
13659
+ }
13660
+ message.camera = reader.int32();
13661
+ continue;
13662
+ }
13663
+ }
13664
+ if ((tag & 7) === 4 || tag === 0) {
13665
+ break;
13666
+ }
13667
+ reader.skip(tag & 7);
13668
+ }
13669
+ return message;
13670
+ },
13671
+ fromJSON(object) {
13672
+ return {
13673
+ detections: gt.Array.isArray(object?.detections)
13674
+ ? object.detections.map((e) => exports.ObjectDetection.fromJSON(e))
13675
+ : [],
13676
+ camera: isSet(object.camera) ? cameraFromJSON(object.camera) : 0,
13677
+ };
13678
+ },
13679
+ toJSON(message) {
13680
+ const obj = {};
13681
+ if (message.detections?.length) {
13682
+ obj.detections = message.detections.map((e) => exports.ObjectDetection.toJSON(e));
13683
+ }
13684
+ if (message.camera !== 0) {
13685
+ obj.camera = cameraToJSON(message.camera);
13686
+ }
13687
+ return obj;
13688
+ },
13689
+ create(base) {
13690
+ return exports.ObjectDetections.fromPartial(base ?? {});
13691
+ },
13692
+ fromPartial(object) {
13693
+ const message = createBaseObjectDetections();
13694
+ message.detections = object.detections?.map((e) => exports.ObjectDetection.fromPartial(e)) || [];
13695
+ message.camera = object.camera ?? 0;
13696
+ return message;
13697
+ },
13698
+ };
13699
+ function createBaseFilterMessage() {
13700
+ return { enabled: false, intensity: 0 };
13701
+ }
13702
+ exports.FilterMessage = {
13703
+ encode(message, writer = new wire_1.BinaryWriter()) {
13704
+ if (message.enabled !== false) {
13705
+ writer.uint32(8).bool(message.enabled);
13706
+ }
13707
+ if (message.intensity !== 0) {
13708
+ writer.uint32(21).float(message.intensity);
13709
+ }
13710
+ return writer;
13711
+ },
13712
+ decode(input, length) {
13713
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
13714
+ const end = length === undefined ? reader.len : reader.pos + length;
13715
+ const message = createBaseFilterMessage();
13716
+ while (reader.pos < end) {
13717
+ const tag = reader.uint32();
13718
+ switch (tag >>> 3) {
13719
+ case 1: {
13720
+ if (tag !== 8) {
13721
+ break;
13722
+ }
13723
+ message.enabled = reader.bool();
13724
+ continue;
13725
+ }
13726
+ case 2: {
13727
+ if (tag !== 21) {
13728
+ break;
13729
+ }
13730
+ message.intensity = reader.float();
13731
+ continue;
13732
+ }
13733
+ }
13734
+ if ((tag & 7) === 4 || tag === 0) {
13735
+ break;
13736
+ }
13737
+ reader.skip(tag & 7);
13738
+ }
13739
+ return message;
13740
+ },
13741
+ fromJSON(object) {
13742
+ return {
13743
+ enabled: isSet(object.enabled) ? gt.Boolean(object.enabled) : false,
13744
+ intensity: isSet(object.intensity) ? gt.Number(object.intensity) : 0,
13745
+ };
13746
+ },
13747
+ toJSON(message) {
13748
+ const obj = {};
13749
+ if (message.enabled !== false) {
13750
+ obj.enabled = message.enabled;
13751
+ }
13752
+ if (message.intensity !== 0) {
13753
+ obj.intensity = message.intensity;
13754
+ }
13755
+ return obj;
13756
+ },
13757
+ create(base) {
13758
+ return exports.FilterMessage.fromPartial(base ?? {});
13759
+ },
13760
+ fromPartial(object) {
13761
+ const message = createBaseFilterMessage();
13762
+ message.enabled = object.enabled ?? false;
13763
+ message.intensity = object.intensity ?? 0;
13764
+ return message;
13765
+ },
13766
+ };
13767
+ function createBaseCameraPanTiltZoom() {
13768
+ return { pan: 0, tilt: 0, zoom: 0 };
13769
+ }
13770
+ exports.CameraPanTiltZoom = {
13771
+ encode(message, writer = new wire_1.BinaryWriter()) {
13772
+ if (message.pan !== 0) {
13773
+ writer.uint32(13).float(message.pan);
13774
+ }
13775
+ if (message.tilt !== 0) {
13776
+ writer.uint32(21).float(message.tilt);
13777
+ }
13778
+ if (message.zoom !== 0) {
13779
+ writer.uint32(29).float(message.zoom);
13780
+ }
13781
+ return writer;
13782
+ },
13783
+ decode(input, length) {
13784
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
13785
+ const end = length === undefined ? reader.len : reader.pos + length;
13786
+ const message = createBaseCameraPanTiltZoom();
13787
+ while (reader.pos < end) {
13788
+ const tag = reader.uint32();
13789
+ switch (tag >>> 3) {
13790
+ case 1: {
13791
+ if (tag !== 13) {
13792
+ break;
13793
+ }
13794
+ message.pan = reader.float();
13795
+ continue;
13796
+ }
13797
+ case 2: {
13798
+ if (tag !== 21) {
13799
+ break;
13800
+ }
13801
+ message.tilt = reader.float();
13802
+ continue;
13803
+ }
13804
+ case 3: {
13805
+ if (tag !== 29) {
13806
+ break;
13807
+ }
13808
+ message.zoom = reader.float();
13809
+ continue;
13810
+ }
13811
+ }
13812
+ if ((tag & 7) === 4 || tag === 0) {
13813
+ break;
13814
+ }
13815
+ reader.skip(tag & 7);
13816
+ }
13817
+ return message;
13818
+ },
13819
+ fromJSON(object) {
13820
+ return {
13821
+ pan: isSet(object.pan) ? gt.Number(object.pan) : 0,
13822
+ tilt: isSet(object.tilt) ? gt.Number(object.tilt) : 0,
13823
+ zoom: isSet(object.zoom) ? gt.Number(object.zoom) : 0,
13824
+ };
13825
+ },
13826
+ toJSON(message) {
13827
+ const obj = {};
13828
+ if (message.pan !== 0) {
13829
+ obj.pan = message.pan;
13830
+ }
13831
+ if (message.tilt !== 0) {
13832
+ obj.tilt = message.tilt;
13833
+ }
13834
+ if (message.zoom !== 0) {
13835
+ obj.zoom = message.zoom;
13836
+ }
13837
+ return obj;
13838
+ },
13839
+ create(base) {
13840
+ return exports.CameraPanTiltZoom.fromPartial(base ?? {});
13841
+ },
13842
+ fromPartial(object) {
13843
+ const message = createBaseCameraPanTiltZoom();
13844
+ message.pan = object.pan ?? 0;
13845
+ message.tilt = object.tilt ?? 0;
13846
+ message.zoom = object.zoom ?? 0;
13847
+ return message;
13848
+ },
13849
+ };
13850
+ function createBaseOperatorInfo() {
13851
+ return { name: "", email: "" };
13852
+ }
13853
+ exports.OperatorInfo = {
13854
+ encode(message, writer = new wire_1.BinaryWriter()) {
13855
+ if (message.name !== "") {
13856
+ writer.uint32(10).string(message.name);
13857
+ }
13858
+ if (message.email !== "") {
13859
+ writer.uint32(18).string(message.email);
13860
+ }
13861
+ return writer;
13862
+ },
13863
+ decode(input, length) {
13864
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
13865
+ const end = length === undefined ? reader.len : reader.pos + length;
13866
+ const message = createBaseOperatorInfo();
13867
+ while (reader.pos < end) {
13868
+ const tag = reader.uint32();
13869
+ switch (tag >>> 3) {
13870
+ case 1: {
13871
+ if (tag !== 10) {
13872
+ break;
13873
+ }
13874
+ message.name = reader.string();
13875
+ continue;
13876
+ }
13877
+ case 2: {
13878
+ if (tag !== 18) {
13879
+ break;
13880
+ }
13881
+ message.email = reader.string();
13882
+ continue;
13883
+ }
13884
+ }
13885
+ if ((tag & 7) === 4 || tag === 0) {
13886
+ break;
13887
+ }
13888
+ reader.skip(tag & 7);
13889
+ }
13890
+ return message;
13891
+ },
13892
+ fromJSON(object) {
13893
+ return {
13894
+ name: isSet(object.name) ? gt.String(object.name) : "",
13895
+ email: isSet(object.email) ? gt.String(object.email) : "",
13896
+ };
13897
+ },
13898
+ toJSON(message) {
13899
+ const obj = {};
13900
+ if (message.name !== "") {
13901
+ obj.name = message.name;
13902
+ }
13903
+ if (message.email !== "") {
13904
+ obj.email = message.email;
13905
+ }
13906
+ return obj;
13907
+ },
13908
+ create(base) {
13909
+ return exports.OperatorInfo.fromPartial(base ?? {});
13910
+ },
13911
+ fromPartial(object) {
13912
+ const message = createBaseOperatorInfo();
13913
+ message.name = object.name ?? "";
13914
+ message.email = object.email ?? "";
13915
+ return message;
13916
+ },
13917
+ };
13390
13918
  const gt = (() => {
13391
13919
  if (typeof globalThis !== "undefined") {
13392
13920
  return globalThis;
@@ -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>;