浏览代码

修改id 增加单元号

zx 3 年之前
父节点
当前提交
b47fab2d72
共有 36 个文件被更改,包括 4682 次插入2451 次删除
  1. 8 8
      dispatch/dispatch_excutor.cpp
  2. 2 2
      exception/exception_solver.cpp
  3. 66 41
      message/central_control_message.pb.cc
  4. 83 27
      message/central_control_message.pb.h
  5. 1 1
      message/central_control_message.proto
  6. 304 230
      message/dispatch_message.pb.cc
  7. 293 125
      message/dispatch_message.pb.h
  8. 3 3
      message/dispatch_message.proto
  9. 5 5
      message/log_process.pb.cc
  10. 539 375
      message/measure_message.pb.cc
  11. 766 318
      message/measure_message.pb.h
  12. 8 8
      message/measure_message.proto
  13. 407 117
      message/message_base.pb.cc
  14. 234 4
      message/message_base.pb.h
  15. 6 0
      message/message_base.proto
  16. 187 125
      message/notify_message.pb.cc
  17. 294 126
      message/notify_message.pb.h
  18. 3 3
      message/notify_message.proto
  19. 121 99
      message/parkspace_allocation_message.pb.cc
  20. 83 27
      message/parkspace_allocation_message.pb.h
  21. 1 1
      message/parkspace_allocation_message.proto
  22. 232 188
      message/process_message.pb.cc
  23. 315 203
      message/process_message.pb.h
  24. 2 2
      message/process_message.proto
  25. 256 173
      message/terminal_message.pb.cc
  26. 400 176
      message/terminal_message.pb.h
  27. 6 6
      message/terminal_message.proto
  28. 19 20
      system/PickupProcessTask.cpp
  29. 1 1
      system/PickupProcessTask.h
  30. 13 13
      system/StoreProcessTask.cpp
  31. 1 1
      system/StoreProcessTask.h
  32. 16 16
      system/command_manager.cpp
  33. 2 2
      system/process_task.cpp
  34. 3 3
      system/process_task.h
  35. 1 1
      test/pickup_terminal.cpp
  36. 1 1
      test/store_terminal.cpp

+ 8 - 8
dispatch/dispatch_excutor.cpp

@@ -198,20 +198,20 @@ Error_manager Dispatch_excutor::consume_msg(Communication_message* p_msg)
 
             if(statu_msg.passageway_direction()==message::E_INLET)
             {
-                m_storing_dispatch_statu_msg_map[statu_msg.terminal_id()]=statu_msg;
-                m_storing_dispatch_statu_time_map[statu_msg.terminal_id()]=std::chrono::system_clock::now();
+                m_storing_dispatch_statu_msg_map[statu_msg.id_struct().unit_id()]=statu_msg;
+                m_storing_dispatch_statu_time_map[statu_msg.id_struct().unit_id()]=std::chrono::system_clock::now();
             }
             if(statu_msg.passageway_direction()==message::E_OUTLET)
             {
-                m_picking_dispatch_statu_msg_map[statu_msg.terminal_id()]=statu_msg;
-                m_picking_dispatch_statu_time_map[statu_msg.terminal_id()]=std::chrono::system_clock::now();
+                m_picking_dispatch_statu_msg_map[statu_msg.id_struct().unit_id()]=statu_msg;
+                m_picking_dispatch_statu_time_map[statu_msg.id_struct().unit_id()]=std::chrono::system_clock::now();
             }
             if(statu_msg.passageway_direction()==message::E_BILATERAL)
             {
-                m_storing_dispatch_statu_msg_map[statu_msg.terminal_id()]=statu_msg;
-                m_storing_dispatch_statu_time_map[statu_msg.terminal_id()]=std::chrono::system_clock::now();
-                m_picking_dispatch_statu_msg_map[statu_msg.terminal_id()]=statu_msg;
-                m_picking_dispatch_statu_time_map[statu_msg.terminal_id()]=std::chrono::system_clock::now();
+                m_storing_dispatch_statu_msg_map[statu_msg.id_struct().unit_id()]=statu_msg;
+                m_storing_dispatch_statu_time_map[statu_msg.id_struct().unit_id()]=std::chrono::system_clock::now();
+                m_picking_dispatch_statu_msg_map[statu_msg.id_struct().unit_id()]=statu_msg;
+                m_picking_dispatch_statu_time_map[statu_msg.id_struct().unit_id()]=std::chrono::system_clock::now();
             }
             break;
         }

+ 2 - 2
exception/exception_solver.cpp

@@ -72,12 +72,12 @@ Error_manager Exception_solver::consume_msg(Communication_message* p_msg)
             {
                 case message::eStoring:
                 {
-                    Command_manager::get_instance_pointer()->pause_entrance(msg.terminal_id(),msg.paused());
+                    Command_manager::get_instance_pointer()->pause_entrance(msg.id_struct().terminal_id(),msg.paused());
                     break;
                 }
                 case message::ePicking:
                 {
-                    Command_manager::get_instance_pointer()->pause_export(msg.terminal_id(),msg.paused());
+                    //Command_manager::get_instance_pointer()->pause_export(msg.id_struct().terminal_id(),msg.paused());
                     break;
                 }
             }

+ 66 - 41
message/central_control_message.pb.cc

@@ -16,6 +16,7 @@
 #include <google/protobuf/port_def.inc>
 extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Base_info_message_5fbase_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_central_5fcontrol_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Entrance_statu_central_5fcontrol_5fmessage_2eproto;
+extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Id_struct_message_5fbase_2eproto;
 namespace message {
 class Entrance_statuDefaultTypeInternal {
  public:
@@ -61,9 +62,10 @@ static void InitDefaultsscc_info_Entrance_manual_operation_msg_central_5fcontrol
   ::message::Entrance_manual_operation_msg::InitAsDefaultInstance();
 }
 
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Entrance_manual_operation_msg_central_5fcontrol_5fmessage_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_Entrance_manual_operation_msg_central_5fcontrol_5fmessage_2eproto}, {
-      &scc_info_Base_info_message_5fbase_2eproto.base,}};
+::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Entrance_manual_operation_msg_central_5fcontrol_5fmessage_2eproto =
+    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_Entrance_manual_operation_msg_central_5fcontrol_5fmessage_2eproto}, {
+      &scc_info_Base_info_message_5fbase_2eproto.base,
+      &scc_info_Id_struct_message_5fbase_2eproto.base,}};
 
 static void InitDefaultsscc_info_Entrance_statu_central_5fcontrol_5fmessage_2eproto() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
@@ -129,7 +131,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_central_5fcontrol_5fmessage_2e
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
   PROTOBUF_FIELD_OFFSET(::message::Entrance_manual_operation_msg, base_info_),
-  PROTOBUF_FIELD_OFFSET(::message::Entrance_manual_operation_msg, terminal_id_),
+  PROTOBUF_FIELD_OFFSET(::message::Entrance_manual_operation_msg, id_struct_),
   PROTOBUF_FIELD_OFFSET(::message::Entrance_manual_operation_msg, process_type_),
   PROTOBUF_FIELD_OFFSET(::message::Entrance_manual_operation_msg, paused_),
   0,
@@ -175,19 +177,20 @@ const char descriptor_table_protodef_central_5fcontrol_5fmessage_2eproto[] PROTO
   "o\030\001 \002(\0132\022.message.Base_info\0226\n\025entrance_"
   "statu_vector\030\002 \003(\0132\027.message.Entrance_st"
   "atu\0224\n\023export_statu_vector\030\003 \003(\0132\027.messa"
-  "ge.Entrance_statu\"\230\001\n\035Entrance_manual_op"
+  "ge.Entrance_statu\"\252\001\n\035Entrance_manual_op"
   "eration_msg\022%\n\tbase_info\030\001 \002(\0132\022.message"
-  ".Base_info\022\023\n\013terminal_id\030\002 \002(\005\022+\n\014proce"
-  "ss_type\030\003 \002(\0162\025.message.Process_type\022\016\n\006"
-  "paused\030\004 \002(\010\"\264\001\n\034Process_manual_operatio"
-  "n_msg\022%\n\tbase_info\030\001 \002(\0132\022.message.Base_"
-  "info\022\017\n\007license\030\002 \002(\t\022%\n\tstep_type\030\003 \002(\016"
-  "2\022.message.Step_type\0225\n\014operate_type\030\004 \002"
-  "(\0162\037.message.Process_operation_type*S\n\026P"
-  "rocess_operation_type\022\022\n\016eManual_cancel\020"
-  "\000\022\021\n\reManual_retry\020\001\022\022\n\016eManual_ignore\020\002"
-  "*=\n\014Module_statu\022\016\n\neConnected\020\000\022\021\n\reDis"
-  "connected\020\001\022\n\n\006eFault\020\002"
+  ".Base_info\022%\n\tid_struct\030\002 \002(\0132\022.message."
+  "Id_struct\022+\n\014process_type\030\003 \002(\0162\025.messag"
+  "e.Process_type\022\016\n\006paused\030\004 \002(\010\"\264\001\n\034Proce"
+  "ss_manual_operation_msg\022%\n\tbase_info\030\001 \002"
+  "(\0132\022.message.Base_info\022\017\n\007license\030\002 \002(\t\022"
+  "%\n\tstep_type\030\003 \002(\0162\022.message.Step_type\0225"
+  "\n\014operate_type\030\004 \002(\0162\037.message.Process_o"
+  "peration_type*S\n\026Process_operation_type\022"
+  "\022\n\016eManual_cancel\020\000\022\021\n\reManual_retry\020\001\022\022"
+  "\n\016eManual_ignore\020\002*=\n\014Module_statu\022\016\n\neC"
+  "onnected\020\000\022\021\n\reDisconnected\020\001\022\n\n\006eFault\020"
+  "\002"
   ;
 static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_central_5fcontrol_5fmessage_2eproto_deps[1] = {
   &::descriptor_table_message_5fbase_2eproto,
@@ -200,7 +203,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_cen
 };
 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_central_5fcontrol_5fmessage_2eproto_once;
 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_central_5fcontrol_5fmessage_2eproto = {
-  false, false, descriptor_table_protodef_central_5fcontrol_5fmessage_2eproto, "central_control_message.proto", 903,
+  false, false, descriptor_table_protodef_central_5fcontrol_5fmessage_2eproto, "central_control_message.proto", 921,
   &descriptor_table_central_5fcontrol_5fmessage_2eproto_once, descriptor_table_central_5fcontrol_5fmessage_2eproto_sccs, descriptor_table_central_5fcontrol_5fmessage_2eproto_deps, 4, 1,
   schemas, file_default_instances, TableStruct_central_5fcontrol_5fmessage_2eproto::offsets,
   file_level_metadata_central_5fcontrol_5fmessage_2eproto, 4, file_level_enum_descriptors_central_5fcontrol_5fmessage_2eproto, file_level_service_descriptors_central_5fcontrol_5fmessage_2eproto,
@@ -870,6 +873,8 @@ void Central_controller_statu_msg::InternalSwap(Central_controller_statu_msg* ot
 void Entrance_manual_operation_msg::InitAsDefaultInstance() {
   ::message::_Entrance_manual_operation_msg_default_instance_._instance.get_mutable()->base_info_ = const_cast< ::message::Base_info*>(
       ::message::Base_info::internal_default_instance());
+  ::message::_Entrance_manual_operation_msg_default_instance_._instance.get_mutable()->id_struct_ = const_cast< ::message::Id_struct*>(
+      ::message::Id_struct::internal_default_instance());
 }
 class Entrance_manual_operation_msg::_Internal {
  public:
@@ -878,7 +883,8 @@ class Entrance_manual_operation_msg::_Internal {
   static void set_has_base_info(HasBits* has_bits) {
     (*has_bits)[0] |= 1u;
   }
-  static void set_has_terminal_id(HasBits* has_bits) {
+  static const ::message::Id_struct& id_struct(const Entrance_manual_operation_msg* msg);
+  static void set_has_id_struct(HasBits* has_bits) {
     (*has_bits)[0] |= 2u;
   }
   static void set_has_process_type(HasBits* has_bits) {
@@ -896,10 +902,18 @@ const ::message::Base_info&
 Entrance_manual_operation_msg::_Internal::base_info(const Entrance_manual_operation_msg* msg) {
   return *msg->base_info_;
 }
+const ::message::Id_struct&
+Entrance_manual_operation_msg::_Internal::id_struct(const Entrance_manual_operation_msg* msg) {
+  return *msg->id_struct_;
+}
 void Entrance_manual_operation_msg::clear_base_info() {
   if (base_info_ != nullptr) base_info_->Clear();
   _has_bits_[0] &= ~0x00000001u;
 }
+void Entrance_manual_operation_msg::clear_id_struct() {
+  if (id_struct_ != nullptr) id_struct_->Clear();
+  _has_bits_[0] &= ~0x00000002u;
+}
 Entrance_manual_operation_msg::Entrance_manual_operation_msg(::PROTOBUF_NAMESPACE_ID::Arena* arena)
   : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
   SharedCtor();
@@ -915,9 +929,14 @@ Entrance_manual_operation_msg::Entrance_manual_operation_msg(const Entrance_manu
   } else {
     base_info_ = nullptr;
   }
-  ::memcpy(&terminal_id_, &from.terminal_id_,
+  if (from._internal_has_id_struct()) {
+    id_struct_ = new ::message::Id_struct(*from.id_struct_);
+  } else {
+    id_struct_ = nullptr;
+  }
+  ::memcpy(&paused_, &from.paused_,
     static_cast<size_t>(reinterpret_cast<char*>(&process_type_) -
-    reinterpret_cast<char*>(&terminal_id_)) + sizeof(process_type_));
+    reinterpret_cast<char*>(&paused_)) + sizeof(process_type_));
   // @@protoc_insertion_point(copy_constructor:message.Entrance_manual_operation_msg)
 }
 
@@ -938,6 +957,7 @@ Entrance_manual_operation_msg::~Entrance_manual_operation_msg() {
 void Entrance_manual_operation_msg::SharedDtor() {
   GOOGLE_DCHECK(GetArena() == nullptr);
   if (this != internal_default_instance()) delete base_info_;
+  if (this != internal_default_instance()) delete id_struct_;
 }
 
 void Entrance_manual_operation_msg::ArenaDtor(void* object) {
@@ -962,14 +982,18 @@ void Entrance_manual_operation_msg::Clear() {
   (void) cached_has_bits;
 
   cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000001u) {
-    GOOGLE_DCHECK(base_info_ != nullptr);
-    base_info_->Clear();
+  if (cached_has_bits & 0x00000003u) {
+    if (cached_has_bits & 0x00000001u) {
+      GOOGLE_DCHECK(base_info_ != nullptr);
+      base_info_->Clear();
+    }
+    if (cached_has_bits & 0x00000002u) {
+      GOOGLE_DCHECK(id_struct_ != nullptr);
+      id_struct_->Clear();
+    }
   }
-  if (cached_has_bits & 0x0000000eu) {
-    ::memset(&terminal_id_, 0, static_cast<size_t>(
-        reinterpret_cast<char*>(&paused_) -
-        reinterpret_cast<char*>(&terminal_id_)) + sizeof(paused_));
+  if (cached_has_bits & 0x0000000cu) {
+    paused_ = false;
     process_type_ = 1;
   }
   _has_bits_.Clear();
@@ -992,11 +1016,10 @@ const char* Entrance_manual_operation_msg::_InternalParse(const char* ptr, ::PRO
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
-      // required int32 terminal_id = 2;
+      // required .message.Id_struct id_struct = 2;
       case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
-          _Internal::set_has_terminal_id(&has_bits);
-          terminal_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
+          ptr = ctx->ParseMessage(_internal_mutable_id_struct(), ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
@@ -1058,10 +1081,12 @@ failure:
         1, _Internal::base_info(this), target, stream);
   }
 
-  // required int32 terminal_id = 2;
+  // required .message.Id_struct id_struct = 2;
   if (cached_has_bits & 0x00000002u) {
     target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_terminal_id(), target);
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(
+        2, _Internal::id_struct(this), target, stream);
   }
 
   // required .message.Process_type process_type = 3;
@@ -1096,11 +1121,11 @@ size_t Entrance_manual_operation_msg::RequiredFieldsByteSizeFallback() const {
         *base_info_);
   }
 
-  if (_internal_has_terminal_id()) {
-    // required int32 terminal_id = 2;
+  if (_internal_has_id_struct()) {
+    // required .message.Id_struct id_struct = 2;
     total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-        this->_internal_terminal_id());
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *id_struct_);
   }
 
   if (_internal_has_paused()) {
@@ -1126,10 +1151,10 @@ size_t Entrance_manual_operation_msg::ByteSizeLong() const {
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
         *base_info_);
 
-    // required int32 terminal_id = 2;
+    // required .message.Id_struct id_struct = 2;
     total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-        this->_internal_terminal_id());
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *id_struct_);
 
     // required bool paused = 4;
     total_size += 1 + 1;
@@ -1182,7 +1207,7 @@ void Entrance_manual_operation_msg::MergeFrom(const Entrance_manual_operation_ms
       _internal_mutable_base_info()->::message::Base_info::MergeFrom(from._internal_base_info());
     }
     if (cached_has_bits & 0x00000002u) {
-      terminal_id_ = from.terminal_id_;
+      _internal_mutable_id_struct()->::message::Id_struct::MergeFrom(from._internal_id_struct());
     }
     if (cached_has_bits & 0x00000004u) {
       paused_ = from.paused_;

+ 83 - 27
message/central_control_message.pb.h

@@ -637,7 +637,7 @@ class Entrance_manual_operation_msg PROTOBUF_FINAL :
 
   enum : int {
     kBaseInfoFieldNumber = 1,
-    kTerminalIdFieldNumber = 2,
+    kIdStructFieldNumber = 2,
     kPausedFieldNumber = 4,
     kProcessTypeFieldNumber = 3,
   };
@@ -659,18 +659,23 @@ class Entrance_manual_operation_msg PROTOBUF_FINAL :
       ::message::Base_info* base_info);
   ::message::Base_info* unsafe_arena_release_base_info();
 
-  // required int32 terminal_id = 2;
-  bool has_terminal_id() const;
+  // required .message.Id_struct id_struct = 2;
+  bool has_id_struct() const;
   private:
-  bool _internal_has_terminal_id() const;
+  bool _internal_has_id_struct() const;
   public:
-  void clear_terminal_id();
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id() const;
-  void set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
+  void clear_id_struct();
+  const ::message::Id_struct& id_struct() const;
+  ::message::Id_struct* release_id_struct();
+  ::message::Id_struct* mutable_id_struct();
+  void set_allocated_id_struct(::message::Id_struct* id_struct);
   private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_terminal_id() const;
-  void _internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
+  const ::message::Id_struct& _internal_id_struct() const;
+  ::message::Id_struct* _internal_mutable_id_struct();
   public:
+  void unsafe_arena_set_allocated_id_struct(
+      ::message::Id_struct* id_struct);
+  ::message::Id_struct* unsafe_arena_release_id_struct();
 
   // required bool paused = 4;
   bool has_paused() const;
@@ -711,7 +716,7 @@ class Entrance_manual_operation_msg PROTOBUF_FINAL :
   ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
   mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   ::message::Base_info* base_info_;
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id_;
+  ::message::Id_struct* id_struct_;
   bool paused_;
   int process_type_;
   friend struct ::TableStruct_central_5fcontrol_5fmessage_2eproto;
@@ -1295,32 +1300,83 @@ inline void Entrance_manual_operation_msg::set_allocated_base_info(::message::Ba
   // @@protoc_insertion_point(field_set_allocated:message.Entrance_manual_operation_msg.base_info)
 }
 
-// required int32 terminal_id = 2;
-inline bool Entrance_manual_operation_msg::_internal_has_terminal_id() const {
+// required .message.Id_struct id_struct = 2;
+inline bool Entrance_manual_operation_msg::_internal_has_id_struct() const {
   bool value = (_has_bits_[0] & 0x00000002u) != 0;
+  PROTOBUF_ASSUME(!value || id_struct_ != nullptr);
   return value;
 }
-inline bool Entrance_manual_operation_msg::has_terminal_id() const {
-  return _internal_has_terminal_id();
+inline bool Entrance_manual_operation_msg::has_id_struct() const {
+  return _internal_has_id_struct();
 }
-inline void Entrance_manual_operation_msg::clear_terminal_id() {
-  terminal_id_ = 0;
-  _has_bits_[0] &= ~0x00000002u;
+inline const ::message::Id_struct& Entrance_manual_operation_msg::_internal_id_struct() const {
+  const ::message::Id_struct* p = id_struct_;
+  return p != nullptr ? *p : *reinterpret_cast<const ::message::Id_struct*>(
+      &::message::_Id_struct_default_instance_);
+}
+inline const ::message::Id_struct& Entrance_manual_operation_msg::id_struct() const {
+  // @@protoc_insertion_point(field_get:message.Entrance_manual_operation_msg.id_struct)
+  return _internal_id_struct();
+}
+inline void Entrance_manual_operation_msg::unsafe_arena_set_allocated_id_struct(
+    ::message::Id_struct* id_struct) {
+  if (GetArena() == nullptr) {
+    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  id_struct_ = id_struct;
+  if (id_struct) {
+    _has_bits_[0] |= 0x00000002u;
+  } else {
+    _has_bits_[0] &= ~0x00000002u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Entrance_manual_operation_msg.id_struct)
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Entrance_manual_operation_msg::_internal_terminal_id() const {
-  return terminal_id_;
+inline ::message::Id_struct* Entrance_manual_operation_msg::release_id_struct() {
+  _has_bits_[0] &= ~0x00000002u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  if (GetArena() != nullptr) {
+    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  }
+  return temp;
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Entrance_manual_operation_msg::terminal_id() const {
-  // @@protoc_insertion_point(field_get:message.Entrance_manual_operation_msg.terminal_id)
-  return _internal_terminal_id();
+inline ::message::Id_struct* Entrance_manual_operation_msg::unsafe_arena_release_id_struct() {
+  // @@protoc_insertion_point(field_release:message.Entrance_manual_operation_msg.id_struct)
+  _has_bits_[0] &= ~0x00000002u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  return temp;
 }
-inline void Entrance_manual_operation_msg::_internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
+inline ::message::Id_struct* Entrance_manual_operation_msg::_internal_mutable_id_struct() {
   _has_bits_[0] |= 0x00000002u;
-  terminal_id_ = value;
+  if (id_struct_ == nullptr) {
+    auto* p = CreateMaybeMessage<::message::Id_struct>(GetArena());
+    id_struct_ = p;
+  }
+  return id_struct_;
+}
+inline ::message::Id_struct* Entrance_manual_operation_msg::mutable_id_struct() {
+  // @@protoc_insertion_point(field_mutable:message.Entrance_manual_operation_msg.id_struct)
+  return _internal_mutable_id_struct();
 }
-inline void Entrance_manual_operation_msg::set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _internal_set_terminal_id(value);
-  // @@protoc_insertion_point(field_set:message.Entrance_manual_operation_msg.terminal_id)
+inline void Entrance_manual_operation_msg::set_allocated_id_struct(::message::Id_struct* id_struct) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
+  if (message_arena == nullptr) {
+    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  if (id_struct) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct)->GetArena();
+    if (message_arena != submessage_arena) {
+      id_struct = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, id_struct, submessage_arena);
+    }
+    _has_bits_[0] |= 0x00000002u;
+  } else {
+    _has_bits_[0] &= ~0x00000002u;
+  }
+  id_struct_ = id_struct;
+  // @@protoc_insertion_point(field_set_allocated:message.Entrance_manual_operation_msg.id_struct)
 }
 
 // required .message.Process_type process_type = 3;

+ 1 - 1
message/central_control_message.proto

@@ -39,7 +39,7 @@ message Central_controller_statu_msg
 message Entrance_manual_operation_msg
 {
     required Base_info                  base_info=1;
-    required int32                      terminal_id=2;
+    required Id_struct                      id_struct=2;
     required Process_type               process_type=3;
     required bool                       paused=4;           //是否急停
 }

+ 304 - 230
message/dispatch_message.pb.cc

@@ -18,6 +18,7 @@ extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::
 extern PROTOBUF_INTERNAL_EXPORT_dispatch_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Carrier_data_dispatch_5fmessage_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_dispatch_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Catcher_data_dispatch_5fmessage_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Error_manager_message_5fbase_2eproto;
+extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Id_struct_message_5fbase_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Locate_information_message_5fbase_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Parkspace_info_message_5fbase_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_dispatch_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Passageway_data_dispatch_5fmessage_2eproto;
@@ -126,9 +127,10 @@ static void InitDefaultsscc_info_Dispatch_request_msg_dispatch_5fmessage_2eproto
   ::message::Dispatch_request_msg::InitAsDefaultInstance();
 }
 
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Dispatch_request_msg_dispatch_5fmessage_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 3, 0, InitDefaultsscc_info_Dispatch_request_msg_dispatch_5fmessage_2eproto}, {
+::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<4> scc_info_Dispatch_request_msg_dispatch_5fmessage_2eproto =
+    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 4, 0, InitDefaultsscc_info_Dispatch_request_msg_dispatch_5fmessage_2eproto}, {
       &scc_info_Base_info_message_5fbase_2eproto.base,
+      &scc_info_Id_struct_message_5fbase_2eproto.base,
       &scc_info_Locate_information_message_5fbase_2eproto.base,
       &scc_info_Parkspace_info_message_5fbase_2eproto.base,}};
 
@@ -143,9 +145,10 @@ static void InitDefaultsscc_info_Dispatch_response_msg_dispatch_5fmessage_2eprot
   ::message::Dispatch_response_msg::InitAsDefaultInstance();
 }
 
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<4> scc_info_Dispatch_response_msg_dispatch_5fmessage_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 4, 0, InitDefaultsscc_info_Dispatch_response_msg_dispatch_5fmessage_2eproto}, {
+::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<5> scc_info_Dispatch_response_msg_dispatch_5fmessage_2eproto =
+    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 5, 0, InitDefaultsscc_info_Dispatch_response_msg_dispatch_5fmessage_2eproto}, {
       &scc_info_Base_info_message_5fbase_2eproto.base,
+      &scc_info_Id_struct_message_5fbase_2eproto.base,
       &scc_info_Locate_information_message_5fbase_2eproto.base,
       &scc_info_Parkspace_info_message_5fbase_2eproto.base,
       &scc_info_Error_manager_message_5fbase_2eproto.base,}};
@@ -161,9 +164,10 @@ static void InitDefaultsscc_info_Dispatch_terminal_status_msg_dispatch_5fmessage
   ::message::Dispatch_terminal_status_msg::InitAsDefaultInstance();
 }
 
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Dispatch_terminal_status_msg_dispatch_5fmessage_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_Dispatch_terminal_status_msg_dispatch_5fmessage_2eproto}, {
-      &scc_info_Base_info_message_5fbase_2eproto.base,}};
+::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Dispatch_terminal_status_msg_dispatch_5fmessage_2eproto =
+    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_Dispatch_terminal_status_msg_dispatch_5fmessage_2eproto}, {
+      &scc_info_Base_info_message_5fbase_2eproto.base,
+      &scc_info_Id_struct_message_5fbase_2eproto.base,}};
 
 static void InitDefaultsscc_info_Passageway_data_dispatch_5fmessage_2eproto() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
@@ -190,7 +194,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_dispatch_5fmessage_2eproto::of
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_terminal_status_msg, base_info_),
-  PROTOBUF_FIELD_OFFSET(::message::Dispatch_terminal_status_msg, terminal_id_),
+  PROTOBUF_FIELD_OFFSET(::message::Dispatch_terminal_status_msg, id_struct_),
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_terminal_status_msg, terminal_status_),
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_terminal_status_msg, passageway_direction_),
   0,
@@ -205,15 +209,15 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_dispatch_5fmessage_2eproto::of
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_request_msg, base_info_),
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_request_msg, command_key_),
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_request_msg, dispatch_motion_direction_),
-  PROTOBUF_FIELD_OFFSET(::message::Dispatch_request_msg, terminal_id_),
+  PROTOBUF_FIELD_OFFSET(::message::Dispatch_request_msg, id_struct_),
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_request_msg, locate_information_),
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_request_msg, parkspace_info_ex_),
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_request_msg, car_type_),
   1,
   0,
-  3,
   4,
   2,
+  3,
   ~0u,
   5,
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_response_msg, _has_bits_),
@@ -224,19 +228,19 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_dispatch_5fmessage_2eproto::of
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_response_msg, base_info_),
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_response_msg, command_key_),
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_response_msg, dispatch_motion_direction_),
-  PROTOBUF_FIELD_OFFSET(::message::Dispatch_response_msg, terminal_id_),
+  PROTOBUF_FIELD_OFFSET(::message::Dispatch_response_msg, id_struct_),
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_response_msg, locate_information_),
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_response_msg, parkspace_info_ex_),
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_response_msg, car_type_),
   PROTOBUF_FIELD_OFFSET(::message::Dispatch_response_msg, error_manager_),
   1,
   0,
-  4,
   5,
   2,
+  3,
   ~0u,
   6,
-  3,
+  4,
   PROTOBUF_FIELD_OFFSET(::message::Catcher_data, _has_bits_),
   PROTOBUF_FIELD_OFFSET(::message::Catcher_data, _internal_metadata_),
   ~0u,  // no _extensions_
@@ -409,145 +413,147 @@ static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] =
 
 const char descriptor_table_protodef_dispatch_5fmessage_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
   "\n\026dispatch_message.proto\022\007message\032\022messa"
-  "ge_base.proto\"\312\001\n\034Dispatch_terminal_stat"
+  "ge_base.proto\"\334\001\n\034Dispatch_terminal_stat"
   "us_msg\022%\n\tbase_info\030\001 \002(\0132\022.message.Base"
-  "_info\022\023\n\013terminal_id\030\002 \002(\005\0221\n\017terminal_s"
-  "tatus\030\003 \002(\0162\030.message.Terminal_status\022;\n"
-  "\024passageway_direction\030\004 \002(\0162\035.message.Pa"
-  "ssageway_direction\"\300\002\n\024Dispatch_request_"
+  "_info\022%\n\tid_struct\030\002 \002(\0132\022.message.Id_st"
+  "ruct\0221\n\017terminal_status\030\003 \002(\0162\030.message."
+  "Terminal_status\022;\n\024passageway_direction\030"
+  "\004 \002(\0162\035.message.Passageway_direction\"\322\002\n"
+  "\024Dispatch_request_msg\022%\n\tbase_info\030\001 \002(\013"
+  "2\022.message.Base_info\022\023\n\013command_key\030\002 \002("
+  "\t\022E\n\031dispatch_motion_direction\030\003 \001(\0162\".m"
+  "essage.Dispatch_motion_direction\022%\n\tid_s"
+  "truct\030\004 \001(\0132\022.message.Id_struct\0227\n\022locat"
+  "e_information\030\005 \001(\0132\033.message.Locate_inf"
+  "ormation\0222\n\021parkspace_info_ex\030\006 \003(\0132\027.me"
+  "ssage.Parkspace_info\022#\n\010car_type\030\007 \001(\0162\021"
+  ".message.Car_type\"\202\003\n\025Dispatch_response_"
   "msg\022%\n\tbase_info\030\001 \002(\0132\022.message.Base_in"
   "fo\022\023\n\013command_key\030\002 \002(\t\022E\n\031dispatch_moti"
   "on_direction\030\003 \001(\0162\".message.Dispatch_mo"
-  "tion_direction\022\023\n\013terminal_id\030\004 \001(\005\0227\n\022l"
-  "ocate_information\030\005 \001(\0132\033.message.Locate"
-  "_information\0222\n\021parkspace_info_ex\030\006 \003(\0132"
-  "\027.message.Parkspace_info\022#\n\010car_type\030\007 \001"
-  "(\0162\021.message.Car_type\"\360\002\n\025Dispatch_respo"
-  "nse_msg\022%\n\tbase_info\030\001 \002(\0132\022.message.Bas"
-  "e_info\022\023\n\013command_key\030\002 \002(\t\022E\n\031dispatch_"
-  "motion_direction\030\003 \001(\0162\".message.Dispatc"
-  "h_motion_direction\022\023\n\013terminal_id\030\004 \001(\005\022"
-  "7\n\022locate_information\030\005 \001(\0132\033.message.Lo"
-  "cate_information\0222\n\021parkspace_info_ex\030\006 "
-  "\003(\0132\027.message.Parkspace_info\022#\n\010car_type"
-  "\030\007 \001(\0162\021.message.Car_type\022-\n\rerror_manag"
-  "er\030\010 \001(\0132\026.message.Error_manager\"\313\005\n\014Cat"
-  "cher_data\022;\n\024dispatch_device_type\030\001 \002(\0162"
-  "\035.message.Dispatch_device_type\022\?\n\026dispat"
-  "ch_device_status\030\002 \002(\0162\037.message.Dispatc"
-  "h_device_status\022\021\n\tdevice_id\030\003 \002(\005\022=\n\024ac"
-  "tual_device_status\030\004 \001(\0162\037.message.Hardw"
-  "are_device_status\0220\n\022actual_load_status\030"
-  "\005 \001(\0162\024.message.Load_status\022\035\n\025actual_co"
-  "ordinates_id\030\006 \001(\005\022\020\n\010actual_x\030\007 \001(\002\022\020\n\010"
-  "actual_y\030\010 \001(\002\022\020\n\010actual_b\030\t \001(\002\022\020\n\010actu"
-  "al_z\030\n \001(\002\022\021\n\tactual_d1\030\013 \001(\002\022\021\n\tactual_"
-  "d2\030\014 \001(\002\0223\n\024actual_clamp_motion1\030\r \001(\0162\025"
+  "tion_direction\022%\n\tid_struct\030\004 \001(\0132\022.mess"
+  "age.Id_struct\0227\n\022locate_information\030\005 \001("
+  "\0132\033.message.Locate_information\0222\n\021parksp"
+  "ace_info_ex\030\006 \003(\0132\027.message.Parkspace_in"
+  "fo\022#\n\010car_type\030\007 \001(\0162\021.message.Car_type\022"
+  "-\n\rerror_manager\030\010 \001(\0132\026.message.Error_m"
+  "anager\"\313\005\n\014Catcher_data\022;\n\024dispatch_devi"
+  "ce_type\030\001 \002(\0162\035.message.Dispatch_device_"
+  "type\022\?\n\026dispatch_device_status\030\002 \002(\0162\037.m"
+  "essage.Dispatch_device_status\022\021\n\tdevice_"
+  "id\030\003 \002(\005\022=\n\024actual_device_status\030\004 \001(\0162\037"
+  ".message.Hardware_device_status\0220\n\022actua"
+  "l_load_status\030\005 \001(\0162\024.message.Load_statu"
+  "s\022\035\n\025actual_coordinates_id\030\006 \001(\005\022\020\n\010actu"
+  "al_x\030\007 \001(\002\022\020\n\010actual_y\030\010 \001(\002\022\020\n\010actual_b"
+  "\030\t \001(\002\022\020\n\010actual_z\030\n \001(\002\022\021\n\tactual_d1\030\013 "
+  "\001(\002\022\021\n\tactual_d2\030\014 \001(\002\0223\n\024actual_clamp_m"
+  "otion1\030\r \001(\0162\025.message.Clamp_motion\0223\n\024a"
+  "ctual_clamp_motion2\030\016 \001(\0162\025.message.Clam"
+  "p_motion\0223\n\024actual_clamp_motion3\030\017 \001(\0162\025"
   ".message.Clamp_motion\0223\n\024actual_clamp_mo"
-  "tion2\030\016 \001(\0162\025.message.Clamp_motion\0223\n\024ac"
-  "tual_clamp_motion3\030\017 \001(\0162\025.message.Clamp"
-  "_motion\0223\n\024actual_clamp_motion4\030\020 \001(\0162\025."
-  "message.Clamp_motion\022\031\n\021actual_error_cod"
-  "e\030\021 \001(\t\022\033\n\023actual_warning_code\030\022 \001(\t\022 \n\030"
-  "actual_error_description\030\023 \001(\t\"\207\006\n\014Carri"
-  "er_data\022;\n\024dispatch_device_type\030\001 \002(\0162\035."
-  "message.Dispatch_device_type\022\?\n\026dispatch"
-  "_device_status\030\002 \002(\0162\037.message.Dispatch_"
-  "device_status\022\021\n\tdevice_id\030\003 \002(\005\022=\n\024actu"
-  "al_device_status\030\004 \001(\0162\037.message.Hardwar"
-  "e_device_status\0220\n\022actual_load_status\030\005 "
-  "\001(\0162\024.message.Load_status\022\035\n\025actual_coor"
-  "dinates_id\030\006 \001(\005\022\020\n\010actual_x\030\007 \001(\002\022\020\n\010ac"
-  "tual_y\030\010 \001(\002\022\020\n\010actual_z\030\t \001(\002\022\021\n\tactual"
-  "_y1\030\n \001(\002\022\021\n\tactual_y2\030\013 \001(\002\0223\n\024actual_c"
-  "lamp_motion1\030\014 \001(\0162\025.message.Clamp_motio"
-  "n\0223\n\024actual_clamp_motion2\030\r \001(\0162\025.messag"
-  "e.Clamp_motion\022H\n\036actual_small_sports_ca"
-  "r_motion\030\016 \001(\0162 .message.Small_sports_ca"
-  "r_motion\0225\n\026actual_joint_motion_x1\030\017 \001(\016"
-  "2\025.message.Joint_motion\0225\n\026actual_joint_"
-  "motion_x2\030\020 \001(\0162\025.message.Joint_motion\022\031"
-  "\n\021actual_error_code\030\021 \001(\t\022\033\n\023actual_warn"
-  "ing_code\030\022 \001(\t\022 \n\030actual_error_descripti"
-  "on\030\023 \001(\t\"\275\007\n\017Passageway_data\022;\n\024dispatch"
-  "_device_type\030\001 \002(\0162\035.message.Dispatch_de"
-  "vice_type\022\?\n\026dispatch_device_status\030\002 \002("
-  "\0162\037.message.Dispatch_device_status\022\021\n\tde"
-  "vice_id\030\003 \002(\005\022=\n\024actual_device_status\030\004 "
-  "\001(\0162\037.message.Hardware_device_status\0227\n\031"
-  "actual_inside_load_status\030\005 \001(\0162\024.messag"
-  "e.Load_status\0228\n\032actual_outside_load_sta"
-  "tus\030\006 \001(\0162\024.message.Load_status\022J\n\"actua"
-  "l_front_overstep_the_boundary\030\007 \001(\0162\036.me"
-  "ssage.Overstep_the_boundary\022I\n!actual_ba"
-  "ck_overstep_the_boundary\030\010 \001(\0162\036.message"
-  ".Overstep_the_boundary\022K\n#actual_height_"
-  "overstep_the_boundary\030\t \001(\0162\036.message.Ov"
-  "erstep_the_boundary\0228\n\032actual_outside_do"
-  "or_sensor\030\n \001(\0162\024.message.Load_status\0227\n"
-  "\031actual_inside_door_motion\030\013 \001(\0162\024.messa"
-  "ge.Door_motion\0228\n\032actual_outside_door_mo"
-  "tion\030\014 \001(\0162\024.message.Door_motion\022:\n\034actu"
-  "al_turntable_load_status\030\r \001(\0162\024.message"
-  ".Load_status\022@\n\032actual_turntable_directi"
-  "on\030\016 \001(\0162\034.message.Turntable_direction\022\031"
-  "\n\021actual_error_code\030\017 \001(\t\022\033\n\023actual_warn"
-  "ing_code\030\020 \001(\t\022 \n\030actual_error_descripti"
-  "on\030\021 \001(\t\"\265\002\n\033Dispatch_manager_status_msg"
-  "\022%\n\tbase_info\030\001 \002(\0132\022.message.Base_info\022"
-  "\023\n\013dispatch_id\030\002 \002(\005\022A\n\027dispatch_manager"
-  "_status\030\003 \002(\0162 .message.Dispatch_manager"
-  "_status\022/\n\020catcher_data_map\030\004 \003(\0132\025.mess"
-  "age.Catcher_data\022/\n\020carrier_data_map\030\005 \003"
-  "(\0132\025.message.Carrier_data\0225\n\023passageway_"
-  "data_map\030\006 \003(\0132\030.message.Passageway_data"
-  "\"\033\n\031Dispatch_manager_data_msg*\201\001\n\017Termin"
-  "al_status\022\025\n\021E_TERMINAL_UNKNOW\020\000\022\024\n\020E_TE"
-  "RMINAL_READY\020\001\022\024\n\020E_TERMINAL_STORE\020\002\022\025\n\021"
-  "E_TERMINAL_PICKUP\020\003\022\024\n\020E_TERMINAL_FAULT\020"
-  "\n*B\n\024Passageway_direction\022\013\n\007E_INLET\020\000\022\014"
-  "\n\010E_OUTLET\020\001\022\017\n\013E_BILATERAL\020\002*>\n\031Dispatc"
-  "h_motion_direction\022\017\n\013E_STORE_CAR\020\000\022\020\n\014E"
-  "_PICKUP_CAR\020\001*\261\001\n\027Dispatch_manager_statu"
-  "s\022\035\n\031E_DISPATCH_MANAGER_UNKNOW\020\000\022\034\n\030E_DI"
-  "SPATCH_MANAGER_READY\020\001\022\034\n\030E_DISPATCH_MAN"
-  "AGER_STORE\020\002\022\035\n\031E_DISPATCH_MANAGER_PICKU"
-  "P\020\003\022\034\n\030E_DISPATCH_MANAGER_FAULT\020d*\200\003\n\026Di"
-  "spatch_device_status\022\032\n\026DISPATCH_DEVICE_"
-  "UNKNOW\020\000\022\031\n\025DISPATCH_DEVICE_READY\020\001\022\030\n\024D"
-  "ISPATCH_DEVICE_BUSY\020\002\022\"\n\036DISPATCH_DEVICE"
-  "_ONE_LEVEL_OVER\020\003\022\"\n\036DISPATCH_DEVICE_ONE"
-  "_LEVEL_WORK\020\004\022\"\n\036DISPATCH_DEVICE_TWO_LEV"
-  "EL_OVER\020\005\022\"\n\036DISPATCH_DEVICE_TWO_LEVEL_W"
-  "ORK\020\006\022$\n DISPATCH_DEVICE_THREE_LEVEL_OVE"
-  "R\020\007\022$\n DISPATCH_DEVICE_THREE_LEVEL_WORK\020"
-  "\010\022\031\n\025DISPATCH_DEVICE_FAULT\020d\022\036\n\032DISPATCH"
-  "_DEVICE_DISCONNECT\020e*n\n\023Dispatch_task_le"
-  "vel\022\033\n\027DISPATCH_TASK_ONE_LEVEL\020\001\022\033\n\027DISP"
-  "ATCH_TASK_TWO_LEVEL\020\002\022\035\n\031DISPATCH_TASK_T"
-  "HREE_LEVEL\020\003*K\n\014Clamp_motion\022\025\n\021E_CLAMP_"
-  "NO_ACTION\020\000\022\021\n\rE_CLAMP_TIGHT\020\001\022\021\n\rE_CLAM"
-  "P_LOOSE\020\002*R\n\014Joint_motion\022\025\n\021E_JOINT_NO_"
-  "ACTION\020\000\022\024\n\020E_JOINT_HOLD_OUT\020\001\022\025\n\021E_JOIN"
-  "T_TAKE_BACK\020\002*y\n\027Small_sports_car_motion"
-  "\022\034\n\030E_SMALL_SPORTS_NO_ACTION\020\000\022\037\n\033E_SMAL"
-  "L_SPORTS_CAR_GET_AWAY\020\001\022\037\n\033E_SMALL_SPORT"
-  "S_CAR_GET_BACK\020\002*l\n\016Respons_status\022\023\n\017RE"
-  "SPONS_WORKING\020\000\022\020\n\014RESPONS_OVER\020\001\022\027\n\023RES"
-  "PONS_MINOR_ERROR\020d\022\032\n\026RESPONS_CRITICAL_E"
-  "RROR\020e*\252\001\n\026Hardware_device_status\022\022\n\016DEV"
-  "ICE_UNKNOWN\020\000\022\020\n\014DEVICE_READY\020\001\022\022\n\016DEVIC"
-  "E_WORKING\020\002\022\031\n\025DEVICE_EMERGENCY_STOP\020\003\022\023"
-  "\n\017DEVICE_UNSAFETY\020\004\022\024\n\020DEVICE_COLLISION\020"
-  "\005\022\020\n\014DEVICE_FAULT\020\006*9\n\013Load_status\022\020\n\014LO"
-  "AD_UNKNOWN\020\000\022\014\n\010HAVE_CAR\020\001\022\n\n\006NO_CAR\020\002*w"
-  "\n\023Turntable_direction\022\037\n\033TURNTABLE_DIREC"
-  "TION_UNKNOWN\020\000\022\036\n\032TURNTABLE_DIRECTION_IN"
-  "SIDE\020\001\022\037\n\033TURNTABLE_DIRECTION_OUTSIDE\020\002*"
-  "N\n\013Door_motion\022\020\n\014DOOR_UNKNOWN\020\000\022\r\n\tDOOR"
-  "_OPEN\020\001\022\016\n\nDOOR_CLOSE\020\002\022\016\n\nDOOR_ERROR\020\003*"
-  "C\n\025Overstep_the_boundary\022\023\n\017BOUNDARY_NOR"
-  "MAL\020\000\022\025\n\021BOUNDARY_OVERSTEP\020\001"
+  "tion4\030\020 \001(\0162\025.message.Clamp_motion\022\031\n\021ac"
+  "tual_error_code\030\021 \001(\t\022\033\n\023actual_warning_"
+  "code\030\022 \001(\t\022 \n\030actual_error_description\030\023"
+  " \001(\t\"\207\006\n\014Carrier_data\022;\n\024dispatch_device"
+  "_type\030\001 \002(\0162\035.message.Dispatch_device_ty"
+  "pe\022\?\n\026dispatch_device_status\030\002 \002(\0162\037.mes"
+  "sage.Dispatch_device_status\022\021\n\tdevice_id"
+  "\030\003 \002(\005\022=\n\024actual_device_status\030\004 \001(\0162\037.m"
+  "essage.Hardware_device_status\0220\n\022actual_"
+  "load_status\030\005 \001(\0162\024.message.Load_status\022"
+  "\035\n\025actual_coordinates_id\030\006 \001(\005\022\020\n\010actual"
+  "_x\030\007 \001(\002\022\020\n\010actual_y\030\010 \001(\002\022\020\n\010actual_z\030\t"
+  " \001(\002\022\021\n\tactual_y1\030\n \001(\002\022\021\n\tactual_y2\030\013 \001"
+  "(\002\0223\n\024actual_clamp_motion1\030\014 \001(\0162\025.messa"
+  "ge.Clamp_motion\0223\n\024actual_clamp_motion2\030"
+  "\r \001(\0162\025.message.Clamp_motion\022H\n\036actual_s"
+  "mall_sports_car_motion\030\016 \001(\0162 .message.S"
+  "mall_sports_car_motion\0225\n\026actual_joint_m"
+  "otion_x1\030\017 \001(\0162\025.message.Joint_motion\0225\n"
+  "\026actual_joint_motion_x2\030\020 \001(\0162\025.message."
+  "Joint_motion\022\031\n\021actual_error_code\030\021 \001(\t\022"
+  "\033\n\023actual_warning_code\030\022 \001(\t\022 \n\030actual_e"
+  "rror_description\030\023 \001(\t\"\275\007\n\017Passageway_da"
+  "ta\022;\n\024dispatch_device_type\030\001 \002(\0162\035.messa"
+  "ge.Dispatch_device_type\022\?\n\026dispatch_devi"
+  "ce_status\030\002 \002(\0162\037.message.Dispatch_devic"
+  "e_status\022\021\n\tdevice_id\030\003 \002(\005\022=\n\024actual_de"
+  "vice_status\030\004 \001(\0162\037.message.Hardware_dev"
+  "ice_status\0227\n\031actual_inside_load_status\030"
+  "\005 \001(\0162\024.message.Load_status\0228\n\032actual_ou"
+  "tside_load_status\030\006 \001(\0162\024.message.Load_s"
+  "tatus\022J\n\"actual_front_overstep_the_bound"
+  "ary\030\007 \001(\0162\036.message.Overstep_the_boundar"
+  "y\022I\n!actual_back_overstep_the_boundary\030\010"
+  " \001(\0162\036.message.Overstep_the_boundary\022K\n#"
+  "actual_height_overstep_the_boundary\030\t \001("
+  "\0162\036.message.Overstep_the_boundary\0228\n\032act"
+  "ual_outside_door_sensor\030\n \001(\0162\024.message."
+  "Load_status\0227\n\031actual_inside_door_motion"
+  "\030\013 \001(\0162\024.message.Door_motion\0228\n\032actual_o"
+  "utside_door_motion\030\014 \001(\0162\024.message.Door_"
+  "motion\022:\n\034actual_turntable_load_status\030\r"
+  " \001(\0162\024.message.Load_status\022@\n\032actual_tur"
+  "ntable_direction\030\016 \001(\0162\034.message.Turntab"
+  "le_direction\022\031\n\021actual_error_code\030\017 \001(\t\022"
+  "\033\n\023actual_warning_code\030\020 \001(\t\022 \n\030actual_e"
+  "rror_description\030\021 \001(\t\"\265\002\n\033Dispatch_mana"
+  "ger_status_msg\022%\n\tbase_info\030\001 \002(\0132\022.mess"
+  "age.Base_info\022\023\n\013dispatch_id\030\002 \002(\005\022A\n\027di"
+  "spatch_manager_status\030\003 \002(\0162 .message.Di"
+  "spatch_manager_status\022/\n\020catcher_data_ma"
+  "p\030\004 \003(\0132\025.message.Catcher_data\022/\n\020carrie"
+  "r_data_map\030\005 \003(\0132\025.message.Carrier_data\022"
+  "5\n\023passageway_data_map\030\006 \003(\0132\030.message.P"
+  "assageway_data\"\033\n\031Dispatch_manager_data_"
+  "msg*\201\001\n\017Terminal_status\022\025\n\021E_TERMINAL_UN"
+  "KNOW\020\000\022\024\n\020E_TERMINAL_READY\020\001\022\024\n\020E_TERMIN"
+  "AL_STORE\020\002\022\025\n\021E_TERMINAL_PICKUP\020\003\022\024\n\020E_T"
+  "ERMINAL_FAULT\020\n*B\n\024Passageway_direction\022"
+  "\013\n\007E_INLET\020\000\022\014\n\010E_OUTLET\020\001\022\017\n\013E_BILATERA"
+  "L\020\002*>\n\031Dispatch_motion_direction\022\017\n\013E_ST"
+  "ORE_CAR\020\000\022\020\n\014E_PICKUP_CAR\020\001*\261\001\n\027Dispatch"
+  "_manager_status\022\035\n\031E_DISPATCH_MANAGER_UN"
+  "KNOW\020\000\022\034\n\030E_DISPATCH_MANAGER_READY\020\001\022\034\n\030"
+  "E_DISPATCH_MANAGER_STORE\020\002\022\035\n\031E_DISPATCH"
+  "_MANAGER_PICKUP\020\003\022\034\n\030E_DISPATCH_MANAGER_"
+  "FAULT\020d*\200\003\n\026Dispatch_device_status\022\032\n\026DI"
+  "SPATCH_DEVICE_UNKNOW\020\000\022\031\n\025DISPATCH_DEVIC"
+  "E_READY\020\001\022\030\n\024DISPATCH_DEVICE_BUSY\020\002\022\"\n\036D"
+  "ISPATCH_DEVICE_ONE_LEVEL_OVER\020\003\022\"\n\036DISPA"
+  "TCH_DEVICE_ONE_LEVEL_WORK\020\004\022\"\n\036DISPATCH_"
+  "DEVICE_TWO_LEVEL_OVER\020\005\022\"\n\036DISPATCH_DEVI"
+  "CE_TWO_LEVEL_WORK\020\006\022$\n DISPATCH_DEVICE_T"
+  "HREE_LEVEL_OVER\020\007\022$\n DISPATCH_DEVICE_THR"
+  "EE_LEVEL_WORK\020\010\022\031\n\025DISPATCH_DEVICE_FAULT"
+  "\020d\022\036\n\032DISPATCH_DEVICE_DISCONNECT\020e*n\n\023Di"
+  "spatch_task_level\022\033\n\027DISPATCH_TASK_ONE_L"
+  "EVEL\020\001\022\033\n\027DISPATCH_TASK_TWO_LEVEL\020\002\022\035\n\031D"
+  "ISPATCH_TASK_THREE_LEVEL\020\003*K\n\014Clamp_moti"
+  "on\022\025\n\021E_CLAMP_NO_ACTION\020\000\022\021\n\rE_CLAMP_TIG"
+  "HT\020\001\022\021\n\rE_CLAMP_LOOSE\020\002*R\n\014Joint_motion\022"
+  "\025\n\021E_JOINT_NO_ACTION\020\000\022\024\n\020E_JOINT_HOLD_O"
+  "UT\020\001\022\025\n\021E_JOINT_TAKE_BACK\020\002*y\n\027Small_spo"
+  "rts_car_motion\022\034\n\030E_SMALL_SPORTS_NO_ACTI"
+  "ON\020\000\022\037\n\033E_SMALL_SPORTS_CAR_GET_AWAY\020\001\022\037\n"
+  "\033E_SMALL_SPORTS_CAR_GET_BACK\020\002*l\n\016Respon"
+  "s_status\022\023\n\017RESPONS_WORKING\020\000\022\020\n\014RESPONS"
+  "_OVER\020\001\022\027\n\023RESPONS_MINOR_ERROR\020d\022\032\n\026RESP"
+  "ONS_CRITICAL_ERROR\020e*\252\001\n\026Hardware_device"
+  "_status\022\022\n\016DEVICE_UNKNOWN\020\000\022\020\n\014DEVICE_RE"
+  "ADY\020\001\022\022\n\016DEVICE_WORKING\020\002\022\031\n\025DEVICE_EMER"
+  "GENCY_STOP\020\003\022\023\n\017DEVICE_UNSAFETY\020\004\022\024\n\020DEV"
+  "ICE_COLLISION\020\005\022\020\n\014DEVICE_FAULT\020\006*9\n\013Loa"
+  "d_status\022\020\n\014LOAD_UNKNOWN\020\000\022\014\n\010HAVE_CAR\020\001"
+  "\022\n\n\006NO_CAR\020\002*w\n\023Turntable_direction\022\037\n\033T"
+  "URNTABLE_DIRECTION_UNKNOWN\020\000\022\036\n\032TURNTABL"
+  "E_DIRECTION_INSIDE\020\001\022\037\n\033TURNTABLE_DIRECT"
+  "ION_OUTSIDE\020\002*N\n\013Door_motion\022\020\n\014DOOR_UNK"
+  "NOWN\020\000\022\r\n\tDOOR_OPEN\020\001\022\016\n\nDOOR_CLOSE\020\002\022\016\n"
+  "\nDOOR_ERROR\020\003*C\n\025Overstep_the_boundary\022\023"
+  "\n\017BOUNDARY_NORMAL\020\000\022\025\n\021BOUNDARY_OVERSTEP"
+  "\020\001"
   ;
 static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_dispatch_5fmessage_2eproto_deps[1] = {
   &::descriptor_table_message_5fbase_2eproto,
@@ -564,7 +570,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_dis
 };
 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_dispatch_5fmessage_2eproto_once;
 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_dispatch_5fmessage_2eproto = {
-  false, false, descriptor_table_protodef_dispatch_5fmessage_2eproto, "dispatch_message.proto", 5588,
+  false, false, descriptor_table_protodef_dispatch_5fmessage_2eproto, "dispatch_message.proto", 5642,
   &descriptor_table_dispatch_5fmessage_2eproto_once, descriptor_table_dispatch_5fmessage_2eproto_sccs, descriptor_table_dispatch_5fmessage_2eproto_deps, 8, 1,
   schemas, file_default_instances, TableStruct_dispatch_5fmessage_2eproto::offsets,
   file_level_metadata_dispatch_5fmessage_2eproto, 8, file_level_enum_descriptors_dispatch_5fmessage_2eproto, file_level_service_descriptors_dispatch_5fmessage_2eproto,
@@ -820,6 +826,8 @@ bool Overstep_the_boundary_IsValid(int value) {
 void Dispatch_terminal_status_msg::InitAsDefaultInstance() {
   ::message::_Dispatch_terminal_status_msg_default_instance_._instance.get_mutable()->base_info_ = const_cast< ::message::Base_info*>(
       ::message::Base_info::internal_default_instance());
+  ::message::_Dispatch_terminal_status_msg_default_instance_._instance.get_mutable()->id_struct_ = const_cast< ::message::Id_struct*>(
+      ::message::Id_struct::internal_default_instance());
 }
 class Dispatch_terminal_status_msg::_Internal {
  public:
@@ -828,7 +836,8 @@ class Dispatch_terminal_status_msg::_Internal {
   static void set_has_base_info(HasBits* has_bits) {
     (*has_bits)[0] |= 1u;
   }
-  static void set_has_terminal_id(HasBits* has_bits) {
+  static const ::message::Id_struct& id_struct(const Dispatch_terminal_status_msg* msg);
+  static void set_has_id_struct(HasBits* has_bits) {
     (*has_bits)[0] |= 2u;
   }
   static void set_has_terminal_status(HasBits* has_bits) {
@@ -846,10 +855,18 @@ const ::message::Base_info&
 Dispatch_terminal_status_msg::_Internal::base_info(const Dispatch_terminal_status_msg* msg) {
   return *msg->base_info_;
 }
+const ::message::Id_struct&
+Dispatch_terminal_status_msg::_Internal::id_struct(const Dispatch_terminal_status_msg* msg) {
+  return *msg->id_struct_;
+}
 void Dispatch_terminal_status_msg::clear_base_info() {
   if (base_info_ != nullptr) base_info_->Clear();
   _has_bits_[0] &= ~0x00000001u;
 }
+void Dispatch_terminal_status_msg::clear_id_struct() {
+  if (id_struct_ != nullptr) id_struct_->Clear();
+  _has_bits_[0] &= ~0x00000002u;
+}
 Dispatch_terminal_status_msg::Dispatch_terminal_status_msg(::PROTOBUF_NAMESPACE_ID::Arena* arena)
   : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
   SharedCtor();
@@ -865,9 +882,14 @@ Dispatch_terminal_status_msg::Dispatch_terminal_status_msg(const Dispatch_termin
   } else {
     base_info_ = nullptr;
   }
-  ::memcpy(&terminal_id_, &from.terminal_id_,
+  if (from._internal_has_id_struct()) {
+    id_struct_ = new ::message::Id_struct(*from.id_struct_);
+  } else {
+    id_struct_ = nullptr;
+  }
+  ::memcpy(&terminal_status_, &from.terminal_status_,
     static_cast<size_t>(reinterpret_cast<char*>(&passageway_direction_) -
-    reinterpret_cast<char*>(&terminal_id_)) + sizeof(passageway_direction_));
+    reinterpret_cast<char*>(&terminal_status_)) + sizeof(passageway_direction_));
   // @@protoc_insertion_point(copy_constructor:message.Dispatch_terminal_status_msg)
 }
 
@@ -887,6 +909,7 @@ Dispatch_terminal_status_msg::~Dispatch_terminal_status_msg() {
 void Dispatch_terminal_status_msg::SharedDtor() {
   GOOGLE_DCHECK(GetArena() == nullptr);
   if (this != internal_default_instance()) delete base_info_;
+  if (this != internal_default_instance()) delete id_struct_;
 }
 
 void Dispatch_terminal_status_msg::ArenaDtor(void* object) {
@@ -911,14 +934,20 @@ void Dispatch_terminal_status_msg::Clear() {
   (void) cached_has_bits;
 
   cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000001u) {
-    GOOGLE_DCHECK(base_info_ != nullptr);
-    base_info_->Clear();
+  if (cached_has_bits & 0x00000003u) {
+    if (cached_has_bits & 0x00000001u) {
+      GOOGLE_DCHECK(base_info_ != nullptr);
+      base_info_->Clear();
+    }
+    if (cached_has_bits & 0x00000002u) {
+      GOOGLE_DCHECK(id_struct_ != nullptr);
+      id_struct_->Clear();
+    }
   }
-  if (cached_has_bits & 0x0000000eu) {
-    ::memset(&terminal_id_, 0, static_cast<size_t>(
+  if (cached_has_bits & 0x0000000cu) {
+    ::memset(&terminal_status_, 0, static_cast<size_t>(
         reinterpret_cast<char*>(&passageway_direction_) -
-        reinterpret_cast<char*>(&terminal_id_)) + sizeof(passageway_direction_));
+        reinterpret_cast<char*>(&terminal_status_)) + sizeof(passageway_direction_));
   }
   _has_bits_.Clear();
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
@@ -940,11 +969,10 @@ const char* Dispatch_terminal_status_msg::_InternalParse(const char* ptr, ::PROT
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
-      // required int32 terminal_id = 2;
+      // required .message.Id_struct id_struct = 2;
       case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
-          _Internal::set_has_terminal_id(&has_bits);
-          terminal_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
+          ptr = ctx->ParseMessage(_internal_mutable_id_struct(), ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
@@ -1010,10 +1038,12 @@ failure:
         1, _Internal::base_info(this), target, stream);
   }
 
-  // required int32 terminal_id = 2;
+  // required .message.Id_struct id_struct = 2;
   if (cached_has_bits & 0x00000002u) {
     target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_terminal_id(), target);
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(
+        2, _Internal::id_struct(this), target, stream);
   }
 
   // required .message.Terminal_status terminal_status = 3;
@@ -1049,11 +1079,11 @@ size_t Dispatch_terminal_status_msg::RequiredFieldsByteSizeFallback() const {
         *base_info_);
   }
 
-  if (_internal_has_terminal_id()) {
-    // required int32 terminal_id = 2;
+  if (_internal_has_id_struct()) {
+    // required .message.Id_struct id_struct = 2;
     total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-        this->_internal_terminal_id());
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *id_struct_);
   }
 
   if (_internal_has_terminal_status()) {
@@ -1080,10 +1110,10 @@ size_t Dispatch_terminal_status_msg::ByteSizeLong() const {
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
         *base_info_);
 
-    // required int32 terminal_id = 2;
+    // required .message.Id_struct id_struct = 2;
     total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-        this->_internal_terminal_id());
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *id_struct_);
 
     // required .message.Terminal_status terminal_status = 3;
     total_size += 1 +
@@ -1137,7 +1167,7 @@ void Dispatch_terminal_status_msg::MergeFrom(const Dispatch_terminal_status_msg&
       _internal_mutable_base_info()->::message::Base_info::MergeFrom(from._internal_base_info());
     }
     if (cached_has_bits & 0x00000002u) {
-      terminal_id_ = from.terminal_id_;
+      _internal_mutable_id_struct()->::message::Id_struct::MergeFrom(from._internal_id_struct());
     }
     if (cached_has_bits & 0x00000004u) {
       terminal_status_ = from.terminal_status_;
@@ -1193,6 +1223,8 @@ void Dispatch_terminal_status_msg::InternalSwap(Dispatch_terminal_status_msg* ot
 void Dispatch_request_msg::InitAsDefaultInstance() {
   ::message::_Dispatch_request_msg_default_instance_._instance.get_mutable()->base_info_ = const_cast< ::message::Base_info*>(
       ::message::Base_info::internal_default_instance());
+  ::message::_Dispatch_request_msg_default_instance_._instance.get_mutable()->id_struct_ = const_cast< ::message::Id_struct*>(
+      ::message::Id_struct::internal_default_instance());
   ::message::_Dispatch_request_msg_default_instance_._instance.get_mutable()->locate_information_ = const_cast< ::message::Locate_information*>(
       ::message::Locate_information::internal_default_instance());
 }
@@ -1207,14 +1239,15 @@ class Dispatch_request_msg::_Internal {
     (*has_bits)[0] |= 1u;
   }
   static void set_has_dispatch_motion_direction(HasBits* has_bits) {
-    (*has_bits)[0] |= 8u;
-  }
-  static void set_has_terminal_id(HasBits* has_bits) {
     (*has_bits)[0] |= 16u;
   }
+  static const ::message::Id_struct& id_struct(const Dispatch_request_msg* msg);
+  static void set_has_id_struct(HasBits* has_bits) {
+    (*has_bits)[0] |= 4u;
+  }
   static const ::message::Locate_information& locate_information(const Dispatch_request_msg* msg);
   static void set_has_locate_information(HasBits* has_bits) {
-    (*has_bits)[0] |= 4u;
+    (*has_bits)[0] |= 8u;
   }
   static void set_has_car_type(HasBits* has_bits) {
     (*has_bits)[0] |= 32u;
@@ -1228,6 +1261,10 @@ const ::message::Base_info&
 Dispatch_request_msg::_Internal::base_info(const Dispatch_request_msg* msg) {
   return *msg->base_info_;
 }
+const ::message::Id_struct&
+Dispatch_request_msg::_Internal::id_struct(const Dispatch_request_msg* msg) {
+  return *msg->id_struct_;
+}
 const ::message::Locate_information&
 Dispatch_request_msg::_Internal::locate_information(const Dispatch_request_msg* msg) {
   return *msg->locate_information_;
@@ -1236,9 +1273,13 @@ void Dispatch_request_msg::clear_base_info() {
   if (base_info_ != nullptr) base_info_->Clear();
   _has_bits_[0] &= ~0x00000002u;
 }
+void Dispatch_request_msg::clear_id_struct() {
+  if (id_struct_ != nullptr) id_struct_->Clear();
+  _has_bits_[0] &= ~0x00000004u;
+}
 void Dispatch_request_msg::clear_locate_information() {
   if (locate_information_ != nullptr) locate_information_->Clear();
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
 }
 void Dispatch_request_msg::clear_parkspace_info_ex() {
   parkspace_info_ex_.Clear();
@@ -1265,6 +1306,11 @@ Dispatch_request_msg::Dispatch_request_msg(const Dispatch_request_msg& from)
   } else {
     base_info_ = nullptr;
   }
+  if (from._internal_has_id_struct()) {
+    id_struct_ = new ::message::Id_struct(*from.id_struct_);
+  } else {
+    id_struct_ = nullptr;
+  }
   if (from._internal_has_locate_information()) {
     locate_information_ = new ::message::Locate_information(*from.locate_information_);
   } else {
@@ -1294,6 +1340,7 @@ void Dispatch_request_msg::SharedDtor() {
   GOOGLE_DCHECK(GetArena() == nullptr);
   command_key_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (this != internal_default_instance()) delete base_info_;
+  if (this != internal_default_instance()) delete id_struct_;
   if (this != internal_default_instance()) delete locate_information_;
 }
 
@@ -1320,7 +1367,7 @@ void Dispatch_request_msg::Clear() {
 
   parkspace_info_ex_.Clear();
   cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000007u) {
+  if (cached_has_bits & 0x0000000fu) {
     if (cached_has_bits & 0x00000001u) {
       command_key_.ClearNonDefaultToEmpty();
     }
@@ -1329,11 +1376,15 @@ void Dispatch_request_msg::Clear() {
       base_info_->Clear();
     }
     if (cached_has_bits & 0x00000004u) {
+      GOOGLE_DCHECK(id_struct_ != nullptr);
+      id_struct_->Clear();
+    }
+    if (cached_has_bits & 0x00000008u) {
       GOOGLE_DCHECK(locate_information_ != nullptr);
       locate_information_->Clear();
     }
   }
-  if (cached_has_bits & 0x00000038u) {
+  if (cached_has_bits & 0x00000030u) {
     ::memset(&dispatch_motion_direction_, 0, static_cast<size_t>(
         reinterpret_cast<char*>(&car_type_) -
         reinterpret_cast<char*>(&dispatch_motion_direction_)) + sizeof(car_type_));
@@ -1381,11 +1432,10 @@ const char* Dispatch_request_msg::_InternalParse(const char* ptr, ::PROTOBUF_NAM
           }
         } else goto handle_unusual;
         continue;
-      // optional int32 terminal_id = 4;
+      // optional .message.Id_struct id_struct = 4;
       case 4:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
-          _Internal::set_has_terminal_id(&has_bits);
-          terminal_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
+          ptr = ctx->ParseMessage(_internal_mutable_id_struct(), ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
@@ -1469,20 +1519,22 @@ failure:
   }
 
   // optional .message.Dispatch_motion_direction dispatch_motion_direction = 3;
-  if (cached_has_bits & 0x00000008u) {
+  if (cached_has_bits & 0x00000010u) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
       3, this->_internal_dispatch_motion_direction(), target);
   }
 
-  // optional int32 terminal_id = 4;
-  if (cached_has_bits & 0x00000010u) {
+  // optional .message.Id_struct id_struct = 4;
+  if (cached_has_bits & 0x00000004u) {
     target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_terminal_id(), target);
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(
+        4, _Internal::id_struct(this), target, stream);
   }
 
   // optional .message.Locate_information locate_information = 5;
-  if (cached_has_bits & 0x00000004u) {
+  if (cached_has_bits & 0x00000008u) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
       InternalWriteMessage(
@@ -1563,24 +1615,24 @@ size_t Dispatch_request_msg::ByteSizeLong() const {
 
   cached_has_bits = _has_bits_[0];
   if (cached_has_bits & 0x0000003cu) {
-    // optional .message.Locate_information locate_information = 5;
+    // optional .message.Id_struct id_struct = 4;
     if (cached_has_bits & 0x00000004u) {
       total_size += 1 +
         ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-          *locate_information_);
+          *id_struct_);
     }
 
-    // optional .message.Dispatch_motion_direction dispatch_motion_direction = 3;
+    // optional .message.Locate_information locate_information = 5;
     if (cached_has_bits & 0x00000008u) {
       total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_dispatch_motion_direction());
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+          *locate_information_);
     }
 
-    // optional int32 terminal_id = 4;
+    // optional .message.Dispatch_motion_direction dispatch_motion_direction = 3;
     if (cached_has_bits & 0x00000010u) {
       total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-          this->_internal_terminal_id());
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_dispatch_motion_direction());
     }
 
     // optional .message.Car_type car_type = 7;
@@ -1631,13 +1683,13 @@ void Dispatch_request_msg::MergeFrom(const Dispatch_request_msg& from) {
       _internal_mutable_base_info()->::message::Base_info::MergeFrom(from._internal_base_info());
     }
     if (cached_has_bits & 0x00000004u) {
-      _internal_mutable_locate_information()->::message::Locate_information::MergeFrom(from._internal_locate_information());
+      _internal_mutable_id_struct()->::message::Id_struct::MergeFrom(from._internal_id_struct());
     }
     if (cached_has_bits & 0x00000008u) {
-      dispatch_motion_direction_ = from.dispatch_motion_direction_;
+      _internal_mutable_locate_information()->::message::Locate_information::MergeFrom(from._internal_locate_information());
     }
     if (cached_has_bits & 0x00000010u) {
-      terminal_id_ = from.terminal_id_;
+      dispatch_motion_direction_ = from.dispatch_motion_direction_;
     }
     if (cached_has_bits & 0x00000020u) {
       car_type_ = from.car_type_;
@@ -1692,6 +1744,8 @@ void Dispatch_request_msg::InternalSwap(Dispatch_request_msg* other) {
 void Dispatch_response_msg::InitAsDefaultInstance() {
   ::message::_Dispatch_response_msg_default_instance_._instance.get_mutable()->base_info_ = const_cast< ::message::Base_info*>(
       ::message::Base_info::internal_default_instance());
+  ::message::_Dispatch_response_msg_default_instance_._instance.get_mutable()->id_struct_ = const_cast< ::message::Id_struct*>(
+      ::message::Id_struct::internal_default_instance());
   ::message::_Dispatch_response_msg_default_instance_._instance.get_mutable()->locate_information_ = const_cast< ::message::Locate_information*>(
       ::message::Locate_information::internal_default_instance());
   ::message::_Dispatch_response_msg_default_instance_._instance.get_mutable()->error_manager_ = const_cast< ::message::Error_manager*>(
@@ -1708,21 +1762,22 @@ class Dispatch_response_msg::_Internal {
     (*has_bits)[0] |= 1u;
   }
   static void set_has_dispatch_motion_direction(HasBits* has_bits) {
-    (*has_bits)[0] |= 16u;
-  }
-  static void set_has_terminal_id(HasBits* has_bits) {
     (*has_bits)[0] |= 32u;
   }
+  static const ::message::Id_struct& id_struct(const Dispatch_response_msg* msg);
+  static void set_has_id_struct(HasBits* has_bits) {
+    (*has_bits)[0] |= 4u;
+  }
   static const ::message::Locate_information& locate_information(const Dispatch_response_msg* msg);
   static void set_has_locate_information(HasBits* has_bits) {
-    (*has_bits)[0] |= 4u;
+    (*has_bits)[0] |= 8u;
   }
   static void set_has_car_type(HasBits* has_bits) {
     (*has_bits)[0] |= 64u;
   }
   static const ::message::Error_manager& error_manager(const Dispatch_response_msg* msg);
   static void set_has_error_manager(HasBits* has_bits) {
-    (*has_bits)[0] |= 8u;
+    (*has_bits)[0] |= 16u;
   }
   static bool MissingRequiredFields(const HasBits& has_bits) {
     return ((has_bits[0] & 0x00000003) ^ 0x00000003) != 0;
@@ -1733,6 +1788,10 @@ const ::message::Base_info&
 Dispatch_response_msg::_Internal::base_info(const Dispatch_response_msg* msg) {
   return *msg->base_info_;
 }
+const ::message::Id_struct&
+Dispatch_response_msg::_Internal::id_struct(const Dispatch_response_msg* msg) {
+  return *msg->id_struct_;
+}
 const ::message::Locate_information&
 Dispatch_response_msg::_Internal::locate_information(const Dispatch_response_msg* msg) {
   return *msg->locate_information_;
@@ -1745,16 +1804,20 @@ void Dispatch_response_msg::clear_base_info() {
   if (base_info_ != nullptr) base_info_->Clear();
   _has_bits_[0] &= ~0x00000002u;
 }
+void Dispatch_response_msg::clear_id_struct() {
+  if (id_struct_ != nullptr) id_struct_->Clear();
+  _has_bits_[0] &= ~0x00000004u;
+}
 void Dispatch_response_msg::clear_locate_information() {
   if (locate_information_ != nullptr) locate_information_->Clear();
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
 }
 void Dispatch_response_msg::clear_parkspace_info_ex() {
   parkspace_info_ex_.Clear();
 }
 void Dispatch_response_msg::clear_error_manager() {
   if (error_manager_ != nullptr) error_manager_->Clear();
-  _has_bits_[0] &= ~0x00000008u;
+  _has_bits_[0] &= ~0x00000010u;
 }
 Dispatch_response_msg::Dispatch_response_msg(::PROTOBUF_NAMESPACE_ID::Arena* arena)
   : ::PROTOBUF_NAMESPACE_ID::Message(arena),
@@ -1778,6 +1841,11 @@ Dispatch_response_msg::Dispatch_response_msg(const Dispatch_response_msg& from)
   } else {
     base_info_ = nullptr;
   }
+  if (from._internal_has_id_struct()) {
+    id_struct_ = new ::message::Id_struct(*from.id_struct_);
+  } else {
+    id_struct_ = nullptr;
+  }
   if (from._internal_has_locate_information()) {
     locate_information_ = new ::message::Locate_information(*from.locate_information_);
   } else {
@@ -1812,6 +1880,7 @@ void Dispatch_response_msg::SharedDtor() {
   GOOGLE_DCHECK(GetArena() == nullptr);
   command_key_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (this != internal_default_instance()) delete base_info_;
+  if (this != internal_default_instance()) delete id_struct_;
   if (this != internal_default_instance()) delete locate_information_;
   if (this != internal_default_instance()) delete error_manager_;
 }
@@ -1839,7 +1908,7 @@ void Dispatch_response_msg::Clear() {
 
   parkspace_info_ex_.Clear();
   cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x0000000fu) {
+  if (cached_has_bits & 0x0000001fu) {
     if (cached_has_bits & 0x00000001u) {
       command_key_.ClearNonDefaultToEmpty();
     }
@@ -1848,15 +1917,19 @@ void Dispatch_response_msg::Clear() {
       base_info_->Clear();
     }
     if (cached_has_bits & 0x00000004u) {
+      GOOGLE_DCHECK(id_struct_ != nullptr);
+      id_struct_->Clear();
+    }
+    if (cached_has_bits & 0x00000008u) {
       GOOGLE_DCHECK(locate_information_ != nullptr);
       locate_information_->Clear();
     }
-    if (cached_has_bits & 0x00000008u) {
+    if (cached_has_bits & 0x00000010u) {
       GOOGLE_DCHECK(error_manager_ != nullptr);
       error_manager_->Clear();
     }
   }
-  if (cached_has_bits & 0x00000070u) {
+  if (cached_has_bits & 0x00000060u) {
     ::memset(&dispatch_motion_direction_, 0, static_cast<size_t>(
         reinterpret_cast<char*>(&car_type_) -
         reinterpret_cast<char*>(&dispatch_motion_direction_)) + sizeof(car_type_));
@@ -1904,11 +1977,10 @@ const char* Dispatch_response_msg::_InternalParse(const char* ptr, ::PROTOBUF_NA
           }
         } else goto handle_unusual;
         continue;
-      // optional int32 terminal_id = 4;
+      // optional .message.Id_struct id_struct = 4;
       case 4:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
-          _Internal::set_has_terminal_id(&has_bits);
-          terminal_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
+          ptr = ctx->ParseMessage(_internal_mutable_id_struct(), ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
@@ -1999,20 +2071,22 @@ failure:
   }
 
   // optional .message.Dispatch_motion_direction dispatch_motion_direction = 3;
-  if (cached_has_bits & 0x00000010u) {
+  if (cached_has_bits & 0x00000020u) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
       3, this->_internal_dispatch_motion_direction(), target);
   }
 
-  // optional int32 terminal_id = 4;
-  if (cached_has_bits & 0x00000020u) {
+  // optional .message.Id_struct id_struct = 4;
+  if (cached_has_bits & 0x00000004u) {
     target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_terminal_id(), target);
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(
+        4, _Internal::id_struct(this), target, stream);
   }
 
   // optional .message.Locate_information locate_information = 5;
-  if (cached_has_bits & 0x00000004u) {
+  if (cached_has_bits & 0x00000008u) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
       InternalWriteMessage(
@@ -2035,7 +2109,7 @@ failure:
   }
 
   // optional .message.Error_manager error_manager = 8;
-  if (cached_has_bits & 0x00000008u) {
+  if (cached_has_bits & 0x00000010u) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
       InternalWriteMessage(
@@ -2101,31 +2175,31 @@ size_t Dispatch_response_msg::ByteSizeLong() const {
 
   cached_has_bits = _has_bits_[0];
   if (cached_has_bits & 0x0000007cu) {
-    // optional .message.Locate_information locate_information = 5;
+    // optional .message.Id_struct id_struct = 4;
     if (cached_has_bits & 0x00000004u) {
       total_size += 1 +
         ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-          *locate_information_);
+          *id_struct_);
     }
 
-    // optional .message.Error_manager error_manager = 8;
+    // optional .message.Locate_information locate_information = 5;
     if (cached_has_bits & 0x00000008u) {
       total_size += 1 +
         ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-          *error_manager_);
+          *locate_information_);
     }
 
-    // optional .message.Dispatch_motion_direction dispatch_motion_direction = 3;
+    // optional .message.Error_manager error_manager = 8;
     if (cached_has_bits & 0x00000010u) {
       total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_dispatch_motion_direction());
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+          *error_manager_);
     }
 
-    // optional int32 terminal_id = 4;
+    // optional .message.Dispatch_motion_direction dispatch_motion_direction = 3;
     if (cached_has_bits & 0x00000020u) {
       total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-          this->_internal_terminal_id());
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_dispatch_motion_direction());
     }
 
     // optional .message.Car_type car_type = 7;
@@ -2176,16 +2250,16 @@ void Dispatch_response_msg::MergeFrom(const Dispatch_response_msg& from) {
       _internal_mutable_base_info()->::message::Base_info::MergeFrom(from._internal_base_info());
     }
     if (cached_has_bits & 0x00000004u) {
-      _internal_mutable_locate_information()->::message::Locate_information::MergeFrom(from._internal_locate_information());
+      _internal_mutable_id_struct()->::message::Id_struct::MergeFrom(from._internal_id_struct());
     }
     if (cached_has_bits & 0x00000008u) {
-      _internal_mutable_error_manager()->::message::Error_manager::MergeFrom(from._internal_error_manager());
+      _internal_mutable_locate_information()->::message::Locate_information::MergeFrom(from._internal_locate_information());
     }
     if (cached_has_bits & 0x00000010u) {
-      dispatch_motion_direction_ = from.dispatch_motion_direction_;
+      _internal_mutable_error_manager()->::message::Error_manager::MergeFrom(from._internal_error_manager());
     }
     if (cached_has_bits & 0x00000020u) {
-      terminal_id_ = from.terminal_id_;
+      dispatch_motion_direction_ = from.dispatch_motion_direction_;
     }
     if (cached_has_bits & 0x00000040u) {
       car_type_ = from.car_type_;

+ 293 - 125
message/dispatch_message.pb.h

@@ -593,7 +593,7 @@ class Dispatch_terminal_status_msg PROTOBUF_FINAL :
 
   enum : int {
     kBaseInfoFieldNumber = 1,
-    kTerminalIdFieldNumber = 2,
+    kIdStructFieldNumber = 2,
     kTerminalStatusFieldNumber = 3,
     kPassagewayDirectionFieldNumber = 4,
   };
@@ -615,18 +615,23 @@ class Dispatch_terminal_status_msg PROTOBUF_FINAL :
       ::message::Base_info* base_info);
   ::message::Base_info* unsafe_arena_release_base_info();
 
-  // required int32 terminal_id = 2;
-  bool has_terminal_id() const;
+  // required .message.Id_struct id_struct = 2;
+  bool has_id_struct() const;
   private:
-  bool _internal_has_terminal_id() const;
+  bool _internal_has_id_struct() const;
   public:
-  void clear_terminal_id();
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id() const;
-  void set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
+  void clear_id_struct();
+  const ::message::Id_struct& id_struct() const;
+  ::message::Id_struct* release_id_struct();
+  ::message::Id_struct* mutable_id_struct();
+  void set_allocated_id_struct(::message::Id_struct* id_struct);
   private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_terminal_id() const;
-  void _internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
+  const ::message::Id_struct& _internal_id_struct() const;
+  ::message::Id_struct* _internal_mutable_id_struct();
   public:
+  void unsafe_arena_set_allocated_id_struct(
+      ::message::Id_struct* id_struct);
+  ::message::Id_struct* unsafe_arena_release_id_struct();
 
   // required .message.Terminal_status terminal_status = 3;
   bool has_terminal_status() const;
@@ -667,7 +672,7 @@ class Dispatch_terminal_status_msg PROTOBUF_FINAL :
   ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
   mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   ::message::Base_info* base_info_;
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id_;
+  ::message::Id_struct* id_struct_;
   int terminal_status_;
   int passageway_direction_;
   friend struct ::TableStruct_dispatch_5fmessage_2eproto;
@@ -797,9 +802,9 @@ class Dispatch_request_msg PROTOBUF_FINAL :
     kParkspaceInfoExFieldNumber = 6,
     kCommandKeyFieldNumber = 2,
     kBaseInfoFieldNumber = 1,
+    kIdStructFieldNumber = 4,
     kLocateInformationFieldNumber = 5,
     kDispatchMotionDirectionFieldNumber = 3,
-    kTerminalIdFieldNumber = 4,
     kCarTypeFieldNumber = 7,
   };
   // repeated .message.Parkspace_info parkspace_info_ex = 6;
@@ -858,6 +863,24 @@ class Dispatch_request_msg PROTOBUF_FINAL :
       ::message::Base_info* base_info);
   ::message::Base_info* unsafe_arena_release_base_info();
 
+  // optional .message.Id_struct id_struct = 4;
+  bool has_id_struct() const;
+  private:
+  bool _internal_has_id_struct() const;
+  public:
+  void clear_id_struct();
+  const ::message::Id_struct& id_struct() const;
+  ::message::Id_struct* release_id_struct();
+  ::message::Id_struct* mutable_id_struct();
+  void set_allocated_id_struct(::message::Id_struct* id_struct);
+  private:
+  const ::message::Id_struct& _internal_id_struct() const;
+  ::message::Id_struct* _internal_mutable_id_struct();
+  public:
+  void unsafe_arena_set_allocated_id_struct(
+      ::message::Id_struct* id_struct);
+  ::message::Id_struct* unsafe_arena_release_id_struct();
+
   // optional .message.Locate_information locate_information = 5;
   bool has_locate_information() const;
   private:
@@ -889,19 +912,6 @@ class Dispatch_request_msg PROTOBUF_FINAL :
   void _internal_set_dispatch_motion_direction(::message::Dispatch_motion_direction value);
   public:
 
-  // optional int32 terminal_id = 4;
-  bool has_terminal_id() const;
-  private:
-  bool _internal_has_terminal_id() const;
-  public:
-  void clear_terminal_id();
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id() const;
-  void set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_terminal_id() const;
-  void _internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
-
   // optional .message.Car_type car_type = 7;
   bool has_car_type() const;
   private:
@@ -930,9 +940,9 @@ class Dispatch_request_msg PROTOBUF_FINAL :
   ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::message::Parkspace_info > parkspace_info_ex_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr command_key_;
   ::message::Base_info* base_info_;
+  ::message::Id_struct* id_struct_;
   ::message::Locate_information* locate_information_;
   int dispatch_motion_direction_;
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id_;
   int car_type_;
   friend struct ::TableStruct_dispatch_5fmessage_2eproto;
 };
@@ -1061,10 +1071,10 @@ class Dispatch_response_msg PROTOBUF_FINAL :
     kParkspaceInfoExFieldNumber = 6,
     kCommandKeyFieldNumber = 2,
     kBaseInfoFieldNumber = 1,
+    kIdStructFieldNumber = 4,
     kLocateInformationFieldNumber = 5,
     kErrorManagerFieldNumber = 8,
     kDispatchMotionDirectionFieldNumber = 3,
-    kTerminalIdFieldNumber = 4,
     kCarTypeFieldNumber = 7,
   };
   // repeated .message.Parkspace_info parkspace_info_ex = 6;
@@ -1123,6 +1133,24 @@ class Dispatch_response_msg PROTOBUF_FINAL :
       ::message::Base_info* base_info);
   ::message::Base_info* unsafe_arena_release_base_info();
 
+  // optional .message.Id_struct id_struct = 4;
+  bool has_id_struct() const;
+  private:
+  bool _internal_has_id_struct() const;
+  public:
+  void clear_id_struct();
+  const ::message::Id_struct& id_struct() const;
+  ::message::Id_struct* release_id_struct();
+  ::message::Id_struct* mutable_id_struct();
+  void set_allocated_id_struct(::message::Id_struct* id_struct);
+  private:
+  const ::message::Id_struct& _internal_id_struct() const;
+  ::message::Id_struct* _internal_mutable_id_struct();
+  public:
+  void unsafe_arena_set_allocated_id_struct(
+      ::message::Id_struct* id_struct);
+  ::message::Id_struct* unsafe_arena_release_id_struct();
+
   // optional .message.Locate_information locate_information = 5;
   bool has_locate_information() const;
   private:
@@ -1172,19 +1200,6 @@ class Dispatch_response_msg PROTOBUF_FINAL :
   void _internal_set_dispatch_motion_direction(::message::Dispatch_motion_direction value);
   public:
 
-  // optional int32 terminal_id = 4;
-  bool has_terminal_id() const;
-  private:
-  bool _internal_has_terminal_id() const;
-  public:
-  void clear_terminal_id();
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id() const;
-  void set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_terminal_id() const;
-  void _internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
-
   // optional .message.Car_type car_type = 7;
   bool has_car_type() const;
   private:
@@ -1213,10 +1228,10 @@ class Dispatch_response_msg PROTOBUF_FINAL :
   ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::message::Parkspace_info > parkspace_info_ex_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr command_key_;
   ::message::Base_info* base_info_;
+  ::message::Id_struct* id_struct_;
   ::message::Locate_information* locate_information_;
   ::message::Error_manager* error_manager_;
   int dispatch_motion_direction_;
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id_;
   int car_type_;
   friend struct ::TableStruct_dispatch_5fmessage_2eproto;
 };
@@ -2987,32 +3002,83 @@ inline void Dispatch_terminal_status_msg::set_allocated_base_info(::message::Bas
   // @@protoc_insertion_point(field_set_allocated:message.Dispatch_terminal_status_msg.base_info)
 }
 
-// required int32 terminal_id = 2;
-inline bool Dispatch_terminal_status_msg::_internal_has_terminal_id() const {
+// required .message.Id_struct id_struct = 2;
+inline bool Dispatch_terminal_status_msg::_internal_has_id_struct() const {
   bool value = (_has_bits_[0] & 0x00000002u) != 0;
+  PROTOBUF_ASSUME(!value || id_struct_ != nullptr);
   return value;
 }
-inline bool Dispatch_terminal_status_msg::has_terminal_id() const {
-  return _internal_has_terminal_id();
+inline bool Dispatch_terminal_status_msg::has_id_struct() const {
+  return _internal_has_id_struct();
 }
-inline void Dispatch_terminal_status_msg::clear_terminal_id() {
-  terminal_id_ = 0;
-  _has_bits_[0] &= ~0x00000002u;
+inline const ::message::Id_struct& Dispatch_terminal_status_msg::_internal_id_struct() const {
+  const ::message::Id_struct* p = id_struct_;
+  return p != nullptr ? *p : *reinterpret_cast<const ::message::Id_struct*>(
+      &::message::_Id_struct_default_instance_);
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Dispatch_terminal_status_msg::_internal_terminal_id() const {
-  return terminal_id_;
+inline const ::message::Id_struct& Dispatch_terminal_status_msg::id_struct() const {
+  // @@protoc_insertion_point(field_get:message.Dispatch_terminal_status_msg.id_struct)
+  return _internal_id_struct();
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Dispatch_terminal_status_msg::terminal_id() const {
-  // @@protoc_insertion_point(field_get:message.Dispatch_terminal_status_msg.terminal_id)
-  return _internal_terminal_id();
+inline void Dispatch_terminal_status_msg::unsafe_arena_set_allocated_id_struct(
+    ::message::Id_struct* id_struct) {
+  if (GetArena() == nullptr) {
+    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  id_struct_ = id_struct;
+  if (id_struct) {
+    _has_bits_[0] |= 0x00000002u;
+  } else {
+    _has_bits_[0] &= ~0x00000002u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Dispatch_terminal_status_msg.id_struct)
 }
-inline void Dispatch_terminal_status_msg::_internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
+inline ::message::Id_struct* Dispatch_terminal_status_msg::release_id_struct() {
+  _has_bits_[0] &= ~0x00000002u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  if (GetArena() != nullptr) {
+    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  }
+  return temp;
+}
+inline ::message::Id_struct* Dispatch_terminal_status_msg::unsafe_arena_release_id_struct() {
+  // @@protoc_insertion_point(field_release:message.Dispatch_terminal_status_msg.id_struct)
+  _has_bits_[0] &= ~0x00000002u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  return temp;
+}
+inline ::message::Id_struct* Dispatch_terminal_status_msg::_internal_mutable_id_struct() {
   _has_bits_[0] |= 0x00000002u;
-  terminal_id_ = value;
+  if (id_struct_ == nullptr) {
+    auto* p = CreateMaybeMessage<::message::Id_struct>(GetArena());
+    id_struct_ = p;
+  }
+  return id_struct_;
 }
-inline void Dispatch_terminal_status_msg::set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _internal_set_terminal_id(value);
-  // @@protoc_insertion_point(field_set:message.Dispatch_terminal_status_msg.terminal_id)
+inline ::message::Id_struct* Dispatch_terminal_status_msg::mutable_id_struct() {
+  // @@protoc_insertion_point(field_mutable:message.Dispatch_terminal_status_msg.id_struct)
+  return _internal_mutable_id_struct();
+}
+inline void Dispatch_terminal_status_msg::set_allocated_id_struct(::message::Id_struct* id_struct) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
+  if (message_arena == nullptr) {
+    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  if (id_struct) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct)->GetArena();
+    if (message_arena != submessage_arena) {
+      id_struct = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, id_struct, submessage_arena);
+    }
+    _has_bits_[0] |= 0x00000002u;
+  } else {
+    _has_bits_[0] &= ~0x00000002u;
+  }
+  id_struct_ = id_struct;
+  // @@protoc_insertion_point(field_set_allocated:message.Dispatch_terminal_status_msg.id_struct)
 }
 
 // required .message.Terminal_status terminal_status = 3;
@@ -3232,7 +3298,7 @@ inline void Dispatch_request_msg::set_allocated_command_key(std::string* command
 
 // optional .message.Dispatch_motion_direction dispatch_motion_direction = 3;
 inline bool Dispatch_request_msg::_internal_has_dispatch_motion_direction() const {
-  bool value = (_has_bits_[0] & 0x00000008u) != 0;
+  bool value = (_has_bits_[0] & 0x00000010u) != 0;
   return value;
 }
 inline bool Dispatch_request_msg::has_dispatch_motion_direction() const {
@@ -3240,7 +3306,7 @@ inline bool Dispatch_request_msg::has_dispatch_motion_direction() const {
 }
 inline void Dispatch_request_msg::clear_dispatch_motion_direction() {
   dispatch_motion_direction_ = 0;
-  _has_bits_[0] &= ~0x00000008u;
+  _has_bits_[0] &= ~0x00000010u;
 }
 inline ::message::Dispatch_motion_direction Dispatch_request_msg::_internal_dispatch_motion_direction() const {
   return static_cast< ::message::Dispatch_motion_direction >(dispatch_motion_direction_);
@@ -3251,7 +3317,7 @@ inline ::message::Dispatch_motion_direction Dispatch_request_msg::dispatch_motio
 }
 inline void Dispatch_request_msg::_internal_set_dispatch_motion_direction(::message::Dispatch_motion_direction value) {
   assert(::message::Dispatch_motion_direction_IsValid(value));
-  _has_bits_[0] |= 0x00000008u;
+  _has_bits_[0] |= 0x00000010u;
   dispatch_motion_direction_ = value;
 }
 inline void Dispatch_request_msg::set_dispatch_motion_direction(::message::Dispatch_motion_direction value) {
@@ -3259,37 +3325,88 @@ inline void Dispatch_request_msg::set_dispatch_motion_direction(::message::Dispa
   // @@protoc_insertion_point(field_set:message.Dispatch_request_msg.dispatch_motion_direction)
 }
 
-// optional int32 terminal_id = 4;
-inline bool Dispatch_request_msg::_internal_has_terminal_id() const {
-  bool value = (_has_bits_[0] & 0x00000010u) != 0;
+// optional .message.Id_struct id_struct = 4;
+inline bool Dispatch_request_msg::_internal_has_id_struct() const {
+  bool value = (_has_bits_[0] & 0x00000004u) != 0;
+  PROTOBUF_ASSUME(!value || id_struct_ != nullptr);
   return value;
 }
-inline bool Dispatch_request_msg::has_terminal_id() const {
-  return _internal_has_terminal_id();
+inline bool Dispatch_request_msg::has_id_struct() const {
+  return _internal_has_id_struct();
 }
-inline void Dispatch_request_msg::clear_terminal_id() {
-  terminal_id_ = 0;
-  _has_bits_[0] &= ~0x00000010u;
+inline const ::message::Id_struct& Dispatch_request_msg::_internal_id_struct() const {
+  const ::message::Id_struct* p = id_struct_;
+  return p != nullptr ? *p : *reinterpret_cast<const ::message::Id_struct*>(
+      &::message::_Id_struct_default_instance_);
+}
+inline const ::message::Id_struct& Dispatch_request_msg::id_struct() const {
+  // @@protoc_insertion_point(field_get:message.Dispatch_request_msg.id_struct)
+  return _internal_id_struct();
+}
+inline void Dispatch_request_msg::unsafe_arena_set_allocated_id_struct(
+    ::message::Id_struct* id_struct) {
+  if (GetArena() == nullptr) {
+    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  id_struct_ = id_struct;
+  if (id_struct) {
+    _has_bits_[0] |= 0x00000004u;
+  } else {
+    _has_bits_[0] &= ~0x00000004u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Dispatch_request_msg.id_struct)
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Dispatch_request_msg::_internal_terminal_id() const {
-  return terminal_id_;
+inline ::message::Id_struct* Dispatch_request_msg::release_id_struct() {
+  _has_bits_[0] &= ~0x00000004u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  if (GetArena() != nullptr) {
+    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  }
+  return temp;
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Dispatch_request_msg::terminal_id() const {
-  // @@protoc_insertion_point(field_get:message.Dispatch_request_msg.terminal_id)
-  return _internal_terminal_id();
+inline ::message::Id_struct* Dispatch_request_msg::unsafe_arena_release_id_struct() {
+  // @@protoc_insertion_point(field_release:message.Dispatch_request_msg.id_struct)
+  _has_bits_[0] &= ~0x00000004u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  return temp;
 }
-inline void Dispatch_request_msg::_internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _has_bits_[0] |= 0x00000010u;
-  terminal_id_ = value;
+inline ::message::Id_struct* Dispatch_request_msg::_internal_mutable_id_struct() {
+  _has_bits_[0] |= 0x00000004u;
+  if (id_struct_ == nullptr) {
+    auto* p = CreateMaybeMessage<::message::Id_struct>(GetArena());
+    id_struct_ = p;
+  }
+  return id_struct_;
+}
+inline ::message::Id_struct* Dispatch_request_msg::mutable_id_struct() {
+  // @@protoc_insertion_point(field_mutable:message.Dispatch_request_msg.id_struct)
+  return _internal_mutable_id_struct();
 }
-inline void Dispatch_request_msg::set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _internal_set_terminal_id(value);
-  // @@protoc_insertion_point(field_set:message.Dispatch_request_msg.terminal_id)
+inline void Dispatch_request_msg::set_allocated_id_struct(::message::Id_struct* id_struct) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
+  if (message_arena == nullptr) {
+    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  if (id_struct) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct)->GetArena();
+    if (message_arena != submessage_arena) {
+      id_struct = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, id_struct, submessage_arena);
+    }
+    _has_bits_[0] |= 0x00000004u;
+  } else {
+    _has_bits_[0] &= ~0x00000004u;
+  }
+  id_struct_ = id_struct;
+  // @@protoc_insertion_point(field_set_allocated:message.Dispatch_request_msg.id_struct)
 }
 
 // optional .message.Locate_information locate_information = 5;
 inline bool Dispatch_request_msg::_internal_has_locate_information() const {
-  bool value = (_has_bits_[0] & 0x00000004u) != 0;
+  bool value = (_has_bits_[0] & 0x00000008u) != 0;
   PROTOBUF_ASSUME(!value || locate_information_ != nullptr);
   return value;
 }
@@ -3312,14 +3429,14 @@ inline void Dispatch_request_msg::unsafe_arena_set_allocated_locate_information(
   }
   locate_information_ = locate_information;
   if (locate_information) {
-    _has_bits_[0] |= 0x00000004u;
+    _has_bits_[0] |= 0x00000008u;
   } else {
-    _has_bits_[0] &= ~0x00000004u;
+    _has_bits_[0] &= ~0x00000008u;
   }
   // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Dispatch_request_msg.locate_information)
 }
 inline ::message::Locate_information* Dispatch_request_msg::release_locate_information() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
   ::message::Locate_information* temp = locate_information_;
   locate_information_ = nullptr;
   if (GetArena() != nullptr) {
@@ -3329,13 +3446,13 @@ inline ::message::Locate_information* Dispatch_request_msg::release_locate_infor
 }
 inline ::message::Locate_information* Dispatch_request_msg::unsafe_arena_release_locate_information() {
   // @@protoc_insertion_point(field_release:message.Dispatch_request_msg.locate_information)
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
   ::message::Locate_information* temp = locate_information_;
   locate_information_ = nullptr;
   return temp;
 }
 inline ::message::Locate_information* Dispatch_request_msg::_internal_mutable_locate_information() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000008u;
   if (locate_information_ == nullptr) {
     auto* p = CreateMaybeMessage<::message::Locate_information>(GetArena());
     locate_information_ = p;
@@ -3358,9 +3475,9 @@ inline void Dispatch_request_msg::set_allocated_locate_information(::message::Lo
       locate_information = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
           message_arena, locate_information, submessage_arena);
     }
-    _has_bits_[0] |= 0x00000004u;
+    _has_bits_[0] |= 0x00000008u;
   } else {
-    _has_bits_[0] &= ~0x00000004u;
+    _has_bits_[0] &= ~0x00000008u;
   }
   locate_information_ = locate_information;
   // @@protoc_insertion_point(field_set_allocated:message.Dispatch_request_msg.locate_information)
@@ -3590,7 +3707,7 @@ inline void Dispatch_response_msg::set_allocated_command_key(std::string* comman
 
 // optional .message.Dispatch_motion_direction dispatch_motion_direction = 3;
 inline bool Dispatch_response_msg::_internal_has_dispatch_motion_direction() const {
-  bool value = (_has_bits_[0] & 0x00000010u) != 0;
+  bool value = (_has_bits_[0] & 0x00000020u) != 0;
   return value;
 }
 inline bool Dispatch_response_msg::has_dispatch_motion_direction() const {
@@ -3598,7 +3715,7 @@ inline bool Dispatch_response_msg::has_dispatch_motion_direction() const {
 }
 inline void Dispatch_response_msg::clear_dispatch_motion_direction() {
   dispatch_motion_direction_ = 0;
-  _has_bits_[0] &= ~0x00000010u;
+  _has_bits_[0] &= ~0x00000020u;
 }
 inline ::message::Dispatch_motion_direction Dispatch_response_msg::_internal_dispatch_motion_direction() const {
   return static_cast< ::message::Dispatch_motion_direction >(dispatch_motion_direction_);
@@ -3609,7 +3726,7 @@ inline ::message::Dispatch_motion_direction Dispatch_response_msg::dispatch_moti
 }
 inline void Dispatch_response_msg::_internal_set_dispatch_motion_direction(::message::Dispatch_motion_direction value) {
   assert(::message::Dispatch_motion_direction_IsValid(value));
-  _has_bits_[0] |= 0x00000010u;
+  _has_bits_[0] |= 0x00000020u;
   dispatch_motion_direction_ = value;
 }
 inline void Dispatch_response_msg::set_dispatch_motion_direction(::message::Dispatch_motion_direction value) {
@@ -3617,37 +3734,88 @@ inline void Dispatch_response_msg::set_dispatch_motion_direction(::message::Disp
   // @@protoc_insertion_point(field_set:message.Dispatch_response_msg.dispatch_motion_direction)
 }
 
-// optional int32 terminal_id = 4;
-inline bool Dispatch_response_msg::_internal_has_terminal_id() const {
-  bool value = (_has_bits_[0] & 0x00000020u) != 0;
+// optional .message.Id_struct id_struct = 4;
+inline bool Dispatch_response_msg::_internal_has_id_struct() const {
+  bool value = (_has_bits_[0] & 0x00000004u) != 0;
+  PROTOBUF_ASSUME(!value || id_struct_ != nullptr);
   return value;
 }
-inline bool Dispatch_response_msg::has_terminal_id() const {
-  return _internal_has_terminal_id();
+inline bool Dispatch_response_msg::has_id_struct() const {
+  return _internal_has_id_struct();
 }
-inline void Dispatch_response_msg::clear_terminal_id() {
-  terminal_id_ = 0;
-  _has_bits_[0] &= ~0x00000020u;
+inline const ::message::Id_struct& Dispatch_response_msg::_internal_id_struct() const {
+  const ::message::Id_struct* p = id_struct_;
+  return p != nullptr ? *p : *reinterpret_cast<const ::message::Id_struct*>(
+      &::message::_Id_struct_default_instance_);
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Dispatch_response_msg::_internal_terminal_id() const {
-  return terminal_id_;
+inline const ::message::Id_struct& Dispatch_response_msg::id_struct() const {
+  // @@protoc_insertion_point(field_get:message.Dispatch_response_msg.id_struct)
+  return _internal_id_struct();
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Dispatch_response_msg::terminal_id() const {
-  // @@protoc_insertion_point(field_get:message.Dispatch_response_msg.terminal_id)
-  return _internal_terminal_id();
+inline void Dispatch_response_msg::unsafe_arena_set_allocated_id_struct(
+    ::message::Id_struct* id_struct) {
+  if (GetArena() == nullptr) {
+    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  id_struct_ = id_struct;
+  if (id_struct) {
+    _has_bits_[0] |= 0x00000004u;
+  } else {
+    _has_bits_[0] &= ~0x00000004u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Dispatch_response_msg.id_struct)
 }
-inline void Dispatch_response_msg::_internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _has_bits_[0] |= 0x00000020u;
-  terminal_id_ = value;
+inline ::message::Id_struct* Dispatch_response_msg::release_id_struct() {
+  _has_bits_[0] &= ~0x00000004u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  if (GetArena() != nullptr) {
+    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  }
+  return temp;
+}
+inline ::message::Id_struct* Dispatch_response_msg::unsafe_arena_release_id_struct() {
+  // @@protoc_insertion_point(field_release:message.Dispatch_response_msg.id_struct)
+  _has_bits_[0] &= ~0x00000004u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  return temp;
 }
-inline void Dispatch_response_msg::set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _internal_set_terminal_id(value);
-  // @@protoc_insertion_point(field_set:message.Dispatch_response_msg.terminal_id)
+inline ::message::Id_struct* Dispatch_response_msg::_internal_mutable_id_struct() {
+  _has_bits_[0] |= 0x00000004u;
+  if (id_struct_ == nullptr) {
+    auto* p = CreateMaybeMessage<::message::Id_struct>(GetArena());
+    id_struct_ = p;
+  }
+  return id_struct_;
+}
+inline ::message::Id_struct* Dispatch_response_msg::mutable_id_struct() {
+  // @@protoc_insertion_point(field_mutable:message.Dispatch_response_msg.id_struct)
+  return _internal_mutable_id_struct();
+}
+inline void Dispatch_response_msg::set_allocated_id_struct(::message::Id_struct* id_struct) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
+  if (message_arena == nullptr) {
+    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  if (id_struct) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct)->GetArena();
+    if (message_arena != submessage_arena) {
+      id_struct = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, id_struct, submessage_arena);
+    }
+    _has_bits_[0] |= 0x00000004u;
+  } else {
+    _has_bits_[0] &= ~0x00000004u;
+  }
+  id_struct_ = id_struct;
+  // @@protoc_insertion_point(field_set_allocated:message.Dispatch_response_msg.id_struct)
 }
 
 // optional .message.Locate_information locate_information = 5;
 inline bool Dispatch_response_msg::_internal_has_locate_information() const {
-  bool value = (_has_bits_[0] & 0x00000004u) != 0;
+  bool value = (_has_bits_[0] & 0x00000008u) != 0;
   PROTOBUF_ASSUME(!value || locate_information_ != nullptr);
   return value;
 }
@@ -3670,14 +3838,14 @@ inline void Dispatch_response_msg::unsafe_arena_set_allocated_locate_information
   }
   locate_information_ = locate_information;
   if (locate_information) {
-    _has_bits_[0] |= 0x00000004u;
+    _has_bits_[0] |= 0x00000008u;
   } else {
-    _has_bits_[0] &= ~0x00000004u;
+    _has_bits_[0] &= ~0x00000008u;
   }
   // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Dispatch_response_msg.locate_information)
 }
 inline ::message::Locate_information* Dispatch_response_msg::release_locate_information() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
   ::message::Locate_information* temp = locate_information_;
   locate_information_ = nullptr;
   if (GetArena() != nullptr) {
@@ -3687,13 +3855,13 @@ inline ::message::Locate_information* Dispatch_response_msg::release_locate_info
 }
 inline ::message::Locate_information* Dispatch_response_msg::unsafe_arena_release_locate_information() {
   // @@protoc_insertion_point(field_release:message.Dispatch_response_msg.locate_information)
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
   ::message::Locate_information* temp = locate_information_;
   locate_information_ = nullptr;
   return temp;
 }
 inline ::message::Locate_information* Dispatch_response_msg::_internal_mutable_locate_information() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000008u;
   if (locate_information_ == nullptr) {
     auto* p = CreateMaybeMessage<::message::Locate_information>(GetArena());
     locate_information_ = p;
@@ -3716,9 +3884,9 @@ inline void Dispatch_response_msg::set_allocated_locate_information(::message::L
       locate_information = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
           message_arena, locate_information, submessage_arena);
     }
-    _has_bits_[0] |= 0x00000004u;
+    _has_bits_[0] |= 0x00000008u;
   } else {
-    _has_bits_[0] &= ~0x00000004u;
+    _has_bits_[0] &= ~0x00000008u;
   }
   locate_information_ = locate_information;
   // @@protoc_insertion_point(field_set_allocated:message.Dispatch_response_msg.locate_information)
@@ -3791,7 +3959,7 @@ inline void Dispatch_response_msg::set_car_type(::message::Car_type value) {
 
 // optional .message.Error_manager error_manager = 8;
 inline bool Dispatch_response_msg::_internal_has_error_manager() const {
-  bool value = (_has_bits_[0] & 0x00000008u) != 0;
+  bool value = (_has_bits_[0] & 0x00000010u) != 0;
   PROTOBUF_ASSUME(!value || error_manager_ != nullptr);
   return value;
 }
@@ -3814,14 +3982,14 @@ inline void Dispatch_response_msg::unsafe_arena_set_allocated_error_manager(
   }
   error_manager_ = error_manager;
   if (error_manager) {
-    _has_bits_[0] |= 0x00000008u;
+    _has_bits_[0] |= 0x00000010u;
   } else {
-    _has_bits_[0] &= ~0x00000008u;
+    _has_bits_[0] &= ~0x00000010u;
   }
   // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Dispatch_response_msg.error_manager)
 }
 inline ::message::Error_manager* Dispatch_response_msg::release_error_manager() {
-  _has_bits_[0] &= ~0x00000008u;
+  _has_bits_[0] &= ~0x00000010u;
   ::message::Error_manager* temp = error_manager_;
   error_manager_ = nullptr;
   if (GetArena() != nullptr) {
@@ -3831,13 +3999,13 @@ inline ::message::Error_manager* Dispatch_response_msg::release_error_manager()
 }
 inline ::message::Error_manager* Dispatch_response_msg::unsafe_arena_release_error_manager() {
   // @@protoc_insertion_point(field_release:message.Dispatch_response_msg.error_manager)
-  _has_bits_[0] &= ~0x00000008u;
+  _has_bits_[0] &= ~0x00000010u;
   ::message::Error_manager* temp = error_manager_;
   error_manager_ = nullptr;
   return temp;
 }
 inline ::message::Error_manager* Dispatch_response_msg::_internal_mutable_error_manager() {
-  _has_bits_[0] |= 0x00000008u;
+  _has_bits_[0] |= 0x00000010u;
   if (error_manager_ == nullptr) {
     auto* p = CreateMaybeMessage<::message::Error_manager>(GetArena());
     error_manager_ = p;
@@ -3860,9 +4028,9 @@ inline void Dispatch_response_msg::set_allocated_error_manager(::message::Error_
       error_manager = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
           message_arena, error_manager, submessage_arena);
     }
-    _has_bits_[0] |= 0x00000008u;
+    _has_bits_[0] |= 0x00000010u;
   } else {
-    _has_bits_[0] &= ~0x00000008u;
+    _has_bits_[0] &= ~0x00000010u;
   }
   error_manager_ = error_manager;
   // @@protoc_insertion_point(field_set_allocated:message.Dispatch_response_msg.error_manager)

+ 3 - 3
message/dispatch_message.proto

@@ -27,7 +27,7 @@ enum Passageway_direction
 message Dispatch_terminal_status_msg
 {
     required Base_info                  base_info=1;                    //消息类型
-    required int32                      terminal_id=2;                  //终端id
+    required Id_struct                      id_struct=2;                  //终端id
     required Terminal_status            terminal_status = 3;            //终端流程状态, 表示这个出入口到楼上停车位之间的所有设备总状态
     required Passageway_direction       passageway_direction = 4;       //通道口属性, 出入口的方向属性, 表示这个通道允许停车或者取车
 }
@@ -48,7 +48,7 @@ message Dispatch_request_msg
     required string                     command_key=2;                   //指令唯一标识符id
 
     optional Dispatch_motion_direction  dispatch_motion_direction=3;            //调度方向, 停车取车
-    optional int32                      terminal_id=4;                          //终端id, 出入口
+    optional Id_struct                      id_struct=4;                          //终端id, 出入口
     optional Locate_information         locate_information=5;                   //汽车测量信息, 只有停车时有数据, 取车时没有数据.
 
     repeated Parkspace_info             parkspace_info_ex=6;                         //车位编号, 停车位(B方案, 分配3个停车位)
@@ -63,7 +63,7 @@ message Dispatch_response_msg
 
 
     optional Dispatch_motion_direction  dispatch_motion_direction=3;            //调度方向, 停车取车
-    optional int32                      terminal_id=4;                          //终端id, 出入口
+    optional Id_struct                      id_struct=4;                          //终端id, 出入口
     optional Locate_information         locate_information=5;                   //汽车测量信息, 只有停车时有数据, 取车时没有数据.
 
     repeated Parkspace_info             parkspace_info_ex=6;                         //车位编号, 停车位(B方案, 分配3个停车位)

+ 5 - 5
message/log_process.pb.cc

@@ -14,14 +14,14 @@
 #include <google/protobuf/wire_format.h>
 // @@protoc_insertion_point(includes)
 #include <google/protobuf/port_def.inc>
-extern PROTOBUF_INTERNAL_EXPORT_dispatch_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Dispatch_request_msg_dispatch_5fmessage_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_dispatch_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<4> scc_info_Dispatch_response_msg_dispatch_5fmessage_2eproto;
+extern PROTOBUF_INTERNAL_EXPORT_dispatch_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<4> scc_info_Dispatch_request_msg_dispatch_5fmessage_2eproto;
+extern PROTOBUF_INTERNAL_EXPORT_dispatch_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<5> scc_info_Dispatch_response_msg_dispatch_5fmessage_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_log_5fprocess_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Log_data_log_5fprocess_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_log_5fprocess_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Manual_operation_log_log_5fprocess_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_measure_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Measure_request_msg_measure_5fmessage_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_measure_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Measure_response_msg_measure_5fmessage_2eproto;
+extern PROTOBUF_INTERNAL_EXPORT_measure_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Measure_request_msg_measure_5fmessage_2eproto;
+extern PROTOBUF_INTERNAL_EXPORT_measure_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<4> scc_info_Measure_response_msg_measure_5fmessage_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_log_5fprocess_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<12> scc_info_Node_log_log_5fprocess_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_parkspace_5fallocation_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Parkspace_allocation_request_msg_parkspace_5fallocation_5fmessage_2eproto;
+extern PROTOBUF_INTERNAL_EXPORT_parkspace_5fallocation_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Parkspace_allocation_request_msg_parkspace_5fallocation_5fmessage_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_parkspace_5fallocation_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Parkspace_allocation_response_msg_parkspace_5fallocation_5fmessage_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_parkspace_5fallocation_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Parkspace_confirm_alloc_request_msg_parkspace_5fallocation_5fmessage_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_parkspace_5fallocation_5fmessage_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Parkspace_confirm_alloc_response_msg_parkspace_5fallocation_5fmessage_2eproto;

文件差异内容过多而无法显示
+ 539 - 375
message/measure_message.pb.cc


文件差异内容过多而无法显示
+ 766 - 318
message/measure_message.pb.h


+ 8 - 8
message/measure_message.proto

@@ -75,7 +75,7 @@ enum Region_worker_status
 message Measure_status_msg
 {
     required Base_info                  base_info=1;                 //消息类型
-    required int32                      terminal_id=2;
+    required Id_struct                      id_struct=2;
 
     required Laser_manager_status       laser_manager_status = 3;       //大疆管理状态
     repeated Laser_statu                laser_statu_vector = 4;         //大疆雷达设备状态
@@ -95,7 +95,7 @@ message Measure_request_msg
 {
     required Base_info                  base_info=1;        //消息类型
     required string                     command_key=2;                   //指令唯一标识符id
-    required int32                      terminal_id=3;          //终端id
+    required Id_struct                      id_struct=3;          //终端id
 }
 
 //定位测量返回消息
@@ -103,7 +103,7 @@ message Measure_response_msg
 {
     required Base_info                  base_info=1;                         //消息类型
     required string                     command_key=2;                   //指令唯一标识符id
-    required int32                      terminal_id=3;
+    required Id_struct                      id_struct=3;
 
     optional Locate_information         locate_information=4;
     required Error_manager              error_manager = 5;
@@ -114,7 +114,7 @@ message Ground_detect_request_msg
 {
     required Base_info                  base_info=1;        //消息类型
     required string                     command_key=2;                   //指令唯一标识符id
-    required int32                      terminal_id=3;          //终端id
+    required Id_struct                      id_struct=3;          //终端id
 }
 
 //地面测量反馈消息
@@ -122,7 +122,7 @@ message Ground_detect_response_msg
 {
     required Base_info                  base_info=1;                     //消息类型
     required string                     command_key=2;                   //指令唯一标识符id
-    required int32                      terminal_id=3;
+    required Id_struct                      id_struct=3;
 
     optional Locate_information         locate_information=4;
     required Error_manager              error_manager = 5;
@@ -143,7 +143,7 @@ enum Ground_statu
 message Ground_status_msg
 {
     required Base_info                  base_info=1;                 //消息类型
-    required int32                      terminal_id=2;
+    required Id_struct                      id_struct=2;
 
     required Wanji_manager_status       wanji_manager_status = 3;       //万集管理状态
     repeated Wanji_lidar_device_status  wanji_lidar_device_status = 4;  //万集设备身状态
@@ -172,7 +172,7 @@ message Locate_sift_request_msg
 {
     required Base_info                  base_info=1;            //消息类型
     required string                     command_key=2;          //指令唯一标识符id
-    required int32                      terminal_id=3;          //终端id
+    required Id_struct                      id_struct=3;          //终端id
     required int32                      lidar_id=4;             //雷达id
     repeated Cloud_coordinate           cloud_coordinates=5;     //点云坐标
 }
@@ -182,7 +182,7 @@ message Locate_sift_response_msg
 {
     required Base_info                  base_info=1;            //消息类型
     required string                     command_key=2;          //指令唯一标识符id
-    required int32                      terminal_id=3;          //终端id
+    required Id_struct                      id_struct=3;          //终端id
     required int32                      lidar_id=4;             //雷达id
     repeated Cloud_type                 cloud_type=5;            //点云类型
     required Error_manager              error_manager = 6;      //错误码

+ 407 - 117
message/message_base.pb.cc

@@ -29,6 +29,10 @@ class Error_managerDefaultTypeInternal {
  public:
   ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Error_manager> _instance;
 } _Error_manager_default_instance_;
+class Id_structDefaultTypeInternal {
+ public:
+  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Id_struct> _instance;
+} _Id_struct_default_instance_;
 class Locate_informationDefaultTypeInternal {
  public:
   ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Locate_information> _instance;
@@ -99,6 +103,20 @@ static void InitDefaultsscc_info_Error_manager_message_5fbase_2eproto() {
 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Error_manager_message_5fbase_2eproto =
     {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_Error_manager_message_5fbase_2eproto}, {}};
 
+static void InitDefaultsscc_info_Id_struct_message_5fbase_2eproto() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  {
+    void* ptr = &::message::_Id_struct_default_instance_;
+    new (ptr) ::message::Id_struct();
+    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::message::Id_struct::InitAsDefaultInstance();
+}
+
+::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Id_struct_message_5fbase_2eproto =
+    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_Id_struct_message_5fbase_2eproto}, {}};
+
 static void InitDefaultsscc_info_Locate_information_message_5fbase_2eproto() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
@@ -128,7 +146,7 @@ static void InitDefaultsscc_info_Parkspace_info_message_5fbase_2eproto() {
     {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_Parkspace_info_message_5fbase_2eproto}, {
       &scc_info_Car_info_message_5fbase_2eproto.base,}};
 
-static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_message_5fbase_2eproto[6];
+static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_message_5fbase_2eproto[7];
 static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_message_5fbase_2eproto[12];
 static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_message_5fbase_2eproto = nullptr;
 
@@ -164,6 +182,15 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_message_5fbase_2eproto::offset
   1,
   2,
   0,
+  PROTOBUF_FIELD_OFFSET(::message::Id_struct, _has_bits_),
+  PROTOBUF_FIELD_OFFSET(::message::Id_struct, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  PROTOBUF_FIELD_OFFSET(::message::Id_struct, terminal_id_),
+  PROTOBUF_FIELD_OFFSET(::message::Id_struct, unit_id_),
+  0,
+  1,
   PROTOBUF_FIELD_OFFSET(::message::Locate_information, _has_bits_),
   PROTOBUF_FIELD_OFFSET(::message::Locate_information, _internal_metadata_),
   ~0u,  // no _extensions_
@@ -256,15 +283,17 @@ static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOB
   { 0, 9, sizeof(::message::Base_info)},
   { 13, 19, sizeof(::message::Base_msg)},
   { 20, 28, sizeof(::message::Error_manager)},
-  { 31, 48, sizeof(::message::Locate_information)},
-  { 60, 72, sizeof(::message::Car_info)},
-  { 79, 101, sizeof(::message::Parkspace_info)},
+  { 31, 38, sizeof(::message::Id_struct)},
+  { 40, 57, sizeof(::message::Locate_information)},
+  { 69, 81, sizeof(::message::Car_info)},
+  { 88, 110, sizeof(::message::Parkspace_info)},
 };
 
 static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
   reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::message::_Base_info_default_instance_),
   reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::message::_Base_msg_default_instance_),
   reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::message::_Error_manager_default_instance_),
+  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::message::_Id_struct_default_instance_),
   reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::message::_Locate_information_default_instance_),
   reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::message::_Car_info_default_instance_),
   reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::message::_Parkspace_info_default_instance_),
@@ -280,132 +309,134 @@ const char descriptor_table_protodef_message_5fbase_2eproto[] PROTOBUF_SECTION_V
   "\001 \002(\0132\022.message.Base_info\"v\n\rError_manag"
   "er\022\025\n\nerror_code\030\001 \002(\005:\0010\0221\n\013error_level"
   "\030\002 \001(\0162\024.message.Error_level:\006NORMAL\022\033\n\021"
-  "error_description\030\003 \001(\t:\000\"\321\002\n\022Locate_inf"
-  "ormation\022\023\n\010locate_x\030\001 \001(\002:\0010\022\023\n\010locate_"
-  "y\030\002 \001(\002:\0010\022\027\n\014locate_angle\030\003 \001(\002:\0010\022\030\n\rl"
-  "ocate_length\030\004 \001(\002:\0010\022\027\n\014locate_width\030\005 "
-  "\001(\002:\0010\022\030\n\rlocate_height\030\006 \001(\002:\0010\022\034\n\021loca"
-  "te_wheel_base\030\007 \001(\002:\0010\022\035\n\022locate_wheel_w"
-  "idth\030\010 \001(\002:\0010\022\035\n\016locate_correct\030\t \001(\010:\005f"
-  "alse\022\035\n\022locate_front_theta\030\n \001(\002:\0010\022\027\n\017u"
-  "niformed_car_x\030\013 \001(\002\022\027\n\017uniformed_car_y\030"
-  "\014 \001(\002\"\263\001\n\010Car_info\022\025\n\ncar_length\030\001 \001(\002:\001"
-  "0\022\024\n\tcar_width\030\002 \001(\002:\0010\022\025\n\ncar_height\030\003 "
-  "\001(\002:\0010\022\021\n\007license\030\004 \001(\t:\000\022\031\n\017car_numberP"
-  "late\030\005 \001(\t:\000\022\031\n\016car_wheel_base\030\006 \001(\002:\0010\022"
-  "\032\n\017car_wheel_width\030\007 \001(\002:\0010\"\375\004\n\016Parkspac"
-  "e_info\022\035\n\025parkingspace_index_id\030\001 \001(\005\0222\n"
-  "\021parkingspace_type\030\002 \001(\0162\027.message.Parks"
-  "pace_type\022\034\n\024parkingspace_unit_id\030\003 \001(\005\022"
-  "\035\n\025parkingspace_label_id\030\004 \001(\005\022\034\n\024parkin"
-  "gspace_room_id\030\005 \001(\005\0222\n\026parkingspace_dir"
-  "ection\030\006 \001(\0162\022.message.Direction\022\035\n\025park"
-  "ingspace_floor_id\030\007 \001(\005\022\032\n\022parkingspace_"
-  "width\030\010 \001(\002\022\033\n\023parkingspace_height\030\t \001(\002"
-  "\0226\n\023parkingspace_status\030\n \001(\0162\031.message."
-  "Parkspace_status\022#\n\010car_info\030\013 \001(\0132\021.mes"
-  "sage.Car_info\022\022\n\nentry_time\030\014 \001(\t\022\022\n\nlea"
-  "ve_time\030\r \001(\t\022/\n\016parkspace_path\030\016 \001(\0162\027."
-  "message.Parkspace_path\022\032\n\022path_estimate_"
-  "time\030\017 \001(\002\022:\n\027parkspace_status_target\030\020 "
-  "\001(\0162\031.message.Parkspace_status\022#\n\010car_ty"
-  "pe\030\021 \001(\0162\021.message.Car_type*\307\014\n\014Message_"
-  "type\022\r\n\teBase_msg\020\000\022\020\n\014eCommand_msg\020\001\022\026\n"
-  "\022eLocate_status_msg\020\021\022\027\n\023eLocate_request"
-  "_msg\020\022\022\030\n\024eLocate_response_msg\020\023\022\034\n\030eLoc"
-  "ate_sift_request_msg\020\024\022\035\n\031eLocate_sift_r"
-  "esponse_msg\020\025\022\030\n\024eDispatch_status_msg\020!\022"
-  "\031\n\025eDispatch_request_msg\020\"\022\032\n\026eDispatch_"
-  "response_msg\020#\022$\n eParkspace_allocation_"
-  "status_msg\0201\022%\n!eParkspace_allocation_re"
-  "quest_msg\0202\022&\n\"eParkspace_allocation_res"
-  "ponse_msg\0203\022!\n\035eParkspace_search_request"
-  "_msg\0204\022\"\n\036eParkspace_search_response_msg"
-  "\0205\022\"\n\036eParkspace_release_request_msg\0206\022#"
-  "\n\037eParkspace_release_response_msg\0207\022\'\n#e"
-  "Parkspace_force_update_request_msg\0208\022(\n$"
-  "eParkspace_force_update_response_msg\0209\022("
-  "\n$eParkspace_confirm_alloc_request_msg\020:"
-  "\022)\n%eParkspace_confirm_alloc_response_ms"
-  "g\020;\022\"\n\036eParkspace_allocation_data_msg\020<\022"
-  "+\n\'eParkspace_allocation_data_response_m"
-  "sg\020=\022(\n$eParkspace_manual_search_request"
-  "_msg\020>\022)\n%eParkspace_manual_search_respo"
-  "nse_msg\020\?\022\036\n\032eStore_command_request_msg\020"
-  "A\022\037\n\033eStore_command_response_msg\020B\022\037\n\033eP"
-  "ickup_command_request_msg\020C\022 \n\034ePickup_c"
-  "ommand_response_msg\020D\022\030\n\024eTerminal_statu"
-  "s_msg\020P\022\037\n\032eStoring_process_statu_msg\020\220\001"
-  "\022\037\n\032ePicking_process_statu_msg\020\221\001\022\"\n\035eCe"
-  "ntral_controller_statu_msg\020\240\001\022#\n\036eEntran"
-  "ce_manual_operation_msg\020\260\001\022\"\n\035eProcess_m"
-  "anual_operation_msg\020\261\001\022\030\n\023eNotify_reques"
-  "t_msg\020\300\001\022\031\n\024eNotify_response_msg\020\301\001\022\027\n\022e"
-  "Notify_status_msg\020\302\001\022#\n\036eUnNormalized_mo"
-  "dule_statu_msg\020\320\001\022\037\n\032eDispatch_plan_requ"
-  "est_msg\020\340\001\022 \n\033eDispatch_plan_response_ms"
-  "g\020\341\001\022\"\n\035eDispatch_control_request_msg\020\342\001"
-  "\022#\n\036eDispatch_control_response_msg\020\343\001\022!\n"
-  "\034eDispatch_manager_status_msg\020\352\001\022\037\n\032eDis"
-  "patch_manager_data_msg\020\353\001\022\037\n\032eGround_det"
-  "ect_request_msg\020\360\001\022 \n\033eGround_detect_res"
-  "ponse_msg\020\361\001\022\027\n\022eGround_status_msg\020\362\001*\307\001"
-  "\n\014Communicator\022\n\n\006eEmpty\020\000\022\t\n\005eMain\020\001\022\016\n"
-  "\teTerminor\020\200\002\022\017\n\neParkspace\020\200\004\022\016\n\teMeasu"
-  "rer\020\200\006\022\032\n\025eMeasurer_sift_server\020\201\006\022\026\n\021eD"
-  "ispatch_manager\020\200\010\022\026\n\021eDispatch_control\020"
-  "\201\010\022\014\n\007eNotify\020\201\n\022\025\n\020eGround_measurer\020\200\036*"
-  "*\n\014Process_type\022\014\n\010eStoring\020\001\022\014\n\010ePickin"
-  "g\020\002*e\n\013Error_level\022\n\n\006NORMAL\020\000\022\024\n\020NEGLIG"
-  "IBLE_ERROR\020\001\022\017\n\013MINOR_ERROR\020\002\022\017\n\013MAJOR_E"
-  "RROR\020\003\022\022\n\016CRITICAL_ERROR\020\004*\245\001\n\020Parkspace"
-  "_status\022\034\n\030eParkspace_status_unknow\020\000\022\024\n"
-  "\020eParkspace_empty\020\001\022\027\n\023eParkspace_occupi"
-  "ed\020\002\022\027\n\023eParkspace_reserved\020\003\022\025\n\021eParksp"
-  "ace_locked\020\004\022\024\n\020eParkspace_error\020\005*\?\n\tDi"
-  "rection\022\025\n\021eDirection_unknow\020\000\022\014\n\010eForwa"
-  "rd\020\001\022\r\n\teBackward\020\002*l\n\016Parkspace_path\022\017\n"
-  "\013UNKNOW_PATH\020\000\022\020\n\014OPTIMAL_PATH\020\001\022\r\n\tLEFT"
-  "_PATH\020\002\022\016\n\nRIGHT_PATH\020\003\022\030\n\024TEMPORARY_CAC"
-  "HE_PATH\020\004*m\n\016Parkspace_type\022\031\n\025UNKNOW_PA"
-  "RKSPACE_TYPE\020\000\022\024\n\020MIN_PARKINGSPACE\020\001\022\024\n\020"
-  "MID_PARKINGSPACE\020\002\022\024\n\020BIG_PARKINGSPACE\020\003"
-  "*F\n\010Car_type\022\023\n\017UNKNOW_CAR_TYPE\020\000\022\013\n\007MIN"
-  "_CAR\020\001\022\013\n\007MID_CAR\020\002\022\013\n\007BIG_CAR\020\003*\335\002\n\tSte"
-  "p_type\022\017\n\013eAlloc_step\020\000\022\021\n\reMeasure_step"
-  "\020\001\022\021\n\reCompare_step\020\002\022\022\n\016eDispatch_step\020"
-  "\003\022\021\n\reConfirm_step\020\004\022\020\n\014eSearch_step\020\005\022\016"
-  "\n\neWait_step\020\006\022\021\n\reRelease_step\020\007\022\r\n\teCo"
-  "mplete\020\010\022\025\n\021eBackConfirm_step\020\t\022\026\n\022eBack"
-  "_compare_step\020\n\022\025\n\021eBackMeasure_step\020\013\022\023"
-  "\n\017eBackAlloc_step\020\014\022\022\n\016eBackWait_step\020\r\022"
-  "\026\n\022eBackDispatch_step\020\016\022\024\n\020eBackSearch_s"
-  "tep\020\017\022\021\n\reBackComplete\020\020*C\n\nStep_statu\022\014"
-  "\n\010eWaiting\020\000\022\014\n\010eWorking\020\001\022\n\n\006eError\020\002\022\r"
-  "\n\teFinished\020\003*\370\001\n\024Dispatch_device_type\022\013"
-  "\n\007ROBOT_1\020e\022\013\n\007ROBOT_2\020f\022\016\n\tCARRIER_1\020\310\001"
-  "\022\016\n\tCARRIER_2\020\317\001\022\016\n\tCARRIER_3\020\313\001\022\021\n\014PASS"
-  "AGEWAY_0\020\254\002\022\021\n\014PASSAGEWAY_1\020\255\002\022\021\n\014PASSAG"
-  "EWAY_2\020\256\002\022\021\n\014PASSAGEWAY_3\020\257\002\022\021\n\014PASSAGEW"
-  "AY_4\020\260\002\022\021\n\014PASSAGEWAY_5\020\261\002\022\021\n\014PASSAGEWAY"
-  "_6\020\262\002\022\021\n\014PASSAGEWAY_7\020\263\002"
+  "error_description\030\003 \001(\t:\000\"1\n\tId_struct\022\023"
+  "\n\013terminal_id\030\001 \001(\005\022\017\n\007unit_id\030\002 \001(\005\"\321\002\n"
+  "\022Locate_information\022\023\n\010locate_x\030\001 \001(\002:\0010"
+  "\022\023\n\010locate_y\030\002 \001(\002:\0010\022\027\n\014locate_angle\030\003 "
+  "\001(\002:\0010\022\030\n\rlocate_length\030\004 \001(\002:\0010\022\027\n\014loca"
+  "te_width\030\005 \001(\002:\0010\022\030\n\rlocate_height\030\006 \001(\002"
+  ":\0010\022\034\n\021locate_wheel_base\030\007 \001(\002:\0010\022\035\n\022loc"
+  "ate_wheel_width\030\010 \001(\002:\0010\022\035\n\016locate_corre"
+  "ct\030\t \001(\010:\005false\022\035\n\022locate_front_theta\030\n "
+  "\001(\002:\0010\022\027\n\017uniformed_car_x\030\013 \001(\002\022\027\n\017unifo"
+  "rmed_car_y\030\014 \001(\002\"\263\001\n\010Car_info\022\025\n\ncar_len"
+  "gth\030\001 \001(\002:\0010\022\024\n\tcar_width\030\002 \001(\002:\0010\022\025\n\nca"
+  "r_height\030\003 \001(\002:\0010\022\021\n\007license\030\004 \001(\t:\000\022\031\n\017"
+  "car_numberPlate\030\005 \001(\t:\000\022\031\n\016car_wheel_bas"
+  "e\030\006 \001(\002:\0010\022\032\n\017car_wheel_width\030\007 \001(\002:\0010\"\375"
+  "\004\n\016Parkspace_info\022\035\n\025parkingspace_index_"
+  "id\030\001 \001(\005\0222\n\021parkingspace_type\030\002 \001(\0162\027.me"
+  "ssage.Parkspace_type\022\034\n\024parkingspace_uni"
+  "t_id\030\003 \001(\005\022\035\n\025parkingspace_label_id\030\004 \001("
+  "\005\022\034\n\024parkingspace_room_id\030\005 \001(\005\0222\n\026parki"
+  "ngspace_direction\030\006 \001(\0162\022.message.Direct"
+  "ion\022\035\n\025parkingspace_floor_id\030\007 \001(\005\022\032\n\022pa"
+  "rkingspace_width\030\010 \001(\002\022\033\n\023parkingspace_h"
+  "eight\030\t \001(\002\0226\n\023parkingspace_status\030\n \001(\016"
+  "2\031.message.Parkspace_status\022#\n\010car_info\030"
+  "\013 \001(\0132\021.message.Car_info\022\022\n\nentry_time\030\014"
+  " \001(\t\022\022\n\nleave_time\030\r \001(\t\022/\n\016parkspace_pa"
+  "th\030\016 \001(\0162\027.message.Parkspace_path\022\032\n\022pat"
+  "h_estimate_time\030\017 \001(\002\022:\n\027parkspace_statu"
+  "s_target\030\020 \001(\0162\031.message.Parkspace_statu"
+  "s\022#\n\010car_type\030\021 \001(\0162\021.message.Car_type*\307"
+  "\014\n\014Message_type\022\r\n\teBase_msg\020\000\022\020\n\014eComma"
+  "nd_msg\020\001\022\026\n\022eLocate_status_msg\020\021\022\027\n\023eLoc"
+  "ate_request_msg\020\022\022\030\n\024eLocate_response_ms"
+  "g\020\023\022\034\n\030eLocate_sift_request_msg\020\024\022\035\n\031eLo"
+  "cate_sift_response_msg\020\025\022\030\n\024eDispatch_st"
+  "atus_msg\020!\022\031\n\025eDispatch_request_msg\020\"\022\032\n"
+  "\026eDispatch_response_msg\020#\022$\n eParkspace_"
+  "allocation_status_msg\0201\022%\n!eParkspace_al"
+  "location_request_msg\0202\022&\n\"eParkspace_all"
+  "ocation_response_msg\0203\022!\n\035eParkspace_sea"
+  "rch_request_msg\0204\022\"\n\036eParkspace_search_r"
+  "esponse_msg\0205\022\"\n\036eParkspace_release_requ"
+  "est_msg\0206\022#\n\037eParkspace_release_response"
+  "_msg\0207\022\'\n#eParkspace_force_update_reques"
+  "t_msg\0208\022(\n$eParkspace_force_update_respo"
+  "nse_msg\0209\022(\n$eParkspace_confirm_alloc_re"
+  "quest_msg\020:\022)\n%eParkspace_confirm_alloc_"
+  "response_msg\020;\022\"\n\036eParkspace_allocation_"
+  "data_msg\020<\022+\n\'eParkspace_allocation_data"
+  "_response_msg\020=\022(\n$eParkspace_manual_sea"
+  "rch_request_msg\020>\022)\n%eParkspace_manual_s"
+  "earch_response_msg\020\?\022\036\n\032eStore_command_r"
+  "equest_msg\020A\022\037\n\033eStore_command_response_"
+  "msg\020B\022\037\n\033ePickup_command_request_msg\020C\022 "
+  "\n\034ePickup_command_response_msg\020D\022\030\n\024eTer"
+  "minal_status_msg\020P\022\037\n\032eStoring_process_s"
+  "tatu_msg\020\220\001\022\037\n\032ePicking_process_statu_ms"
+  "g\020\221\001\022\"\n\035eCentral_controller_statu_msg\020\240\001"
+  "\022#\n\036eEntrance_manual_operation_msg\020\260\001\022\"\n"
+  "\035eProcess_manual_operation_msg\020\261\001\022\030\n\023eNo"
+  "tify_request_msg\020\300\001\022\031\n\024eNotify_response_"
+  "msg\020\301\001\022\027\n\022eNotify_status_msg\020\302\001\022#\n\036eUnNo"
+  "rmalized_module_statu_msg\020\320\001\022\037\n\032eDispatc"
+  "h_plan_request_msg\020\340\001\022 \n\033eDispatch_plan_"
+  "response_msg\020\341\001\022\"\n\035eDispatch_control_req"
+  "uest_msg\020\342\001\022#\n\036eDispatch_control_respons"
+  "e_msg\020\343\001\022!\n\034eDispatch_manager_status_msg"
+  "\020\352\001\022\037\n\032eDispatch_manager_data_msg\020\353\001\022\037\n\032"
+  "eGround_detect_request_msg\020\360\001\022 \n\033eGround"
+  "_detect_response_msg\020\361\001\022\027\n\022eGround_statu"
+  "s_msg\020\362\001*\307\001\n\014Communicator\022\n\n\006eEmpty\020\000\022\t\n"
+  "\005eMain\020\001\022\016\n\teTerminor\020\200\002\022\017\n\neParkspace\020\200"
+  "\004\022\016\n\teMeasurer\020\200\006\022\032\n\025eMeasurer_sift_serv"
+  "er\020\201\006\022\026\n\021eDispatch_manager\020\200\010\022\026\n\021eDispat"
+  "ch_control\020\201\010\022\014\n\007eNotify\020\201\n\022\025\n\020eGround_m"
+  "easurer\020\200\036**\n\014Process_type\022\014\n\010eStoring\020\001"
+  "\022\014\n\010ePicking\020\002*e\n\013Error_level\022\n\n\006NORMAL\020"
+  "\000\022\024\n\020NEGLIGIBLE_ERROR\020\001\022\017\n\013MINOR_ERROR\020\002"
+  "\022\017\n\013MAJOR_ERROR\020\003\022\022\n\016CRITICAL_ERROR\020\004*\245\001"
+  "\n\020Parkspace_status\022\034\n\030eParkspace_status_"
+  "unknow\020\000\022\024\n\020eParkspace_empty\020\001\022\027\n\023eParks"
+  "pace_occupied\020\002\022\027\n\023eParkspace_reserved\020\003"
+  "\022\025\n\021eParkspace_locked\020\004\022\024\n\020eParkspace_er"
+  "ror\020\005*\?\n\tDirection\022\025\n\021eDirection_unknow\020"
+  "\000\022\014\n\010eForward\020\001\022\r\n\teBackward\020\002*l\n\016Parksp"
+  "ace_path\022\017\n\013UNKNOW_PATH\020\000\022\020\n\014OPTIMAL_PAT"
+  "H\020\001\022\r\n\tLEFT_PATH\020\002\022\016\n\nRIGHT_PATH\020\003\022\030\n\024TE"
+  "MPORARY_CACHE_PATH\020\004*m\n\016Parkspace_type\022\031"
+  "\n\025UNKNOW_PARKSPACE_TYPE\020\000\022\024\n\020MIN_PARKING"
+  "SPACE\020\001\022\024\n\020MID_PARKINGSPACE\020\002\022\024\n\020BIG_PAR"
+  "KINGSPACE\020\003*F\n\010Car_type\022\023\n\017UNKNOW_CAR_TY"
+  "PE\020\000\022\013\n\007MIN_CAR\020\001\022\013\n\007MID_CAR\020\002\022\013\n\007BIG_CA"
+  "R\020\003*\335\002\n\tStep_type\022\017\n\013eAlloc_step\020\000\022\021\n\reM"
+  "easure_step\020\001\022\021\n\reCompare_step\020\002\022\022\n\016eDis"
+  "patch_step\020\003\022\021\n\reConfirm_step\020\004\022\020\n\014eSear"
+  "ch_step\020\005\022\016\n\neWait_step\020\006\022\021\n\reRelease_st"
+  "ep\020\007\022\r\n\teComplete\020\010\022\025\n\021eBackConfirm_step"
+  "\020\t\022\026\n\022eBack_compare_step\020\n\022\025\n\021eBackMeasu"
+  "re_step\020\013\022\023\n\017eBackAlloc_step\020\014\022\022\n\016eBackW"
+  "ait_step\020\r\022\026\n\022eBackDispatch_step\020\016\022\024\n\020eB"
+  "ackSearch_step\020\017\022\021\n\reBackComplete\020\020*C\n\nS"
+  "tep_statu\022\014\n\010eWaiting\020\000\022\014\n\010eWorking\020\001\022\n\n"
+  "\006eError\020\002\022\r\n\teFinished\020\003*\370\001\n\024Dispatch_de"
+  "vice_type\022\013\n\007ROBOT_1\020e\022\013\n\007ROBOT_2\020f\022\016\n\tC"
+  "ARRIER_1\020\310\001\022\016\n\tCARRIER_2\020\317\001\022\016\n\tCARRIER_3"
+  "\020\313\001\022\021\n\014PASSAGEWAY_0\020\254\002\022\021\n\014PASSAGEWAY_1\020\255"
+  "\002\022\021\n\014PASSAGEWAY_2\020\256\002\022\021\n\014PASSAGEWAY_3\020\257\002\022"
+  "\021\n\014PASSAGEWAY_4\020\260\002\022\021\n\014PASSAGEWAY_5\020\261\002\022\021\n"
+  "\014PASSAGEWAY_6\020\262\002\022\021\n\014PASSAGEWAY_7\020\263\002"
   ;
 static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_message_5fbase_2eproto_deps[1] = {
 };
-static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_message_5fbase_2eproto_sccs[6] = {
+static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_message_5fbase_2eproto_sccs[7] = {
   &scc_info_Base_info_message_5fbase_2eproto.base,
   &scc_info_Base_msg_message_5fbase_2eproto.base,
   &scc_info_Car_info_message_5fbase_2eproto.base,
   &scc_info_Error_manager_message_5fbase_2eproto.base,
+  &scc_info_Id_struct_message_5fbase_2eproto.base,
   &scc_info_Locate_information_message_5fbase_2eproto.base,
   &scc_info_Parkspace_info_message_5fbase_2eproto.base,
 };
 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_message_5fbase_2eproto_once;
 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_message_5fbase_2eproto = {
-  false, false, descriptor_table_protodef_message_5fbase_2eproto, "message_base.proto", 4704,
-  &descriptor_table_message_5fbase_2eproto_once, descriptor_table_message_5fbase_2eproto_sccs, descriptor_table_message_5fbase_2eproto_deps, 6, 0,
+  false, false, descriptor_table_protodef_message_5fbase_2eproto, "message_base.proto", 4755,
+  &descriptor_table_message_5fbase_2eproto_once, descriptor_table_message_5fbase_2eproto_sccs, descriptor_table_message_5fbase_2eproto_deps, 7, 0,
   schemas, file_default_instances, TableStruct_message_5fbase_2eproto::offsets,
-  file_level_metadata_message_5fbase_2eproto, 6, file_level_enum_descriptors_message_5fbase_2eproto, file_level_service_descriptors_message_5fbase_2eproto,
+  file_level_metadata_message_5fbase_2eproto, 7, file_level_enum_descriptors_message_5fbase_2eproto, file_level_service_descriptors_message_5fbase_2eproto,
 };
 
 // Force running AddDescriptors() at dynamic initialization time.
@@ -1562,6 +1593,262 @@ void Error_manager::InternalSwap(Error_manager* other) {
 }
 
 
+// ===================================================================
+
+void Id_struct::InitAsDefaultInstance() {
+}
+class Id_struct::_Internal {
+ public:
+  using HasBits = decltype(std::declval<Id_struct>()._has_bits_);
+  static void set_has_terminal_id(HasBits* has_bits) {
+    (*has_bits)[0] |= 1u;
+  }
+  static void set_has_unit_id(HasBits* has_bits) {
+    (*has_bits)[0] |= 2u;
+  }
+};
+
+Id_struct::Id_struct(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
+  SharedCtor();
+  RegisterArenaDtor(arena);
+  // @@protoc_insertion_point(arena_constructor:message.Id_struct)
+}
+Id_struct::Id_struct(const Id_struct& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message(),
+      _has_bits_(from._has_bits_) {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  ::memcpy(&terminal_id_, &from.terminal_id_,
+    static_cast<size_t>(reinterpret_cast<char*>(&unit_id_) -
+    reinterpret_cast<char*>(&terminal_id_)) + sizeof(unit_id_));
+  // @@protoc_insertion_point(copy_constructor:message.Id_struct)
+}
+
+void Id_struct::SharedCtor() {
+  ::memset(&terminal_id_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&unit_id_) -
+      reinterpret_cast<char*>(&terminal_id_)) + sizeof(unit_id_));
+}
+
+Id_struct::~Id_struct() {
+  // @@protoc_insertion_point(destructor:message.Id_struct)
+  SharedDtor();
+  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+void Id_struct::SharedDtor() {
+  GOOGLE_DCHECK(GetArena() == nullptr);
+}
+
+void Id_struct::ArenaDtor(void* object) {
+  Id_struct* _this = reinterpret_cast< Id_struct* >(object);
+  (void)_this;
+}
+void Id_struct::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
+}
+void Id_struct::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+const Id_struct& Id_struct::default_instance() {
+  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Id_struct_message_5fbase_2eproto.base);
+  return *internal_default_instance();
+}
+
+
+void Id_struct::Clear() {
+// @@protoc_insertion_point(message_clear_start:message.Id_struct)
+  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
+  if (cached_has_bits & 0x00000003u) {
+    ::memset(&terminal_id_, 0, static_cast<size_t>(
+        reinterpret_cast<char*>(&unit_id_) -
+        reinterpret_cast<char*>(&terminal_id_)) + sizeof(unit_id_));
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* Id_struct::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  _Internal::HasBits has_bits{};
+  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
+  while (!ctx->Done(&ptr)) {
+    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
+    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
+    CHK_(ptr);
+    switch (tag >> 3) {
+      // optional int32 terminal_id = 1;
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
+          _Internal::set_has_terminal_id(&has_bits);
+          terminal_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+          CHK_(ptr);
+        } else goto handle_unusual;
+        continue;
+      // optional int32 unit_id = 2;
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
+          _Internal::set_has_unit_id(&has_bits);
+          unit_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+          CHK_(ptr);
+        } else goto handle_unusual;
+        continue;
+      default: {
+      handle_unusual:
+        if ((tag & 7) == 4 || tag == 0) {
+          ctx->SetLastTag(tag);
+          goto success;
+        }
+        ptr = UnknownFieldParse(tag,
+            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+            ptr, ctx);
+        CHK_(ptr != nullptr);
+        continue;
+      }
+    }  // switch
+  }  // while
+success:
+  _has_bits_.Or(has_bits);
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto success;
+#undef CHK_
+}
+
+::PROTOBUF_NAMESPACE_ID::uint8* Id_struct::_InternalSerialize(
+    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:message.Id_struct)
+  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
+  // optional int32 terminal_id = 1;
+  if (cached_has_bits & 0x00000001u) {
+    target = stream->EnsureSpace(target);
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_terminal_id(), target);
+  }
+
+  // optional int32 unit_id = 2;
+  if (cached_has_bits & 0x00000002u) {
+    target = stream->EnsureSpace(target);
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_unit_id(), target);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:message.Id_struct)
+  return target;
+}
+
+size_t Id_struct::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:message.Id_struct)
+  size_t total_size = 0;
+
+  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
+  if (cached_has_bits & 0x00000003u) {
+    // optional int32 terminal_id = 1;
+    if (cached_has_bits & 0x00000001u) {
+      total_size += 1 +
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
+          this->_internal_terminal_id());
+    }
+
+    // optional int32 unit_id = 2;
+    if (cached_has_bits & 0x00000002u) {
+      total_size += 1 +
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
+          this->_internal_unit_id());
+    }
+
+  }
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
+        _internal_metadata_, total_size, &_cached_size_);
+  }
+  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
+  SetCachedSize(cached_size);
+  return total_size;
+}
+
+void Id_struct::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:message.Id_struct)
+  GOOGLE_DCHECK_NE(&from, this);
+  const Id_struct* source =
+      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Id_struct>(
+          &from);
+  if (source == nullptr) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.Id_struct)
+    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:message.Id_struct)
+    MergeFrom(*source);
+  }
+}
+
+void Id_struct::MergeFrom(const Id_struct& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:message.Id_struct)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = from._has_bits_[0];
+  if (cached_has_bits & 0x00000003u) {
+    if (cached_has_bits & 0x00000001u) {
+      terminal_id_ = from.terminal_id_;
+    }
+    if (cached_has_bits & 0x00000002u) {
+      unit_id_ = from.unit_id_;
+    }
+    _has_bits_[0] |= cached_has_bits;
+  }
+}
+
+void Id_struct::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:message.Id_struct)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void Id_struct::CopyFrom(const Id_struct& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:message.Id_struct)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool Id_struct::IsInitialized() const {
+  return true;
+}
+
+void Id_struct::InternalSwap(Id_struct* other) {
+  using std::swap;
+  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
+  swap(_has_bits_[0], other->_has_bits_[0]);
+  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
+      PROTOBUF_FIELD_OFFSET(Id_struct, unit_id_)
+      + sizeof(Id_struct::unit_id_)
+      - PROTOBUF_FIELD_OFFSET(Id_struct, terminal_id_)>(
+          reinterpret_cast<char*>(&terminal_id_),
+          reinterpret_cast<char*>(&other->terminal_id_));
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata Id_struct::GetMetadata() const {
+  return GetMetadataStatic();
+}
+
+
 // ===================================================================
 
 void Locate_information::InitAsDefaultInstance() {
@@ -3253,6 +3540,9 @@ template<> PROTOBUF_NOINLINE ::message::Base_msg* Arena::CreateMaybeMessage< ::m
 template<> PROTOBUF_NOINLINE ::message::Error_manager* Arena::CreateMaybeMessage< ::message::Error_manager >(Arena* arena) {
   return Arena::CreateMessageInternal< ::message::Error_manager >(arena);
 }
+template<> PROTOBUF_NOINLINE ::message::Id_struct* Arena::CreateMaybeMessage< ::message::Id_struct >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::message::Id_struct >(arena);
+}
 template<> PROTOBUF_NOINLINE ::message::Locate_information* Arena::CreateMaybeMessage< ::message::Locate_information >(Arena* arena) {
   return Arena::CreateMessageInternal< ::message::Locate_information >(arena);
 }

+ 234 - 4
message/message_base.pb.h

@@ -48,7 +48,7 @@ struct TableStruct_message_5fbase_2eproto {
     PROTOBUF_SECTION_VARIABLE(protodesc_cold);
   static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[]
     PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[6]
+  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[7]
     PROTOBUF_SECTION_VARIABLE(protodesc_cold);
   static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
   static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
@@ -68,6 +68,9 @@ extern Car_infoDefaultTypeInternal _Car_info_default_instance_;
 class Error_manager;
 class Error_managerDefaultTypeInternal;
 extern Error_managerDefaultTypeInternal _Error_manager_default_instance_;
+class Id_struct;
+class Id_structDefaultTypeInternal;
+extern Id_structDefaultTypeInternal _Id_struct_default_instance_;
 class Locate_information;
 class Locate_informationDefaultTypeInternal;
 extern Locate_informationDefaultTypeInternal _Locate_information_default_instance_;
@@ -80,6 +83,7 @@ template<> ::message::Base_info* Arena::CreateMaybeMessage<::message::Base_info>
 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::Id_struct* Arena::CreateMaybeMessage<::message::Id_struct>(Arena*);
 template<> ::message::Locate_information* Arena::CreateMaybeMessage<::message::Locate_information>(Arena*);
 template<> ::message::Parkspace_info* Arena::CreateMaybeMessage<::message::Parkspace_info>(Arena*);
 PROTOBUF_NAMESPACE_CLOSE
@@ -997,6 +1001,170 @@ class Error_manager PROTOBUF_FINAL :
 };
 // -------------------------------------------------------------------
 
+class Id_struct PROTOBUF_FINAL :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:message.Id_struct) */ {
+ public:
+  inline Id_struct() : Id_struct(nullptr) {}
+  virtual ~Id_struct();
+
+  Id_struct(const Id_struct& from);
+  Id_struct(Id_struct&& from) noexcept
+    : Id_struct() {
+    *this = ::std::move(from);
+  }
+
+  inline Id_struct& operator=(const Id_struct& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline Id_struct& operator=(Id_struct&& from) noexcept {
+    if (GetArena() == from.GetArena()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
+  }
+  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return GetMetadataStatic().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return GetMetadataStatic().reflection;
+  }
+  static const Id_struct& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const Id_struct* internal_default_instance() {
+    return reinterpret_cast<const Id_struct*>(
+               &_Id_struct_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    3;
+
+  friend void swap(Id_struct& a, Id_struct& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(Id_struct* other) {
+    if (other == this) return;
+    if (GetArena() == other->GetArena()) {
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(Id_struct* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetArena() == other->GetArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline Id_struct* New() const final {
+    return CreateMaybeMessage<Id_struct>(nullptr);
+  }
+
+  Id_struct* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
+    return CreateMaybeMessage<Id_struct>(arena);
+  }
+  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
+  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
+  void CopyFrom(const Id_struct& from);
+  void MergeFrom(const Id_struct& from);
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
+      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  inline void SharedCtor();
+  inline void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(Id_struct* other);
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
+    return "message.Id_struct";
+  }
+  protected:
+  explicit Id_struct(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  private:
+  static void ArenaDtor(void* object);
+  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  public:
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+  private:
+  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
+    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_message_5fbase_2eproto);
+    return ::descriptor_table_message_5fbase_2eproto.file_level_metadata[kIndexInFileMessages];
+  }
+
+  public:
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kTerminalIdFieldNumber = 1,
+    kUnitIdFieldNumber = 2,
+  };
+  // optional int32 terminal_id = 1;
+  bool has_terminal_id() const;
+  private:
+  bool _internal_has_terminal_id() const;
+  public:
+  void clear_terminal_id();
+  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id() const;
+  void set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
+  private:
+  ::PROTOBUF_NAMESPACE_ID::int32 _internal_terminal_id() const;
+  void _internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
+  public:
+
+  // optional int32 unit_id = 2;
+  bool has_unit_id() const;
+  private:
+  bool _internal_has_unit_id() const;
+  public:
+  void clear_unit_id();
+  ::PROTOBUF_NAMESPACE_ID::int32 unit_id() const;
+  void set_unit_id(::PROTOBUF_NAMESPACE_ID::int32 value);
+  private:
+  ::PROTOBUF_NAMESPACE_ID::int32 _internal_unit_id() const;
+  void _internal_set_unit_id(::PROTOBUF_NAMESPACE_ID::int32 value);
+  public:
+
+  // @@protoc_insertion_point(class_scope:message.Id_struct)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id_;
+  ::PROTOBUF_NAMESPACE_ID::int32 unit_id_;
+  friend struct ::TableStruct_message_5fbase_2eproto;
+};
+// -------------------------------------------------------------------
+
 class Locate_information PROTOBUF_FINAL :
     public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:message.Locate_information) */ {
  public:
@@ -1046,7 +1214,7 @@ class Locate_information PROTOBUF_FINAL :
                &_Locate_information_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
-    3;
+    4;
 
   friend void swap(Locate_information& a, Locate_information& b) {
     a.Swap(&b);
@@ -1360,7 +1528,7 @@ class Car_info PROTOBUF_FINAL :
                &_Car_info_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
-    4;
+    5;
 
   friend void swap(Car_info& a, Car_info& b) {
     a.Swap(&b);
@@ -1613,7 +1781,7 @@ class Parkspace_info PROTOBUF_FINAL :
                &_Parkspace_info_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
-    5;
+    6;
 
   friend void swap(Parkspace_info& a, Parkspace_info& b) {
     a.Swap(&b);
@@ -2320,6 +2488,66 @@ inline void Error_manager::set_allocated_error_description(std::string* error_de
 
 // -------------------------------------------------------------------
 
+// Id_struct
+
+// optional int32 terminal_id = 1;
+inline bool Id_struct::_internal_has_terminal_id() const {
+  bool value = (_has_bits_[0] & 0x00000001u) != 0;
+  return value;
+}
+inline bool Id_struct::has_terminal_id() const {
+  return _internal_has_terminal_id();
+}
+inline void Id_struct::clear_terminal_id() {
+  terminal_id_ = 0;
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline ::PROTOBUF_NAMESPACE_ID::int32 Id_struct::_internal_terminal_id() const {
+  return terminal_id_;
+}
+inline ::PROTOBUF_NAMESPACE_ID::int32 Id_struct::terminal_id() const {
+  // @@protoc_insertion_point(field_get:message.Id_struct.terminal_id)
+  return _internal_terminal_id();
+}
+inline void Id_struct::_internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
+  _has_bits_[0] |= 0x00000001u;
+  terminal_id_ = value;
+}
+inline void Id_struct::set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
+  _internal_set_terminal_id(value);
+  // @@protoc_insertion_point(field_set:message.Id_struct.terminal_id)
+}
+
+// optional int32 unit_id = 2;
+inline bool Id_struct::_internal_has_unit_id() const {
+  bool value = (_has_bits_[0] & 0x00000002u) != 0;
+  return value;
+}
+inline bool Id_struct::has_unit_id() const {
+  return _internal_has_unit_id();
+}
+inline void Id_struct::clear_unit_id() {
+  unit_id_ = 0;
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline ::PROTOBUF_NAMESPACE_ID::int32 Id_struct::_internal_unit_id() const {
+  return unit_id_;
+}
+inline ::PROTOBUF_NAMESPACE_ID::int32 Id_struct::unit_id() const {
+  // @@protoc_insertion_point(field_get:message.Id_struct.unit_id)
+  return _internal_unit_id();
+}
+inline void Id_struct::_internal_set_unit_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
+  _has_bits_[0] |= 0x00000002u;
+  unit_id_ = value;
+}
+inline void Id_struct::set_unit_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
+  _internal_set_unit_id(value);
+  // @@protoc_insertion_point(field_set:message.Id_struct.unit_id)
+}
+
+// -------------------------------------------------------------------
+
 // Locate_information
 
 // optional float locate_x = 1 [default = 0];
@@ -3596,6 +3824,8 @@ inline void Parkspace_info::set_car_type(::message::Car_type value) {
 
 // -------------------------------------------------------------------
 
+// -------------------------------------------------------------------
+
 
 // @@protoc_insertion_point(namespace_scope)
 

+ 6 - 0
message/message_base.proto

@@ -140,6 +140,12 @@ message Error_manager
     optional string                     error_description = 3[default = ""];
 }
 
+message Id_struct
+{
+    optional int32                      terminal_id=1;
+    optional int32                      unit_id=2;
+}
+
 //测量结果结构体
 message Locate_information
 {

+ 187 - 125
message/notify_message.pb.cc

@@ -17,6 +17,7 @@
 extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Base_info_message_5fbase_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Car_info_message_5fbase_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Error_manager_message_5fbase_2eproto;
+extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Id_struct_message_5fbase_2eproto;
 namespace message {
 class Notify_request_msgDefaultTypeInternal {
  public:
@@ -42,9 +43,10 @@ static void InitDefaultsscc_info_Notify_request_msg_notify_5fmessage_2eproto() {
   ::message::Notify_request_msg::InitAsDefaultInstance();
 }
 
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Notify_request_msg_notify_5fmessage_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_Notify_request_msg_notify_5fmessage_2eproto}, {
+::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Notify_request_msg_notify_5fmessage_2eproto =
+    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 3, 0, InitDefaultsscc_info_Notify_request_msg_notify_5fmessage_2eproto}, {
       &scc_info_Base_info_message_5fbase_2eproto.base,
+      &scc_info_Id_struct_message_5fbase_2eproto.base,
       &scc_info_Car_info_message_5fbase_2eproto.base,}};
 
 static void InitDefaultsscc_info_Notify_response_msg_notify_5fmessage_2eproto() {
@@ -58,9 +60,10 @@ static void InitDefaultsscc_info_Notify_response_msg_notify_5fmessage_2eproto()
   ::message::Notify_response_msg::InitAsDefaultInstance();
 }
 
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Notify_response_msg_notify_5fmessage_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_Notify_response_msg_notify_5fmessage_2eproto}, {
+::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Notify_response_msg_notify_5fmessage_2eproto =
+    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 3, 0, InitDefaultsscc_info_Notify_response_msg_notify_5fmessage_2eproto}, {
       &scc_info_Base_info_message_5fbase_2eproto.base,
+      &scc_info_Id_struct_message_5fbase_2eproto.base,
       &scc_info_Error_manager_message_5fbase_2eproto.base,}};
 
 static void InitDefaultsscc_info_Notify_status_msg_notify_5fmessage_2eproto() {
@@ -74,9 +77,10 @@ static void InitDefaultsscc_info_Notify_status_msg_notify_5fmessage_2eproto() {
   ::message::Notify_status_msg::InitAsDefaultInstance();
 }
 
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Notify_status_msg_notify_5fmessage_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_Notify_status_msg_notify_5fmessage_2eproto}, {
+::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Notify_status_msg_notify_5fmessage_2eproto =
+    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 3, 0, InitDefaultsscc_info_Notify_status_msg_notify_5fmessage_2eproto}, {
       &scc_info_Base_info_message_5fbase_2eproto.base,
+      &scc_info_Id_struct_message_5fbase_2eproto.base,
       &scc_info_Error_manager_message_5fbase_2eproto.base,}};
 
 static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_notify_5fmessage_2eproto[3];
@@ -91,12 +95,12 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_notify_5fmessage_2eproto::offs
   ~0u,  // no _weak_field_map_
   PROTOBUF_FIELD_OFFSET(::message::Notify_request_msg, base_info_),
   PROTOBUF_FIELD_OFFSET(::message::Notify_request_msg, command_key_),
-  PROTOBUF_FIELD_OFFSET(::message::Notify_request_msg, terminal_id_),
+  PROTOBUF_FIELD_OFFSET(::message::Notify_request_msg, id_struct_),
   PROTOBUF_FIELD_OFFSET(::message::Notify_request_msg, car_info_),
   1,
   0,
-  3,
   2,
+  3,
   PROTOBUF_FIELD_OFFSET(::message::Notify_response_msg, _has_bits_),
   PROTOBUF_FIELD_OFFSET(::message::Notify_response_msg, _internal_metadata_),
   ~0u,  // no _extensions_
@@ -104,23 +108,23 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_notify_5fmessage_2eproto::offs
   ~0u,  // no _weak_field_map_
   PROTOBUF_FIELD_OFFSET(::message::Notify_response_msg, base_info_),
   PROTOBUF_FIELD_OFFSET(::message::Notify_response_msg, command_key_),
-  PROTOBUF_FIELD_OFFSET(::message::Notify_response_msg, terminal_id_),
+  PROTOBUF_FIELD_OFFSET(::message::Notify_response_msg, id_struct_),
   PROTOBUF_FIELD_OFFSET(::message::Notify_response_msg, code_),
   1,
   0,
-  3,
   2,
+  3,
   PROTOBUF_FIELD_OFFSET(::message::Notify_status_msg, _has_bits_),
   PROTOBUF_FIELD_OFFSET(::message::Notify_status_msg, _internal_metadata_),
   ~0u,  // no _extensions_
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
   PROTOBUF_FIELD_OFFSET(::message::Notify_status_msg, base_info_),
-  PROTOBUF_FIELD_OFFSET(::message::Notify_status_msg, terminal_id_),
+  PROTOBUF_FIELD_OFFSET(::message::Notify_status_msg, channel_),
   PROTOBUF_FIELD_OFFSET(::message::Notify_status_msg, error_manager_),
   0,
-  2,
   1,
+  2,
 };
 static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
   { 0, 9, sizeof(::message::Notify_request_msg)},
@@ -136,17 +140,18 @@ static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] =
 
 const char descriptor_table_protodef_notify_5fmessage_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
   "\n\024notify_message.proto\022\007message\032\022message"
-  "_base.proto\"\212\001\n\022Notify_request_msg\022%\n\tba"
+  "_base.proto\"\234\001\n\022Notify_request_msg\022%\n\tba"
+  "se_info\030\001 \002(\0132\022.message.Base_info\022\023\n\013com"
+  "mand_key\030\002 \002(\t\022%\n\tid_struct\030\003 \002(\0132\022.mess"
+  "age.Id_struct\022#\n\010car_info\030\004 \002(\0132\021.messag"
+  "e.Car_info\"\236\001\n\023Notify_response_msg\022%\n\tba"
   "se_info\030\001 \002(\0132\022.message.Base_info\022\023\n\013com"
-  "mand_key\030\002 \002(\t\022\023\n\013terminal_id\030\003 \002(\005\022#\n\010c"
-  "ar_info\030\004 \002(\0132\021.message.Car_info\"\214\001\n\023Not"
-  "ify_response_msg\022%\n\tbase_info\030\001 \002(\0132\022.me"
-  "ssage.Base_info\022\023\n\013command_key\030\002 \002(\t\022\023\n\013"
-  "terminal_id\030\003 \002(\005\022$\n\004code\030\004 \002(\0132\026.messag"
-  "e.Error_manager\"~\n\021Notify_status_msg\022%\n\t"
-  "base_info\030\001 \002(\0132\022.message.Base_info\022\023\n\013t"
-  "erminal_id\030\002 \002(\005\022-\n\rerror_manager\030\003 \002(\0132"
-  "\026.message.Error_manager"
+  "mand_key\030\002 \002(\t\022%\n\tid_struct\030\003 \002(\0132\022.mess"
+  "age.Id_struct\022$\n\004code\030\004 \002(\0132\026.message.Er"
+  "ror_manager\"\216\001\n\021Notify_status_msg\022%\n\tbas"
+  "e_info\030\001 \002(\0132\022.message.Base_info\022#\n\007chan"
+  "nel\030\002 \002(\0132\022.message.Id_struct\022-\n\rerror_m"
+  "anager\030\003 \002(\0132\026.message.Error_manager"
   ;
 static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_notify_5fmessage_2eproto_deps[1] = {
   &::descriptor_table_message_5fbase_2eproto,
@@ -158,7 +163,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_not
 };
 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_notify_5fmessage_2eproto_once;
 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_notify_5fmessage_2eproto = {
-  false, false, descriptor_table_protodef_notify_5fmessage_2eproto, "notify_message.proto", 463,
+  false, false, descriptor_table_protodef_notify_5fmessage_2eproto, "notify_message.proto", 516,
   &descriptor_table_notify_5fmessage_2eproto_once, descriptor_table_notify_5fmessage_2eproto_sccs, descriptor_table_notify_5fmessage_2eproto_deps, 3, 1,
   schemas, file_default_instances, TableStruct_notify_5fmessage_2eproto::offsets,
   file_level_metadata_notify_5fmessage_2eproto, 3, file_level_enum_descriptors_notify_5fmessage_2eproto, file_level_service_descriptors_notify_5fmessage_2eproto,
@@ -173,6 +178,8 @@ namespace message {
 void Notify_request_msg::InitAsDefaultInstance() {
   ::message::_Notify_request_msg_default_instance_._instance.get_mutable()->base_info_ = const_cast< ::message::Base_info*>(
       ::message::Base_info::internal_default_instance());
+  ::message::_Notify_request_msg_default_instance_._instance.get_mutable()->id_struct_ = const_cast< ::message::Id_struct*>(
+      ::message::Id_struct::internal_default_instance());
   ::message::_Notify_request_msg_default_instance_._instance.get_mutable()->car_info_ = const_cast< ::message::Car_info*>(
       ::message::Car_info::internal_default_instance());
 }
@@ -186,12 +193,13 @@ class Notify_request_msg::_Internal {
   static void set_has_command_key(HasBits* has_bits) {
     (*has_bits)[0] |= 1u;
   }
-  static void set_has_terminal_id(HasBits* has_bits) {
-    (*has_bits)[0] |= 8u;
+  static const ::message::Id_struct& id_struct(const Notify_request_msg* msg);
+  static void set_has_id_struct(HasBits* has_bits) {
+    (*has_bits)[0] |= 4u;
   }
   static const ::message::Car_info& car_info(const Notify_request_msg* msg);
   static void set_has_car_info(HasBits* has_bits) {
-    (*has_bits)[0] |= 4u;
+    (*has_bits)[0] |= 8u;
   }
   static bool MissingRequiredFields(const HasBits& has_bits) {
     return ((has_bits[0] & 0x0000000f) ^ 0x0000000f) != 0;
@@ -202,6 +210,10 @@ const ::message::Base_info&
 Notify_request_msg::_Internal::base_info(const Notify_request_msg* msg) {
   return *msg->base_info_;
 }
+const ::message::Id_struct&
+Notify_request_msg::_Internal::id_struct(const Notify_request_msg* msg) {
+  return *msg->id_struct_;
+}
 const ::message::Car_info&
 Notify_request_msg::_Internal::car_info(const Notify_request_msg* msg) {
   return *msg->car_info_;
@@ -210,9 +222,13 @@ void Notify_request_msg::clear_base_info() {
   if (base_info_ != nullptr) base_info_->Clear();
   _has_bits_[0] &= ~0x00000002u;
 }
+void Notify_request_msg::clear_id_struct() {
+  if (id_struct_ != nullptr) id_struct_->Clear();
+  _has_bits_[0] &= ~0x00000004u;
+}
 void Notify_request_msg::clear_car_info() {
   if (car_info_ != nullptr) car_info_->Clear();
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
 }
 Notify_request_msg::Notify_request_msg(::PROTOBUF_NAMESPACE_ID::Arena* arena)
   : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
@@ -234,12 +250,16 @@ Notify_request_msg::Notify_request_msg(const Notify_request_msg& from)
   } else {
     base_info_ = nullptr;
   }
+  if (from._internal_has_id_struct()) {
+    id_struct_ = new ::message::Id_struct(*from.id_struct_);
+  } else {
+    id_struct_ = nullptr;
+  }
   if (from._internal_has_car_info()) {
     car_info_ = new ::message::Car_info(*from.car_info_);
   } else {
     car_info_ = nullptr;
   }
-  terminal_id_ = from.terminal_id_;
   // @@protoc_insertion_point(copy_constructor:message.Notify_request_msg)
 }
 
@@ -247,8 +267,8 @@ void Notify_request_msg::SharedCtor() {
   ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Notify_request_msg_notify_5fmessage_2eproto.base);
   command_key_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   ::memset(&base_info_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&terminal_id_) -
-      reinterpret_cast<char*>(&base_info_)) + sizeof(terminal_id_));
+      reinterpret_cast<char*>(&car_info_) -
+      reinterpret_cast<char*>(&base_info_)) + sizeof(car_info_));
 }
 
 Notify_request_msg::~Notify_request_msg() {
@@ -261,6 +281,7 @@ void Notify_request_msg::SharedDtor() {
   GOOGLE_DCHECK(GetArena() == nullptr);
   command_key_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (this != internal_default_instance()) delete base_info_;
+  if (this != internal_default_instance()) delete id_struct_;
   if (this != internal_default_instance()) delete car_info_;
 }
 
@@ -286,7 +307,7 @@ void Notify_request_msg::Clear() {
   (void) cached_has_bits;
 
   cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000007u) {
+  if (cached_has_bits & 0x0000000fu) {
     if (cached_has_bits & 0x00000001u) {
       command_key_.ClearNonDefaultToEmpty();
     }
@@ -295,11 +316,14 @@ void Notify_request_msg::Clear() {
       base_info_->Clear();
     }
     if (cached_has_bits & 0x00000004u) {
+      GOOGLE_DCHECK(id_struct_ != nullptr);
+      id_struct_->Clear();
+    }
+    if (cached_has_bits & 0x00000008u) {
       GOOGLE_DCHECK(car_info_ != nullptr);
       car_info_->Clear();
     }
   }
-  terminal_id_ = 0;
   _has_bits_.Clear();
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
@@ -331,11 +355,10 @@ const char* Notify_request_msg::_InternalParse(const char* ptr, ::PROTOBUF_NAMES
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
-      // required int32 terminal_id = 3;
+      // required .message.Id_struct id_struct = 3;
       case 3:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
-          _Internal::set_has_terminal_id(&has_bits);
-          terminal_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
+          ptr = ctx->ParseMessage(_internal_mutable_id_struct(), ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
@@ -394,14 +417,16 @@ failure:
         2, this->_internal_command_key(), target);
   }
 
-  // required int32 terminal_id = 3;
-  if (cached_has_bits & 0x00000008u) {
+  // required .message.Id_struct id_struct = 3;
+  if (cached_has_bits & 0x00000004u) {
     target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_terminal_id(), target);
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(
+        3, _Internal::id_struct(this), target, stream);
   }
 
   // required .message.Car_info car_info = 4;
-  if (cached_has_bits & 0x00000004u) {
+  if (cached_has_bits & 0x00000008u) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
       InternalWriteMessage(
@@ -434,18 +459,18 @@ size_t Notify_request_msg::RequiredFieldsByteSizeFallback() const {
         *base_info_);
   }
 
-  if (_internal_has_car_info()) {
-    // required .message.Car_info car_info = 4;
+  if (_internal_has_id_struct()) {
+    // required .message.Id_struct id_struct = 3;
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *car_info_);
+        *id_struct_);
   }
 
-  if (_internal_has_terminal_id()) {
-    // required int32 terminal_id = 3;
+  if (_internal_has_car_info()) {
+    // required .message.Car_info car_info = 4;
     total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-        this->_internal_terminal_id());
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *car_info_);
   }
 
   return total_size;
@@ -465,15 +490,15 @@ size_t Notify_request_msg::ByteSizeLong() const {
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
         *base_info_);
 
-    // required .message.Car_info car_info = 4;
+    // required .message.Id_struct id_struct = 3;
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *car_info_);
+        *id_struct_);
 
-    // required int32 terminal_id = 3;
+    // required .message.Car_info car_info = 4;
     total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-        this->_internal_terminal_id());
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *car_info_);
 
   } else {
     total_size += RequiredFieldsByteSizeFallback();
@@ -522,12 +547,11 @@ void Notify_request_msg::MergeFrom(const Notify_request_msg& from) {
       _internal_mutable_base_info()->::message::Base_info::MergeFrom(from._internal_base_info());
     }
     if (cached_has_bits & 0x00000004u) {
-      _internal_mutable_car_info()->::message::Car_info::MergeFrom(from._internal_car_info());
+      _internal_mutable_id_struct()->::message::Id_struct::MergeFrom(from._internal_id_struct());
     }
     if (cached_has_bits & 0x00000008u) {
-      terminal_id_ = from.terminal_id_;
+      _internal_mutable_car_info()->::message::Car_info::MergeFrom(from._internal_car_info());
     }
-    _has_bits_[0] |= cached_has_bits;
   }
 }
 
@@ -559,8 +583,8 @@ void Notify_request_msg::InternalSwap(Notify_request_msg* other) {
   swap(_has_bits_[0], other->_has_bits_[0]);
   command_key_.Swap(&other->command_key_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
   ::PROTOBUF_NAMESPACE_ID::internal::memswap<
-      PROTOBUF_FIELD_OFFSET(Notify_request_msg, terminal_id_)
-      + sizeof(Notify_request_msg::terminal_id_)
+      PROTOBUF_FIELD_OFFSET(Notify_request_msg, car_info_)
+      + sizeof(Notify_request_msg::car_info_)
       - PROTOBUF_FIELD_OFFSET(Notify_request_msg, base_info_)>(
           reinterpret_cast<char*>(&base_info_),
           reinterpret_cast<char*>(&other->base_info_));
@@ -576,6 +600,8 @@ void Notify_request_msg::InternalSwap(Notify_request_msg* other) {
 void Notify_response_msg::InitAsDefaultInstance() {
   ::message::_Notify_response_msg_default_instance_._instance.get_mutable()->base_info_ = const_cast< ::message::Base_info*>(
       ::message::Base_info::internal_default_instance());
+  ::message::_Notify_response_msg_default_instance_._instance.get_mutable()->id_struct_ = const_cast< ::message::Id_struct*>(
+      ::message::Id_struct::internal_default_instance());
   ::message::_Notify_response_msg_default_instance_._instance.get_mutable()->code_ = const_cast< ::message::Error_manager*>(
       ::message::Error_manager::internal_default_instance());
 }
@@ -589,12 +615,13 @@ class Notify_response_msg::_Internal {
   static void set_has_command_key(HasBits* has_bits) {
     (*has_bits)[0] |= 1u;
   }
-  static void set_has_terminal_id(HasBits* has_bits) {
-    (*has_bits)[0] |= 8u;
+  static const ::message::Id_struct& id_struct(const Notify_response_msg* msg);
+  static void set_has_id_struct(HasBits* has_bits) {
+    (*has_bits)[0] |= 4u;
   }
   static const ::message::Error_manager& code(const Notify_response_msg* msg);
   static void set_has_code(HasBits* has_bits) {
-    (*has_bits)[0] |= 4u;
+    (*has_bits)[0] |= 8u;
   }
   static bool MissingRequiredFields(const HasBits& has_bits) {
     return ((has_bits[0] & 0x0000000f) ^ 0x0000000f) != 0;
@@ -605,6 +632,10 @@ const ::message::Base_info&
 Notify_response_msg::_Internal::base_info(const Notify_response_msg* msg) {
   return *msg->base_info_;
 }
+const ::message::Id_struct&
+Notify_response_msg::_Internal::id_struct(const Notify_response_msg* msg) {
+  return *msg->id_struct_;
+}
 const ::message::Error_manager&
 Notify_response_msg::_Internal::code(const Notify_response_msg* msg) {
   return *msg->code_;
@@ -613,9 +644,13 @@ void Notify_response_msg::clear_base_info() {
   if (base_info_ != nullptr) base_info_->Clear();
   _has_bits_[0] &= ~0x00000002u;
 }
+void Notify_response_msg::clear_id_struct() {
+  if (id_struct_ != nullptr) id_struct_->Clear();
+  _has_bits_[0] &= ~0x00000004u;
+}
 void Notify_response_msg::clear_code() {
   if (code_ != nullptr) code_->Clear();
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
 }
 Notify_response_msg::Notify_response_msg(::PROTOBUF_NAMESPACE_ID::Arena* arena)
   : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
@@ -637,12 +672,16 @@ Notify_response_msg::Notify_response_msg(const Notify_response_msg& from)
   } else {
     base_info_ = nullptr;
   }
+  if (from._internal_has_id_struct()) {
+    id_struct_ = new ::message::Id_struct(*from.id_struct_);
+  } else {
+    id_struct_ = nullptr;
+  }
   if (from._internal_has_code()) {
     code_ = new ::message::Error_manager(*from.code_);
   } else {
     code_ = nullptr;
   }
-  terminal_id_ = from.terminal_id_;
   // @@protoc_insertion_point(copy_constructor:message.Notify_response_msg)
 }
 
@@ -650,8 +689,8 @@ void Notify_response_msg::SharedCtor() {
   ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Notify_response_msg_notify_5fmessage_2eproto.base);
   command_key_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   ::memset(&base_info_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&terminal_id_) -
-      reinterpret_cast<char*>(&base_info_)) + sizeof(terminal_id_));
+      reinterpret_cast<char*>(&code_) -
+      reinterpret_cast<char*>(&base_info_)) + sizeof(code_));
 }
 
 Notify_response_msg::~Notify_response_msg() {
@@ -664,6 +703,7 @@ void Notify_response_msg::SharedDtor() {
   GOOGLE_DCHECK(GetArena() == nullptr);
   command_key_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (this != internal_default_instance()) delete base_info_;
+  if (this != internal_default_instance()) delete id_struct_;
   if (this != internal_default_instance()) delete code_;
 }
 
@@ -689,7 +729,7 @@ void Notify_response_msg::Clear() {
   (void) cached_has_bits;
 
   cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000007u) {
+  if (cached_has_bits & 0x0000000fu) {
     if (cached_has_bits & 0x00000001u) {
       command_key_.ClearNonDefaultToEmpty();
     }
@@ -698,11 +738,14 @@ void Notify_response_msg::Clear() {
       base_info_->Clear();
     }
     if (cached_has_bits & 0x00000004u) {
+      GOOGLE_DCHECK(id_struct_ != nullptr);
+      id_struct_->Clear();
+    }
+    if (cached_has_bits & 0x00000008u) {
       GOOGLE_DCHECK(code_ != nullptr);
       code_->Clear();
     }
   }
-  terminal_id_ = 0;
   _has_bits_.Clear();
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
@@ -734,11 +777,10 @@ const char* Notify_response_msg::_InternalParse(const char* ptr, ::PROTOBUF_NAME
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
-      // required int32 terminal_id = 3;
+      // required .message.Id_struct id_struct = 3;
       case 3:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
-          _Internal::set_has_terminal_id(&has_bits);
-          terminal_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
+          ptr = ctx->ParseMessage(_internal_mutable_id_struct(), ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
@@ -797,14 +839,16 @@ failure:
         2, this->_internal_command_key(), target);
   }
 
-  // required int32 terminal_id = 3;
-  if (cached_has_bits & 0x00000008u) {
+  // required .message.Id_struct id_struct = 3;
+  if (cached_has_bits & 0x00000004u) {
     target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_terminal_id(), target);
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(
+        3, _Internal::id_struct(this), target, stream);
   }
 
   // required .message.Error_manager code = 4;
-  if (cached_has_bits & 0x00000004u) {
+  if (cached_has_bits & 0x00000008u) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
       InternalWriteMessage(
@@ -837,18 +881,18 @@ size_t Notify_response_msg::RequiredFieldsByteSizeFallback() const {
         *base_info_);
   }
 
-  if (_internal_has_code()) {
-    // required .message.Error_manager code = 4;
+  if (_internal_has_id_struct()) {
+    // required .message.Id_struct id_struct = 3;
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *code_);
+        *id_struct_);
   }
 
-  if (_internal_has_terminal_id()) {
-    // required int32 terminal_id = 3;
+  if (_internal_has_code()) {
+    // required .message.Error_manager code = 4;
     total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-        this->_internal_terminal_id());
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *code_);
   }
 
   return total_size;
@@ -868,15 +912,15 @@ size_t Notify_response_msg::ByteSizeLong() const {
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
         *base_info_);
 
-    // required .message.Error_manager code = 4;
+    // required .message.Id_struct id_struct = 3;
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *code_);
+        *id_struct_);
 
-    // required int32 terminal_id = 3;
+    // required .message.Error_manager code = 4;
     total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-        this->_internal_terminal_id());
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *code_);
 
   } else {
     total_size += RequiredFieldsByteSizeFallback();
@@ -925,12 +969,11 @@ void Notify_response_msg::MergeFrom(const Notify_response_msg& from) {
       _internal_mutable_base_info()->::message::Base_info::MergeFrom(from._internal_base_info());
     }
     if (cached_has_bits & 0x00000004u) {
-      _internal_mutable_code()->::message::Error_manager::MergeFrom(from._internal_code());
+      _internal_mutable_id_struct()->::message::Id_struct::MergeFrom(from._internal_id_struct());
     }
     if (cached_has_bits & 0x00000008u) {
-      terminal_id_ = from.terminal_id_;
+      _internal_mutable_code()->::message::Error_manager::MergeFrom(from._internal_code());
     }
-    _has_bits_[0] |= cached_has_bits;
   }
 }
 
@@ -965,8 +1008,8 @@ void Notify_response_msg::InternalSwap(Notify_response_msg* other) {
   swap(_has_bits_[0], other->_has_bits_[0]);
   command_key_.Swap(&other->command_key_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
   ::PROTOBUF_NAMESPACE_ID::internal::memswap<
-      PROTOBUF_FIELD_OFFSET(Notify_response_msg, terminal_id_)
-      + sizeof(Notify_response_msg::terminal_id_)
+      PROTOBUF_FIELD_OFFSET(Notify_response_msg, code_)
+      + sizeof(Notify_response_msg::code_)
       - PROTOBUF_FIELD_OFFSET(Notify_response_msg, base_info_)>(
           reinterpret_cast<char*>(&base_info_),
           reinterpret_cast<char*>(&other->base_info_));
@@ -982,6 +1025,8 @@ void Notify_response_msg::InternalSwap(Notify_response_msg* other) {
 void Notify_status_msg::InitAsDefaultInstance() {
   ::message::_Notify_status_msg_default_instance_._instance.get_mutable()->base_info_ = const_cast< ::message::Base_info*>(
       ::message::Base_info::internal_default_instance());
+  ::message::_Notify_status_msg_default_instance_._instance.get_mutable()->channel_ = const_cast< ::message::Id_struct*>(
+      ::message::Id_struct::internal_default_instance());
   ::message::_Notify_status_msg_default_instance_._instance.get_mutable()->error_manager_ = const_cast< ::message::Error_manager*>(
       ::message::Error_manager::internal_default_instance());
 }
@@ -992,12 +1037,13 @@ class Notify_status_msg::_Internal {
   static void set_has_base_info(HasBits* has_bits) {
     (*has_bits)[0] |= 1u;
   }
-  static void set_has_terminal_id(HasBits* has_bits) {
-    (*has_bits)[0] |= 4u;
+  static const ::message::Id_struct& channel(const Notify_status_msg* msg);
+  static void set_has_channel(HasBits* has_bits) {
+    (*has_bits)[0] |= 2u;
   }
   static const ::message::Error_manager& error_manager(const Notify_status_msg* msg);
   static void set_has_error_manager(HasBits* has_bits) {
-    (*has_bits)[0] |= 2u;
+    (*has_bits)[0] |= 4u;
   }
   static bool MissingRequiredFields(const HasBits& has_bits) {
     return ((has_bits[0] & 0x00000007) ^ 0x00000007) != 0;
@@ -1008,6 +1054,10 @@ const ::message::Base_info&
 Notify_status_msg::_Internal::base_info(const Notify_status_msg* msg) {
   return *msg->base_info_;
 }
+const ::message::Id_struct&
+Notify_status_msg::_Internal::channel(const Notify_status_msg* msg) {
+  return *msg->channel_;
+}
 const ::message::Error_manager&
 Notify_status_msg::_Internal::error_manager(const Notify_status_msg* msg) {
   return *msg->error_manager_;
@@ -1016,9 +1066,13 @@ void Notify_status_msg::clear_base_info() {
   if (base_info_ != nullptr) base_info_->Clear();
   _has_bits_[0] &= ~0x00000001u;
 }
+void Notify_status_msg::clear_channel() {
+  if (channel_ != nullptr) channel_->Clear();
+  _has_bits_[0] &= ~0x00000002u;
+}
 void Notify_status_msg::clear_error_manager() {
   if (error_manager_ != nullptr) error_manager_->Clear();
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
 }
 Notify_status_msg::Notify_status_msg(::PROTOBUF_NAMESPACE_ID::Arena* arena)
   : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
@@ -1035,20 +1089,24 @@ Notify_status_msg::Notify_status_msg(const Notify_status_msg& from)
   } else {
     base_info_ = nullptr;
   }
+  if (from._internal_has_channel()) {
+    channel_ = new ::message::Id_struct(*from.channel_);
+  } else {
+    channel_ = nullptr;
+  }
   if (from._internal_has_error_manager()) {
     error_manager_ = new ::message::Error_manager(*from.error_manager_);
   } else {
     error_manager_ = nullptr;
   }
-  terminal_id_ = from.terminal_id_;
   // @@protoc_insertion_point(copy_constructor:message.Notify_status_msg)
 }
 
 void Notify_status_msg::SharedCtor() {
   ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Notify_status_msg_notify_5fmessage_2eproto.base);
   ::memset(&base_info_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&terminal_id_) -
-      reinterpret_cast<char*>(&base_info_)) + sizeof(terminal_id_));
+      reinterpret_cast<char*>(&error_manager_) -
+      reinterpret_cast<char*>(&base_info_)) + sizeof(error_manager_));
 }
 
 Notify_status_msg::~Notify_status_msg() {
@@ -1060,6 +1118,7 @@ Notify_status_msg::~Notify_status_msg() {
 void Notify_status_msg::SharedDtor() {
   GOOGLE_DCHECK(GetArena() == nullptr);
   if (this != internal_default_instance()) delete base_info_;
+  if (this != internal_default_instance()) delete channel_;
   if (this != internal_default_instance()) delete error_manager_;
 }
 
@@ -1085,17 +1144,20 @@ void Notify_status_msg::Clear() {
   (void) cached_has_bits;
 
   cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000003u) {
+  if (cached_has_bits & 0x00000007u) {
     if (cached_has_bits & 0x00000001u) {
       GOOGLE_DCHECK(base_info_ != nullptr);
       base_info_->Clear();
     }
     if (cached_has_bits & 0x00000002u) {
+      GOOGLE_DCHECK(channel_ != nullptr);
+      channel_->Clear();
+    }
+    if (cached_has_bits & 0x00000004u) {
       GOOGLE_DCHECK(error_manager_ != nullptr);
       error_manager_->Clear();
     }
   }
-  terminal_id_ = 0;
   _has_bits_.Clear();
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
@@ -1116,11 +1178,10 @@ const char* Notify_status_msg::_InternalParse(const char* ptr, ::PROTOBUF_NAMESP
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
-      // required int32 terminal_id = 2;
+      // required .message.Id_struct channel = 2;
       case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
-          _Internal::set_has_terminal_id(&has_bits);
-          terminal_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
+          ptr = ctx->ParseMessage(_internal_mutable_channel(), ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
@@ -1169,14 +1230,16 @@ failure:
         1, _Internal::base_info(this), target, stream);
   }
 
-  // required int32 terminal_id = 2;
-  if (cached_has_bits & 0x00000004u) {
+  // required .message.Id_struct channel = 2;
+  if (cached_has_bits & 0x00000002u) {
     target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_terminal_id(), target);
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(
+        2, _Internal::channel(this), target, stream);
   }
 
   // required .message.Error_manager error_manager = 3;
-  if (cached_has_bits & 0x00000002u) {
+  if (cached_has_bits & 0x00000004u) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
       InternalWriteMessage(
@@ -1202,18 +1265,18 @@ size_t Notify_status_msg::RequiredFieldsByteSizeFallback() const {
         *base_info_);
   }
 
-  if (_internal_has_error_manager()) {
-    // required .message.Error_manager error_manager = 3;
+  if (_internal_has_channel()) {
+    // required .message.Id_struct channel = 2;
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *error_manager_);
+        *channel_);
   }
 
-  if (_internal_has_terminal_id()) {
-    // required int32 terminal_id = 2;
+  if (_internal_has_error_manager()) {
+    // required .message.Error_manager error_manager = 3;
     total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-        this->_internal_terminal_id());
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *error_manager_);
   }
 
   return total_size;
@@ -1228,15 +1291,15 @@ size_t Notify_status_msg::ByteSizeLong() const {
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
         *base_info_);
 
-    // required .message.Error_manager error_manager = 3;
+    // required .message.Id_struct channel = 2;
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *error_manager_);
+        *channel_);
 
-    // required int32 terminal_id = 2;
+    // required .message.Error_manager error_manager = 3;
     total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-        this->_internal_terminal_id());
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *error_manager_);
 
   } else {
     total_size += RequiredFieldsByteSizeFallback();
@@ -1282,12 +1345,11 @@ void Notify_status_msg::MergeFrom(const Notify_status_msg& from) {
       _internal_mutable_base_info()->::message::Base_info::MergeFrom(from._internal_base_info());
     }
     if (cached_has_bits & 0x00000002u) {
-      _internal_mutable_error_manager()->::message::Error_manager::MergeFrom(from._internal_error_manager());
+      _internal_mutable_channel()->::message::Id_struct::MergeFrom(from._internal_channel());
     }
     if (cached_has_bits & 0x00000004u) {
-      terminal_id_ = from.terminal_id_;
+      _internal_mutable_error_manager()->::message::Error_manager::MergeFrom(from._internal_error_manager());
     }
-    _has_bits_[0] |= cached_has_bits;
   }
 }
 
@@ -1321,8 +1383,8 @@ void Notify_status_msg::InternalSwap(Notify_status_msg* other) {
   _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   ::PROTOBUF_NAMESPACE_ID::internal::memswap<
-      PROTOBUF_FIELD_OFFSET(Notify_status_msg, terminal_id_)
-      + sizeof(Notify_status_msg::terminal_id_)
+      PROTOBUF_FIELD_OFFSET(Notify_status_msg, error_manager_)
+      + sizeof(Notify_status_msg::error_manager_)
       - PROTOBUF_FIELD_OFFSET(Notify_status_msg, base_info_)>(
           reinterpret_cast<char*>(&base_info_),
           reinterpret_cast<char*>(&other->base_info_));

+ 294 - 126
message/notify_message.pb.h

@@ -197,8 +197,8 @@ class Notify_request_msg PROTOBUF_FINAL :
   enum : int {
     kCommandKeyFieldNumber = 2,
     kBaseInfoFieldNumber = 1,
+    kIdStructFieldNumber = 3,
     kCarInfoFieldNumber = 4,
-    kTerminalIdFieldNumber = 3,
   };
   // required string command_key = 2;
   bool has_command_key() const;
@@ -238,6 +238,24 @@ class Notify_request_msg PROTOBUF_FINAL :
       ::message::Base_info* base_info);
   ::message::Base_info* unsafe_arena_release_base_info();
 
+  // required .message.Id_struct id_struct = 3;
+  bool has_id_struct() const;
+  private:
+  bool _internal_has_id_struct() const;
+  public:
+  void clear_id_struct();
+  const ::message::Id_struct& id_struct() const;
+  ::message::Id_struct* release_id_struct();
+  ::message::Id_struct* mutable_id_struct();
+  void set_allocated_id_struct(::message::Id_struct* id_struct);
+  private:
+  const ::message::Id_struct& _internal_id_struct() const;
+  ::message::Id_struct* _internal_mutable_id_struct();
+  public:
+  void unsafe_arena_set_allocated_id_struct(
+      ::message::Id_struct* id_struct);
+  ::message::Id_struct* unsafe_arena_release_id_struct();
+
   // required .message.Car_info car_info = 4;
   bool has_car_info() const;
   private:
@@ -256,19 +274,6 @@ class Notify_request_msg PROTOBUF_FINAL :
       ::message::Car_info* car_info);
   ::message::Car_info* unsafe_arena_release_car_info();
 
-  // required int32 terminal_id = 3;
-  bool has_terminal_id() const;
-  private:
-  bool _internal_has_terminal_id() const;
-  public:
-  void clear_terminal_id();
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id() const;
-  void set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_terminal_id() const;
-  void _internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
-
   // @@protoc_insertion_point(class_scope:message.Notify_request_msg)
  private:
   class _Internal;
@@ -283,8 +288,8 @@ class Notify_request_msg PROTOBUF_FINAL :
   mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr command_key_;
   ::message::Base_info* base_info_;
+  ::message::Id_struct* id_struct_;
   ::message::Car_info* car_info_;
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id_;
   friend struct ::TableStruct_notify_5fmessage_2eproto;
 };
 // -------------------------------------------------------------------
@@ -411,8 +416,8 @@ class Notify_response_msg PROTOBUF_FINAL :
   enum : int {
     kCommandKeyFieldNumber = 2,
     kBaseInfoFieldNumber = 1,
+    kIdStructFieldNumber = 3,
     kCodeFieldNumber = 4,
-    kTerminalIdFieldNumber = 3,
   };
   // required string command_key = 2;
   bool has_command_key() const;
@@ -452,6 +457,24 @@ class Notify_response_msg PROTOBUF_FINAL :
       ::message::Base_info* base_info);
   ::message::Base_info* unsafe_arena_release_base_info();
 
+  // required .message.Id_struct id_struct = 3;
+  bool has_id_struct() const;
+  private:
+  bool _internal_has_id_struct() const;
+  public:
+  void clear_id_struct();
+  const ::message::Id_struct& id_struct() const;
+  ::message::Id_struct* release_id_struct();
+  ::message::Id_struct* mutable_id_struct();
+  void set_allocated_id_struct(::message::Id_struct* id_struct);
+  private:
+  const ::message::Id_struct& _internal_id_struct() const;
+  ::message::Id_struct* _internal_mutable_id_struct();
+  public:
+  void unsafe_arena_set_allocated_id_struct(
+      ::message::Id_struct* id_struct);
+  ::message::Id_struct* unsafe_arena_release_id_struct();
+
   // required .message.Error_manager code = 4;
   bool has_code() const;
   private:
@@ -470,19 +493,6 @@ class Notify_response_msg PROTOBUF_FINAL :
       ::message::Error_manager* code);
   ::message::Error_manager* unsafe_arena_release_code();
 
-  // required int32 terminal_id = 3;
-  bool has_terminal_id() const;
-  private:
-  bool _internal_has_terminal_id() const;
-  public:
-  void clear_terminal_id();
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id() const;
-  void set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_terminal_id() const;
-  void _internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
-
   // @@protoc_insertion_point(class_scope:message.Notify_response_msg)
  private:
   class _Internal;
@@ -497,8 +507,8 @@ class Notify_response_msg PROTOBUF_FINAL :
   mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr command_key_;
   ::message::Base_info* base_info_;
+  ::message::Id_struct* id_struct_;
   ::message::Error_manager* code_;
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id_;
   friend struct ::TableStruct_notify_5fmessage_2eproto;
 };
 // -------------------------------------------------------------------
@@ -624,8 +634,8 @@ class Notify_status_msg PROTOBUF_FINAL :
 
   enum : int {
     kBaseInfoFieldNumber = 1,
+    kChannelFieldNumber = 2,
     kErrorManagerFieldNumber = 3,
-    kTerminalIdFieldNumber = 2,
   };
   // required .message.Base_info base_info = 1;
   bool has_base_info() const;
@@ -645,6 +655,24 @@ class Notify_status_msg PROTOBUF_FINAL :
       ::message::Base_info* base_info);
   ::message::Base_info* unsafe_arena_release_base_info();
 
+  // required .message.Id_struct channel = 2;
+  bool has_channel() const;
+  private:
+  bool _internal_has_channel() const;
+  public:
+  void clear_channel();
+  const ::message::Id_struct& channel() const;
+  ::message::Id_struct* release_channel();
+  ::message::Id_struct* mutable_channel();
+  void set_allocated_channel(::message::Id_struct* channel);
+  private:
+  const ::message::Id_struct& _internal_channel() const;
+  ::message::Id_struct* _internal_mutable_channel();
+  public:
+  void unsafe_arena_set_allocated_channel(
+      ::message::Id_struct* channel);
+  ::message::Id_struct* unsafe_arena_release_channel();
+
   // required .message.Error_manager error_manager = 3;
   bool has_error_manager() const;
   private:
@@ -663,19 +691,6 @@ class Notify_status_msg PROTOBUF_FINAL :
       ::message::Error_manager* error_manager);
   ::message::Error_manager* unsafe_arena_release_error_manager();
 
-  // required int32 terminal_id = 2;
-  bool has_terminal_id() const;
-  private:
-  bool _internal_has_terminal_id() const;
-  public:
-  void clear_terminal_id();
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id() const;
-  void set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_terminal_id() const;
-  void _internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
-
   // @@protoc_insertion_point(class_scope:message.Notify_status_msg)
  private:
   class _Internal;
@@ -689,8 +704,8 @@ class Notify_status_msg PROTOBUF_FINAL :
   ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
   mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   ::message::Base_info* base_info_;
+  ::message::Id_struct* channel_;
   ::message::Error_manager* error_manager_;
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id_;
   friend struct ::TableStruct_notify_5fmessage_2eproto;
 };
 // ===================================================================
@@ -857,37 +872,88 @@ inline void Notify_request_msg::set_allocated_command_key(std::string* command_k
   // @@protoc_insertion_point(field_set_allocated:message.Notify_request_msg.command_key)
 }
 
-// required int32 terminal_id = 3;
-inline bool Notify_request_msg::_internal_has_terminal_id() const {
-  bool value = (_has_bits_[0] & 0x00000008u) != 0;
+// required .message.Id_struct id_struct = 3;
+inline bool Notify_request_msg::_internal_has_id_struct() const {
+  bool value = (_has_bits_[0] & 0x00000004u) != 0;
+  PROTOBUF_ASSUME(!value || id_struct_ != nullptr);
   return value;
 }
-inline bool Notify_request_msg::has_terminal_id() const {
-  return _internal_has_terminal_id();
+inline bool Notify_request_msg::has_id_struct() const {
+  return _internal_has_id_struct();
 }
-inline void Notify_request_msg::clear_terminal_id() {
-  terminal_id_ = 0;
-  _has_bits_[0] &= ~0x00000008u;
+inline const ::message::Id_struct& Notify_request_msg::_internal_id_struct() const {
+  const ::message::Id_struct* p = id_struct_;
+  return p != nullptr ? *p : *reinterpret_cast<const ::message::Id_struct*>(
+      &::message::_Id_struct_default_instance_);
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Notify_request_msg::_internal_terminal_id() const {
-  return terminal_id_;
+inline const ::message::Id_struct& Notify_request_msg::id_struct() const {
+  // @@protoc_insertion_point(field_get:message.Notify_request_msg.id_struct)
+  return _internal_id_struct();
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Notify_request_msg::terminal_id() const {
-  // @@protoc_insertion_point(field_get:message.Notify_request_msg.terminal_id)
-  return _internal_terminal_id();
+inline void Notify_request_msg::unsafe_arena_set_allocated_id_struct(
+    ::message::Id_struct* id_struct) {
+  if (GetArena() == nullptr) {
+    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  id_struct_ = id_struct;
+  if (id_struct) {
+    _has_bits_[0] |= 0x00000004u;
+  } else {
+    _has_bits_[0] &= ~0x00000004u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Notify_request_msg.id_struct)
 }
-inline void Notify_request_msg::_internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _has_bits_[0] |= 0x00000008u;
-  terminal_id_ = value;
+inline ::message::Id_struct* Notify_request_msg::release_id_struct() {
+  _has_bits_[0] &= ~0x00000004u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  if (GetArena() != nullptr) {
+    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  }
+  return temp;
 }
-inline void Notify_request_msg::set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _internal_set_terminal_id(value);
-  // @@protoc_insertion_point(field_set:message.Notify_request_msg.terminal_id)
+inline ::message::Id_struct* Notify_request_msg::unsafe_arena_release_id_struct() {
+  // @@protoc_insertion_point(field_release:message.Notify_request_msg.id_struct)
+  _has_bits_[0] &= ~0x00000004u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  return temp;
+}
+inline ::message::Id_struct* Notify_request_msg::_internal_mutable_id_struct() {
+  _has_bits_[0] |= 0x00000004u;
+  if (id_struct_ == nullptr) {
+    auto* p = CreateMaybeMessage<::message::Id_struct>(GetArena());
+    id_struct_ = p;
+  }
+  return id_struct_;
+}
+inline ::message::Id_struct* Notify_request_msg::mutable_id_struct() {
+  // @@protoc_insertion_point(field_mutable:message.Notify_request_msg.id_struct)
+  return _internal_mutable_id_struct();
+}
+inline void Notify_request_msg::set_allocated_id_struct(::message::Id_struct* id_struct) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
+  if (message_arena == nullptr) {
+    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  if (id_struct) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct)->GetArena();
+    if (message_arena != submessage_arena) {
+      id_struct = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, id_struct, submessage_arena);
+    }
+    _has_bits_[0] |= 0x00000004u;
+  } else {
+    _has_bits_[0] &= ~0x00000004u;
+  }
+  id_struct_ = id_struct;
+  // @@protoc_insertion_point(field_set_allocated:message.Notify_request_msg.id_struct)
 }
 
 // required .message.Car_info car_info = 4;
 inline bool Notify_request_msg::_internal_has_car_info() const {
-  bool value = (_has_bits_[0] & 0x00000004u) != 0;
+  bool value = (_has_bits_[0] & 0x00000008u) != 0;
   PROTOBUF_ASSUME(!value || car_info_ != nullptr);
   return value;
 }
@@ -910,14 +976,14 @@ inline void Notify_request_msg::unsafe_arena_set_allocated_car_info(
   }
   car_info_ = car_info;
   if (car_info) {
-    _has_bits_[0] |= 0x00000004u;
+    _has_bits_[0] |= 0x00000008u;
   } else {
-    _has_bits_[0] &= ~0x00000004u;
+    _has_bits_[0] &= ~0x00000008u;
   }
   // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Notify_request_msg.car_info)
 }
 inline ::message::Car_info* Notify_request_msg::release_car_info() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
   ::message::Car_info* temp = car_info_;
   car_info_ = nullptr;
   if (GetArena() != nullptr) {
@@ -927,13 +993,13 @@ inline ::message::Car_info* Notify_request_msg::release_car_info() {
 }
 inline ::message::Car_info* Notify_request_msg::unsafe_arena_release_car_info() {
   // @@protoc_insertion_point(field_release:message.Notify_request_msg.car_info)
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
   ::message::Car_info* temp = car_info_;
   car_info_ = nullptr;
   return temp;
 }
 inline ::message::Car_info* Notify_request_msg::_internal_mutable_car_info() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000008u;
   if (car_info_ == nullptr) {
     auto* p = CreateMaybeMessage<::message::Car_info>(GetArena());
     car_info_ = p;
@@ -956,9 +1022,9 @@ inline void Notify_request_msg::set_allocated_car_info(::message::Car_info* car_
       car_info = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
           message_arena, car_info, submessage_arena);
     }
-    _has_bits_[0] |= 0x00000004u;
+    _has_bits_[0] |= 0x00000008u;
   } else {
-    _has_bits_[0] &= ~0x00000004u;
+    _has_bits_[0] &= ~0x00000008u;
   }
   car_info_ = car_info;
   // @@protoc_insertion_point(field_set_allocated:message.Notify_request_msg.car_info)
@@ -1121,37 +1187,88 @@ inline void Notify_response_msg::set_allocated_command_key(std::string* command_
   // @@protoc_insertion_point(field_set_allocated:message.Notify_response_msg.command_key)
 }
 
-// required int32 terminal_id = 3;
-inline bool Notify_response_msg::_internal_has_terminal_id() const {
-  bool value = (_has_bits_[0] & 0x00000008u) != 0;
+// required .message.Id_struct id_struct = 3;
+inline bool Notify_response_msg::_internal_has_id_struct() const {
+  bool value = (_has_bits_[0] & 0x00000004u) != 0;
+  PROTOBUF_ASSUME(!value || id_struct_ != nullptr);
   return value;
 }
-inline bool Notify_response_msg::has_terminal_id() const {
-  return _internal_has_terminal_id();
+inline bool Notify_response_msg::has_id_struct() const {
+  return _internal_has_id_struct();
 }
-inline void Notify_response_msg::clear_terminal_id() {
-  terminal_id_ = 0;
-  _has_bits_[0] &= ~0x00000008u;
+inline const ::message::Id_struct& Notify_response_msg::_internal_id_struct() const {
+  const ::message::Id_struct* p = id_struct_;
+  return p != nullptr ? *p : *reinterpret_cast<const ::message::Id_struct*>(
+      &::message::_Id_struct_default_instance_);
+}
+inline const ::message::Id_struct& Notify_response_msg::id_struct() const {
+  // @@protoc_insertion_point(field_get:message.Notify_response_msg.id_struct)
+  return _internal_id_struct();
+}
+inline void Notify_response_msg::unsafe_arena_set_allocated_id_struct(
+    ::message::Id_struct* id_struct) {
+  if (GetArena() == nullptr) {
+    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  id_struct_ = id_struct;
+  if (id_struct) {
+    _has_bits_[0] |= 0x00000004u;
+  } else {
+    _has_bits_[0] &= ~0x00000004u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Notify_response_msg.id_struct)
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Notify_response_msg::_internal_terminal_id() const {
-  return terminal_id_;
+inline ::message::Id_struct* Notify_response_msg::release_id_struct() {
+  _has_bits_[0] &= ~0x00000004u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  if (GetArena() != nullptr) {
+    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  }
+  return temp;
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Notify_response_msg::terminal_id() const {
-  // @@protoc_insertion_point(field_get:message.Notify_response_msg.terminal_id)
-  return _internal_terminal_id();
+inline ::message::Id_struct* Notify_response_msg::unsafe_arena_release_id_struct() {
+  // @@protoc_insertion_point(field_release:message.Notify_response_msg.id_struct)
+  _has_bits_[0] &= ~0x00000004u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  return temp;
 }
-inline void Notify_response_msg::_internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _has_bits_[0] |= 0x00000008u;
-  terminal_id_ = value;
+inline ::message::Id_struct* Notify_response_msg::_internal_mutable_id_struct() {
+  _has_bits_[0] |= 0x00000004u;
+  if (id_struct_ == nullptr) {
+    auto* p = CreateMaybeMessage<::message::Id_struct>(GetArena());
+    id_struct_ = p;
+  }
+  return id_struct_;
+}
+inline ::message::Id_struct* Notify_response_msg::mutable_id_struct() {
+  // @@protoc_insertion_point(field_mutable:message.Notify_response_msg.id_struct)
+  return _internal_mutable_id_struct();
 }
-inline void Notify_response_msg::set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _internal_set_terminal_id(value);
-  // @@protoc_insertion_point(field_set:message.Notify_response_msg.terminal_id)
+inline void Notify_response_msg::set_allocated_id_struct(::message::Id_struct* id_struct) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
+  if (message_arena == nullptr) {
+    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  if (id_struct) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct)->GetArena();
+    if (message_arena != submessage_arena) {
+      id_struct = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, id_struct, submessage_arena);
+    }
+    _has_bits_[0] |= 0x00000004u;
+  } else {
+    _has_bits_[0] &= ~0x00000004u;
+  }
+  id_struct_ = id_struct;
+  // @@protoc_insertion_point(field_set_allocated:message.Notify_response_msg.id_struct)
 }
 
 // required .message.Error_manager code = 4;
 inline bool Notify_response_msg::_internal_has_code() const {
-  bool value = (_has_bits_[0] & 0x00000004u) != 0;
+  bool value = (_has_bits_[0] & 0x00000008u) != 0;
   PROTOBUF_ASSUME(!value || code_ != nullptr);
   return value;
 }
@@ -1174,14 +1291,14 @@ inline void Notify_response_msg::unsafe_arena_set_allocated_code(
   }
   code_ = code;
   if (code) {
-    _has_bits_[0] |= 0x00000004u;
+    _has_bits_[0] |= 0x00000008u;
   } else {
-    _has_bits_[0] &= ~0x00000004u;
+    _has_bits_[0] &= ~0x00000008u;
   }
   // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Notify_response_msg.code)
 }
 inline ::message::Error_manager* Notify_response_msg::release_code() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
   ::message::Error_manager* temp = code_;
   code_ = nullptr;
   if (GetArena() != nullptr) {
@@ -1191,13 +1308,13 @@ inline ::message::Error_manager* Notify_response_msg::release_code() {
 }
 inline ::message::Error_manager* Notify_response_msg::unsafe_arena_release_code() {
   // @@protoc_insertion_point(field_release:message.Notify_response_msg.code)
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
   ::message::Error_manager* temp = code_;
   code_ = nullptr;
   return temp;
 }
 inline ::message::Error_manager* Notify_response_msg::_internal_mutable_code() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000008u;
   if (code_ == nullptr) {
     auto* p = CreateMaybeMessage<::message::Error_manager>(GetArena());
     code_ = p;
@@ -1220,9 +1337,9 @@ inline void Notify_response_msg::set_allocated_code(::message::Error_manager* co
       code = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
           message_arena, code, submessage_arena);
     }
-    _has_bits_[0] |= 0x00000004u;
+    _has_bits_[0] |= 0x00000008u;
   } else {
-    _has_bits_[0] &= ~0x00000004u;
+    _has_bits_[0] &= ~0x00000008u;
   }
   code_ = code;
   // @@protoc_insertion_point(field_set_allocated:message.Notify_response_msg.code)
@@ -1311,37 +1428,88 @@ inline void Notify_status_msg::set_allocated_base_info(::message::Base_info* bas
   // @@protoc_insertion_point(field_set_allocated:message.Notify_status_msg.base_info)
 }
 
-// required int32 terminal_id = 2;
-inline bool Notify_status_msg::_internal_has_terminal_id() const {
-  bool value = (_has_bits_[0] & 0x00000004u) != 0;
+// required .message.Id_struct channel = 2;
+inline bool Notify_status_msg::_internal_has_channel() const {
+  bool value = (_has_bits_[0] & 0x00000002u) != 0;
+  PROTOBUF_ASSUME(!value || channel_ != nullptr);
   return value;
 }
-inline bool Notify_status_msg::has_terminal_id() const {
-  return _internal_has_terminal_id();
+inline bool Notify_status_msg::has_channel() const {
+  return _internal_has_channel();
 }
-inline void Notify_status_msg::clear_terminal_id() {
-  terminal_id_ = 0;
-  _has_bits_[0] &= ~0x00000004u;
+inline const ::message::Id_struct& Notify_status_msg::_internal_channel() const {
+  const ::message::Id_struct* p = channel_;
+  return p != nullptr ? *p : *reinterpret_cast<const ::message::Id_struct*>(
+      &::message::_Id_struct_default_instance_);
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Notify_status_msg::_internal_terminal_id() const {
-  return terminal_id_;
+inline const ::message::Id_struct& Notify_status_msg::channel() const {
+  // @@protoc_insertion_point(field_get:message.Notify_status_msg.channel)
+  return _internal_channel();
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Notify_status_msg::terminal_id() const {
-  // @@protoc_insertion_point(field_get:message.Notify_status_msg.terminal_id)
-  return _internal_terminal_id();
+inline void Notify_status_msg::unsafe_arena_set_allocated_channel(
+    ::message::Id_struct* channel) {
+  if (GetArena() == nullptr) {
+    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(channel_);
+  }
+  channel_ = channel;
+  if (channel) {
+    _has_bits_[0] |= 0x00000002u;
+  } else {
+    _has_bits_[0] &= ~0x00000002u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Notify_status_msg.channel)
 }
-inline void Notify_status_msg::_internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _has_bits_[0] |= 0x00000004u;
-  terminal_id_ = value;
+inline ::message::Id_struct* Notify_status_msg::release_channel() {
+  _has_bits_[0] &= ~0x00000002u;
+  ::message::Id_struct* temp = channel_;
+  channel_ = nullptr;
+  if (GetArena() != nullptr) {
+    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  }
+  return temp;
 }
-inline void Notify_status_msg::set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _internal_set_terminal_id(value);
-  // @@protoc_insertion_point(field_set:message.Notify_status_msg.terminal_id)
+inline ::message::Id_struct* Notify_status_msg::unsafe_arena_release_channel() {
+  // @@protoc_insertion_point(field_release:message.Notify_status_msg.channel)
+  _has_bits_[0] &= ~0x00000002u;
+  ::message::Id_struct* temp = channel_;
+  channel_ = nullptr;
+  return temp;
+}
+inline ::message::Id_struct* Notify_status_msg::_internal_mutable_channel() {
+  _has_bits_[0] |= 0x00000002u;
+  if (channel_ == nullptr) {
+    auto* p = CreateMaybeMessage<::message::Id_struct>(GetArena());
+    channel_ = p;
+  }
+  return channel_;
+}
+inline ::message::Id_struct* Notify_status_msg::mutable_channel() {
+  // @@protoc_insertion_point(field_mutable:message.Notify_status_msg.channel)
+  return _internal_mutable_channel();
+}
+inline void Notify_status_msg::set_allocated_channel(::message::Id_struct* channel) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
+  if (message_arena == nullptr) {
+    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(channel_);
+  }
+  if (channel) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(channel)->GetArena();
+    if (message_arena != submessage_arena) {
+      channel = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, channel, submessage_arena);
+    }
+    _has_bits_[0] |= 0x00000002u;
+  } else {
+    _has_bits_[0] &= ~0x00000002u;
+  }
+  channel_ = channel;
+  // @@protoc_insertion_point(field_set_allocated:message.Notify_status_msg.channel)
 }
 
 // required .message.Error_manager error_manager = 3;
 inline bool Notify_status_msg::_internal_has_error_manager() const {
-  bool value = (_has_bits_[0] & 0x00000002u) != 0;
+  bool value = (_has_bits_[0] & 0x00000004u) != 0;
   PROTOBUF_ASSUME(!value || error_manager_ != nullptr);
   return value;
 }
@@ -1364,14 +1532,14 @@ inline void Notify_status_msg::unsafe_arena_set_allocated_error_manager(
   }
   error_manager_ = error_manager;
   if (error_manager) {
-    _has_bits_[0] |= 0x00000002u;
+    _has_bits_[0] |= 0x00000004u;
   } else {
-    _has_bits_[0] &= ~0x00000002u;
+    _has_bits_[0] &= ~0x00000004u;
   }
   // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Notify_status_msg.error_manager)
 }
 inline ::message::Error_manager* Notify_status_msg::release_error_manager() {
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
   ::message::Error_manager* temp = error_manager_;
   error_manager_ = nullptr;
   if (GetArena() != nullptr) {
@@ -1381,13 +1549,13 @@ inline ::message::Error_manager* Notify_status_msg::release_error_manager() {
 }
 inline ::message::Error_manager* Notify_status_msg::unsafe_arena_release_error_manager() {
   // @@protoc_insertion_point(field_release:message.Notify_status_msg.error_manager)
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
   ::message::Error_manager* temp = error_manager_;
   error_manager_ = nullptr;
   return temp;
 }
 inline ::message::Error_manager* Notify_status_msg::_internal_mutable_error_manager() {
-  _has_bits_[0] |= 0x00000002u;
+  _has_bits_[0] |= 0x00000004u;
   if (error_manager_ == nullptr) {
     auto* p = CreateMaybeMessage<::message::Error_manager>(GetArena());
     error_manager_ = p;
@@ -1410,9 +1578,9 @@ inline void Notify_status_msg::set_allocated_error_manager(::message::Error_mana
       error_manager = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
           message_arena, error_manager, submessage_arena);
     }
-    _has_bits_[0] |= 0x00000002u;
+    _has_bits_[0] |= 0x00000004u;
   } else {
-    _has_bits_[0] &= ~0x00000002u;
+    _has_bits_[0] &= ~0x00000004u;
   }
   error_manager_ = error_manager;
   // @@protoc_insertion_point(field_set_allocated:message.Notify_status_msg.error_manager)

+ 3 - 3
message/notify_message.proto

@@ -6,7 +6,7 @@ message Notify_request_msg
 {
     required Base_info                  base_info=1;                 //消息类型
     required string                     command_key=2;
-    required int32                      terminal_id=3;              //终端id
+    required Id_struct                      id_struct=3;              //终端id
     required Car_info                   car_info=4;                  //车辆标识(车牌号)
 }
 
@@ -14,7 +14,7 @@ message Notify_response_msg
 {
     required Base_info                  base_info=1;                 //消息类型
     required string                     command_key=2;
-    required int32                      terminal_id=3;              //终端id
+    required Id_struct                      id_struct=3;              //终端id
     required Error_manager              code=4;                     //请求结果码
 }
 
@@ -23,6 +23,6 @@ message Notify_response_msg
 message Notify_status_msg
 {
     required Base_info                  base_info=1;                 //消息类型
-    required int32                      terminal_id=2;
+    required Id_struct                  channel=2;
     required Error_manager              error_manager = 3;
 }

+ 121 - 99
message/parkspace_allocation_message.pb.cc

@@ -17,6 +17,7 @@
 extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Base_info_message_5fbase_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Car_info_message_5fbase_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Error_manager_message_5fbase_2eproto;
+extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Id_struct_message_5fbase_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_message_5fbase_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Parkspace_info_message_5fbase_2eproto;
 namespace message {
 class Parkspace_allocation_request_msgDefaultTypeInternal {
@@ -100,10 +101,11 @@ static void InitDefaultsscc_info_Parkspace_allocation_request_msg_parkspace_5fal
   ::message::Parkspace_allocation_request_msg::InitAsDefaultInstance();
 }
 
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Parkspace_allocation_request_msg_parkspace_5fallocation_5fmessage_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_Parkspace_allocation_request_msg_parkspace_5fallocation_5fmessage_2eproto}, {
+::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Parkspace_allocation_request_msg_parkspace_5fallocation_5fmessage_2eproto =
+    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 3, 0, InitDefaultsscc_info_Parkspace_allocation_request_msg_parkspace_5fallocation_5fmessage_2eproto}, {
       &scc_info_Base_info_message_5fbase_2eproto.base,
-      &scc_info_Car_info_message_5fbase_2eproto.base,}};
+      &scc_info_Car_info_message_5fbase_2eproto.base,
+      &scc_info_Id_struct_message_5fbase_2eproto.base,}};
 
 static void InitDefaultsscc_info_Parkspace_allocation_response_msg_parkspace_5fallocation_5fmessage_2eproto() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
@@ -298,7 +300,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_parkspace_5fallocation_5fmessa
   PROTOBUF_FIELD_OFFSET(::message::Parkspace_allocation_request_msg, base_info_),
   PROTOBUF_FIELD_OFFSET(::message::Parkspace_allocation_request_msg, command_key_),
   PROTOBUF_FIELD_OFFSET(::message::Parkspace_allocation_request_msg, car_info_),
-  PROTOBUF_FIELD_OFFSET(::message::Parkspace_allocation_request_msg, terminal_id_),
+  PROTOBUF_FIELD_OFFSET(::message::Parkspace_allocation_request_msg, id_struct_),
   1,
   0,
   2,
@@ -492,80 +494,81 @@ static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] =
 
 const char descriptor_table_protodef_parkspace_5fallocation_5fmessage_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
   "\n\"parkspace_allocation_message.proto\022\007me"
-  "ssage\032\022message_base.proto\"\230\001\n Parkspace_"
+  "ssage\032\022message_base.proto\"\252\001\n Parkspace_"
   "allocation_request_msg\022%\n\tbase_info\030\001 \002("
   "\0132\022.message.Base_info\022\023\n\013command_key\030\002 \002"
   "(\t\022#\n\010car_info\030\003 \002(\0132\021.message.Car_info\022"
-  "\023\n\013terminal_id\030\004 \002(\005\"\361\001\n!Parkspace_alloc"
-  "ation_response_msg\022%\n\tbase_info\030\001 \002(\0132\022."
-  "message.Base_info\022\023\n\013command_key\030\002 \002(\t\022-"
-  "\n\rerror_manager\030\003 \002(\0132\026.message.Error_ma"
-  "nager\022<\n\033allocated_parkspace_info_ex\030\004 \003"
-  "(\0132\027.message.Parkspace_info\022#\n\010car_type\030"
-  "\005 \001(\0162\021.message.Car_type\"\177\n\034Parkspace_se"
-  "arch_request_msg\022%\n\tbase_info\030\001 \002(\0132\022.me"
-  "ssage.Base_info\022\023\n\013command_key\030\002 \002(\t\022#\n\010"
-  "car_info\030\003 \002(\0132\021.message.Car_info\"\304\001\n\035Pa"
-  "rkspace_search_response_msg\022%\n\tbase_info"
-  "\030\001 \002(\0132\022.message.Base_info\022\023\n\013command_ke"
-  "y\030\002 \002(\t\022-\n\rerror_manager\030\003 \002(\0132\026.message"
-  ".Error_manager\0228\n\027query_parkspace_info_e"
-  "x\030\004 \003(\0132\027.message.Parkspace_info\"\227\001\n\035Par"
-  "kspace_release_request_msg\022%\n\tbase_info\030"
-  "\001 \002(\0132\022.message.Base_info\022\023\n\013command_key"
-  "\030\002 \002(\t\022:\n\031release_parkspace_info_ex\030\003 \003("
-  "\0132\027.message.Parkspace_info\"\307\001\n\036Parkspace"
-  "_release_response_msg\022%\n\tbase_info\030\001 \002(\013"
-  "2\022.message.Base_info\022\023\n\013command_key\030\002 \002("
-  "\t\022-\n\rerror_manager\030\003 \002(\0132\026.message.Error"
-  "_manager\022:\n\031release_parkspace_info_ex\030\004 "
-  "\003(\0132\027.message.Parkspace_info\"\233\001\n\"Parkspa"
-  "ce_force_update_request_msg\022%\n\tbase_info"
-  "\030\001 \002(\0132\022.message.Base_info\022\023\n\013command_ke"
-  "y\030\002 \002(\t\0229\n\030manual_parkspace_info_ex\030\003 \003("
-  "\0132\027.message.Parkspace_info\"\313\001\n#Parkspace"
-  "_force_update_response_msg\022%\n\tbase_info\030"
-  "\001 \002(\0132\022.message.Base_info\022\023\n\013command_key"
-  "\030\002 \002(\t\022-\n\rerror_manager\030\003 \002(\0132\026.message."
-  "Error_manager\0229\n\030manual_parkspace_info_e"
-  "x\030\004 \003(\0132\027.message.Parkspace_info\"\302\001\n#Par"
-  "kspace_confirm_alloc_request_msg\022%\n\tbase"
-  "_info\030\001 \002(\0132\022.message.Base_info\022\023\n\013comma"
-  "nd_key\030\002 \002(\t\022:\n\031confirm_parkspace_info_e"
-  "x\030\003 \003(\0132\027.message.Parkspace_info\022#\n\010car_"
-  "type\030\004 \001(\0162\021.message.Car_type\"\362\001\n$Parksp"
-  "ace_confirm_alloc_response_msg\022%\n\tbase_i"
-  "nfo\030\001 \002(\0132\022.message.Base_info\022\023\n\013command"
-  "_key\030\002 \002(\t\022-\n\rerror_manager\030\003 \002(\0132\026.mess"
-  "age.Error_manager\022:\n\031confirm_parkspace_i"
-  "nfo_ex\030\004 \003(\0132\027.message.Parkspace_info\022#\n"
-  "\010car_type\030\005 \001(\0162\021.message.Car_type\"\254\003\n\037P"
-  "arkspace_allocation_status_msg\022%\n\tbase_i"
-  "nfo\030\001 \002(\0132\022.message.Base_info\022-\n\rerror_m"
-  "anager\030\002 \002(\0132\026.message.Error_manager\022G\n\032"
-  "database_controller_status\030\003 \002(\0162#.messa"
-  "ge.Database_controller_status\022A\n\027parkspa"
-  "ce_manager_satus\030\004 \002(\0162 .message.Parkspa"
-  "ce_manager_satus\022(\n small_parkspace_rema"
-  "ining_number\030\005 \002(\005\022)\n!medium_parkspace_r"
-  "emaining_number\030\006 \002(\005\022(\n large_parkspace"
-  "_remaining_number\030\007 \002(\005\022(\n total_parkspa"
-  "ce_remaining_number\030\010 \002(\005\"F\n\035Parkspace_r"
-  "efresh_request_msg\022%\n\tbase_info\030\001 \002(\0132\022."
-  "message.Base_info\"\251\001\n\035Parkspace_allocati"
-  "on_data_msg\022%\n\tbase_info\030\001 \002(\0132\022.message"
-  ".Base_info\022-\n\rerror_manager\030\002 \002(\0132\026.mess"
-  "age.Error_manager\0222\n\021parkspace_info_ex\030\003"
-  " \003(\0132\027.message.Parkspace_info*\225\001\n\016Vehicl"
-  "e_status\022\024\n\020eVehicle_unknown\020\000\022\021\n\reVehic"
-  "le_idle\020\001\022\026\n\022eVehicle_in_garage\020\002\022\024\n\020eVe"
-  "hicle_parking\020\003\022\025\n\021eVehicle_fetching\020\004\022\025"
-  "\n\021eVehicle_reserved\020\005*W\n\032Database_contro"
-  "ller_status\022\r\n\tE_UNKNOWN\020\000\022\013\n\007E_READY\020\001\022"
-  "\020\n\014E_DISCONNECT\020\002\022\013\n\007E_FAULT\020\003*v\n\027Parksp"
-  "ace_manager_satus\022\036\n\032eParkspace_manager_"
-  "unknown\020\000\022\035\n\031eParkspace_manager_normal\020\001"
-  "\022\034\n\030eParkspace_manager_fault\020\002"
+  "%\n\tid_struct\030\004 \002(\0132\022.message.Id_struct\"\361"
+  "\001\n!Parkspace_allocation_response_msg\022%\n\t"
+  "base_info\030\001 \002(\0132\022.message.Base_info\022\023\n\013c"
+  "ommand_key\030\002 \002(\t\022-\n\rerror_manager\030\003 \002(\0132"
+  "\026.message.Error_manager\022<\n\033allocated_par"
+  "kspace_info_ex\030\004 \003(\0132\027.message.Parkspace"
+  "_info\022#\n\010car_type\030\005 \001(\0162\021.message.Car_ty"
+  "pe\"\177\n\034Parkspace_search_request_msg\022%\n\tba"
+  "se_info\030\001 \002(\0132\022.message.Base_info\022\023\n\013com"
+  "mand_key\030\002 \002(\t\022#\n\010car_info\030\003 \002(\0132\021.messa"
+  "ge.Car_info\"\304\001\n\035Parkspace_search_respons"
+  "e_msg\022%\n\tbase_info\030\001 \002(\0132\022.message.Base_"
+  "info\022\023\n\013command_key\030\002 \002(\t\022-\n\rerror_manag"
+  "er\030\003 \002(\0132\026.message.Error_manager\0228\n\027quer"
+  "y_parkspace_info_ex\030\004 \003(\0132\027.message.Park"
+  "space_info\"\227\001\n\035Parkspace_release_request"
+  "_msg\022%\n\tbase_info\030\001 \002(\0132\022.message.Base_i"
+  "nfo\022\023\n\013command_key\030\002 \002(\t\022:\n\031release_park"
+  "space_info_ex\030\003 \003(\0132\027.message.Parkspace_"
+  "info\"\307\001\n\036Parkspace_release_response_msg\022"
+  "%\n\tbase_info\030\001 \002(\0132\022.message.Base_info\022\023"
+  "\n\013command_key\030\002 \002(\t\022-\n\rerror_manager\030\003 \002"
+  "(\0132\026.message.Error_manager\022:\n\031release_pa"
+  "rkspace_info_ex\030\004 \003(\0132\027.message.Parkspac"
+  "e_info\"\233\001\n\"Parkspace_force_update_reques"
+  "t_msg\022%\n\tbase_info\030\001 \002(\0132\022.message.Base_"
+  "info\022\023\n\013command_key\030\002 \002(\t\0229\n\030manual_park"
+  "space_info_ex\030\003 \003(\0132\027.message.Parkspace_"
+  "info\"\313\001\n#Parkspace_force_update_response"
+  "_msg\022%\n\tbase_info\030\001 \002(\0132\022.message.Base_i"
+  "nfo\022\023\n\013command_key\030\002 \002(\t\022-\n\rerror_manage"
+  "r\030\003 \002(\0132\026.message.Error_manager\0229\n\030manua"
+  "l_parkspace_info_ex\030\004 \003(\0132\027.message.Park"
+  "space_info\"\302\001\n#Parkspace_confirm_alloc_r"
+  "equest_msg\022%\n\tbase_info\030\001 \002(\0132\022.message."
+  "Base_info\022\023\n\013command_key\030\002 \002(\t\022:\n\031confir"
+  "m_parkspace_info_ex\030\003 \003(\0132\027.message.Park"
+  "space_info\022#\n\010car_type\030\004 \001(\0162\021.message.C"
+  "ar_type\"\362\001\n$Parkspace_confirm_alloc_resp"
+  "onse_msg\022%\n\tbase_info\030\001 \002(\0132\022.message.Ba"
+  "se_info\022\023\n\013command_key\030\002 \002(\t\022-\n\rerror_ma"
+  "nager\030\003 \002(\0132\026.message.Error_manager\022:\n\031c"
+  "onfirm_parkspace_info_ex\030\004 \003(\0132\027.message"
+  ".Parkspace_info\022#\n\010car_type\030\005 \001(\0162\021.mess"
+  "age.Car_type\"\254\003\n\037Parkspace_allocation_st"
+  "atus_msg\022%\n\tbase_info\030\001 \002(\0132\022.message.Ba"
+  "se_info\022-\n\rerror_manager\030\002 \002(\0132\026.message"
+  ".Error_manager\022G\n\032database_controller_st"
+  "atus\030\003 \002(\0162#.message.Database_controller"
+  "_status\022A\n\027parkspace_manager_satus\030\004 \002(\016"
+  "2 .message.Parkspace_manager_satus\022(\n sm"
+  "all_parkspace_remaining_number\030\005 \002(\005\022)\n!"
+  "medium_parkspace_remaining_number\030\006 \002(\005\022"
+  "(\n large_parkspace_remaining_number\030\007 \002("
+  "\005\022(\n total_parkspace_remaining_number\030\010 "
+  "\002(\005\"F\n\035Parkspace_refresh_request_msg\022%\n\t"
+  "base_info\030\001 \002(\0132\022.message.Base_info\"\251\001\n\035"
+  "Parkspace_allocation_data_msg\022%\n\tbase_in"
+  "fo\030\001 \002(\0132\022.message.Base_info\022-\n\rerror_ma"
+  "nager\030\002 \002(\0132\026.message.Error_manager\0222\n\021p"
+  "arkspace_info_ex\030\003 \003(\0132\027.message.Parkspa"
+  "ce_info*\225\001\n\016Vehicle_status\022\024\n\020eVehicle_u"
+  "nknown\020\000\022\021\n\reVehicle_idle\020\001\022\026\n\022eVehicle_"
+  "in_garage\020\002\022\024\n\020eVehicle_parking\020\003\022\025\n\021eVe"
+  "hicle_fetching\020\004\022\025\n\021eVehicle_reserved\020\005*"
+  "W\n\032Database_controller_status\022\r\n\tE_UNKNO"
+  "WN\020\000\022\013\n\007E_READY\020\001\022\020\n\014E_DISCONNECT\020\002\022\013\n\007E"
+  "_FAULT\020\003*v\n\027Parkspace_manager_satus\022\036\n\032e"
+  "Parkspace_manager_unknown\020\000\022\035\n\031eParkspac"
+  "e_manager_normal\020\001\022\034\n\030eParkspace_manager"
+  "_fault\020\002"
   ;
 static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_parkspace_5fallocation_5fmessage_2eproto_deps[1] = {
   &::descriptor_table_message_5fbase_2eproto,
@@ -587,7 +590,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_par
 };
 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_parkspace_5fallocation_5fmessage_2eproto_once;
 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_parkspace_5fallocation_5fmessage_2eproto = {
-  false, false, descriptor_table_protodef_parkspace_5fallocation_5fmessage_2eproto, "parkspace_allocation_message.proto", 2990,
+  false, false, descriptor_table_protodef_parkspace_5fallocation_5fmessage_2eproto, "parkspace_allocation_message.proto", 3008,
   &descriptor_table_parkspace_5fallocation_5fmessage_2eproto_once, descriptor_table_parkspace_5fallocation_5fmessage_2eproto_sccs, descriptor_table_parkspace_5fallocation_5fmessage_2eproto_deps, 13, 1,
   schemas, file_default_instances, TableStruct_parkspace_5fallocation_5fmessage_2eproto::offsets,
   file_level_metadata_parkspace_5fallocation_5fmessage_2eproto, 13, file_level_enum_descriptors_parkspace_5fallocation_5fmessage_2eproto, file_level_service_descriptors_parkspace_5fallocation_5fmessage_2eproto,
@@ -653,6 +656,8 @@ void Parkspace_allocation_request_msg::InitAsDefaultInstance() {
       ::message::Base_info::internal_default_instance());
   ::message::_Parkspace_allocation_request_msg_default_instance_._instance.get_mutable()->car_info_ = const_cast< ::message::Car_info*>(
       ::message::Car_info::internal_default_instance());
+  ::message::_Parkspace_allocation_request_msg_default_instance_._instance.get_mutable()->id_struct_ = const_cast< ::message::Id_struct*>(
+      ::message::Id_struct::internal_default_instance());
 }
 class Parkspace_allocation_request_msg::_Internal {
  public:
@@ -668,7 +673,8 @@ class Parkspace_allocation_request_msg::_Internal {
   static void set_has_car_info(HasBits* has_bits) {
     (*has_bits)[0] |= 4u;
   }
-  static void set_has_terminal_id(HasBits* has_bits) {
+  static const ::message::Id_struct& id_struct(const Parkspace_allocation_request_msg* msg);
+  static void set_has_id_struct(HasBits* has_bits) {
     (*has_bits)[0] |= 8u;
   }
   static bool MissingRequiredFields(const HasBits& has_bits) {
@@ -684,6 +690,10 @@ const ::message::Car_info&
 Parkspace_allocation_request_msg::_Internal::car_info(const Parkspace_allocation_request_msg* msg) {
   return *msg->car_info_;
 }
+const ::message::Id_struct&
+Parkspace_allocation_request_msg::_Internal::id_struct(const Parkspace_allocation_request_msg* msg) {
+  return *msg->id_struct_;
+}
 void Parkspace_allocation_request_msg::clear_base_info() {
   if (base_info_ != nullptr) base_info_->Clear();
   _has_bits_[0] &= ~0x00000002u;
@@ -692,6 +702,10 @@ void Parkspace_allocation_request_msg::clear_car_info() {
   if (car_info_ != nullptr) car_info_->Clear();
   _has_bits_[0] &= ~0x00000004u;
 }
+void Parkspace_allocation_request_msg::clear_id_struct() {
+  if (id_struct_ != nullptr) id_struct_->Clear();
+  _has_bits_[0] &= ~0x00000008u;
+}
 Parkspace_allocation_request_msg::Parkspace_allocation_request_msg(::PROTOBUF_NAMESPACE_ID::Arena* arena)
   : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
   SharedCtor();
@@ -717,7 +731,11 @@ Parkspace_allocation_request_msg::Parkspace_allocation_request_msg(const Parkspa
   } else {
     car_info_ = nullptr;
   }
-  terminal_id_ = from.terminal_id_;
+  if (from._internal_has_id_struct()) {
+    id_struct_ = new ::message::Id_struct(*from.id_struct_);
+  } else {
+    id_struct_ = nullptr;
+  }
   // @@protoc_insertion_point(copy_constructor:message.Parkspace_allocation_request_msg)
 }
 
@@ -725,8 +743,8 @@ void Parkspace_allocation_request_msg::SharedCtor() {
   ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Parkspace_allocation_request_msg_parkspace_5fallocation_5fmessage_2eproto.base);
   command_key_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   ::memset(&base_info_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&terminal_id_) -
-      reinterpret_cast<char*>(&base_info_)) + sizeof(terminal_id_));
+      reinterpret_cast<char*>(&id_struct_) -
+      reinterpret_cast<char*>(&base_info_)) + sizeof(id_struct_));
 }
 
 Parkspace_allocation_request_msg::~Parkspace_allocation_request_msg() {
@@ -740,6 +758,7 @@ void Parkspace_allocation_request_msg::SharedDtor() {
   command_key_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (this != internal_default_instance()) delete base_info_;
   if (this != internal_default_instance()) delete car_info_;
+  if (this != internal_default_instance()) delete id_struct_;
 }
 
 void Parkspace_allocation_request_msg::ArenaDtor(void* object) {
@@ -764,7 +783,7 @@ void Parkspace_allocation_request_msg::Clear() {
   (void) cached_has_bits;
 
   cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000007u) {
+  if (cached_has_bits & 0x0000000fu) {
     if (cached_has_bits & 0x00000001u) {
       command_key_.ClearNonDefaultToEmpty();
     }
@@ -776,8 +795,11 @@ void Parkspace_allocation_request_msg::Clear() {
       GOOGLE_DCHECK(car_info_ != nullptr);
       car_info_->Clear();
     }
+    if (cached_has_bits & 0x00000008u) {
+      GOOGLE_DCHECK(id_struct_ != nullptr);
+      id_struct_->Clear();
+    }
   }
-  terminal_id_ = 0;
   _has_bits_.Clear();
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
@@ -816,11 +838,10 @@ const char* Parkspace_allocation_request_msg::_InternalParse(const char* ptr, ::
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
-      // required int32 terminal_id = 4;
+      // required .message.Id_struct id_struct = 4;
       case 4:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
-          _Internal::set_has_terminal_id(&has_bits);
-          terminal_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
+          ptr = ctx->ParseMessage(_internal_mutable_id_struct(), ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
@@ -880,10 +901,12 @@ failure:
         3, _Internal::car_info(this), target, stream);
   }
 
-  // required int32 terminal_id = 4;
+  // required .message.Id_struct id_struct = 4;
   if (cached_has_bits & 0x00000008u) {
     target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_terminal_id(), target);
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(
+        4, _Internal::id_struct(this), target, stream);
   }
 
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
@@ -919,11 +942,11 @@ size_t Parkspace_allocation_request_msg::RequiredFieldsByteSizeFallback() const
         *car_info_);
   }
 
-  if (_internal_has_terminal_id()) {
-    // required int32 terminal_id = 4;
+  if (_internal_has_id_struct()) {
+    // required .message.Id_struct id_struct = 4;
     total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-        this->_internal_terminal_id());
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *id_struct_);
   }
 
   return total_size;
@@ -948,10 +971,10 @@ size_t Parkspace_allocation_request_msg::ByteSizeLong() const {
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
         *car_info_);
 
-    // required int32 terminal_id = 4;
+    // required .message.Id_struct id_struct = 4;
     total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-        this->_internal_terminal_id());
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *id_struct_);
 
   } else {
     total_size += RequiredFieldsByteSizeFallback();
@@ -1003,9 +1026,8 @@ void Parkspace_allocation_request_msg::MergeFrom(const Parkspace_allocation_requ
       _internal_mutable_car_info()->::message::Car_info::MergeFrom(from._internal_car_info());
     }
     if (cached_has_bits & 0x00000008u) {
-      terminal_id_ = from.terminal_id_;
+      _internal_mutable_id_struct()->::message::Id_struct::MergeFrom(from._internal_id_struct());
     }
-    _has_bits_[0] |= cached_has_bits;
   }
 }
 
@@ -1037,8 +1059,8 @@ void Parkspace_allocation_request_msg::InternalSwap(Parkspace_allocation_request
   swap(_has_bits_[0], other->_has_bits_[0]);
   command_key_.Swap(&other->command_key_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
   ::PROTOBUF_NAMESPACE_ID::internal::memswap<
-      PROTOBUF_FIELD_OFFSET(Parkspace_allocation_request_msg, terminal_id_)
-      + sizeof(Parkspace_allocation_request_msg::terminal_id_)
+      PROTOBUF_FIELD_OFFSET(Parkspace_allocation_request_msg, id_struct_)
+      + sizeof(Parkspace_allocation_request_msg::id_struct_)
       - PROTOBUF_FIELD_OFFSET(Parkspace_allocation_request_msg, base_info_)>(
           reinterpret_cast<char*>(&base_info_),
           reinterpret_cast<char*>(&other->base_info_));

+ 83 - 27
message/parkspace_allocation_message.pb.h

@@ -315,7 +315,7 @@ class Parkspace_allocation_request_msg PROTOBUF_FINAL :
     kCommandKeyFieldNumber = 2,
     kBaseInfoFieldNumber = 1,
     kCarInfoFieldNumber = 3,
-    kTerminalIdFieldNumber = 4,
+    kIdStructFieldNumber = 4,
   };
   // required string command_key = 2;
   bool has_command_key() const;
@@ -373,18 +373,23 @@ class Parkspace_allocation_request_msg PROTOBUF_FINAL :
       ::message::Car_info* car_info);
   ::message::Car_info* unsafe_arena_release_car_info();
 
-  // required int32 terminal_id = 4;
-  bool has_terminal_id() const;
+  // required .message.Id_struct id_struct = 4;
+  bool has_id_struct() const;
   private:
-  bool _internal_has_terminal_id() const;
+  bool _internal_has_id_struct() const;
   public:
-  void clear_terminal_id();
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id() const;
-  void set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
+  void clear_id_struct();
+  const ::message::Id_struct& id_struct() const;
+  ::message::Id_struct* release_id_struct();
+  ::message::Id_struct* mutable_id_struct();
+  void set_allocated_id_struct(::message::Id_struct* id_struct);
   private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_terminal_id() const;
-  void _internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
+  const ::message::Id_struct& _internal_id_struct() const;
+  ::message::Id_struct* _internal_mutable_id_struct();
   public:
+  void unsafe_arena_set_allocated_id_struct(
+      ::message::Id_struct* id_struct);
+  ::message::Id_struct* unsafe_arena_release_id_struct();
 
   // @@protoc_insertion_point(class_scope:message.Parkspace_allocation_request_msg)
  private:
@@ -401,7 +406,7 @@ class Parkspace_allocation_request_msg PROTOBUF_FINAL :
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr command_key_;
   ::message::Base_info* base_info_;
   ::message::Car_info* car_info_;
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id_;
+  ::message::Id_struct* id_struct_;
   friend struct ::TableStruct_parkspace_5fallocation_5fmessage_2eproto;
 };
 // -------------------------------------------------------------------
@@ -3201,32 +3206,83 @@ inline void Parkspace_allocation_request_msg::set_allocated_car_info(::message::
   // @@protoc_insertion_point(field_set_allocated:message.Parkspace_allocation_request_msg.car_info)
 }
 
-// required int32 terminal_id = 4;
-inline bool Parkspace_allocation_request_msg::_internal_has_terminal_id() const {
+// required .message.Id_struct id_struct = 4;
+inline bool Parkspace_allocation_request_msg::_internal_has_id_struct() const {
   bool value = (_has_bits_[0] & 0x00000008u) != 0;
+  PROTOBUF_ASSUME(!value || id_struct_ != nullptr);
   return value;
 }
-inline bool Parkspace_allocation_request_msg::has_terminal_id() const {
-  return _internal_has_terminal_id();
+inline bool Parkspace_allocation_request_msg::has_id_struct() const {
+  return _internal_has_id_struct();
 }
-inline void Parkspace_allocation_request_msg::clear_terminal_id() {
-  terminal_id_ = 0;
-  _has_bits_[0] &= ~0x00000008u;
+inline const ::message::Id_struct& Parkspace_allocation_request_msg::_internal_id_struct() const {
+  const ::message::Id_struct* p = id_struct_;
+  return p != nullptr ? *p : *reinterpret_cast<const ::message::Id_struct*>(
+      &::message::_Id_struct_default_instance_);
+}
+inline const ::message::Id_struct& Parkspace_allocation_request_msg::id_struct() const {
+  // @@protoc_insertion_point(field_get:message.Parkspace_allocation_request_msg.id_struct)
+  return _internal_id_struct();
+}
+inline void Parkspace_allocation_request_msg::unsafe_arena_set_allocated_id_struct(
+    ::message::Id_struct* id_struct) {
+  if (GetArena() == nullptr) {
+    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  id_struct_ = id_struct;
+  if (id_struct) {
+    _has_bits_[0] |= 0x00000008u;
+  } else {
+    _has_bits_[0] &= ~0x00000008u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Parkspace_allocation_request_msg.id_struct)
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Parkspace_allocation_request_msg::_internal_terminal_id() const {
-  return terminal_id_;
+inline ::message::Id_struct* Parkspace_allocation_request_msg::release_id_struct() {
+  _has_bits_[0] &= ~0x00000008u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  if (GetArena() != nullptr) {
+    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  }
+  return temp;
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Parkspace_allocation_request_msg::terminal_id() const {
-  // @@protoc_insertion_point(field_get:message.Parkspace_allocation_request_msg.terminal_id)
-  return _internal_terminal_id();
+inline ::message::Id_struct* Parkspace_allocation_request_msg::unsafe_arena_release_id_struct() {
+  // @@protoc_insertion_point(field_release:message.Parkspace_allocation_request_msg.id_struct)
+  _has_bits_[0] &= ~0x00000008u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  return temp;
 }
-inline void Parkspace_allocation_request_msg::_internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
+inline ::message::Id_struct* Parkspace_allocation_request_msg::_internal_mutable_id_struct() {
   _has_bits_[0] |= 0x00000008u;
-  terminal_id_ = value;
+  if (id_struct_ == nullptr) {
+    auto* p = CreateMaybeMessage<::message::Id_struct>(GetArena());
+    id_struct_ = p;
+  }
+  return id_struct_;
 }
-inline void Parkspace_allocation_request_msg::set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _internal_set_terminal_id(value);
-  // @@protoc_insertion_point(field_set:message.Parkspace_allocation_request_msg.terminal_id)
+inline ::message::Id_struct* Parkspace_allocation_request_msg::mutable_id_struct() {
+  // @@protoc_insertion_point(field_mutable:message.Parkspace_allocation_request_msg.id_struct)
+  return _internal_mutable_id_struct();
+}
+inline void Parkspace_allocation_request_msg::set_allocated_id_struct(::message::Id_struct* id_struct) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
+  if (message_arena == nullptr) {
+    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  if (id_struct) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct)->GetArena();
+    if (message_arena != submessage_arena) {
+      id_struct = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, id_struct, submessage_arena);
+    }
+    _has_bits_[0] |= 0x00000008u;
+  } else {
+    _has_bits_[0] &= ~0x00000008u;
+  }
+  id_struct_ = id_struct;
+  // @@protoc_insertion_point(field_set_allocated:message.Parkspace_allocation_request_msg.id_struct)
 }
 
 // -------------------------------------------------------------------

+ 1 - 1
message/parkspace_allocation_message.proto

@@ -42,7 +42,7 @@ message Parkspace_allocation_request_msg
     required Base_info                  base_info=1;            //消息类型
     required string                     command_key=2;           //指令唯一标识符id
     required Car_info                   car_info=3;
-    required int32                      terminal_id=4;          //终端id,优化车位分配用
+    required Id_struct                      id_struct=4;          //终端id,优化车位分配用
 }
 
 //分配车位反馈

文件差异内容过多而无法显示
+ 232 - 188
message/process_message.pb.cc


文件差异内容过多而无法显示
+ 315 - 203
message/process_message.pb.h


+ 2 - 2
message/process_message.proto

@@ -123,7 +123,7 @@ message Back_waitfor_leave_step_statu
 message Storing_process_statu_msg
 {
     required Base_info                          base_info=1;
-    required int32                              terminal_id=2;              //终端id
+    required Id_struct                              id_struct=2;              //终端id
     required string                             license=3;
 
     optional Alloc_space_step_statu             alloc_space_step=4;
@@ -142,7 +142,7 @@ message Storing_process_statu_msg
 message Picking_process_statu_msg
 {
     required Base_info                          base_info=1;
-    required int32                              terminal_id=2;              //终端id
+    required Id_struct                              id_struct=2;              //终端id
     required string                             license=3;
     optional Search_space_step_statu            search_space_step=4;
     optional Dispatch_pick_step_statu           dispatch_step=5;

文件差异内容过多而无法显示
+ 256 - 173
message/terminal_message.pb.cc


+ 400 - 176
message/terminal_message.pb.h

@@ -200,9 +200,9 @@ class Store_command_request_msg PROTOBUF_FINAL :
 
   enum : int {
     kBaseInfoFieldNumber = 1,
+    kIdStructFieldNumber = 2,
     kLocateInformationFieldNumber = 3,
     kCarInfoFieldNumber = 4,
-    kTerminalIdFieldNumber = 2,
   };
   // required .message.Base_info base_info = 1;
   bool has_base_info() const;
@@ -222,6 +222,24 @@ class Store_command_request_msg PROTOBUF_FINAL :
       ::message::Base_info* base_info);
   ::message::Base_info* unsafe_arena_release_base_info();
 
+  // required .message.Id_struct id_struct = 2;
+  bool has_id_struct() const;
+  private:
+  bool _internal_has_id_struct() const;
+  public:
+  void clear_id_struct();
+  const ::message::Id_struct& id_struct() const;
+  ::message::Id_struct* release_id_struct();
+  ::message::Id_struct* mutable_id_struct();
+  void set_allocated_id_struct(::message::Id_struct* id_struct);
+  private:
+  const ::message::Id_struct& _internal_id_struct() const;
+  ::message::Id_struct* _internal_mutable_id_struct();
+  public:
+  void unsafe_arena_set_allocated_id_struct(
+      ::message::Id_struct* id_struct);
+  ::message::Id_struct* unsafe_arena_release_id_struct();
+
   // required .message.Locate_information locate_information = 3;
   bool has_locate_information() const;
   private:
@@ -258,19 +276,6 @@ class Store_command_request_msg PROTOBUF_FINAL :
       ::message::Car_info* car_info);
   ::message::Car_info* unsafe_arena_release_car_info();
 
-  // required int32 terminal_id = 2;
-  bool has_terminal_id() const;
-  private:
-  bool _internal_has_terminal_id() const;
-  public:
-  void clear_terminal_id();
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id() const;
-  void set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_terminal_id() const;
-  void _internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
-
   // @@protoc_insertion_point(class_scope:message.Store_command_request_msg)
  private:
   class _Internal;
@@ -284,9 +289,9 @@ class Store_command_request_msg PROTOBUF_FINAL :
   ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
   mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   ::message::Base_info* base_info_;
+  ::message::Id_struct* id_struct_;
   ::message::Locate_information* locate_information_;
   ::message::Car_info* car_info_;
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id_;
   friend struct ::TableStruct_terminal_5fmessage_2eproto;
 };
 // -------------------------------------------------------------------
@@ -413,8 +418,8 @@ class Store_command_response_msg PROTOBUF_FINAL :
   enum : int {
     kLicenseFieldNumber = 4,
     kBaseInfoFieldNumber = 1,
+    kIdStructFieldNumber = 2,
     kCodeFieldNumber = 3,
-    kTerminalIdFieldNumber = 2,
   };
   // optional string license = 4;
   bool has_license() const;
@@ -454,6 +459,24 @@ class Store_command_response_msg PROTOBUF_FINAL :
       ::message::Base_info* base_info);
   ::message::Base_info* unsafe_arena_release_base_info();
 
+  // required .message.Id_struct id_struct = 2;
+  bool has_id_struct() const;
+  private:
+  bool _internal_has_id_struct() const;
+  public:
+  void clear_id_struct();
+  const ::message::Id_struct& id_struct() const;
+  ::message::Id_struct* release_id_struct();
+  ::message::Id_struct* mutable_id_struct();
+  void set_allocated_id_struct(::message::Id_struct* id_struct);
+  private:
+  const ::message::Id_struct& _internal_id_struct() const;
+  ::message::Id_struct* _internal_mutable_id_struct();
+  public:
+  void unsafe_arena_set_allocated_id_struct(
+      ::message::Id_struct* id_struct);
+  ::message::Id_struct* unsafe_arena_release_id_struct();
+
   // required .message.Error_manager code = 3;
   bool has_code() const;
   private:
@@ -472,19 +495,6 @@ class Store_command_response_msg PROTOBUF_FINAL :
       ::message::Error_manager* code);
   ::message::Error_manager* unsafe_arena_release_code();
 
-  // required int32 terminal_id = 2;
-  bool has_terminal_id() const;
-  private:
-  bool _internal_has_terminal_id() const;
-  public:
-  void clear_terminal_id();
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id() const;
-  void set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_terminal_id() const;
-  void _internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
-
   // @@protoc_insertion_point(class_scope:message.Store_command_response_msg)
  private:
   class _Internal;
@@ -499,8 +509,8 @@ class Store_command_response_msg PROTOBUF_FINAL :
   mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr license_;
   ::message::Base_info* base_info_;
+  ::message::Id_struct* id_struct_;
   ::message::Error_manager* code_;
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id_;
   friend struct ::TableStruct_terminal_5fmessage_2eproto;
 };
 // -------------------------------------------------------------------
@@ -626,8 +636,8 @@ class Pickup_command_request_msg PROTOBUF_FINAL :
 
   enum : int {
     kBaseInfoFieldNumber = 1,
+    kIdStructFieldNumber = 2,
     kCarInfoFieldNumber = 4,
-    kTerminalIdFieldNumber = 2,
   };
   // required .message.Base_info base_info = 1;
   bool has_base_info() const;
@@ -647,6 +657,24 @@ class Pickup_command_request_msg PROTOBUF_FINAL :
       ::message::Base_info* base_info);
   ::message::Base_info* unsafe_arena_release_base_info();
 
+  // required .message.Id_struct id_struct = 2;
+  bool has_id_struct() const;
+  private:
+  bool _internal_has_id_struct() const;
+  public:
+  void clear_id_struct();
+  const ::message::Id_struct& id_struct() const;
+  ::message::Id_struct* release_id_struct();
+  ::message::Id_struct* mutable_id_struct();
+  void set_allocated_id_struct(::message::Id_struct* id_struct);
+  private:
+  const ::message::Id_struct& _internal_id_struct() const;
+  ::message::Id_struct* _internal_mutable_id_struct();
+  public:
+  void unsafe_arena_set_allocated_id_struct(
+      ::message::Id_struct* id_struct);
+  ::message::Id_struct* unsafe_arena_release_id_struct();
+
   // required .message.Car_info car_info = 4;
   bool has_car_info() const;
   private:
@@ -665,19 +693,6 @@ class Pickup_command_request_msg PROTOBUF_FINAL :
       ::message::Car_info* car_info);
   ::message::Car_info* unsafe_arena_release_car_info();
 
-  // required int32 terminal_id = 2;
-  bool has_terminal_id() const;
-  private:
-  bool _internal_has_terminal_id() const;
-  public:
-  void clear_terminal_id();
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id() const;
-  void set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_terminal_id() const;
-  void _internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
-
   // @@protoc_insertion_point(class_scope:message.Pickup_command_request_msg)
  private:
   class _Internal;
@@ -691,8 +706,8 @@ class Pickup_command_request_msg PROTOBUF_FINAL :
   ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
   mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   ::message::Base_info* base_info_;
+  ::message::Id_struct* id_struct_;
   ::message::Car_info* car_info_;
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id_;
   friend struct ::TableStruct_terminal_5fmessage_2eproto;
 };
 // -------------------------------------------------------------------
@@ -819,8 +834,8 @@ class Pickup_command_response_msg PROTOBUF_FINAL :
   enum : int {
     kLicenseFieldNumber = 4,
     kBaseInfoFieldNumber = 1,
+    kIdStructFieldNumber = 2,
     kCodeFieldNumber = 3,
-    kTerminalIdFieldNumber = 2,
   };
   // optional string license = 4;
   bool has_license() const;
@@ -860,6 +875,24 @@ class Pickup_command_response_msg PROTOBUF_FINAL :
       ::message::Base_info* base_info);
   ::message::Base_info* unsafe_arena_release_base_info();
 
+  // required .message.Id_struct id_struct = 2;
+  bool has_id_struct() const;
+  private:
+  bool _internal_has_id_struct() const;
+  public:
+  void clear_id_struct();
+  const ::message::Id_struct& id_struct() const;
+  ::message::Id_struct* release_id_struct();
+  ::message::Id_struct* mutable_id_struct();
+  void set_allocated_id_struct(::message::Id_struct* id_struct);
+  private:
+  const ::message::Id_struct& _internal_id_struct() const;
+  ::message::Id_struct* _internal_mutable_id_struct();
+  public:
+  void unsafe_arena_set_allocated_id_struct(
+      ::message::Id_struct* id_struct);
+  ::message::Id_struct* unsafe_arena_release_id_struct();
+
   // required .message.Error_manager code = 3;
   bool has_code() const;
   private:
@@ -878,19 +911,6 @@ class Pickup_command_response_msg PROTOBUF_FINAL :
       ::message::Error_manager* code);
   ::message::Error_manager* unsafe_arena_release_code();
 
-  // required int32 terminal_id = 2;
-  bool has_terminal_id() const;
-  private:
-  bool _internal_has_terminal_id() const;
-  public:
-  void clear_terminal_id();
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id() const;
-  void set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_terminal_id() const;
-  void _internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
-
   // @@protoc_insertion_point(class_scope:message.Pickup_command_response_msg)
  private:
   class _Internal;
@@ -905,8 +925,8 @@ class Pickup_command_response_msg PROTOBUF_FINAL :
   mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr license_;
   ::message::Base_info* base_info_;
+  ::message::Id_struct* id_struct_;
   ::message::Error_manager* code_;
-  ::PROTOBUF_NAMESPACE_ID::int32 terminal_id_;
   friend struct ::TableStruct_terminal_5fmessage_2eproto;
 };
 // ===================================================================
@@ -999,37 +1019,88 @@ inline void Store_command_request_msg::set_allocated_base_info(::message::Base_i
   // @@protoc_insertion_point(field_set_allocated:message.Store_command_request_msg.base_info)
 }
 
-// required int32 terminal_id = 2;
-inline bool Store_command_request_msg::_internal_has_terminal_id() const {
-  bool value = (_has_bits_[0] & 0x00000008u) != 0;
+// required .message.Id_struct id_struct = 2;
+inline bool Store_command_request_msg::_internal_has_id_struct() const {
+  bool value = (_has_bits_[0] & 0x00000002u) != 0;
+  PROTOBUF_ASSUME(!value || id_struct_ != nullptr);
   return value;
 }
-inline bool Store_command_request_msg::has_terminal_id() const {
-  return _internal_has_terminal_id();
+inline bool Store_command_request_msg::has_id_struct() const {
+  return _internal_has_id_struct();
 }
-inline void Store_command_request_msg::clear_terminal_id() {
-  terminal_id_ = 0;
-  _has_bits_[0] &= ~0x00000008u;
+inline const ::message::Id_struct& Store_command_request_msg::_internal_id_struct() const {
+  const ::message::Id_struct* p = id_struct_;
+  return p != nullptr ? *p : *reinterpret_cast<const ::message::Id_struct*>(
+      &::message::_Id_struct_default_instance_);
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Store_command_request_msg::_internal_terminal_id() const {
-  return terminal_id_;
+inline const ::message::Id_struct& Store_command_request_msg::id_struct() const {
+  // @@protoc_insertion_point(field_get:message.Store_command_request_msg.id_struct)
+  return _internal_id_struct();
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Store_command_request_msg::terminal_id() const {
-  // @@protoc_insertion_point(field_get:message.Store_command_request_msg.terminal_id)
-  return _internal_terminal_id();
+inline void Store_command_request_msg::unsafe_arena_set_allocated_id_struct(
+    ::message::Id_struct* id_struct) {
+  if (GetArena() == nullptr) {
+    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  id_struct_ = id_struct;
+  if (id_struct) {
+    _has_bits_[0] |= 0x00000002u;
+  } else {
+    _has_bits_[0] &= ~0x00000002u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Store_command_request_msg.id_struct)
 }
-inline void Store_command_request_msg::_internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _has_bits_[0] |= 0x00000008u;
-  terminal_id_ = value;
+inline ::message::Id_struct* Store_command_request_msg::release_id_struct() {
+  _has_bits_[0] &= ~0x00000002u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  if (GetArena() != nullptr) {
+    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  }
+  return temp;
+}
+inline ::message::Id_struct* Store_command_request_msg::unsafe_arena_release_id_struct() {
+  // @@protoc_insertion_point(field_release:message.Store_command_request_msg.id_struct)
+  _has_bits_[0] &= ~0x00000002u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  return temp;
+}
+inline ::message::Id_struct* Store_command_request_msg::_internal_mutable_id_struct() {
+  _has_bits_[0] |= 0x00000002u;
+  if (id_struct_ == nullptr) {
+    auto* p = CreateMaybeMessage<::message::Id_struct>(GetArena());
+    id_struct_ = p;
+  }
+  return id_struct_;
 }
-inline void Store_command_request_msg::set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _internal_set_terminal_id(value);
-  // @@protoc_insertion_point(field_set:message.Store_command_request_msg.terminal_id)
+inline ::message::Id_struct* Store_command_request_msg::mutable_id_struct() {
+  // @@protoc_insertion_point(field_mutable:message.Store_command_request_msg.id_struct)
+  return _internal_mutable_id_struct();
+}
+inline void Store_command_request_msg::set_allocated_id_struct(::message::Id_struct* id_struct) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
+  if (message_arena == nullptr) {
+    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  if (id_struct) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct)->GetArena();
+    if (message_arena != submessage_arena) {
+      id_struct = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, id_struct, submessage_arena);
+    }
+    _has_bits_[0] |= 0x00000002u;
+  } else {
+    _has_bits_[0] &= ~0x00000002u;
+  }
+  id_struct_ = id_struct;
+  // @@protoc_insertion_point(field_set_allocated:message.Store_command_request_msg.id_struct)
 }
 
 // required .message.Locate_information locate_information = 3;
 inline bool Store_command_request_msg::_internal_has_locate_information() const {
-  bool value = (_has_bits_[0] & 0x00000002u) != 0;
+  bool value = (_has_bits_[0] & 0x00000004u) != 0;
   PROTOBUF_ASSUME(!value || locate_information_ != nullptr);
   return value;
 }
@@ -1052,14 +1123,14 @@ inline void Store_command_request_msg::unsafe_arena_set_allocated_locate_informa
   }
   locate_information_ = locate_information;
   if (locate_information) {
-    _has_bits_[0] |= 0x00000002u;
+    _has_bits_[0] |= 0x00000004u;
   } else {
-    _has_bits_[0] &= ~0x00000002u;
+    _has_bits_[0] &= ~0x00000004u;
   }
   // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Store_command_request_msg.locate_information)
 }
 inline ::message::Locate_information* Store_command_request_msg::release_locate_information() {
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
   ::message::Locate_information* temp = locate_information_;
   locate_information_ = nullptr;
   if (GetArena() != nullptr) {
@@ -1069,13 +1140,13 @@ inline ::message::Locate_information* Store_command_request_msg::release_locate_
 }
 inline ::message::Locate_information* Store_command_request_msg::unsafe_arena_release_locate_information() {
   // @@protoc_insertion_point(field_release:message.Store_command_request_msg.locate_information)
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
   ::message::Locate_information* temp = locate_information_;
   locate_information_ = nullptr;
   return temp;
 }
 inline ::message::Locate_information* Store_command_request_msg::_internal_mutable_locate_information() {
-  _has_bits_[0] |= 0x00000002u;
+  _has_bits_[0] |= 0x00000004u;
   if (locate_information_ == nullptr) {
     auto* p = CreateMaybeMessage<::message::Locate_information>(GetArena());
     locate_information_ = p;
@@ -1098,9 +1169,9 @@ inline void Store_command_request_msg::set_allocated_locate_information(::messag
       locate_information = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
           message_arena, locate_information, submessage_arena);
     }
-    _has_bits_[0] |= 0x00000002u;
+    _has_bits_[0] |= 0x00000004u;
   } else {
-    _has_bits_[0] &= ~0x00000002u;
+    _has_bits_[0] &= ~0x00000004u;
   }
   locate_information_ = locate_information;
   // @@protoc_insertion_point(field_set_allocated:message.Store_command_request_msg.locate_information)
@@ -1108,7 +1179,7 @@ inline void Store_command_request_msg::set_allocated_locate_information(::messag
 
 // required .message.Car_info car_info = 4;
 inline bool Store_command_request_msg::_internal_has_car_info() const {
-  bool value = (_has_bits_[0] & 0x00000004u) != 0;
+  bool value = (_has_bits_[0] & 0x00000008u) != 0;
   PROTOBUF_ASSUME(!value || car_info_ != nullptr);
   return value;
 }
@@ -1131,14 +1202,14 @@ inline void Store_command_request_msg::unsafe_arena_set_allocated_car_info(
   }
   car_info_ = car_info;
   if (car_info) {
-    _has_bits_[0] |= 0x00000004u;
+    _has_bits_[0] |= 0x00000008u;
   } else {
-    _has_bits_[0] &= ~0x00000004u;
+    _has_bits_[0] &= ~0x00000008u;
   }
   // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Store_command_request_msg.car_info)
 }
 inline ::message::Car_info* Store_command_request_msg::release_car_info() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
   ::message::Car_info* temp = car_info_;
   car_info_ = nullptr;
   if (GetArena() != nullptr) {
@@ -1148,13 +1219,13 @@ inline ::message::Car_info* Store_command_request_msg::release_car_info() {
 }
 inline ::message::Car_info* Store_command_request_msg::unsafe_arena_release_car_info() {
   // @@protoc_insertion_point(field_release:message.Store_command_request_msg.car_info)
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
   ::message::Car_info* temp = car_info_;
   car_info_ = nullptr;
   return temp;
 }
 inline ::message::Car_info* Store_command_request_msg::_internal_mutable_car_info() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000008u;
   if (car_info_ == nullptr) {
     auto* p = CreateMaybeMessage<::message::Car_info>(GetArena());
     car_info_ = p;
@@ -1177,9 +1248,9 @@ inline void Store_command_request_msg::set_allocated_car_info(::message::Car_inf
       car_info = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
           message_arena, car_info, submessage_arena);
     }
-    _has_bits_[0] |= 0x00000004u;
+    _has_bits_[0] |= 0x00000008u;
   } else {
-    _has_bits_[0] &= ~0x00000004u;
+    _has_bits_[0] &= ~0x00000008u;
   }
   car_info_ = car_info;
   // @@protoc_insertion_point(field_set_allocated:message.Store_command_request_msg.car_info)
@@ -1268,37 +1339,88 @@ inline void Store_command_response_msg::set_allocated_base_info(::message::Base_
   // @@protoc_insertion_point(field_set_allocated:message.Store_command_response_msg.base_info)
 }
 
-// required int32 terminal_id = 2;
-inline bool Store_command_response_msg::_internal_has_terminal_id() const {
-  bool value = (_has_bits_[0] & 0x00000008u) != 0;
+// required .message.Id_struct id_struct = 2;
+inline bool Store_command_response_msg::_internal_has_id_struct() const {
+  bool value = (_has_bits_[0] & 0x00000004u) != 0;
+  PROTOBUF_ASSUME(!value || id_struct_ != nullptr);
   return value;
 }
-inline bool Store_command_response_msg::has_terminal_id() const {
-  return _internal_has_terminal_id();
+inline bool Store_command_response_msg::has_id_struct() const {
+  return _internal_has_id_struct();
 }
-inline void Store_command_response_msg::clear_terminal_id() {
-  terminal_id_ = 0;
-  _has_bits_[0] &= ~0x00000008u;
+inline const ::message::Id_struct& Store_command_response_msg::_internal_id_struct() const {
+  const ::message::Id_struct* p = id_struct_;
+  return p != nullptr ? *p : *reinterpret_cast<const ::message::Id_struct*>(
+      &::message::_Id_struct_default_instance_);
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Store_command_response_msg::_internal_terminal_id() const {
-  return terminal_id_;
+inline const ::message::Id_struct& Store_command_response_msg::id_struct() const {
+  // @@protoc_insertion_point(field_get:message.Store_command_response_msg.id_struct)
+  return _internal_id_struct();
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Store_command_response_msg::terminal_id() const {
-  // @@protoc_insertion_point(field_get:message.Store_command_response_msg.terminal_id)
-  return _internal_terminal_id();
+inline void Store_command_response_msg::unsafe_arena_set_allocated_id_struct(
+    ::message::Id_struct* id_struct) {
+  if (GetArena() == nullptr) {
+    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  id_struct_ = id_struct;
+  if (id_struct) {
+    _has_bits_[0] |= 0x00000004u;
+  } else {
+    _has_bits_[0] &= ~0x00000004u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Store_command_response_msg.id_struct)
 }
-inline void Store_command_response_msg::_internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _has_bits_[0] |= 0x00000008u;
-  terminal_id_ = value;
+inline ::message::Id_struct* Store_command_response_msg::release_id_struct() {
+  _has_bits_[0] &= ~0x00000004u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  if (GetArena() != nullptr) {
+    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  }
+  return temp;
+}
+inline ::message::Id_struct* Store_command_response_msg::unsafe_arena_release_id_struct() {
+  // @@protoc_insertion_point(field_release:message.Store_command_response_msg.id_struct)
+  _has_bits_[0] &= ~0x00000004u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  return temp;
 }
-inline void Store_command_response_msg::set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _internal_set_terminal_id(value);
-  // @@protoc_insertion_point(field_set:message.Store_command_response_msg.terminal_id)
+inline ::message::Id_struct* Store_command_response_msg::_internal_mutable_id_struct() {
+  _has_bits_[0] |= 0x00000004u;
+  if (id_struct_ == nullptr) {
+    auto* p = CreateMaybeMessage<::message::Id_struct>(GetArena());
+    id_struct_ = p;
+  }
+  return id_struct_;
+}
+inline ::message::Id_struct* Store_command_response_msg::mutable_id_struct() {
+  // @@protoc_insertion_point(field_mutable:message.Store_command_response_msg.id_struct)
+  return _internal_mutable_id_struct();
+}
+inline void Store_command_response_msg::set_allocated_id_struct(::message::Id_struct* id_struct) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
+  if (message_arena == nullptr) {
+    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  if (id_struct) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct)->GetArena();
+    if (message_arena != submessage_arena) {
+      id_struct = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, id_struct, submessage_arena);
+    }
+    _has_bits_[0] |= 0x00000004u;
+  } else {
+    _has_bits_[0] &= ~0x00000004u;
+  }
+  id_struct_ = id_struct;
+  // @@protoc_insertion_point(field_set_allocated:message.Store_command_response_msg.id_struct)
 }
 
 // required .message.Error_manager code = 3;
 inline bool Store_command_response_msg::_internal_has_code() const {
-  bool value = (_has_bits_[0] & 0x00000004u) != 0;
+  bool value = (_has_bits_[0] & 0x00000008u) != 0;
   PROTOBUF_ASSUME(!value || code_ != nullptr);
   return value;
 }
@@ -1321,14 +1443,14 @@ inline void Store_command_response_msg::unsafe_arena_set_allocated_code(
   }
   code_ = code;
   if (code) {
-    _has_bits_[0] |= 0x00000004u;
+    _has_bits_[0] |= 0x00000008u;
   } else {
-    _has_bits_[0] &= ~0x00000004u;
+    _has_bits_[0] &= ~0x00000008u;
   }
   // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Store_command_response_msg.code)
 }
 inline ::message::Error_manager* Store_command_response_msg::release_code() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
   ::message::Error_manager* temp = code_;
   code_ = nullptr;
   if (GetArena() != nullptr) {
@@ -1338,13 +1460,13 @@ inline ::message::Error_manager* Store_command_response_msg::release_code() {
 }
 inline ::message::Error_manager* Store_command_response_msg::unsafe_arena_release_code() {
   // @@protoc_insertion_point(field_release:message.Store_command_response_msg.code)
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
   ::message::Error_manager* temp = code_;
   code_ = nullptr;
   return temp;
 }
 inline ::message::Error_manager* Store_command_response_msg::_internal_mutable_code() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000008u;
   if (code_ == nullptr) {
     auto* p = CreateMaybeMessage<::message::Error_manager>(GetArena());
     code_ = p;
@@ -1367,9 +1489,9 @@ inline void Store_command_response_msg::set_allocated_code(::message::Error_mana
       code = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
           message_arena, code, submessage_arena);
     }
-    _has_bits_[0] |= 0x00000004u;
+    _has_bits_[0] |= 0x00000008u;
   } else {
-    _has_bits_[0] &= ~0x00000004u;
+    _has_bits_[0] &= ~0x00000008u;
   }
   code_ = code;
   // @@protoc_insertion_point(field_set_allocated:message.Store_command_response_msg.code)
@@ -1532,37 +1654,88 @@ inline void Pickup_command_request_msg::set_allocated_base_info(::message::Base_
   // @@protoc_insertion_point(field_set_allocated:message.Pickup_command_request_msg.base_info)
 }
 
-// required int32 terminal_id = 2;
-inline bool Pickup_command_request_msg::_internal_has_terminal_id() const {
-  bool value = (_has_bits_[0] & 0x00000004u) != 0;
+// required .message.Id_struct id_struct = 2;
+inline bool Pickup_command_request_msg::_internal_has_id_struct() const {
+  bool value = (_has_bits_[0] & 0x00000002u) != 0;
+  PROTOBUF_ASSUME(!value || id_struct_ != nullptr);
   return value;
 }
-inline bool Pickup_command_request_msg::has_terminal_id() const {
-  return _internal_has_terminal_id();
+inline bool Pickup_command_request_msg::has_id_struct() const {
+  return _internal_has_id_struct();
 }
-inline void Pickup_command_request_msg::clear_terminal_id() {
-  terminal_id_ = 0;
-  _has_bits_[0] &= ~0x00000004u;
+inline const ::message::Id_struct& Pickup_command_request_msg::_internal_id_struct() const {
+  const ::message::Id_struct* p = id_struct_;
+  return p != nullptr ? *p : *reinterpret_cast<const ::message::Id_struct*>(
+      &::message::_Id_struct_default_instance_);
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Pickup_command_request_msg::_internal_terminal_id() const {
-  return terminal_id_;
+inline const ::message::Id_struct& Pickup_command_request_msg::id_struct() const {
+  // @@protoc_insertion_point(field_get:message.Pickup_command_request_msg.id_struct)
+  return _internal_id_struct();
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Pickup_command_request_msg::terminal_id() const {
-  // @@protoc_insertion_point(field_get:message.Pickup_command_request_msg.terminal_id)
-  return _internal_terminal_id();
+inline void Pickup_command_request_msg::unsafe_arena_set_allocated_id_struct(
+    ::message::Id_struct* id_struct) {
+  if (GetArena() == nullptr) {
+    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  id_struct_ = id_struct;
+  if (id_struct) {
+    _has_bits_[0] |= 0x00000002u;
+  } else {
+    _has_bits_[0] &= ~0x00000002u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Pickup_command_request_msg.id_struct)
 }
-inline void Pickup_command_request_msg::_internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _has_bits_[0] |= 0x00000004u;
-  terminal_id_ = value;
+inline ::message::Id_struct* Pickup_command_request_msg::release_id_struct() {
+  _has_bits_[0] &= ~0x00000002u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  if (GetArena() != nullptr) {
+    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  }
+  return temp;
 }
-inline void Pickup_command_request_msg::set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _internal_set_terminal_id(value);
-  // @@protoc_insertion_point(field_set:message.Pickup_command_request_msg.terminal_id)
+inline ::message::Id_struct* Pickup_command_request_msg::unsafe_arena_release_id_struct() {
+  // @@protoc_insertion_point(field_release:message.Pickup_command_request_msg.id_struct)
+  _has_bits_[0] &= ~0x00000002u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  return temp;
+}
+inline ::message::Id_struct* Pickup_command_request_msg::_internal_mutable_id_struct() {
+  _has_bits_[0] |= 0x00000002u;
+  if (id_struct_ == nullptr) {
+    auto* p = CreateMaybeMessage<::message::Id_struct>(GetArena());
+    id_struct_ = p;
+  }
+  return id_struct_;
+}
+inline ::message::Id_struct* Pickup_command_request_msg::mutable_id_struct() {
+  // @@protoc_insertion_point(field_mutable:message.Pickup_command_request_msg.id_struct)
+  return _internal_mutable_id_struct();
+}
+inline void Pickup_command_request_msg::set_allocated_id_struct(::message::Id_struct* id_struct) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
+  if (message_arena == nullptr) {
+    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  if (id_struct) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct)->GetArena();
+    if (message_arena != submessage_arena) {
+      id_struct = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, id_struct, submessage_arena);
+    }
+    _has_bits_[0] |= 0x00000002u;
+  } else {
+    _has_bits_[0] &= ~0x00000002u;
+  }
+  id_struct_ = id_struct;
+  // @@protoc_insertion_point(field_set_allocated:message.Pickup_command_request_msg.id_struct)
 }
 
 // required .message.Car_info car_info = 4;
 inline bool Pickup_command_request_msg::_internal_has_car_info() const {
-  bool value = (_has_bits_[0] & 0x00000002u) != 0;
+  bool value = (_has_bits_[0] & 0x00000004u) != 0;
   PROTOBUF_ASSUME(!value || car_info_ != nullptr);
   return value;
 }
@@ -1585,14 +1758,14 @@ inline void Pickup_command_request_msg::unsafe_arena_set_allocated_car_info(
   }
   car_info_ = car_info;
   if (car_info) {
-    _has_bits_[0] |= 0x00000002u;
+    _has_bits_[0] |= 0x00000004u;
   } else {
-    _has_bits_[0] &= ~0x00000002u;
+    _has_bits_[0] &= ~0x00000004u;
   }
   // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Pickup_command_request_msg.car_info)
 }
 inline ::message::Car_info* Pickup_command_request_msg::release_car_info() {
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
   ::message::Car_info* temp = car_info_;
   car_info_ = nullptr;
   if (GetArena() != nullptr) {
@@ -1602,13 +1775,13 @@ inline ::message::Car_info* Pickup_command_request_msg::release_car_info() {
 }
 inline ::message::Car_info* Pickup_command_request_msg::unsafe_arena_release_car_info() {
   // @@protoc_insertion_point(field_release:message.Pickup_command_request_msg.car_info)
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
   ::message::Car_info* temp = car_info_;
   car_info_ = nullptr;
   return temp;
 }
 inline ::message::Car_info* Pickup_command_request_msg::_internal_mutable_car_info() {
-  _has_bits_[0] |= 0x00000002u;
+  _has_bits_[0] |= 0x00000004u;
   if (car_info_ == nullptr) {
     auto* p = CreateMaybeMessage<::message::Car_info>(GetArena());
     car_info_ = p;
@@ -1631,9 +1804,9 @@ inline void Pickup_command_request_msg::set_allocated_car_info(::message::Car_in
       car_info = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
           message_arena, car_info, submessage_arena);
     }
-    _has_bits_[0] |= 0x00000002u;
+    _has_bits_[0] |= 0x00000004u;
   } else {
-    _has_bits_[0] &= ~0x00000002u;
+    _has_bits_[0] &= ~0x00000004u;
   }
   car_info_ = car_info;
   // @@protoc_insertion_point(field_set_allocated:message.Pickup_command_request_msg.car_info)
@@ -1722,37 +1895,88 @@ inline void Pickup_command_response_msg::set_allocated_base_info(::message::Base
   // @@protoc_insertion_point(field_set_allocated:message.Pickup_command_response_msg.base_info)
 }
 
-// required int32 terminal_id = 2;
-inline bool Pickup_command_response_msg::_internal_has_terminal_id() const {
-  bool value = (_has_bits_[0] & 0x00000008u) != 0;
+// required .message.Id_struct id_struct = 2;
+inline bool Pickup_command_response_msg::_internal_has_id_struct() const {
+  bool value = (_has_bits_[0] & 0x00000004u) != 0;
+  PROTOBUF_ASSUME(!value || id_struct_ != nullptr);
   return value;
 }
-inline bool Pickup_command_response_msg::has_terminal_id() const {
-  return _internal_has_terminal_id();
+inline bool Pickup_command_response_msg::has_id_struct() const {
+  return _internal_has_id_struct();
 }
-inline void Pickup_command_response_msg::clear_terminal_id() {
-  terminal_id_ = 0;
-  _has_bits_[0] &= ~0x00000008u;
+inline const ::message::Id_struct& Pickup_command_response_msg::_internal_id_struct() const {
+  const ::message::Id_struct* p = id_struct_;
+  return p != nullptr ? *p : *reinterpret_cast<const ::message::Id_struct*>(
+      &::message::_Id_struct_default_instance_);
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Pickup_command_response_msg::_internal_terminal_id() const {
-  return terminal_id_;
+inline const ::message::Id_struct& Pickup_command_response_msg::id_struct() const {
+  // @@protoc_insertion_point(field_get:message.Pickup_command_response_msg.id_struct)
+  return _internal_id_struct();
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Pickup_command_response_msg::terminal_id() const {
-  // @@protoc_insertion_point(field_get:message.Pickup_command_response_msg.terminal_id)
-  return _internal_terminal_id();
+inline void Pickup_command_response_msg::unsafe_arena_set_allocated_id_struct(
+    ::message::Id_struct* id_struct) {
+  if (GetArena() == nullptr) {
+    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  id_struct_ = id_struct;
+  if (id_struct) {
+    _has_bits_[0] |= 0x00000004u;
+  } else {
+    _has_bits_[0] &= ~0x00000004u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Pickup_command_response_msg.id_struct)
 }
-inline void Pickup_command_response_msg::_internal_set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _has_bits_[0] |= 0x00000008u;
-  terminal_id_ = value;
+inline ::message::Id_struct* Pickup_command_response_msg::release_id_struct() {
+  _has_bits_[0] &= ~0x00000004u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  if (GetArena() != nullptr) {
+    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  }
+  return temp;
 }
-inline void Pickup_command_response_msg::set_terminal_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _internal_set_terminal_id(value);
-  // @@protoc_insertion_point(field_set:message.Pickup_command_response_msg.terminal_id)
+inline ::message::Id_struct* Pickup_command_response_msg::unsafe_arena_release_id_struct() {
+  // @@protoc_insertion_point(field_release:message.Pickup_command_response_msg.id_struct)
+  _has_bits_[0] &= ~0x00000004u;
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = nullptr;
+  return temp;
+}
+inline ::message::Id_struct* Pickup_command_response_msg::_internal_mutable_id_struct() {
+  _has_bits_[0] |= 0x00000004u;
+  if (id_struct_ == nullptr) {
+    auto* p = CreateMaybeMessage<::message::Id_struct>(GetArena());
+    id_struct_ = p;
+  }
+  return id_struct_;
+}
+inline ::message::Id_struct* Pickup_command_response_msg::mutable_id_struct() {
+  // @@protoc_insertion_point(field_mutable:message.Pickup_command_response_msg.id_struct)
+  return _internal_mutable_id_struct();
+}
+inline void Pickup_command_response_msg::set_allocated_id_struct(::message::Id_struct* id_struct) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
+  if (message_arena == nullptr) {
+    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct_);
+  }
+  if (id_struct) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(id_struct)->GetArena();
+    if (message_arena != submessage_arena) {
+      id_struct = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, id_struct, submessage_arena);
+    }
+    _has_bits_[0] |= 0x00000004u;
+  } else {
+    _has_bits_[0] &= ~0x00000004u;
+  }
+  id_struct_ = id_struct;
+  // @@protoc_insertion_point(field_set_allocated:message.Pickup_command_response_msg.id_struct)
 }
 
 // required .message.Error_manager code = 3;
 inline bool Pickup_command_response_msg::_internal_has_code() const {
-  bool value = (_has_bits_[0] & 0x00000004u) != 0;
+  bool value = (_has_bits_[0] & 0x00000008u) != 0;
   PROTOBUF_ASSUME(!value || code_ != nullptr);
   return value;
 }
@@ -1775,14 +1999,14 @@ inline void Pickup_command_response_msg::unsafe_arena_set_allocated_code(
   }
   code_ = code;
   if (code) {
-    _has_bits_[0] |= 0x00000004u;
+    _has_bits_[0] |= 0x00000008u;
   } else {
-    _has_bits_[0] &= ~0x00000004u;
+    _has_bits_[0] &= ~0x00000008u;
   }
   // @@protoc_insertion_point(field_unsafe_arena_set_allocated:message.Pickup_command_response_msg.code)
 }
 inline ::message::Error_manager* Pickup_command_response_msg::release_code() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
   ::message::Error_manager* temp = code_;
   code_ = nullptr;
   if (GetArena() != nullptr) {
@@ -1792,13 +2016,13 @@ inline ::message::Error_manager* Pickup_command_response_msg::release_code() {
 }
 inline ::message::Error_manager* Pickup_command_response_msg::unsafe_arena_release_code() {
   // @@protoc_insertion_point(field_release:message.Pickup_command_response_msg.code)
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
   ::message::Error_manager* temp = code_;
   code_ = nullptr;
   return temp;
 }
 inline ::message::Error_manager* Pickup_command_response_msg::_internal_mutable_code() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000008u;
   if (code_ == nullptr) {
     auto* p = CreateMaybeMessage<::message::Error_manager>(GetArena());
     code_ = p;
@@ -1821,9 +2045,9 @@ inline void Pickup_command_response_msg::set_allocated_code(::message::Error_man
       code = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
           message_arena, code, submessage_arena);
     }
-    _has_bits_[0] |= 0x00000004u;
+    _has_bits_[0] |= 0x00000008u;
   } else {
-    _has_bits_[0] &= ~0x00000004u;
+    _has_bits_[0] &= ~0x00000008u;
   }
   code_ = code;
   // @@protoc_insertion_point(field_set_allocated:message.Pickup_command_response_msg.code)

+ 6 - 6
message/terminal_message.proto

@@ -6,7 +6,7 @@ import "message_base.proto";
 message Store_command_request_msg
 {
     required Base_info                  base_info=1;                 //消息类型
-    required int32                      terminal_id=2;              //终端id
+    required Id_struct                      id_struct=2;              //终端id
     required Locate_information         locate_information=3;       //终端测量数据,主要需要车高和车宽
     required Car_info                   car_info=4;                  //车辆标识(车牌号)
 }
@@ -15,7 +15,7 @@ message Store_command_request_msg
 message Store_command_response_msg
 {
     required Base_info                  base_info=1;                 //消息类型
-    required int32                      terminal_id=2;              //终端id
+    required Id_struct                      id_struct=2;              //终端id
     required Error_manager              code=3;            //请求结果码
     optional string                     license=4;
 }
@@ -24,8 +24,8 @@ message Store_command_response_msg
 message Pickup_command_request_msg
 {
     required Base_info                  base_info=1;                 //消息类型
-    required int32                      terminal_id=2;              //终端id
-    required Car_info                    car_info=4;                  //车辆信息
+    required Id_struct                  id_struct=2;              //终端id
+    required Car_info                   car_info=4;                  //车辆信息
 
 }
 
@@ -33,7 +33,7 @@ message Pickup_command_request_msg
 message Pickup_command_response_msg
 {
     required Base_info                  base_info=1;                 //消息类型
-    required int32                      terminal_id=2;              //终端id
+    required Id_struct                  id_struct=2;              //终端id
     required Error_manager              code=3;            //请求结果码
-        optional string                     license=4;
+    optional string                     license=4;
 }

+ 19 - 20
system/PickupProcessTask.cpp

@@ -13,8 +13,8 @@
 #include "exception_solver.h"
 #include "uniq_key.h"
 
-PickupProcessTask::PickupProcessTask(unsigned int terminal_id,message::Car_info car_info)
-       :Process_task(terminal_id,car_info)
+PickupProcessTask::PickupProcessTask(message::Id_struct id,message::Car_info car_info)
+       :Process_task(id,car_info)
 {
     m_process_log.set_process_type(message::ePicking);
 }
@@ -43,7 +43,7 @@ Error_manager PickupProcessTask::init_task(const ::google::protobuf::Message& pa
     {
         return Error_manager(ERROR,NORMAL,"该车牌取车指令已经存在");
     }
-    m_picking_carlicense_terminal_id[m_car_info.car_numberplate()]=m_terminor_id;
+    m_picking_carlicense_terminal_id[m_car_info.car_numberplate()]=m_id.unit_id();
 
     reset_msg();
 
@@ -53,7 +53,7 @@ Error_manager PickupProcessTask::init_task(const ::google::protobuf::Message& pa
     base_info.set_sender(message::eMain);
     base_info.set_receiver(message::eEmpty);
     m_process_msg.mutable_base_info()->CopyFrom(base_info);
-    m_process_msg.set_terminal_id(m_terminor_id);
+    m_process_msg.mutable_id_struct()->CopyFrom(m_id);
     m_process_msg.set_license(m_car_info.license());
 
     m_current_step_type=message::eSearch_step;
@@ -82,7 +82,7 @@ Error_manager PickupProcessTask::search_space_step()
     base_info_response.set_sender(message::eMain);
     base_info_response.set_receiver(message::eTerminor);
     m_command_response_msg.mutable_base_info()->CopyFrom(base_info_response);
-    m_command_response_msg.set_terminal_id(m_terminor_id);
+    m_command_response_msg.mutable_id_struct()->CopyFrom(m_id);
     m_command_response_msg.set_license(m_car_info.license());
 
     if(Command_manager::get_instance_pointer()->is_paused()==true)
@@ -90,7 +90,7 @@ Error_manager PickupProcessTask::search_space_step()
         return Error_manager(PAUSE, MINOR_ERROR, "系统已急停");
     }
 
-    message::Entrance_statu statu=Command_manager::get_instance_pointer()->get_export_statu(m_terminor_id);
+    /*message::Entrance_statu statu=Command_manager::get_instance_pointer()->get_export_statu(m_id.terminal_id());
     if(statu.has_paused()==false) {
         return Error_manager(ERROR, MINOR_ERROR, "出口已禁止使用 Disable");
     }
@@ -98,7 +98,7 @@ Error_manager PickupProcessTask::search_space_step()
     {
         return Error_manager(ERROR, MINOR_ERROR, "出口已禁止使用 Disable");
     }
-
+*/
 
     /*
      * 检验汽车信息是否正常
@@ -212,7 +212,7 @@ void PickupProcessTask::Main()
             Message_communicator::get_instance_pointer()->send_msg(&msg);
             code!=SUCCESS?updata_step_statu(message::eError):updata_step_statu(message::eFinished);
 
-            LOG_IF(ERROR, code != SUCCESS) << "-------  取  -------查询失败,取车终端:"<<m_terminor_id
+            LOG_IF(ERROR, code != SUCCESS) << "-------  取  -------查询失败,取车单元:"<<m_id.unit_id()
                                            <<", 车牌号:"<<m_car_info.license()<<code.get_error_description();
             /*ALOG_IF(ERROR, code != SUCCESS) << "-------  取  -------查询失败,取车终端:"<<m_terminor_id
                                            <<", 车牌号:"<<m_car_info.license()<<code.get_error_description();*/
@@ -223,7 +223,7 @@ void PickupProcessTask::Main()
             updata_step_statu(message::eWorking);
             code=dispatch_step();
             code!=SUCCESS?updata_step_statu(message::eError):updata_step_statu(message::eFinished);
-            LOG_IF(ERROR, code != SUCCESS) << "-------  取  -------取车调度失败,取车终端:"<<m_terminor_id
+            LOG_IF(ERROR, code != SUCCESS) << "-------  取  -------取车调度失败,取车单元:"<<m_id.unit_id()
                                            <<", 车位id:"<<m_search_response_msg.query_parkspace_info_ex(0).parkingspace_room_id()
                                            <<", 车位楼层:"<<m_search_response_msg.query_parkspace_info_ex(0).parkingspace_floor_id()
                                            <<", 车位序号:"<<m_search_response_msg.query_parkspace_info_ex(0).parkingspace_index_id()
@@ -243,13 +243,13 @@ void PickupProcessTask::Main()
             updata_step_statu(message::eWorking);
             code=notify_wait_for_leave_step();
             code!=SUCCESS?updata_step_statu(message::eError):updata_step_statu(message::eFinished);
-            LOG_IF(ERROR, code != SUCCESS) << "-------  取  -------等待车辆离开失败,取车终端:"<<m_terminor_id
+            LOG_IF(ERROR, code != SUCCESS) << "-------  取  -------等待车辆离开失败,取车单元:"<<m_id.unit_id()
                                            <<", 车牌号:"<<m_car_info.license()<<"   出口急停!!!";
             /*ALOG_IF(ERROR, code != SUCCESS) << "-------  取  -------等待车辆离开失败,取车终端:"<<m_terminor_id
                                            <<", 车牌号:"<<m_car_info.license();*/
             //等待车辆离开失败,关闭出口,并进入回退
-            if(code!=SUCCESS)
-                Command_manager::get_instance_pointer()->pause_export(m_terminor_id,true);
+            /*if(code!=SUCCESS)
+                Command_manager::get_instance_pointer()->pause_export(m_terminor_id,true);*/
         }
         if(m_current_step_type== message::eRelease_step)
         {
@@ -336,7 +336,7 @@ void PickupProcessTask::Main()
 
     if(m_cancel_condition.wait_for_millisecond(1)==true) {
         LOG(ERROR) << "-------  取  -------取车任务被强制取消,车牌号:" << m_car_info.license()
-                   << ",  终端号:" << m_terminor_id;
+                   << ",  单元号:" << m_id.unit_id();
         /*ALOG(ERROR) << "-------  取  -------取车任务被强制取消,车牌号:" << m_car_info.license()
                    << ",  终端号:" << m_terminor_id;*/
         usleep(1000*500);
@@ -348,7 +348,7 @@ void PickupProcessTask::Main()
         //异常结束
         usleep(1000*500);
         LOG(ERROR)<<"-------  取  -------异常取车,回退结束"<<"车牌号:"<<m_car_info.license()
-                  <<",xxxxxxxxxxxxxx  终端:"<<m_terminor_id<<"  xxxxxxxxxxxxxx";
+                  <<",xxxxxxxxxxxxxx  单元号:"<<m_id.unit_id()<<"  xxxxxxxxxxxxxx";
         /*ALOG(ERROR)<<"-------  取  -------异常取车,回退结束"<<"车牌号:"<<m_car_info.license()
                   <<",xxxxxxxxxxxxxx  终端:"<<m_terminor_id<<"  xxxxxxxxxxxxxx";*/
     }
@@ -357,7 +357,7 @@ void PickupProcessTask::Main()
         //正常结束
         usleep(1000*500);
         LOG(INFO)<<"-------  取  -------取车结束,"<<"车牌号:"<<m_car_info.license()
-                 <<",--------------  终端:"<<m_terminor_id<<"  --------------";
+                 <<",--------------  单元号:"<<m_id.unit_id()<<"  --------------";
         /*ALOG(INFO)<<"-------  取  -------取车结束,"<<"车牌号:"<<m_car_info.license()
                  <<",--------------  终端:"<<m_terminor_id<<"  --------------";*/
     }
@@ -378,7 +378,7 @@ Error_manager PickupProcessTask::dispatch_step()
     }
 
     //2,判断调度节点状态
-    Error_manager code=Dispatch_excutor::get_instance_pointer()->check_export_statu(m_terminor_id);
+    Error_manager code=Dispatch_excutor::get_instance_pointer()->check_export_statu(m_id.unit_id());
     if(code!=SUCCESS)
         return code;
 
@@ -392,7 +392,7 @@ Error_manager PickupProcessTask::dispatch_step()
 
     m_dispatch_request_msg.set_dispatch_motion_direction(message::E_PICKUP_CAR);
     m_dispatch_request_msg.mutable_parkspace_info_ex()->CopyFrom(m_search_response_msg.query_parkspace_info_ex());
-    m_dispatch_request_msg.set_terminal_id(m_terminor_id);
+    m_dispatch_request_msg.mutable_id_struct()->CopyFrom(m_id);
 
     code=Dispatch_excutor::get_instance_pointer()->dispatch_request(m_dispatch_request_msg,m_dispatch_response_msg,m_cancel_condition);
 
@@ -405,8 +405,7 @@ Error_manager PickupProcessTask::dispatch_step()
         return code;
 
     if(m_dispatch_response_msg.error_manager().error_code()==0) {
-        //临时修改terminal_id
-        m_terminor_id=m_dispatch_response_msg.terminal_id();
+        m_id.CopyFrom(m_dispatch_response_msg.id_struct());
         return SUCCESS;
     }
     else
@@ -441,7 +440,7 @@ Error_manager PickupProcessTask::notify_wait_for_leave_step()
     base_info.set_msg_type(message::eNotify_request_msg);
     base_info.set_timeout_ms(1000*60*60*24);//超时一天
 
-    request.set_terminal_id(m_terminor_id);
+    request.mutable_id_struct()->CopyFrom(m_id);
     request.mutable_base_info()->CopyFrom(base_info);
     request.mutable_car_info()->CopyFrom(m_car_info);
     request.set_command_key(create_key());

+ 1 - 1
system/PickupProcessTask.h

@@ -14,7 +14,7 @@
 class PickupProcessTask :public Process_task{
 
 public:
-    PickupProcessTask(unsigned int terminal_id,message::Car_info car_info);
+    PickupProcessTask(message::Id_struct id,message::Car_info car_info);
     virtual  ~PickupProcessTask();
 
     virtual Error_manager init_task(const ::google::protobuf::Message& parameter);

+ 13 - 13
system/StoreProcessTask.cpp

@@ -13,8 +13,8 @@
 #include "exception_solver.h"
 #include "uniq_key.h"
 
-StoreProcessTask::StoreProcessTask(unsigned int terminor_id,message::Car_info car_info)
-    :Process_task(terminor_id,car_info)
+StoreProcessTask::StoreProcessTask(message::Id_struct id,message::Car_info car_info)
+    :Process_task(id,car_info)
 {
     m_process_log.set_process_type(message::eStoring);
 }
@@ -49,7 +49,7 @@ Error_manager StoreProcessTask::init_task(const ::google::protobuf::Message& par
     {
         return Error_manager(ERROR,NORMAL,"该车牌停车指令已经存在");
     }
-    m_storing_carlicense_terminal_id[m_car_info.car_numberplate()]=m_terminor_id;
+    m_storing_carlicense_terminal_id[m_car_info.car_numberplate()]=m_id.terminal_id();
 
     reset_msg();
     m_locate_info=locate_info;
@@ -60,7 +60,7 @@ Error_manager StoreProcessTask::init_task(const ::google::protobuf::Message& par
     base_info.set_sender(message::eMain);
     base_info.set_receiver(message::eEmpty);
     m_process_msg.mutable_base_info()->CopyFrom(base_info);
-    m_process_msg.set_terminal_id(m_terminor_id);
+    m_process_msg.mutable_id_struct()->CopyFrom(m_id);
     m_process_msg.set_license(m_car_info.license());
 
     m_current_step_type=message::eAlloc_step;
@@ -108,7 +108,7 @@ Error_manager StoreProcessTask::dispatch_step()
     }
 
     //2,判断调度节点状态
-    code=Dispatch_excutor::get_instance_pointer()->check_entrance_statu(m_terminor_id);
+    code=Dispatch_excutor::get_instance_pointer()->check_entrance_statu(m_id.unit_id());
     if(code!=SUCCESS)
         return code;
 
@@ -119,7 +119,7 @@ Error_manager StoreProcessTask::dispatch_step()
     base_info.set_timeout_ms(1000*60*20); //超时20min
     m_dispatch_request_msg.mutable_base_info()->CopyFrom(base_info);
 
-    m_dispatch_request_msg.set_terminal_id(m_terminor_id);
+    m_dispatch_request_msg.mutable_id_struct()->CopyFrom(m_id);
     m_dispatch_request_msg.set_dispatch_motion_direction(message::E_STORE_CAR);
     // 20210812 changed by yct.
     m_dispatch_request_msg.mutable_parkspace_info_ex()->CopyFrom(m_parcspace_alloc_response_msg.allocated_parkspace_info_ex());
@@ -171,7 +171,7 @@ Error_manager StoreProcessTask::alloc_space_step()
     base_info_response.set_sender(message::eMain);
     base_info_response.set_receiver(message::eTerminor);
     m_command_response_msg.mutable_base_info()->CopyFrom(base_info_response);
-    m_command_response_msg.set_terminal_id(m_terminor_id);
+    m_command_response_msg.mutable_id_struct()->CopyFrom(m_id);
     m_command_response_msg.set_license(m_car_info.license());
 
 
@@ -180,7 +180,7 @@ Error_manager StoreProcessTask::alloc_space_step()
         return Error_manager(PAUSE, MINOR_ERROR, "系统已急停");
     }
     //
-    message::Entrance_statu statu=Command_manager::get_instance_pointer()->get_entrance_statu(m_terminor_id);
+    message::Entrance_statu statu=Command_manager::get_instance_pointer()->get_entrance_statu(m_id.terminal_id());
     if(statu.has_paused()==false) {
         return Error_manager(ERROR, MINOR_ERROR, "入口已禁止使用 Disable");
     }
@@ -216,7 +216,7 @@ Error_manager StoreProcessTask::alloc_space_step()
 
     m_alloc_request_msg.mutable_car_info()->CopyFrom(m_car_info);
 
-    m_alloc_request_msg.set_terminal_id(m_terminor_id);
+    m_alloc_request_msg.mutable_id_struct()->CopyFrom(m_id);
 
     code=Parkspace_excutor::get_instance_pointer()->alloc_request(m_alloc_request_msg,
             m_parcspace_alloc_response_msg,m_cancel_condition);
@@ -479,7 +479,7 @@ void StoreProcessTask::Main()
             /*ALOG_IF(WARNING, code != SUCCESS) << "------  停  ------- 占据车位失败,终端:" << m_terminor_id
                                                 << "停车流程:"<<code.get_error_description() <<",车牌:" << m_car_info.license()<<code.to_string();*/
 
-            LOG_IF(WARNING, code != SUCCESS) << "------  停  ------- 占据车位失败,终端:" << m_terminor_id
+            LOG_IF(WARNING, code != SUCCESS) << "------  停  ------- 占据车位失败,终端:" << m_id.terminal_id()
                                                 << "停车流程:" << code.get_error_description()
                                               << ",车牌:" << m_car_info.license()<<code.to_string();
         }
@@ -567,7 +567,7 @@ void StoreProcessTask::Main()
         /*ALOG(ERROR) << "------  停  ------- 停车任务被强制取消,车牌号:" << m_car_info.license()
                    << ",  终端号:" << m_terminor_id;*/
         LOG(ERROR) << "------  停  ------- 停车任务被强制取消,车牌号:" << m_car_info.license()
-                              << ",  终端号:" << m_terminor_id;
+                              << ",  终端号:" << m_id.terminal_id();
         usleep(1000*200);
         return ;
     }
@@ -579,7 +579,7 @@ void StoreProcessTask::Main()
         /*ALOG(WARNING)<<"------  停  ------- 异常停车,回退结束"<<"车牌号:"<<m_car_info.license()
             <<",xxxxxxxxxxxxxx  终端:"<<m_terminor_id<<"  xxxxxxxxxxxxxx";*/
         LOG(WARNING)<<"------  停  ------- 异常停车,回退结束"<<"车牌号:"<<m_car_info.license()
-                               <<",xxxxxxxxxxxxxx  终端:"<<m_terminor_id<<"  xxxxxxxxxxxxxx";
+                               <<",xxxxxxxxxxxxxx  终端:"<<m_id.terminal_id()<<"  xxxxxxxxxxxxxx";
     }
     if(m_current_step_type== message::eComplete)
     {
@@ -588,7 +588,7 @@ void StoreProcessTask::Main()
         /*ALOG(INFO)<<"------  停  ------- 停车结束,"<<"车牌号:"<<m_car_info.license()
             <<",--------------  终端:"<<m_terminor_id<<"  --------------";*/
         LOG(INFO)<<"------  停  ------- 停车结束,"<<"车牌号:"<<m_car_info.license()
-            <<",--------------  终端:"<<m_terminor_id<<"  --------------";
+            <<",--------------  终端:"<<m_id.terminal_id()<<"  --------------";
     }
 
     //return Process_task::Main();

+ 1 - 1
system/StoreProcessTask.h

@@ -14,7 +14,7 @@
 class StoreProcessTask :public Process_task{
 
 public:
-    StoreProcessTask(unsigned int command_id,message::Car_info car_info);
+    StoreProcessTask(message::Id_struct id,message::Car_info car_info);
     virtual  ~StoreProcessTask();
     virtual Error_manager init_task(const ::google::protobuf::Message& parameter);
     // 获取任务类型

+ 16 - 16
system/command_manager.cpp

@@ -179,14 +179,14 @@ Error_manager Command_manager::execute_store_command(const message::Store_comman
     }
 
     //判断entrance是否开放
-    if (request.terminal_id() < 0 || request.terminal_id() >= m_system_setting.entrance_num())
+    if (request.id_struct().terminal_id() < 0 || request.id_struct().terminal_id() >= m_system_setting.entrance_num())
     {
         error_msg.set_error_code(ERROR);
         error_msg.set_error_description(" xxxx entrance id 设置错误");
         response.mutable_code()->CopyFrom(error_msg);
         return Error_manager(ERROR, MINOR_ERROR, " xxxxx entrance id 设置错误");
     }
-    if (m_input_entrance_paused[request.terminal_id()] != false)
+    if (m_input_entrance_paused[request.id_struct().terminal_id()] != false)
     {
         error_msg.set_error_code(ERROR);
         error_msg.set_error_description("中控entrance已停止使用");
@@ -205,7 +205,7 @@ Error_manager Command_manager::execute_store_command(const message::Store_comman
     base_info_response.set_sender(message::eMain);
     base_info_response.set_receiver(message::eTerminor);
     response.mutable_base_info()->CopyFrom(base_info_response);
-    response.set_terminal_id(request.terminal_id());
+    response.mutable_id_struct()->CopyFrom(request.id_struct());
 
     Error_manager code;
     if (request.base_info().msg_type() == message::eStore_command_request_msg
@@ -225,16 +225,16 @@ Error_manager Command_manager::execute_store_command(const message::Store_comman
                     {
 
                         LOG(INFO) << "------  停  ------- 收到停车,车牌:" << request.car_info().license() <<
-                                  ",终端:" << request.terminal_id() << "............................";
+                                  ",终端:" << request.id_struct().terminal_id() << "............................";
                         //check hardwared
                         Error_manager parkspace_code = Parkspace_excutor::get_instance_pointer()->check_statu();
-                        Error_manager dispatch_code = Dispatch_excutor::get_instance_pointer()->check_entrance_statu(request.terminal_id());
+                        Error_manager dispatch_code = Dispatch_excutor::get_instance_pointer()->check_entrance_statu(request.id_struct().terminal_id());
                         if(parkspace_code!=SUCCESS)
                         {
                             error_msg.set_error_code(parkspace_code.get_error_code());
                             error_msg.set_error_description(parkspace_code.to_string());
                             response.mutable_code()->CopyFrom(error_msg);
-                            LOG(ERROR) << "xxxx 创建停车流程失败:" << request.terminal_id() <<
+                            LOG(ERROR) << "xxxx 创建停车流程失败:" << request.id_struct().terminal_id() <<
                                        "车牌:" << request.car_info().license() << "  " << parkspace_code.to_string();
                             Communication_message msg;
                             msg.reset(response.base_info(), response.SerializeAsString());
@@ -246,7 +246,7 @@ Error_manager Command_manager::execute_store_command(const message::Store_comman
                             error_msg.set_error_code(dispatch_code.get_error_code());
                             error_msg.set_error_description(dispatch_code.to_string());
                             response.mutable_code()->CopyFrom(error_msg);
-                            LOG(ERROR) << "xxxx 创建停车流程失败:" << request.terminal_id() <<
+                            LOG(ERROR) << "xxxx 创建停车流程失败:" << request.id_struct().terminal_id() <<
                                        "车牌:" << request.car_info().license() << "  " << dispatch_code.to_string();
                             Communication_message msg;
                             msg.reset(response.base_info(), response.SerializeAsString());
@@ -259,7 +259,7 @@ Error_manager Command_manager::execute_store_command(const message::Store_comman
                          * 检查消息完毕,开始处理
                          */
 
-                        Process_task *ptask = new StoreProcessTask(request.terminal_id(), request.car_info());
+                        Process_task *ptask = new StoreProcessTask(request.id_struct(), request.car_info());
                         StoreProcessTask *pStore_task = (StoreProcessTask *) ptask;
                         //初始化流程
                         code = pStore_task->init_task(locate_info);
@@ -269,7 +269,7 @@ Error_manager Command_manager::execute_store_command(const message::Store_comman
                             error_msg.set_error_code(code.get_error_code());
                             error_msg.set_error_description(code.to_string());
                             response.mutable_code()->CopyFrom(error_msg);
-                            LOG(ERROR) << "xxxx 创建停车流程失败(车位分配失败),终端:" << request.terminal_id() <<
+                            LOG(ERROR) << "xxxx 创建停车流程失败(车位分配失败),终端:" << request.id_struct().terminal_id() <<
                                        "车牌:" << request.car_info().license() << "  " << code.to_string();
 
                             Communication_message msg;
@@ -347,14 +347,14 @@ Error_manager Command_manager::execute_pickup_command(const message::Pickup_comm
     }
 
     //判断出口是否开放
-    if (request.terminal_id() < 0 || request.terminal_id() >= m_system_setting.export_num())
+    /*if (request.id_struct().unit_id() < 0 || request.id_struct().terminal_id() >= m_system_setting.export_num())
     {
         error_msg.set_error_code(ERROR);
         error_msg.set_error_description(" xxxx 出口 id 设置错误");
         response.mutable_code()->CopyFrom(error_msg);
         return Error_manager(ERROR, MINOR_ERROR, " xxxxx出口 id 设置错误");
     }
-    if (m_output_entrance_paused[request.terminal_id()] != false)
+    if (m_output_entrance_paused[request.id_struct().terminal_id()] != false)
     {
         error_msg.set_error_code(ERROR);
         error_msg.set_error_description("中控出口已停止使用");
@@ -364,14 +364,14 @@ Error_manager Command_manager::execute_pickup_command(const message::Pickup_comm
         msg.reset(response.base_info(), response.SerializeAsString());
         Message_communicator::get_instance_pointer()->send_msg(&msg);
         return Error_manager(ERROR, MINOR_ERROR, "中控出口已停止使用");
-    }
+    }*/
 
     if (request.base_info().msg_type() == message::ePickup_command_request_msg
             && request.base_info().receiver() == message::eMain
             && request.base_info().sender() == message::eTerminor
             && request.has_car_info())
     {
-        response.set_terminal_id(request.terminal_id());
+        response.mutable_id_struct()->CopyFrom(request.id_struct());
         /*
         * 检查各个节点是否正常
         */
@@ -388,7 +388,7 @@ Error_manager Command_manager::execute_pickup_command(const message::Pickup_comm
             return parkspace_code;
         }
 
-        Error_manager dispatch_code = Dispatch_excutor::get_instance_pointer()->check_export_statu(request.terminal_id());
+        Error_manager dispatch_code = Dispatch_excutor::get_instance_pointer()->check_export_statu(request.id_struct().unit_id());
         if (dispatch_code != SUCCESS)
         {
             error_msg.set_error_code(dispatch_code.get_error_code());
@@ -417,7 +417,7 @@ Error_manager Command_manager::execute_pickup_command(const message::Pickup_comm
         //一切正常,接受指令
         Error_manager code;
         LOG(WARNING) << "---------  取  -------收到取车-----------------------------" << request.car_info().license();
-        Process_task *ptask = new PickupProcessTask(request.terminal_id(), request.car_info());
+        Process_task *ptask = new PickupProcessTask(request.id_struct(), request.car_info());
         PickupProcessTask *pPick_task = (PickupProcessTask *) ptask;
         //初始化流程
         code = pPick_task->init_task(request);
@@ -431,7 +431,7 @@ Error_manager Command_manager::execute_pickup_command(const message::Pickup_comm
         error_msg.set_error_code(code.get_error_code());
         error_msg.set_error_description(code.to_string());
         response.mutable_code()->CopyFrom(error_msg);
-        LOG(ERROR) << "创建取车流程失败(车位查询失败),终端:" << request.terminal_id() <<
+        LOG(ERROR) << "创建取车流程失败(车位查询失败),单元:" << request.id_struct().unit_id() <<
                    "车牌:" << request.car_info().license() << "  " << code.to_string();
         delete pPick_task;
         Communication_message msg;

+ 2 - 2
system/process_task.cpp

@@ -11,10 +11,10 @@
 thread_safe_map<std::string,int>   Process_task::m_storing_carlicense_terminal_id;
 thread_safe_map<std::string,int>   Process_task::m_picking_carlicense_terminal_id;
 
-Process_task::Process_task(unsigned int terminal_id,message::Car_info car_info)
+Process_task::Process_task(message::Id_struct id,message::Car_info car_info)
         :m_publish_statu_thread(nullptr)
 {
-    m_terminor_id=terminal_id;
+    m_id=id;
     m_car_info=car_info;
     m_step_index=0;
 }

+ 3 - 3
system/process_task.h

@@ -24,14 +24,14 @@
 class Process_task : public tq::BaseTask{
 
 public:
-    Process_task(unsigned int command_id,message::Car_info car_info);
+    Process_task(message::Id_struct id,message::Car_info car_info);
     virtual Error_manager init_task(const ::google::protobuf::Message& parameter);
     virtual ~Process_task();
 
     /*
      * 获取当前任务相关属性
      */
-    unsigned int terminal_id(){return m_terminor_id;}
+    message::Id_struct terminal_id(){return m_id;}
     std::string license(){ return m_car_info.license();}
     message::Step_type current_step_type(){return m_current_step_type;}
     message::Step_statu current_step_statu(){return m_current_step_statu;}
@@ -174,7 +174,7 @@ protected:
 #define ALOG_IF(severity,condition)  Log_container_##severity(this,condition)
 
 protected:
-    unsigned int                            m_terminor_id;
+    message::Id_struct                      m_id;
     message::Car_info                       m_car_info;                         //当前流程的车辆信息
     message::Step_type                      m_current_step_type;                //当前流程正在哪一步
     message::Step_statu                     m_current_step_statu;               //当前步骤所处的状态

+ 1 - 1
test/pickup_terminal.cpp

@@ -28,7 +28,7 @@ Error_manager pickup_terminal::pickup(int terminal_id)
     base_info.set_receiver(message::eMain);
     request.mutable_base_info()->CopyFrom(base_info);
     request.mutable_car_info()->CopyFrom(m_car_info);
-    request.set_terminal_id(terminal_id);
+    request.mutable_id_struct()->set_terminal_id(terminal_id);
     //发送停车请求
     Error_manager code;
     message::Pickup_command_response_msg response;

+ 1 - 1
test/store_terminal.cpp

@@ -38,7 +38,7 @@ Error_manager store_command::storing(int terminal_id)
     locate_info.set_locate_correct(true);
     request.mutable_locate_information()->CopyFrom(locate_info);
 
-    request.set_terminal_id(terminal_id);
+    request.mutable_id_struct()->set_terminal_id(terminal_id);
     //发送停车请求
     Error_manager code;
     message::Store_command_response_msg response;