Browse Source

a stable version.
chutian border voxelgrid debug, add pcl viewer.

yct 3 years ago
parent
commit
f03140c4b6

+ 1 - 1
CMakeLists.txt

@@ -5,7 +5,7 @@ cmake_minimum_required(VERSION 3.5)
 set (CMAKE_CXX_STANDARD 11)
 set(CMAKE_BUILD_TYPE "Release")
 
-set(PCL_DIR "/home/youchen/pcl-1.8/share/pcl-1.8")
+# set(PCL_DIR "/home/youchen/pcl-1.8/share/pcl-1.8")
 #nanomsg
 find_package(PkgConfig REQUIRED)
 pkg_check_modules(nanomsg REQUIRED nanomsg)

+ 50 - 77
communication/communication.pb.cc

@@ -7,7 +7,6 @@
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/port.h>
-#include <google/protobuf/stubs/once.h>
 #include <google/protobuf/io/coded_stream.h>
 #include <google/protobuf/wire_format_lite_inl.h>
 #include <google/protobuf/descriptor.h>
@@ -19,6 +18,10 @@
 #include "third_party/protobuf/version.h"
 #endif
 // @@protoc_insertion_point(includes)
+
+namespace protobuf_communication_2eproto {
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_communication_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Communication_parameter;
+}  // namespace protobuf_communication_2eproto
 namespace Communication_proto {
 class Communication_parameterDefaultTypeInternal {
  public:
@@ -32,14 +35,9 @@ class Communication_parameter_allDefaultTypeInternal {
 } _Communication_parameter_all_default_instance_;
 }  // namespace Communication_proto
 namespace protobuf_communication_2eproto {
-void InitDefaultsCommunication_parameterImpl() {
+static void InitDefaultsCommunication_parameter() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   {
     void* ptr = &::Communication_proto::_Communication_parameter_default_instance_;
     new (ptr) ::Communication_proto::Communication_parameter();
@@ -48,20 +46,12 @@ void InitDefaultsCommunication_parameterImpl() {
   ::Communication_proto::Communication_parameter::InitAsDefaultInstance();
 }
 
-void InitDefaultsCommunication_parameter() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsCommunication_parameterImpl);
-}
+::google::protobuf::internal::SCCInfo<0> scc_info_Communication_parameter =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsCommunication_parameter}, {}};
 
-void InitDefaultsCommunication_parameter_allImpl() {
+static void InitDefaultsCommunication_parameter_all() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  protobuf_communication_2eproto::InitDefaultsCommunication_parameter();
   {
     void* ptr = &::Communication_proto::_Communication_parameter_all_default_instance_;
     new (ptr) ::Communication_proto::Communication_parameter_all();
@@ -70,9 +60,13 @@ void InitDefaultsCommunication_parameter_allImpl() {
   ::Communication_proto::Communication_parameter_all::InitAsDefaultInstance();
 }
 
-void InitDefaultsCommunication_parameter_all() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsCommunication_parameter_allImpl);
+::google::protobuf::internal::SCCInfo<1> scc_info_Communication_parameter_all =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsCommunication_parameter_all}, {
+      &protobuf_communication_2eproto::scc_info_Communication_parameter.base,}};
+
+void InitDefaults() {
+  ::google::protobuf::internal::InitSCC(&scc_info_Communication_parameter.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_Communication_parameter_all.base);
 }
 
 ::google::protobuf::Metadata file_level_metadata[2];
@@ -107,15 +101,14 @@ static ::google::protobuf::Message const * const file_default_instances[] = {
 
 void protobuf_AssignDescriptors() {
   AddDescriptors();
-  ::google::protobuf::MessageFactory* factory = NULL;
   AssignDescriptors(
-      "communication.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+      "communication.proto", schemas, file_default_instances, TableStruct::offsets,
       file_level_metadata, NULL, NULL);
 }
 
 void protobuf_AssignDescriptorsOnce() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
+  static ::google::protobuf::internal::once_flag once;
+  ::google::protobuf::internal::call_once(once, protobuf_AssignDescriptors);
 }
 
 void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
@@ -141,8 +134,8 @@ void AddDescriptorsImpl() {
 }
 
 void AddDescriptors() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+  static ::google::protobuf::internal::once_flag once;
+  ::google::protobuf::internal::call_once(once, AddDescriptorsImpl);
 }
 // Force AddDescriptors() to be called at dynamic initialization time.
 struct StaticDescriptorInitializer {
@@ -164,9 +157,8 @@ const int Communication_parameter::kConnectStringVectorFieldNumber;
 
 Communication_parameter::Communication_parameter()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_communication_2eproto::InitDefaultsCommunication_parameter();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_communication_2eproto::scc_info_Communication_parameter.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:Communication_proto.Communication_parameter)
 }
@@ -174,7 +166,6 @@ Communication_parameter::Communication_parameter(const Communication_parameter&
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
       _has_bits_(from._has_bits_),
-      _cached_size_(0),
       connect_string_vector_(from.connect_string_vector_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   bind_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
@@ -185,7 +176,6 @@ Communication_parameter::Communication_parameter(const Communication_parameter&
 }
 
 void Communication_parameter::SharedCtor() {
-  _cached_size_ = 0;
   bind_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 
@@ -199,9 +189,7 @@ void Communication_parameter::SharedDtor() {
 }
 
 void Communication_parameter::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* Communication_parameter::descriptor() {
   ::protobuf_communication_2eproto::protobuf_AssignDescriptorsOnce();
@@ -209,17 +197,10 @@ const ::google::protobuf::Descriptor* Communication_parameter::descriptor() {
 }
 
 const Communication_parameter& Communication_parameter::default_instance() {
-  ::protobuf_communication_2eproto::InitDefaultsCommunication_parameter();
+  ::google::protobuf::internal::InitSCC(&protobuf_communication_2eproto::scc_info_Communication_parameter.base);
   return *internal_default_instance();
 }
 
-Communication_parameter* Communication_parameter::New(::google::protobuf::Arena* arena) const {
-  Communication_parameter* n = new Communication_parameter;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void Communication_parameter::Clear() {
 // @@protoc_insertion_point(message_clear_start:Communication_proto.Communication_parameter)
@@ -230,8 +211,7 @@ void Communication_parameter::Clear() {
   connect_string_vector_.Clear();
   cached_has_bits = _has_bits_[0];
   if (cached_has_bits & 0x00000001u) {
-    GOOGLE_DCHECK(!bind_string_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
-    (*bind_string_.UnsafeRawStringPointer())->clear();
+    bind_string_.ClearNonDefaultToEmptyNoArena();
   }
   _has_bits_.Clear();
   _internal_metadata_.Clear();
@@ -243,7 +223,7 @@ bool Communication_parameter::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:Communication_proto.Communication_parameter)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -396,9 +376,7 @@ size_t Communication_parameter::ByteSizeLong() const {
   }
 
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -455,11 +433,11 @@ void Communication_parameter::Swap(Communication_parameter* other) {
 }
 void Communication_parameter::InternalSwap(Communication_parameter* other) {
   using std::swap;
-  connect_string_vector_.InternalSwap(&other->connect_string_vector_);
-  bind_string_.Swap(&other->bind_string_);
+  connect_string_vector_.InternalSwap(CastToBase(&other->connect_string_vector_));
+  bind_string_.Swap(&other->bind_string_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata Communication_parameter::GetMetadata() const {
@@ -480,17 +458,15 @@ const int Communication_parameter_all::kCommunicationParametersFieldNumber;
 
 Communication_parameter_all::Communication_parameter_all()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_communication_2eproto::InitDefaultsCommunication_parameter_all();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_communication_2eproto::scc_info_Communication_parameter_all.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:Communication_proto.Communication_parameter_all)
 }
 Communication_parameter_all::Communication_parameter_all(const Communication_parameter_all& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   if (from.has_communication_parameters()) {
     communication_parameters_ = new ::Communication_proto::Communication_parameter(*from.communication_parameters_);
@@ -501,7 +477,6 @@ Communication_parameter_all::Communication_parameter_all(const Communication_par
 }
 
 void Communication_parameter_all::SharedCtor() {
-  _cached_size_ = 0;
   communication_parameters_ = NULL;
 }
 
@@ -515,9 +490,7 @@ void Communication_parameter_all::SharedDtor() {
 }
 
 void Communication_parameter_all::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* Communication_parameter_all::descriptor() {
   ::protobuf_communication_2eproto::protobuf_AssignDescriptorsOnce();
@@ -525,17 +498,10 @@ const ::google::protobuf::Descriptor* Communication_parameter_all::descriptor()
 }
 
 const Communication_parameter_all& Communication_parameter_all::default_instance() {
-  ::protobuf_communication_2eproto::InitDefaultsCommunication_parameter_all();
+  ::google::protobuf::internal::InitSCC(&protobuf_communication_2eproto::scc_info_Communication_parameter_all.base);
   return *internal_default_instance();
 }
 
-Communication_parameter_all* Communication_parameter_all::New(::google::protobuf::Arena* arena) const {
-  Communication_parameter_all* n = new Communication_parameter_all;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void Communication_parameter_all::Clear() {
 // @@protoc_insertion_point(message_clear_start:Communication_proto.Communication_parameter_all)
@@ -558,7 +524,7 @@ bool Communication_parameter_all::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:Communication_proto.Communication_parameter_all)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -604,7 +570,7 @@ void Communication_parameter_all::SerializeWithCachedSizes(
   // optional .Communication_proto.Communication_parameter communication_parameters = 1;
   if (cached_has_bits & 0x00000001u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, *this->communication_parameters_, output);
+      1, this->_internal_communication_parameters(), output);
   }
 
   if (_internal_metadata_.have_unknown_fields()) {
@@ -626,7 +592,7 @@ void Communication_parameter_all::SerializeWithCachedSizes(
   if (cached_has_bits & 0x00000001u) {
     target = ::google::protobuf::internal::WireFormatLite::
       InternalWriteMessageToArray(
-        1, *this->communication_parameters_, deterministic, target);
+        1, this->_internal_communication_parameters(), deterministic, target);
   }
 
   if (_internal_metadata_.have_unknown_fields()) {
@@ -650,13 +616,11 @@ size_t Communication_parameter_all::ByteSizeLong() const {
   if (has_communication_parameters()) {
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->communication_parameters_);
+        *communication_parameters_);
   }
 
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -714,7 +678,6 @@ void Communication_parameter_all::InternalSwap(Communication_parameter_all* othe
   swap(communication_parameters_, other->communication_parameters_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata Communication_parameter_all::GetMetadata() const {
@@ -725,5 +688,15 @@ void Communication_parameter_all::InternalSwap(Communication_parameter_all* othe
 
 // @@protoc_insertion_point(namespace_scope)
 }  // namespace Communication_proto
+namespace google {
+namespace protobuf {
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::Communication_proto::Communication_parameter* Arena::CreateMaybeMessage< ::Communication_proto::Communication_parameter >(Arena* arena) {
+  return Arena::CreateInternal< ::Communication_proto::Communication_parameter >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::Communication_proto::Communication_parameter_all* Arena::CreateMaybeMessage< ::Communication_proto::Communication_parameter_all >(Arena* arena) {
+  return Arena::CreateInternal< ::Communication_proto::Communication_parameter_all >(arena);
+}
+}  // namespace protobuf
+}  // namespace google
 
 // @@protoc_insertion_point(global_scope)

+ 65 - 47
communication/communication.pb.h

@@ -1,19 +1,19 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: communication.proto
 
-#ifndef PROTOBUF_communication_2eproto__INCLUDED
-#define PROTOBUF_communication_2eproto__INCLUDED
+#ifndef PROTOBUF_INCLUDED_communication_2eproto
+#define PROTOBUF_INCLUDED_communication_2eproto
 
 #include <string>
 
 #include <google/protobuf/stubs/common.h>
 
-#if GOOGLE_PROTOBUF_VERSION < 3005000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #endif
-#if 3005000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
@@ -24,12 +24,14 @@
 #include <google/protobuf/arenastring.h>
 #include <google/protobuf/generated_message_table_driven.h>
 #include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/inlined_string_field.h>
 #include <google/protobuf/metadata.h>
 #include <google/protobuf/message.h>
 #include <google/protobuf/repeated_field.h>  // IWYU pragma: export
 #include <google/protobuf/extension_set.h>  // IWYU pragma: export
 #include <google/protobuf/unknown_field_set.h>
 // @@protoc_insertion_point(includes)
+#define PROTOBUF_INTERNAL_EXPORT_protobuf_communication_2eproto 
 
 namespace protobuf_communication_2eproto {
 // Internal implementation detail -- do not use these members.
@@ -42,14 +44,6 @@ struct TableStruct {
   static const ::google::protobuf::uint32 offsets[];
 };
 void AddDescriptors();
-void InitDefaultsCommunication_parameterImpl();
-void InitDefaultsCommunication_parameter();
-void InitDefaultsCommunication_parameter_allImpl();
-void InitDefaultsCommunication_parameter_all();
-inline void InitDefaults() {
-  InitDefaultsCommunication_parameter();
-  InitDefaultsCommunication_parameter_all();
-}
 }  // namespace protobuf_communication_2eproto
 namespace Communication_proto {
 class Communication_parameter;
@@ -59,6 +53,12 @@ class Communication_parameter_all;
 class Communication_parameter_allDefaultTypeInternal;
 extern Communication_parameter_allDefaultTypeInternal _Communication_parameter_all_default_instance_;
 }  // namespace Communication_proto
+namespace google {
+namespace protobuf {
+template<> ::Communication_proto::Communication_parameter* Arena::CreateMaybeMessage<::Communication_proto::Communication_parameter>(Arena*);
+template<> ::Communication_proto::Communication_parameter_all* Arena::CreateMaybeMessage<::Communication_proto::Communication_parameter_all>(Arena*);
+}  // namespace protobuf
+}  // namespace google
 namespace Communication_proto {
 
 // ===================================================================
@@ -104,7 +104,7 @@ class Communication_parameter : public ::google::protobuf::Message /* @@protoc_i
     return reinterpret_cast<const Communication_parameter*>(
                &_Communication_parameter_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     0;
 
   void Swap(Communication_parameter* other);
@@ -114,28 +114,33 @@ class Communication_parameter : public ::google::protobuf::Message /* @@protoc_i
 
   // implements Message ----------------------------------------------
 
-  inline Communication_parameter* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline Communication_parameter* New() const final {
+    return CreateMaybeMessage<Communication_parameter>(NULL);
+  }
 
-  Communication_parameter* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  Communication_parameter* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<Communication_parameter>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const Communication_parameter& from);
   void MergeFrom(const Communication_parameter& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(Communication_parameter* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -146,7 +151,7 @@ class Communication_parameter : public ::google::protobuf::Message /* @@protoc_i
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -196,11 +201,10 @@ class Communication_parameter : public ::google::protobuf::Message /* @@protoc_i
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::google::protobuf::RepeatedPtrField< ::std::string> connect_string_vector_;
   ::google::protobuf::internal::ArenaStringPtr bind_string_;
   friend struct ::protobuf_communication_2eproto::TableStruct;
-  friend void ::protobuf_communication_2eproto::InitDefaultsCommunication_parameterImpl();
 };
 // -------------------------------------------------------------------
 
@@ -245,7 +249,7 @@ class Communication_parameter_all : public ::google::protobuf::Message /* @@prot
     return reinterpret_cast<const Communication_parameter_all*>(
                &_Communication_parameter_all_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     1;
 
   void Swap(Communication_parameter_all* other);
@@ -255,28 +259,33 @@ class Communication_parameter_all : public ::google::protobuf::Message /* @@prot
 
   // implements Message ----------------------------------------------
 
-  inline Communication_parameter_all* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline Communication_parameter_all* New() const final {
+    return CreateMaybeMessage<Communication_parameter_all>(NULL);
+  }
 
-  Communication_parameter_all* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  Communication_parameter_all* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<Communication_parameter_all>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const Communication_parameter_all& from);
   void MergeFrom(const Communication_parameter_all& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(Communication_parameter_all* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -287,7 +296,7 @@ class Communication_parameter_all : public ::google::protobuf::Message /* @@prot
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -297,6 +306,9 @@ class Communication_parameter_all : public ::google::protobuf::Message /* @@prot
   bool has_communication_parameters() const;
   void clear_communication_parameters();
   static const int kCommunicationParametersFieldNumber = 1;
+  private:
+  const ::Communication_proto::Communication_parameter& _internal_communication_parameters() const;
+  public:
   const ::Communication_proto::Communication_parameter& communication_parameters() const;
   ::Communication_proto::Communication_parameter* release_communication_parameters();
   ::Communication_proto::Communication_parameter* mutable_communication_parameters();
@@ -309,10 +321,9 @@ class Communication_parameter_all : public ::google::protobuf::Message /* @@prot
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::Communication_proto::Communication_parameter* communication_parameters_;
   friend struct ::protobuf_communication_2eproto::TableStruct;
-  friend void ::protobuf_communication_2eproto::InitDefaultsCommunication_parameter_allImpl();
 };
 // ===================================================================
 
@@ -375,8 +386,11 @@ inline ::std::string* Communication_parameter::mutable_bind_string() {
 }
 inline ::std::string* Communication_parameter::release_bind_string() {
   // @@protoc_insertion_point(field_release:Communication_proto.Communication_parameter.bind_string)
+  if (!has_bind_string()) {
+    return NULL;
+  }
   clear_has_bind_string();
-  return bind_string_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  return bind_string_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void Communication_parameter::set_allocated_bind_string(::std::string* bind_string) {
   if (bind_string != NULL) {
@@ -475,6 +489,9 @@ inline void Communication_parameter_all::clear_communication_parameters() {
   if (communication_parameters_ != NULL) communication_parameters_->Clear();
   clear_has_communication_parameters();
 }
+inline const ::Communication_proto::Communication_parameter& Communication_parameter_all::_internal_communication_parameters() const {
+  return *communication_parameters_;
+}
 inline const ::Communication_proto::Communication_parameter& Communication_parameter_all::communication_parameters() const {
   const ::Communication_proto::Communication_parameter* p = communication_parameters_;
   // @@protoc_insertion_point(field_get:Communication_proto.Communication_parameter_all.communication_parameters)
@@ -491,7 +508,8 @@ inline ::Communication_proto::Communication_parameter* Communication_parameter_a
 inline ::Communication_proto::Communication_parameter* Communication_parameter_all::mutable_communication_parameters() {
   set_has_communication_parameters();
   if (communication_parameters_ == NULL) {
-    communication_parameters_ = new ::Communication_proto::Communication_parameter;
+    auto* p = CreateMaybeMessage<::Communication_proto::Communication_parameter>(GetArenaNoVirtual());
+    communication_parameters_ = p;
   }
   // @@protoc_insertion_point(field_mutable:Communication_proto.Communication_parameter_all.communication_parameters)
   return communication_parameters_;
@@ -527,4 +545,4 @@ inline void Communication_parameter_all::set_allocated_communication_parameters(
 
 // @@protoc_insertion_point(global_scope)
 
-#endif  // PROTOBUF_communication_2eproto__INCLUDED
+#endif  // PROTOBUF_INCLUDED_communication_2eproto

+ 38 - 3
main.cpp

@@ -1,6 +1,7 @@
 //
 // Created by zx on 2020/6/18.
 //
+#include <pcl/visualization/pcl_visualizer.h> 
 
 #include <iostream>
 #include "./error_code/error_code.h"
@@ -19,6 +20,11 @@
 #include "./velodyne_lidar/velodyne_manager.h"
 
 #define LIVOX_NUMBER	     2
+#define POINT_DEBUG
+
+#ifdef POINT_DEBUG
+std::shared_ptr<pcl::visualization::PCLVisualizer> gp_visualizer;
+#endif
 
 GOOGLE_GLOG_DLL_DECL void shut_down_logging(const char* data, int size)
 {
@@ -51,6 +57,15 @@ int main(int argc,char* argv[])
 	Error_manager t_error;
 	Error_manager t_result ;
 
+#ifdef POINT_DEBUG
+	pcl::PointCloud<pcl::PointXYZ>::Ptr t_cloud = pcl::PointCloud<pcl::PointXYZ>::Ptr(new pcl::PointCloud<pcl::PointXYZ>);
+	pcl::visualization::PCLVisualizer viewer("Viewer");      //创建viewer对象
+	gp_visualizer = std::shared_ptr<pcl::visualization::PCLVisualizer>(&viewer);
+	gp_visualizer->addCoordinateSystem();
+	gp_visualizer->setBackgroundColor(0, 0, 0);
+	gp_visualizer->initCameraParameters();
+	gp_visualizer->addPointCloud(t_cloud, "region4");
+#endif
 
 	const char* logPath = "./log/";
 	google::InitGoogleLogging("LidarMeasurement");
@@ -108,10 +123,30 @@ int main(int argc,char* argv[])
 	// test_whole_process();
 //    usleep(1000*5000);
     char ch='x' ;
+	pcl::PointCloud<pcl::PointXYZ>::Ptr t_region_cloud = pcl::PointCloud<pcl::PointXYZ>::Ptr(new pcl::PointCloud<pcl::PointXYZ>);
     while(ch != 'q') {
-        std::cout<<"please input q to quit system."<<std::endl;
-        std::cin >> ch;
-    }
+       
+#ifdef POINT_DEBUG
+		std::map<int, Ground_region *> t_ground_region_map = Velodyne_manager::get_instance_references().get_ground_region_map();
+		for (auto iter = t_ground_region_map.begin(); iter != t_ground_region_map.end(); ++iter)
+		{
+			if (iter->first == 4)
+			{
+				t_region_cloud->clear();
+				// 获取区域点云
+				iter->second->get_region_cloud(t_region_cloud, Ground_region::Region_cloud_type::filtered);
+				// gp_visualizer->showCloud(t_region_cloud);
+				gp_visualizer->updatePointCloud(t_region_cloud, "region4");
+				// LOG(INFO) << "pcl cloud updated." <<t_region_cloud->size();
+			}
+		}
+		gp_visualizer->spinOnce();
+		usleep(100);
+#else
+		std::cout << "please input q to quit system." << std::endl;
+		std::cin >> ch;
+#endif
+	}
 
 	// 反初始化
 	System_communication::get_instance_references().communication_uninit();

File diff suppressed because it is too large
+ 274 - 430
message/measure_message.pb.cc


File diff suppressed because it is too large
+ 410 - 256
message/measure_message.pb.h


+ 120 - 218
message/message_base.pb.cc

@@ -7,7 +7,6 @@
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/port.h>
-#include <google/protobuf/stubs/once.h>
 #include <google/protobuf/io/coded_stream.h>
 #include <google/protobuf/wire_format_lite_inl.h>
 #include <google/protobuf/descriptor.h>
@@ -19,6 +18,11 @@
 #include "third_party/protobuf/version.h"
 #endif
 // @@protoc_insertion_point(includes)
+
+namespace protobuf_message_5fbase_2eproto {
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_message_5fbase_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Base_info;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_message_5fbase_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Car_info;
+}  // namespace protobuf_message_5fbase_2eproto
 namespace message {
 class Base_infoDefaultTypeInternal {
  public:
@@ -52,14 +56,9 @@ class Parkspace_infoDefaultTypeInternal {
 } _Parkspace_info_default_instance_;
 }  // namespace message
 namespace protobuf_message_5fbase_2eproto {
-void InitDefaultsBase_infoImpl() {
+static void InitDefaultsBase_info() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   {
     void* ptr = &::message::_Base_info_default_instance_;
     new (ptr) ::message::Base_info();
@@ -68,20 +67,12 @@ void InitDefaultsBase_infoImpl() {
   ::message::Base_info::InitAsDefaultInstance();
 }
 
-void InitDefaultsBase_info() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsBase_infoImpl);
-}
+::google::protobuf::internal::SCCInfo<0> scc_info_Base_info =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsBase_info}, {}};
 
-void InitDefaultsBase_msgImpl() {
+static void InitDefaultsBase_msg() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  protobuf_message_5fbase_2eproto::InitDefaultsBase_info();
   {
     void* ptr = &::message::_Base_msg_default_instance_;
     new (ptr) ::message::Base_msg();
@@ -90,19 +81,13 @@ void InitDefaultsBase_msgImpl() {
   ::message::Base_msg::InitAsDefaultInstance();
 }
 
-void InitDefaultsBase_msg() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsBase_msgImpl);
-}
+::google::protobuf::internal::SCCInfo<1> scc_info_Base_msg =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsBase_msg}, {
+      &protobuf_message_5fbase_2eproto::scc_info_Base_info.base,}};
 
-void InitDefaultsError_managerImpl() {
+static void InitDefaultsError_manager() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   {
     void* ptr = &::message::_Error_manager_default_instance_;
     new (ptr) ::message::Error_manager();
@@ -111,19 +96,12 @@ void InitDefaultsError_managerImpl() {
   ::message::Error_manager::InitAsDefaultInstance();
 }
 
-void InitDefaultsError_manager() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsError_managerImpl);
-}
+::google::protobuf::internal::SCCInfo<0> scc_info_Error_manager =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsError_manager}, {}};
 
-void InitDefaultsLocate_informationImpl() {
+static void InitDefaultsLocate_information() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   {
     void* ptr = &::message::_Locate_information_default_instance_;
     new (ptr) ::message::Locate_information();
@@ -132,19 +110,12 @@ void InitDefaultsLocate_informationImpl() {
   ::message::Locate_information::InitAsDefaultInstance();
 }
 
-void InitDefaultsLocate_information() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsLocate_informationImpl);
-}
+::google::protobuf::internal::SCCInfo<0> scc_info_Locate_information =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsLocate_information}, {}};
 
-void InitDefaultsCar_infoImpl() {
+static void InitDefaultsCar_info() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   {
     void* ptr = &::message::_Car_info_default_instance_;
     new (ptr) ::message::Car_info();
@@ -153,20 +124,12 @@ void InitDefaultsCar_infoImpl() {
   ::message::Car_info::InitAsDefaultInstance();
 }
 
-void InitDefaultsCar_info() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsCar_infoImpl);
-}
+::google::protobuf::internal::SCCInfo<0> scc_info_Car_info =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsCar_info}, {}};
 
-void InitDefaultsParkspace_infoImpl() {
+static void InitDefaultsParkspace_info() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  protobuf_message_5fbase_2eproto::InitDefaultsCar_info();
   {
     void* ptr = &::message::_Parkspace_info_default_instance_;
     new (ptr) ::message::Parkspace_info();
@@ -175,9 +138,17 @@ void InitDefaultsParkspace_infoImpl() {
   ::message::Parkspace_info::InitAsDefaultInstance();
 }
 
-void InitDefaultsParkspace_info() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsParkspace_infoImpl);
+::google::protobuf::internal::SCCInfo<1> scc_info_Parkspace_info =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsParkspace_info}, {
+      &protobuf_message_5fbase_2eproto::scc_info_Car_info.base,}};
+
+void InitDefaults() {
+  ::google::protobuf::internal::InitSCC(&scc_info_Base_info.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_Base_msg.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_Error_manager.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_Locate_information.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_Car_info.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_Parkspace_info.base);
 }
 
 ::google::protobuf::Metadata file_level_metadata[6];
@@ -321,15 +292,14 @@ static ::google::protobuf::Message const * const file_default_instances[] = {
 
 void protobuf_AssignDescriptors() {
   AddDescriptors();
-  ::google::protobuf::MessageFactory* factory = NULL;
   AssignDescriptors(
-      "message_base.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+      "message_base.proto", schemas, file_default_instances, TableStruct::offsets,
       file_level_metadata, file_level_enum_descriptors, NULL);
 }
 
 void protobuf_AssignDescriptorsOnce() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
+  static ::google::protobuf::internal::once_flag once;
+  ::google::protobuf::internal::call_once(once, protobuf_AssignDescriptors);
 }
 
 void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
@@ -460,8 +430,8 @@ void AddDescriptorsImpl() {
 }
 
 void AddDescriptors() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+  static ::google::protobuf::internal::once_flag once;
+  ::google::protobuf::internal::call_once(once, AddDescriptorsImpl);
 }
 // Force AddDescriptors() to be called at dynamic initialization time.
 struct StaticDescriptorInitializer {
@@ -742,17 +712,15 @@ const int Base_info::kReceiverFieldNumber;
 
 Base_info::Base_info()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_message_5fbase_2eproto::InitDefaultsBase_info();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_message_5fbase_2eproto::scc_info_Base_info.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:message.Base_info)
 }
 Base_info::Base_info(const Base_info& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   ::memcpy(&msg_type_, &from.msg_type_,
     static_cast<size_t>(reinterpret_cast<char*>(&receiver_) -
@@ -761,7 +729,6 @@ Base_info::Base_info(const Base_info& from)
 }
 
 void Base_info::SharedCtor() {
-  _cached_size_ = 0;
   ::memset(&msg_type_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&receiver_) -
       reinterpret_cast<char*>(&msg_type_)) + sizeof(receiver_));
@@ -776,9 +743,7 @@ void Base_info::SharedDtor() {
 }
 
 void Base_info::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* Base_info::descriptor() {
   ::protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
@@ -786,17 +751,10 @@ const ::google::protobuf::Descriptor* Base_info::descriptor() {
 }
 
 const Base_info& Base_info::default_instance() {
-  ::protobuf_message_5fbase_2eproto::InitDefaultsBase_info();
+  ::google::protobuf::internal::InitSCC(&protobuf_message_5fbase_2eproto::scc_info_Base_info.base);
   return *internal_default_instance();
 }
 
-Base_info* Base_info::New(::google::protobuf::Arena* arena) const {
-  Base_info* n = new Base_info;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void Base_info::Clear() {
 // @@protoc_insertion_point(message_clear_start:message.Base_info)
@@ -820,7 +778,7 @@ bool Base_info::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:message.Base_info)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -1051,9 +1009,7 @@ size_t Base_info::ByteSizeLong() const {
   }
 
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -1128,7 +1084,6 @@ void Base_info::InternalSwap(Base_info* other) {
   swap(receiver_, other->receiver_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata Base_info::GetMetadata() const {
@@ -1149,17 +1104,15 @@ const int Base_msg::kBaseInfoFieldNumber;
 
 Base_msg::Base_msg()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_message_5fbase_2eproto::InitDefaultsBase_msg();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_message_5fbase_2eproto::scc_info_Base_msg.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:message.Base_msg)
 }
 Base_msg::Base_msg(const Base_msg& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   if (from.has_base_info()) {
     base_info_ = new ::message::Base_info(*from.base_info_);
@@ -1170,7 +1123,6 @@ Base_msg::Base_msg(const Base_msg& from)
 }
 
 void Base_msg::SharedCtor() {
-  _cached_size_ = 0;
   base_info_ = NULL;
 }
 
@@ -1184,9 +1136,7 @@ void Base_msg::SharedDtor() {
 }
 
 void Base_msg::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* Base_msg::descriptor() {
   ::protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
@@ -1194,17 +1144,10 @@ const ::google::protobuf::Descriptor* Base_msg::descriptor() {
 }
 
 const Base_msg& Base_msg::default_instance() {
-  ::protobuf_message_5fbase_2eproto::InitDefaultsBase_msg();
+  ::google::protobuf::internal::InitSCC(&protobuf_message_5fbase_2eproto::scc_info_Base_msg.base);
   return *internal_default_instance();
 }
 
-Base_msg* Base_msg::New(::google::protobuf::Arena* arena) const {
-  Base_msg* n = new Base_msg;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void Base_msg::Clear() {
 // @@protoc_insertion_point(message_clear_start:message.Base_msg)
@@ -1227,7 +1170,7 @@ bool Base_msg::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:message.Base_msg)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -1273,7 +1216,7 @@ void Base_msg::SerializeWithCachedSizes(
   // required .message.Base_info base_info = 1;
   if (cached_has_bits & 0x00000001u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, *this->base_info_, output);
+      1, this->_internal_base_info(), output);
   }
 
   if (_internal_metadata_.have_unknown_fields()) {
@@ -1295,7 +1238,7 @@ void Base_msg::SerializeWithCachedSizes(
   if (cached_has_bits & 0x00000001u) {
     target = ::google::protobuf::internal::WireFormatLite::
       InternalWriteMessageToArray(
-        1, *this->base_info_, deterministic, target);
+        1, this->_internal_base_info(), deterministic, target);
   }
 
   if (_internal_metadata_.have_unknown_fields()) {
@@ -1319,12 +1262,10 @@ size_t Base_msg::ByteSizeLong() const {
   if (has_base_info()) {
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->base_info_);
+        *base_info_);
   }
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -1386,7 +1327,6 @@ void Base_msg::InternalSwap(Base_msg* other) {
   swap(base_info_, other->base_info_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata Base_msg::GetMetadata() const {
@@ -1407,17 +1347,15 @@ const int Error_manager::kErrorDescriptionFieldNumber;
 
 Error_manager::Error_manager()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_message_5fbase_2eproto::InitDefaultsError_manager();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_message_5fbase_2eproto::scc_info_Error_manager.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:message.Error_manager)
 }
 Error_manager::Error_manager(const Error_manager& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   error_description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   if (from.has_error_description()) {
@@ -1430,7 +1368,6 @@ Error_manager::Error_manager(const Error_manager& from)
 }
 
 void Error_manager::SharedCtor() {
-  _cached_size_ = 0;
   error_description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   ::memset(&error_code_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&error_level_) -
@@ -1447,9 +1384,7 @@ void Error_manager::SharedDtor() {
 }
 
 void Error_manager::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* Error_manager::descriptor() {
   ::protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
@@ -1457,17 +1392,10 @@ const ::google::protobuf::Descriptor* Error_manager::descriptor() {
 }
 
 const Error_manager& Error_manager::default_instance() {
-  ::protobuf_message_5fbase_2eproto::InitDefaultsError_manager();
+  ::google::protobuf::internal::InitSCC(&protobuf_message_5fbase_2eproto::scc_info_Error_manager.base);
   return *internal_default_instance();
 }
 
-Error_manager* Error_manager::New(::google::protobuf::Arena* arena) const {
-  Error_manager* n = new Error_manager;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void Error_manager::Clear() {
 // @@protoc_insertion_point(message_clear_start:message.Error_manager)
@@ -1477,8 +1405,7 @@ void Error_manager::Clear() {
 
   cached_has_bits = _has_bits_[0];
   if (cached_has_bits & 0x00000001u) {
-    GOOGLE_DCHECK(!error_description_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
-    (*error_description_.UnsafeRawStringPointer())->clear();
+    error_description_.ClearNonDefaultToEmptyNoArena();
   }
   if (cached_has_bits & 6u) {
     ::memset(&error_code_, 0, static_cast<size_t>(
@@ -1495,7 +1422,7 @@ bool Error_manager::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:message.Error_manager)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -1671,9 +1598,7 @@ size_t Error_manager::ByteSizeLong() const {
   }
 
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -1740,12 +1665,12 @@ void Error_manager::Swap(Error_manager* other) {
 }
 void Error_manager::InternalSwap(Error_manager* other) {
   using std::swap;
-  error_description_.Swap(&other->error_description_);
+  error_description_.Swap(&other->error_description_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
   swap(error_code_, other->error_code_);
   swap(error_level_, other->error_level_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata Error_manager::GetMetadata() const {
@@ -1775,17 +1700,15 @@ const int Locate_information::kUniformedCarYFieldNumber;
 
 Locate_information::Locate_information()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_message_5fbase_2eproto::InitDefaultsLocate_information();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_message_5fbase_2eproto::scc_info_Locate_information.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:message.Locate_information)
 }
 Locate_information::Locate_information(const Locate_information& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   ::memcpy(&locate_x_, &from.locate_x_,
     static_cast<size_t>(reinterpret_cast<char*>(&uniformed_car_y_) -
@@ -1794,7 +1717,6 @@ Locate_information::Locate_information(const Locate_information& from)
 }
 
 void Locate_information::SharedCtor() {
-  _cached_size_ = 0;
   ::memset(&locate_x_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&uniformed_car_y_) -
       reinterpret_cast<char*>(&locate_x_)) + sizeof(uniformed_car_y_));
@@ -1809,9 +1731,7 @@ void Locate_information::SharedDtor() {
 }
 
 void Locate_information::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* Locate_information::descriptor() {
   ::protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
@@ -1819,17 +1739,10 @@ const ::google::protobuf::Descriptor* Locate_information::descriptor() {
 }
 
 const Locate_information& Locate_information::default_instance() {
-  ::protobuf_message_5fbase_2eproto::InitDefaultsLocate_information();
+  ::google::protobuf::internal::InitSCC(&protobuf_message_5fbase_2eproto::scc_info_Locate_information.base);
   return *internal_default_instance();
 }
 
-Locate_information* Locate_information::New(::google::protobuf::Arena* arena) const {
-  Locate_information* n = new Locate_information;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void Locate_information::Clear() {
 // @@protoc_insertion_point(message_clear_start:message.Locate_information)
@@ -1858,7 +1771,7 @@ bool Locate_information::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:message.Locate_information)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -2274,9 +2187,7 @@ size_t Locate_information::ByteSizeLong() const {
 
   }
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -2385,7 +2296,6 @@ void Locate_information::InternalSwap(Locate_information* other) {
   swap(uniformed_car_y_, other->uniformed_car_y_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata Locate_information::GetMetadata() const {
@@ -2409,17 +2319,15 @@ const int Car_info::kCarWheelWidthFieldNumber;
 
 Car_info::Car_info()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_message_5fbase_2eproto::InitDefaultsCar_info();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_message_5fbase_2eproto::scc_info_Car_info.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:message.Car_info)
 }
 Car_info::Car_info(const Car_info& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   license_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   if (from.has_license()) {
@@ -2432,7 +2340,6 @@ Car_info::Car_info(const Car_info& from)
 }
 
 void Car_info::SharedCtor() {
-  _cached_size_ = 0;
   license_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   ::memset(&car_length_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&car_wheel_width_) -
@@ -2449,9 +2356,7 @@ void Car_info::SharedDtor() {
 }
 
 void Car_info::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* Car_info::descriptor() {
   ::protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
@@ -2459,17 +2364,10 @@ const ::google::protobuf::Descriptor* Car_info::descriptor() {
 }
 
 const Car_info& Car_info::default_instance() {
-  ::protobuf_message_5fbase_2eproto::InitDefaultsCar_info();
+  ::google::protobuf::internal::InitSCC(&protobuf_message_5fbase_2eproto::scc_info_Car_info.base);
   return *internal_default_instance();
 }
 
-Car_info* Car_info::New(::google::protobuf::Arena* arena) const {
-  Car_info* n = new Car_info;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void Car_info::Clear() {
 // @@protoc_insertion_point(message_clear_start:message.Car_info)
@@ -2479,8 +2377,7 @@ void Car_info::Clear() {
 
   cached_has_bits = _has_bits_[0];
   if (cached_has_bits & 0x00000001u) {
-    GOOGLE_DCHECK(!license_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
-    (*license_.UnsafeRawStringPointer())->clear();
+    license_.ClearNonDefaultToEmptyNoArena();
   }
   if (cached_has_bits & 62u) {
     ::memset(&car_length_, 0, static_cast<size_t>(
@@ -2497,7 +2394,7 @@ bool Car_info::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:message.Car_info)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -2752,9 +2649,7 @@ size_t Car_info::ByteSizeLong() const {
 
   }
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -2829,7 +2724,8 @@ void Car_info::Swap(Car_info* other) {
 }
 void Car_info::InternalSwap(Car_info* other) {
   using std::swap;
-  license_.Swap(&other->license_);
+  license_.Swap(&other->license_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
   swap(car_length_, other->car_length_);
   swap(car_width_, other->car_width_);
   swap(car_height_, other->car_height_);
@@ -2837,7 +2733,6 @@ void Car_info::InternalSwap(Car_info* other) {
   swap(car_wheel_width_, other->car_wheel_width_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata Car_info::GetMetadata() const {
@@ -2874,17 +2769,15 @@ const int Parkspace_info::kCarTypeFieldNumber;
 
 Parkspace_info::Parkspace_info()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_message_5fbase_2eproto::InitDefaultsParkspace_info();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_message_5fbase_2eproto::scc_info_Parkspace_info.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:message.Parkspace_info)
 }
 Parkspace_info::Parkspace_info(const Parkspace_info& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   entry_time_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   if (from.has_entry_time()) {
@@ -2906,7 +2799,6 @@ Parkspace_info::Parkspace_info(const Parkspace_info& from)
 }
 
 void Parkspace_info::SharedCtor() {
-  _cached_size_ = 0;
   entry_time_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   leave_time_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   ::memset(&car_info_, 0, static_cast<size_t>(
@@ -2926,9 +2818,7 @@ void Parkspace_info::SharedDtor() {
 }
 
 void Parkspace_info::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* Parkspace_info::descriptor() {
   ::protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
@@ -2936,17 +2826,10 @@ const ::google::protobuf::Descriptor* Parkspace_info::descriptor() {
 }
 
 const Parkspace_info& Parkspace_info::default_instance() {
-  ::protobuf_message_5fbase_2eproto::InitDefaultsParkspace_info();
+  ::google::protobuf::internal::InitSCC(&protobuf_message_5fbase_2eproto::scc_info_Parkspace_info.base);
   return *internal_default_instance();
 }
 
-Parkspace_info* Parkspace_info::New(::google::protobuf::Arena* arena) const {
-  Parkspace_info* n = new Parkspace_info;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void Parkspace_info::Clear() {
 // @@protoc_insertion_point(message_clear_start:message.Parkspace_info)
@@ -2957,12 +2840,10 @@ void Parkspace_info::Clear() {
   cached_has_bits = _has_bits_[0];
   if (cached_has_bits & 7u) {
     if (cached_has_bits & 0x00000001u) {
-      GOOGLE_DCHECK(!entry_time_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
-      (*entry_time_.UnsafeRawStringPointer())->clear();
+      entry_time_.ClearNonDefaultToEmptyNoArena();
     }
     if (cached_has_bits & 0x00000002u) {
-      GOOGLE_DCHECK(!leave_time_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
-      (*leave_time_.UnsafeRawStringPointer())->clear();
+      leave_time_.ClearNonDefaultToEmptyNoArena();
     }
     if (cached_has_bits & 0x00000004u) {
       GOOGLE_DCHECK(car_info_ != NULL);
@@ -2990,7 +2871,7 @@ bool Parkspace_info::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:message.Parkspace_info)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -3353,7 +3234,7 @@ void Parkspace_info::SerializeWithCachedSizes(
   // optional .message.Car_info car_info = 11;
   if (cached_has_bits & 0x00000004u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      11, *this->car_info_, output);
+      11, this->_internal_car_info(), output);
   }
 
   // optional string entry_time = 12;
@@ -3471,7 +3352,7 @@ void Parkspace_info::SerializeWithCachedSizes(
   if (cached_has_bits & 0x00000004u) {
     target = ::google::protobuf::internal::WireFormatLite::
       InternalWriteMessageToArray(
-        11, *this->car_info_, deterministic, target);
+        11, this->_internal_car_info(), deterministic, target);
   }
 
   // optional string entry_time = 12;
@@ -3555,7 +3436,7 @@ size_t Parkspace_info::ByteSizeLong() const {
     if (has_car_info()) {
       total_size += 1 +
         ::google::protobuf::internal::WireFormatLite::MessageSize(
-          *this->car_info_);
+          *car_info_);
     }
 
     // optional int32 parkingspace_index_id = 1;
@@ -3648,9 +3529,7 @@ size_t Parkspace_info::ByteSizeLong() const {
   }
 
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -3762,8 +3641,10 @@ void Parkspace_info::Swap(Parkspace_info* other) {
 }
 void Parkspace_info::InternalSwap(Parkspace_info* other) {
   using std::swap;
-  entry_time_.Swap(&other->entry_time_);
-  leave_time_.Swap(&other->leave_time_);
+  entry_time_.Swap(&other->entry_time_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
+  leave_time_.Swap(&other->leave_time_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
   swap(car_info_, other->car_info_);
   swap(parkingspace_index_id_, other->parkingspace_index_id_);
   swap(parkingspace_type_, other->parkingspace_type_);
@@ -3781,7 +3662,6 @@ void Parkspace_info::InternalSwap(Parkspace_info* other) {
   swap(car_type_, other->car_type_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata Parkspace_info::GetMetadata() const {
@@ -3792,5 +3672,27 @@ void Parkspace_info::InternalSwap(Parkspace_info* other) {
 
 // @@protoc_insertion_point(namespace_scope)
 }  // namespace message
+namespace google {
+namespace protobuf {
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::message::Base_info* Arena::CreateMaybeMessage< ::message::Base_info >(Arena* arena) {
+  return Arena::CreateInternal< ::message::Base_info >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::message::Base_msg* Arena::CreateMaybeMessage< ::message::Base_msg >(Arena* arena) {
+  return Arena::CreateInternal< ::message::Base_msg >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::message::Error_manager* Arena::CreateMaybeMessage< ::message::Error_manager >(Arena* arena) {
+  return Arena::CreateInternal< ::message::Error_manager >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::message::Locate_information* Arena::CreateMaybeMessage< ::message::Locate_information >(Arena* arena) {
+  return Arena::CreateInternal< ::message::Locate_information >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::message::Car_info* Arena::CreateMaybeMessage< ::message::Car_info >(Arena* arena) {
+  return Arena::CreateInternal< ::message::Car_info >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::message::Parkspace_info* Arena::CreateMaybeMessage< ::message::Parkspace_info >(Arena* arena) {
+  return Arena::CreateInternal< ::message::Parkspace_info >(arena);
+}
+}  // namespace protobuf
+}  // namespace google
 
 // @@protoc_insertion_point(global_scope)

+ 181 - 139
message/message_base.pb.h

@@ -1,19 +1,19 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: message_base.proto
 
-#ifndef PROTOBUF_message_5fbase_2eproto__INCLUDED
-#define PROTOBUF_message_5fbase_2eproto__INCLUDED
+#ifndef PROTOBUF_INCLUDED_message_5fbase_2eproto
+#define PROTOBUF_INCLUDED_message_5fbase_2eproto
 
 #include <string>
 
 #include <google/protobuf/stubs/common.h>
 
-#if GOOGLE_PROTOBUF_VERSION < 3005000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #endif
-#if 3005000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
@@ -24,6 +24,7 @@
 #include <google/protobuf/arenastring.h>
 #include <google/protobuf/generated_message_table_driven.h>
 #include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/inlined_string_field.h>
 #include <google/protobuf/metadata.h>
 #include <google/protobuf/message.h>
 #include <google/protobuf/repeated_field.h>  // IWYU pragma: export
@@ -31,6 +32,7 @@
 #include <google/protobuf/generated_enum_reflection.h>
 #include <google/protobuf/unknown_field_set.h>
 // @@protoc_insertion_point(includes)
+#define PROTOBUF_INTERNAL_EXPORT_protobuf_message_5fbase_2eproto 
 
 namespace protobuf_message_5fbase_2eproto {
 // Internal implementation detail -- do not use these members.
@@ -43,26 +45,6 @@ struct TableStruct {
   static const ::google::protobuf::uint32 offsets[];
 };
 void AddDescriptors();
-void InitDefaultsBase_infoImpl();
-void InitDefaultsBase_info();
-void InitDefaultsBase_msgImpl();
-void InitDefaultsBase_msg();
-void InitDefaultsError_managerImpl();
-void InitDefaultsError_manager();
-void InitDefaultsLocate_informationImpl();
-void InitDefaultsLocate_information();
-void InitDefaultsCar_infoImpl();
-void InitDefaultsCar_info();
-void InitDefaultsParkspace_infoImpl();
-void InitDefaultsParkspace_info();
-inline void InitDefaults() {
-  InitDefaultsBase_info();
-  InitDefaultsBase_msg();
-  InitDefaultsError_manager();
-  InitDefaultsLocate_information();
-  InitDefaultsCar_info();
-  InitDefaultsParkspace_info();
-}
 }  // namespace protobuf_message_5fbase_2eproto
 namespace message {
 class Base_info;
@@ -84,6 +66,16 @@ class Parkspace_info;
 class Parkspace_infoDefaultTypeInternal;
 extern Parkspace_infoDefaultTypeInternal _Parkspace_info_default_instance_;
 }  // namespace message
+namespace google {
+namespace protobuf {
+template<> ::message::Base_info* Arena::CreateMaybeMessage<::message::Base_info>(Arena*);
+template<> ::message::Base_msg* Arena::CreateMaybeMessage<::message::Base_msg>(Arena*);
+template<> ::message::Car_info* Arena::CreateMaybeMessage<::message::Car_info>(Arena*);
+template<> ::message::Error_manager* Arena::CreateMaybeMessage<::message::Error_manager>(Arena*);
+template<> ::message::Locate_information* Arena::CreateMaybeMessage<::message::Locate_information>(Arena*);
+template<> ::message::Parkspace_info* Arena::CreateMaybeMessage<::message::Parkspace_info>(Arena*);
+}  // namespace protobuf
+}  // namespace google
 namespace message {
 
 enum Message_type {
@@ -446,7 +438,7 @@ class Base_info : public ::google::protobuf::Message /* @@protoc_insertion_point
     return reinterpret_cast<const Base_info*>(
                &_Base_info_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     0;
 
   void Swap(Base_info* other);
@@ -456,28 +448,33 @@ class Base_info : public ::google::protobuf::Message /* @@protoc_insertion_point
 
   // implements Message ----------------------------------------------
 
-  inline Base_info* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline Base_info* New() const final {
+    return CreateMaybeMessage<Base_info>(NULL);
+  }
 
-  Base_info* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  Base_info* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<Base_info>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const Base_info& from);
   void MergeFrom(const Base_info& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(Base_info* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -488,7 +485,7 @@ class Base_info : public ::google::protobuf::Message /* @@protoc_insertion_point
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -538,13 +535,12 @@ class Base_info : public ::google::protobuf::Message /* @@protoc_insertion_point
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   int msg_type_;
   ::google::protobuf::int32 timeout_ms_;
   int sender_;
   int receiver_;
   friend struct ::protobuf_message_5fbase_2eproto::TableStruct;
-  friend void ::protobuf_message_5fbase_2eproto::InitDefaultsBase_infoImpl();
 };
 // -------------------------------------------------------------------
 
@@ -589,7 +585,7 @@ class Base_msg : public ::google::protobuf::Message /* @@protoc_insertion_point(
     return reinterpret_cast<const Base_msg*>(
                &_Base_msg_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     1;
 
   void Swap(Base_msg* other);
@@ -599,28 +595,33 @@ class Base_msg : public ::google::protobuf::Message /* @@protoc_insertion_point(
 
   // implements Message ----------------------------------------------
 
-  inline Base_msg* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline Base_msg* New() const final {
+    return CreateMaybeMessage<Base_msg>(NULL);
+  }
 
-  Base_msg* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  Base_msg* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<Base_msg>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const Base_msg& from);
   void MergeFrom(const Base_msg& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(Base_msg* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -631,7 +632,7 @@ class Base_msg : public ::google::protobuf::Message /* @@protoc_insertion_point(
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -641,6 +642,9 @@ class Base_msg : public ::google::protobuf::Message /* @@protoc_insertion_point(
   bool has_base_info() const;
   void clear_base_info();
   static const int kBaseInfoFieldNumber = 1;
+  private:
+  const ::message::Base_info& _internal_base_info() const;
+  public:
   const ::message::Base_info& base_info() const;
   ::message::Base_info* release_base_info();
   ::message::Base_info* mutable_base_info();
@@ -653,10 +657,9 @@ class Base_msg : public ::google::protobuf::Message /* @@protoc_insertion_point(
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::message::Base_info* base_info_;
   friend struct ::protobuf_message_5fbase_2eproto::TableStruct;
-  friend void ::protobuf_message_5fbase_2eproto::InitDefaultsBase_msgImpl();
 };
 // -------------------------------------------------------------------
 
@@ -701,7 +704,7 @@ class Error_manager : public ::google::protobuf::Message /* @@protoc_insertion_p
     return reinterpret_cast<const Error_manager*>(
                &_Error_manager_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     2;
 
   void Swap(Error_manager* other);
@@ -711,28 +714,33 @@ class Error_manager : public ::google::protobuf::Message /* @@protoc_insertion_p
 
   // implements Message ----------------------------------------------
 
-  inline Error_manager* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline Error_manager* New() const final {
+    return CreateMaybeMessage<Error_manager>(NULL);
+  }
 
-  Error_manager* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  Error_manager* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<Error_manager>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const Error_manager& from);
   void MergeFrom(const Error_manager& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(Error_manager* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -743,7 +751,7 @@ class Error_manager : public ::google::protobuf::Message /* @@protoc_insertion_p
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -789,12 +797,11 @@ class Error_manager : public ::google::protobuf::Message /* @@protoc_insertion_p
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::google::protobuf::internal::ArenaStringPtr error_description_;
   ::google::protobuf::int32 error_code_;
   int error_level_;
   friend struct ::protobuf_message_5fbase_2eproto::TableStruct;
-  friend void ::protobuf_message_5fbase_2eproto::InitDefaultsError_managerImpl();
 };
 // -------------------------------------------------------------------
 
@@ -839,7 +846,7 @@ class Locate_information : public ::google::protobuf::Message /* @@protoc_insert
     return reinterpret_cast<const Locate_information*>(
                &_Locate_information_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     3;
 
   void Swap(Locate_information* other);
@@ -849,28 +856,33 @@ class Locate_information : public ::google::protobuf::Message /* @@protoc_insert
 
   // implements Message ----------------------------------------------
 
-  inline Locate_information* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline Locate_information* New() const final {
+    return CreateMaybeMessage<Locate_information>(NULL);
+  }
 
-  Locate_information* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  Locate_information* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<Locate_information>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const Locate_information& from);
   void MergeFrom(const Locate_information& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(Locate_information* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -881,7 +893,7 @@ class Locate_information : public ::google::protobuf::Message /* @@protoc_insert
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -1000,7 +1012,7 @@ class Locate_information : public ::google::protobuf::Message /* @@protoc_insert
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   float locate_x_;
   float locate_y_;
   float locate_angle_;
@@ -1014,7 +1026,6 @@ class Locate_information : public ::google::protobuf::Message /* @@protoc_insert
   float uniformed_car_x_;
   float uniformed_car_y_;
   friend struct ::protobuf_message_5fbase_2eproto::TableStruct;
-  friend void ::protobuf_message_5fbase_2eproto::InitDefaultsLocate_informationImpl();
 };
 // -------------------------------------------------------------------
 
@@ -1059,7 +1070,7 @@ class Car_info : public ::google::protobuf::Message /* @@protoc_insertion_point(
     return reinterpret_cast<const Car_info*>(
                &_Car_info_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     4;
 
   void Swap(Car_info* other);
@@ -1069,28 +1080,33 @@ class Car_info : public ::google::protobuf::Message /* @@protoc_insertion_point(
 
   // implements Message ----------------------------------------------
 
-  inline Car_info* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline Car_info* New() const final {
+    return CreateMaybeMessage<Car_info>(NULL);
+  }
 
-  Car_info* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  Car_info* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<Car_info>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const Car_info& from);
   void MergeFrom(const Car_info& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(Car_info* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -1101,7 +1117,7 @@ class Car_info : public ::google::protobuf::Message /* @@protoc_insertion_point(
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -1174,7 +1190,7 @@ class Car_info : public ::google::protobuf::Message /* @@protoc_insertion_point(
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::google::protobuf::internal::ArenaStringPtr license_;
   float car_length_;
   float car_width_;
@@ -1182,7 +1198,6 @@ class Car_info : public ::google::protobuf::Message /* @@protoc_insertion_point(
   float car_wheel_base_;
   float car_wheel_width_;
   friend struct ::protobuf_message_5fbase_2eproto::TableStruct;
-  friend void ::protobuf_message_5fbase_2eproto::InitDefaultsCar_infoImpl();
 };
 // -------------------------------------------------------------------
 
@@ -1227,7 +1242,7 @@ class Parkspace_info : public ::google::protobuf::Message /* @@protoc_insertion_
     return reinterpret_cast<const Parkspace_info*>(
                &_Parkspace_info_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     5;
 
   void Swap(Parkspace_info* other);
@@ -1237,28 +1252,33 @@ class Parkspace_info : public ::google::protobuf::Message /* @@protoc_insertion_
 
   // implements Message ----------------------------------------------
 
-  inline Parkspace_info* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline Parkspace_info* New() const final {
+    return CreateMaybeMessage<Parkspace_info>(NULL);
+  }
 
-  Parkspace_info* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  Parkspace_info* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<Parkspace_info>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const Parkspace_info& from);
   void MergeFrom(const Parkspace_info& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(Parkspace_info* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -1269,7 +1289,7 @@ class Parkspace_info : public ::google::protobuf::Message /* @@protoc_insertion_
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -1309,6 +1329,9 @@ class Parkspace_info : public ::google::protobuf::Message /* @@protoc_insertion_
   bool has_car_info() const;
   void clear_car_info();
   static const int kCarInfoFieldNumber = 11;
+  private:
+  const ::message::Car_info& _internal_car_info() const;
+  public:
   const ::message::Car_info& car_info() const;
   ::message::Car_info* release_car_info();
   ::message::Car_info* mutable_car_info();
@@ -1451,7 +1474,7 @@ class Parkspace_info : public ::google::protobuf::Message /* @@protoc_insertion_
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::google::protobuf::internal::ArenaStringPtr entry_time_;
   ::google::protobuf::internal::ArenaStringPtr leave_time_;
   ::message::Car_info* car_info_;
@@ -1470,7 +1493,6 @@ class Parkspace_info : public ::google::protobuf::Message /* @@protoc_insertion_
   int parkspace_status_target_;
   int car_type_;
   friend struct ::protobuf_message_5fbase_2eproto::TableStruct;
-  friend void ::protobuf_message_5fbase_2eproto::InitDefaultsParkspace_infoImpl();
 };
 // ===================================================================
 
@@ -1600,6 +1622,9 @@ inline void Base_msg::clear_base_info() {
   if (base_info_ != NULL) base_info_->Clear();
   clear_has_base_info();
 }
+inline const ::message::Base_info& Base_msg::_internal_base_info() const {
+  return *base_info_;
+}
 inline const ::message::Base_info& Base_msg::base_info() const {
   const ::message::Base_info* p = base_info_;
   // @@protoc_insertion_point(field_get:message.Base_msg.base_info)
@@ -1616,7 +1641,8 @@ inline ::message::Base_info* Base_msg::release_base_info() {
 inline ::message::Base_info* Base_msg::mutable_base_info() {
   set_has_base_info();
   if (base_info_ == NULL) {
-    base_info_ = new ::message::Base_info;
+    auto* p = CreateMaybeMessage<::message::Base_info>(GetArenaNoVirtual());
+    base_info_ = p;
   }
   // @@protoc_insertion_point(field_mutable:message.Base_msg.base_info)
   return base_info_;
@@ -1743,8 +1769,11 @@ inline ::std::string* Error_manager::mutable_error_description() {
 }
 inline ::std::string* Error_manager::release_error_description() {
   // @@protoc_insertion_point(field_release:message.Error_manager.error_description)
+  if (!has_error_description()) {
+    return NULL;
+  }
   clear_has_error_description();
-  return error_description_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  return error_description_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void Error_manager::set_allocated_error_description(::std::string* error_description) {
   if (error_description != NULL) {
@@ -2174,8 +2203,11 @@ inline ::std::string* Car_info::mutable_license() {
 }
 inline ::std::string* Car_info::release_license() {
   // @@protoc_insertion_point(field_release:message.Car_info.license)
+  if (!has_license()) {
+    return NULL;
+  }
   clear_has_license();
-  return license_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  return license_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void Car_info::set_allocated_license(::std::string* license) {
   if (license != NULL) {
@@ -2496,6 +2528,9 @@ inline void Parkspace_info::clear_car_info() {
   if (car_info_ != NULL) car_info_->Clear();
   clear_has_car_info();
 }
+inline const ::message::Car_info& Parkspace_info::_internal_car_info() const {
+  return *car_info_;
+}
 inline const ::message::Car_info& Parkspace_info::car_info() const {
   const ::message::Car_info* p = car_info_;
   // @@protoc_insertion_point(field_get:message.Parkspace_info.car_info)
@@ -2512,7 +2547,8 @@ inline ::message::Car_info* Parkspace_info::release_car_info() {
 inline ::message::Car_info* Parkspace_info::mutable_car_info() {
   set_has_car_info();
   if (car_info_ == NULL) {
-    car_info_ = new ::message::Car_info;
+    auto* p = CreateMaybeMessage<::message::Car_info>(GetArenaNoVirtual());
+    car_info_ = p;
   }
   // @@protoc_insertion_point(field_mutable:message.Parkspace_info.car_info)
   return car_info_;
@@ -2586,8 +2622,11 @@ inline ::std::string* Parkspace_info::mutable_entry_time() {
 }
 inline ::std::string* Parkspace_info::release_entry_time() {
   // @@protoc_insertion_point(field_release:message.Parkspace_info.entry_time)
+  if (!has_entry_time()) {
+    return NULL;
+  }
   clear_has_entry_time();
-  return entry_time_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  return entry_time_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void Parkspace_info::set_allocated_entry_time(::std::string* entry_time) {
   if (entry_time != NULL) {
@@ -2649,8 +2688,11 @@ inline ::std::string* Parkspace_info::mutable_leave_time() {
 }
 inline ::std::string* Parkspace_info::release_leave_time() {
   // @@protoc_insertion_point(field_release:message.Parkspace_info.leave_time)
+  if (!has_leave_time()) {
+    return NULL;
+  }
   clear_has_leave_time();
-  return leave_time_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  return leave_time_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void Parkspace_info::set_allocated_leave_time(::std::string* leave_time) {
   if (leave_time != NULL) {
@@ -2782,62 +2824,62 @@ inline void Parkspace_info::set_car_type(::message::Car_type value) {
 namespace google {
 namespace protobuf {
 
-template <> struct is_proto_enum< ::message::Message_type> : ::google::protobuf::internal::true_type {};
+template <> struct is_proto_enum< ::message::Message_type> : ::std::true_type {};
 template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::message::Message_type>() {
   return ::message::Message_type_descriptor();
 }
-template <> struct is_proto_enum< ::message::Communicator> : ::google::protobuf::internal::true_type {};
+template <> struct is_proto_enum< ::message::Communicator> : ::std::true_type {};
 template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::message::Communicator>() {
   return ::message::Communicator_descriptor();
 }
-template <> struct is_proto_enum< ::message::Process_type> : ::google::protobuf::internal::true_type {};
+template <> struct is_proto_enum< ::message::Process_type> : ::std::true_type {};
 template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::message::Process_type>() {
   return ::message::Process_type_descriptor();
 }
-template <> struct is_proto_enum< ::message::Error_level> : ::google::protobuf::internal::true_type {};
+template <> struct is_proto_enum< ::message::Error_level> : ::std::true_type {};
 template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::message::Error_level>() {
   return ::message::Error_level_descriptor();
 }
-template <> struct is_proto_enum< ::message::Parkspace_status> : ::google::protobuf::internal::true_type {};
+template <> struct is_proto_enum< ::message::Parkspace_status> : ::std::true_type {};
 template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::message::Parkspace_status>() {
   return ::message::Parkspace_status_descriptor();
 }
-template <> struct is_proto_enum< ::message::Direction> : ::google::protobuf::internal::true_type {};
+template <> struct is_proto_enum< ::message::Direction> : ::std::true_type {};
 template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::message::Direction>() {
   return ::message::Direction_descriptor();
 }
-template <> struct is_proto_enum< ::message::Parkspace_path> : ::google::protobuf::internal::true_type {};
+template <> struct is_proto_enum< ::message::Parkspace_path> : ::std::true_type {};
 template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::message::Parkspace_path>() {
   return ::message::Parkspace_path_descriptor();
 }
-template <> struct is_proto_enum< ::message::Parkspace_type> : ::google::protobuf::internal::true_type {};
+template <> struct is_proto_enum< ::message::Parkspace_type> : ::std::true_type {};
 template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::message::Parkspace_type>() {
   return ::message::Parkspace_type_descriptor();
 }
-template <> struct is_proto_enum< ::message::Car_type> : ::google::protobuf::internal::true_type {};
+template <> struct is_proto_enum< ::message::Car_type> : ::std::true_type {};
 template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::message::Car_type>() {
   return ::message::Car_type_descriptor();
 }
-template <> struct is_proto_enum< ::message::Step_type> : ::google::protobuf::internal::true_type {};
+template <> struct is_proto_enum< ::message::Step_type> : ::std::true_type {};
 template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::message::Step_type>() {
   return ::message::Step_type_descriptor();
 }
-template <> struct is_proto_enum< ::message::Step_statu> : ::google::protobuf::internal::true_type {};
+template <> struct is_proto_enum< ::message::Step_statu> : ::std::true_type {};
 template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::message::Step_statu>() {
   return ::message::Step_statu_descriptor();
 }
-template <> struct is_proto_enum< ::message::Dispatch_device_type> : ::google::protobuf::internal::true_type {};
+template <> struct is_proto_enum< ::message::Dispatch_device_type> : ::std::true_type {};
 template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::message::Dispatch_device_type>() {
   return ::message::Dispatch_device_type_descriptor();
@@ -2848,4 +2890,4 @@ inline const EnumDescriptor* GetEnumDescriptor< ::message::Dispatch_device_type>
 
 // @@protoc_insertion_point(global_scope)
 
-#endif  // PROTOBUF_message_5fbase_2eproto__INCLUDED
+#endif  // PROTOBUF_INCLUDED_message_5fbase_2eproto

+ 1 - 1
setting/communication.prototxt

@@ -3,7 +3,7 @@
 communication_parameters
 {
 
-  bind_string:"tcp://192.168.1.240:30010"
+  bind_string:"tcp://192.168.1.233:30010"
   connect_string_vector:"tcp://192.168.1.233:30000"
  # connect_string_vector:"tcp://192.168.2.166:9002"
 

+ 6 - 6
setting/velodyne_manager.prototxt

@@ -1,7 +1,7 @@
-fence_data_path:"/home/youchen/extra_space/chutian/fence_wj"
+fence_data_path:"/home/zx/data/ground_detect/"
 #fence_log_path:"/home/zx/yct/MainStructure/new_electronic_fence/log"
-left_model_path:"/home/youchen/extra_space/chutian/measure/puai_wj_2021/setting/left_model.txt"
-right_model_path:"/home/youchen/extra_space/chutian/measure/puai_wj_2021/setting/right_model.txt"
+left_model_path:"/home/zx/yct/chutian_measure_2021/setting/left_model.txt"
+right_model_path:"/home/zx/yct/chutian_measure_2021/setting/right_model.txt"
 distribution_mode:false
 
 # 6 lidar 192.168.1.201
@@ -86,7 +86,7 @@ region
 	miny:-2.6
 	maxy:2.6
 	minz:0.025
-	maxz:1.0
+	maxz:0.5
     region_id:5
     turnplate_cx:0.0
     turnplate_cy:0.0
@@ -126,9 +126,9 @@ region
     minx:-1.5
 	maxx:1.5
 	miny:-2.6
-	maxy:2.0
+	maxy:2.3
 	minz:0.03
-	maxz:1.0
+	maxz:0.5
     region_id:4
     turnplate_cx:0.0
     turnplate_cy:0.0

+ 79 - 59
setting/velodyne_manager_chutian.prototxt

@@ -1,17 +1,17 @@
-fence_data_path:"/home/youchen/extra_space/chutian/fence_wj"
+fence_data_path:"/home/zx/data/ground_detect/"
 #fence_log_path:"/home/zx/yct/MainStructure/new_electronic_fence/log"
-left_model_path:"/home/youchen/extra_space/chutian/measure/puai_wj_2021/setting/left_model.txt"
-right_model_path:"/home/youchen/extra_space/chutian/measure/puai_wj_2021/setting/right_model.txt"
+left_model_path:"/home/zx/yct/chutian_measure_2021/setting/left_model.txt"
+right_model_path:"/home/zx/yct/chutian_measure_2021/setting/right_model.txt"
 distribution_mode:false
 
-# 1 lidar
+# 6 lidar 192.168.1.201
 velodyne_lidars
 {
     ip:""
     port:2368
     model:"VLP16"
     calibrationFile:"../setting/VLP16db.yaml"
-    lidar_id:0
+    lidar_id:6
     max_range:8.0
     min_range:0.1
     min_angle:0
@@ -30,14 +30,14 @@ velodyne_lidars
     }
 }
 
-# 2 lidar
+# 5 lidar 192.168.1.202
 velodyne_lidars
 {
     ip:""
     port:2369
     model:"VLP16"
     calibrationFile:"../setting/VLP16db.yaml"
-    lidar_id:1
+    lidar_id:5
     max_range:8.0
     min_range:0.1
     min_angle:0
@@ -56,24 +56,27 @@ velodyne_lidars
     }
 }
 
-# # 3 lidar
-# velodyne_lidars
-# {
-#     ip:""
-#     port:2370
-#     model:"VLP16"
-#     calibrationFile:"../setting/VLP16db.yaml"
-#     lidar_id:2
-#     max_range:5.0
-#     min_range:0.1
-#     min_angle:0
-#     max_angle:360
-#     rpm:600
-#     calib
-#     {
-#         y:1.57
-#     }
-# }
+# 3 lidar 192.168.1.203
+velodyne_lidars
+{
+    ip:""
+    port:2370
+    model:"VLP16"
+    calibrationFile:"../setting/VLP16db.yaml"
+    lidar_id:4
+    max_range:8.0
+    min_range:0.1
+    min_angle:0
+    max_angle:360
+    rpm:600
+    calib
+    {
+        r:-0.038115
+        p:-0.577136
+        y:91.2659
+        cz:0.06
+    }
+}
 
 # 1 region
 region
@@ -82,12 +85,18 @@ region
 	maxx:1.6
 	miny:-2.6
 	maxy:2.6
-	minz:0.02
-	maxz:0.2
-    region_id:0
+	minz:0.025
+	maxz:1.0
+    region_id:5
+    turnplate_cx:0.0
+    turnplate_cy:0.0
+    border_minx:-1.3
+    border_maxx:1.3
+    plc_offsetx:1.913
+    plc_offsety:5.998
     lidar_exts
     {
-        lidar_id:0
+        lidar_id:6
         calib
         {
             cx:1.9018
@@ -96,7 +105,7 @@ region
     }
     lidar_exts
     {
-        lidar_id:1
+        lidar_id:5
         calib
         {
             #cx:-4.021775
@@ -107,32 +116,43 @@ region
     }
 }
 
-# # 2 region
-# region
-# {
-#     minx:-3.1
-# 	maxx:0
-# 	miny:-2.75
-# 	maxy:3.08
-# 	minz:0.01
-# 	maxz:0.2
-#     region_id:1
-#     lidar_exts
-#     {
-#         lidar_id:1
-#         calib
-#         {
-#             cx:0.1
-#             cy:0.3
-#         }
-#     }
-#     lidar_exts
-#     {
-#         lidar_id:2
-#         calib
-#         {
-#             cx:0.1
-#             cy:0.3
-#         }
-#     }
-# }
+# 2 region
+# 利用共用雷达标定plc偏移量
+# plc_4 = plc_5 + calib5in5 - calib5in4
+# plc_4x = 1.913 + (-1.9018) - (1.9095) = -1.8983
+# plc_4y = 5.998 + (0.0175) - (-0.019388) = 6.03489
+region
+{
+    minx:-1.5
+	maxx:1.5
+	miny:-2.6
+	maxy:2.0
+	minz:0.03
+	maxz:1.0
+    region_id:4
+    turnplate_cx:0.0
+    turnplate_cy:0.0
+    border_minx:-1.3
+    border_maxx:1.3
+    plc_offsetx:-1.8983
+    plc_offsety:6.03489
+    # 4-->5: -3.81895 0.038776
+    lidar_exts
+    {
+        lidar_id:5
+        calib
+        {
+            cx:1.9095
+            cy:-0.019388
+        }
+    }
+    lidar_exts
+    {
+        lidar_id:4
+        calib
+        {
+            cx:-1.9095
+            cy:0.019388
+        }
+    }
+}

+ 18 - 13
velodyne_lidar/ground_region.cpp

@@ -343,35 +343,37 @@ Error_manager Ground_region::detect(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud, d
 
     // 2.*********点云预处理*********
     std::chrono::steady_clock::time_point t1 = std::chrono::steady_clock::now();
+    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_cut(new pcl::PointCloud<pcl::PointXYZ>);
+    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_clean(new pcl::PointCloud<pcl::PointXYZ>);
     pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered(new pcl::PointCloud<pcl::PointXYZ>);
     for (int i = 0; i < cloud->size(); ++i)
     {
         pcl::PointXYZ pt = cloud->points[i];
         if (pt.x > m_region.minx() && pt.x < m_region.maxx() && pt.y > m_region.miny() && pt.y < m_region.maxy() && pt.z > m_region.minz() && pt.z < m_region.maxz())
         {
-            cloud_filtered->push_back(pt);
+            cloud_cut->push_back(pt);
         }
     }
 
     //离群点过滤
     pcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;
-    sor.setInputCloud(cloud_filtered);
+    sor.setInputCloud(cloud_cut);
     sor.setMeanK(15);            //K近邻搜索点个数
     sor.setStddevMulThresh(3.0); //标准差倍数
     sor.setNegative(false);      //保留未滤波点(内点)
-    sor.filter(*cloud_filtered); //保存滤波结果到cloud_filter
+    sor.filter(*cloud_clean); //保存滤波结果到cloud_filter
 
-    if (cloud_filtered->size() == 0)
-        return Error_manager(VELODYNE_REGION_EMPTY_CLOUD, NORMAL, "filtered no point");
+    if (cloud_clean->size() == 0)
+        return Error_manager(VELODYNE_REGION_EMPTY_CLOUD, NORMAL, "StatisticalOutlierRemoval no point");
 
     //下采样
-    pcl::ApproximateVoxelGrid<pcl::PointXYZ> vox;   //创建滤波对象
-    vox.setInputCloud(cloud_filtered);   //设置需要过滤的点云给滤波对象
+    pcl::VoxelGrid<pcl::PointXYZ> vox;   //创建滤波对象
+    vox.setInputCloud(cloud_clean);   //设置需要过滤的点云给滤波对象
     vox.setLeafSize(0.02f, 0.02f, 0.02f); //设置滤波时创建的体素体积为1cm的立方体
     vox.filter(*cloud_filtered);         //执行滤波处理,存储输出
-
+    // cloud_filtered = cloud_clean;
     if (cloud_filtered->size() == 0)
-        return Error_manager(VELODYNE_REGION_EMPTY_CLOUD, NORMAL, "filtered no point");
+        return Error_manager(VELODYNE_REGION_EMPTY_CLOUD, NORMAL, "ApproximateVoxelGrid no point");
 
     // 更新过滤点
     m_filtered_cloud_mutex.lock();
@@ -494,7 +496,7 @@ Error_manager Ground_region::detect(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud, d
     }
     else
     {
-        LOG_IF(INFO, m_region.region_id() == 4) << "detected with suitable z value: " << chassis_z;
+        // LOG_IF(INFO, m_region.region_id() == 4) << "detected with suitable z value: " << chassis_z;
     }
     ///  to be
     float min_mean_loss = 1.0;
@@ -561,6 +563,7 @@ int Ground_region::outOfRangeDetection(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud
     if(max_p.x > m_region.border_maxx())
         res |= Range_status::Range_right;
 
+    // LOG_IF(WARNING, m_region.region_id() == 4)<< "border minmax x: "<< min_p.x<<", "<<max_p.x<<", res: "<<res;
     return res;
 }
 
@@ -667,20 +670,22 @@ void Ground_region::thread_measure_func()
                 m_car_wheel_information.car_wheel_width = t_result.width;
                 m_car_wheel_information.car_front_theta = t_result.front_theta;
                 m_car_wheel_information.theta_uniform(m_region.turnplate_cx(), m_region.turnplate_cy());
-                // 添加plc偏移
-                m_car_wheel_information.car_center_x += m_region.plc_offsetx();
-                m_car_wheel_information.car_center_y += m_region.plc_offsety();
                 // 超界校验
                 {
                     std::lock_guard<std::mutex> lck(m_filtered_cloud_mutex);
                     int res = outOfRangeDetection(mp_cloud_filtered, m_region.turnplate_cx(), m_region.turnplate_cy(), 90.0 - t_result.theta);
                     m_car_wheel_information.range_status = res;
                 }
+                // 添加plc偏移
+                m_car_wheel_information.car_center_x += m_region.plc_offsetx();
+                m_car_wheel_information.car_center_y += m_region.plc_offsety();
 
                 Common_data::Car_wheel_information_stamped t_wheel_info_stamped;
                 t_wheel_info_stamped.wheel_data = m_car_wheel_information;
 				t_wheel_info_stamped.measure_time = m_detect_update_time;
 				Measure_filter::get_instance_references().update_data(m_region.region_id(), t_wheel_info_stamped);
+
+                // LOG_IF(INFO, m_region.region_id() == 4) << m_car_wheel_information.to_string();
             }
             else
             {

+ 145 - 214
velodyne_lidar/velodyne_config.pb.cc

@@ -7,7 +7,6 @@
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/port.h>
-#include <google/protobuf/stubs/once.h>
 #include <google/protobuf/io/coded_stream.h>
 #include <google/protobuf/wire_format_lite_inl.h>
 #include <google/protobuf/descriptor.h>
@@ -19,6 +18,13 @@
 #include "third_party/protobuf/version.h"
 #endif
 // @@protoc_insertion_point(includes)
+
+namespace protobuf_velodyne_5fconfig_2eproto {
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_velodyne_5fconfig_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_CalibParameter;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_velodyne_5fconfig_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Region;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_velodyne_5fconfig_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_lidarExtrinsic;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_velodyne_5fconfig_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_velodyneLidarParams;
+}  // namespace protobuf_velodyne_5fconfig_2eproto
 namespace velodyne {
 class velodyneManagerParamsDefaultTypeInternal {
  public:
@@ -47,16 +53,9 @@ class RegionDefaultTypeInternal {
 } _Region_default_instance_;
 }  // namespace velodyne
 namespace protobuf_velodyne_5fconfig_2eproto {
-void InitDefaultsvelodyneManagerParamsImpl() {
+static void InitDefaultsvelodyneManagerParams() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  protobuf_velodyne_5fconfig_2eproto::InitDefaultsvelodyneLidarParams();
-  protobuf_velodyne_5fconfig_2eproto::InitDefaultsRegion();
   {
     void* ptr = &::velodyne::_velodyneManagerParams_default_instance_;
     new (ptr) ::velodyne::velodyneManagerParams();
@@ -65,24 +64,18 @@ void InitDefaultsvelodyneManagerParamsImpl() {
   ::velodyne::velodyneManagerParams::InitAsDefaultInstance();
 }
 
-void InitDefaultsvelodyneManagerParams() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsvelodyneManagerParamsImpl);
-}
+::google::protobuf::internal::SCCInfo<2> scc_info_velodyneManagerParams =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsvelodyneManagerParams}, {
+      &protobuf_velodyne_5fconfig_2eproto::scc_info_velodyneLidarParams.base,
+      &protobuf_velodyne_5fconfig_2eproto::scc_info_Region.base,}};
 
-void InitDefaultsvelodyneLidarParamsImpl() {
+static void InitDefaultsvelodyneLidarParams() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  protobuf_velodyne_5fconfig_2eproto::InitDefaultsCalibParameter();
-  ::velodyne::velodyneLidarParams::_default_model_.DefaultConstruct();
-  *::velodyne::velodyneLidarParams::_default_model_.get_mutable() = ::std::string("VLP16", 5);
+  ::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.DefaultConstruct();
+  *::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get_mutable() = ::std::string("VLP16", 5);
   ::google::protobuf::internal::OnShutdownDestroyString(
-      ::velodyne::velodyneLidarParams::_default_model_.get_mutable());
+      ::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get_mutable());
   {
     void* ptr = &::velodyne::_velodyneLidarParams_default_instance_;
     new (ptr) ::velodyne::velodyneLidarParams();
@@ -91,19 +84,13 @@ void InitDefaultsvelodyneLidarParamsImpl() {
   ::velodyne::velodyneLidarParams::InitAsDefaultInstance();
 }
 
-void InitDefaultsvelodyneLidarParams() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsvelodyneLidarParamsImpl);
-}
+::google::protobuf::internal::SCCInfo<1> scc_info_velodyneLidarParams =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsvelodyneLidarParams}, {
+      &protobuf_velodyne_5fconfig_2eproto::scc_info_CalibParameter.base,}};
 
-void InitDefaultsCalibParameterImpl() {
+static void InitDefaultsCalibParameter() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   {
     void* ptr = &::velodyne::_CalibParameter_default_instance_;
     new (ptr) ::velodyne::CalibParameter();
@@ -112,20 +99,12 @@ void InitDefaultsCalibParameterImpl() {
   ::velodyne::CalibParameter::InitAsDefaultInstance();
 }
 
-void InitDefaultsCalibParameter() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsCalibParameterImpl);
-}
+::google::protobuf::internal::SCCInfo<0> scc_info_CalibParameter =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsCalibParameter}, {}};
 
-void InitDefaultslidarExtrinsicImpl() {
+static void InitDefaultslidarExtrinsic() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  protobuf_velodyne_5fconfig_2eproto::InitDefaultsCalibParameter();
   {
     void* ptr = &::velodyne::_lidarExtrinsic_default_instance_;
     new (ptr) ::velodyne::lidarExtrinsic();
@@ -134,20 +113,13 @@ void InitDefaultslidarExtrinsicImpl() {
   ::velodyne::lidarExtrinsic::InitAsDefaultInstance();
 }
 
-void InitDefaultslidarExtrinsic() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultslidarExtrinsicImpl);
-}
+::google::protobuf::internal::SCCInfo<1> scc_info_lidarExtrinsic =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultslidarExtrinsic}, {
+      &protobuf_velodyne_5fconfig_2eproto::scc_info_CalibParameter.base,}};
 
-void InitDefaultsRegionImpl() {
+static void InitDefaultsRegion() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  protobuf_velodyne_5fconfig_2eproto::InitDefaultslidarExtrinsic();
   {
     void* ptr = &::velodyne::_Region_default_instance_;
     new (ptr) ::velodyne::Region();
@@ -156,9 +128,16 @@ void InitDefaultsRegionImpl() {
   ::velodyne::Region::InitAsDefaultInstance();
 }
 
-void InitDefaultsRegion() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsRegionImpl);
+::google::protobuf::internal::SCCInfo<1> scc_info_Region =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsRegion}, {
+      &protobuf_velodyne_5fconfig_2eproto::scc_info_lidarExtrinsic.base,}};
+
+void InitDefaults() {
+  ::google::protobuf::internal::InitSCC(&scc_info_velodyneManagerParams.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_velodyneLidarParams.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_CalibParameter.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_lidarExtrinsic.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_Region.base);
 }
 
 ::google::protobuf::Metadata file_level_metadata[5];
@@ -288,15 +267,14 @@ static ::google::protobuf::Message const * const file_default_instances[] = {
 
 void protobuf_AssignDescriptors() {
   AddDescriptors();
-  ::google::protobuf::MessageFactory* factory = NULL;
   AssignDescriptors(
-      "velodyne_config.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+      "velodyne_config.proto", schemas, file_default_instances, TableStruct::offsets,
       file_level_metadata, NULL, NULL);
 }
 
 void protobuf_AssignDescriptorsOnce() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
+  static ::google::protobuf::internal::once_flag once;
+  ::google::protobuf::internal::call_once(once, protobuf_AssignDescriptors);
 }
 
 void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
@@ -343,8 +321,8 @@ void AddDescriptorsImpl() {
 }
 
 void AddDescriptors() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+  static ::google::protobuf::internal::once_flag once;
+  ::google::protobuf::internal::call_once(once, AddDescriptorsImpl);
 }
 // Force AddDescriptors() to be called at dynamic initialization time.
 struct StaticDescriptorInitializer {
@@ -371,9 +349,8 @@ const int velodyneManagerParams::kDistributionModeFieldNumber;
 
 velodyneManagerParams::velodyneManagerParams()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_velodyne_5fconfig_2eproto::InitDefaultsvelodyneManagerParams();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_velodyne_5fconfig_2eproto::scc_info_velodyneManagerParams.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:velodyne.velodyneManagerParams)
 }
@@ -381,7 +358,6 @@ velodyneManagerParams::velodyneManagerParams(const velodyneManagerParams& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
       _has_bits_(from._has_bits_),
-      _cached_size_(0),
       velodyne_lidars_(from.velodyne_lidars_),
       region_(from.region_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
@@ -406,7 +382,6 @@ velodyneManagerParams::velodyneManagerParams(const velodyneManagerParams& from)
 }
 
 void velodyneManagerParams::SharedCtor() {
-  _cached_size_ = 0;
   fence_data_path_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   fence_log_path_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   left_model_path_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
@@ -427,9 +402,7 @@ void velodyneManagerParams::SharedDtor() {
 }
 
 void velodyneManagerParams::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* velodyneManagerParams::descriptor() {
   ::protobuf_velodyne_5fconfig_2eproto::protobuf_AssignDescriptorsOnce();
@@ -437,17 +410,10 @@ const ::google::protobuf::Descriptor* velodyneManagerParams::descriptor() {
 }
 
 const velodyneManagerParams& velodyneManagerParams::default_instance() {
-  ::protobuf_velodyne_5fconfig_2eproto::InitDefaultsvelodyneManagerParams();
+  ::google::protobuf::internal::InitSCC(&protobuf_velodyne_5fconfig_2eproto::scc_info_velodyneManagerParams.base);
   return *internal_default_instance();
 }
 
-velodyneManagerParams* velodyneManagerParams::New(::google::protobuf::Arena* arena) const {
-  velodyneManagerParams* n = new velodyneManagerParams;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void velodyneManagerParams::Clear() {
 // @@protoc_insertion_point(message_clear_start:velodyne.velodyneManagerParams)
@@ -460,20 +426,16 @@ void velodyneManagerParams::Clear() {
   cached_has_bits = _has_bits_[0];
   if (cached_has_bits & 15u) {
     if (cached_has_bits & 0x00000001u) {
-      GOOGLE_DCHECK(!fence_data_path_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
-      (*fence_data_path_.UnsafeRawStringPointer())->clear();
+      fence_data_path_.ClearNonDefaultToEmptyNoArena();
     }
     if (cached_has_bits & 0x00000002u) {
-      GOOGLE_DCHECK(!fence_log_path_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
-      (*fence_log_path_.UnsafeRawStringPointer())->clear();
+      fence_log_path_.ClearNonDefaultToEmptyNoArena();
     }
     if (cached_has_bits & 0x00000004u) {
-      GOOGLE_DCHECK(!left_model_path_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
-      (*left_model_path_.UnsafeRawStringPointer())->clear();
+      left_model_path_.ClearNonDefaultToEmptyNoArena();
     }
     if (cached_has_bits & 0x00000008u) {
-      GOOGLE_DCHECK(!right_model_path_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
-      (*right_model_path_.UnsafeRawStringPointer())->clear();
+      right_model_path_.ClearNonDefaultToEmptyNoArena();
     }
   }
   distribution_mode_ = false;
@@ -487,7 +449,7 @@ bool velodyneManagerParams::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:velodyne.velodyneManagerParams)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -495,7 +457,8 @@ bool velodyneManagerParams::MergePartialFromCodedStream(
       case 1: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(input, add_velodyne_lidars()));
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+                input, add_velodyne_lidars()));
         } else {
           goto handle_unusual;
         }
@@ -506,7 +469,8 @@ bool velodyneManagerParams::MergePartialFromCodedStream(
       case 2: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(input, add_region()));
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+                input, add_region()));
         } else {
           goto handle_unusual;
         }
@@ -621,14 +585,18 @@ void velodyneManagerParams::SerializeWithCachedSizes(
   for (unsigned int i = 0,
       n = static_cast<unsigned int>(this->velodyne_lidars_size()); i < n; i++) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, this->velodyne_lidars(static_cast<int>(i)), output);
+      1,
+      this->velodyne_lidars(static_cast<int>(i)),
+      output);
   }
 
   // repeated .velodyne.Region region = 2;
   for (unsigned int i = 0,
       n = static_cast<unsigned int>(this->region_size()); i < n; i++) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      2, this->region(static_cast<int>(i)), output);
+      2,
+      this->region(static_cast<int>(i)),
+      output);
   }
 
   cached_has_bits = _has_bits_[0];
@@ -831,9 +799,7 @@ size_t velodyneManagerParams::ByteSizeLong() const {
 
   }
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -913,16 +879,19 @@ void velodyneManagerParams::Swap(velodyneManagerParams* other) {
 }
 void velodyneManagerParams::InternalSwap(velodyneManagerParams* other) {
   using std::swap;
-  velodyne_lidars_.InternalSwap(&other->velodyne_lidars_);
-  region_.InternalSwap(&other->region_);
-  fence_data_path_.Swap(&other->fence_data_path_);
-  fence_log_path_.Swap(&other->fence_log_path_);
-  left_model_path_.Swap(&other->left_model_path_);
-  right_model_path_.Swap(&other->right_model_path_);
+  CastToBase(&velodyne_lidars_)->InternalSwap(CastToBase(&other->velodyne_lidars_));
+  CastToBase(&region_)->InternalSwap(CastToBase(&other->region_));
+  fence_data_path_.Swap(&other->fence_data_path_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
+  fence_log_path_.Swap(&other->fence_log_path_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
+  left_model_path_.Swap(&other->left_model_path_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
+  right_model_path_.Swap(&other->right_model_path_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
   swap(distribution_mode_, other->distribution_mode_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata velodyneManagerParams::GetMetadata() const {
@@ -937,7 +906,7 @@ void velodyneLidarParams::InitAsDefaultInstance() {
   ::velodyne::_velodyneLidarParams_default_instance_._instance.get_mutable()->calib_ = const_cast< ::velodyne::CalibParameter*>(
       ::velodyne::CalibParameter::internal_default_instance());
 }
-::google::protobuf::internal::ExplicitlyConstructed< ::std::string> velodyneLidarParams::_default_model_;
+::google::protobuf::internal::ExplicitlyConstructed<::std::string> velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_;
 #if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int velodyneLidarParams::kIpFieldNumber;
 const int velodyneLidarParams::kPortFieldNumber;
@@ -954,25 +923,23 @@ const int velodyneLidarParams::kCalibFieldNumber;
 
 velodyneLidarParams::velodyneLidarParams()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_velodyne_5fconfig_2eproto::InitDefaultsvelodyneLidarParams();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_velodyne_5fconfig_2eproto::scc_info_velodyneLidarParams.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:velodyne.velodyneLidarParams)
 }
 velodyneLidarParams::velodyneLidarParams(const velodyneLidarParams& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   ip_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   if (from.has_ip()) {
     ip_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.ip_);
   }
-  model_.UnsafeSetDefault(&::velodyne::velodyneLidarParams::_default_model_.get());
+  model_.UnsafeSetDefault(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get());
   if (from.has_model()) {
-    model_.AssignWithDefault(&::velodyne::velodyneLidarParams::_default_model_.get(), from.model_);
+    model_.AssignWithDefault(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), from.model_);
   }
   calibrationfile_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   if (from.has_calibrationfile()) {
@@ -990,9 +957,8 @@ velodyneLidarParams::velodyneLidarParams(const velodyneLidarParams& from)
 }
 
 void velodyneLidarParams::SharedCtor() {
-  _cached_size_ = 0;
   ip_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  model_.UnsafeSetDefault(&::velodyne::velodyneLidarParams::_default_model_.get());
+  model_.UnsafeSetDefault(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get());
   calibrationfile_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   ::memset(&calib_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&min_angle_) -
@@ -1011,15 +977,13 @@ velodyneLidarParams::~velodyneLidarParams() {
 
 void velodyneLidarParams::SharedDtor() {
   ip_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  model_.DestroyNoArena(&::velodyne::velodyneLidarParams::_default_model_.get());
+  model_.DestroyNoArena(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get());
   calibrationfile_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   if (this != internal_default_instance()) delete calib_;
 }
 
 void velodyneLidarParams::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* velodyneLidarParams::descriptor() {
   ::protobuf_velodyne_5fconfig_2eproto::protobuf_AssignDescriptorsOnce();
@@ -1027,17 +991,10 @@ const ::google::protobuf::Descriptor* velodyneLidarParams::descriptor() {
 }
 
 const velodyneLidarParams& velodyneLidarParams::default_instance() {
-  ::protobuf_velodyne_5fconfig_2eproto::InitDefaultsvelodyneLidarParams();
+  ::google::protobuf::internal::InitSCC(&protobuf_velodyne_5fconfig_2eproto::scc_info_velodyneLidarParams.base);
   return *internal_default_instance();
 }
 
-velodyneLidarParams* velodyneLidarParams::New(::google::protobuf::Arena* arena) const {
-  velodyneLidarParams* n = new velodyneLidarParams;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void velodyneLidarParams::Clear() {
 // @@protoc_insertion_point(message_clear_start:velodyne.velodyneLidarParams)
@@ -1048,16 +1005,13 @@ void velodyneLidarParams::Clear() {
   cached_has_bits = _has_bits_[0];
   if (cached_has_bits & 15u) {
     if (cached_has_bits & 0x00000001u) {
-      GOOGLE_DCHECK(!ip_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
-      (*ip_.UnsafeRawStringPointer())->clear();
+      ip_.ClearNonDefaultToEmptyNoArena();
     }
     if (cached_has_bits & 0x00000002u) {
-      GOOGLE_DCHECK(!model_.IsDefault(&::velodyne::velodyneLidarParams::_default_model_.get()));
-      (*model_.UnsafeRawStringPointer())->assign(*&::velodyne::velodyneLidarParams::_default_model_.get());
+      model_.UnsafeMutablePointer()->assign(*&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get());
     }
     if (cached_has_bits & 0x00000004u) {
-      GOOGLE_DCHECK(!calibrationfile_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
-      (*calibrationfile_.UnsafeRawStringPointer())->clear();
+      calibrationfile_.ClearNonDefaultToEmptyNoArena();
     }
     if (cached_has_bits & 0x00000008u) {
       GOOGLE_DCHECK(calib_ != NULL);
@@ -1086,7 +1040,7 @@ bool velodyneLidarParams::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:velodyne.velodyneLidarParams)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -1343,7 +1297,7 @@ void velodyneLidarParams::SerializeWithCachedSizes(
   // optional .velodyne.CalibParameter calib = 11;
   if (cached_has_bits & 0x00000008u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      11, *this->calib_, output);
+      11, this->_internal_calib(), output);
   }
 
   if (_internal_metadata_.have_unknown_fields()) {
@@ -1433,7 +1387,7 @@ void velodyneLidarParams::SerializeWithCachedSizes(
   if (cached_has_bits & 0x00000008u) {
     target = ::google::protobuf::internal::WireFormatLite::
       InternalWriteMessageToArray(
-        11, *this->calib_, deterministic, target);
+        11, this->_internal_calib(), deterministic, target);
   }
 
   if (_internal_metadata_.have_unknown_fields()) {
@@ -1527,7 +1481,7 @@ size_t velodyneLidarParams::ByteSizeLong() const {
   if (has_calib()) {
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->calib_);
+        *calib_);
   }
 
   if (_has_bits_[0 / 32] & 96u) {
@@ -1566,9 +1520,7 @@ size_t velodyneLidarParams::ByteSizeLong() const {
 
   }
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -1602,7 +1554,7 @@ void velodyneLidarParams::MergeFrom(const velodyneLidarParams& from) {
     }
     if (cached_has_bits & 0x00000002u) {
       set_has_model();
-      model_.AssignWithDefault(&::velodyne::velodyneLidarParams::_default_model_.get(), from.model_);
+      model_.AssignWithDefault(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), from.model_);
     }
     if (cached_has_bits & 0x00000004u) {
       set_has_calibrationfile();
@@ -1664,9 +1616,12 @@ void velodyneLidarParams::Swap(velodyneLidarParams* other) {
 }
 void velodyneLidarParams::InternalSwap(velodyneLidarParams* other) {
   using std::swap;
-  ip_.Swap(&other->ip_);
-  model_.Swap(&other->model_);
-  calibrationfile_.Swap(&other->calibrationfile_);
+  ip_.Swap(&other->ip_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
+  model_.Swap(&other->model_, &::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(),
+    GetArenaNoVirtual());
+  calibrationfile_.Swap(&other->calibrationfile_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
   swap(calib_, other->calib_);
   swap(lidar_id_, other->lidar_id_);
   swap(min_angle_, other->min_angle_);
@@ -1677,7 +1632,6 @@ void velodyneLidarParams::InternalSwap(velodyneLidarParams* other) {
   swap(max_angle_, other->max_angle_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata velodyneLidarParams::GetMetadata() const {
@@ -1701,17 +1655,15 @@ const int CalibParameter::kCzFieldNumber;
 
 CalibParameter::CalibParameter()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_velodyne_5fconfig_2eproto::InitDefaultsCalibParameter();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_velodyne_5fconfig_2eproto::scc_info_CalibParameter.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:velodyne.CalibParameter)
 }
 CalibParameter::CalibParameter(const CalibParameter& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   ::memcpy(&r_, &from.r_,
     static_cast<size_t>(reinterpret_cast<char*>(&cz_) -
@@ -1720,7 +1672,6 @@ CalibParameter::CalibParameter(const CalibParameter& from)
 }
 
 void CalibParameter::SharedCtor() {
-  _cached_size_ = 0;
   ::memset(&r_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&cz_) -
       reinterpret_cast<char*>(&r_)) + sizeof(cz_));
@@ -1735,9 +1686,7 @@ void CalibParameter::SharedDtor() {
 }
 
 void CalibParameter::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* CalibParameter::descriptor() {
   ::protobuf_velodyne_5fconfig_2eproto::protobuf_AssignDescriptorsOnce();
@@ -1745,17 +1694,10 @@ const ::google::protobuf::Descriptor* CalibParameter::descriptor() {
 }
 
 const CalibParameter& CalibParameter::default_instance() {
-  ::protobuf_velodyne_5fconfig_2eproto::InitDefaultsCalibParameter();
+  ::google::protobuf::internal::InitSCC(&protobuf_velodyne_5fconfig_2eproto::scc_info_CalibParameter.base);
   return *internal_default_instance();
 }
 
-CalibParameter* CalibParameter::New(::google::protobuf::Arena* arena) const {
-  CalibParameter* n = new CalibParameter;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void CalibParameter::Clear() {
 // @@protoc_insertion_point(message_clear_start:velodyne.CalibParameter)
@@ -1779,7 +1721,7 @@ bool CalibParameter::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:velodyne.CalibParameter)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -2019,9 +1961,7 @@ size_t CalibParameter::ByteSizeLong() const {
 
   }
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -2103,7 +2043,6 @@ void CalibParameter::InternalSwap(CalibParameter* other) {
   swap(cz_, other->cz_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata CalibParameter::GetMetadata() const {
@@ -2125,17 +2064,15 @@ const int lidarExtrinsic::kCalibFieldNumber;
 
 lidarExtrinsic::lidarExtrinsic()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_velodyne_5fconfig_2eproto::InitDefaultslidarExtrinsic();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_velodyne_5fconfig_2eproto::scc_info_lidarExtrinsic.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:velodyne.lidarExtrinsic)
 }
 lidarExtrinsic::lidarExtrinsic(const lidarExtrinsic& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   if (from.has_calib()) {
     calib_ = new ::velodyne::CalibParameter(*from.calib_);
@@ -2147,7 +2084,6 @@ lidarExtrinsic::lidarExtrinsic(const lidarExtrinsic& from)
 }
 
 void lidarExtrinsic::SharedCtor() {
-  _cached_size_ = 0;
   ::memset(&calib_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&lidar_id_) -
       reinterpret_cast<char*>(&calib_)) + sizeof(lidar_id_));
@@ -2163,9 +2099,7 @@ void lidarExtrinsic::SharedDtor() {
 }
 
 void lidarExtrinsic::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* lidarExtrinsic::descriptor() {
   ::protobuf_velodyne_5fconfig_2eproto::protobuf_AssignDescriptorsOnce();
@@ -2173,17 +2107,10 @@ const ::google::protobuf::Descriptor* lidarExtrinsic::descriptor() {
 }
 
 const lidarExtrinsic& lidarExtrinsic::default_instance() {
-  ::protobuf_velodyne_5fconfig_2eproto::InitDefaultslidarExtrinsic();
+  ::google::protobuf::internal::InitSCC(&protobuf_velodyne_5fconfig_2eproto::scc_info_lidarExtrinsic.base);
   return *internal_default_instance();
 }
 
-lidarExtrinsic* lidarExtrinsic::New(::google::protobuf::Arena* arena) const {
-  lidarExtrinsic* n = new lidarExtrinsic;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void lidarExtrinsic::Clear() {
 // @@protoc_insertion_point(message_clear_start:velodyne.lidarExtrinsic)
@@ -2207,7 +2134,7 @@ bool lidarExtrinsic::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:velodyne.lidarExtrinsic)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -2272,7 +2199,7 @@ void lidarExtrinsic::SerializeWithCachedSizes(
   // optional .velodyne.CalibParameter calib = 2;
   if (cached_has_bits & 0x00000001u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      2, *this->calib_, output);
+      2, this->_internal_calib(), output);
   }
 
   if (_internal_metadata_.have_unknown_fields()) {
@@ -2299,7 +2226,7 @@ void lidarExtrinsic::SerializeWithCachedSizes(
   if (cached_has_bits & 0x00000001u) {
     target = ::google::protobuf::internal::WireFormatLite::
       InternalWriteMessageToArray(
-        2, *this->calib_, deterministic, target);
+        2, this->_internal_calib(), deterministic, target);
   }
 
   if (_internal_metadata_.have_unknown_fields()) {
@@ -2329,13 +2256,11 @@ size_t lidarExtrinsic::ByteSizeLong() const {
   if (has_calib()) {
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->calib_);
+        *calib_);
   }
 
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -2402,7 +2327,6 @@ void lidarExtrinsic::InternalSwap(lidarExtrinsic* other) {
   swap(lidar_id_, other->lidar_id_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata lidarExtrinsic::GetMetadata() const {
@@ -2434,9 +2358,8 @@ const int Region::kPlcOffsetyFieldNumber;
 
 Region::Region()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_velodyne_5fconfig_2eproto::InitDefaultsRegion();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_velodyne_5fconfig_2eproto::scc_info_Region.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:velodyne.Region)
 }
@@ -2444,7 +2367,6 @@ Region::Region(const Region& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
       _has_bits_(from._has_bits_),
-      _cached_size_(0),
       lidar_exts_(from.lidar_exts_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   ::memcpy(&minx_, &from.minx_,
@@ -2454,7 +2376,6 @@ Region::Region(const Region& from)
 }
 
 void Region::SharedCtor() {
-  _cached_size_ = 0;
   ::memset(&minx_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&plc_offsety_) -
       reinterpret_cast<char*>(&minx_)) + sizeof(plc_offsety_));
@@ -2469,9 +2390,7 @@ void Region::SharedDtor() {
 }
 
 void Region::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* Region::descriptor() {
   ::protobuf_velodyne_5fconfig_2eproto::protobuf_AssignDescriptorsOnce();
@@ -2479,17 +2398,10 @@ const ::google::protobuf::Descriptor* Region::descriptor() {
 }
 
 const Region& Region::default_instance() {
-  ::protobuf_velodyne_5fconfig_2eproto::InitDefaultsRegion();
+  ::google::protobuf::internal::InitSCC(&protobuf_velodyne_5fconfig_2eproto::scc_info_Region.base);
   return *internal_default_instance();
 }
 
-Region* Region::New(::google::protobuf::Arena* arena) const {
-  Region* n = new Region;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void Region::Clear() {
 // @@protoc_insertion_point(message_clear_start:velodyne.Region)
@@ -2519,7 +2431,7 @@ bool Region::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:velodyne.Region)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -2625,7 +2537,8 @@ bool Region::MergePartialFromCodedStream(
       case 8: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(66u /* 66 & 0xFF */)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(input, add_lidar_exts()));
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+                input, add_lidar_exts()));
         } else {
           goto handle_unusual;
         }
@@ -2782,7 +2695,9 @@ void Region::SerializeWithCachedSizes(
   for (unsigned int i = 0,
       n = static_cast<unsigned int>(this->lidar_exts_size()); i < n; i++) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      8, this->lidar_exts(static_cast<int>(i)), output);
+      8,
+      this->lidar_exts(static_cast<int>(i)),
+      output);
   }
 
   // required float turnplate_cx = 9;
@@ -3050,9 +2965,7 @@ size_t Region::ByteSizeLong() const {
   }
 
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -3153,7 +3066,7 @@ void Region::Swap(Region* other) {
 }
 void Region::InternalSwap(Region* other) {
   using std::swap;
-  lidar_exts_.InternalSwap(&other->lidar_exts_);
+  CastToBase(&lidar_exts_)->InternalSwap(CastToBase(&other->lidar_exts_));
   swap(minx_, other->minx_);
   swap(maxx_, other->maxx_);
   swap(miny_, other->miny_);
@@ -3169,7 +3082,6 @@ void Region::InternalSwap(Region* other) {
   swap(plc_offsety_, other->plc_offsety_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata Region::GetMetadata() const {
@@ -3180,5 +3092,24 @@ void Region::InternalSwap(Region* other) {
 
 // @@protoc_insertion_point(namespace_scope)
 }  // namespace velodyne
+namespace google {
+namespace protobuf {
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::velodyne::velodyneManagerParams* Arena::CreateMaybeMessage< ::velodyne::velodyneManagerParams >(Arena* arena) {
+  return Arena::CreateInternal< ::velodyne::velodyneManagerParams >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::velodyne::velodyneLidarParams* Arena::CreateMaybeMessage< ::velodyne::velodyneLidarParams >(Arena* arena) {
+  return Arena::CreateInternal< ::velodyne::velodyneLidarParams >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::velodyne::CalibParameter* Arena::CreateMaybeMessage< ::velodyne::CalibParameter >(Arena* arena) {
+  return Arena::CreateInternal< ::velodyne::CalibParameter >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::velodyne::lidarExtrinsic* Arena::CreateMaybeMessage< ::velodyne::lidarExtrinsic >(Arena* arena) {
+  return Arena::CreateInternal< ::velodyne::lidarExtrinsic >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::velodyne::Region* Arena::CreateMaybeMessage< ::velodyne::Region >(Arena* arena) {
+  return Arena::CreateInternal< ::velodyne::Region >(arena);
+}
+}  // namespace protobuf
+}  // namespace google
 
 // @@protoc_insertion_point(global_scope)

+ 200 - 149
velodyne_lidar/velodyne_config.pb.h

@@ -1,19 +1,19 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: velodyne_config.proto
 
-#ifndef PROTOBUF_velodyne_5fconfig_2eproto__INCLUDED
-#define PROTOBUF_velodyne_5fconfig_2eproto__INCLUDED
+#ifndef PROTOBUF_INCLUDED_velodyne_5fconfig_2eproto
+#define PROTOBUF_INCLUDED_velodyne_5fconfig_2eproto
 
 #include <string>
 
 #include <google/protobuf/stubs/common.h>
 
-#if GOOGLE_PROTOBUF_VERSION < 3005000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #endif
-#if 3005000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
@@ -24,12 +24,14 @@
 #include <google/protobuf/arenastring.h>
 #include <google/protobuf/generated_message_table_driven.h>
 #include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/inlined_string_field.h>
 #include <google/protobuf/metadata.h>
 #include <google/protobuf/message.h>
 #include <google/protobuf/repeated_field.h>  // IWYU pragma: export
 #include <google/protobuf/extension_set.h>  // IWYU pragma: export
 #include <google/protobuf/unknown_field_set.h>
 // @@protoc_insertion_point(includes)
+#define PROTOBUF_INTERNAL_EXPORT_protobuf_velodyne_5fconfig_2eproto 
 
 namespace protobuf_velodyne_5fconfig_2eproto {
 // Internal implementation detail -- do not use these members.
@@ -42,23 +44,6 @@ struct TableStruct {
   static const ::google::protobuf::uint32 offsets[];
 };
 void AddDescriptors();
-void InitDefaultsvelodyneManagerParamsImpl();
-void InitDefaultsvelodyneManagerParams();
-void InitDefaultsvelodyneLidarParamsImpl();
-void InitDefaultsvelodyneLidarParams();
-void InitDefaultsCalibParameterImpl();
-void InitDefaultsCalibParameter();
-void InitDefaultslidarExtrinsicImpl();
-void InitDefaultslidarExtrinsic();
-void InitDefaultsRegionImpl();
-void InitDefaultsRegion();
-inline void InitDefaults() {
-  InitDefaultsvelodyneManagerParams();
-  InitDefaultsvelodyneLidarParams();
-  InitDefaultsCalibParameter();
-  InitDefaultslidarExtrinsic();
-  InitDefaultsRegion();
-}
 }  // namespace protobuf_velodyne_5fconfig_2eproto
 namespace velodyne {
 class CalibParameter;
@@ -77,6 +62,15 @@ class velodyneManagerParams;
 class velodyneManagerParamsDefaultTypeInternal;
 extern velodyneManagerParamsDefaultTypeInternal _velodyneManagerParams_default_instance_;
 }  // namespace velodyne
+namespace google {
+namespace protobuf {
+template<> ::velodyne::CalibParameter* Arena::CreateMaybeMessage<::velodyne::CalibParameter>(Arena*);
+template<> ::velodyne::Region* Arena::CreateMaybeMessage<::velodyne::Region>(Arena*);
+template<> ::velodyne::lidarExtrinsic* Arena::CreateMaybeMessage<::velodyne::lidarExtrinsic>(Arena*);
+template<> ::velodyne::velodyneLidarParams* Arena::CreateMaybeMessage<::velodyne::velodyneLidarParams>(Arena*);
+template<> ::velodyne::velodyneManagerParams* Arena::CreateMaybeMessage<::velodyne::velodyneManagerParams>(Arena*);
+}  // namespace protobuf
+}  // namespace google
 namespace velodyne {
 
 // ===================================================================
@@ -122,7 +116,7 @@ class velodyneManagerParams : public ::google::protobuf::Message /* @@protoc_ins
     return reinterpret_cast<const velodyneManagerParams*>(
                &_velodyneManagerParams_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     0;
 
   void Swap(velodyneManagerParams* other);
@@ -132,28 +126,33 @@ class velodyneManagerParams : public ::google::protobuf::Message /* @@protoc_ins
 
   // implements Message ----------------------------------------------
 
-  inline velodyneManagerParams* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline velodyneManagerParams* New() const final {
+    return CreateMaybeMessage<velodyneManagerParams>(NULL);
+  }
 
-  velodyneManagerParams* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  velodyneManagerParams* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<velodyneManagerParams>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const velodyneManagerParams& from);
   void MergeFrom(const velodyneManagerParams& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(velodyneManagerParams* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -164,7 +163,7 @@ class velodyneManagerParams : public ::google::protobuf::Message /* @@protoc_ins
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -174,11 +173,11 @@ class velodyneManagerParams : public ::google::protobuf::Message /* @@protoc_ins
   int velodyne_lidars_size() const;
   void clear_velodyne_lidars();
   static const int kVelodyneLidarsFieldNumber = 1;
-  const ::velodyne::velodyneLidarParams& velodyne_lidars(int index) const;
   ::velodyne::velodyneLidarParams* mutable_velodyne_lidars(int index);
-  ::velodyne::velodyneLidarParams* add_velodyne_lidars();
   ::google::protobuf::RepeatedPtrField< ::velodyne::velodyneLidarParams >*
       mutable_velodyne_lidars();
+  const ::velodyne::velodyneLidarParams& velodyne_lidars(int index) const;
+  ::velodyne::velodyneLidarParams* add_velodyne_lidars();
   const ::google::protobuf::RepeatedPtrField< ::velodyne::velodyneLidarParams >&
       velodyne_lidars() const;
 
@@ -186,11 +185,11 @@ class velodyneManagerParams : public ::google::protobuf::Message /* @@protoc_ins
   int region_size() const;
   void clear_region();
   static const int kRegionFieldNumber = 2;
-  const ::velodyne::Region& region(int index) const;
   ::velodyne::Region* mutable_region(int index);
-  ::velodyne::Region* add_region();
   ::google::protobuf::RepeatedPtrField< ::velodyne::Region >*
       mutable_region();
+  const ::velodyne::Region& region(int index) const;
+  ::velodyne::Region* add_region();
   const ::google::protobuf::RepeatedPtrField< ::velodyne::Region >&
       region() const;
 
@@ -276,7 +275,7 @@ class velodyneManagerParams : public ::google::protobuf::Message /* @@protoc_ins
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::google::protobuf::RepeatedPtrField< ::velodyne::velodyneLidarParams > velodyne_lidars_;
   ::google::protobuf::RepeatedPtrField< ::velodyne::Region > region_;
   ::google::protobuf::internal::ArenaStringPtr fence_data_path_;
@@ -285,7 +284,6 @@ class velodyneManagerParams : public ::google::protobuf::Message /* @@protoc_ins
   ::google::protobuf::internal::ArenaStringPtr right_model_path_;
   bool distribution_mode_;
   friend struct ::protobuf_velodyne_5fconfig_2eproto::TableStruct;
-  friend void ::protobuf_velodyne_5fconfig_2eproto::InitDefaultsvelodyneManagerParamsImpl();
 };
 // -------------------------------------------------------------------
 
@@ -330,7 +328,7 @@ class velodyneLidarParams : public ::google::protobuf::Message /* @@protoc_inser
     return reinterpret_cast<const velodyneLidarParams*>(
                &_velodyneLidarParams_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     1;
 
   void Swap(velodyneLidarParams* other);
@@ -340,28 +338,33 @@ class velodyneLidarParams : public ::google::protobuf::Message /* @@protoc_inser
 
   // implements Message ----------------------------------------------
 
-  inline velodyneLidarParams* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline velodyneLidarParams* New() const final {
+    return CreateMaybeMessage<velodyneLidarParams>(NULL);
+  }
 
-  velodyneLidarParams* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  velodyneLidarParams* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<velodyneLidarParams>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const velodyneLidarParams& from);
   void MergeFrom(const velodyneLidarParams& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(velodyneLidarParams* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -372,7 +375,7 @@ class velodyneLidarParams : public ::google::protobuf::Message /* @@protoc_inser
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -427,6 +430,9 @@ class velodyneLidarParams : public ::google::protobuf::Message /* @@protoc_inser
   bool has_calib() const;
   void clear_calib();
   static const int kCalibFieldNumber = 11;
+  private:
+  const ::velodyne::CalibParameter& _internal_calib() const;
+  public:
   const ::velodyne::CalibParameter& calib() const;
   ::velodyne::CalibParameter* release_calib();
   ::velodyne::CalibParameter* mutable_calib();
@@ -511,9 +517,11 @@ class velodyneLidarParams : public ::google::protobuf::Message /* @@protoc_inser
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::google::protobuf::internal::ArenaStringPtr ip_;
-  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _default_model_;
+  public:
+  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _i_give_permission_to_break_this_code_default_model_;
+  private:
   ::google::protobuf::internal::ArenaStringPtr model_;
   ::google::protobuf::internal::ArenaStringPtr calibrationfile_;
   ::velodyne::CalibParameter* calib_;
@@ -525,7 +533,6 @@ class velodyneLidarParams : public ::google::protobuf::Message /* @@protoc_inser
   float min_range_;
   ::google::protobuf::int32 max_angle_;
   friend struct ::protobuf_velodyne_5fconfig_2eproto::TableStruct;
-  friend void ::protobuf_velodyne_5fconfig_2eproto::InitDefaultsvelodyneLidarParamsImpl();
 };
 // -------------------------------------------------------------------
 
@@ -570,7 +577,7 @@ class CalibParameter : public ::google::protobuf::Message /* @@protoc_insertion_
     return reinterpret_cast<const CalibParameter*>(
                &_CalibParameter_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     2;
 
   void Swap(CalibParameter* other);
@@ -580,28 +587,33 @@ class CalibParameter : public ::google::protobuf::Message /* @@protoc_insertion_
 
   // implements Message ----------------------------------------------
 
-  inline CalibParameter* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline CalibParameter* New() const final {
+    return CreateMaybeMessage<CalibParameter>(NULL);
+  }
 
-  CalibParameter* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  CalibParameter* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<CalibParameter>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const CalibParameter& from);
   void MergeFrom(const CalibParameter& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(CalibParameter* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -612,7 +624,7 @@ class CalibParameter : public ::google::protobuf::Message /* @@protoc_insertion_
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -677,7 +689,7 @@ class CalibParameter : public ::google::protobuf::Message /* @@protoc_insertion_
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   float r_;
   float p_;
   float y_;
@@ -685,7 +697,6 @@ class CalibParameter : public ::google::protobuf::Message /* @@protoc_insertion_
   float cy_;
   float cz_;
   friend struct ::protobuf_velodyne_5fconfig_2eproto::TableStruct;
-  friend void ::protobuf_velodyne_5fconfig_2eproto::InitDefaultsCalibParameterImpl();
 };
 // -------------------------------------------------------------------
 
@@ -730,7 +741,7 @@ class lidarExtrinsic : public ::google::protobuf::Message /* @@protoc_insertion_
     return reinterpret_cast<const lidarExtrinsic*>(
                &_lidarExtrinsic_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     3;
 
   void Swap(lidarExtrinsic* other);
@@ -740,28 +751,33 @@ class lidarExtrinsic : public ::google::protobuf::Message /* @@protoc_insertion_
 
   // implements Message ----------------------------------------------
 
-  inline lidarExtrinsic* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline lidarExtrinsic* New() const final {
+    return CreateMaybeMessage<lidarExtrinsic>(NULL);
+  }
 
-  lidarExtrinsic* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  lidarExtrinsic* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<lidarExtrinsic>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const lidarExtrinsic& from);
   void MergeFrom(const lidarExtrinsic& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(lidarExtrinsic* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -772,7 +788,7 @@ class lidarExtrinsic : public ::google::protobuf::Message /* @@protoc_insertion_
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -782,6 +798,9 @@ class lidarExtrinsic : public ::google::protobuf::Message /* @@protoc_insertion_
   bool has_calib() const;
   void clear_calib();
   static const int kCalibFieldNumber = 2;
+  private:
+  const ::velodyne::CalibParameter& _internal_calib() const;
+  public:
   const ::velodyne::CalibParameter& calib() const;
   ::velodyne::CalibParameter* release_calib();
   ::velodyne::CalibParameter* mutable_calib();
@@ -803,11 +822,10 @@ class lidarExtrinsic : public ::google::protobuf::Message /* @@protoc_insertion_
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::velodyne::CalibParameter* calib_;
   ::google::protobuf::int32 lidar_id_;
   friend struct ::protobuf_velodyne_5fconfig_2eproto::TableStruct;
-  friend void ::protobuf_velodyne_5fconfig_2eproto::InitDefaultslidarExtrinsicImpl();
 };
 // -------------------------------------------------------------------
 
@@ -852,7 +870,7 @@ class Region : public ::google::protobuf::Message /* @@protoc_insertion_point(cl
     return reinterpret_cast<const Region*>(
                &_Region_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     4;
 
   void Swap(Region* other);
@@ -862,28 +880,33 @@ class Region : public ::google::protobuf::Message /* @@protoc_insertion_point(cl
 
   // implements Message ----------------------------------------------
 
-  inline Region* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline Region* New() const final {
+    return CreateMaybeMessage<Region>(NULL);
+  }
 
-  Region* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  Region* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<Region>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const Region& from);
   void MergeFrom(const Region& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(Region* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -894,7 +917,7 @@ class Region : public ::google::protobuf::Message /* @@protoc_insertion_point(cl
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -904,11 +927,11 @@ class Region : public ::google::protobuf::Message /* @@protoc_insertion_point(cl
   int lidar_exts_size() const;
   void clear_lidar_exts();
   static const int kLidarExtsFieldNumber = 8;
-  const ::velodyne::lidarExtrinsic& lidar_exts(int index) const;
   ::velodyne::lidarExtrinsic* mutable_lidar_exts(int index);
-  ::velodyne::lidarExtrinsic* add_lidar_exts();
   ::google::protobuf::RepeatedPtrField< ::velodyne::lidarExtrinsic >*
       mutable_lidar_exts();
+  const ::velodyne::lidarExtrinsic& lidar_exts(int index) const;
+  ::velodyne::lidarExtrinsic* add_lidar_exts();
   const ::google::protobuf::RepeatedPtrField< ::velodyne::lidarExtrinsic >&
       lidar_exts() const;
 
@@ -1037,7 +1060,7 @@ class Region : public ::google::protobuf::Message /* @@protoc_insertion_point(cl
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::google::protobuf::RepeatedPtrField< ::velodyne::lidarExtrinsic > lidar_exts_;
   float minx_;
   float maxx_;
@@ -1053,7 +1076,6 @@ class Region : public ::google::protobuf::Message /* @@protoc_insertion_point(cl
   float plc_offsetx_;
   float plc_offsety_;
   friend struct ::protobuf_velodyne_5fconfig_2eproto::TableStruct;
-  friend void ::protobuf_velodyne_5fconfig_2eproto::InitDefaultsRegionImpl();
 };
 // ===================================================================
 
@@ -1073,23 +1095,23 @@ inline int velodyneManagerParams::velodyne_lidars_size() const {
 inline void velodyneManagerParams::clear_velodyne_lidars() {
   velodyne_lidars_.Clear();
 }
-inline const ::velodyne::velodyneLidarParams& velodyneManagerParams::velodyne_lidars(int index) const {
-  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.velodyne_lidars)
-  return velodyne_lidars_.Get(index);
-}
 inline ::velodyne::velodyneLidarParams* velodyneManagerParams::mutable_velodyne_lidars(int index) {
   // @@protoc_insertion_point(field_mutable:velodyne.velodyneManagerParams.velodyne_lidars)
   return velodyne_lidars_.Mutable(index);
 }
-inline ::velodyne::velodyneLidarParams* velodyneManagerParams::add_velodyne_lidars() {
-  // @@protoc_insertion_point(field_add:velodyne.velodyneManagerParams.velodyne_lidars)
-  return velodyne_lidars_.Add();
-}
 inline ::google::protobuf::RepeatedPtrField< ::velodyne::velodyneLidarParams >*
 velodyneManagerParams::mutable_velodyne_lidars() {
   // @@protoc_insertion_point(field_mutable_list:velodyne.velodyneManagerParams.velodyne_lidars)
   return &velodyne_lidars_;
 }
+inline const ::velodyne::velodyneLidarParams& velodyneManagerParams::velodyne_lidars(int index) const {
+  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.velodyne_lidars)
+  return velodyne_lidars_.Get(index);
+}
+inline ::velodyne::velodyneLidarParams* velodyneManagerParams::add_velodyne_lidars() {
+  // @@protoc_insertion_point(field_add:velodyne.velodyneManagerParams.velodyne_lidars)
+  return velodyne_lidars_.Add();
+}
 inline const ::google::protobuf::RepeatedPtrField< ::velodyne::velodyneLidarParams >&
 velodyneManagerParams::velodyne_lidars() const {
   // @@protoc_insertion_point(field_list:velodyne.velodyneManagerParams.velodyne_lidars)
@@ -1103,23 +1125,23 @@ inline int velodyneManagerParams::region_size() const {
 inline void velodyneManagerParams::clear_region() {
   region_.Clear();
 }
-inline const ::velodyne::Region& velodyneManagerParams::region(int index) const {
-  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.region)
-  return region_.Get(index);
-}
 inline ::velodyne::Region* velodyneManagerParams::mutable_region(int index) {
   // @@protoc_insertion_point(field_mutable:velodyne.velodyneManagerParams.region)
   return region_.Mutable(index);
 }
-inline ::velodyne::Region* velodyneManagerParams::add_region() {
-  // @@protoc_insertion_point(field_add:velodyne.velodyneManagerParams.region)
-  return region_.Add();
-}
 inline ::google::protobuf::RepeatedPtrField< ::velodyne::Region >*
 velodyneManagerParams::mutable_region() {
   // @@protoc_insertion_point(field_mutable_list:velodyne.velodyneManagerParams.region)
   return &region_;
 }
+inline const ::velodyne::Region& velodyneManagerParams::region(int index) const {
+  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.region)
+  return region_.Get(index);
+}
+inline ::velodyne::Region* velodyneManagerParams::add_region() {
+  // @@protoc_insertion_point(field_add:velodyne.velodyneManagerParams.region)
+  return region_.Add();
+}
 inline const ::google::protobuf::RepeatedPtrField< ::velodyne::Region >&
 velodyneManagerParams::region() const {
   // @@protoc_insertion_point(field_list:velodyne.velodyneManagerParams.region)
@@ -1176,8 +1198,11 @@ inline ::std::string* velodyneManagerParams::mutable_fence_data_path() {
 }
 inline ::std::string* velodyneManagerParams::release_fence_data_path() {
   // @@protoc_insertion_point(field_release:velodyne.velodyneManagerParams.fence_data_path)
+  if (!has_fence_data_path()) {
+    return NULL;
+  }
   clear_has_fence_data_path();
-  return fence_data_path_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  return fence_data_path_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void velodyneManagerParams::set_allocated_fence_data_path(::std::string* fence_data_path) {
   if (fence_data_path != NULL) {
@@ -1239,8 +1264,11 @@ inline ::std::string* velodyneManagerParams::mutable_fence_log_path() {
 }
 inline ::std::string* velodyneManagerParams::release_fence_log_path() {
   // @@protoc_insertion_point(field_release:velodyne.velodyneManagerParams.fence_log_path)
+  if (!has_fence_log_path()) {
+    return NULL;
+  }
   clear_has_fence_log_path();
-  return fence_log_path_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  return fence_log_path_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void velodyneManagerParams::set_allocated_fence_log_path(::std::string* fence_log_path) {
   if (fence_log_path != NULL) {
@@ -1302,8 +1330,11 @@ inline ::std::string* velodyneManagerParams::mutable_left_model_path() {
 }
 inline ::std::string* velodyneManagerParams::release_left_model_path() {
   // @@protoc_insertion_point(field_release:velodyne.velodyneManagerParams.left_model_path)
+  if (!has_left_model_path()) {
+    return NULL;
+  }
   clear_has_left_model_path();
-  return left_model_path_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  return left_model_path_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void velodyneManagerParams::set_allocated_left_model_path(::std::string* left_model_path) {
   if (left_model_path != NULL) {
@@ -1365,8 +1396,11 @@ inline ::std::string* velodyneManagerParams::mutable_right_model_path() {
 }
 inline ::std::string* velodyneManagerParams::release_right_model_path() {
   // @@protoc_insertion_point(field_release:velodyne.velodyneManagerParams.right_model_path)
+  if (!has_right_model_path()) {
+    return NULL;
+  }
   clear_has_right_model_path();
-  return right_model_path_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  return right_model_path_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void velodyneManagerParams::set_allocated_right_model_path(::std::string* right_model_path) {
   if (right_model_path != NULL) {
@@ -1456,8 +1490,11 @@ inline ::std::string* velodyneLidarParams::mutable_ip() {
 }
 inline ::std::string* velodyneLidarParams::release_ip() {
   // @@protoc_insertion_point(field_release:velodyne.velodyneLidarParams.ip)
+  if (!has_ip()) {
+    return NULL;
+  }
   clear_has_ip();
-  return ip_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  return ip_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void velodyneLidarParams::set_allocated_ip(::std::string* ip) {
   if (ip != NULL) {
@@ -1504,7 +1541,7 @@ inline void velodyneLidarParams::clear_has_model() {
   _has_bits_[0] &= ~0x00000002u;
 }
 inline void velodyneLidarParams::clear_model() {
-  model_.ClearToDefaultNoArena(&::velodyne::velodyneLidarParams::_default_model_.get());
+  model_.ClearToDefaultNoArena(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get());
   clear_has_model();
 }
 inline const ::std::string& velodyneLidarParams::model() const {
@@ -1513,38 +1550,41 @@ inline const ::std::string& velodyneLidarParams::model() const {
 }
 inline void velodyneLidarParams::set_model(const ::std::string& value) {
   set_has_model();
-  model_.SetNoArena(&::velodyne::velodyneLidarParams::_default_model_.get(), value);
+  model_.SetNoArena(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), value);
   // @@protoc_insertion_point(field_set:velodyne.velodyneLidarParams.model)
 }
 #if LANG_CXX11
 inline void velodyneLidarParams::set_model(::std::string&& value) {
   set_has_model();
   model_.SetNoArena(
-    &::velodyne::velodyneLidarParams::_default_model_.get(), ::std::move(value));
+    &::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), ::std::move(value));
   // @@protoc_insertion_point(field_set_rvalue:velodyne.velodyneLidarParams.model)
 }
 #endif
 inline void velodyneLidarParams::set_model(const char* value) {
   GOOGLE_DCHECK(value != NULL);
   set_has_model();
-  model_.SetNoArena(&::velodyne::velodyneLidarParams::_default_model_.get(), ::std::string(value));
+  model_.SetNoArena(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), ::std::string(value));
   // @@protoc_insertion_point(field_set_char:velodyne.velodyneLidarParams.model)
 }
 inline void velodyneLidarParams::set_model(const char* value, size_t size) {
   set_has_model();
-  model_.SetNoArena(&::velodyne::velodyneLidarParams::_default_model_.get(),
+  model_.SetNoArena(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(),
       ::std::string(reinterpret_cast<const char*>(value), size));
   // @@protoc_insertion_point(field_set_pointer:velodyne.velodyneLidarParams.model)
 }
 inline ::std::string* velodyneLidarParams::mutable_model() {
   set_has_model();
   // @@protoc_insertion_point(field_mutable:velodyne.velodyneLidarParams.model)
-  return model_.MutableNoArena(&::velodyne::velodyneLidarParams::_default_model_.get());
+  return model_.MutableNoArena(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get());
 }
 inline ::std::string* velodyneLidarParams::release_model() {
   // @@protoc_insertion_point(field_release:velodyne.velodyneLidarParams.model)
+  if (!has_model()) {
+    return NULL;
+  }
   clear_has_model();
-  return model_.ReleaseNoArena(&::velodyne::velodyneLidarParams::_default_model_.get());
+  return model_.ReleaseNonDefaultNoArena(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get());
 }
 inline void velodyneLidarParams::set_allocated_model(::std::string* model) {
   if (model != NULL) {
@@ -1552,7 +1592,7 @@ inline void velodyneLidarParams::set_allocated_model(::std::string* model) {
   } else {
     clear_has_model();
   }
-  model_.SetAllocatedNoArena(&::velodyne::velodyneLidarParams::_default_model_.get(), model);
+  model_.SetAllocatedNoArena(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), model);
   // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneLidarParams.model)
 }
 
@@ -1606,8 +1646,11 @@ inline ::std::string* velodyneLidarParams::mutable_calibrationfile() {
 }
 inline ::std::string* velodyneLidarParams::release_calibrationfile() {
   // @@protoc_insertion_point(field_release:velodyne.velodyneLidarParams.calibrationFile)
+  if (!has_calibrationfile()) {
+    return NULL;
+  }
   clear_has_calibrationfile();
-  return calibrationfile_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  return calibrationfile_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void velodyneLidarParams::set_allocated_calibrationfile(::std::string* calibrationfile) {
   if (calibrationfile != NULL) {
@@ -1777,6 +1820,9 @@ inline void velodyneLidarParams::clear_calib() {
   if (calib_ != NULL) calib_->Clear();
   clear_has_calib();
 }
+inline const ::velodyne::CalibParameter& velodyneLidarParams::_internal_calib() const {
+  return *calib_;
+}
 inline const ::velodyne::CalibParameter& velodyneLidarParams::calib() const {
   const ::velodyne::CalibParameter* p = calib_;
   // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.calib)
@@ -1793,7 +1839,8 @@ inline ::velodyne::CalibParameter* velodyneLidarParams::release_calib() {
 inline ::velodyne::CalibParameter* velodyneLidarParams::mutable_calib() {
   set_has_calib();
   if (calib_ == NULL) {
-    calib_ = new ::velodyne::CalibParameter;
+    auto* p = CreateMaybeMessage<::velodyne::CalibParameter>(GetArenaNoVirtual());
+    calib_ = p;
   }
   // @@protoc_insertion_point(field_mutable:velodyne.velodyneLidarParams.calib)
   return calib_;
@@ -2007,6 +2054,9 @@ inline void lidarExtrinsic::clear_calib() {
   if (calib_ != NULL) calib_->Clear();
   clear_has_calib();
 }
+inline const ::velodyne::CalibParameter& lidarExtrinsic::_internal_calib() const {
+  return *calib_;
+}
 inline const ::velodyne::CalibParameter& lidarExtrinsic::calib() const {
   const ::velodyne::CalibParameter* p = calib_;
   // @@protoc_insertion_point(field_get:velodyne.lidarExtrinsic.calib)
@@ -2023,7 +2073,8 @@ inline ::velodyne::CalibParameter* lidarExtrinsic::release_calib() {
 inline ::velodyne::CalibParameter* lidarExtrinsic::mutable_calib() {
   set_has_calib();
   if (calib_ == NULL) {
-    calib_ = new ::velodyne::CalibParameter;
+    auto* p = CreateMaybeMessage<::velodyne::CalibParameter>(GetArenaNoVirtual());
+    calib_ = p;
   }
   // @@protoc_insertion_point(field_mutable:velodyne.lidarExtrinsic.calib)
   return calib_;
@@ -2226,23 +2277,23 @@ inline int Region::lidar_exts_size() const {
 inline void Region::clear_lidar_exts() {
   lidar_exts_.Clear();
 }
-inline const ::velodyne::lidarExtrinsic& Region::lidar_exts(int index) const {
-  // @@protoc_insertion_point(field_get:velodyne.Region.lidar_exts)
-  return lidar_exts_.Get(index);
-}
 inline ::velodyne::lidarExtrinsic* Region::mutable_lidar_exts(int index) {
   // @@protoc_insertion_point(field_mutable:velodyne.Region.lidar_exts)
   return lidar_exts_.Mutable(index);
 }
-inline ::velodyne::lidarExtrinsic* Region::add_lidar_exts() {
-  // @@protoc_insertion_point(field_add:velodyne.Region.lidar_exts)
-  return lidar_exts_.Add();
-}
 inline ::google::protobuf::RepeatedPtrField< ::velodyne::lidarExtrinsic >*
 Region::mutable_lidar_exts() {
   // @@protoc_insertion_point(field_mutable_list:velodyne.Region.lidar_exts)
   return &lidar_exts_;
 }
+inline const ::velodyne::lidarExtrinsic& Region::lidar_exts(int index) const {
+  // @@protoc_insertion_point(field_get:velodyne.Region.lidar_exts)
+  return lidar_exts_.Get(index);
+}
+inline ::velodyne::lidarExtrinsic* Region::add_lidar_exts() {
+  // @@protoc_insertion_point(field_add:velodyne.Region.lidar_exts)
+  return lidar_exts_.Add();
+}
 inline const ::google::protobuf::RepeatedPtrField< ::velodyne::lidarExtrinsic >&
 Region::lidar_exts() const {
   // @@protoc_insertion_point(field_list:velodyne.Region.lidar_exts)
@@ -2411,4 +2462,4 @@ inline void Region::set_plc_offsety(float value) {
 
 // @@protoc_insertion_point(global_scope)
 
-#endif  // PROTOBUF_velodyne_5fconfig_2eproto__INCLUDED
+#endif  // PROTOBUF_INCLUDED_velodyne_5fconfig_2eproto

+ 3 - 0
velodyne_lidar/velodyne_driver/rawdata.h

@@ -115,6 +115,9 @@ struct Lidar_point
     x = point.x() / point.w();
     y = point.y() / point.w();
     z = point.z() / point.w();
+    // x = transform_matrix(0, 0)*point[0] + transform_matrix(0, 1)*point[1]+transform_matrix(0, 2)*point[2] + transform_matrix(0, 3);
+    // y = transform_matrix(1, 0)*point[0] + transform_matrix(1, 1)*point[1]+transform_matrix(1, 2)*point[2] + transform_matrix(1, 3);
+    // z = transform_matrix(2, 0)*point[0] + transform_matrix(2, 1)*point[1]+transform_matrix(2, 2)*point[2] + transform_matrix(2, 3);
     // printf("point: %.6f %.6f %.6f %.6f \n", x, y, z, point.w());
   }
 };

+ 1 - 0
velodyne_lidar/velodyne_driver/velodyne_lidar_device.cpp

@@ -90,6 +90,7 @@ Error_manager Velodyne_lidar_device::init(velodyne::velodyneLidarParams params)
 	Eigen::AngleAxisd rot_z = Eigen::AngleAxisd(params.calib().y()*M_PI/180.0, Eigen::Vector3d::UnitZ());
 	Eigen::Vector3d trans(params.calib().cx(), params.calib().cy(), params.calib().cz());
 	m_calib_matrix << rot_x.toRotationMatrix() * rot_y.toRotationMatrix() * rot_z.toRotationMatrix(), trans, 0.0, 0.0, 0.0, 1.0;
+	// LOG(INFO) <<"lidar "<<m_lidar_id<<",,,\n"<< rot_x.toRotationMatrix()<<"------------------\n"<<rot_y.toRotationMatrix()<<"-----------------\n"<<rot_z.toRotationMatrix()<<"---------------\n"<<m_calib_matrix;
 
 	//唤醒队列
 	m_communication_data_queue.wake_queue();

+ 71 - 109
verify/hardware_limit.pb.cc

@@ -7,7 +7,6 @@
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/port.h>
-#include <google/protobuf/stubs/once.h>
 #include <google/protobuf/io/coded_stream.h>
 #include <google/protobuf/wire_format_lite_inl.h>
 #include <google/protobuf/descriptor.h>
@@ -19,6 +18,11 @@
 #include "third_party/protobuf/version.h"
 #endif
 // @@protoc_insertion_point(includes)
+
+namespace protobuf_hardware_5flimit_2eproto {
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_hardware_5flimit_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Railing;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_hardware_5flimit_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Theta_range;
+}  // namespace protobuf_hardware_5flimit_2eproto
 namespace Hardware_limit {
 class RailingDefaultTypeInternal {
  public:
@@ -37,14 +41,9 @@ class Hardware_parameterDefaultTypeInternal {
 } _Hardware_parameter_default_instance_;
 }  // namespace Hardware_limit
 namespace protobuf_hardware_5flimit_2eproto {
-void InitDefaultsRailingImpl() {
+static void InitDefaultsRailing() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   {
     void* ptr = &::Hardware_limit::_Railing_default_instance_;
     new (ptr) ::Hardware_limit::Railing();
@@ -53,19 +52,12 @@ void InitDefaultsRailingImpl() {
   ::Hardware_limit::Railing::InitAsDefaultInstance();
 }
 
-void InitDefaultsRailing() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsRailingImpl);
-}
+::google::protobuf::internal::SCCInfo<0> scc_info_Railing =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsRailing}, {}};
 
-void InitDefaultsTheta_rangeImpl() {
+static void InitDefaultsTheta_range() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   {
     void* ptr = &::Hardware_limit::_Theta_range_default_instance_;
     new (ptr) ::Hardware_limit::Theta_range();
@@ -74,21 +66,12 @@ void InitDefaultsTheta_rangeImpl() {
   ::Hardware_limit::Theta_range::InitAsDefaultInstance();
 }
 
-void InitDefaultsTheta_range() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsTheta_rangeImpl);
-}
+::google::protobuf::internal::SCCInfo<0> scc_info_Theta_range =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsTheta_range}, {}};
 
-void InitDefaultsHardware_parameterImpl() {
+static void InitDefaultsHardware_parameter() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  protobuf_hardware_5flimit_2eproto::InitDefaultsRailing();
-  protobuf_hardware_5flimit_2eproto::InitDefaultsTheta_range();
   {
     void* ptr = &::Hardware_limit::_Hardware_parameter_default_instance_;
     new (ptr) ::Hardware_limit::Hardware_parameter();
@@ -97,9 +80,15 @@ void InitDefaultsHardware_parameterImpl() {
   ::Hardware_limit::Hardware_parameter::InitAsDefaultInstance();
 }
 
-void InitDefaultsHardware_parameter() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsHardware_parameterImpl);
+::google::protobuf::internal::SCCInfo<2> scc_info_Hardware_parameter =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsHardware_parameter}, {
+      &protobuf_hardware_5flimit_2eproto::scc_info_Railing.base,
+      &protobuf_hardware_5flimit_2eproto::scc_info_Theta_range.base,}};
+
+void InitDefaults() {
+  ::google::protobuf::internal::InitSCC(&scc_info_Railing.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_Theta_range.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_Hardware_parameter.base);
 }
 
 ::google::protobuf::Metadata file_level_metadata[3];
@@ -165,15 +154,14 @@ static ::google::protobuf::Message const * const file_default_instances[] = {
 
 void protobuf_AssignDescriptors() {
   AddDescriptors();
-  ::google::protobuf::MessageFactory* factory = NULL;
   AssignDescriptors(
-      "hardware_limit.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+      "hardware_limit.proto", schemas, file_default_instances, TableStruct::offsets,
       file_level_metadata, NULL, NULL);
 }
 
 void protobuf_AssignDescriptorsOnce() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
+  static ::google::protobuf::internal::once_flag once;
+  ::google::protobuf::internal::call_once(once, protobuf_AssignDescriptors);
 }
 
 void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
@@ -204,8 +192,8 @@ void AddDescriptorsImpl() {
 }
 
 void AddDescriptors() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+  static ::google::protobuf::internal::once_flag once;
+  ::google::protobuf::internal::call_once(once, AddDescriptorsImpl);
 }
 // Force AddDescriptors() to be called at dynamic initialization time.
 struct StaticDescriptorInitializer {
@@ -229,17 +217,15 @@ const int Railing::kRailingWidthFieldNumber;
 
 Railing::Railing()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_hardware_5flimit_2eproto::InitDefaultsRailing();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_hardware_5flimit_2eproto::scc_info_Railing.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:Hardware_limit.Railing)
 }
 Railing::Railing(const Railing& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   ::memcpy(&pa_, &from.pa_,
     static_cast<size_t>(reinterpret_cast<char*>(&railing_width_) -
@@ -248,7 +234,6 @@ Railing::Railing(const Railing& from)
 }
 
 void Railing::SharedCtor() {
-  _cached_size_ = 0;
   ::memset(&pa_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&railing_width_) -
       reinterpret_cast<char*>(&pa_)) + sizeof(railing_width_));
@@ -263,9 +248,7 @@ void Railing::SharedDtor() {
 }
 
 void Railing::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* Railing::descriptor() {
   ::protobuf_hardware_5flimit_2eproto::protobuf_AssignDescriptorsOnce();
@@ -273,17 +256,10 @@ const ::google::protobuf::Descriptor* Railing::descriptor() {
 }
 
 const Railing& Railing::default_instance() {
-  ::protobuf_hardware_5flimit_2eproto::InitDefaultsRailing();
+  ::google::protobuf::internal::InitSCC(&protobuf_hardware_5flimit_2eproto::scc_info_Railing.base);
   return *internal_default_instance();
 }
 
-Railing* Railing::New(::google::protobuf::Arena* arena) const {
-  Railing* n = new Railing;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void Railing::Clear() {
 // @@protoc_insertion_point(message_clear_start:Hardware_limit.Railing)
@@ -307,7 +283,7 @@ bool Railing::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:Hardware_limit.Railing)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -506,9 +482,7 @@ size_t Railing::ByteSizeLong() const {
   }
 
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -583,7 +557,6 @@ void Railing::InternalSwap(Railing* other) {
   swap(railing_width_, other->railing_width_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata Railing::GetMetadata() const {
@@ -603,17 +576,15 @@ const int Theta_range::kMaxThetaFieldNumber;
 
 Theta_range::Theta_range()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_hardware_5flimit_2eproto::InitDefaultsTheta_range();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_hardware_5flimit_2eproto::scc_info_Theta_range.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:Hardware_limit.Theta_range)
 }
 Theta_range::Theta_range(const Theta_range& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   ::memcpy(&min_theta_, &from.min_theta_,
     static_cast<size_t>(reinterpret_cast<char*>(&max_theta_) -
@@ -622,7 +593,6 @@ Theta_range::Theta_range(const Theta_range& from)
 }
 
 void Theta_range::SharedCtor() {
-  _cached_size_ = 0;
   ::memset(&min_theta_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&max_theta_) -
       reinterpret_cast<char*>(&min_theta_)) + sizeof(max_theta_));
@@ -637,9 +607,7 @@ void Theta_range::SharedDtor() {
 }
 
 void Theta_range::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* Theta_range::descriptor() {
   ::protobuf_hardware_5flimit_2eproto::protobuf_AssignDescriptorsOnce();
@@ -647,17 +615,10 @@ const ::google::protobuf::Descriptor* Theta_range::descriptor() {
 }
 
 const Theta_range& Theta_range::default_instance() {
-  ::protobuf_hardware_5flimit_2eproto::InitDefaultsTheta_range();
+  ::google::protobuf::internal::InitSCC(&protobuf_hardware_5flimit_2eproto::scc_info_Theta_range.base);
   return *internal_default_instance();
 }
 
-Theta_range* Theta_range::New(::google::protobuf::Arena* arena) const {
-  Theta_range* n = new Theta_range;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void Theta_range::Clear() {
 // @@protoc_insertion_point(message_clear_start:Hardware_limit.Theta_range)
@@ -681,7 +642,7 @@ bool Theta_range::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:Hardware_limit.Theta_range)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -819,9 +780,7 @@ size_t Theta_range::ByteSizeLong() const {
     total_size += RequiredFieldsByteSizeFallback();
   }
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -888,7 +847,6 @@ void Theta_range::InternalSwap(Theta_range* other) {
   swap(max_theta_, other->max_theta_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata Theta_range::GetMetadata() const {
@@ -915,9 +873,8 @@ const int Hardware_parameter::kHeightFieldNumber;
 
 Hardware_parameter::Hardware_parameter()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_hardware_5flimit_2eproto::InitDefaultsHardware_parameter();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_hardware_5flimit_2eproto::scc_info_Hardware_parameter.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:Hardware_limit.Hardware_parameter)
 }
@@ -925,7 +882,6 @@ Hardware_parameter::Hardware_parameter(const Hardware_parameter& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
       _has_bits_(from._has_bits_),
-      _cached_size_(0),
       railing_parameter_(from.railing_parameter_),
       theta_range_(from.theta_range_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
@@ -936,7 +892,6 @@ Hardware_parameter::Hardware_parameter(const Hardware_parameter& from)
 }
 
 void Hardware_parameter::SharedCtor() {
-  _cached_size_ = 0;
   ::memset(&center_min_y_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&height_) -
       reinterpret_cast<char*>(&center_min_y_)) + sizeof(height_));
@@ -951,9 +906,7 @@ void Hardware_parameter::SharedDtor() {
 }
 
 void Hardware_parameter::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* Hardware_parameter::descriptor() {
   ::protobuf_hardware_5flimit_2eproto::protobuf_AssignDescriptorsOnce();
@@ -961,17 +914,10 @@ const ::google::protobuf::Descriptor* Hardware_parameter::descriptor() {
 }
 
 const Hardware_parameter& Hardware_parameter::default_instance() {
-  ::protobuf_hardware_5flimit_2eproto::InitDefaultsHardware_parameter();
+  ::google::protobuf::internal::InitSCC(&protobuf_hardware_5flimit_2eproto::scc_info_Hardware_parameter.base);
   return *internal_default_instance();
 }
 
-Hardware_parameter* Hardware_parameter::New(::google::protobuf::Arena* arena) const {
-  Hardware_parameter* n = new Hardware_parameter;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void Hardware_parameter::Clear() {
 // @@protoc_insertion_point(message_clear_start:Hardware_limit.Hardware_parameter)
@@ -997,7 +943,7 @@ bool Hardware_parameter::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:Hardware_limit.Hardware_parameter)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -1005,7 +951,8 @@ bool Hardware_parameter::MergePartialFromCodedStream(
       case 1: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(input, add_railing_parameter()));
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+                input, add_railing_parameter()));
         } else {
           goto handle_unusual;
         }
@@ -1100,7 +1047,8 @@ bool Hardware_parameter::MergePartialFromCodedStream(
       case 8: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(66u /* 66 & 0xFF */)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(input, add_theta_range()));
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+                input, add_theta_range()));
         } else {
           goto handle_unusual;
         }
@@ -1151,7 +1099,9 @@ void Hardware_parameter::SerializeWithCachedSizes(
   for (unsigned int i = 0,
       n = static_cast<unsigned int>(this->railing_parameter_size()); i < n; i++) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, this->railing_parameter(static_cast<int>(i)), output);
+      1,
+      this->railing_parameter(static_cast<int>(i)),
+      output);
   }
 
   cached_has_bits = _has_bits_[0];
@@ -1189,7 +1139,9 @@ void Hardware_parameter::SerializeWithCachedSizes(
   for (unsigned int i = 0,
       n = static_cast<unsigned int>(this->theta_range_size()); i < n; i++) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      8, this->theta_range(static_cast<int>(i)), output);
+      8,
+      this->theta_range(static_cast<int>(i)),
+      output);
   }
 
   // required float height = 9;
@@ -1369,9 +1321,7 @@ size_t Hardware_parameter::ByteSizeLong() const {
   }
 
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -1453,8 +1403,8 @@ void Hardware_parameter::Swap(Hardware_parameter* other) {
 }
 void Hardware_parameter::InternalSwap(Hardware_parameter* other) {
   using std::swap;
-  railing_parameter_.InternalSwap(&other->railing_parameter_);
-  theta_range_.InternalSwap(&other->theta_range_);
+  CastToBase(&railing_parameter_)->InternalSwap(CastToBase(&other->railing_parameter_));
+  CastToBase(&theta_range_)->InternalSwap(CastToBase(&other->theta_range_));
   swap(center_min_y_, other->center_min_y_);
   swap(center_max_y_, other->center_max_y_);
   swap(center_min_x_, other->center_min_x_);
@@ -1464,7 +1414,6 @@ void Hardware_parameter::InternalSwap(Hardware_parameter* other) {
   swap(height_, other->height_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata Hardware_parameter::GetMetadata() const {
@@ -1475,5 +1424,18 @@ void Hardware_parameter::InternalSwap(Hardware_parameter* other) {
 
 // @@protoc_insertion_point(namespace_scope)
 }  // namespace Hardware_limit
+namespace google {
+namespace protobuf {
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::Hardware_limit::Railing* Arena::CreateMaybeMessage< ::Hardware_limit::Railing >(Arena* arena) {
+  return Arena::CreateInternal< ::Hardware_limit::Railing >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::Hardware_limit::Theta_range* Arena::CreateMaybeMessage< ::Hardware_limit::Theta_range >(Arena* arena) {
+  return Arena::CreateInternal< ::Hardware_limit::Theta_range >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::Hardware_limit::Hardware_parameter* Arena::CreateMaybeMessage< ::Hardware_limit::Hardware_parameter >(Arena* arena) {
+  return Arena::CreateInternal< ::Hardware_limit::Hardware_parameter >(arena);
+}
+}  // namespace protobuf
+}  // namespace google
 
 // @@protoc_insertion_point(global_scope)

+ 94 - 84
verify/hardware_limit.pb.h

@@ -1,19 +1,19 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: hardware_limit.proto
 
-#ifndef PROTOBUF_hardware_5flimit_2eproto__INCLUDED
-#define PROTOBUF_hardware_5flimit_2eproto__INCLUDED
+#ifndef PROTOBUF_INCLUDED_hardware_5flimit_2eproto
+#define PROTOBUF_INCLUDED_hardware_5flimit_2eproto
 
 #include <string>
 
 #include <google/protobuf/stubs/common.h>
 
-#if GOOGLE_PROTOBUF_VERSION < 3005000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #endif
-#if 3005000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
@@ -24,12 +24,14 @@
 #include <google/protobuf/arenastring.h>
 #include <google/protobuf/generated_message_table_driven.h>
 #include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/inlined_string_field.h>
 #include <google/protobuf/metadata.h>
 #include <google/protobuf/message.h>
 #include <google/protobuf/repeated_field.h>  // IWYU pragma: export
 #include <google/protobuf/extension_set.h>  // IWYU pragma: export
 #include <google/protobuf/unknown_field_set.h>
 // @@protoc_insertion_point(includes)
+#define PROTOBUF_INTERNAL_EXPORT_protobuf_hardware_5flimit_2eproto 
 
 namespace protobuf_hardware_5flimit_2eproto {
 // Internal implementation detail -- do not use these members.
@@ -42,17 +44,6 @@ struct TableStruct {
   static const ::google::protobuf::uint32 offsets[];
 };
 void AddDescriptors();
-void InitDefaultsRailingImpl();
-void InitDefaultsRailing();
-void InitDefaultsTheta_rangeImpl();
-void InitDefaultsTheta_range();
-void InitDefaultsHardware_parameterImpl();
-void InitDefaultsHardware_parameter();
-inline void InitDefaults() {
-  InitDefaultsRailing();
-  InitDefaultsTheta_range();
-  InitDefaultsHardware_parameter();
-}
 }  // namespace protobuf_hardware_5flimit_2eproto
 namespace Hardware_limit {
 class Hardware_parameter;
@@ -65,6 +56,13 @@ class Theta_range;
 class Theta_rangeDefaultTypeInternal;
 extern Theta_rangeDefaultTypeInternal _Theta_range_default_instance_;
 }  // namespace Hardware_limit
+namespace google {
+namespace protobuf {
+template<> ::Hardware_limit::Hardware_parameter* Arena::CreateMaybeMessage<::Hardware_limit::Hardware_parameter>(Arena*);
+template<> ::Hardware_limit::Railing* Arena::CreateMaybeMessage<::Hardware_limit::Railing>(Arena*);
+template<> ::Hardware_limit::Theta_range* Arena::CreateMaybeMessage<::Hardware_limit::Theta_range>(Arena*);
+}  // namespace protobuf
+}  // namespace google
 namespace Hardware_limit {
 
 // ===================================================================
@@ -110,7 +108,7 @@ class Railing : public ::google::protobuf::Message /* @@protoc_insertion_point(c
     return reinterpret_cast<const Railing*>(
                &_Railing_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     0;
 
   void Swap(Railing* other);
@@ -120,28 +118,33 @@ class Railing : public ::google::protobuf::Message /* @@protoc_insertion_point(c
 
   // implements Message ----------------------------------------------
 
-  inline Railing* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline Railing* New() const final {
+    return CreateMaybeMessage<Railing>(NULL);
+  }
 
-  Railing* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  Railing* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<Railing>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const Railing& from);
   void MergeFrom(const Railing& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(Railing* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -152,7 +155,7 @@ class Railing : public ::google::protobuf::Message /* @@protoc_insertion_point(c
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -202,13 +205,12 @@ class Railing : public ::google::protobuf::Message /* @@protoc_insertion_point(c
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   float pa_;
   float pb_;
   float pc_;
   float railing_width_;
   friend struct ::protobuf_hardware_5flimit_2eproto::TableStruct;
-  friend void ::protobuf_hardware_5flimit_2eproto::InitDefaultsRailingImpl();
 };
 // -------------------------------------------------------------------
 
@@ -253,7 +255,7 @@ class Theta_range : public ::google::protobuf::Message /* @@protoc_insertion_poi
     return reinterpret_cast<const Theta_range*>(
                &_Theta_range_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     1;
 
   void Swap(Theta_range* other);
@@ -263,28 +265,33 @@ class Theta_range : public ::google::protobuf::Message /* @@protoc_insertion_poi
 
   // implements Message ----------------------------------------------
 
-  inline Theta_range* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline Theta_range* New() const final {
+    return CreateMaybeMessage<Theta_range>(NULL);
+  }
 
-  Theta_range* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  Theta_range* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<Theta_range>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const Theta_range& from);
   void MergeFrom(const Theta_range& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(Theta_range* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -295,7 +302,7 @@ class Theta_range : public ::google::protobuf::Message /* @@protoc_insertion_poi
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -327,11 +334,10 @@ class Theta_range : public ::google::protobuf::Message /* @@protoc_insertion_poi
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   float min_theta_;
   float max_theta_;
   friend struct ::protobuf_hardware_5flimit_2eproto::TableStruct;
-  friend void ::protobuf_hardware_5flimit_2eproto::InitDefaultsTheta_rangeImpl();
 };
 // -------------------------------------------------------------------
 
@@ -376,7 +382,7 @@ class Hardware_parameter : public ::google::protobuf::Message /* @@protoc_insert
     return reinterpret_cast<const Hardware_parameter*>(
                &_Hardware_parameter_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     2;
 
   void Swap(Hardware_parameter* other);
@@ -386,28 +392,33 @@ class Hardware_parameter : public ::google::protobuf::Message /* @@protoc_insert
 
   // implements Message ----------------------------------------------
 
-  inline Hardware_parameter* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline Hardware_parameter* New() const final {
+    return CreateMaybeMessage<Hardware_parameter>(NULL);
+  }
 
-  Hardware_parameter* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  Hardware_parameter* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<Hardware_parameter>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const Hardware_parameter& from);
   void MergeFrom(const Hardware_parameter& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(Hardware_parameter* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -418,7 +429,7 @@ class Hardware_parameter : public ::google::protobuf::Message /* @@protoc_insert
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -428,11 +439,11 @@ class Hardware_parameter : public ::google::protobuf::Message /* @@protoc_insert
   int railing_parameter_size() const;
   void clear_railing_parameter();
   static const int kRailingParameterFieldNumber = 1;
-  const ::Hardware_limit::Railing& railing_parameter(int index) const;
   ::Hardware_limit::Railing* mutable_railing_parameter(int index);
-  ::Hardware_limit::Railing* add_railing_parameter();
   ::google::protobuf::RepeatedPtrField< ::Hardware_limit::Railing >*
       mutable_railing_parameter();
+  const ::Hardware_limit::Railing& railing_parameter(int index) const;
+  ::Hardware_limit::Railing* add_railing_parameter();
   const ::google::protobuf::RepeatedPtrField< ::Hardware_limit::Railing >&
       railing_parameter() const;
 
@@ -440,11 +451,11 @@ class Hardware_parameter : public ::google::protobuf::Message /* @@protoc_insert
   int theta_range_size() const;
   void clear_theta_range();
   static const int kThetaRangeFieldNumber = 8;
-  const ::Hardware_limit::Theta_range& theta_range(int index) const;
   ::Hardware_limit::Theta_range* mutable_theta_range(int index);
-  ::Hardware_limit::Theta_range* add_theta_range();
   ::google::protobuf::RepeatedPtrField< ::Hardware_limit::Theta_range >*
       mutable_theta_range();
+  const ::Hardware_limit::Theta_range& theta_range(int index) const;
+  ::Hardware_limit::Theta_range* add_theta_range();
   const ::google::protobuf::RepeatedPtrField< ::Hardware_limit::Theta_range >&
       theta_range() const;
 
@@ -519,7 +530,7 @@ class Hardware_parameter : public ::google::protobuf::Message /* @@protoc_insert
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::google::protobuf::RepeatedPtrField< ::Hardware_limit::Railing > railing_parameter_;
   ::google::protobuf::RepeatedPtrField< ::Hardware_limit::Theta_range > theta_range_;
   float center_min_y_;
@@ -530,7 +541,6 @@ class Hardware_parameter : public ::google::protobuf::Message /* @@protoc_insert
   float corner_max_y_;
   float height_;
   friend struct ::protobuf_hardware_5flimit_2eproto::TableStruct;
-  friend void ::protobuf_hardware_5flimit_2eproto::InitDefaultsHardware_parameterImpl();
 };
 // ===================================================================
 
@@ -702,23 +712,23 @@ inline int Hardware_parameter::railing_parameter_size() const {
 inline void Hardware_parameter::clear_railing_parameter() {
   railing_parameter_.Clear();
 }
-inline const ::Hardware_limit::Railing& Hardware_parameter::railing_parameter(int index) const {
-  // @@protoc_insertion_point(field_get:Hardware_limit.Hardware_parameter.railing_parameter)
-  return railing_parameter_.Get(index);
-}
 inline ::Hardware_limit::Railing* Hardware_parameter::mutable_railing_parameter(int index) {
   // @@protoc_insertion_point(field_mutable:Hardware_limit.Hardware_parameter.railing_parameter)
   return railing_parameter_.Mutable(index);
 }
-inline ::Hardware_limit::Railing* Hardware_parameter::add_railing_parameter() {
-  // @@protoc_insertion_point(field_add:Hardware_limit.Hardware_parameter.railing_parameter)
-  return railing_parameter_.Add();
-}
 inline ::google::protobuf::RepeatedPtrField< ::Hardware_limit::Railing >*
 Hardware_parameter::mutable_railing_parameter() {
   // @@protoc_insertion_point(field_mutable_list:Hardware_limit.Hardware_parameter.railing_parameter)
   return &railing_parameter_;
 }
+inline const ::Hardware_limit::Railing& Hardware_parameter::railing_parameter(int index) const {
+  // @@protoc_insertion_point(field_get:Hardware_limit.Hardware_parameter.railing_parameter)
+  return railing_parameter_.Get(index);
+}
+inline ::Hardware_limit::Railing* Hardware_parameter::add_railing_parameter() {
+  // @@protoc_insertion_point(field_add:Hardware_limit.Hardware_parameter.railing_parameter)
+  return railing_parameter_.Add();
+}
 inline const ::google::protobuf::RepeatedPtrField< ::Hardware_limit::Railing >&
 Hardware_parameter::railing_parameter() const {
   // @@protoc_insertion_point(field_list:Hardware_limit.Hardware_parameter.railing_parameter)
@@ -876,23 +886,23 @@ inline int Hardware_parameter::theta_range_size() const {
 inline void Hardware_parameter::clear_theta_range() {
   theta_range_.Clear();
 }
-inline const ::Hardware_limit::Theta_range& Hardware_parameter::theta_range(int index) const {
-  // @@protoc_insertion_point(field_get:Hardware_limit.Hardware_parameter.theta_range)
-  return theta_range_.Get(index);
-}
 inline ::Hardware_limit::Theta_range* Hardware_parameter::mutable_theta_range(int index) {
   // @@protoc_insertion_point(field_mutable:Hardware_limit.Hardware_parameter.theta_range)
   return theta_range_.Mutable(index);
 }
-inline ::Hardware_limit::Theta_range* Hardware_parameter::add_theta_range() {
-  // @@protoc_insertion_point(field_add:Hardware_limit.Hardware_parameter.theta_range)
-  return theta_range_.Add();
-}
 inline ::google::protobuf::RepeatedPtrField< ::Hardware_limit::Theta_range >*
 Hardware_parameter::mutable_theta_range() {
   // @@protoc_insertion_point(field_mutable_list:Hardware_limit.Hardware_parameter.theta_range)
   return &theta_range_;
 }
+inline const ::Hardware_limit::Theta_range& Hardware_parameter::theta_range(int index) const {
+  // @@protoc_insertion_point(field_get:Hardware_limit.Hardware_parameter.theta_range)
+  return theta_range_.Get(index);
+}
+inline ::Hardware_limit::Theta_range* Hardware_parameter::add_theta_range() {
+  // @@protoc_insertion_point(field_add:Hardware_limit.Hardware_parameter.theta_range)
+  return theta_range_.Add();
+}
 inline const ::google::protobuf::RepeatedPtrField< ::Hardware_limit::Theta_range >&
 Hardware_parameter::theta_range() const {
   // @@protoc_insertion_point(field_list:Hardware_limit.Hardware_parameter.theta_range)
@@ -937,4 +947,4 @@ inline void Hardware_parameter::set_height(float value) {
 
 // @@protoc_insertion_point(global_scope)
 
-#endif  // PROTOBUF_hardware_5flimit_2eproto__INCLUDED
+#endif  // PROTOBUF_INCLUDED_hardware_5flimit_2eproto

+ 152 - 241
wanji_lidar/wj_lidar_conf.pb.cc

@@ -7,7 +7,6 @@
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/port.h>
-#include <google/protobuf/stubs/once.h>
 #include <google/protobuf/io/coded_stream.h>
 #include <google/protobuf/wire_format_lite_inl.h>
 #include <google/protobuf/descriptor.h>
@@ -19,6 +18,14 @@
 #include "third_party/protobuf/version.h"
 #endif
 // @@protoc_insertion_point(includes)
+
+namespace protobuf_wj_5flidar_5fconf_2eproto {
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_wj_5flidar_5fconf_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Region;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_wj_5flidar_5fconf_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Transform2d;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_wj_5flidar_5fconf_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_netConfig;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_wj_5flidar_5fconf_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_scanLimit;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_wj_5flidar_5fconf_2eproto ::google::protobuf::internal::SCCInfo<3> scc_info_wjLidarParams;
+}  // namespace protobuf_wj_5flidar_5fconf_2eproto
 namespace wj {
 class wjManagerParamsDefaultTypeInternal {
  public:
@@ -52,20 +59,13 @@ class scanLimitDefaultTypeInternal {
 } _scanLimit_default_instance_;
 }  // namespace wj
 namespace protobuf_wj_5flidar_5fconf_2eproto {
-void InitDefaultswjManagerParamsImpl() {
+static void InitDefaultswjManagerParams() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  protobuf_wj_5flidar_5fconf_2eproto::InitDefaultswjLidarParams();
-  protobuf_wj_5flidar_5fconf_2eproto::InitDefaultsRegion();
-  ::wj::wjManagerParams::_default_plc_ip_address_.DefaultConstruct();
-  *::wj::wjManagerParams::_default_plc_ip_address_.get_mutable() = ::std::string("192.168.0.1", 11);
+  ::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.DefaultConstruct();
+  *::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get_mutable() = ::std::string("192.168.0.1", 11);
   ::google::protobuf::internal::OnShutdownDestroyString(
-      ::wj::wjManagerParams::_default_plc_ip_address_.get_mutable());
+      ::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get_mutable());
   {
     void* ptr = &::wj::_wjManagerParams_default_instance_;
     new (ptr) ::wj::wjManagerParams();
@@ -74,19 +74,14 @@ void InitDefaultswjManagerParamsImpl() {
   ::wj::wjManagerParams::InitAsDefaultInstance();
 }
 
-void InitDefaultswjManagerParams() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultswjManagerParamsImpl);
-}
+::google::protobuf::internal::SCCInfo<2> scc_info_wjManagerParams =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultswjManagerParams}, {
+      &protobuf_wj_5flidar_5fconf_2eproto::scc_info_wjLidarParams.base,
+      &protobuf_wj_5flidar_5fconf_2eproto::scc_info_Region.base,}};
 
-void InitDefaultsRegionImpl() {
+static void InitDefaultsRegion() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   {
     void* ptr = &::wj::_Region_default_instance_;
     new (ptr) ::wj::Region();
@@ -95,22 +90,12 @@ void InitDefaultsRegionImpl() {
   ::wj::Region::InitAsDefaultInstance();
 }
 
-void InitDefaultsRegion() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsRegionImpl);
-}
+::google::protobuf::internal::SCCInfo<0> scc_info_Region =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsRegion}, {}};
 
-void InitDefaultswjLidarParamsImpl() {
+static void InitDefaultswjLidarParams() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  protobuf_wj_5flidar_5fconf_2eproto::InitDefaultsnetConfig();
-  protobuf_wj_5flidar_5fconf_2eproto::InitDefaultsTransform2d();
-  protobuf_wj_5flidar_5fconf_2eproto::InitDefaultsscanLimit();
   {
     void* ptr = &::wj::_wjLidarParams_default_instance_;
     new (ptr) ::wj::wjLidarParams();
@@ -119,19 +104,15 @@ void InitDefaultswjLidarParamsImpl() {
   ::wj::wjLidarParams::InitAsDefaultInstance();
 }
 
-void InitDefaultswjLidarParams() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultswjLidarParamsImpl);
-}
+::google::protobuf::internal::SCCInfo<3> scc_info_wjLidarParams =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 3, InitDefaultswjLidarParams}, {
+      &protobuf_wj_5flidar_5fconf_2eproto::scc_info_netConfig.base,
+      &protobuf_wj_5flidar_5fconf_2eproto::scc_info_Transform2d.base,
+      &protobuf_wj_5flidar_5fconf_2eproto::scc_info_scanLimit.base,}};
 
-void InitDefaultsnetConfigImpl() {
+static void InitDefaultsnetConfig() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   {
     void* ptr = &::wj::_netConfig_default_instance_;
     new (ptr) ::wj::netConfig();
@@ -140,19 +121,12 @@ void InitDefaultsnetConfigImpl() {
   ::wj::netConfig::InitAsDefaultInstance();
 }
 
-void InitDefaultsnetConfig() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsnetConfigImpl);
-}
+::google::protobuf::internal::SCCInfo<0> scc_info_netConfig =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsnetConfig}, {}};
 
-void InitDefaultsTransform2dImpl() {
+static void InitDefaultsTransform2d() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   {
     void* ptr = &::wj::_Transform2d_default_instance_;
     new (ptr) ::wj::Transform2d();
@@ -161,19 +135,12 @@ void InitDefaultsTransform2dImpl() {
   ::wj::Transform2d::InitAsDefaultInstance();
 }
 
-void InitDefaultsTransform2d() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsTransform2dImpl);
-}
+::google::protobuf::internal::SCCInfo<0> scc_info_Transform2d =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsTransform2d}, {}};
 
-void InitDefaultsscanLimitImpl() {
+static void InitDefaultsscanLimit() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
-  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
-#else
-  ::google::protobuf::internal::InitProtobufDefaults();
-#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   {
     void* ptr = &::wj::_scanLimit_default_instance_;
     new (ptr) ::wj::scanLimit();
@@ -182,9 +149,16 @@ void InitDefaultsscanLimitImpl() {
   ::wj::scanLimit::InitAsDefaultInstance();
 }
 
-void InitDefaultsscanLimit() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsscanLimitImpl);
+::google::protobuf::internal::SCCInfo<0> scc_info_scanLimit =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscanLimit}, {}};
+
+void InitDefaults() {
+  ::google::protobuf::internal::InitSCC(&scc_info_wjManagerParams.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_Region.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_wjLidarParams.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_netConfig.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_Transform2d.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_scanLimit.base);
 }
 
 ::google::protobuf::Metadata file_level_metadata[6];
@@ -303,15 +277,14 @@ static ::google::protobuf::Message const * const file_default_instances[] = {
 
 void protobuf_AssignDescriptors() {
   AddDescriptors();
-  ::google::protobuf::MessageFactory* factory = NULL;
   AssignDescriptors(
-      "wj_lidar_conf.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+      "wj_lidar_conf.proto", schemas, file_default_instances, TableStruct::offsets,
       file_level_metadata, NULL, NULL);
 }
 
 void protobuf_AssignDescriptorsOnce() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
+  static ::google::protobuf::internal::once_flag once;
+  ::google::protobuf::internal::call_once(once, protobuf_AssignDescriptors);
 }
 
 void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
@@ -353,8 +326,8 @@ void AddDescriptorsImpl() {
 }
 
 void AddDescriptors() {
-  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
-  ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+  static ::google::protobuf::internal::once_flag once;
+  ::google::protobuf::internal::call_once(once, AddDescriptorsImpl);
 }
 // Force AddDescriptors() to be called at dynamic initialization time.
 struct StaticDescriptorInitializer {
@@ -369,7 +342,7 @@ namespace wj {
 
 void wjManagerParams::InitAsDefaultInstance() {
 }
-::google::protobuf::internal::ExplicitlyConstructed< ::std::string> wjManagerParams::_default_plc_ip_address_;
+::google::protobuf::internal::ExplicitlyConstructed<::std::string> wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_;
 #if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int wjManagerParams::kWjLidarFieldNumber;
 const int wjManagerParams::kRegionsFieldNumber;
@@ -380,9 +353,8 @@ const int wjManagerParams::kPlcIpAddressFieldNumber;
 
 wjManagerParams::wjManagerParams()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultswjManagerParams();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_wj_5flidar_5fconf_2eproto::scc_info_wjManagerParams.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:wj.wjManagerParams)
 }
@@ -390,7 +362,6 @@ wjManagerParams::wjManagerParams(const wjManagerParams& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
       _has_bits_(from._has_bits_),
-      _cached_size_(0),
       wj_lidar_(from.wj_lidar_),
       regions_(from.regions_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
@@ -402,18 +373,17 @@ wjManagerParams::wjManagerParams(const wjManagerParams& from)
   if (from.has_fence_log_path()) {
     fence_log_path_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.fence_log_path_);
   }
-  plc_ip_address_.UnsafeSetDefault(&::wj::wjManagerParams::_default_plc_ip_address_.get());
+  plc_ip_address_.UnsafeSetDefault(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get());
   if (from.has_plc_ip_address()) {
-    plc_ip_address_.AssignWithDefault(&::wj::wjManagerParams::_default_plc_ip_address_.get(), from.plc_ip_address_);
+    plc_ip_address_.AssignWithDefault(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), from.plc_ip_address_);
   }
   // @@protoc_insertion_point(copy_constructor:wj.wjManagerParams)
 }
 
 void wjManagerParams::SharedCtor() {
-  _cached_size_ = 0;
   fence_data_path_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   fence_log_path_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  plc_ip_address_.UnsafeSetDefault(&::wj::wjManagerParams::_default_plc_ip_address_.get());
+  plc_ip_address_.UnsafeSetDefault(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get());
 }
 
 wjManagerParams::~wjManagerParams() {
@@ -424,13 +394,11 @@ wjManagerParams::~wjManagerParams() {
 void wjManagerParams::SharedDtor() {
   fence_data_path_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   fence_log_path_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  plc_ip_address_.DestroyNoArena(&::wj::wjManagerParams::_default_plc_ip_address_.get());
+  plc_ip_address_.DestroyNoArena(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get());
 }
 
 void wjManagerParams::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* wjManagerParams::descriptor() {
   ::protobuf_wj_5flidar_5fconf_2eproto::protobuf_AssignDescriptorsOnce();
@@ -438,17 +406,10 @@ const ::google::protobuf::Descriptor* wjManagerParams::descriptor() {
 }
 
 const wjManagerParams& wjManagerParams::default_instance() {
-  ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultswjManagerParams();
+  ::google::protobuf::internal::InitSCC(&protobuf_wj_5flidar_5fconf_2eproto::scc_info_wjManagerParams.base);
   return *internal_default_instance();
 }
 
-wjManagerParams* wjManagerParams::New(::google::protobuf::Arena* arena) const {
-  wjManagerParams* n = new wjManagerParams;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void wjManagerParams::Clear() {
 // @@protoc_insertion_point(message_clear_start:wj.wjManagerParams)
@@ -461,16 +422,13 @@ void wjManagerParams::Clear() {
   cached_has_bits = _has_bits_[0];
   if (cached_has_bits & 7u) {
     if (cached_has_bits & 0x00000001u) {
-      GOOGLE_DCHECK(!fence_data_path_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
-      (*fence_data_path_.UnsafeRawStringPointer())->clear();
+      fence_data_path_.ClearNonDefaultToEmptyNoArena();
     }
     if (cached_has_bits & 0x00000002u) {
-      GOOGLE_DCHECK(!fence_log_path_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
-      (*fence_log_path_.UnsafeRawStringPointer())->clear();
+      fence_log_path_.ClearNonDefaultToEmptyNoArena();
     }
     if (cached_has_bits & 0x00000004u) {
-      GOOGLE_DCHECK(!plc_ip_address_.IsDefault(&::wj::wjManagerParams::_default_plc_ip_address_.get()));
-      (*plc_ip_address_.UnsafeRawStringPointer())->assign(*&::wj::wjManagerParams::_default_plc_ip_address_.get());
+      plc_ip_address_.UnsafeMutablePointer()->assign(*&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get());
     }
   }
   _has_bits_.Clear();
@@ -483,7 +441,7 @@ bool wjManagerParams::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:wj.wjManagerParams)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -491,7 +449,8 @@ bool wjManagerParams::MergePartialFromCodedStream(
       case 1: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(input, add_wj_lidar()));
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+                input, add_wj_lidar()));
         } else {
           goto handle_unusual;
         }
@@ -502,7 +461,8 @@ bool wjManagerParams::MergePartialFromCodedStream(
       case 2: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(input, add_regions()));
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+                input, add_regions()));
         } else {
           goto handle_unusual;
         }
@@ -587,14 +547,18 @@ void wjManagerParams::SerializeWithCachedSizes(
   for (unsigned int i = 0,
       n = static_cast<unsigned int>(this->wj_lidar_size()); i < n; i++) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, this->wj_lidar(static_cast<int>(i)), output);
+      1,
+      this->wj_lidar(static_cast<int>(i)),
+      output);
   }
 
   // repeated .wj.Region regions = 2;
   for (unsigned int i = 0,
       n = static_cast<unsigned int>(this->regions_size()); i < n; i++) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      2, this->regions(static_cast<int>(i)), output);
+      2,
+      this->regions(static_cast<int>(i)),
+      output);
   }
 
   cached_has_bits = _has_bits_[0];
@@ -755,9 +719,7 @@ size_t wjManagerParams::ByteSizeLong() const {
 
   }
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -797,7 +759,7 @@ void wjManagerParams::MergeFrom(const wjManagerParams& from) {
     }
     if (cached_has_bits & 0x00000004u) {
       set_has_plc_ip_address();
-      plc_ip_address_.AssignWithDefault(&::wj::wjManagerParams::_default_plc_ip_address_.get(), from.plc_ip_address_);
+      plc_ip_address_.AssignWithDefault(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), from.plc_ip_address_);
     }
   }
 }
@@ -828,14 +790,16 @@ void wjManagerParams::Swap(wjManagerParams* other) {
 }
 void wjManagerParams::InternalSwap(wjManagerParams* other) {
   using std::swap;
-  wj_lidar_.InternalSwap(&other->wj_lidar_);
-  regions_.InternalSwap(&other->regions_);
-  fence_data_path_.Swap(&other->fence_data_path_);
-  fence_log_path_.Swap(&other->fence_log_path_);
-  plc_ip_address_.Swap(&other->plc_ip_address_);
+  CastToBase(&wj_lidar_)->InternalSwap(CastToBase(&other->wj_lidar_));
+  CastToBase(&regions_)->InternalSwap(CastToBase(&other->regions_));
+  fence_data_path_.Swap(&other->fence_data_path_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
+  fence_log_path_.Swap(&other->fence_log_path_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
+  plc_ip_address_.Swap(&other->plc_ip_address_, &::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(),
+    GetArenaNoVirtual());
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata wjManagerParams::GetMetadata() const {
@@ -857,17 +821,15 @@ const int Region::kMaxyFieldNumber;
 
 Region::Region()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultsRegion();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_wj_5flidar_5fconf_2eproto::scc_info_Region.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:wj.Region)
 }
 Region::Region(const Region& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   ::memcpy(&minx_, &from.minx_,
     static_cast<size_t>(reinterpret_cast<char*>(&maxy_) -
@@ -876,7 +838,6 @@ Region::Region(const Region& from)
 }
 
 void Region::SharedCtor() {
-  _cached_size_ = 0;
   ::memset(&minx_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&maxy_) -
       reinterpret_cast<char*>(&minx_)) + sizeof(maxy_));
@@ -891,9 +852,7 @@ void Region::SharedDtor() {
 }
 
 void Region::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* Region::descriptor() {
   ::protobuf_wj_5flidar_5fconf_2eproto::protobuf_AssignDescriptorsOnce();
@@ -901,17 +860,10 @@ const ::google::protobuf::Descriptor* Region::descriptor() {
 }
 
 const Region& Region::default_instance() {
-  ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultsRegion();
+  ::google::protobuf::internal::InitSCC(&protobuf_wj_5flidar_5fconf_2eproto::scc_info_Region.base);
   return *internal_default_instance();
 }
 
-Region* Region::New(::google::protobuf::Arena* arena) const {
-  Region* n = new Region;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void Region::Clear() {
 // @@protoc_insertion_point(message_clear_start:wj.Region)
@@ -935,7 +887,7 @@ bool Region::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:wj.Region)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -1137,9 +1089,7 @@ size_t Region::ByteSizeLong() const {
     total_size += RequiredFieldsByteSizeFallback();
   }
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -1214,7 +1164,6 @@ void Region::InternalSwap(Region* other) {
   swap(maxy_, other->maxy_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata Region::GetMetadata() const {
@@ -1247,17 +1196,15 @@ const int wjLidarParams::kScanLimitFieldNumber;
 
 wjLidarParams::wjLidarParams()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultswjLidarParams();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_wj_5flidar_5fconf_2eproto::scc_info_wjLidarParams.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:wj.wjLidarParams)
 }
 wjLidarParams::wjLidarParams(const wjLidarParams& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   if (from.has_net_config()) {
     net_config_ = new ::wj::netConfig(*from.net_config_);
@@ -1281,7 +1228,6 @@ wjLidarParams::wjLidarParams(const wjLidarParams& from)
 }
 
 void wjLidarParams::SharedCtor() {
-  _cached_size_ = 0;
   ::memset(&net_config_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&range_min_) -
       reinterpret_cast<char*>(&net_config_)) + sizeof(range_min_));
@@ -1304,9 +1250,7 @@ void wjLidarParams::SharedDtor() {
 }
 
 void wjLidarParams::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* wjLidarParams::descriptor() {
   ::protobuf_wj_5flidar_5fconf_2eproto::protobuf_AssignDescriptorsOnce();
@@ -1314,17 +1258,10 @@ const ::google::protobuf::Descriptor* wjLidarParams::descriptor() {
 }
 
 const wjLidarParams& wjLidarParams::default_instance() {
-  ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultswjLidarParams();
+  ::google::protobuf::internal::InitSCC(&protobuf_wj_5flidar_5fconf_2eproto::scc_info_wjLidarParams.base);
   return *internal_default_instance();
 }
 
-wjLidarParams* wjLidarParams::New(::google::protobuf::Arena* arena) const {
-  wjLidarParams* n = new wjLidarParams;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void wjLidarParams::Clear() {
 // @@protoc_insertion_point(message_clear_start:wj.wjLidarParams)
@@ -1365,7 +1302,7 @@ bool wjLidarParams::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:wj.wjLidarParams)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -1549,19 +1486,19 @@ void wjLidarParams::SerializeWithCachedSizes(
   // required .wj.netConfig net_config = 7;
   if (cached_has_bits & 0x00000001u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      7, *this->net_config_, output);
+      7, this->_internal_net_config(), output);
   }
 
   // required .wj.Transform2d transform = 8;
   if (cached_has_bits & 0x00000002u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      8, *this->transform_, output);
+      8, this->_internal_transform(), output);
   }
 
   // required .wj.scanLimit scan_limit = 9;
   if (cached_has_bits & 0x00000004u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      9, *this->scan_limit_, output);
+      9, this->_internal_scan_limit(), output);
   }
 
   if (_internal_metadata_.have_unknown_fields()) {
@@ -1613,21 +1550,21 @@ void wjLidarParams::SerializeWithCachedSizes(
   if (cached_has_bits & 0x00000001u) {
     target = ::google::protobuf::internal::WireFormatLite::
       InternalWriteMessageToArray(
-        7, *this->net_config_, deterministic, target);
+        7, this->_internal_net_config(), deterministic, target);
   }
 
   // required .wj.Transform2d transform = 8;
   if (cached_has_bits & 0x00000002u) {
     target = ::google::protobuf::internal::WireFormatLite::
       InternalWriteMessageToArray(
-        8, *this->transform_, deterministic, target);
+        8, this->_internal_transform(), deterministic, target);
   }
 
   // required .wj.scanLimit scan_limit = 9;
   if (cached_has_bits & 0x00000004u) {
     target = ::google::protobuf::internal::WireFormatLite::
       InternalWriteMessageToArray(
-        9, *this->scan_limit_, deterministic, target);
+        9, this->_internal_scan_limit(), deterministic, target);
   }
 
   if (_internal_metadata_.have_unknown_fields()) {
@@ -1646,21 +1583,21 @@ size_t wjLidarParams::RequiredFieldsByteSizeFallback() const {
     // required .wj.netConfig net_config = 7;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->net_config_);
+        *net_config_);
   }
 
   if (has_transform()) {
     // required .wj.Transform2d transform = 8;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->transform_);
+        *transform_);
   }
 
   if (has_scan_limit()) {
     // required .wj.scanLimit scan_limit = 9;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->scan_limit_);
+        *scan_limit_);
   }
 
   return total_size;
@@ -1678,17 +1615,17 @@ size_t wjLidarParams::ByteSizeLong() const {
     // required .wj.netConfig net_config = 7;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->net_config_);
+        *net_config_);
 
     // required .wj.Transform2d transform = 8;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->transform_);
+        *transform_);
 
     // required .wj.scanLimit scan_limit = 9;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->scan_limit_);
+        *scan_limit_);
 
   } else {
     total_size += RequiredFieldsByteSizeFallback();
@@ -1730,9 +1667,7 @@ size_t wjLidarParams::ByteSizeLong() const {
   }
 
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -1827,7 +1762,6 @@ void wjLidarParams::InternalSwap(wjLidarParams* other) {
   swap(time_increment_, other->time_increment_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata wjLidarParams::GetMetadata() const {
@@ -1847,17 +1781,15 @@ const int netConfig::kPortFieldNumber;
 
 netConfig::netConfig()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultsnetConfig();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_wj_5flidar_5fconf_2eproto::scc_info_netConfig.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:wj.netConfig)
 }
 netConfig::netConfig(const netConfig& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   ip_address_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   if (from.has_ip_address()) {
@@ -1868,7 +1800,6 @@ netConfig::netConfig(const netConfig& from)
 }
 
 void netConfig::SharedCtor() {
-  _cached_size_ = 0;
   ip_address_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   port_ = 8000;
 }
@@ -1883,9 +1814,7 @@ void netConfig::SharedDtor() {
 }
 
 void netConfig::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* netConfig::descriptor() {
   ::protobuf_wj_5flidar_5fconf_2eproto::protobuf_AssignDescriptorsOnce();
@@ -1893,17 +1822,10 @@ const ::google::protobuf::Descriptor* netConfig::descriptor() {
 }
 
 const netConfig& netConfig::default_instance() {
-  ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultsnetConfig();
+  ::google::protobuf::internal::InitSCC(&protobuf_wj_5flidar_5fconf_2eproto::scc_info_netConfig.base);
   return *internal_default_instance();
 }
 
-netConfig* netConfig::New(::google::protobuf::Arena* arena) const {
-  netConfig* n = new netConfig;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void netConfig::Clear() {
 // @@protoc_insertion_point(message_clear_start:wj.netConfig)
@@ -1914,8 +1836,7 @@ void netConfig::Clear() {
   cached_has_bits = _has_bits_[0];
   if (cached_has_bits & 3u) {
     if (cached_has_bits & 0x00000001u) {
-      GOOGLE_DCHECK(!ip_address_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
-      (*ip_address_.UnsafeRawStringPointer())->clear();
+      ip_address_.ClearNonDefaultToEmptyNoArena();
     }
     port_ = 8000;
   }
@@ -1929,7 +1850,7 @@ bool netConfig::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:wj.netConfig)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -2070,9 +1991,7 @@ size_t netConfig::ByteSizeLong() const {
 
   }
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -2135,11 +2054,11 @@ void netConfig::Swap(netConfig* other) {
 }
 void netConfig::InternalSwap(netConfig* other) {
   using std::swap;
-  ip_address_.Swap(&other->ip_address_);
+  ip_address_.Swap(&other->ip_address_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
   swap(port_, other->port_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata netConfig::GetMetadata() const {
@@ -2163,17 +2082,15 @@ const int Transform2d::kM12FieldNumber;
 
 Transform2d::Transform2d()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultsTransform2d();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_wj_5flidar_5fconf_2eproto::scc_info_Transform2d.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:wj.Transform2d)
 }
 Transform2d::Transform2d(const Transform2d& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   ::memcpy(&m01_, &from.m01_,
     static_cast<size_t>(reinterpret_cast<char*>(&m11_) -
@@ -2182,7 +2099,6 @@ Transform2d::Transform2d(const Transform2d& from)
 }
 
 void Transform2d::SharedCtor() {
-  _cached_size_ = 0;
   ::memset(&m01_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&m12_) -
       reinterpret_cast<char*>(&m01_)) + sizeof(m12_));
@@ -2199,9 +2115,7 @@ void Transform2d::SharedDtor() {
 }
 
 void Transform2d::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* Transform2d::descriptor() {
   ::protobuf_wj_5flidar_5fconf_2eproto::protobuf_AssignDescriptorsOnce();
@@ -2209,17 +2123,10 @@ const ::google::protobuf::Descriptor* Transform2d::descriptor() {
 }
 
 const Transform2d& Transform2d::default_instance() {
-  ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultsTransform2d();
+  ::google::protobuf::internal::InitSCC(&protobuf_wj_5flidar_5fconf_2eproto::scc_info_Transform2d.base);
   return *internal_default_instance();
 }
 
-Transform2d* Transform2d::New(::google::protobuf::Arena* arena) const {
-  Transform2d* n = new Transform2d;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void Transform2d::Clear() {
 // @@protoc_insertion_point(message_clear_start:wj.Transform2d)
@@ -2245,7 +2152,7 @@ bool Transform2d::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:wj.Transform2d)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -2485,9 +2392,7 @@ size_t Transform2d::ByteSizeLong() const {
 
   }
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -2569,7 +2474,6 @@ void Transform2d::InternalSwap(Transform2d* other) {
   swap(m11_, other->m11_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata Transform2d::GetMetadata() const {
@@ -2592,17 +2496,15 @@ const int scanLimit::kMaxyFieldNumber;
 
 scanLimit::scanLimit()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
-    ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultsscanLimit();
-  }
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_wj_5flidar_5fconf_2eproto::scc_info_scanLimit.base);
   SharedCtor();
   // @@protoc_insertion_point(constructor:wj.scanLimit)
 }
 scanLimit::scanLimit(const scanLimit& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      _has_bits_(from._has_bits_),
-      _cached_size_(0) {
+      _has_bits_(from._has_bits_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   ::memcpy(&maxy_, &from.maxy_,
     static_cast<size_t>(reinterpret_cast<char*>(&miny_) -
@@ -2611,7 +2513,6 @@ scanLimit::scanLimit(const scanLimit& from)
 }
 
 void scanLimit::SharedCtor() {
-  _cached_size_ = 0;
   maxy_ = 3.5f;
   dist_limit_ = 8;
   minx_ = -6;
@@ -2628,9 +2529,7 @@ void scanLimit::SharedDtor() {
 }
 
 void scanLimit::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* scanLimit::descriptor() {
   ::protobuf_wj_5flidar_5fconf_2eproto::protobuf_AssignDescriptorsOnce();
@@ -2638,17 +2537,10 @@ const ::google::protobuf::Descriptor* scanLimit::descriptor() {
 }
 
 const scanLimit& scanLimit::default_instance() {
-  ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultsscanLimit();
+  ::google::protobuf::internal::InitSCC(&protobuf_wj_5flidar_5fconf_2eproto::scc_info_scanLimit.base);
   return *internal_default_instance();
 }
 
-scanLimit* scanLimit::New(::google::protobuf::Arena* arena) const {
-  scanLimit* n = new scanLimit;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
 
 void scanLimit::Clear() {
 // @@protoc_insertion_point(message_clear_start:wj.scanLimit)
@@ -2674,7 +2566,7 @@ bool scanLimit::MergePartialFromCodedStream(
   ::google::protobuf::uint32 tag;
   // @@protoc_insertion_point(parse_start:wj.scanLimit)
   for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
@@ -2885,9 +2777,7 @@ size_t scanLimit::ByteSizeLong() const {
 
   }
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  SetCachedSize(cached_size);
   return total_size;
 }
 
@@ -2965,7 +2855,6 @@ void scanLimit::InternalSwap(scanLimit* other) {
   swap(miny_, other->miny_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(_cached_size_, other->_cached_size_);
 }
 
 ::google::protobuf::Metadata scanLimit::GetMetadata() const {
@@ -2976,5 +2865,27 @@ void scanLimit::InternalSwap(scanLimit* other) {
 
 // @@protoc_insertion_point(namespace_scope)
 }  // namespace wj
+namespace google {
+namespace protobuf {
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::wj::wjManagerParams* Arena::CreateMaybeMessage< ::wj::wjManagerParams >(Arena* arena) {
+  return Arena::CreateInternal< ::wj::wjManagerParams >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::wj::Region* Arena::CreateMaybeMessage< ::wj::Region >(Arena* arena) {
+  return Arena::CreateInternal< ::wj::Region >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::wj::wjLidarParams* Arena::CreateMaybeMessage< ::wj::wjLidarParams >(Arena* arena) {
+  return Arena::CreateInternal< ::wj::wjLidarParams >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::wj::netConfig* Arena::CreateMaybeMessage< ::wj::netConfig >(Arena* arena) {
+  return Arena::CreateInternal< ::wj::netConfig >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::wj::Transform2d* Arena::CreateMaybeMessage< ::wj::Transform2d >(Arena* arena) {
+  return Arena::CreateInternal< ::wj::Transform2d >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::wj::scanLimit* Arena::CreateMaybeMessage< ::wj::scanLimit >(Arena* arena) {
+  return Arena::CreateInternal< ::wj::scanLimit >(arena);
+}
+}  // namespace protobuf
+}  // namespace google
 
 // @@protoc_insertion_point(global_scope)

+ 207 - 156
wanji_lidar/wj_lidar_conf.pb.h

@@ -1,19 +1,19 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: wj_lidar_conf.proto
 
-#ifndef PROTOBUF_wj_5flidar_5fconf_2eproto__INCLUDED
-#define PROTOBUF_wj_5flidar_5fconf_2eproto__INCLUDED
+#ifndef PROTOBUF_INCLUDED_wj_5flidar_5fconf_2eproto
+#define PROTOBUF_INCLUDED_wj_5flidar_5fconf_2eproto
 
 #include <string>
 
 #include <google/protobuf/stubs/common.h>
 
-#if GOOGLE_PROTOBUF_VERSION < 3005000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #endif
-#if 3005000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
@@ -24,12 +24,14 @@
 #include <google/protobuf/arenastring.h>
 #include <google/protobuf/generated_message_table_driven.h>
 #include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/inlined_string_field.h>
 #include <google/protobuf/metadata.h>
 #include <google/protobuf/message.h>
 #include <google/protobuf/repeated_field.h>  // IWYU pragma: export
 #include <google/protobuf/extension_set.h>  // IWYU pragma: export
 #include <google/protobuf/unknown_field_set.h>
 // @@protoc_insertion_point(includes)
+#define PROTOBUF_INTERNAL_EXPORT_protobuf_wj_5flidar_5fconf_2eproto 
 
 namespace protobuf_wj_5flidar_5fconf_2eproto {
 // Internal implementation detail -- do not use these members.
@@ -42,26 +44,6 @@ struct TableStruct {
   static const ::google::protobuf::uint32 offsets[];
 };
 void AddDescriptors();
-void InitDefaultswjManagerParamsImpl();
-void InitDefaultswjManagerParams();
-void InitDefaultsRegionImpl();
-void InitDefaultsRegion();
-void InitDefaultswjLidarParamsImpl();
-void InitDefaultswjLidarParams();
-void InitDefaultsnetConfigImpl();
-void InitDefaultsnetConfig();
-void InitDefaultsTransform2dImpl();
-void InitDefaultsTransform2d();
-void InitDefaultsscanLimitImpl();
-void InitDefaultsscanLimit();
-inline void InitDefaults() {
-  InitDefaultswjManagerParams();
-  InitDefaultsRegion();
-  InitDefaultswjLidarParams();
-  InitDefaultsnetConfig();
-  InitDefaultsTransform2d();
-  InitDefaultsscanLimit();
-}
 }  // namespace protobuf_wj_5flidar_5fconf_2eproto
 namespace wj {
 class Region;
@@ -83,6 +65,16 @@ class wjManagerParams;
 class wjManagerParamsDefaultTypeInternal;
 extern wjManagerParamsDefaultTypeInternal _wjManagerParams_default_instance_;
 }  // namespace wj
+namespace google {
+namespace protobuf {
+template<> ::wj::Region* Arena::CreateMaybeMessage<::wj::Region>(Arena*);
+template<> ::wj::Transform2d* Arena::CreateMaybeMessage<::wj::Transform2d>(Arena*);
+template<> ::wj::netConfig* Arena::CreateMaybeMessage<::wj::netConfig>(Arena*);
+template<> ::wj::scanLimit* Arena::CreateMaybeMessage<::wj::scanLimit>(Arena*);
+template<> ::wj::wjLidarParams* Arena::CreateMaybeMessage<::wj::wjLidarParams>(Arena*);
+template<> ::wj::wjManagerParams* Arena::CreateMaybeMessage<::wj::wjManagerParams>(Arena*);
+}  // namespace protobuf
+}  // namespace google
 namespace wj {
 
 // ===================================================================
@@ -128,7 +120,7 @@ class wjManagerParams : public ::google::protobuf::Message /* @@protoc_insertion
     return reinterpret_cast<const wjManagerParams*>(
                &_wjManagerParams_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     0;
 
   void Swap(wjManagerParams* other);
@@ -138,28 +130,33 @@ class wjManagerParams : public ::google::protobuf::Message /* @@protoc_insertion
 
   // implements Message ----------------------------------------------
 
-  inline wjManagerParams* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline wjManagerParams* New() const final {
+    return CreateMaybeMessage<wjManagerParams>(NULL);
+  }
 
-  wjManagerParams* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  wjManagerParams* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<wjManagerParams>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const wjManagerParams& from);
   void MergeFrom(const wjManagerParams& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(wjManagerParams* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -170,7 +167,7 @@ class wjManagerParams : public ::google::protobuf::Message /* @@protoc_insertion
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -180,11 +177,11 @@ class wjManagerParams : public ::google::protobuf::Message /* @@protoc_insertion
   int wj_lidar_size() const;
   void clear_wj_lidar();
   static const int kWjLidarFieldNumber = 1;
-  const ::wj::wjLidarParams& wj_lidar(int index) const;
   ::wj::wjLidarParams* mutable_wj_lidar(int index);
-  ::wj::wjLidarParams* add_wj_lidar();
   ::google::protobuf::RepeatedPtrField< ::wj::wjLidarParams >*
       mutable_wj_lidar();
+  const ::wj::wjLidarParams& wj_lidar(int index) const;
+  ::wj::wjLidarParams* add_wj_lidar();
   const ::google::protobuf::RepeatedPtrField< ::wj::wjLidarParams >&
       wj_lidar() const;
 
@@ -192,11 +189,11 @@ class wjManagerParams : public ::google::protobuf::Message /* @@protoc_insertion
   int regions_size() const;
   void clear_regions();
   static const int kRegionsFieldNumber = 2;
-  const ::wj::Region& regions(int index) const;
   ::wj::Region* mutable_regions(int index);
-  ::wj::Region* add_regions();
   ::google::protobuf::RepeatedPtrField< ::wj::Region >*
       mutable_regions();
+  const ::wj::Region& regions(int index) const;
+  ::wj::Region* add_regions();
   const ::google::protobuf::RepeatedPtrField< ::wj::Region >&
       regions() const;
 
@@ -256,15 +253,16 @@ class wjManagerParams : public ::google::protobuf::Message /* @@protoc_insertion
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::google::protobuf::RepeatedPtrField< ::wj::wjLidarParams > wj_lidar_;
   ::google::protobuf::RepeatedPtrField< ::wj::Region > regions_;
   ::google::protobuf::internal::ArenaStringPtr fence_data_path_;
   ::google::protobuf::internal::ArenaStringPtr fence_log_path_;
-  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _default_plc_ip_address_;
+  public:
+  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _i_give_permission_to_break_this_code_default_plc_ip_address_;
+  private:
   ::google::protobuf::internal::ArenaStringPtr plc_ip_address_;
   friend struct ::protobuf_wj_5flidar_5fconf_2eproto::TableStruct;
-  friend void ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultswjManagerParamsImpl();
 };
 // -------------------------------------------------------------------
 
@@ -309,7 +307,7 @@ class Region : public ::google::protobuf::Message /* @@protoc_insertion_point(cl
     return reinterpret_cast<const Region*>(
                &_Region_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     1;
 
   void Swap(Region* other);
@@ -319,28 +317,33 @@ class Region : public ::google::protobuf::Message /* @@protoc_insertion_point(cl
 
   // implements Message ----------------------------------------------
 
-  inline Region* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline Region* New() const final {
+    return CreateMaybeMessage<Region>(NULL);
+  }
 
-  Region* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  Region* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<Region>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const Region& from);
   void MergeFrom(const Region& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(Region* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -351,7 +354,7 @@ class Region : public ::google::protobuf::Message /* @@protoc_insertion_point(cl
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -401,13 +404,12 @@ class Region : public ::google::protobuf::Message /* @@protoc_insertion_point(cl
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   float minx_;
   float maxx_;
   float miny_;
   float maxy_;
   friend struct ::protobuf_wj_5flidar_5fconf_2eproto::TableStruct;
-  friend void ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultsRegionImpl();
 };
 // -------------------------------------------------------------------
 
@@ -452,7 +454,7 @@ class wjLidarParams : public ::google::protobuf::Message /* @@protoc_insertion_p
     return reinterpret_cast<const wjLidarParams*>(
                &_wjLidarParams_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     2;
 
   void Swap(wjLidarParams* other);
@@ -462,28 +464,33 @@ class wjLidarParams : public ::google::protobuf::Message /* @@protoc_insertion_p
 
   // implements Message ----------------------------------------------
 
-  inline wjLidarParams* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline wjLidarParams* New() const final {
+    return CreateMaybeMessage<wjLidarParams>(NULL);
+  }
 
-  wjLidarParams* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  wjLidarParams* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<wjLidarParams>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const wjLidarParams& from);
   void MergeFrom(const wjLidarParams& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(wjLidarParams* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -494,7 +501,7 @@ class wjLidarParams : public ::google::protobuf::Message /* @@protoc_insertion_p
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -504,6 +511,9 @@ class wjLidarParams : public ::google::protobuf::Message /* @@protoc_insertion_p
   bool has_net_config() const;
   void clear_net_config();
   static const int kNetConfigFieldNumber = 7;
+  private:
+  const ::wj::netConfig& _internal_net_config() const;
+  public:
   const ::wj::netConfig& net_config() const;
   ::wj::netConfig* release_net_config();
   ::wj::netConfig* mutable_net_config();
@@ -513,6 +523,9 @@ class wjLidarParams : public ::google::protobuf::Message /* @@protoc_insertion_p
   bool has_transform() const;
   void clear_transform();
   static const int kTransformFieldNumber = 8;
+  private:
+  const ::wj::Transform2d& _internal_transform() const;
+  public:
   const ::wj::Transform2d& transform() const;
   ::wj::Transform2d* release_transform();
   ::wj::Transform2d* mutable_transform();
@@ -522,6 +535,9 @@ class wjLidarParams : public ::google::protobuf::Message /* @@protoc_insertion_p
   bool has_scan_limit() const;
   void clear_scan_limit();
   static const int kScanLimitFieldNumber = 9;
+  private:
+  const ::wj::scanLimit& _internal_scan_limit() const;
+  public:
   const ::wj::scanLimit& scan_limit() const;
   ::wj::scanLimit* release_scan_limit();
   ::wj::scanLimit* mutable_scan_limit();
@@ -595,7 +611,7 @@ class wjLidarParams : public ::google::protobuf::Message /* @@protoc_insertion_p
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::wj::netConfig* net_config_;
   ::wj::Transform2d* transform_;
   ::wj::scanLimit* scan_limit_;
@@ -606,7 +622,6 @@ class wjLidarParams : public ::google::protobuf::Message /* @@protoc_insertion_p
   float angle_increment_;
   float time_increment_;
   friend struct ::protobuf_wj_5flidar_5fconf_2eproto::TableStruct;
-  friend void ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultswjLidarParamsImpl();
 };
 // -------------------------------------------------------------------
 
@@ -651,7 +666,7 @@ class netConfig : public ::google::protobuf::Message /* @@protoc_insertion_point
     return reinterpret_cast<const netConfig*>(
                &_netConfig_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     3;
 
   void Swap(netConfig* other);
@@ -661,28 +676,33 @@ class netConfig : public ::google::protobuf::Message /* @@protoc_insertion_point
 
   // implements Message ----------------------------------------------
 
-  inline netConfig* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline netConfig* New() const final {
+    return CreateMaybeMessage<netConfig>(NULL);
+  }
 
-  netConfig* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  netConfig* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<netConfig>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const netConfig& from);
   void MergeFrom(const netConfig& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(netConfig* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -693,7 +713,7 @@ class netConfig : public ::google::protobuf::Message /* @@protoc_insertion_point
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -730,11 +750,10 @@ class netConfig : public ::google::protobuf::Message /* @@protoc_insertion_point
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::google::protobuf::internal::ArenaStringPtr ip_address_;
   ::google::protobuf::int32 port_;
   friend struct ::protobuf_wj_5flidar_5fconf_2eproto::TableStruct;
-  friend void ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultsnetConfigImpl();
 };
 // -------------------------------------------------------------------
 
@@ -779,7 +798,7 @@ class Transform2d : public ::google::protobuf::Message /* @@protoc_insertion_poi
     return reinterpret_cast<const Transform2d*>(
                &_Transform2d_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     4;
 
   void Swap(Transform2d* other);
@@ -789,28 +808,33 @@ class Transform2d : public ::google::protobuf::Message /* @@protoc_insertion_poi
 
   // implements Message ----------------------------------------------
 
-  inline Transform2d* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline Transform2d* New() const final {
+    return CreateMaybeMessage<Transform2d>(NULL);
+  }
 
-  Transform2d* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  Transform2d* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<Transform2d>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const Transform2d& from);
   void MergeFrom(const Transform2d& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(Transform2d* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -821,7 +845,7 @@ class Transform2d : public ::google::protobuf::Message /* @@protoc_insertion_poi
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -886,7 +910,7 @@ class Transform2d : public ::google::protobuf::Message /* @@protoc_insertion_poi
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   float m01_;
   float m02_;
   float m10_;
@@ -894,7 +918,6 @@ class Transform2d : public ::google::protobuf::Message /* @@protoc_insertion_poi
   float m00_;
   float m11_;
   friend struct ::protobuf_wj_5flidar_5fconf_2eproto::TableStruct;
-  friend void ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultsTransform2dImpl();
 };
 // -------------------------------------------------------------------
 
@@ -939,7 +962,7 @@ class scanLimit : public ::google::protobuf::Message /* @@protoc_insertion_point
     return reinterpret_cast<const scanLimit*>(
                &_scanLimit_default_instance_);
   }
-  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+  static constexpr int kIndexInFileMessages =
     5;
 
   void Swap(scanLimit* other);
@@ -949,28 +972,33 @@ class scanLimit : public ::google::protobuf::Message /* @@protoc_insertion_point
 
   // implements Message ----------------------------------------------
 
-  inline scanLimit* New() const PROTOBUF_FINAL { return New(NULL); }
+  inline scanLimit* New() const final {
+    return CreateMaybeMessage<scanLimit>(NULL);
+  }
 
-  scanLimit* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
-  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
-  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  scanLimit* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<scanLimit>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const scanLimit& from);
   void MergeFrom(const scanLimit& from);
-  void Clear() PROTOBUF_FINAL;
-  bool IsInitialized() const PROTOBUF_FINAL;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+      ::google::protobuf::io::CodedOutputStream* output) const final;
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
-  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void SetCachedSize(int size) const final;
   void InternalSwap(scanLimit* other);
   private:
   inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
@@ -981,7 +1009,7 @@ class scanLimit : public ::google::protobuf::Message /* @@protoc_insertion_point
   }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -1037,14 +1065,13 @@ class scanLimit : public ::google::protobuf::Message /* @@protoc_insertion_point
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
-  mutable int _cached_size_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   float maxy_;
   float dist_limit_;
   float minx_;
   float maxx_;
   float miny_;
   friend struct ::protobuf_wj_5flidar_5fconf_2eproto::TableStruct;
-  friend void ::protobuf_wj_5flidar_5fconf_2eproto::InitDefaultsscanLimitImpl();
 };
 // ===================================================================
 
@@ -1064,23 +1091,23 @@ inline int wjManagerParams::wj_lidar_size() const {
 inline void wjManagerParams::clear_wj_lidar() {
   wj_lidar_.Clear();
 }
-inline const ::wj::wjLidarParams& wjManagerParams::wj_lidar(int index) const {
-  // @@protoc_insertion_point(field_get:wj.wjManagerParams.wj_lidar)
-  return wj_lidar_.Get(index);
-}
 inline ::wj::wjLidarParams* wjManagerParams::mutable_wj_lidar(int index) {
   // @@protoc_insertion_point(field_mutable:wj.wjManagerParams.wj_lidar)
   return wj_lidar_.Mutable(index);
 }
-inline ::wj::wjLidarParams* wjManagerParams::add_wj_lidar() {
-  // @@protoc_insertion_point(field_add:wj.wjManagerParams.wj_lidar)
-  return wj_lidar_.Add();
-}
 inline ::google::protobuf::RepeatedPtrField< ::wj::wjLidarParams >*
 wjManagerParams::mutable_wj_lidar() {
   // @@protoc_insertion_point(field_mutable_list:wj.wjManagerParams.wj_lidar)
   return &wj_lidar_;
 }
+inline const ::wj::wjLidarParams& wjManagerParams::wj_lidar(int index) const {
+  // @@protoc_insertion_point(field_get:wj.wjManagerParams.wj_lidar)
+  return wj_lidar_.Get(index);
+}
+inline ::wj::wjLidarParams* wjManagerParams::add_wj_lidar() {
+  // @@protoc_insertion_point(field_add:wj.wjManagerParams.wj_lidar)
+  return wj_lidar_.Add();
+}
 inline const ::google::protobuf::RepeatedPtrField< ::wj::wjLidarParams >&
 wjManagerParams::wj_lidar() const {
   // @@protoc_insertion_point(field_list:wj.wjManagerParams.wj_lidar)
@@ -1094,23 +1121,23 @@ inline int wjManagerParams::regions_size() const {
 inline void wjManagerParams::clear_regions() {
   regions_.Clear();
 }
-inline const ::wj::Region& wjManagerParams::regions(int index) const {
-  // @@protoc_insertion_point(field_get:wj.wjManagerParams.regions)
-  return regions_.Get(index);
-}
 inline ::wj::Region* wjManagerParams::mutable_regions(int index) {
   // @@protoc_insertion_point(field_mutable:wj.wjManagerParams.regions)
   return regions_.Mutable(index);
 }
-inline ::wj::Region* wjManagerParams::add_regions() {
-  // @@protoc_insertion_point(field_add:wj.wjManagerParams.regions)
-  return regions_.Add();
-}
 inline ::google::protobuf::RepeatedPtrField< ::wj::Region >*
 wjManagerParams::mutable_regions() {
   // @@protoc_insertion_point(field_mutable_list:wj.wjManagerParams.regions)
   return &regions_;
 }
+inline const ::wj::Region& wjManagerParams::regions(int index) const {
+  // @@protoc_insertion_point(field_get:wj.wjManagerParams.regions)
+  return regions_.Get(index);
+}
+inline ::wj::Region* wjManagerParams::add_regions() {
+  // @@protoc_insertion_point(field_add:wj.wjManagerParams.regions)
+  return regions_.Add();
+}
 inline const ::google::protobuf::RepeatedPtrField< ::wj::Region >&
 wjManagerParams::regions() const {
   // @@protoc_insertion_point(field_list:wj.wjManagerParams.regions)
@@ -1167,8 +1194,11 @@ inline ::std::string* wjManagerParams::mutable_fence_data_path() {
 }
 inline ::std::string* wjManagerParams::release_fence_data_path() {
   // @@protoc_insertion_point(field_release:wj.wjManagerParams.fence_data_path)
+  if (!has_fence_data_path()) {
+    return NULL;
+  }
   clear_has_fence_data_path();
-  return fence_data_path_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  return fence_data_path_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void wjManagerParams::set_allocated_fence_data_path(::std::string* fence_data_path) {
   if (fence_data_path != NULL) {
@@ -1230,8 +1260,11 @@ inline ::std::string* wjManagerParams::mutable_fence_log_path() {
 }
 inline ::std::string* wjManagerParams::release_fence_log_path() {
   // @@protoc_insertion_point(field_release:wj.wjManagerParams.fence_log_path)
+  if (!has_fence_log_path()) {
+    return NULL;
+  }
   clear_has_fence_log_path();
-  return fence_log_path_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  return fence_log_path_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void wjManagerParams::set_allocated_fence_log_path(::std::string* fence_log_path) {
   if (fence_log_path != NULL) {
@@ -1254,7 +1287,7 @@ inline void wjManagerParams::clear_has_plc_ip_address() {
   _has_bits_[0] &= ~0x00000004u;
 }
 inline void wjManagerParams::clear_plc_ip_address() {
-  plc_ip_address_.ClearToDefaultNoArena(&::wj::wjManagerParams::_default_plc_ip_address_.get());
+  plc_ip_address_.ClearToDefaultNoArena(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get());
   clear_has_plc_ip_address();
 }
 inline const ::std::string& wjManagerParams::plc_ip_address() const {
@@ -1263,38 +1296,41 @@ inline const ::std::string& wjManagerParams::plc_ip_address() const {
 }
 inline void wjManagerParams::set_plc_ip_address(const ::std::string& value) {
   set_has_plc_ip_address();
-  plc_ip_address_.SetNoArena(&::wj::wjManagerParams::_default_plc_ip_address_.get(), value);
+  plc_ip_address_.SetNoArena(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), value);
   // @@protoc_insertion_point(field_set:wj.wjManagerParams.plc_ip_address)
 }
 #if LANG_CXX11
 inline void wjManagerParams::set_plc_ip_address(::std::string&& value) {
   set_has_plc_ip_address();
   plc_ip_address_.SetNoArena(
-    &::wj::wjManagerParams::_default_plc_ip_address_.get(), ::std::move(value));
+    &::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), ::std::move(value));
   // @@protoc_insertion_point(field_set_rvalue:wj.wjManagerParams.plc_ip_address)
 }
 #endif
 inline void wjManagerParams::set_plc_ip_address(const char* value) {
   GOOGLE_DCHECK(value != NULL);
   set_has_plc_ip_address();
-  plc_ip_address_.SetNoArena(&::wj::wjManagerParams::_default_plc_ip_address_.get(), ::std::string(value));
+  plc_ip_address_.SetNoArena(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), ::std::string(value));
   // @@protoc_insertion_point(field_set_char:wj.wjManagerParams.plc_ip_address)
 }
 inline void wjManagerParams::set_plc_ip_address(const char* value, size_t size) {
   set_has_plc_ip_address();
-  plc_ip_address_.SetNoArena(&::wj::wjManagerParams::_default_plc_ip_address_.get(),
+  plc_ip_address_.SetNoArena(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(),
       ::std::string(reinterpret_cast<const char*>(value), size));
   // @@protoc_insertion_point(field_set_pointer:wj.wjManagerParams.plc_ip_address)
 }
 inline ::std::string* wjManagerParams::mutable_plc_ip_address() {
   set_has_plc_ip_address();
   // @@protoc_insertion_point(field_mutable:wj.wjManagerParams.plc_ip_address)
-  return plc_ip_address_.MutableNoArena(&::wj::wjManagerParams::_default_plc_ip_address_.get());
+  return plc_ip_address_.MutableNoArena(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get());
 }
 inline ::std::string* wjManagerParams::release_plc_ip_address() {
   // @@protoc_insertion_point(field_release:wj.wjManagerParams.plc_ip_address)
+  if (!has_plc_ip_address()) {
+    return NULL;
+  }
   clear_has_plc_ip_address();
-  return plc_ip_address_.ReleaseNoArena(&::wj::wjManagerParams::_default_plc_ip_address_.get());
+  return plc_ip_address_.ReleaseNonDefaultNoArena(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get());
 }
 inline void wjManagerParams::set_allocated_plc_ip_address(::std::string* plc_ip_address) {
   if (plc_ip_address != NULL) {
@@ -1302,7 +1338,7 @@ inline void wjManagerParams::set_allocated_plc_ip_address(::std::string* plc_ip_
   } else {
     clear_has_plc_ip_address();
   }
-  plc_ip_address_.SetAllocatedNoArena(&::wj::wjManagerParams::_default_plc_ip_address_.get(), plc_ip_address);
+  plc_ip_address_.SetAllocatedNoArena(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), plc_ip_address);
   // @@protoc_insertion_point(field_set_allocated:wj.wjManagerParams.plc_ip_address)
 }
 
@@ -1568,6 +1604,9 @@ inline void wjLidarParams::clear_net_config() {
   if (net_config_ != NULL) net_config_->Clear();
   clear_has_net_config();
 }
+inline const ::wj::netConfig& wjLidarParams::_internal_net_config() const {
+  return *net_config_;
+}
 inline const ::wj::netConfig& wjLidarParams::net_config() const {
   const ::wj::netConfig* p = net_config_;
   // @@protoc_insertion_point(field_get:wj.wjLidarParams.net_config)
@@ -1584,7 +1623,8 @@ inline ::wj::netConfig* wjLidarParams::release_net_config() {
 inline ::wj::netConfig* wjLidarParams::mutable_net_config() {
   set_has_net_config();
   if (net_config_ == NULL) {
-    net_config_ = new ::wj::netConfig;
+    auto* p = CreateMaybeMessage<::wj::netConfig>(GetArenaNoVirtual());
+    net_config_ = p;
   }
   // @@protoc_insertion_point(field_mutable:wj.wjLidarParams.net_config)
   return net_config_;
@@ -1622,6 +1662,9 @@ inline void wjLidarParams::clear_transform() {
   if (transform_ != NULL) transform_->Clear();
   clear_has_transform();
 }
+inline const ::wj::Transform2d& wjLidarParams::_internal_transform() const {
+  return *transform_;
+}
 inline const ::wj::Transform2d& wjLidarParams::transform() const {
   const ::wj::Transform2d* p = transform_;
   // @@protoc_insertion_point(field_get:wj.wjLidarParams.transform)
@@ -1638,7 +1681,8 @@ inline ::wj::Transform2d* wjLidarParams::release_transform() {
 inline ::wj::Transform2d* wjLidarParams::mutable_transform() {
   set_has_transform();
   if (transform_ == NULL) {
-    transform_ = new ::wj::Transform2d;
+    auto* p = CreateMaybeMessage<::wj::Transform2d>(GetArenaNoVirtual());
+    transform_ = p;
   }
   // @@protoc_insertion_point(field_mutable:wj.wjLidarParams.transform)
   return transform_;
@@ -1676,6 +1720,9 @@ inline void wjLidarParams::clear_scan_limit() {
   if (scan_limit_ != NULL) scan_limit_->Clear();
   clear_has_scan_limit();
 }
+inline const ::wj::scanLimit& wjLidarParams::_internal_scan_limit() const {
+  return *scan_limit_;
+}
 inline const ::wj::scanLimit& wjLidarParams::scan_limit() const {
   const ::wj::scanLimit* p = scan_limit_;
   // @@protoc_insertion_point(field_get:wj.wjLidarParams.scan_limit)
@@ -1692,7 +1739,8 @@ inline ::wj::scanLimit* wjLidarParams::release_scan_limit() {
 inline ::wj::scanLimit* wjLidarParams::mutable_scan_limit() {
   set_has_scan_limit();
   if (scan_limit_ == NULL) {
-    scan_limit_ = new ::wj::scanLimit;
+    auto* p = CreateMaybeMessage<::wj::scanLimit>(GetArenaNoVirtual());
+    scan_limit_ = p;
   }
   // @@protoc_insertion_point(field_mutable:wj.wjLidarParams.scan_limit)
   return scan_limit_;
@@ -1770,8 +1818,11 @@ inline ::std::string* netConfig::mutable_ip_address() {
 }
 inline ::std::string* netConfig::release_ip_address() {
   // @@protoc_insertion_point(field_release:wj.netConfig.ip_address)
+  if (!has_ip_address()) {
+    return NULL;
+  }
   clear_has_ip_address();
-  return ip_address_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  return ip_address_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void netConfig::set_allocated_ip_address(::std::string* ip_address) {
   if (ip_address != NULL) {
@@ -2099,4 +2150,4 @@ inline void scanLimit::set_maxy(float value) {
 
 // @@protoc_insertion_point(global_scope)
 
-#endif  // PROTOBUF_wj_5flidar_5fconf_2eproto__INCLUDED
+#endif  // PROTOBUF_INCLUDED_wj_5flidar_5fconf_2eproto