Przeglądaj źródła

20211129, add id_struct

huli 3 lat temu
rodzic
commit
575a67eab5

+ 1 - 1
dispatch/dispatch_ground_lidar.cpp

@@ -101,7 +101,7 @@ void Dispatch_ground_lidar::execute_thread_fun()
 				std::unique_lock<std::mutex> t_lock2(m_lock);
 
 				//将nnxx的protobuf 转化为 snap7的DB块,  把店面雷达数据转发给plc
-				int t_inlet_id = m_ground_status_msg.terminal_id() % 2;
+				int t_inlet_id = m_ground_status_msg.mutable_id_struct()->terminal_id() % 2;
 				Dispatch_communication::Ground_lidar_response_from_manager_to_plc_for_data *p_response_data = &Dispatch_communication::get_instance_references().m_ground_lidar_response_from_manager_to_plc_for_data[t_inlet_id];
 				Dispatch_communication::Ground_lidar_response_from_manager_to_plc_for_key *p_response_key = &Dispatch_communication::get_instance_references().m_ground_lidar_response_from_manager_to_plc_for_key[t_inlet_id];
 				Dispatch_communication::Ground_lidar_request_from_plc_to_manager *p_request = &Dispatch_communication::get_instance_references().m_ground_lidar_request_from_plc_to_manager[t_inlet_id];

+ 1 - 1
dispatch/dispatch_manager.cpp

@@ -322,7 +322,7 @@ Error_manager Dispatch_manager::release_dispatch_process(std::string command_key
 //调度模块 ///地面雷达的状态消息(地面雷达->null)
 Error_manager Dispatch_manager::execute_for_ground_status_msg(message::Ground_status_msg ground_status_msg)
 {
-	int t_inlet_id = ground_status_msg.terminal_id() %2;
+	int t_inlet_id = ground_status_msg.mutable_id_struct()->terminal_id() %2;
 	return	m_dispatch_ground_lidar[t_inlet_id].execute_for_ground_status_msg(ground_status_msg);
 
 	return Error_code::SUCCESS;

Plik diff jest za duży
+ 497 - 374
message/measure_message.pb.cc


Plik diff jest za duży
+ 452 - 228
message/measure_message.pb.h


+ 11 - 9
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;         //大疆雷达设备状态
@@ -90,7 +90,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
 }
 
 //定位测量返回消息
@@ -98,7 +98,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;
@@ -109,7 +109,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
 }
 
 //地面测量反馈消息
@@ -117,7 +117,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;
@@ -135,14 +135,16 @@ 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;  //万集设备身状态
     required Region_worker_status       region_worker_status = 5;       //万集区域功能的状态
     required Locate_information         locate_information_realtime = 6;//地面雷达的 实时定位信息
     required Ground_statu               ground_status=7; // 电子围栏状态
-    required int32               	border_status=8; // 超界状态,为0表示正常,从末尾开始123456位分别代表前、后、左、右、底盘、车高超界
+    // 超界状态,为0表示正常,从末尾开始123456位分别代表前、后、左、右、底盘、车高超界
+    // 增加超宽、超轴距、左(逆时针)旋转超界,右(顺时针)旋转超界判断,分别处于7 8 9 10四个位
+    required int32               	border_status=8; 
 
     required Error_manager              error_manager = 9;
     repeated Cloud_coordinate           cloud=10;     //点云坐标
@@ -168,7 +170,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;     //点云坐标
 }
@@ -178,7 +180,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;      //错误码

+ 192 - 147
message/notify_message.pb.cc

@@ -46,6 +46,7 @@ void InitDefaultsNotify_request_msgImpl() {
   ::google::protobuf::internal::InitProtobufDefaults();
 #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   protobuf_message_5fbase_2eproto::InitDefaultsBase_info();
+  protobuf_message_5fbase_2eproto::InitDefaultsId_struct();
   protobuf_message_5fbase_2eproto::InitDefaultsCar_info();
   {
     void* ptr = &::message::_Notify_request_msg_default_instance_;
@@ -69,6 +70,7 @@ void InitDefaultsNotify_response_msgImpl() {
   ::google::protobuf::internal::InitProtobufDefaults();
 #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   protobuf_message_5fbase_2eproto::InitDefaultsBase_info();
+  protobuf_message_5fbase_2eproto::InitDefaultsId_struct();
   protobuf_message_5fbase_2eproto::InitDefaultsError_manager();
   {
     void* ptr = &::message::_Notify_response_msg_default_instance_;
@@ -92,6 +94,7 @@ void InitDefaultsNotify_status_msgImpl() {
   ::google::protobuf::internal::InitProtobufDefaults();
 #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   protobuf_message_5fbase_2eproto::InitDefaultsBase_info();
+  protobuf_message_5fbase_2eproto::InitDefaultsId_struct();
   protobuf_message_5fbase_2eproto::InitDefaultsError_manager();
   protobuf_singlechip_5fmsg_2eproto::InitDefaultsSinglechip_data();
   {
@@ -117,12 +120,12 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   ~0u,  // no _weak_field_map_
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_request_msg, base_info_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_request_msg, command_key_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_request_msg, terminal_id_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_request_msg, id_struct_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_request_msg, car_info_),
   1,
   0,
-  3,
   2,
+  3,
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_response_msg, _has_bits_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_response_msg, _internal_metadata_),
   ~0u,  // no _extensions_
@@ -130,26 +133,26 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   ~0u,  // no _weak_field_map_
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_response_msg, base_info_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_response_msg, command_key_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_response_msg, terminal_id_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_response_msg, id_struct_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_response_msg, code_),
   1,
   0,
-  3,
   2,
+  3,
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_status_msg, _has_bits_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_status_msg, _internal_metadata_),
   ~0u,  // no _extensions_
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_status_msg, base_info_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_status_msg, terminal_id_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_status_msg, id_struct_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_status_msg, error_manager_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_status_msg, singlechipdata_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Notify_status_msg, singlechip_validity_),
   0,
-  3,
   1,
   2,
+  3,
   4,
 };
 static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
@@ -187,23 +190,24 @@ void AddDescriptorsImpl() {
   InitDefaults();
   static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
       "\n\024notify_message.proto\022\007message\032\022message"
-      "_base.proto\032\024singlechip_msg.proto\"\212\001\n\022No"
+      "_base.proto\032\024singlechip_msg.proto\"\234\001\n\022No"
       "tify_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\023\n\013"
-      "terminal_id\030\003 \002(\005\022#\n\010car_info\030\004 \002(\0132\021.me"
-      "ssage.Car_info\"\214\001\n\023Notify_response_msg\022%"
-      "\n\tbase_info\030\001 \002(\0132\022.message.Base_info\022\023\n"
-      "\013command_key\030\002 \002(\t\022\023\n\013terminal_id\030\003 \002(\005\022"
-      "$\n\004code\030\004 \002(\0132\026.message.Error_manager\"\315\001"
-      "\n\021Notify_status_msg\022%\n\tbase_info\030\001 \002(\0132\022"
-      ".message.Base_info\022\023\n\013terminal_id\030\002 \002(\005\022"
-      "-\n\rerror_manager\030\003 \002(\0132\026.message.Error_m"
-      "anager\0220\n\016singlechipData\030\004 \001(\0132\030.message"
-      ".Singlechip_data\022\033\n\023singlechip_validity\030"
-      "\005 \001(\010"
+      "ssage.Base_info\022\023\n\013command_key\030\002 \002(\t\022%\n\t"
+      "id_struct\030\003 \002(\0132\022.message.Id_struct\022#\n\010c"
+      "ar_info\030\004 \002(\0132\021.message.Car_info\"\236\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%\n\t"
+      "id_struct\030\003 \002(\0132\022.message.Id_struct\022$\n\004c"
+      "ode\030\004 \002(\0132\026.message.Error_manager\"\337\001\n\021No"
+      "tify_status_msg\022%\n\tbase_info\030\001 \002(\0132\022.mes"
+      "sage.Base_info\022%\n\tid_struct\030\002 \002(\0132\022.mess"
+      "age.Id_struct\022-\n\rerror_manager\030\003 \002(\0132\026.m"
+      "essage.Error_manager\0220\n\016singlechipData\030\004"
+      " \001(\0132\030.message.Singlechip_data\022\033\n\023single"
+      "chip_validity\030\005 \001(\010"
   };
   ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-      descriptor, 565);
+      descriptor, 619);
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
     "notify_message.proto", &protobuf_RegisterTypes);
   ::protobuf_message_5fbase_2eproto::AddDescriptors();
@@ -228,6 +232,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());
 }
@@ -235,6 +241,10 @@ void Notify_request_msg::clear_base_info() {
   if (base_info_ != NULL) base_info_->Clear();
   clear_has_base_info();
 }
+void Notify_request_msg::clear_id_struct() {
+  if (id_struct_ != NULL) id_struct_->Clear();
+  clear_has_id_struct();
+}
 void Notify_request_msg::clear_car_info() {
   if (car_info_ != NULL) car_info_->Clear();
   clear_has_car_info();
@@ -242,7 +252,7 @@ void Notify_request_msg::clear_car_info() {
 #if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int Notify_request_msg::kBaseInfoFieldNumber;
 const int Notify_request_msg::kCommandKeyFieldNumber;
-const int Notify_request_msg::kTerminalIdFieldNumber;
+const int Notify_request_msg::kIdStructFieldNumber;
 const int Notify_request_msg::kCarInfoFieldNumber;
 #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
@@ -269,12 +279,16 @@ Notify_request_msg::Notify_request_msg(const Notify_request_msg& from)
   } else {
     base_info_ = NULL;
   }
+  if (from.has_id_struct()) {
+    id_struct_ = new ::message::Id_struct(*from.id_struct_);
+  } else {
+    id_struct_ = NULL;
+  }
   if (from.has_car_info()) {
     car_info_ = new ::message::Car_info(*from.car_info_);
   } else {
     car_info_ = NULL;
   }
-  terminal_id_ = from.terminal_id_;
   // @@protoc_insertion_point(copy_constructor:message.Notify_request_msg)
 }
 
@@ -282,8 +296,8 @@ void Notify_request_msg::SharedCtor() {
   _cached_size_ = 0;
   command_key_.UnsafeSetDefault(&::google::protobuf::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() {
@@ -294,6 +308,7 @@ Notify_request_msg::~Notify_request_msg() {
 void Notify_request_msg::SharedDtor() {
   command_key_.DestroyNoArena(&::google::protobuf::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_;
 }
 
@@ -327,7 +342,7 @@ void Notify_request_msg::Clear() {
   (void) cached_has_bits;
 
   cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 7u) {
+  if (cached_has_bits & 15u) {
     if (cached_has_bits & 0x00000001u) {
       GOOGLE_DCHECK(!command_key_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
       (*command_key_.UnsafeRawStringPointer())->clear();
@@ -337,11 +352,14 @@ void Notify_request_msg::Clear() {
       base_info_->Clear();
     }
     if (cached_has_bits & 0x00000004u) {
+      GOOGLE_DCHECK(id_struct_ != NULL);
+      id_struct_->Clear();
+    }
+    if (cached_has_bits & 0x00000008u) {
       GOOGLE_DCHECK(car_info_ != NULL);
       car_info_->Clear();
     }
   }
-  terminal_id_ = 0;
   _has_bits_.Clear();
   _internal_metadata_.Clear();
 }
@@ -384,14 +402,12 @@ bool Notify_request_msg::MergePartialFromCodedStream(
         break;
       }
 
-      // required int32 terminal_id = 3;
+      // required .message.Id_struct id_struct = 3;
       case 3: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
-          set_has_terminal_id();
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &terminal_id_)));
+            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+               input, mutable_id_struct()));
         } else {
           goto handle_unusual;
         }
@@ -453,13 +469,14 @@ void Notify_request_msg::SerializeWithCachedSizes(
       2, this->command_key(), output);
   }
 
-  // required int32 terminal_id = 3;
-  if (cached_has_bits & 0x00000008u) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->terminal_id(), output);
+  // required .message.Id_struct id_struct = 3;
+  if (cached_has_bits & 0x00000004u) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      3, *this->id_struct_, output);
   }
 
   // required .message.Car_info car_info = 4;
-  if (cached_has_bits & 0x00000004u) {
+  if (cached_has_bits & 0x00000008u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
       4, *this->car_info_, output);
   }
@@ -497,13 +514,15 @@ void Notify_request_msg::SerializeWithCachedSizes(
         2, this->command_key(), target);
   }
 
-  // required int32 terminal_id = 3;
-  if (cached_has_bits & 0x00000008u) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->terminal_id(), target);
+  // required .message.Id_struct id_struct = 3;
+  if (cached_has_bits & 0x00000004u) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageToArray(
+        3, *this->id_struct_, deterministic, target);
   }
 
   // required .message.Car_info car_info = 4;
-  if (cached_has_bits & 0x00000004u) {
+  if (cached_has_bits & 0x00000008u) {
     target = ::google::protobuf::internal::WireFormatLite::
       InternalWriteMessageToArray(
         4, *this->car_info_, deterministic, target);
@@ -535,18 +554,18 @@ size_t Notify_request_msg::RequiredFieldsByteSizeFallback() const {
         *this->base_info_);
   }
 
-  if (has_car_info()) {
-    // required .message.Car_info car_info = 4;
+  if (has_id_struct()) {
+    // required .message.Id_struct id_struct = 3;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->car_info_);
+        *this->id_struct_);
   }
 
-  if (has_terminal_id()) {
-    // required int32 terminal_id = 3;
+  if (has_car_info()) {
+    // required .message.Car_info car_info = 4;
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->terminal_id());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->car_info_);
   }
 
   return total_size;
@@ -571,15 +590,15 @@ size_t Notify_request_msg::ByteSizeLong() const {
       ::google::protobuf::internal::WireFormatLite::MessageSize(
         *this->base_info_);
 
-    // required .message.Car_info car_info = 4;
+    // required .message.Id_struct id_struct = 3;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->car_info_);
+        *this->id_struct_);
 
-    // required int32 terminal_id = 3;
+    // required .message.Car_info car_info = 4;
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->terminal_id());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->car_info_);
 
   } else {
     total_size += RequiredFieldsByteSizeFallback();
@@ -623,12 +642,11 @@ void Notify_request_msg::MergeFrom(const Notify_request_msg& from) {
       mutable_base_info()->::message::Base_info::MergeFrom(from.base_info());
     }
     if (cached_has_bits & 0x00000004u) {
-      mutable_car_info()->::message::Car_info::MergeFrom(from.car_info());
+      mutable_id_struct()->::message::Id_struct::MergeFrom(from.id_struct());
     }
     if (cached_has_bits & 0x00000008u) {
-      terminal_id_ = from.terminal_id_;
+      mutable_car_info()->::message::Car_info::MergeFrom(from.car_info());
     }
-    _has_bits_[0] |= cached_has_bits;
   }
 }
 
@@ -662,8 +680,8 @@ void Notify_request_msg::InternalSwap(Notify_request_msg* other) {
   using std::swap;
   command_key_.Swap(&other->command_key_);
   swap(base_info_, other->base_info_);
+  swap(id_struct_, other->id_struct_);
   swap(car_info_, other->car_info_);
-  swap(terminal_id_, other->terminal_id_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
   swap(_cached_size_, other->_cached_size_);
@@ -680,6 +698,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());
 }
@@ -687,6 +707,10 @@ void Notify_response_msg::clear_base_info() {
   if (base_info_ != NULL) base_info_->Clear();
   clear_has_base_info();
 }
+void Notify_response_msg::clear_id_struct() {
+  if (id_struct_ != NULL) id_struct_->Clear();
+  clear_has_id_struct();
+}
 void Notify_response_msg::clear_code() {
   if (code_ != NULL) code_->Clear();
   clear_has_code();
@@ -694,7 +718,7 @@ void Notify_response_msg::clear_code() {
 #if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int Notify_response_msg::kBaseInfoFieldNumber;
 const int Notify_response_msg::kCommandKeyFieldNumber;
-const int Notify_response_msg::kTerminalIdFieldNumber;
+const int Notify_response_msg::kIdStructFieldNumber;
 const int Notify_response_msg::kCodeFieldNumber;
 #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
@@ -721,12 +745,16 @@ Notify_response_msg::Notify_response_msg(const Notify_response_msg& from)
   } else {
     base_info_ = NULL;
   }
+  if (from.has_id_struct()) {
+    id_struct_ = new ::message::Id_struct(*from.id_struct_);
+  } else {
+    id_struct_ = NULL;
+  }
   if (from.has_code()) {
     code_ = new ::message::Error_manager(*from.code_);
   } else {
     code_ = NULL;
   }
-  terminal_id_ = from.terminal_id_;
   // @@protoc_insertion_point(copy_constructor:message.Notify_response_msg)
 }
 
@@ -734,8 +762,8 @@ void Notify_response_msg::SharedCtor() {
   _cached_size_ = 0;
   command_key_.UnsafeSetDefault(&::google::protobuf::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() {
@@ -746,6 +774,7 @@ Notify_response_msg::~Notify_response_msg() {
 void Notify_response_msg::SharedDtor() {
   command_key_.DestroyNoArena(&::google::protobuf::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_;
 }
 
@@ -779,7 +808,7 @@ void Notify_response_msg::Clear() {
   (void) cached_has_bits;
 
   cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 7u) {
+  if (cached_has_bits & 15u) {
     if (cached_has_bits & 0x00000001u) {
       GOOGLE_DCHECK(!command_key_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
       (*command_key_.UnsafeRawStringPointer())->clear();
@@ -789,11 +818,14 @@ void Notify_response_msg::Clear() {
       base_info_->Clear();
     }
     if (cached_has_bits & 0x00000004u) {
+      GOOGLE_DCHECK(id_struct_ != NULL);
+      id_struct_->Clear();
+    }
+    if (cached_has_bits & 0x00000008u) {
       GOOGLE_DCHECK(code_ != NULL);
       code_->Clear();
     }
   }
-  terminal_id_ = 0;
   _has_bits_.Clear();
   _internal_metadata_.Clear();
 }
@@ -836,14 +868,12 @@ bool Notify_response_msg::MergePartialFromCodedStream(
         break;
       }
 
-      // required int32 terminal_id = 3;
+      // required .message.Id_struct id_struct = 3;
       case 3: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
-          set_has_terminal_id();
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &terminal_id_)));
+            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+               input, mutable_id_struct()));
         } else {
           goto handle_unusual;
         }
@@ -905,13 +935,14 @@ void Notify_response_msg::SerializeWithCachedSizes(
       2, this->command_key(), output);
   }
 
-  // required int32 terminal_id = 3;
-  if (cached_has_bits & 0x00000008u) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->terminal_id(), output);
+  // required .message.Id_struct id_struct = 3;
+  if (cached_has_bits & 0x00000004u) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      3, *this->id_struct_, output);
   }
 
   // required .message.Error_manager code = 4;
-  if (cached_has_bits & 0x00000004u) {
+  if (cached_has_bits & 0x00000008u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
       4, *this->code_, output);
   }
@@ -949,13 +980,15 @@ void Notify_response_msg::SerializeWithCachedSizes(
         2, this->command_key(), target);
   }
 
-  // required int32 terminal_id = 3;
-  if (cached_has_bits & 0x00000008u) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->terminal_id(), target);
+  // required .message.Id_struct id_struct = 3;
+  if (cached_has_bits & 0x00000004u) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageToArray(
+        3, *this->id_struct_, deterministic, target);
   }
 
   // required .message.Error_manager code = 4;
-  if (cached_has_bits & 0x00000004u) {
+  if (cached_has_bits & 0x00000008u) {
     target = ::google::protobuf::internal::WireFormatLite::
       InternalWriteMessageToArray(
         4, *this->code_, deterministic, target);
@@ -987,18 +1020,18 @@ size_t Notify_response_msg::RequiredFieldsByteSizeFallback() const {
         *this->base_info_);
   }
 
-  if (has_code()) {
-    // required .message.Error_manager code = 4;
+  if (has_id_struct()) {
+    // required .message.Id_struct id_struct = 3;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->code_);
+        *this->id_struct_);
   }
 
-  if (has_terminal_id()) {
-    // required int32 terminal_id = 3;
+  if (has_code()) {
+    // required .message.Error_manager code = 4;
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->terminal_id());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->code_);
   }
 
   return total_size;
@@ -1023,15 +1056,15 @@ size_t Notify_response_msg::ByteSizeLong() const {
       ::google::protobuf::internal::WireFormatLite::MessageSize(
         *this->base_info_);
 
-    // required .message.Error_manager code = 4;
+    // required .message.Id_struct id_struct = 3;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->code_);
+        *this->id_struct_);
 
-    // required int32 terminal_id = 3;
+    // required .message.Error_manager code = 4;
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->terminal_id());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->code_);
 
   } else {
     total_size += RequiredFieldsByteSizeFallback();
@@ -1075,12 +1108,11 @@ void Notify_response_msg::MergeFrom(const Notify_response_msg& from) {
       mutable_base_info()->::message::Base_info::MergeFrom(from.base_info());
     }
     if (cached_has_bits & 0x00000004u) {
-      mutable_code()->::message::Error_manager::MergeFrom(from.code());
+      mutable_id_struct()->::message::Id_struct::MergeFrom(from.id_struct());
     }
     if (cached_has_bits & 0x00000008u) {
-      terminal_id_ = from.terminal_id_;
+      mutable_code()->::message::Error_manager::MergeFrom(from.code());
     }
-    _has_bits_[0] |= cached_has_bits;
   }
 }
 
@@ -1117,8 +1149,8 @@ void Notify_response_msg::InternalSwap(Notify_response_msg* other) {
   using std::swap;
   command_key_.Swap(&other->command_key_);
   swap(base_info_, other->base_info_);
+  swap(id_struct_, other->id_struct_);
   swap(code_, other->code_);
-  swap(terminal_id_, other->terminal_id_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
   swap(_cached_size_, other->_cached_size_);
@@ -1135,6 +1167,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()->id_struct_ = 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());
   ::message::_Notify_status_msg_default_instance_._instance.get_mutable()->singlechipdata_ = const_cast< ::message::Singlechip_data*>(
@@ -1144,6 +1178,10 @@ void Notify_status_msg::clear_base_info() {
   if (base_info_ != NULL) base_info_->Clear();
   clear_has_base_info();
 }
+void Notify_status_msg::clear_id_struct() {
+  if (id_struct_ != NULL) id_struct_->Clear();
+  clear_has_id_struct();
+}
 void Notify_status_msg::clear_error_manager() {
   if (error_manager_ != NULL) error_manager_->Clear();
   clear_has_error_manager();
@@ -1154,7 +1192,7 @@ void Notify_status_msg::clear_singlechipdata() {
 }
 #if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int Notify_status_msg::kBaseInfoFieldNumber;
-const int Notify_status_msg::kTerminalIdFieldNumber;
+const int Notify_status_msg::kIdStructFieldNumber;
 const int Notify_status_msg::kErrorManagerFieldNumber;
 const int Notify_status_msg::kSinglechipDataFieldNumber;
 const int Notify_status_msg::kSinglechipValidityFieldNumber;
@@ -1179,6 +1217,11 @@ Notify_status_msg::Notify_status_msg(const Notify_status_msg& from)
   } else {
     base_info_ = NULL;
   }
+  if (from.has_id_struct()) {
+    id_struct_ = new ::message::Id_struct(*from.id_struct_);
+  } else {
+    id_struct_ = NULL;
+  }
   if (from.has_error_manager()) {
     error_manager_ = new ::message::Error_manager(*from.error_manager_);
   } else {
@@ -1189,9 +1232,7 @@ Notify_status_msg::Notify_status_msg(const Notify_status_msg& from)
   } else {
     singlechipdata_ = NULL;
   }
-  ::memcpy(&terminal_id_, &from.terminal_id_,
-    static_cast<size_t>(reinterpret_cast<char*>(&singlechip_validity_) -
-    reinterpret_cast<char*>(&terminal_id_)) + sizeof(singlechip_validity_));
+  singlechip_validity_ = from.singlechip_validity_;
   // @@protoc_insertion_point(copy_constructor:message.Notify_status_msg)
 }
 
@@ -1209,6 +1250,7 @@ Notify_status_msg::~Notify_status_msg() {
 
 void Notify_status_msg::SharedDtor() {
   if (this != internal_default_instance()) delete base_info_;
+  if (this != internal_default_instance()) delete id_struct_;
   if (this != internal_default_instance()) delete error_manager_;
   if (this != internal_default_instance()) delete singlechipdata_;
 }
@@ -1243,25 +1285,25 @@ void Notify_status_msg::Clear() {
   (void) cached_has_bits;
 
   cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 7u) {
+  if (cached_has_bits & 15u) {
     if (cached_has_bits & 0x00000001u) {
       GOOGLE_DCHECK(base_info_ != NULL);
       base_info_->Clear();
     }
     if (cached_has_bits & 0x00000002u) {
+      GOOGLE_DCHECK(id_struct_ != NULL);
+      id_struct_->Clear();
+    }
+    if (cached_has_bits & 0x00000004u) {
       GOOGLE_DCHECK(error_manager_ != NULL);
       error_manager_->Clear();
     }
-    if (cached_has_bits & 0x00000004u) {
+    if (cached_has_bits & 0x00000008u) {
       GOOGLE_DCHECK(singlechipdata_ != NULL);
       singlechipdata_->Clear();
     }
   }
-  if (cached_has_bits & 24u) {
-    ::memset(&terminal_id_, 0, static_cast<size_t>(
-        reinterpret_cast<char*>(&singlechip_validity_) -
-        reinterpret_cast<char*>(&terminal_id_)) + sizeof(singlechip_validity_));
-  }
+  singlechip_validity_ = false;
   _has_bits_.Clear();
   _internal_metadata_.Clear();
 }
@@ -1288,14 +1330,12 @@ bool Notify_status_msg::MergePartialFromCodedStream(
         break;
       }
 
-      // required int32 terminal_id = 2;
+      // required .message.Id_struct id_struct = 2;
       case 2: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
-          set_has_terminal_id();
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &terminal_id_)));
+            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+               input, mutable_id_struct()));
         } else {
           goto handle_unusual;
         }
@@ -1373,19 +1413,20 @@ void Notify_status_msg::SerializeWithCachedSizes(
       1, *this->base_info_, output);
   }
 
-  // required int32 terminal_id = 2;
-  if (cached_has_bits & 0x00000008u) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->terminal_id(), output);
+  // required .message.Id_struct id_struct = 2;
+  if (cached_has_bits & 0x00000002u) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      2, *this->id_struct_, output);
   }
 
   // required .message.Error_manager error_manager = 3;
-  if (cached_has_bits & 0x00000002u) {
+  if (cached_has_bits & 0x00000004u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
       3, *this->error_manager_, output);
   }
 
   // optional .message.Singlechip_data singlechipData = 4;
-  if (cached_has_bits & 0x00000004u) {
+  if (cached_has_bits & 0x00000008u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
       4, *this->singlechipdata_, output);
   }
@@ -1417,20 +1458,22 @@ void Notify_status_msg::SerializeWithCachedSizes(
         1, *this->base_info_, deterministic, target);
   }
 
-  // required int32 terminal_id = 2;
-  if (cached_has_bits & 0x00000008u) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->terminal_id(), target);
+  // required .message.Id_struct id_struct = 2;
+  if (cached_has_bits & 0x00000002u) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageToArray(
+        2, *this->id_struct_, deterministic, target);
   }
 
   // required .message.Error_manager error_manager = 3;
-  if (cached_has_bits & 0x00000002u) {
+  if (cached_has_bits & 0x00000004u) {
     target = ::google::protobuf::internal::WireFormatLite::
       InternalWriteMessageToArray(
         3, *this->error_manager_, deterministic, target);
   }
 
   // optional .message.Singlechip_data singlechipData = 4;
-  if (cached_has_bits & 0x00000004u) {
+  if (cached_has_bits & 0x00000008u) {
     target = ::google::protobuf::internal::WireFormatLite::
       InternalWriteMessageToArray(
         4, *this->singlechipdata_, deterministic, target);
@@ -1460,18 +1503,18 @@ size_t Notify_status_msg::RequiredFieldsByteSizeFallback() const {
         *this->base_info_);
   }
 
-  if (has_error_manager()) {
-    // required .message.Error_manager error_manager = 3;
+  if (has_id_struct()) {
+    // required .message.Id_struct id_struct = 2;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->error_manager_);
+        *this->id_struct_);
   }
 
-  if (has_terminal_id()) {
-    // required int32 terminal_id = 2;
+  if (has_error_manager()) {
+    // required .message.Error_manager error_manager = 3;
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->terminal_id());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->error_manager_);
   }
 
   return total_size;
@@ -1485,37 +1528,39 @@ size_t Notify_status_msg::ByteSizeLong() const {
       ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
         _internal_metadata_.unknown_fields());
   }
-  if (((_has_bits_[0] & 0x0000000b) ^ 0x0000000b) == 0) {  // All required fields are present.
+  if (((_has_bits_[0] & 0x00000007) ^ 0x00000007) == 0) {  // All required fields are present.
     // required .message.Base_info base_info = 1;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
         *this->base_info_);
 
-    // required .message.Error_manager error_manager = 3;
+    // required .message.Id_struct id_struct = 2;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->error_manager_);
+        *this->id_struct_);
 
-    // required int32 terminal_id = 2;
+    // required .message.Error_manager error_manager = 3;
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->terminal_id());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->error_manager_);
 
   } else {
     total_size += RequiredFieldsByteSizeFallback();
   }
-  // optional .message.Singlechip_data singlechipData = 4;
-  if (has_singlechipdata()) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->singlechipdata_);
-  }
+  if (_has_bits_[0 / 32] & 24u) {
+    // optional .message.Singlechip_data singlechipData = 4;
+    if (has_singlechipdata()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSize(
+          *this->singlechipdata_);
+    }
 
-  // optional bool singlechip_validity = 5;
-  if (has_singlechip_validity()) {
-    total_size += 1 + 1;
-  }
+    // optional bool singlechip_validity = 5;
+    if (has_singlechip_validity()) {
+      total_size += 1 + 1;
+    }
 
+  }
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
   GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
   _cached_size_ = cached_size;
@@ -1551,13 +1596,13 @@ void Notify_status_msg::MergeFrom(const Notify_status_msg& from) {
       mutable_base_info()->::message::Base_info::MergeFrom(from.base_info());
     }
     if (cached_has_bits & 0x00000002u) {
-      mutable_error_manager()->::message::Error_manager::MergeFrom(from.error_manager());
+      mutable_id_struct()->::message::Id_struct::MergeFrom(from.id_struct());
     }
     if (cached_has_bits & 0x00000004u) {
-      mutable_singlechipdata()->::message::Singlechip_data::MergeFrom(from.singlechipdata());
+      mutable_error_manager()->::message::Error_manager::MergeFrom(from.error_manager());
     }
     if (cached_has_bits & 0x00000008u) {
-      terminal_id_ = from.terminal_id_;
+      mutable_singlechipdata()->::message::Singlechip_data::MergeFrom(from.singlechipdata());
     }
     if (cached_has_bits & 0x00000010u) {
       singlechip_validity_ = from.singlechip_validity_;
@@ -1581,7 +1626,7 @@ void Notify_status_msg::CopyFrom(const Notify_status_msg& from) {
 }
 
 bool Notify_status_msg::IsInitialized() const {
-  if ((_has_bits_[0] & 0x0000000b) != 0x0000000b) return false;
+  if ((_has_bits_[0] & 0x00000007) != 0x00000007) return false;
   if (has_base_info()) {
     if (!this->base_info_->IsInitialized()) return false;
   }
@@ -1598,9 +1643,9 @@ void Notify_status_msg::Swap(Notify_status_msg* other) {
 void Notify_status_msg::InternalSwap(Notify_status_msg* other) {
   using std::swap;
   swap(base_info_, other->base_info_);
+  swap(id_struct_, other->id_struct_);
   swap(error_manager_, other->error_manager_);
   swap(singlechipdata_, other->singlechipdata_);
-  swap(terminal_id_, other->terminal_id_);
   swap(singlechip_validity_, other->singlechip_validity_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);

+ 177 - 93
message/notify_message.pb.h

@@ -184,6 +184,15 @@ class Notify_request_msg : public ::google::protobuf::Message /* @@protoc_insert
   ::message::Base_info* mutable_base_info();
   void set_allocated_base_info(::message::Base_info* base_info);
 
+  // required .message.Id_struct id_struct = 3;
+  bool has_id_struct() const;
+  void clear_id_struct();
+  static const int kIdStructFieldNumber = 3;
+  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);
+
   // required .message.Car_info car_info = 4;
   bool has_car_info() const;
   void clear_car_info();
@@ -193,21 +202,14 @@ class Notify_request_msg : public ::google::protobuf::Message /* @@protoc_insert
   ::message::Car_info* mutable_car_info();
   void set_allocated_car_info(::message::Car_info* car_info);
 
-  // required int32 terminal_id = 3;
-  bool has_terminal_id() const;
-  void clear_terminal_id();
-  static const int kTerminalIdFieldNumber = 3;
-  ::google::protobuf::int32 terminal_id() const;
-  void set_terminal_id(::google::protobuf::int32 value);
-
   // @@protoc_insertion_point(class_scope:message.Notify_request_msg)
  private:
   void set_has_base_info();
   void clear_has_base_info();
   void set_has_command_key();
   void clear_has_command_key();
-  void set_has_terminal_id();
-  void clear_has_terminal_id();
+  void set_has_id_struct();
+  void clear_has_id_struct();
   void set_has_car_info();
   void clear_has_car_info();
 
@@ -219,8 +221,8 @@ class Notify_request_msg : public ::google::protobuf::Message /* @@protoc_insert
   mutable int _cached_size_;
   ::google::protobuf::internal::ArenaStringPtr command_key_;
   ::message::Base_info* base_info_;
+  ::message::Id_struct* id_struct_;
   ::message::Car_info* car_info_;
-  ::google::protobuf::int32 terminal_id_;
   friend struct ::protobuf_notify_5fmessage_2eproto::TableStruct;
   friend void ::protobuf_notify_5fmessage_2eproto::InitDefaultsNotify_request_msgImpl();
 };
@@ -339,6 +341,15 @@ class Notify_response_msg : public ::google::protobuf::Message /* @@protoc_inser
   ::message::Base_info* mutable_base_info();
   void set_allocated_base_info(::message::Base_info* base_info);
 
+  // required .message.Id_struct id_struct = 3;
+  bool has_id_struct() const;
+  void clear_id_struct();
+  static const int kIdStructFieldNumber = 3;
+  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);
+
   // required .message.Error_manager code = 4;
   bool has_code() const;
   void clear_code();
@@ -348,21 +359,14 @@ class Notify_response_msg : public ::google::protobuf::Message /* @@protoc_inser
   ::message::Error_manager* mutable_code();
   void set_allocated_code(::message::Error_manager* code);
 
-  // required int32 terminal_id = 3;
-  bool has_terminal_id() const;
-  void clear_terminal_id();
-  static const int kTerminalIdFieldNumber = 3;
-  ::google::protobuf::int32 terminal_id() const;
-  void set_terminal_id(::google::protobuf::int32 value);
-
   // @@protoc_insertion_point(class_scope:message.Notify_response_msg)
  private:
   void set_has_base_info();
   void clear_has_base_info();
   void set_has_command_key();
   void clear_has_command_key();
-  void set_has_terminal_id();
-  void clear_has_terminal_id();
+  void set_has_id_struct();
+  void clear_has_id_struct();
   void set_has_code();
   void clear_has_code();
 
@@ -374,8 +378,8 @@ class Notify_response_msg : public ::google::protobuf::Message /* @@protoc_inser
   mutable int _cached_size_;
   ::google::protobuf::internal::ArenaStringPtr command_key_;
   ::message::Base_info* base_info_;
+  ::message::Id_struct* id_struct_;
   ::message::Error_manager* code_;
-  ::google::protobuf::int32 terminal_id_;
   friend struct ::protobuf_notify_5fmessage_2eproto::TableStruct;
   friend void ::protobuf_notify_5fmessage_2eproto::InitDefaultsNotify_response_msgImpl();
 };
@@ -479,6 +483,15 @@ class Notify_status_msg : public ::google::protobuf::Message /* @@protoc_inserti
   ::message::Base_info* mutable_base_info();
   void set_allocated_base_info(::message::Base_info* base_info);
 
+  // required .message.Id_struct id_struct = 2;
+  bool has_id_struct() const;
+  void clear_id_struct();
+  static const int kIdStructFieldNumber = 2;
+  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);
+
   // required .message.Error_manager error_manager = 3;
   bool has_error_manager() const;
   void clear_error_manager();
@@ -497,13 +510,6 @@ class Notify_status_msg : public ::google::protobuf::Message /* @@protoc_inserti
   ::message::Singlechip_data* mutable_singlechipdata();
   void set_allocated_singlechipdata(::message::Singlechip_data* singlechipdata);
 
-  // required int32 terminal_id = 2;
-  bool has_terminal_id() const;
-  void clear_terminal_id();
-  static const int kTerminalIdFieldNumber = 2;
-  ::google::protobuf::int32 terminal_id() const;
-  void set_terminal_id(::google::protobuf::int32 value);
-
   // optional bool singlechip_validity = 5;
   bool has_singlechip_validity() const;
   void clear_singlechip_validity();
@@ -515,8 +521,8 @@ class Notify_status_msg : public ::google::protobuf::Message /* @@protoc_inserti
  private:
   void set_has_base_info();
   void clear_has_base_info();
-  void set_has_terminal_id();
-  void clear_has_terminal_id();
+  void set_has_id_struct();
+  void clear_has_id_struct();
   void set_has_error_manager();
   void clear_has_error_manager();
   void set_has_singlechipdata();
@@ -531,9 +537,9 @@ class Notify_status_msg : public ::google::protobuf::Message /* @@protoc_inserti
   ::google::protobuf::internal::HasBits<1> _has_bits_;
   mutable int _cached_size_;
   ::message::Base_info* base_info_;
+  ::message::Id_struct* id_struct_;
   ::message::Error_manager* error_manager_;
   ::message::Singlechip_data* singlechipdata_;
-  ::google::protobuf::int32 terminal_id_;
   bool singlechip_validity_;
   friend struct ::protobuf_notify_5fmessage_2eproto::TableStruct;
   friend void ::protobuf_notify_5fmessage_2eproto::InitDefaultsNotify_status_msgImpl();
@@ -662,39 +668,65 @@ inline void Notify_request_msg::set_allocated_command_key(::std::string* command
   // @@protoc_insertion_point(field_set_allocated:message.Notify_request_msg.command_key)
 }
 
-// required int32 terminal_id = 3;
-inline bool Notify_request_msg::has_terminal_id() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
+// required .message.Id_struct id_struct = 3;
+inline bool Notify_request_msg::has_id_struct() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
 }
-inline void Notify_request_msg::set_has_terminal_id() {
-  _has_bits_[0] |= 0x00000008u;
+inline void Notify_request_msg::set_has_id_struct() {
+  _has_bits_[0] |= 0x00000004u;
 }
-inline void Notify_request_msg::clear_has_terminal_id() {
-  _has_bits_[0] &= ~0x00000008u;
+inline void Notify_request_msg::clear_has_id_struct() {
+  _has_bits_[0] &= ~0x00000004u;
 }
-inline void Notify_request_msg::clear_terminal_id() {
-  terminal_id_ = 0;
-  clear_has_terminal_id();
+inline const ::message::Id_struct& Notify_request_msg::id_struct() const {
+  const ::message::Id_struct* p = id_struct_;
+  // @@protoc_insertion_point(field_get:message.Notify_request_msg.id_struct)
+  return p != NULL ? *p : *reinterpret_cast<const ::message::Id_struct*>(
+      &::message::_Id_struct_default_instance_);
+}
+inline ::message::Id_struct* Notify_request_msg::release_id_struct() {
+  // @@protoc_insertion_point(field_release:message.Notify_request_msg.id_struct)
+  clear_has_id_struct();
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = NULL;
+  return temp;
 }
-inline ::google::protobuf::int32 Notify_request_msg::terminal_id() const {
-  // @@protoc_insertion_point(field_get:message.Notify_request_msg.terminal_id)
-  return terminal_id_;
+inline ::message::Id_struct* Notify_request_msg::mutable_id_struct() {
+  set_has_id_struct();
+  if (id_struct_ == NULL) {
+    id_struct_ = new ::message::Id_struct;
+  }
+  // @@protoc_insertion_point(field_mutable:message.Notify_request_msg.id_struct)
+  return id_struct_;
 }
-inline void Notify_request_msg::set_terminal_id(::google::protobuf::int32 value) {
-  set_has_terminal_id();
-  terminal_id_ = value;
-  // @@protoc_insertion_point(field_set:message.Notify_request_msg.terminal_id)
+inline void Notify_request_msg::set_allocated_id_struct(::message::Id_struct* id_struct) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(id_struct_);
+  }
+  if (id_struct) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      id_struct = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, id_struct, submessage_arena);
+    }
+    set_has_id_struct();
+  } else {
+    clear_has_id_struct();
+  }
+  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::has_car_info() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
+  return (_has_bits_[0] & 0x00000008u) != 0;
 }
 inline void Notify_request_msg::set_has_car_info() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000008u;
 }
 inline void Notify_request_msg::clear_has_car_info() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
 }
 inline const ::message::Car_info& Notify_request_msg::car_info() const {
   const ::message::Car_info* p = car_info_;
@@ -853,39 +885,65 @@ inline void Notify_response_msg::set_allocated_command_key(::std::string* comman
   // @@protoc_insertion_point(field_set_allocated:message.Notify_response_msg.command_key)
 }
 
-// required int32 terminal_id = 3;
-inline bool Notify_response_msg::has_terminal_id() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
+// required .message.Id_struct id_struct = 3;
+inline bool Notify_response_msg::has_id_struct() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
 }
-inline void Notify_response_msg::set_has_terminal_id() {
-  _has_bits_[0] |= 0x00000008u;
+inline void Notify_response_msg::set_has_id_struct() {
+  _has_bits_[0] |= 0x00000004u;
 }
-inline void Notify_response_msg::clear_has_terminal_id() {
-  _has_bits_[0] &= ~0x00000008u;
+inline void Notify_response_msg::clear_has_id_struct() {
+  _has_bits_[0] &= ~0x00000004u;
 }
-inline void Notify_response_msg::clear_terminal_id() {
-  terminal_id_ = 0;
-  clear_has_terminal_id();
+inline const ::message::Id_struct& Notify_response_msg::id_struct() const {
+  const ::message::Id_struct* p = id_struct_;
+  // @@protoc_insertion_point(field_get:message.Notify_response_msg.id_struct)
+  return p != NULL ? *p : *reinterpret_cast<const ::message::Id_struct*>(
+      &::message::_Id_struct_default_instance_);
+}
+inline ::message::Id_struct* Notify_response_msg::release_id_struct() {
+  // @@protoc_insertion_point(field_release:message.Notify_response_msg.id_struct)
+  clear_has_id_struct();
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = NULL;
+  return temp;
 }
-inline ::google::protobuf::int32 Notify_response_msg::terminal_id() const {
-  // @@protoc_insertion_point(field_get:message.Notify_response_msg.terminal_id)
-  return terminal_id_;
+inline ::message::Id_struct* Notify_response_msg::mutable_id_struct() {
+  set_has_id_struct();
+  if (id_struct_ == NULL) {
+    id_struct_ = new ::message::Id_struct;
+  }
+  // @@protoc_insertion_point(field_mutable:message.Notify_response_msg.id_struct)
+  return id_struct_;
 }
-inline void Notify_response_msg::set_terminal_id(::google::protobuf::int32 value) {
-  set_has_terminal_id();
-  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) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(id_struct_);
+  }
+  if (id_struct) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      id_struct = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, id_struct, submessage_arena);
+    }
+    set_has_id_struct();
+  } else {
+    clear_has_id_struct();
+  }
+  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::has_code() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
+  return (_has_bits_[0] & 0x00000008u) != 0;
 }
 inline void Notify_response_msg::set_has_code() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000008u;
 }
 inline void Notify_response_msg::clear_has_code() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
 }
 inline const ::message::Error_manager& Notify_response_msg::code() const {
   const ::message::Error_manager* p = code_;
@@ -981,39 +1039,65 @@ 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::has_terminal_id() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
+// required .message.Id_struct id_struct = 2;
+inline bool Notify_status_msg::has_id_struct() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
 }
-inline void Notify_status_msg::set_has_terminal_id() {
-  _has_bits_[0] |= 0x00000008u;
+inline void Notify_status_msg::set_has_id_struct() {
+  _has_bits_[0] |= 0x00000002u;
 }
-inline void Notify_status_msg::clear_has_terminal_id() {
-  _has_bits_[0] &= ~0x00000008u;
+inline void Notify_status_msg::clear_has_id_struct() {
+  _has_bits_[0] &= ~0x00000002u;
 }
-inline void Notify_status_msg::clear_terminal_id() {
-  terminal_id_ = 0;
-  clear_has_terminal_id();
+inline const ::message::Id_struct& Notify_status_msg::id_struct() const {
+  const ::message::Id_struct* p = id_struct_;
+  // @@protoc_insertion_point(field_get:message.Notify_status_msg.id_struct)
+  return p != NULL ? *p : *reinterpret_cast<const ::message::Id_struct*>(
+      &::message::_Id_struct_default_instance_);
+}
+inline ::message::Id_struct* Notify_status_msg::release_id_struct() {
+  // @@protoc_insertion_point(field_release:message.Notify_status_msg.id_struct)
+  clear_has_id_struct();
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = NULL;
+  return temp;
 }
-inline ::google::protobuf::int32 Notify_status_msg::terminal_id() const {
-  // @@protoc_insertion_point(field_get:message.Notify_status_msg.terminal_id)
-  return terminal_id_;
+inline ::message::Id_struct* Notify_status_msg::mutable_id_struct() {
+  set_has_id_struct();
+  if (id_struct_ == NULL) {
+    id_struct_ = new ::message::Id_struct;
+  }
+  // @@protoc_insertion_point(field_mutable:message.Notify_status_msg.id_struct)
+  return id_struct_;
 }
-inline void Notify_status_msg::set_terminal_id(::google::protobuf::int32 value) {
-  set_has_terminal_id();
-  terminal_id_ = value;
-  // @@protoc_insertion_point(field_set:message.Notify_status_msg.terminal_id)
+inline void Notify_status_msg::set_allocated_id_struct(::message::Id_struct* id_struct) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(id_struct_);
+  }
+  if (id_struct) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      id_struct = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, id_struct, submessage_arena);
+    }
+    set_has_id_struct();
+  } else {
+    clear_has_id_struct();
+  }
+  id_struct_ = id_struct;
+  // @@protoc_insertion_point(field_set_allocated:message.Notify_status_msg.id_struct)
 }
 
 // required .message.Error_manager error_manager = 3;
 inline bool Notify_status_msg::has_error_manager() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
+  return (_has_bits_[0] & 0x00000004u) != 0;
 }
 inline void Notify_status_msg::set_has_error_manager() {
-  _has_bits_[0] |= 0x00000002u;
+  _has_bits_[0] |= 0x00000004u;
 }
 inline void Notify_status_msg::clear_has_error_manager() {
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
 }
 inline const ::message::Error_manager& Notify_status_msg::error_manager() const {
   const ::message::Error_manager* p = error_manager_;
@@ -1057,13 +1141,13 @@ inline void Notify_status_msg::set_allocated_error_manager(::message::Error_mana
 
 // optional .message.Singlechip_data singlechipData = 4;
 inline bool Notify_status_msg::has_singlechipdata() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
+  return (_has_bits_[0] & 0x00000008u) != 0;
 }
 inline void Notify_status_msg::set_has_singlechipdata() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000008u;
 }
 inline void Notify_status_msg::clear_has_singlechipdata() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
 }
 inline const ::message::Singlechip_data& Notify_status_msg::singlechipdata() const {
   const ::message::Singlechip_data* p = singlechipdata_;

+ 6 - 6
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,15 +14,15 @@ 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;                     //请求结果码
 }
 
 message Notify_status_msg
 {
     required Base_info                  base_info=1;                 //消息类型
-    required int32                      terminal_id=2;
-    required Error_manager              error_manager = 3;
-    optional Singlechip_data	        singlechipData=4; //单片机的数据
-    optional bool		                singlechip_validity = 5;//单片机数据有效性
+    required Id_struct					id_struct=2;
+    required Error_manager          error_manager = 3;
+    optional Singlechip_data	  singlechipData=4; //单片机的数据
+    optional bool		  singlechip_validity = 5;//单片机数据有效性
 }

+ 121 - 106
message/parkspace_allocation_message.pb.cc

@@ -107,6 +107,7 @@ void InitDefaultsParkspace_allocation_request_msgImpl() {
 #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   protobuf_message_5fbase_2eproto::InitDefaultsBase_info();
   protobuf_message_5fbase_2eproto::InitDefaultsCar_info();
+  protobuf_message_5fbase_2eproto::InitDefaultsId_struct();
   {
     void* ptr = &::message::_Parkspace_allocation_request_msg_default_instance_;
     new (ptr) ::message::Parkspace_allocation_request_msg();
@@ -460,7 +461,7 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_allocation_request_msg, base_info_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_allocation_request_msg, command_key_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_allocation_request_msg, car_info_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_allocation_request_msg, terminal_id_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_allocation_request_msg, id_struct_),
   1,
   0,
   2,
@@ -703,92 +704,92 @@ void AddDescriptorsImpl() {
   InitDefaults();
   static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_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"
+      "%\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\"\206\001\n#Parkspace_manual_search_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\010car_in"
+      "fo\030\003 \002(\0132\021.message.Car_info\"\313\001\n$Parkspac"
+      "e_manual_search_response_msg\022%\n\tbase_inf"
+      "o\030\001 \002(\0132\022.message.Base_info\022\023\n\013command_k"
+      "ey\030\002 \002(\t\022-\n\rerror_manager\030\003 \002(\0132\026.messag"
+      "e.Error_manager\0228\n\027query_parkspace_info_"
+      "ex\030\004 \003(\0132\027.message.Parkspace_info\"\227\001\n\035Pa"
+      "rkspace_release_request_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\031release_parkspace_info_ex\030\003 \003"
+      "(\0132\027.message.Parkspace_info\"\307\001\n\036Parkspac"
+      "e_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.Erro"
+      "r_manager\022:\n\031release_parkspace_info_ex\030\004"
+      " \003(\0132\027.message.Parkspace_info\"\233\001\n\"Parksp"
+      "ace_force_update_request_msg\022%\n\tbase_inf"
+      "o\030\001 \002(\0132\022.message.Base_info\022\023\n\013command_k"
+      "ey\030\002 \002(\t\0229\n\030manual_parkspace_info_ex\030\003 \003"
+      "(\0132\027.message.Parkspace_info\"\313\001\n#Parkspac"
+      "e_force_update_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\"\206\001\n#Par"
-      "kspace_manual_search_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\010car_info\030\003 \002(\0132\021.message"
-      ".Car_info\"\313\001\n$Parkspace_manual_search_re"
-      "sponse_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\0228\n"
-      "\027query_parkspace_info_ex\030\004 \003(\0132\027.message"
-      ".Parkspace_info\"\227\001\n\035Parkspace_release_re"
-      "quest_msg\022%\n\tbase_info\030\001 \002(\0132\022.message.B"
-      "ase_info\022\023\n\013command_key\030\002 \002(\t\022:\n\031release"
-      "_parkspace_info_ex\030\003 \003(\0132\027.message.Parks"
-      "pace_info\"\307\001\n\036Parkspace_release_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\022:\n\031relea"
-      "se_parkspace_info_ex\030\004 \003(\0132\027.message.Par"
-      "kspace_info\"\233\001\n\"Parkspace_force_update_r"
-      "equest_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"
-      "_parkspace_info_ex\030\003 \003(\0132\027.message.Parks"
-      "pace_info\"\313\001\n#Parkspace_force_update_res"
-      "ponse_msg\022%\n\tbase_info\030\001 \002(\0132\022.message.B"
-      "ase_info\022\023\n\013command_key\030\002 \002(\t\022-\n\rerror_m"
-      "anager\030\003 \002(\0132\026.message.Error_manager\0229\n\030"
-      "manual_parkspace_info_ex\030\004 \003(\0132\027.message"
-      ".Parkspace_info\"\302\001\n#Parkspace_confirm_al"
-      "loc_request_msg\022%\n\tbase_info\030\001 \002(\0132\022.mes"
-      "sage.Base_info\022\023\n\013command_key\030\002 \002(\t\022:\n\031c"
-      "onfirm_parkspace_info_ex\030\003 \003(\0132\027.message"
-      ".Parkspace_info\022#\n\010car_type\030\004 \001(\0162\021.mess"
-      "age.Car_type\"\362\001\n$Parkspace_confirm_alloc"
-      "_response_msg\022%\n\tbase_info\030\001 \002(\0132\022.messa"
-      "ge.Base_info\022\023\n\013command_key\030\002 \002(\t\022-\n\rerr"
-      "or_manager\030\003 \002(\0132\026.message.Error_manager"
-      "\022:\n\031confirm_parkspace_info_ex\030\004 \003(\0132\027.me"
-      "ssage.Parkspace_info\022#\n\010car_type\030\005 \001(\0162\021"
-      ".message.Car_type\"\254\003\n\037Parkspace_allocati"
-      "on_status_msg\022%\n\tbase_info\030\001 \002(\0132\022.messa"
-      "ge.Base_info\022-\n\rerror_manager\030\002 \002(\0132\026.me"
-      "ssage.Error_manager\022G\n\032database_controll"
-      "er_status\030\003 \002(\0162#.message.Database_contr"
-      "oller_status\022A\n\027parkspace_manager_satus\030"
-      "\004 \002(\0162 .message.Parkspace_manager_satus\022"
-      "(\n small_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_numb"
-      "er\030\010 \002(\005\"F\n\035Parkspace_refresh_request_ms"
-      "g\022%\n\tbase_info\030\001 \002(\0132\022.message.Base_info"
-      "\"\251\001\n\035Parkspace_allocation_data_msg\022%\n\tba"
-      "se_info\030\001 \002(\0132\022.message.Base_info\022-\n\rerr"
-      "or_manager\030\002 \002(\0132\026.message.Error_manager"
-      "\0222\n\021parkspace_info_ex\030\003 \003(\0132\027.message.Pa"
-      "rkspace_info*\225\001\n\016Vehicle_status\022\024\n\020eVehi"
-      "cle_unknown\020\000\022\021\n\reVehicle_idle\020\001\022\026\n\022eVeh"
-      "icle_in_garage\020\002\022\024\n\020eVehicle_parking\020\003\022\025"
-      "\n\021eVehicle_fetching\020\004\022\025\n\021eVehicle_reserv"
-      "ed\020\005*W\n\032Database_controller_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\027Parkspace_manager_satus"
-      "\022\036\n\032eParkspace_manager_unknown\020\000\022\035\n\031ePar"
-      "kspace_manager_normal\020\001\022\034\n\030eParkspace_ma"
-      "nager_fault\020\002"
+      ".Error_manager\0229\n\030manual_parkspace_info_"
+      "ex\030\004 \003(\0132\027.message.Parkspace_info\"\302\001\n#Pa"
+      "rkspace_confirm_alloc_request_msg\022%\n\tbas"
+      "e_info\030\001 \002(\0132\022.message.Base_info\022\023\n\013comm"
+      "and_key\030\002 \002(\t\022:\n\031confirm_parkspace_info_"
+      "ex\030\003 \003(\0132\027.message.Parkspace_info\022#\n\010car"
+      "_type\030\004 \001(\0162\021.message.Car_type\"\362\001\n$Parks"
+      "pace_confirm_alloc_response_msg\022%\n\tbase_"
+      "info\030\001 \002(\0132\022.message.Base_info\022\023\n\013comman"
+      "d_key\030\002 \002(\t\022-\n\rerror_manager\030\003 \002(\0132\026.mes"
+      "sage.Error_manager\022:\n\031confirm_parkspace_"
+      "info_ex\030\004 \003(\0132\027.message.Parkspace_info\022#"
+      "\n\010car_type\030\005 \001(\0162\021.message.Car_type\"\254\003\n\037"
+      "Parkspace_allocation_status_msg\022%\n\tbase_"
+      "info\030\001 \002(\0132\022.message.Base_info\022-\n\rerror_"
+      "manager\030\002 \002(\0132\026.message.Error_manager\022G\n"
+      "\032database_controller_status\030\003 \002(\0162#.mess"
+      "age.Database_controller_status\022A\n\027parksp"
+      "ace_manager_satus\030\004 \002(\0162 .message.Parksp"
+      "ace_manager_satus\022(\n small_parkspace_rem"
+      "aining_number\030\005 \002(\005\022)\n!medium_parkspace_"
+      "remaining_number\030\006 \002(\005\022(\n large_parkspac"
+      "e_remaining_number\030\007 \002(\005\022(\n total_parksp"
+      "ace_remaining_number\030\010 \002(\005\"F\n\035Parkspace_"
+      "refresh_request_msg\022%\n\tbase_info\030\001 \002(\0132\022"
+      ".message.Base_info\"\251\001\n\035Parkspace_allocat"
+      "ion_data_msg\022%\n\tbase_info\030\001 \002(\0132\022.messag"
+      "e.Base_info\022-\n\rerror_manager\030\002 \002(\0132\026.mes"
+      "sage.Error_manager\0222\n\021parkspace_info_ex\030"
+      "\003 \003(\0132\027.message.Parkspace_info*\225\001\n\016Vehic"
+      "le_status\022\024\n\020eVehicle_unknown\020\000\022\021\n\reVehi"
+      "cle_idle\020\001\022\026\n\022eVehicle_in_garage\020\002\022\024\n\020eV"
+      "ehicle_parking\020\003\022\025\n\021eVehicle_fetching\020\004\022"
+      "\025\n\021eVehicle_reserved\020\005*W\n\032Database_contr"
+      "oller_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\027Parks"
+      "pace_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"
   };
   ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-      descriptor, 3333);
+      descriptor, 3351);
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
     "parkspace_allocation_message.proto", &protobuf_RegisterTypes);
   ::protobuf_message_5fbase_2eproto::AddDescriptors();
@@ -863,6 +864,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());
 }
 void Parkspace_allocation_request_msg::clear_base_info() {
   if (base_info_ != NULL) base_info_->Clear();
@@ -872,11 +875,15 @@ void Parkspace_allocation_request_msg::clear_car_info() {
   if (car_info_ != NULL) car_info_->Clear();
   clear_has_car_info();
 }
+void Parkspace_allocation_request_msg::clear_id_struct() {
+  if (id_struct_ != NULL) id_struct_->Clear();
+  clear_has_id_struct();
+}
 #if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int Parkspace_allocation_request_msg::kBaseInfoFieldNumber;
 const int Parkspace_allocation_request_msg::kCommandKeyFieldNumber;
 const int Parkspace_allocation_request_msg::kCarInfoFieldNumber;
-const int Parkspace_allocation_request_msg::kTerminalIdFieldNumber;
+const int Parkspace_allocation_request_msg::kIdStructFieldNumber;
 #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 Parkspace_allocation_request_msg::Parkspace_allocation_request_msg()
@@ -907,7 +914,11 @@ Parkspace_allocation_request_msg::Parkspace_allocation_request_msg(const Parkspa
   } else {
     car_info_ = NULL;
   }
-  terminal_id_ = from.terminal_id_;
+  if (from.has_id_struct()) {
+    id_struct_ = new ::message::Id_struct(*from.id_struct_);
+  } else {
+    id_struct_ = NULL;
+  }
   // @@protoc_insertion_point(copy_constructor:message.Parkspace_allocation_request_msg)
 }
 
@@ -915,8 +926,8 @@ void Parkspace_allocation_request_msg::SharedCtor() {
   _cached_size_ = 0;
   command_key_.UnsafeSetDefault(&::google::protobuf::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() {
@@ -928,6 +939,7 @@ void Parkspace_allocation_request_msg::SharedDtor() {
   command_key_.DestroyNoArena(&::google::protobuf::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::SetCachedSize(int size) const {
@@ -960,7 +972,7 @@ void Parkspace_allocation_request_msg::Clear() {
   (void) cached_has_bits;
 
   cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 7u) {
+  if (cached_has_bits & 15u) {
     if (cached_has_bits & 0x00000001u) {
       GOOGLE_DCHECK(!command_key_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
       (*command_key_.UnsafeRawStringPointer())->clear();
@@ -973,8 +985,11 @@ void Parkspace_allocation_request_msg::Clear() {
       GOOGLE_DCHECK(car_info_ != NULL);
       car_info_->Clear();
     }
+    if (cached_has_bits & 0x00000008u) {
+      GOOGLE_DCHECK(id_struct_ != NULL);
+      id_struct_->Clear();
+    }
   }
-  terminal_id_ = 0;
   _has_bits_.Clear();
   _internal_metadata_.Clear();
 }
@@ -1029,14 +1044,12 @@ bool Parkspace_allocation_request_msg::MergePartialFromCodedStream(
         break;
       }
 
-      // required int32 terminal_id = 4;
+      // required .message.Id_struct id_struct = 4;
       case 4: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
-          set_has_terminal_id();
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &terminal_id_)));
+            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+               input, mutable_id_struct()));
         } else {
           goto handle_unusual;
         }
@@ -1092,9 +1105,10 @@ void Parkspace_allocation_request_msg::SerializeWithCachedSizes(
       3, *this->car_info_, output);
   }
 
-  // required int32 terminal_id = 4;
+  // required .message.Id_struct id_struct = 4;
   if (cached_has_bits & 0x00000008u) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->terminal_id(), output);
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      4, *this->id_struct_, output);
   }
 
   if (_internal_metadata_.have_unknown_fields()) {
@@ -1137,9 +1151,11 @@ void Parkspace_allocation_request_msg::SerializeWithCachedSizes(
         3, *this->car_info_, deterministic, target);
   }
 
-  // required int32 terminal_id = 4;
+  // required .message.Id_struct id_struct = 4;
   if (cached_has_bits & 0x00000008u) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->terminal_id(), target);
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageToArray(
+        4, *this->id_struct_, deterministic, target);
   }
 
   if (_internal_metadata_.have_unknown_fields()) {
@@ -1175,11 +1191,11 @@ size_t Parkspace_allocation_request_msg::RequiredFieldsByteSizeFallback() const
         *this->car_info_);
   }
 
-  if (has_terminal_id()) {
-    // required int32 terminal_id = 4;
+  if (has_id_struct()) {
+    // required .message.Id_struct id_struct = 4;
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->terminal_id());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->id_struct_);
   }
 
   return total_size;
@@ -1209,10 +1225,10 @@ size_t Parkspace_allocation_request_msg::ByteSizeLong() const {
       ::google::protobuf::internal::WireFormatLite::MessageSize(
         *this->car_info_);
 
-    // required int32 terminal_id = 4;
+    // required .message.Id_struct id_struct = 4;
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->terminal_id());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->id_struct_);
 
   } else {
     total_size += RequiredFieldsByteSizeFallback();
@@ -1259,9 +1275,8 @@ void Parkspace_allocation_request_msg::MergeFrom(const Parkspace_allocation_requ
       mutable_car_info()->::message::Car_info::MergeFrom(from.car_info());
     }
     if (cached_has_bits & 0x00000008u) {
-      terminal_id_ = from.terminal_id_;
+      mutable_id_struct()->::message::Id_struct::MergeFrom(from.id_struct());
     }
-    _has_bits_[0] |= cached_has_bits;
   }
 }
 
@@ -1296,7 +1311,7 @@ void Parkspace_allocation_request_msg::InternalSwap(Parkspace_allocation_request
   command_key_.Swap(&other->command_key_);
   swap(base_info_, other->base_info_);
   swap(car_info_, other->car_info_);
-  swap(terminal_id_, other->terminal_id_);
+  swap(id_struct_, other->id_struct_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
   swap(_cached_size_, other->_cached_size_);

+ 51 - 23
message/parkspace_allocation_message.pb.h

@@ -329,12 +329,14 @@ class Parkspace_allocation_request_msg : public ::google::protobuf::Message /* @
   ::message::Car_info* mutable_car_info();
   void set_allocated_car_info(::message::Car_info* car_info);
 
-  // required int32 terminal_id = 4;
-  bool has_terminal_id() const;
-  void clear_terminal_id();
-  static const int kTerminalIdFieldNumber = 4;
-  ::google::protobuf::int32 terminal_id() const;
-  void set_terminal_id(::google::protobuf::int32 value);
+  // required .message.Id_struct id_struct = 4;
+  bool has_id_struct() const;
+  void clear_id_struct();
+  static const int kIdStructFieldNumber = 4;
+  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);
 
   // @@protoc_insertion_point(class_scope:message.Parkspace_allocation_request_msg)
  private:
@@ -344,8 +346,8 @@ class Parkspace_allocation_request_msg : public ::google::protobuf::Message /* @
   void clear_has_command_key();
   void set_has_car_info();
   void clear_has_car_info();
-  void set_has_terminal_id();
-  void clear_has_terminal_id();
+  void set_has_id_struct();
+  void clear_has_id_struct();
 
   // helper for ByteSizeLong()
   size_t RequiredFieldsByteSizeFallback() const;
@@ -356,7 +358,7 @@ class Parkspace_allocation_request_msg : public ::google::protobuf::Message /* @
   ::google::protobuf::internal::ArenaStringPtr command_key_;
   ::message::Base_info* base_info_;
   ::message::Car_info* car_info_;
-  ::google::protobuf::int32 terminal_id_;
+  ::message::Id_struct* id_struct_;
   friend struct ::protobuf_parkspace_5fallocation_5fmessage_2eproto::TableStruct;
   friend void ::protobuf_parkspace_5fallocation_5fmessage_2eproto::InitDefaultsParkspace_allocation_request_msgImpl();
 };
@@ -2679,28 +2681,54 @@ 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::has_terminal_id() const {
+// required .message.Id_struct id_struct = 4;
+inline bool Parkspace_allocation_request_msg::has_id_struct() const {
   return (_has_bits_[0] & 0x00000008u) != 0;
 }
-inline void Parkspace_allocation_request_msg::set_has_terminal_id() {
+inline void Parkspace_allocation_request_msg::set_has_id_struct() {
   _has_bits_[0] |= 0x00000008u;
 }
-inline void Parkspace_allocation_request_msg::clear_has_terminal_id() {
+inline void Parkspace_allocation_request_msg::clear_has_id_struct() {
   _has_bits_[0] &= ~0x00000008u;
 }
-inline void Parkspace_allocation_request_msg::clear_terminal_id() {
-  terminal_id_ = 0;
-  clear_has_terminal_id();
+inline const ::message::Id_struct& Parkspace_allocation_request_msg::id_struct() const {
+  const ::message::Id_struct* p = id_struct_;
+  // @@protoc_insertion_point(field_get:message.Parkspace_allocation_request_msg.id_struct)
+  return p != NULL ? *p : *reinterpret_cast<const ::message::Id_struct*>(
+      &::message::_Id_struct_default_instance_);
+}
+inline ::message::Id_struct* Parkspace_allocation_request_msg::release_id_struct() {
+  // @@protoc_insertion_point(field_release:message.Parkspace_allocation_request_msg.id_struct)
+  clear_has_id_struct();
+  ::message::Id_struct* temp = id_struct_;
+  id_struct_ = NULL;
+  return temp;
 }
-inline ::google::protobuf::int32 Parkspace_allocation_request_msg::terminal_id() const {
-  // @@protoc_insertion_point(field_get:message.Parkspace_allocation_request_msg.terminal_id)
-  return terminal_id_;
+inline ::message::Id_struct* Parkspace_allocation_request_msg::mutable_id_struct() {
+  set_has_id_struct();
+  if (id_struct_ == NULL) {
+    id_struct_ = new ::message::Id_struct;
+  }
+  // @@protoc_insertion_point(field_mutable:message.Parkspace_allocation_request_msg.id_struct)
+  return id_struct_;
 }
-inline void Parkspace_allocation_request_msg::set_terminal_id(::google::protobuf::int32 value) {
-  set_has_terminal_id();
-  terminal_id_ = value;
-  // @@protoc_insertion_point(field_set:message.Parkspace_allocation_request_msg.terminal_id)
+inline void Parkspace_allocation_request_msg::set_allocated_id_struct(::message::Id_struct* id_struct) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(id_struct_);
+  }
+  if (id_struct) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      id_struct = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, id_struct, submessage_arena);
+    }
+    set_has_id_struct();
+  } else {
+    clear_has_id_struct();
+  }
+  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,优化车位分配用
 }
 
 //分配车位反馈

+ 7 - 6
system/system_executor.cpp

@@ -103,8 +103,8 @@ Error_manager System_executor::check_msg(Communication_message* p_msg)
 				//针对消息类型, 对消息进行二次解析
 				if (t_ground_status_msg.ParseFromString(p_msg->get_message_buf()))
 				{
-					if ( t_ground_status_msg.terminal_id() == Dispatch_manager::get_instance_references().get_dispatch_manager_id()*2 ||
-					t_ground_status_msg.terminal_id() == Dispatch_manager::get_instance_references().get_dispatch_manager_id()*2+1)
+					if ( t_ground_status_msg.mutable_id_struct()->terminal_id() == Dispatch_manager::get_instance_references().get_dispatch_manager_id()*2 ||
+					t_ground_status_msg.mutable_id_struct()->terminal_id() == Dispatch_manager::get_instance_references().get_dispatch_manager_id()*2+1)
 					{
 						return Error_code::SUCCESS;
 					}
@@ -142,8 +142,8 @@ Error_manager System_executor::check_msg(Communication_message* p_msg)
 				//针对消息类型, 对消息进行二次解析
 				if (t_notify_status_msg.ParseFromString(p_msg->get_message_buf()))
 				{
-					if ( t_notify_status_msg.terminal_id() == Dispatch_manager::get_instance_references().get_dispatch_manager_id()*2 ||
-					t_notify_status_msg.terminal_id() == Dispatch_manager::get_instance_references().get_dispatch_manager_id()*2+1)
+					if ( t_notify_status_msg.mutable_id_struct()->terminal_id() == Dispatch_manager::get_instance_references().get_dispatch_manager_id()*2 ||
+					t_notify_status_msg.mutable_id_struct()->terminal_id() == Dispatch_manager::get_instance_references().get_dispatch_manager_id()*2+1)
 					{
 						return Error_code::SUCCESS;
 					}
@@ -460,7 +460,7 @@ System_executor::System_executor_status System_executor::get_system_executor_sta
 //input::command_id, 消息指令id, 由主控制系统生成的唯一码
 //input::command_id, 终端id, 对应具体的某个车位
 //return::void, 没有返回, 执行结果直接生成一条答复消息, 然后通过通信返回
-void System_executor::execute_for_measure(std::string command_key, int terminal_id)
+void System_executor::execute_for_measure(std::string command_key, int unit_id, int terminal_id)
 {
 	Error_manager t_error;
 
@@ -475,7 +475,8 @@ void System_executor::execute_for_measure(std::string command_key, int terminal_
 	t_measure_response_msg.mutable_base_info()->set_receiver(message::Communicator::eMain);
 
 	t_measure_response_msg.set_command_key(command_key);
-	t_measure_response_msg.set_terminal_id(terminal_id);
+	t_measure_response_msg.mutable_id_struct()->set_unit_id(unit_id);
+	t_measure_response_msg.mutable_id_struct()->set_terminal_id(terminal_id);
 	t_measure_response_msg.mutable_error_manager()->set_error_code(t_error.get_error_code());
 	t_measure_response_msg.mutable_error_manager()->set_error_level((message::Error_level)t_error.get_error_level());
 	t_measure_response_msg.mutable_error_manager()->set_error_description(t_error.get_error_description());

+ 1 - 1
system/system_executor.h

@@ -75,7 +75,7 @@ public:
 //input::command_id, 消息指令id, 由主控制系统生成的唯一码
 //input::command_id, 终端id, 对应具体的某个车位
 //return::void, 没有返回, 执行结果直接生成一条答复消息, 然后通过通信返回
-	void execute_for_measure(std::string command_key, int terminal_id);
+	void execute_for_measure(std::string command_key, int unit_id, int terminal_id);
 
 	//调度模块的处理函数
 	void execute_for_dispatch(std::string command_key, Dispatch_manager::Dispatch_motion_direction dispatch_motion_direction,