text: // source: sensoris/protobuf/types/source.proto
  /**
   * @fileoverview
   * @enhanceable
   * @suppress {messageConventions} JS Compiler reports an error if a variable or
   *     field starts with 'MSG_' and isn't a translatable message.
   * @public
   */
  // GENERATED CODE -- DO NOT EDIT!
  
  var jspb = require('google-protobuf');
  var goog = jspb;
  var global = Function('return this')();
  
  var google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js');
  goog.object.extend(proto, google_protobuf_any_pb);
  var google_protobuf_wrappers_pb = require('google-protobuf/google/protobuf/wrappers_pb.js');
  goog.object.extend(proto, google_protobuf_wrappers_pb);
  var sensoris_protobuf_types_base_pb = require('../../../sensoris/protobuf/types/base_pb.js');
  goog.object.extend(proto, sensoris_protobuf_types_base_pb);
  var sensoris_protobuf_types_spatial_pb = require('../../../sensoris/protobuf/types/spatial_pb.js');
  goog.object.extend(proto, sensoris_protobuf_types_spatial_pb);
  goog.exportSymbol('proto.sensoris.protobuf.types.source.NavigationSatelliteSystem', null, global);
  goog.exportSymbol('proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.GroundBasedAugmentationSystem', null, global);
  goog.exportSymbol('proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.SatelliteBasedAugmentationSystem', null, global);
  goog.exportSymbol('proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.SatelliteSystem', null, global);
  goog.exportSymbol('proto.sensoris.protobuf.types.source.Sensor', null, global);
  goog.exportSymbol('proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation', null, global);
  goog.exportSymbol('proto.sensoris.protobuf.types.source.Sensor.SpecificCase', null, global);
  goog.exportSymbol('proto.sensoris.protobuf.types.source.SensorFusion', null, global);
  goog.exportSymbol('proto.sensoris.protobuf.types.source.Source', null, global);
  goog.exportSymbol('proto.sensoris.protobuf.types.source.Source.SourceCase', null, global);
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.repeatedFields_, null);
  };
  goog.inherits(proto.sensoris.protobuf.types.source.NavigationSatelliteSystem, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.displayName = 'proto.sensoris.protobuf.types.source.NavigationSatelliteSystem';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.sensoris.protobuf.types.source.Sensor = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, proto.sensoris.protobuf.types.source.Sensor.oneofGroups_);
  };
  goog.inherits(proto.sensoris.protobuf.types.source.Sensor, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.sensoris.protobuf.types.source.Sensor.displayName = 'proto.sensoris.protobuf.types.source.Sensor';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.displayName = 'proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.sensoris.protobuf.types.source.SensorFusion = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.sensoris.protobuf.types.source.SensorFusion.repeatedFields_, null);
  };
  goog.inherits(proto.sensoris.protobuf.types.source.SensorFusion, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.sensoris.protobuf.types.source.SensorFusion.displayName = 'proto.sensoris.protobuf.types.source.SensorFusion';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.sensoris.protobuf.types.source.Source = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.sensoris.protobuf.types.source.Source.repeatedFields_, proto.sensoris.protobuf.types.source.Source.oneofGroups_);
  };
  goog.inherits(proto.sensoris.protobuf.types.source.Source, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.sensoris.protobuf.types.source.Source.displayName = 'proto.sensoris.protobuf.types.source.Source';
  }
  
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.repeatedFields_ = [1,2,3,15];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.toObject = function(opt_includeInstance) {
    return proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.toObject = function(includeInstance, msg) {
    var f, obj = {
      satelliteSystemList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f,
      satelliteBasedAugmentationSystemList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,
      groundBasedAugmentationSystemList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,
      elevationMask: (f = msg.getElevationMask()) && google_protobuf_wrappers_pb.Int64Value.toObject(includeInstance, f),
      antennaOffsetAndAccuracy: (f = msg.getAntennaOffsetAndAccuracy()) && sensoris_protobuf_types_spatial_pb.XyzVectorAndAccuracy.toObject(includeInstance, f),
      extensionList: jspb.Message.toObjectList(msg.getExtensionList(),
      google_protobuf_any_pb.Any.toObject, includeInstance)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem}
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.sensoris.protobuf.types.source.NavigationSatelliteSystem;
    return proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem}
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {!Array<!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.SatelliteSystem>} */ (reader.readPackedEnum());
        msg.setSatelliteSystemList(value);
        break;
      case 2:
        var value = /** @type {!Array<!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.SatelliteBasedAugmentationSystem>} */ (reader.readPackedEnum());
        msg.setSatelliteBasedAugmentationSystemList(value);
        break;
      case 3:
        var value = /** @type {!Array<!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.GroundBasedAugmentationSystem>} */ (reader.readPackedEnum());
        msg.setGroundBasedAugmentationSystemList(value);
        break;
      case 4:
        var value = new google_protobuf_wrappers_pb.Int64Value;
        reader.readMessage(value,google_protobuf_wrappers_pb.Int64Value.deserializeBinaryFromReader);
        msg.setElevationMask(value);
        break;
      case 5:
        var value = new sensoris_protobuf_types_spatial_pb.XyzVectorAndAccuracy;
        reader.readMessage(value,sensoris_protobuf_types_spatial_pb.XyzVectorAndAccuracy.deserializeBinaryFromReader);
        msg.setAntennaOffsetAndAccuracy(value);
        break;
      case 15:
        var value = new google_protobuf_any_pb.Any;
        reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader);
        msg.addExtension$(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getSatelliteSystemList();
    if (f.length > 0) {
      writer.writePackedEnum(
        1,
        f
      );
    }
    f = message.getSatelliteBasedAugmentationSystemList();
    if (f.length > 0) {
      writer.writePackedEnum(
        2,
        f
      );
    }
    f = message.getGroundBasedAugmentationSystemList();
    if (f.length > 0) {
      writer.writePackedEnum(
        3,
        f
      );
    }
    f = message.getElevationMask();
    if (f != null) {
      writer.writeMessage(
        4,
        f,
        google_protobuf_wrappers_pb.Int64Value.serializeBinaryToWriter
      );
    }
    f = message.getAntennaOffsetAndAccuracy();
    if (f != null) {
      writer.writeMessage(
        5,
        f,
        sensoris_protobuf_types_spatial_pb.XyzVectorAndAccuracy.serializeBinaryToWriter
      );
    }
    f = message.getExtensionList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        15,
        f,
        google_protobuf_any_pb.Any.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * @enum {number}
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.SatelliteSystem = {
    UNKNOWN_SATELLITE_SYSTEM: 0,
    GPS: 1,
    GLONASS: 2,
    GALILEO: 3,
    BEIDOU_1: 4,
    BEIDOU_2: 5,
    NAVIC: 6,
    QZSS: 7
  };
  
  /**
   * @enum {number}
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.SatelliteBasedAugmentationSystem = {
    UNKNOWN_SATELLITE_BASED: 0,
    SATELLITE_BASED: 1,
    WAAS: 2,
    EGNOS: 3,
    MSAS: 4,
    QZSS_SATELLITE_BASED: 5,
    GAGAN: 6,
    SDCM: 7,
    SNAS: 8,
    WAGE: 9,
    STAR_FIRE: 10,
    STAR_FIX: 11,
    OMNI_STAR: 12
  };
  
  /**
   * @enum {number}
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.GroundBasedAugmentationSystem = {
    UNKNOWN_GROUND_BASED: 0,
    GROUND_BASED: 1,
    GBAS: 2,
    NDGPS: 3,
    SAPOS: 4,
    ALF: 5,
    AXIO_NET: 6,
    VRS_NOW: 7,
    SMART_NET: 8
  };
  
  /**
   * repeated SatelliteSystem satellite_system = 1;
   * @return {!Array<!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.SatelliteSystem>}
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.getSatelliteSystemList = function() {
    return /** @type {!Array<!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.SatelliteSystem>} */ (jspb.Message.getRepeatedField(this, 1));
  };
  
  
  /**
   * @param {!Array<!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.SatelliteSystem>} value
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} returns this
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.setSatelliteSystemList = function(value) {
    return jspb.Message.setField(this, 1, value || []);
  };
  
  
  /**
   * @param {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.SatelliteSystem} value
   * @param {number=} opt_index
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} returns this
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.addSatelliteSystem = function(value, opt_index) {
    return jspb.Message.addToRepeatedField(this, 1, value, opt_index);
  };
  
  
  /**
   * Clears the list making it empty but non-null.
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} returns this
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.clearSatelliteSystemList = function() {
    return this.setSatelliteSystemList([]);
  };
  
  
  /**
   * repeated SatelliteBasedAugmentationSystem satellite_based_augmentation_system = 2;
   * @return {!Array<!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.SatelliteBasedAugmentationSystem>}
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.getSatelliteBasedAugmentationSystemList = function() {
    return /** @type {!Array<!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.SatelliteBasedAugmentationSystem>} */ (jspb.Message.getRepeatedField(this, 2));
  };
  
  
  /**
   * @param {!Array<!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.SatelliteBasedAugmentationSystem>} value
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} returns this
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.setSatelliteBasedAugmentationSystemList = function(value) {
    return jspb.Message.setField(this, 2, value || []);
  };
  
  
  /**
   * @param {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.SatelliteBasedAugmentationSystem} value
   * @param {number=} opt_index
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} returns this
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.addSatelliteBasedAugmentationSystem = function(value, opt_index) {
    return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
  };
  
  
  /**
   * Clears the list making it empty but non-null.
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} returns this
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.clearSatelliteBasedAugmentationSystemList = function() {
    return this.setSatelliteBasedAugmentationSystemList([]);
  };
  
  
  /**
   * repeated GroundBasedAugmentationSystem ground_based_augmentation_system = 3;
   * @return {!Array<!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.GroundBasedAugmentationSystem>}
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.getGroundBasedAugmentationSystemList = function() {
    return /** @type {!Array<!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.GroundBasedAugmentationSystem>} */ (jspb.Message.getRepeatedField(this, 3));
  };
  
  
  /**
   * @param {!Array<!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.GroundBasedAugmentationSystem>} value
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} returns this
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.setGroundBasedAugmentationSystemList = function(value) {
    return jspb.Message.setField(this, 3, value || []);
  };
  
  
  /**
   * @param {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.GroundBasedAugmentationSystem} value
   * @param {number=} opt_index
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} returns this
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.addGroundBasedAugmentationSystem = function(value, opt_index) {
    return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
  };
  
  
  /**
   * Clears the list making it empty but non-null.
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} returns this
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.clearGroundBasedAugmentationSystemList = function() {
    return this.setGroundBasedAugmentationSystemList([]);
  };
  
  
  /**
   * optional google.protobuf.Int64Value elevation_mask = 4;
   * @return {?proto.google.protobuf.Int64Value}
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.getElevationMask = function() {
    return /** @type{?proto.google.protobuf.Int64Value} */ (
      jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.Int64Value, 4));
  };
  
  
  /**
   * @param {?proto.google.protobuf.Int64Value|undefined} value
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} returns this
  */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.setElevationMask = function(value) {
    return jspb.Message.setWrapperField(this, 4, value);
  };
  
  
  /**
   * Clears the message field making it undefined.
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} returns this
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.clearElevationMask = function() {
    return this.setElevationMask(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {boolean}
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.hasElevationMask = function() {
    return jspb.Message.getField(this, 4) != null;
  };
  
  
  /**
   * optional sensoris.protobuf.types.spatial.XyzVectorAndAccuracy antenna_offset_and_accuracy = 5;
   * @return {?proto.sensoris.protobuf.types.spatial.XyzVectorAndAccuracy}
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.getAntennaOffsetAndAccuracy = function() {
    return /** @type{?proto.sensoris.protobuf.types.spatial.XyzVectorAndAccuracy} */ (
      jspb.Message.getWrapperField(this, sensoris_protobuf_types_spatial_pb.XyzVectorAndAccuracy, 5));
  };
  
  
  /**
   * @param {?proto.sensoris.protobuf.types.spatial.XyzVectorAndAccuracy|undefined} value
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} returns this
  */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.setAntennaOffsetAndAccuracy = function(value) {
    return jspb.Message.setWrapperField(this, 5, value);
  };
  
  
  /**
   * Clears the message field making it undefined.
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} returns this
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.clearAntennaOffsetAndAccuracy = function() {
    return this.setAntennaOffsetAndAccuracy(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {boolean}
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.hasAntennaOffsetAndAccuracy = function() {
    return jspb.Message.getField(this, 5) != null;
  };
  
  
  /**
   * repeated google.protobuf.Any extension = 15;
   * @return {!Array<!proto.google.protobuf.Any>}
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.getExtensionList = function() {
    return /** @type{!Array<!proto.google.protobuf.Any>} */ (
      jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 15));
  };
  
  
  /**
   * @param {!Array<!proto.google.protobuf.Any>} value
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} returns this
  */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.setExtensionList = function(value) {
    return jspb.Message.setRepeatedWrapperField(this, 15, value);
  };
  
  
  /**
   * @param {!proto.google.protobuf.Any=} opt_value
   * @param {number=} opt_index
   * @return {!proto.google.protobuf.Any}
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.addExtension$ = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 15, opt_value, proto.google.protobuf.Any, opt_index);
  };
  
  
  /**
   * Clears the list making it empty but non-null.
   * @return {!proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} returns this
   */
  proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.prototype.clearExtensionList = function() {
    return this.setExtensionList([]);
  };
  
  
  
  /**
   * Oneof group definitions for this message. Each group defines the field
   * numbers belonging to that group. When of these fields' value is set, all
   * other fields in the group are cleared. During deserialization, if multiple
   * fields are encountered for a group, only the last value seen will be kept.
   * @private {!Array<!Array<number>>}
   * @const
   */
  proto.sensoris.protobuf.types.source.Sensor.oneofGroups_ = [[2]];
  
  /**
   * @enum {number}
   */
  proto.sensoris.protobuf.types.source.Sensor.SpecificCase = {
    SPECIFIC_NOT_SET: 0,
    NAVIGATION_SATELLITE_SYSTEM: 2
  };
  
  /**
   * @return {proto.sensoris.protobuf.types.source.Sensor.SpecificCase}
   */
  proto.sensoris.protobuf.types.source.Sensor.prototype.getSpecificCase = function() {
    return /** @type {proto.sensoris.protobuf.types.source.Sensor.SpecificCase} */(jspb.Message.computeOneofCase(this, proto.sensoris.protobuf.types.source.Sensor.oneofGroups_[0]));
  };
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.sensoris.protobuf.types.source.Sensor.prototype.toObject = function(opt_includeInstance) {
    return proto.sensoris.protobuf.types.source.Sensor.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.sensoris.protobuf.types.source.Sensor} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.sensoris.protobuf.types.source.Sensor.toObject = function(includeInstance, msg) {
    var f, obj = {
      mountingPositionAndOrientation: (f = msg.getMountingPositionAndOrientation()) && proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.toObject(includeInstance, f),
      navigationSatelliteSystem: (f = msg.getNavigationSatelliteSystem()) && proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.toObject(includeInstance, f)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.sensoris.protobuf.types.source.Sensor}
   */
  proto.sensoris.protobuf.types.source.Sensor.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.sensoris.protobuf.types.source.Sensor;
    return proto.sensoris.protobuf.types.source.Sensor.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.sensoris.protobuf.types.source.Sensor} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.sensoris.protobuf.types.source.Sensor}
   */
  proto.sensoris.protobuf.types.source.Sensor.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation;
        reader.readMessage(value,proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.deserializeBinaryFromReader);
        msg.setMountingPositionAndOrientation(value);
        break;
      case 2:
        var value = new proto.sensoris.protobuf.types.source.NavigationSatelliteSystem;
        reader.readMessage(value,proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.deserializeBinaryFromReader);
        msg.setNavigationSatelliteSystem(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.sensoris.protobuf.types.source.Sensor.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.sensoris.protobuf.types.source.Sensor.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.sensoris.protobuf.types.source.Sensor} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.sensoris.protobuf.types.source.Sensor.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getMountingPositionAndOrientation();
    if (f != null) {
      writer.writeMessage(
        1,
        f,
        proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.serializeBinaryToWriter
      );
    }
    f = message.getNavigationSatelliteSystem();
    if (f != null) {
      writer.writeMessage(
        2,
        f,
        proto.sensoris.protobuf.types.source.NavigationSatelliteSystem.serializeBinaryToWriter
      );
    }
  };
  
  
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.prototype.toObject = function(opt_includeInstance) {
    return proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.toObject = function(includeInstance, msg) {
    var f, obj = {
      translationAndAccuracy: (f = msg.getTranslationAndAccuracy()) && sensoris_protobuf_types_spatial_pb.PositionAndAccuracy.toObject(includeInstance, f),
      orientationAndAccuracy: (f = msg.getOrientationAndAccuracy()) && sensoris_protobuf_types_spatial_pb.RotationAndAccuracy.toObject(includeInstance, f)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation}
   */
  proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation;
    return proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation}
   */
  proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new sensoris_protobuf_types_spatial_pb.PositionAndAccuracy;
        reader.readMessage(value,sensoris_protobuf_types_spatial_pb.PositionAndAccuracy.deserializeBinaryFromReader);
        msg.setTranslationAndAccuracy(value);
        break;
      case 2:
        var value = new sensoris_protobuf_types_spatial_pb.RotationAndAccuracy;
        reader.readMessage(value,sensoris_protobuf_types_spatial_pb.RotationAndAccuracy.deserializeBinaryFromReader);
        msg.setOrientationAndAccuracy(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getTranslationAndAccuracy();
    if (f != null) {
      writer.writeMessage(
        1,
        f,
        sensoris_protobuf_types_spatial_pb.PositionAndAccuracy.serializeBinaryToWriter
      );
    }
    f = message.getOrientationAndAccuracy();
    if (f != null) {
      writer.writeMessage(
        2,
        f,
        sensoris_protobuf_types_spatial_pb.RotationAndAccuracy.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional sensoris.protobuf.types.spatial.PositionAndAccuracy translation_and_accuracy = 1;
   * @return {?proto.sensoris.protobuf.types.spatial.PositionAndAccuracy}
   */
  proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.prototype.getTranslationAndAccuracy = function() {
    return /** @type{?proto.sensoris.protobuf.types.spatial.PositionAndAccuracy} */ (
      jspb.Message.getWrapperField(this, sensoris_protobuf_types_spatial_pb.PositionAndAccuracy, 1));
  };
  
  
  /**
   * @param {?proto.sensoris.protobuf.types.spatial.PositionAndAccuracy|undefined} value
   * @return {!proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation} returns this
  */
  proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.prototype.setTranslationAndAccuracy = function(value) {
    return jspb.Message.setWrapperField(this, 1, value);
  };
  
  
  /**
   * Clears the message field making it undefined.
   * @return {!proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation} returns this
   */
  proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.prototype.clearTranslationAndAccuracy = function() {
    return this.setTranslationAndAccuracy(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {boolean}
   */
  proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.prototype.hasTranslationAndAccuracy = function() {
    return jspb.Message.getField(this, 1) != null;
  };
  
  
  /**
   * optional sensoris.protobuf.types.spatial.RotationAndAccuracy orientation_and_accuracy = 2;
   * @return {?proto.sensoris.protobuf.types.spatial.RotationAndAccuracy}
   */
  proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.prototype.getOrientationAndAccuracy = function() {
    return /** @type{?proto.sensoris.protobuf.types.spatial.RotationAndAccuracy} */ (
      jspb.Message.getWrapperField(this, sensoris_protobuf_types_spatial_pb.RotationAndAccuracy, 2));
  };
  
  
  /**
   * @param {?proto.sensoris.protobuf.types.spatial.RotationAndAccuracy|undefined} value
   * @return {!proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation} returns this
  */
  proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.prototype.setOrientationAndAccuracy = function(value) {
    return jspb.Message.setWrapperField(this, 2, value);
  };
  
  
  /**
   * Clears the message field making it undefined.
   * @return {!proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation} returns this
   */
  proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.prototype.clearOrientationAndAccuracy = function() {
    return this.setOrientationAndAccuracy(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {boolean}
   */
  proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation.prototype.hasOrientationAndAccuracy = function() {
    return jspb.Message.getField(this, 2) != null;
  };
  
  
  /**
   * optional MountingPositionAndOrientation mounting_position_and_orientation = 1;
   * @return {?proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation}
   */
  proto.sensoris.protobuf.types.source.Sensor.prototype.getMountingPositionAndOrientation = function() {
    return /** @type{?proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation} */ (
      jspb.Message.getWrapperField(this, proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation, 1));
  };
  
  
  /**
   * @param {?proto.sensoris.protobuf.types.source.Sensor.MountingPositionAndOrientation|undefined} value
   * @return {!proto.sensoris.protobuf.types.source.Sensor} returns this
  */
  proto.sensoris.protobuf.types.source.Sensor.prototype.setMountingPositionAndOrientation = function(value) {
    return jspb.Message.setWrapperField(this, 1, value);
  };
  
  
  /**
   * Clears the message field making it undefined.
   * @return {!proto.sensoris.protobuf.types.source.Sensor} returns this
   */
  proto.sensoris.protobuf.types.source.Sensor.prototype.clearMountingPositionAndOrientation = function() {
    return this.setMountingPositionAndOrientation(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {boolean}
   */
  proto.sensoris.protobuf.types.source.Sensor.prototype.hasMountingPositionAndOrientation = function() {
    return jspb.Message.getField(this, 1) != null;
  };
  
  
  /**
   * optional NavigationSatelliteSystem navigation_satellite_system = 2;
   * @return {?proto.sensoris.protobuf.types.source.NavigationSatelliteSystem}
   */
  proto.sensoris.protobuf.types.source.Sensor.prototype.getNavigationSatelliteSystem = function() {
    return /** @type{?proto.sensoris.protobuf.types.source.NavigationSatelliteSystem} */ (
      jspb.Message.getWrapperField(this, proto.sensoris.protobuf.types.source.NavigationSatelliteSystem, 2));
  };
  
  
  /**
   * @param {?proto.sensoris.protobuf.types.source.NavigationSatelliteSystem|undefined} value
   * @return {!proto.sensoris.protobuf.types.source.Sensor} returns this
  */
  proto.sensoris.protobuf.types.source.Sensor.prototype.setNavigationSatelliteSystem = function(value) {
    return jspb.Message.setOneofWrapperField(this, 2, proto.sensoris.protobuf.types.source.Sensor.oneofGroups_[0], value);
  };
  
  
  /**
   * Clears the message field making it undefined.
   * @return {!proto.sensoris.protobuf.types.source.Sensor} returns this
   */
  proto.sensoris.protobuf.types.source.Sensor.prototype.clearNavigationSatelliteSystem = function() {
    return this.setNavigationSatelliteSystem(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {boolean}
   */
  proto.sensoris.protobuf.types.source.Sensor.prototype.hasNavigationSatelliteSystem = function() {
    return jspb.Message.getField(this, 2) != null;
  };
  
  
  
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.sensoris.protobuf.types.source.SensorFusion.repeatedFields_ = [1];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.sensoris.protobuf.types.source.SensorFusion.prototype.toObject = function(opt_includeInstance) {
    return proto.sensoris.protobuf.types.source.SensorFusion.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.sensoris.protobuf.types.source.SensorFusion} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.sensoris.protobuf.types.source.SensorFusion.toObject = function(includeInstance, msg) {
    var f, obj = {
      sensorIdList: jspb.Message.toObjectList(msg.getSensorIdList(),
      google_protobuf_wrappers_pb.Int64Value.toObject, includeInstance)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.sensoris.protobuf.types.source.SensorFusion}
   */
  proto.sensoris.protobuf.types.source.SensorFusion.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.sensoris.protobuf.types.source.SensorFusion;
    return proto.sensoris.protobuf.types.source.SensorFusion.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.sensoris.protobuf.types.source.SensorFusion} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.sensoris.protobuf.types.source.SensorFusion}
   */
  proto.sensoris.protobuf.types.source.SensorFusion.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new google_protobuf_wrappers_pb.Int64Value;
        reader.readMessage(value,google_protobuf_wrappers_pb.Int64Value.deserializeBinaryFromReader);
        msg.addSensorId(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.sensoris.protobuf.types.source.SensorFusion.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.sensoris.protobuf.types.source.SensorFusion.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.sensoris.protobuf.types.source.SensorFusion} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.sensoris.protobuf.types.source.SensorFusion.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getSensorIdList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        1,
        f,
        google_protobuf_wrappers_pb.Int64Value.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * repeated google.protobuf.Int64Value sensor_id = 1;
   * @return {!Array<!proto.google.protobuf.Int64Value>}
   */
  proto.sensoris.protobuf.types.source.SensorFusion.prototype.getSensorIdList = function() {
    return /** @type{!Array<!proto.google.protobuf.Int64Value>} */ (
      jspb.Message.getRepeatedWrapperField(this, google_protobuf_wrappers_pb.Int64Value, 1));
  };
  
  
  /**
   * @param {!Array<!proto.google.protobuf.Int64Value>} value
   * @return {!proto.sensoris.protobuf.types.source.SensorFusion} returns this
  */
  proto.sensoris.protobuf.types.source.SensorFusion.prototype.setSensorIdList = function(value) {
    return jspb.Message.setRepeatedWrapperField(this, 1, value);
  };
  
  
  /**
   * @param {!proto.google.protobuf.Int64Value=} opt_value
   * @param {number=} opt_index
   * @return {!proto.google.protobuf.Int64Value}
   */
  proto.sensoris.protobuf.types.source.SensorFusion.prototype.addSensorId = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.google.protobuf.Int64Value, opt_index);
  };
  
  
  /**
   * Clears the list making it empty but non-null.
   * @return {!proto.sensoris.protobuf.types.source.SensorFusion} returns this
   */
  proto.sensoris.protobuf.types.source.SensorFusion.prototype.clearSensorIdList = function() {
    return this.setSensorIdList([]);
  };
  
  
  
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.sensoris.protobuf.types.source.Source.repeatedFields_ = [15];
  
  /**
   * Oneof group definitions for this message. Each group defines the field
   * numbers belonging to that group. When of these fields' value is set, all
   * other fields in the group are cleared. During deserialization, if multiple
   * fields are encountered for a group, only the last value seen will be kept.
   * @private {!Array<!Array<number>>}
   * @const
   */
  proto.sensoris.protobuf.types.source.Source.oneofGroups_ = [[4,5]];
  
  /**
   * @enum {number}
   */
  proto.sensoris.protobuf.types.source.Source.SourceCase = {
    SOURCE_NOT_SET: 0,
    SENSOR: 4,
    SENSOR_FUSION: 5
  };
  
  /**
   * @return {proto.sensoris.protobuf.types.source.Source.SourceCase}
   */
  proto.sensoris.protobuf.types.source.Source.prototype.getSourceCase = function() {
    return /** @type {proto.sensoris.protobuf.types.source.Source.SourceCase} */(jspb.Message.computeOneofCase(this, proto.sensoris.protobuf.types.source.Source.oneofGroups_[0]));
  };
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.sensoris.protobuf.types.source.Source.prototype.toObject = function(opt_includeInstance) {
    return proto.sensoris.protobuf.types.source.Source.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.sensoris.protobuf.types.source.Source} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.sensoris.protobuf.types.source.Source.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: (f = msg.getId()) && google_protobuf_wrappers_pb.Int64Value.toObject(includeInstance, f),
      entity: (f = msg.getEntity()) && sensoris_protobuf_types_base_pb.Entity.toObject(includeInstance, f),
      samplingFrequency: (f = msg.getSamplingFrequency()) && sensoris_protobuf_types_base_pb.Int64Value.toObject(includeInstance, f),
      sensor: (f = msg.getSensor()) && proto.sensoris.protobuf.types.source.Sensor.toObject(includeInstance, f),
      sensorFusion: (f = msg.getSensorFusion()) && proto.sensoris.protobuf.types.source.SensorFusion.toObject(includeInstance, f),
      extensionList: jspb.Message.toObjectList(msg.getExtensionList(),
      google_protobuf_any_pb.Any.toObject, includeInstance)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.sensoris.protobuf.types.source.Source}
   */
  proto.sensoris.protobuf.types.source.Source.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.sensoris.protobuf.types.source.Source;
    return proto.sensoris.protobuf.types.source.Source.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.sensoris.protobuf.types.source.Source} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.sensoris.protobuf.types.source.Source}
   */
  proto.sensoris.protobuf.types.source.Source.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new google_protobuf_wrappers_pb.Int64Value;
        reader.readMessage(value,google_protobuf_wrappers_pb.Int64Value.deserializeBinaryFromReader);
        msg.setId(value);
        break;
      case 2:
        var value = new sensoris_protobuf_types_base_pb.Entity;
        reader.readMessage(value,sensoris_protobuf_types_base_pb.Entity.deserializeBinaryFromReader);
        msg.setEntity(value);
        break;
      case 3:
        var value = new sensoris_protobuf_types_base_pb.Int64Value;
        reader.readMessage(value,sensoris_protobuf_types_base_pb.Int64Value.deserializeBinaryFromReader);
        msg.setSamplingFrequency(value);
        break;
      case 4:
        var value = new proto.sensoris.protobuf.types.source.Sensor;
        reader.readMessage(value,proto.sensoris.protobuf.types.source.Sensor.deserializeBinaryFromReader);
        msg.setSensor(value);
        break;
      case 5:
        var value = new proto.sensoris.protobuf.types.source.SensorFusion;
        reader.readMessage(value,proto.sensoris.protobuf.types.source.SensorFusion.deserializeBinaryFromReader);
        msg.setSensorFusion(value);
        break;
      case 15:
        var value = new google_protobuf_any_pb.Any;
        reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader);
        msg.addExtension$(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.sensoris.protobuf.types.source.Source.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.sensoris.protobuf.types.source.Source.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.sensoris.protobuf.types.source.Source} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.sensoris.protobuf.types.source.Source.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f != null) {
      writer.writeMessage(
        1,
        f,
        google_protobuf_wrappers_pb.Int64Value.serializeBinaryToWriter
      );
    }
    f = message.getEntity();
    if (f != null) {
      writer.writeMessage(
        2,
        f,
        sensoris_protobuf_types_base_pb.Entity.serializeBinaryToWriter
      );
    }
    f = message.getSamplingFrequency();
    if (f != null) {
      writer.writeMessage(
        3,
        f,
        sensoris_protobuf_types_base_pb.Int64Value.serializeBinaryToWriter
      );
    }
    f = message.getSensor();
    if (f != null) {
      writer.writeMessage(
        4,
        f,
        proto.sensoris.protobuf.types.source.Sensor.serializeBinaryToWriter
      );
    }
    f = message.getSensorFusion();
    if (f != null) {
      writer.writeMessage(
        5,
        f,
        proto.sensoris.protobuf.types.source.SensorFusion.serializeBinaryToWriter
      );
    }
    f = message.getExtensionList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        15,
        f,
        google_protobuf_any_pb.Any.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional google.protobuf.Int64Value id = 1;
   * @return {?proto.google.protobuf.Int64Value}
   */
  proto.sensoris.protobuf.types.source.Source.prototype.getId = function() {
    return /** @type{?proto.google.protobuf.Int64Value} */ (
      jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.Int64Value, 1));
  };
  
  
  /**
   * @param {?proto.google.protobuf.Int64Value|undefined} value
   * @return {!proto.sensoris.protobuf.types.source.Source} returns this
  */
  proto.sensoris.protobuf.types.source.Source.prototype.setId = function(value) {
    return jspb.Message.setWrapperField(this, 1, value);
  };
  
  
  /**
   * Clears the message field making it undefined.
   * @return {!proto.sensoris.protobuf.types.source.Source} returns this
   */
  proto.sensoris.protobuf.types.source.Source.prototype.clearId = function() {
    return this.setId(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {boolean}
   */
  proto.sensoris.protobuf.types.source.Source.prototype.hasId = function() {
    return jspb.Message.getField(this, 1) != null;
  };
  
  
  /**
   * optional sensoris.protobuf.types.base.Entity entity = 2;
   * @return {?proto.sensoris.protobuf.types.base.Entity}
   */
  proto.sensoris.protobuf.types.source.Source.prototype.getEntity = function() {
    return /** @type{?proto.sensoris.protobuf.types.base.Entity} */ (
      jspb.Message.getWrapperField(this, sensoris_protobuf_types_base_pb.Entity, 2));
  };
  
  
  /**
   * @param {?proto.sensoris.protobuf.types.base.Entity|undefined} value
   * @return {!proto.sensoris.protobuf.types.source.Source} returns this
  */
  proto.sensoris.protobuf.types.source.Source.prototype.setEntity = function(value) {
    return jspb.Message.setWrapperField(this, 2, value);
  };
  
  
  /**
   * Clears the message field making it undefined.
   * @return {!proto.sensoris.protobuf.types.source.Source} returns this
   */
  proto.sensoris.protobuf.types.source.Source.prototype.clearEntity = function() {
    return this.setEntity(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {boolean}
   */
  proto.sensoris.protobuf.types.source.Source.prototype.hasEntity = function() {
    return jspb.Message.getField(this, 2) != null;
  };
  
  
  /**
   * optional sensoris.protobuf.types.base.Int64Value sampling_frequency = 3;
   * @return {?proto.sensoris.protobuf.types.base.Int64Value}
   */
  proto.sensoris.protobuf.types.source.Source.prototype.getSamplingFrequency = function() {
    return /** @type{?proto.sensoris.protobuf.types.base.Int64Value} */ (
      jspb.Message.getWrapperField(this, sensoris_protobuf_types_base_pb.Int64Value, 3));
  };
  
  
  /**
   * @param {?proto.sensoris.protobuf.types.base.Int64Value|undefined} value
   * @return {!proto.sensoris.protobuf.types.source.Source} returns this
  */
  proto.sensoris.protobuf.types.source.Source.prototype.setSamplingFrequency = function(value) {
    return jspb.Message.setWrapperField(this, 3, value);
  };
  
  
  /**
   * Clears the message field making it undefined.
   * @return {!proto.sensoris.protobuf.types.source.Source} returns this
   */
  proto.sensoris.protobuf.types.source.Source.prototype.clearSamplingFrequency = function() {
    return this.setSamplingFrequency(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {boolean}
   */
  proto.sensoris.protobuf.types.source.Source.prototype.hasSamplingFrequency = function() {
    return jspb.Message.getField(this, 3) != null;
  };
  
  
  /**
   * optional Sensor sensor = 4;
   * @return {?proto.sensoris.protobuf.types.source.Sensor}
   */
  proto.sensoris.protobuf.types.source.Source.prototype.getSensor = function() {
    return /** @type{?proto.sensoris.protobuf.types.source.Sensor} */ (
      jspb.Message.getWrapperField(this, proto.sensoris.protobuf.types.source.Sensor, 4));
  };
  
  
  /**
   * @param {?proto.sensoris.protobuf.types.source.Sensor|undefined} value
   * @return {!proto.sensoris.protobuf.types.source.Source} returns this
  */
  proto.sensoris.protobuf.types.source.Source.prototype.setSensor = function(value) {
    return jspb.Message.setOneofWrapperField(this, 4, proto.sensoris.protobuf.types.source.Source.oneofGroups_[0], value);
  };
  
  
  /**
   * Clears the message field making it undefined.
   * @return {!proto.sensoris.protobuf.types.source.Source} returns this
   */
  proto.sensoris.protobuf.types.source.Source.prototype.clearSensor = function() {
    return this.setSensor(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {boolean}
   */
  proto.sensoris.protobuf.types.source.Source.prototype.hasSensor = function() {
    return jspb.Message.getField(this, 4) != null;
  };
  
  
  /**
   * optional SensorFusion sensor_fusion = 5;
   * @return {?proto.sensoris.protobuf.types.source.SensorFusion}
   */
  proto.sensoris.protobuf.types.source.Source.prototype.getSensorFusion = function() {
    return /** @type{?proto.sensoris.protobuf.types.source.SensorFusion} */ (
      jspb.Message.getWrapperField(this, proto.sensoris.protobuf.types.source.SensorFusion, 5));
  };
  
  
  /**
   * @param {?proto.sensoris.protobuf.types.source.SensorFusion|undefined} value
   * @return {!proto.sensoris.protobuf.types.source.Source} returns this
  */
  proto.sensoris.protobuf.types.source.Source.prototype.setSensorFusion = function(value) {
    return jspb.Message.setOneofWrapperField(this, 5, proto.sensoris.protobuf.types.source.Source.oneofGroups_[0], value);
  };
  
  
  /**
   * Clears the message field making it undefined.
   * @return {!proto.sensoris.protobuf.types.source.Source} returns this
   */
  proto.sensoris.protobuf.types.source.Source.prototype.clearSensorFusion = function() {
    return this.setSensorFusion(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {boolean}
   */
  proto.sensoris.protobuf.types.source.Source.prototype.hasSensorFusion = function() {
    return jspb.Message.getField(this, 5) != null;
  };
  
  
  /**
   * repeated google.protobuf.Any extension = 15;
   * @return {!Array<!proto.google.protobuf.Any>}
   */
  proto.sensoris.protobuf.types.source.Source.prototype.getExtensionList = function() {
    return /** @type{!Array<!proto.google.protobuf.Any>} */ (
      jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 15));
  };
  
  
  /**
   * @param {!Array<!proto.google.protobuf.Any>} value
   * @return {!proto.sensoris.protobuf.types.source.Source} returns this
  */
  proto.sensoris.protobuf.types.source.Source.prototype.setExtensionList = function(value) {
    return jspb.Message.setRepeatedWrapperField(this, 15, value);
  };
  
  
  /**
   * @param {!proto.google.protobuf.Any=} opt_value
   * @param {number=} opt_index
   * @return {!proto.google.protobuf.Any}
   */
  proto.sensoris.protobuf.types.source.Source.prototype.addExtension$ = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 15, opt_value, proto.google.protobuf.Any, opt_index);
  };
  
  
  /**
   * Clears the list making it empty but non-null.
   * @return {!proto.sensoris.protobuf.types.source.Source} returns this
   */
  proto.sensoris.protobuf.types.source.Source.prototype.clearExtensionList = function() {
    return this.setExtensionList([]);
  };
  
  
  goog.object.extend(exports, proto.sensoris.protobuf.types.source);
  