# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: blickfeld/config/scan_pattern.proto

from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from blickfeld import common_pb2 as blickfeld_dot_common__pb2
from blickfeld import options_pb2 as blickfeld_dot_options__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='blickfeld/config/scan_pattern.proto',
  package='blickfeld.protocol.config',
  syntax='proto2',
  serialized_options=None,
  create_key=_descriptor._internal_create_key,
  serialized_pb=b'\n#blickfeld/config/scan_pattern.proto\x12\x19\x62lickfeld.protocol.config\x1a\x16\x62lickfeld/common.proto\x1a\x17\x62lickfeld/options.proto\"\xad\x15\n\x0bScanPattern\x12\x45\n\nhorizontal\x18\x01 \x01(\x0b\x32\x31.blickfeld.protocol.config.ScanPattern.Horizontal\x12\x41\n\x08vertical\x18\x02 \x01(\x0b\x32/.blickfeld.protocol.config.ScanPattern.Vertical\x12;\n\x05pulse\x18\x03 \x01(\x0b\x32,.blickfeld.protocol.config.ScanPattern.Pulse\x12\x44\n\nframe_rate\x18\x04 \x01(\x0b\x32\x30.blickfeld.protocol.config.ScanPattern.FrameRate\x12=\n\x06\x66ilter\x18\x07 \x01(\x0b\x32-.blickfeld.protocol.config.ScanPattern.Filter\x12\x33\n\x0b\x63onstraints\x18\x08 \x03(\x0b\x32\x1e.blickfeld.protocol.Constraint\x1a\x38\n\nHorizontal\x12*\n\x03\x66ov\x18\x01 \x01(\x02\x42\x1d\xda\xb5\x18\x03rad\xe2\xb5\x18\x03\x64\x65g\xe9\xb5\x18\xb6\x94\x63\x1a\xdc\xa5L@\xf0\xb5\x18\x02\x1a\x86\x01\n\x08Vertical\x12*\n\x03\x66ov\x18\x01 \x01(\x02\x42\x1d\xda\xb5\x18\x03rad\xe2\xb5\x18\x03\x64\x65g\xe9\xb5\x18\xb6\x94\x63\x1a\xdc\xa5L@\xf0\xb5\x18\x02\x12%\n\x0cscanlines_up\x18\x02 \x01(\r:\x02\x34\x30\x42\x0b\x81\xb5\x18\x00\x00\x00\x00\x00\x00\xf0?\x12\'\n\x0escanlines_down\x18\x03 \x01(\r:\x02\x34\x30\x42\x0b\x81\xb5\x18\x00\x00\x00\x00\x00\x00\xf0?\x1a\xd5\x0b\n\x05Pulse\x12\x34\n\rangle_spacing\x18\x02 \x01(\x02\x42\x1d\xda\xb5\x18\x03rad\xe2\xb5\x18\x03\x64\x65g\xe9\xb5\x18\xb6\x94\x63\x1a\xdc\xa5L@\xf0\xb5\x18\x02\x12K\n\x04type\x18\x03 \x01(\x0e\x32\x31.blickfeld.protocol.config.ScanPattern.Pulse.Type:\nINTERLEAVE\x12[\n\nframe_mode\x18\x04 \x01(\x0e\x32\x36.blickfeld.protocol.config.ScanPattern.Pulse.FrameMode:\x0f\x43OMBINE_UP_DOWN\x12#\n\x15\x64istortion_correction\x18\x05 \x01(\x08:\x04true\x12I\n\x06\x63ustom\x18\x08 \x01(\x0b\x32\x33.blickfeld.protocol.config.ScanPattern.Pulse.CustomB\x04\xb0\xb5\x18\x01\x1a\xb9\x07\n\x06\x43ustom\x12Y\n\rangle_trigger\x18\x01 \x01(\x0b\x32@.blickfeld.protocol.config.ScanPattern.Pulse.Custom.AngleTriggerH\x00\x12Y\n\rpoint_trigger\x18\x02 \x01(\x0b\x32@.blickfeld.protocol.config.ScanPattern.Pulse.Custom.PointTriggerH\x00\x12N\n\x08\x64uration\x18\x03 \x01(\x0b\x32<.blickfeld.protocol.config.ScanPattern.Pulse.Custom.Duration\x1ar\n\x08\x44uration\x12\x32\n\nexternal_0\x18\x01 \x01(\x02:\x06\x30.0001B\x16\x81\xb5\x18\x95\xd6&\xe8\x0b.A>\x89\xb5\x18\x9a\x99\x99\x99\x99\x99\xb9?\x12\x32\n\nexternal_1\x18\x02 \x01(\x02:\x06\x30.0001B\x16\x81\xb5\x18\x95\xd6&\xe8\x0b.A>\x89\xb5\x18\x9a\x99\x99\x99\x99\x99\xb9?\x1a\xfc\x01\n\x0c\x41ngleTrigger\x12V\n\x06\x61ngles\x18\x01 \x03(\x0b\x32\x46.blickfeld.protocol.config.ScanPattern.Pulse.Custom.AngleTrigger.Angle\x1a\x93\x01\n\x05\x41ngle\x12\x18\n\x10horizontal_angle\x18\x01 \x01(\x02\x12\x19\n\x0bscanline_id\x18\x02 \x01(\x04\x42\x04\xb0\xb5\x18\x01\x12U\n\x10\x65nabled_triggers\x18\x03 \x03(\x0e\x32;.blickfeld.protocol.config.ScanPattern.Pulse.Custom.Trigger\x1a\xd2\x01\n\x0cPointTrigger\x12V\n\x06points\x18\x01 \x03(\x0b\x32\x46.blickfeld.protocol.config.ScanPattern.Pulse.Custom.PointTrigger.Point\x1aj\n\x05Point\x12\n\n\x02id\x18\x01 \x01(\x04\x12U\n\x10\x65nabled_triggers\x18\x02 \x03(\x0e\x32;.blickfeld.protocol.config.ScanPattern.Pulse.Custom.Trigger\"R\n\x07Trigger\x12\x12\n\x0eTRG_EXTERNAL_0\x10\x01\x12\x12\n\x0eTRG_EXTERNAL_1\x10\x02\x12\x10\n\x0cTRG_DETECTOR\x10\x03\x12\r\n\tTRG_LASER\x10\x04\x42\r\n\x0b\x63ustom_type\"O\n\x04Type\x12\x19\n\x15\x45QUI_HORIZONTAL_ANGLE\x10\x00\x12\x10\n\x0c\x45QUI_DENSITY\x10\x01\x12\n\n\x06\x43USTOM\x10\x02\x12\x0e\n\nINTERLEAVE\x10\x03\"T\n\tFrameMode\x12\x08\n\x04NONE\x10\x00\x12\x13\n\x0f\x43OMBINE_UP_DOWN\x10\x01\x12\x0b\n\x07ONLY_UP\x10\x02\x12\r\n\tONLY_DOWN\x10\x03\x12\x0c\n\x08SEPARATE\x10\x04*\x04\x08\x01\x10\x02*\x04\x08\x06\x10\x07*\x04\x08\x07\x10\x08R\x07padding\x1a\x8a\x01\n\tFrameRate\x12\x1e\n\x06target\x18\x01 \x01(\x01\x42\x0e\xda\xb5\x18\x02Hz\xf0\xb5\x18\x02\xb0\xb5\x18\x01\x12\x1f\n\x07maximum\x18\x02 \x01(\x01\x42\x0e\xda\xb5\x18\x02Hz\xf0\xb5\x18\x02\xb0\xb5\x18\x01\x12<\n\x15reference_time_offset\x18\x03 \x01(\x01:\x01\x30\x42\x1a\xda\xb5\x18\x01s\xe2\xb5\x18\x02ms\xf0\xb5\x18\x01\xe9\xb5\x18\xfc\xa9\xf1\xd2MbP?\x1a\xe8\x03\n\x06\x46ilter\x12\x42\n\x1fmax_number_of_returns_per_point\x18\x01 \x01(\r:\x01\x31\x42\x16\x81\xb5\x18\x00\x00\x00\x00\x00\x00\xf0?\x89\xb5\x18\x00\x00\x00\x00\x00\x00\x08@\x12\x39\n\tintensity\x18\x02 \x01(\x0b\x32&.blickfeld.protocol.OptionalValueRange\x12\x43\n\x13\x61mbient_light_level\x18\x03 \x01(\x0b\x32&.blickfeld.protocol.OptionalValueRange\x12\x35\n\x05range\x18\x04 \x01(\x0b\x32&.blickfeld.protocol.OptionalValueRange\x12H\n\x05noise\x18\x05 \x01(\x0b\x32\x33.blickfeld.protocol.config.ScanPattern.Filter.NoiseB\x04\xb0\xb5\x18\x01\x12,\n\x1d\x64\x65lete_points_without_returns\x18\x06 \x01(\x08:\x05\x66\x61lse\x1ak\n\x05Noise\x12&\n\x06offset\x18\x01 \x01(\rB\x16\x81\xb5\x18\x00\x00\x00\x00\x00\x00\x00\x00\x89\xb5\x18\x00\x00\x00\x00\x00\x00I@\x12$\n\x04gain\x18\x02 \x01(\x02\x42\x16\x81\xb5\x18\x00\x00\x00\x00\x00\x00\x00\x00\x89\xb5\x18\x00\x00\x00\x00\x00\x00\xe0?\x12\x14\n\x06\x65nable\x18\x03 \x01(\x08:\x04true*\x04\x08\x05\x10\x06*\x04\x08\x06\x10\x07'
  ,
  dependencies=[blickfeld_dot_common__pb2.DESCRIPTOR,blickfeld_dot_options__pb2.DESCRIPTOR,])



_SCANPATTERN_PULSE_CUSTOM_TRIGGER = _descriptor.EnumDescriptor(
  name='Trigger',
  full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.Trigger',
  filename=None,
  file=DESCRIPTOR,
  create_key=_descriptor._internal_create_key,
  values=[
    _descriptor.EnumValueDescriptor(
      name='TRG_EXTERNAL_0', index=0, number=1,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='TRG_EXTERNAL_1', index=1, number=2,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='TRG_DETECTOR', index=2, number=3,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='TRG_LASER', index=3, number=4,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=1914,
  serialized_end=1996,
)
_sym_db.RegisterEnumDescriptor(_SCANPATTERN_PULSE_CUSTOM_TRIGGER)

_SCANPATTERN_PULSE_TYPE = _descriptor.EnumDescriptor(
  name='Type',
  full_name='blickfeld.protocol.config.ScanPattern.Pulse.Type',
  filename=None,
  file=DESCRIPTOR,
  create_key=_descriptor._internal_create_key,
  values=[
    _descriptor.EnumValueDescriptor(
      name='EQUI_HORIZONTAL_ANGLE', index=0, number=0,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='EQUI_DENSITY', index=1, number=1,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM', index=2, number=2,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='INTERLEAVE', index=3, number=3,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=2013,
  serialized_end=2092,
)
_sym_db.RegisterEnumDescriptor(_SCANPATTERN_PULSE_TYPE)

_SCANPATTERN_PULSE_FRAMEMODE = _descriptor.EnumDescriptor(
  name='FrameMode',
  full_name='blickfeld.protocol.config.ScanPattern.Pulse.FrameMode',
  filename=None,
  file=DESCRIPTOR,
  create_key=_descriptor._internal_create_key,
  values=[
    _descriptor.EnumValueDescriptor(
      name='NONE', index=0, number=0,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='COMBINE_UP_DOWN', index=1, number=1,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='ONLY_UP', index=2, number=2,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='ONLY_DOWN', index=3, number=3,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='SEPARATE', index=4, number=4,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=2094,
  serialized_end=2178,
)
_sym_db.RegisterEnumDescriptor(_SCANPATTERN_PULSE_FRAMEMODE)


_SCANPATTERN_HORIZONTAL = _descriptor.Descriptor(
  name='Horizontal',
  full_name='blickfeld.protocol.config.ScanPattern.Horizontal',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='fov', full_name='blickfeld.protocol.config.ScanPattern.Horizontal.fov', index=0,
      number=1, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=b'\332\265\030\003rad\342\265\030\003deg\351\265\030\266\224c\032\334\245L@\360\265\030\002', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=516,
  serialized_end=572,
)

_SCANPATTERN_VERTICAL = _descriptor.Descriptor(
  name='Vertical',
  full_name='blickfeld.protocol.config.ScanPattern.Vertical',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='fov', full_name='blickfeld.protocol.config.ScanPattern.Vertical.fov', index=0,
      number=1, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=b'\332\265\030\003rad\342\265\030\003deg\351\265\030\266\224c\032\334\245L@\360\265\030\002', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='scanlines_up', full_name='blickfeld.protocol.config.ScanPattern.Vertical.scanlines_up', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=40,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=b'\201\265\030\000\000\000\000\000\000\360?', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='scanlines_down', full_name='blickfeld.protocol.config.ScanPattern.Vertical.scanlines_down', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=40,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=b'\201\265\030\000\000\000\000\000\000\360?', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=575,
  serialized_end=709,
)

_SCANPATTERN_PULSE_CUSTOM_DURATION = _descriptor.Descriptor(
  name='Duration',
  full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.Duration',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='external_0', full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.Duration.external_0', index=0,
      number=1, type=2, cpp_type=6, label=1,
      has_default_value=True, default_value=float(0.0001),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=b'\201\265\030\225\326&\350\013.A>\211\265\030\232\231\231\231\231\231\271?', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='external_1', full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.Duration.external_1', index=1,
      number=2, type=2, cpp_type=6, label=1,
      has_default_value=True, default_value=float(0.0001),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=b'\201\265\030\225\326&\350\013.A>\211\265\030\232\231\231\231\231\231\271?', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1330,
  serialized_end=1444,
)

_SCANPATTERN_PULSE_CUSTOM_ANGLETRIGGER_ANGLE = _descriptor.Descriptor(
  name='Angle',
  full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.AngleTrigger.Angle',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='horizontal_angle', full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.AngleTrigger.Angle.horizontal_angle', index=0,
      number=1, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='scanline_id', full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.AngleTrigger.Angle.scanline_id', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=b'\260\265\030\001', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='enabled_triggers', full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.AngleTrigger.Angle.enabled_triggers', index=2,
      number=3, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1552,
  serialized_end=1699,
)

_SCANPATTERN_PULSE_CUSTOM_ANGLETRIGGER = _descriptor.Descriptor(
  name='AngleTrigger',
  full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.AngleTrigger',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='angles', full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.AngleTrigger.angles', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[_SCANPATTERN_PULSE_CUSTOM_ANGLETRIGGER_ANGLE, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1447,
  serialized_end=1699,
)

_SCANPATTERN_PULSE_CUSTOM_POINTTRIGGER_POINT = _descriptor.Descriptor(
  name='Point',
  full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.PointTrigger.Point',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.PointTrigger.Point.id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='enabled_triggers', full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.PointTrigger.Point.enabled_triggers', index=1,
      number=2, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1806,
  serialized_end=1912,
)

_SCANPATTERN_PULSE_CUSTOM_POINTTRIGGER = _descriptor.Descriptor(
  name='PointTrigger',
  full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.PointTrigger',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='points', full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.PointTrigger.points', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[_SCANPATTERN_PULSE_CUSTOM_POINTTRIGGER_POINT, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1702,
  serialized_end=1912,
)

_SCANPATTERN_PULSE_CUSTOM = _descriptor.Descriptor(
  name='Custom',
  full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='angle_trigger', full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.angle_trigger', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='point_trigger', full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.point_trigger', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='duration', full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.duration', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[_SCANPATTERN_PULSE_CUSTOM_DURATION, _SCANPATTERN_PULSE_CUSTOM_ANGLETRIGGER, _SCANPATTERN_PULSE_CUSTOM_POINTTRIGGER, ],
  enum_types=[
    _SCANPATTERN_PULSE_CUSTOM_TRIGGER,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='custom_type', full_name='blickfeld.protocol.config.ScanPattern.Pulse.Custom.custom_type',
      index=0, containing_type=None,
      create_key=_descriptor._internal_create_key,
    fields=[]),
  ],
  serialized_start=1058,
  serialized_end=2011,
)

_SCANPATTERN_PULSE = _descriptor.Descriptor(
  name='Pulse',
  full_name='blickfeld.protocol.config.ScanPattern.Pulse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='angle_spacing', full_name='blickfeld.protocol.config.ScanPattern.Pulse.angle_spacing', index=0,
      number=2, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=b'\332\265\030\003rad\342\265\030\003deg\351\265\030\266\224c\032\334\245L@\360\265\030\002', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='type', full_name='blickfeld.protocol.config.ScanPattern.Pulse.type', index=1,
      number=3, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=3,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='frame_mode', full_name='blickfeld.protocol.config.ScanPattern.Pulse.frame_mode', index=2,
      number=4, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='distortion_correction', full_name='blickfeld.protocol.config.ScanPattern.Pulse.distortion_correction', index=3,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='custom', full_name='blickfeld.protocol.config.ScanPattern.Pulse.custom', index=4,
      number=8, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=b'\260\265\030\001', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[_SCANPATTERN_PULSE_CUSTOM, ],
  enum_types=[
    _SCANPATTERN_PULSE_TYPE,
    _SCANPATTERN_PULSE_FRAMEMODE,
  ],
  serialized_options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1, 2), (6, 7), (7, 8), ],
  oneofs=[
  ],
  serialized_start=712,
  serialized_end=2205,
)

_SCANPATTERN_FRAMERATE = _descriptor.Descriptor(
  name='FrameRate',
  full_name='blickfeld.protocol.config.ScanPattern.FrameRate',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='target', full_name='blickfeld.protocol.config.ScanPattern.FrameRate.target', index=0,
      number=1, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=b'\332\265\030\002Hz\360\265\030\002\260\265\030\001', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='maximum', full_name='blickfeld.protocol.config.ScanPattern.FrameRate.maximum', index=1,
      number=2, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=b'\332\265\030\002Hz\360\265\030\002\260\265\030\001', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='reference_time_offset', full_name='blickfeld.protocol.config.ScanPattern.FrameRate.reference_time_offset', index=2,
      number=3, type=1, cpp_type=5, label=1,
      has_default_value=True, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=b'\332\265\030\001s\342\265\030\002ms\360\265\030\001\351\265\030\374\251\361\322MbP?', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2208,
  serialized_end=2346,
)

_SCANPATTERN_FILTER_NOISE = _descriptor.Descriptor(
  name='Noise',
  full_name='blickfeld.protocol.config.ScanPattern.Filter.Noise',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='offset', full_name='blickfeld.protocol.config.ScanPattern.Filter.Noise.offset', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=b'\201\265\030\000\000\000\000\000\000\000\000\211\265\030\000\000\000\000\000\000I@', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='gain', full_name='blickfeld.protocol.config.ScanPattern.Filter.Noise.gain', index=1,
      number=2, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=b'\201\265\030\000\000\000\000\000\000\000\000\211\265\030\000\000\000\000\000\000\340?', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='enable', full_name='blickfeld.protocol.config.ScanPattern.Filter.Noise.enable', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2730,
  serialized_end=2837,
)

_SCANPATTERN_FILTER = _descriptor.Descriptor(
  name='Filter',
  full_name='blickfeld.protocol.config.ScanPattern.Filter',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='max_number_of_returns_per_point', full_name='blickfeld.protocol.config.ScanPattern.Filter.max_number_of_returns_per_point', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=b'\201\265\030\000\000\000\000\000\000\360?\211\265\030\000\000\000\000\000\000\010@', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='intensity', full_name='blickfeld.protocol.config.ScanPattern.Filter.intensity', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='ambient_light_level', full_name='blickfeld.protocol.config.ScanPattern.Filter.ambient_light_level', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='range', full_name='blickfeld.protocol.config.ScanPattern.Filter.range', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='noise', full_name='blickfeld.protocol.config.ScanPattern.Filter.noise', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=b'\260\265\030\001', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='delete_points_without_returns', full_name='blickfeld.protocol.config.ScanPattern.Filter.delete_points_without_returns', index=5,
      number=6, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[_SCANPATTERN_FILTER_NOISE, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2349,
  serialized_end=2837,
)

_SCANPATTERN = _descriptor.Descriptor(
  name='ScanPattern',
  full_name='blickfeld.protocol.config.ScanPattern',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='horizontal', full_name='blickfeld.protocol.config.ScanPattern.horizontal', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='vertical', full_name='blickfeld.protocol.config.ScanPattern.vertical', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='pulse', full_name='blickfeld.protocol.config.ScanPattern.pulse', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='frame_rate', full_name='blickfeld.protocol.config.ScanPattern.frame_rate', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='filter', full_name='blickfeld.protocol.config.ScanPattern.filter', index=4,
      number=7, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='constraints', full_name='blickfeld.protocol.config.ScanPattern.constraints', index=5,
      number=8, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[_SCANPATTERN_HORIZONTAL, _SCANPATTERN_VERTICAL, _SCANPATTERN_PULSE, _SCANPATTERN_FRAMERATE, _SCANPATTERN_FILTER, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(5, 6), (6, 7), ],
  oneofs=[
  ],
  serialized_start=116,
  serialized_end=2849,
)

_SCANPATTERN_HORIZONTAL.containing_type = _SCANPATTERN
_SCANPATTERN_VERTICAL.containing_type = _SCANPATTERN
_SCANPATTERN_PULSE_CUSTOM_DURATION.containing_type = _SCANPATTERN_PULSE_CUSTOM
_SCANPATTERN_PULSE_CUSTOM_ANGLETRIGGER_ANGLE.fields_by_name['enabled_triggers'].enum_type = _SCANPATTERN_PULSE_CUSTOM_TRIGGER
_SCANPATTERN_PULSE_CUSTOM_ANGLETRIGGER_ANGLE.containing_type = _SCANPATTERN_PULSE_CUSTOM_ANGLETRIGGER
_SCANPATTERN_PULSE_CUSTOM_ANGLETRIGGER.fields_by_name['angles'].message_type = _SCANPATTERN_PULSE_CUSTOM_ANGLETRIGGER_ANGLE
_SCANPATTERN_PULSE_CUSTOM_ANGLETRIGGER.containing_type = _SCANPATTERN_PULSE_CUSTOM
_SCANPATTERN_PULSE_CUSTOM_POINTTRIGGER_POINT.fields_by_name['enabled_triggers'].enum_type = _SCANPATTERN_PULSE_CUSTOM_TRIGGER
_SCANPATTERN_PULSE_CUSTOM_POINTTRIGGER_POINT.containing_type = _SCANPATTERN_PULSE_CUSTOM_POINTTRIGGER
_SCANPATTERN_PULSE_CUSTOM_POINTTRIGGER.fields_by_name['points'].message_type = _SCANPATTERN_PULSE_CUSTOM_POINTTRIGGER_POINT
_SCANPATTERN_PULSE_CUSTOM_POINTTRIGGER.containing_type = _SCANPATTERN_PULSE_CUSTOM
_SCANPATTERN_PULSE_CUSTOM.fields_by_name['angle_trigger'].message_type = _SCANPATTERN_PULSE_CUSTOM_ANGLETRIGGER
_SCANPATTERN_PULSE_CUSTOM.fields_by_name['point_trigger'].message_type = _SCANPATTERN_PULSE_CUSTOM_POINTTRIGGER
_SCANPATTERN_PULSE_CUSTOM.fields_by_name['duration'].message_type = _SCANPATTERN_PULSE_CUSTOM_DURATION
_SCANPATTERN_PULSE_CUSTOM.containing_type = _SCANPATTERN_PULSE
_SCANPATTERN_PULSE_CUSTOM_TRIGGER.containing_type = _SCANPATTERN_PULSE_CUSTOM
_SCANPATTERN_PULSE_CUSTOM.oneofs_by_name['custom_type'].fields.append(
  _SCANPATTERN_PULSE_CUSTOM.fields_by_name['angle_trigger'])
_SCANPATTERN_PULSE_CUSTOM.fields_by_name['angle_trigger'].containing_oneof = _SCANPATTERN_PULSE_CUSTOM.oneofs_by_name['custom_type']
_SCANPATTERN_PULSE_CUSTOM.oneofs_by_name['custom_type'].fields.append(
  _SCANPATTERN_PULSE_CUSTOM.fields_by_name['point_trigger'])
_SCANPATTERN_PULSE_CUSTOM.fields_by_name['point_trigger'].containing_oneof = _SCANPATTERN_PULSE_CUSTOM.oneofs_by_name['custom_type']
_SCANPATTERN_PULSE.fields_by_name['type'].enum_type = _SCANPATTERN_PULSE_TYPE
_SCANPATTERN_PULSE.fields_by_name['frame_mode'].enum_type = _SCANPATTERN_PULSE_FRAMEMODE
_SCANPATTERN_PULSE.fields_by_name['custom'].message_type = _SCANPATTERN_PULSE_CUSTOM
_SCANPATTERN_PULSE.containing_type = _SCANPATTERN
_SCANPATTERN_PULSE_TYPE.containing_type = _SCANPATTERN_PULSE
_SCANPATTERN_PULSE_FRAMEMODE.containing_type = _SCANPATTERN_PULSE
_SCANPATTERN_FRAMERATE.containing_type = _SCANPATTERN
_SCANPATTERN_FILTER_NOISE.containing_type = _SCANPATTERN_FILTER
_SCANPATTERN_FILTER.fields_by_name['intensity'].message_type = blickfeld_dot_common__pb2._OPTIONALVALUERANGE
_SCANPATTERN_FILTER.fields_by_name['ambient_light_level'].message_type = blickfeld_dot_common__pb2._OPTIONALVALUERANGE
_SCANPATTERN_FILTER.fields_by_name['range'].message_type = blickfeld_dot_common__pb2._OPTIONALVALUERANGE
_SCANPATTERN_FILTER.fields_by_name['noise'].message_type = _SCANPATTERN_FILTER_NOISE
_SCANPATTERN_FILTER.containing_type = _SCANPATTERN
_SCANPATTERN.fields_by_name['horizontal'].message_type = _SCANPATTERN_HORIZONTAL
_SCANPATTERN.fields_by_name['vertical'].message_type = _SCANPATTERN_VERTICAL
_SCANPATTERN.fields_by_name['pulse'].message_type = _SCANPATTERN_PULSE
_SCANPATTERN.fields_by_name['frame_rate'].message_type = _SCANPATTERN_FRAMERATE
_SCANPATTERN.fields_by_name['filter'].message_type = _SCANPATTERN_FILTER
_SCANPATTERN.fields_by_name['constraints'].message_type = blickfeld_dot_common__pb2._CONSTRAINT
DESCRIPTOR.message_types_by_name['ScanPattern'] = _SCANPATTERN
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

ScanPattern = _reflection.GeneratedProtocolMessageType('ScanPattern', (_message.Message,), {

  'Horizontal' : _reflection.GeneratedProtocolMessageType('Horizontal', (_message.Message,), {
    'DESCRIPTOR' : _SCANPATTERN_HORIZONTAL,
    '__module__' : 'blickfeld.config.scan_pattern_pb2'
    # @@protoc_insertion_point(class_scope:blickfeld.protocol.config.ScanPattern.Horizontal)
    })
  ,

  'Vertical' : _reflection.GeneratedProtocolMessageType('Vertical', (_message.Message,), {
    'DESCRIPTOR' : _SCANPATTERN_VERTICAL,
    '__module__' : 'blickfeld.config.scan_pattern_pb2'
    # @@protoc_insertion_point(class_scope:blickfeld.protocol.config.ScanPattern.Vertical)
    })
  ,

  'Pulse' : _reflection.GeneratedProtocolMessageType('Pulse', (_message.Message,), {

    'Custom' : _reflection.GeneratedProtocolMessageType('Custom', (_message.Message,), {

      'Duration' : _reflection.GeneratedProtocolMessageType('Duration', (_message.Message,), {
        'DESCRIPTOR' : _SCANPATTERN_PULSE_CUSTOM_DURATION,
        '__module__' : 'blickfeld.config.scan_pattern_pb2'
        # @@protoc_insertion_point(class_scope:blickfeld.protocol.config.ScanPattern.Pulse.Custom.Duration)
        })
      ,

      'AngleTrigger' : _reflection.GeneratedProtocolMessageType('AngleTrigger', (_message.Message,), {

        'Angle' : _reflection.GeneratedProtocolMessageType('Angle', (_message.Message,), {
          'DESCRIPTOR' : _SCANPATTERN_PULSE_CUSTOM_ANGLETRIGGER_ANGLE,
          '__module__' : 'blickfeld.config.scan_pattern_pb2'
          # @@protoc_insertion_point(class_scope:blickfeld.protocol.config.ScanPattern.Pulse.Custom.AngleTrigger.Angle)
          })
        ,
        'DESCRIPTOR' : _SCANPATTERN_PULSE_CUSTOM_ANGLETRIGGER,
        '__module__' : 'blickfeld.config.scan_pattern_pb2'
        # @@protoc_insertion_point(class_scope:blickfeld.protocol.config.ScanPattern.Pulse.Custom.AngleTrigger)
        })
      ,

      'PointTrigger' : _reflection.GeneratedProtocolMessageType('PointTrigger', (_message.Message,), {

        'Point' : _reflection.GeneratedProtocolMessageType('Point', (_message.Message,), {
          'DESCRIPTOR' : _SCANPATTERN_PULSE_CUSTOM_POINTTRIGGER_POINT,
          '__module__' : 'blickfeld.config.scan_pattern_pb2'
          # @@protoc_insertion_point(class_scope:blickfeld.protocol.config.ScanPattern.Pulse.Custom.PointTrigger.Point)
          })
        ,
        'DESCRIPTOR' : _SCANPATTERN_PULSE_CUSTOM_POINTTRIGGER,
        '__module__' : 'blickfeld.config.scan_pattern_pb2'
        # @@protoc_insertion_point(class_scope:blickfeld.protocol.config.ScanPattern.Pulse.Custom.PointTrigger)
        })
      ,
      'DESCRIPTOR' : _SCANPATTERN_PULSE_CUSTOM,
      '__module__' : 'blickfeld.config.scan_pattern_pb2'
      # @@protoc_insertion_point(class_scope:blickfeld.protocol.config.ScanPattern.Pulse.Custom)
      })
    ,
    'DESCRIPTOR' : _SCANPATTERN_PULSE,
    '__module__' : 'blickfeld.config.scan_pattern_pb2'
    # @@protoc_insertion_point(class_scope:blickfeld.protocol.config.ScanPattern.Pulse)
    })
  ,

  'FrameRate' : _reflection.GeneratedProtocolMessageType('FrameRate', (_message.Message,), {
    'DESCRIPTOR' : _SCANPATTERN_FRAMERATE,
    '__module__' : 'blickfeld.config.scan_pattern_pb2'
    # @@protoc_insertion_point(class_scope:blickfeld.protocol.config.ScanPattern.FrameRate)
    })
  ,

  'Filter' : _reflection.GeneratedProtocolMessageType('Filter', (_message.Message,), {

    'Noise' : _reflection.GeneratedProtocolMessageType('Noise', (_message.Message,), {
      'DESCRIPTOR' : _SCANPATTERN_FILTER_NOISE,
      '__module__' : 'blickfeld.config.scan_pattern_pb2'
      # @@protoc_insertion_point(class_scope:blickfeld.protocol.config.ScanPattern.Filter.Noise)
      })
    ,
    'DESCRIPTOR' : _SCANPATTERN_FILTER,
    '__module__' : 'blickfeld.config.scan_pattern_pb2'
    # @@protoc_insertion_point(class_scope:blickfeld.protocol.config.ScanPattern.Filter)
    })
  ,
  'DESCRIPTOR' : _SCANPATTERN,
  '__module__' : 'blickfeld.config.scan_pattern_pb2'
  # @@protoc_insertion_point(class_scope:blickfeld.protocol.config.ScanPattern)
  })
_sym_db.RegisterMessage(ScanPattern)
_sym_db.RegisterMessage(ScanPattern.Horizontal)
_sym_db.RegisterMessage(ScanPattern.Vertical)
_sym_db.RegisterMessage(ScanPattern.Pulse)
_sym_db.RegisterMessage(ScanPattern.Pulse.Custom)
_sym_db.RegisterMessage(ScanPattern.Pulse.Custom.Duration)
_sym_db.RegisterMessage(ScanPattern.Pulse.Custom.AngleTrigger)
_sym_db.RegisterMessage(ScanPattern.Pulse.Custom.AngleTrigger.Angle)
_sym_db.RegisterMessage(ScanPattern.Pulse.Custom.PointTrigger)
_sym_db.RegisterMessage(ScanPattern.Pulse.Custom.PointTrigger.Point)
_sym_db.RegisterMessage(ScanPattern.FrameRate)
_sym_db.RegisterMessage(ScanPattern.Filter)
_sym_db.RegisterMessage(ScanPattern.Filter.Noise)


_SCANPATTERN_HORIZONTAL.fields_by_name['fov']._options = None
_SCANPATTERN_VERTICAL.fields_by_name['fov']._options = None
_SCANPATTERN_VERTICAL.fields_by_name['scanlines_up']._options = None
_SCANPATTERN_VERTICAL.fields_by_name['scanlines_down']._options = None
_SCANPATTERN_PULSE_CUSTOM_DURATION.fields_by_name['external_0']._options = None
_SCANPATTERN_PULSE_CUSTOM_DURATION.fields_by_name['external_1']._options = None
_SCANPATTERN_PULSE_CUSTOM_ANGLETRIGGER_ANGLE.fields_by_name['scanline_id']._options = None
_SCANPATTERN_PULSE.fields_by_name['angle_spacing']._options = None
_SCANPATTERN_PULSE.fields_by_name['custom']._options = None
_SCANPATTERN_FRAMERATE.fields_by_name['target']._options = None
_SCANPATTERN_FRAMERATE.fields_by_name['maximum']._options = None
_SCANPATTERN_FRAMERATE.fields_by_name['reference_time_offset']._options = None
_SCANPATTERN_FILTER_NOISE.fields_by_name['offset']._options = None
_SCANPATTERN_FILTER_NOISE.fields_by_name['gain']._options = None
_SCANPATTERN_FILTER.fields_by_name['max_number_of_returns_per_point']._options = None
_SCANPATTERN_FILTER.fields_by_name['noise']._options = None
# @@protoc_insertion_point(module_scope)
