Browse Source

修改 command 信息,增加字段 时间+地点+事件

zx 4 years ago
parent
commit
442ce68e24

+ 12 - 1
CMakeLists.txt

@@ -69,11 +69,16 @@ target_link_libraries(process
 
 add_executable(locate_client
         ./test/Locate_client.cpp
-        ./lidar_locate/Locate_communicator.cpp
         ./error_code/error_code.cpp
+        ${locate_src}
+        ${robot_src}
         ${message_src}
         ${TOOL_SRC}
+        ${TASK_QUEUE_SRC}
         ${COMMUNICATION_SRC}
+        ${SYSTEM_SRC}
+        ${PARKSPACE_SRC}
+        ${DISPATCH_SRC}
         )
 target_link_libraries(locate_client
         nnxx
@@ -91,9 +96,15 @@ add_executable(terminal
         ./test/Terminal_communication.cpp
         ./lidar_locate/Locate_communicator.cpp
         ./error_code/error_code.cpp
+        ${locate_src}
+        ${robot_src}
         ${message_src}
         ${TOOL_SRC}
+        ${TASK_QUEUE_SRC}
         ${COMMUNICATION_SRC}
+        ${SYSTEM_SRC}
+        ${PARKSPACE_SRC}
+        ${DISPATCH_SRC}
         )
 target_link_libraries(terminal
         nnxx

+ 1 - 1
dispatch/dispatch_communicator.cpp

@@ -64,7 +64,6 @@ Error_manager Dispatch_communicator::dispatch_request(message::Dispatch_request_
                 }
                 result = response;
                 m_response_table.erase(request);
-
                 return SUCCESS;
 
             }
@@ -81,6 +80,7 @@ Error_manager Dispatch_communicator::dispatch_request(message::Dispatch_request_
         std::this_thread::yield();
         usleep(1000);
     }while(time<double(timeout));
+
     m_response_table.erase(request);
     return Error_manager(RESPONSE_TIMEOUT,MINOR_ERROR,"dispatch request timeout");
 }

+ 4 - 4
main.cpp

@@ -21,10 +21,10 @@ using google::protobuf::io::ZeroCopyOutputStream;
 using google::protobuf::io::CodedOutputStream;
 using google::protobuf::Message;
 
-#define MEASURE_CONNECT_STRING          "tcp://192.168.0.201:30001"
-#define DISPATCH_CONNECT_STRING         "tcp://192.168.0.202:30002"
-#define PARKSPACE_CONNECT_STRING        "tcp://192.168.0.202:30001"
-#define SYSTEM_BIND_STRING              "tcp://192.168.0.203:30001"
+#define MEASURE_CONNECT_STRING          "tcp://192.168.2.167:30001"
+#define DISPATCH_CONNECT_STRING         "tcp://192.168.2.167:30002"
+#define PARKSPACE_CONNECT_STRING        "tcp://192.168.2.125:30001"
+#define SYSTEM_BIND_STRING              "tcp://192.168.2.183:30001"
 
 #define INIT_TIME_OUT_SECONDS           300
 

+ 135 - 94
message/dispatch_message.pb.cc

@@ -94,6 +94,7 @@ void InitDefaultsDispatch_request_msgImpl() {
   ::google::protobuf::internal::InitProtobufDefaults();
 #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   protobuf_message_5fbase_2eproto::InitDefaultsBase_info();
+  protobuf_message_5fbase_2eproto::InitDefaultsCommand_info();
   protobuf_message_5fbase_2eproto::InitDefaultsLocate_information();
   {
     void* ptr = &::message::_Dispatch_request_msg_default_instance_;
@@ -117,6 +118,7 @@ void InitDefaultsDispatch_response_msgImpl() {
   ::google::protobuf::internal::InitProtobufDefaults();
 #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   protobuf_message_5fbase_2eproto::InitDefaultsBase_info();
+  protobuf_message_5fbase_2eproto::InitDefaultsCommand_info();
   protobuf_message_5fbase_2eproto::InitDefaultsError_manager();
   {
     void* ptr = &::message::_Dispatch_response_msg_default_instance_;
@@ -161,28 +163,28 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_request_msg, base_info_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_request_msg, command_id_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_request_msg, command_info_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_request_msg, dispatch_motion_direction_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_request_msg, terminal_id_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_request_msg, parkspace_id_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_request_msg, locate_information_),
   0,
-  2,
+  1,
   3,
   4,
   5,
-  1,
+  2,
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_response_msg, _has_bits_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_response_msg, _internal_metadata_),
   ~0u,  // no _extensions_
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_response_msg, base_info_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_response_msg, command_id_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_response_msg, command_info_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_response_msg, error_manager_),
   0,
-  2,
   1,
+  2,
 };
 static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
   { 0, 8, sizeof(::message::Carrier_position)},
@@ -225,29 +227,31 @@ void AddDescriptorsImpl() {
       " \002(\002\022\t\n\001y\030\002 \002(\002\022\t\n\001z\030\003 \002(\002\"\177\n\023Dispatch_s"
       "tatus_msg\022%\n\tbase_info\030\001 \002(\0132\022.message.B"
       "ase_info\022A\n\027dispatch_manager_status\030\002 \002("
-      "\0162 .message.Dispatch_manager_status\"\374\001\n\024"
+      "\0162 .message.Dispatch_manager_status\"\225\002\n\024"
       "Dispatch_request_msg\022%\n\tbase_info\030\001 \002(\0132"
-      "\022.message.Base_info\022\022\n\ncommand_id\030\002 \002(\005\022"
-      "E\n\031dispatch_motion_direction\030\003 \002(\0162\".mes"
-      "sage.Dispatch_motion_direction\022\023\n\013termin"
-      "al_id\030\004 \002(\005\022\024\n\014parkspace_id\030\005 \002(\005\0227\n\022loc"
-      "ate_information\030\006 \001(\0132\033.message.Locate_i"
-      "nformation\"\201\001\n\025Dispatch_response_msg\022%\n\t"
-      "base_info\030\001 \002(\0132\022.message.Base_info\022\022\n\nc"
-      "ommand_id\030\002 \002(\005\022-\n\rerror_manager\030\003 \002(\0132\026"
-      ".message.Error_manager*\261\001\n\027Dispatch_mana"
-      "ger_status\022\035\n\031E_DISPATCH_MANAGER_UNKNOW\020"
-      "\000\022\034\n\030E_DISPATCH_MANAGER_READY\020\001\022\034\n\030E_DIS"
-      "PATCH_MANAGER_STORE\020\002\022\035\n\031E_DISPATCH_MANA"
-      "GER_PICKUP\020\003\022\034\n\030E_DISPATCH_MANAGER_FAULT"
-      "\020\n*{\n\016Carrier_status\022\024\n\020E_CARRIER_UNKNOW"
-      "\020\000\022\023\n\017E_CARRIER_READY\020\001\022\023\n\017E_CARRIER_STO"
-      "RE\020\002\022\024\n\020E_CARRIER_PICKUP\020\003\022\023\n\017E_CARRIER_"
-      "FAULT\020\n*>\n\031Dispatch_motion_direction\022\017\n\013"
-      "E_STORE_CAR\020\000\022\020\n\014E_PICKUP_CAR\020\001"
+      "\022.message.Base_info\022+\n\014command_info\030\002 \002("
+      "\0132\025.message.Command_info\022E\n\031dispatch_mot"
+      "ion_direction\030\003 \002(\0162\".message.Dispatch_m"
+      "otion_direction\022\023\n\013terminal_id\030\004 \002(\005\022\024\n\014"
+      "parkspace_id\030\005 \002(\005\0227\n\022locate_information"
+      "\030\006 \001(\0132\033.message.Locate_information\"\232\001\n\025"
+      "Dispatch_response_msg\022%\n\tbase_info\030\001 \002(\013"
+      "2\022.message.Base_info\022+\n\014command_info\030\002 \002"
+      "(\0132\025.message.Command_info\022-\n\rerror_manag"
+      "er\030\003 \002(\0132\026.message.Error_manager*\261\001\n\027Dis"
+      "patch_manager_status\022\035\n\031E_DISPATCH_MANAG"
+      "ER_UNKNOW\020\000\022\034\n\030E_DISPATCH_MANAGER_READY\020"
+      "\001\022\034\n\030E_DISPATCH_MANAGER_STORE\020\002\022\035\n\031E_DIS"
+      "PATCH_MANAGER_PICKUP\020\003\022\034\n\030E_DISPATCH_MAN"
+      "AGER_FAULT\020\n*{\n\016Carrier_status\022\024\n\020E_CARR"
+      "IER_UNKNOW\020\000\022\023\n\017E_CARRIER_READY\020\001\022\023\n\017E_C"
+      "ARRIER_STORE\020\002\022\024\n\020E_CARRIER_PICKUP\020\003\022\023\n\017"
+      "E_CARRIER_FAULT\020\n*>\n\031Dispatch_motion_dir"
+      "ection\022\017\n\013E_STORE_CAR\020\000\022\020\n\014E_PICKUP_CAR\020"
+      "\001"
   };
   ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-      descriptor, 991);
+      descriptor, 1041);
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
     "dispatch_message.proto", &protobuf_RegisterTypes);
   ::protobuf_message_5fbase_2eproto::AddDescriptors();
@@ -994,6 +998,8 @@ void Dispatch_status_msg::InternalSwap(Dispatch_status_msg* other) {
 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()->command_info_ = const_cast< ::message::Command_info*>(
+      ::message::Command_info::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());
 }
@@ -1001,13 +1007,17 @@ void Dispatch_request_msg::clear_base_info() {
   if (base_info_ != NULL) base_info_->Clear();
   clear_has_base_info();
 }
+void Dispatch_request_msg::clear_command_info() {
+  if (command_info_ != NULL) command_info_->Clear();
+  clear_has_command_info();
+}
 void Dispatch_request_msg::clear_locate_information() {
   if (locate_information_ != NULL) locate_information_->Clear();
   clear_has_locate_information();
 }
 #if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int Dispatch_request_msg::kBaseInfoFieldNumber;
-const int Dispatch_request_msg::kCommandIdFieldNumber;
+const int Dispatch_request_msg::kCommandInfoFieldNumber;
 const int Dispatch_request_msg::kDispatchMotionDirectionFieldNumber;
 const int Dispatch_request_msg::kTerminalIdFieldNumber;
 const int Dispatch_request_msg::kParkspaceIdFieldNumber;
@@ -1033,14 +1043,19 @@ Dispatch_request_msg::Dispatch_request_msg(const Dispatch_request_msg& from)
   } else {
     base_info_ = NULL;
   }
+  if (from.has_command_info()) {
+    command_info_ = new ::message::Command_info(*from.command_info_);
+  } else {
+    command_info_ = NULL;
+  }
   if (from.has_locate_information()) {
     locate_information_ = new ::message::Locate_information(*from.locate_information_);
   } else {
     locate_information_ = NULL;
   }
-  ::memcpy(&command_id_, &from.command_id_,
+  ::memcpy(&dispatch_motion_direction_, &from.dispatch_motion_direction_,
     static_cast<size_t>(reinterpret_cast<char*>(&parkspace_id_) -
-    reinterpret_cast<char*>(&command_id_)) + sizeof(parkspace_id_));
+    reinterpret_cast<char*>(&dispatch_motion_direction_)) + sizeof(parkspace_id_));
   // @@protoc_insertion_point(copy_constructor:message.Dispatch_request_msg)
 }
 
@@ -1058,6 +1073,7 @@ Dispatch_request_msg::~Dispatch_request_msg() {
 
 void Dispatch_request_msg::SharedDtor() {
   if (this != internal_default_instance()) delete base_info_;
+  if (this != internal_default_instance()) delete command_info_;
   if (this != internal_default_instance()) delete locate_information_;
 }
 
@@ -1091,20 +1107,24 @@ void Dispatch_request_msg::Clear() {
   (void) cached_has_bits;
 
   cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 3u) {
+  if (cached_has_bits & 7u) {
     if (cached_has_bits & 0x00000001u) {
       GOOGLE_DCHECK(base_info_ != NULL);
       base_info_->Clear();
     }
     if (cached_has_bits & 0x00000002u) {
+      GOOGLE_DCHECK(command_info_ != NULL);
+      command_info_->Clear();
+    }
+    if (cached_has_bits & 0x00000004u) {
       GOOGLE_DCHECK(locate_information_ != NULL);
       locate_information_->Clear();
     }
   }
-  if (cached_has_bits & 60u) {
-    ::memset(&command_id_, 0, static_cast<size_t>(
+  if (cached_has_bits & 56u) {
+    ::memset(&dispatch_motion_direction_, 0, static_cast<size_t>(
         reinterpret_cast<char*>(&parkspace_id_) -
-        reinterpret_cast<char*>(&command_id_)) + sizeof(parkspace_id_));
+        reinterpret_cast<char*>(&dispatch_motion_direction_)) + sizeof(parkspace_id_));
   }
   _has_bits_.Clear();
   _internal_metadata_.Clear();
@@ -1132,14 +1152,12 @@ bool Dispatch_request_msg::MergePartialFromCodedStream(
         break;
       }
 
-      // required int32 command_id = 2;
+      // required .message.Command_info command_info = 2;
       case 2: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
-          set_has_command_id();
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &command_id_)));
+            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+               input, mutable_command_info()));
         } else {
           goto handle_unusual;
         }
@@ -1239,9 +1257,10 @@ void Dispatch_request_msg::SerializeWithCachedSizes(
       1, *this->base_info_, output);
   }
 
-  // required int32 command_id = 2;
-  if (cached_has_bits & 0x00000004u) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->command_id(), output);
+  // required .message.Command_info command_info = 2;
+  if (cached_has_bits & 0x00000002u) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      2, *this->command_info_, output);
   }
 
   // required .message.Dispatch_motion_direction dispatch_motion_direction = 3;
@@ -1261,7 +1280,7 @@ void Dispatch_request_msg::SerializeWithCachedSizes(
   }
 
   // optional .message.Locate_information locate_information = 6;
-  if (cached_has_bits & 0x00000002u) {
+  if (cached_has_bits & 0x00000004u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
       6, *this->locate_information_, output);
   }
@@ -1288,9 +1307,11 @@ void Dispatch_request_msg::SerializeWithCachedSizes(
         1, *this->base_info_, deterministic, target);
   }
 
-  // required int32 command_id = 2;
-  if (cached_has_bits & 0x00000004u) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->command_id(), target);
+  // required .message.Command_info command_info = 2;
+  if (cached_has_bits & 0x00000002u) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageToArray(
+        2, *this->command_info_, deterministic, target);
   }
 
   // required .message.Dispatch_motion_direction dispatch_motion_direction = 3;
@@ -1310,7 +1331,7 @@ void Dispatch_request_msg::SerializeWithCachedSizes(
   }
 
   // optional .message.Locate_information locate_information = 6;
-  if (cached_has_bits & 0x00000002u) {
+  if (cached_has_bits & 0x00000004u) {
     target = ::google::protobuf::internal::WireFormatLite::
       InternalWriteMessageToArray(
         6, *this->locate_information_, deterministic, target);
@@ -1335,11 +1356,11 @@ size_t Dispatch_request_msg::RequiredFieldsByteSizeFallback() const {
         *this->base_info_);
   }
 
-  if (has_command_id()) {
-    // required int32 command_id = 2;
+  if (has_command_info()) {
+    // required .message.Command_info command_info = 2;
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->command_id());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->command_info_);
   }
 
   if (has_dispatch_motion_direction()) {
@@ -1373,16 +1394,16 @@ size_t Dispatch_request_msg::ByteSizeLong() const {
       ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
         _internal_metadata_.unknown_fields());
   }
-  if (((_has_bits_[0] & 0x0000003d) ^ 0x0000003d) == 0) {  // All required fields are present.
+  if (((_has_bits_[0] & 0x0000003b) ^ 0x0000003b) == 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 int32 command_id = 2;
+    // required .message.Command_info command_info = 2;
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->command_id());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->command_info_);
 
     // required .message.Dispatch_motion_direction dispatch_motion_direction = 3;
     total_size += 1 +
@@ -1443,10 +1464,10 @@ void Dispatch_request_msg::MergeFrom(const Dispatch_request_msg& from) {
       mutable_base_info()->::message::Base_info::MergeFrom(from.base_info());
     }
     if (cached_has_bits & 0x00000002u) {
-      mutable_locate_information()->::message::Locate_information::MergeFrom(from.locate_information());
+      mutable_command_info()->::message::Command_info::MergeFrom(from.command_info());
     }
     if (cached_has_bits & 0x00000004u) {
-      command_id_ = from.command_id_;
+      mutable_locate_information()->::message::Locate_information::MergeFrom(from.locate_information());
     }
     if (cached_has_bits & 0x00000008u) {
       dispatch_motion_direction_ = from.dispatch_motion_direction_;
@@ -1476,10 +1497,13 @@ void Dispatch_request_msg::CopyFrom(const Dispatch_request_msg& from) {
 }
 
 bool Dispatch_request_msg::IsInitialized() const {
-  if ((_has_bits_[0] & 0x0000003d) != 0x0000003d) return false;
+  if ((_has_bits_[0] & 0x0000003b) != 0x0000003b) return false;
   if (has_base_info()) {
     if (!this->base_info_->IsInitialized()) return false;
   }
+  if (has_command_info()) {
+    if (!this->command_info_->IsInitialized()) return false;
+  }
   return true;
 }
 
@@ -1490,8 +1514,8 @@ void Dispatch_request_msg::Swap(Dispatch_request_msg* other) {
 void Dispatch_request_msg::InternalSwap(Dispatch_request_msg* other) {
   using std::swap;
   swap(base_info_, other->base_info_);
+  swap(command_info_, other->command_info_);
   swap(locate_information_, other->locate_information_);
-  swap(command_id_, other->command_id_);
   swap(dispatch_motion_direction_, other->dispatch_motion_direction_);
   swap(terminal_id_, other->terminal_id_);
   swap(parkspace_id_, other->parkspace_id_);
@@ -1511,6 +1535,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()->command_info_ = const_cast< ::message::Command_info*>(
+      ::message::Command_info::internal_default_instance());
   ::message::_Dispatch_response_msg_default_instance_._instance.get_mutable()->error_manager_ = const_cast< ::message::Error_manager*>(
       ::message::Error_manager::internal_default_instance());
 }
@@ -1518,13 +1544,17 @@ void Dispatch_response_msg::clear_base_info() {
   if (base_info_ != NULL) base_info_->Clear();
   clear_has_base_info();
 }
+void Dispatch_response_msg::clear_command_info() {
+  if (command_info_ != NULL) command_info_->Clear();
+  clear_has_command_info();
+}
 void Dispatch_response_msg::clear_error_manager() {
   if (error_manager_ != NULL) error_manager_->Clear();
   clear_has_error_manager();
 }
 #if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int Dispatch_response_msg::kBaseInfoFieldNumber;
-const int Dispatch_response_msg::kCommandIdFieldNumber;
+const int Dispatch_response_msg::kCommandInfoFieldNumber;
 const int Dispatch_response_msg::kErrorManagerFieldNumber;
 #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
@@ -1547,20 +1577,24 @@ Dispatch_response_msg::Dispatch_response_msg(const Dispatch_response_msg& from)
   } else {
     base_info_ = NULL;
   }
+  if (from.has_command_info()) {
+    command_info_ = new ::message::Command_info(*from.command_info_);
+  } else {
+    command_info_ = NULL;
+  }
   if (from.has_error_manager()) {
     error_manager_ = new ::message::Error_manager(*from.error_manager_);
   } else {
     error_manager_ = NULL;
   }
-  command_id_ = from.command_id_;
   // @@protoc_insertion_point(copy_constructor:message.Dispatch_response_msg)
 }
 
 void Dispatch_response_msg::SharedCtor() {
   _cached_size_ = 0;
   ::memset(&base_info_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&command_id_) -
-      reinterpret_cast<char*>(&base_info_)) + sizeof(command_id_));
+      reinterpret_cast<char*>(&error_manager_) -
+      reinterpret_cast<char*>(&base_info_)) + sizeof(error_manager_));
 }
 
 Dispatch_response_msg::~Dispatch_response_msg() {
@@ -1570,6 +1604,7 @@ Dispatch_response_msg::~Dispatch_response_msg() {
 
 void Dispatch_response_msg::SharedDtor() {
   if (this != internal_default_instance()) delete base_info_;
+  if (this != internal_default_instance()) delete command_info_;
   if (this != internal_default_instance()) delete error_manager_;
 }
 
@@ -1603,17 +1638,20 @@ void Dispatch_response_msg::Clear() {
   (void) cached_has_bits;
 
   cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 3u) {
+  if (cached_has_bits & 7u) {
     if (cached_has_bits & 0x00000001u) {
       GOOGLE_DCHECK(base_info_ != NULL);
       base_info_->Clear();
     }
     if (cached_has_bits & 0x00000002u) {
+      GOOGLE_DCHECK(command_info_ != NULL);
+      command_info_->Clear();
+    }
+    if (cached_has_bits & 0x00000004u) {
       GOOGLE_DCHECK(error_manager_ != NULL);
       error_manager_->Clear();
     }
   }
-  command_id_ = 0;
   _has_bits_.Clear();
   _internal_metadata_.Clear();
 }
@@ -1640,14 +1678,12 @@ bool Dispatch_response_msg::MergePartialFromCodedStream(
         break;
       }
 
-      // required int32 command_id = 2;
+      // required .message.Command_info command_info = 2;
       case 2: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
-          set_has_command_id();
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &command_id_)));
+            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+               input, mutable_command_info()));
         } else {
           goto handle_unusual;
         }
@@ -1699,13 +1735,14 @@ void Dispatch_response_msg::SerializeWithCachedSizes(
       1, *this->base_info_, output);
   }
 
-  // required int32 command_id = 2;
-  if (cached_has_bits & 0x00000004u) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->command_id(), output);
+  // required .message.Command_info command_info = 2;
+  if (cached_has_bits & 0x00000002u) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      2, *this->command_info_, 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);
   }
@@ -1732,13 +1769,15 @@ void Dispatch_response_msg::SerializeWithCachedSizes(
         1, *this->base_info_, deterministic, target);
   }
 
-  // required int32 command_id = 2;
-  if (cached_has_bits & 0x00000004u) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->command_id(), target);
+  // required .message.Command_info command_info = 2;
+  if (cached_has_bits & 0x00000002u) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageToArray(
+        2, *this->command_info_, 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);
@@ -1763,18 +1802,18 @@ size_t Dispatch_response_msg::RequiredFieldsByteSizeFallback() const {
         *this->base_info_);
   }
 
-  if (has_error_manager()) {
-    // required .message.Error_manager error_manager = 3;
+  if (has_command_info()) {
+    // required .message.Command_info command_info = 2;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->error_manager_);
+        *this->command_info_);
   }
 
-  if (has_command_id()) {
-    // required int32 command_id = 2;
+  if (has_error_manager()) {
+    // required .message.Error_manager error_manager = 3;
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->command_id());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->error_manager_);
   }
 
   return total_size;
@@ -1794,15 +1833,15 @@ size_t Dispatch_response_msg::ByteSizeLong() const {
       ::google::protobuf::internal::WireFormatLite::MessageSize(
         *this->base_info_);
 
-    // required .message.Error_manager error_manager = 3;
+    // required .message.Command_info command_info = 2;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->error_manager_);
+        *this->command_info_);
 
-    // required int32 command_id = 2;
+    // required .message.Error_manager error_manager = 3;
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->command_id());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->error_manager_);
 
   } else {
     total_size += RequiredFieldsByteSizeFallback();
@@ -1842,12 +1881,11 @@ void Dispatch_response_msg::MergeFrom(const Dispatch_response_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_command_info()->::message::Command_info::MergeFrom(from.command_info());
     }
     if (cached_has_bits & 0x00000004u) {
-      command_id_ = from.command_id_;
+      mutable_error_manager()->::message::Error_manager::MergeFrom(from.error_manager());
     }
-    _has_bits_[0] |= cached_has_bits;
   }
 }
 
@@ -1870,6 +1908,9 @@ bool Dispatch_response_msg::IsInitialized() const {
   if (has_base_info()) {
     if (!this->base_info_->IsInitialized()) return false;
   }
+  if (has_command_info()) {
+    if (!this->command_info_->IsInitialized()) return false;
+  }
   if (has_error_manager()) {
     if (!this->error_manager_->IsInitialized()) return false;
   }
@@ -1883,8 +1924,8 @@ void Dispatch_response_msg::Swap(Dispatch_response_msg* other) {
 void Dispatch_response_msg::InternalSwap(Dispatch_response_msg* other) {
   using std::swap;
   swap(base_info_, other->base_info_);
+  swap(command_info_, other->command_info_);
   swap(error_manager_, other->error_manager_);
-  swap(command_id_, other->command_id_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
   swap(_cached_size_, other->_cached_size_);

+ 116 - 60
message/dispatch_message.pb.h

@@ -496,6 +496,15 @@ class Dispatch_request_msg : public ::google::protobuf::Message /* @@protoc_inse
   ::message::Base_info* mutable_base_info();
   void set_allocated_base_info(::message::Base_info* base_info);
 
+  // required .message.Command_info command_info = 2;
+  bool has_command_info() const;
+  void clear_command_info();
+  static const int kCommandInfoFieldNumber = 2;
+  const ::message::Command_info& command_info() const;
+  ::message::Command_info* release_command_info();
+  ::message::Command_info* mutable_command_info();
+  void set_allocated_command_info(::message::Command_info* command_info);
+
   // optional .message.Locate_information locate_information = 6;
   bool has_locate_information() const;
   void clear_locate_information();
@@ -505,13 +514,6 @@ class Dispatch_request_msg : public ::google::protobuf::Message /* @@protoc_inse
   ::message::Locate_information* mutable_locate_information();
   void set_allocated_locate_information(::message::Locate_information* locate_information);
 
-  // required int32 command_id = 2;
-  bool has_command_id() const;
-  void clear_command_id();
-  static const int kCommandIdFieldNumber = 2;
-  ::google::protobuf::int32 command_id() const;
-  void set_command_id(::google::protobuf::int32 value);
-
   // required .message.Dispatch_motion_direction dispatch_motion_direction = 3;
   bool has_dispatch_motion_direction() const;
   void clear_dispatch_motion_direction();
@@ -537,8 +539,8 @@ class Dispatch_request_msg : public ::google::protobuf::Message /* @@protoc_inse
  private:
   void set_has_base_info();
   void clear_has_base_info();
-  void set_has_command_id();
-  void clear_has_command_id();
+  void set_has_command_info();
+  void clear_has_command_info();
   void set_has_dispatch_motion_direction();
   void clear_has_dispatch_motion_direction();
   void set_has_terminal_id();
@@ -555,8 +557,8 @@ class Dispatch_request_msg : public ::google::protobuf::Message /* @@protoc_inse
   ::google::protobuf::internal::HasBits<1> _has_bits_;
   mutable int _cached_size_;
   ::message::Base_info* base_info_;
+  ::message::Command_info* command_info_;
   ::message::Locate_information* locate_information_;
-  ::google::protobuf::int32 command_id_;
   int dispatch_motion_direction_;
   ::google::protobuf::int32 terminal_id_;
   ::google::protobuf::int32 parkspace_id_;
@@ -663,6 +665,15 @@ class Dispatch_response_msg : public ::google::protobuf::Message /* @@protoc_ins
   ::message::Base_info* mutable_base_info();
   void set_allocated_base_info(::message::Base_info* base_info);
 
+  // required .message.Command_info command_info = 2;
+  bool has_command_info() const;
+  void clear_command_info();
+  static const int kCommandInfoFieldNumber = 2;
+  const ::message::Command_info& command_info() const;
+  ::message::Command_info* release_command_info();
+  ::message::Command_info* mutable_command_info();
+  void set_allocated_command_info(::message::Command_info* command_info);
+
   // required .message.Error_manager error_manager = 3;
   bool has_error_manager() const;
   void clear_error_manager();
@@ -672,19 +683,12 @@ class Dispatch_response_msg : public ::google::protobuf::Message /* @@protoc_ins
   ::message::Error_manager* mutable_error_manager();
   void set_allocated_error_manager(::message::Error_manager* error_manager);
 
-  // required int32 command_id = 2;
-  bool has_command_id() const;
-  void clear_command_id();
-  static const int kCommandIdFieldNumber = 2;
-  ::google::protobuf::int32 command_id() const;
-  void set_command_id(::google::protobuf::int32 value);
-
   // @@protoc_insertion_point(class_scope:message.Dispatch_response_msg)
  private:
   void set_has_base_info();
   void clear_has_base_info();
-  void set_has_command_id();
-  void clear_has_command_id();
+  void set_has_command_info();
+  void clear_has_command_info();
   void set_has_error_manager();
   void clear_has_error_manager();
 
@@ -695,8 +699,8 @@ class Dispatch_response_msg : public ::google::protobuf::Message /* @@protoc_ins
   ::google::protobuf::internal::HasBits<1> _has_bits_;
   mutable int _cached_size_;
   ::message::Base_info* base_info_;
+  ::message::Command_info* command_info_;
   ::message::Error_manager* error_manager_;
-  ::google::protobuf::int32 command_id_;
   friend struct ::protobuf_dispatch_5fmessage_2eproto::TableStruct;
   friend void ::protobuf_dispatch_5fmessage_2eproto::InitDefaultsDispatch_response_msgImpl();
 };
@@ -916,28 +920,54 @@ inline void Dispatch_request_msg::set_allocated_base_info(::message::Base_info*
   // @@protoc_insertion_point(field_set_allocated:message.Dispatch_request_msg.base_info)
 }
 
-// required int32 command_id = 2;
-inline bool Dispatch_request_msg::has_command_id() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
+// required .message.Command_info command_info = 2;
+inline bool Dispatch_request_msg::has_command_info() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
 }
-inline void Dispatch_request_msg::set_has_command_id() {
-  _has_bits_[0] |= 0x00000004u;
+inline void Dispatch_request_msg::set_has_command_info() {
+  _has_bits_[0] |= 0x00000002u;
 }
-inline void Dispatch_request_msg::clear_has_command_id() {
-  _has_bits_[0] &= ~0x00000004u;
+inline void Dispatch_request_msg::clear_has_command_info() {
+  _has_bits_[0] &= ~0x00000002u;
 }
-inline void Dispatch_request_msg::clear_command_id() {
-  command_id_ = 0;
-  clear_has_command_id();
+inline const ::message::Command_info& Dispatch_request_msg::command_info() const {
+  const ::message::Command_info* p = command_info_;
+  // @@protoc_insertion_point(field_get:message.Dispatch_request_msg.command_info)
+  return p != NULL ? *p : *reinterpret_cast<const ::message::Command_info*>(
+      &::message::_Command_info_default_instance_);
+}
+inline ::message::Command_info* Dispatch_request_msg::release_command_info() {
+  // @@protoc_insertion_point(field_release:message.Dispatch_request_msg.command_info)
+  clear_has_command_info();
+  ::message::Command_info* temp = command_info_;
+  command_info_ = NULL;
+  return temp;
 }
-inline ::google::protobuf::int32 Dispatch_request_msg::command_id() const {
-  // @@protoc_insertion_point(field_get:message.Dispatch_request_msg.command_id)
-  return command_id_;
+inline ::message::Command_info* Dispatch_request_msg::mutable_command_info() {
+  set_has_command_info();
+  if (command_info_ == NULL) {
+    command_info_ = new ::message::Command_info;
+  }
+  // @@protoc_insertion_point(field_mutable:message.Dispatch_request_msg.command_info)
+  return command_info_;
 }
-inline void Dispatch_request_msg::set_command_id(::google::protobuf::int32 value) {
-  set_has_command_id();
-  command_id_ = value;
-  // @@protoc_insertion_point(field_set:message.Dispatch_request_msg.command_id)
+inline void Dispatch_request_msg::set_allocated_command_info(::message::Command_info* command_info) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(command_info_);
+  }
+  if (command_info) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      command_info = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, command_info, submessage_arena);
+    }
+    set_has_command_info();
+  } else {
+    clear_has_command_info();
+  }
+  command_info_ = command_info;
+  // @@protoc_insertion_point(field_set_allocated:message.Dispatch_request_msg.command_info)
 }
 
 // required .message.Dispatch_motion_direction dispatch_motion_direction = 3;
@@ -1015,13 +1045,13 @@ inline void Dispatch_request_msg::set_parkspace_id(::google::protobuf::int32 val
 
 // optional .message.Locate_information locate_information = 6;
 inline bool Dispatch_request_msg::has_locate_information() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
+  return (_has_bits_[0] & 0x00000004u) != 0;
 }
 inline void Dispatch_request_msg::set_has_locate_information() {
-  _has_bits_[0] |= 0x00000002u;
+  _has_bits_[0] |= 0x00000004u;
 }
 inline void Dispatch_request_msg::clear_has_locate_information() {
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
 }
 inline const ::message::Locate_information& Dispatch_request_msg::locate_information() const {
   const ::message::Locate_information* p = locate_information_;
@@ -1117,39 +1147,65 @@ inline void Dispatch_response_msg::set_allocated_base_info(::message::Base_info*
   // @@protoc_insertion_point(field_set_allocated:message.Dispatch_response_msg.base_info)
 }
 
-// required int32 command_id = 2;
-inline bool Dispatch_response_msg::has_command_id() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
+// required .message.Command_info command_info = 2;
+inline bool Dispatch_response_msg::has_command_info() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
 }
-inline void Dispatch_response_msg::set_has_command_id() {
-  _has_bits_[0] |= 0x00000004u;
+inline void Dispatch_response_msg::set_has_command_info() {
+  _has_bits_[0] |= 0x00000002u;
 }
-inline void Dispatch_response_msg::clear_has_command_id() {
-  _has_bits_[0] &= ~0x00000004u;
+inline void Dispatch_response_msg::clear_has_command_info() {
+  _has_bits_[0] &= ~0x00000002u;
 }
-inline void Dispatch_response_msg::clear_command_id() {
-  command_id_ = 0;
-  clear_has_command_id();
+inline const ::message::Command_info& Dispatch_response_msg::command_info() const {
+  const ::message::Command_info* p = command_info_;
+  // @@protoc_insertion_point(field_get:message.Dispatch_response_msg.command_info)
+  return p != NULL ? *p : *reinterpret_cast<const ::message::Command_info*>(
+      &::message::_Command_info_default_instance_);
+}
+inline ::message::Command_info* Dispatch_response_msg::release_command_info() {
+  // @@protoc_insertion_point(field_release:message.Dispatch_response_msg.command_info)
+  clear_has_command_info();
+  ::message::Command_info* temp = command_info_;
+  command_info_ = NULL;
+  return temp;
 }
-inline ::google::protobuf::int32 Dispatch_response_msg::command_id() const {
-  // @@protoc_insertion_point(field_get:message.Dispatch_response_msg.command_id)
-  return command_id_;
+inline ::message::Command_info* Dispatch_response_msg::mutable_command_info() {
+  set_has_command_info();
+  if (command_info_ == NULL) {
+    command_info_ = new ::message::Command_info;
+  }
+  // @@protoc_insertion_point(field_mutable:message.Dispatch_response_msg.command_info)
+  return command_info_;
 }
-inline void Dispatch_response_msg::set_command_id(::google::protobuf::int32 value) {
-  set_has_command_id();
-  command_id_ = value;
-  // @@protoc_insertion_point(field_set:message.Dispatch_response_msg.command_id)
+inline void Dispatch_response_msg::set_allocated_command_info(::message::Command_info* command_info) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(command_info_);
+  }
+  if (command_info) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      command_info = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, command_info, submessage_arena);
+    }
+    set_has_command_info();
+  } else {
+    clear_has_command_info();
+  }
+  command_info_ = command_info;
+  // @@protoc_insertion_point(field_set_allocated:message.Dispatch_response_msg.command_info)
 }
 
 // required .message.Error_manager error_manager = 3;
 inline bool Dispatch_response_msg::has_error_manager() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
+  return (_has_bits_[0] & 0x00000004u) != 0;
 }
 inline void Dispatch_response_msg::set_has_error_manager() {
-  _has_bits_[0] |= 0x00000002u;
+  _has_bits_[0] |= 0x00000004u;
 }
 inline void Dispatch_response_msg::clear_has_error_manager() {
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
 }
 inline const ::message::Error_manager& Dispatch_response_msg::error_manager() const {
   const ::message::Error_manager* p = error_manager_;

+ 2 - 2
message/dispatch_message.proto

@@ -53,7 +53,7 @@ enum Dispatch_motion_direction
 message Dispatch_request_msg
 {
     required Base_info                  base_info=1;                            //消息类型
-    required int32                      command_id=2;                           //指令唯一标识符id
+    required Command_info               command_info=2;                           //指令唯一标识符id
 
     required Dispatch_motion_direction  dispatch_motion_direction=3;            //调度方向, 停车取车
     required int32                      terminal_id=4;                          //终端id, 出入口
@@ -65,7 +65,7 @@ message Dispatch_request_msg
 message Dispatch_response_msg
 {
     required Base_info                  base_info=1;                    //消息类型
-    required int32                      command_id=2;                   //指令唯一标识符id
+    required Command_info               command_info=2;                   //指令唯一标识符id
     required Error_manager              error_manager = 3;
 }
 

+ 133 - 100
message/measure_message.pb.cc

@@ -70,6 +70,7 @@ void InitDefaultsMeasure_request_msgImpl() {
   ::google::protobuf::internal::InitProtobufDefaults();
 #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   protobuf_message_5fbase_2eproto::InitDefaultsBase_info();
+  protobuf_message_5fbase_2eproto::InitDefaultsCommand_info();
   {
     void* ptr = &::message::_Measure_request_msg_default_instance_;
     new (ptr) ::message::Measure_request_msg();
@@ -92,6 +93,7 @@ void InitDefaultsMeasure_response_msgImpl() {
   ::google::protobuf::internal::InitProtobufDefaults();
 #endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
   protobuf_message_5fbase_2eproto::InitDefaultsBase_info();
+  protobuf_message_5fbase_2eproto::InitDefaultsCommand_info();
   protobuf_message_5fbase_2eproto::InitDefaultsLocate_information();
   protobuf_message_5fbase_2eproto::InitDefaultsError_manager();
   {
@@ -134,7 +136,7 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Measure_request_msg, base_info_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Measure_request_msg, command_id_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Measure_request_msg, command_info_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Measure_request_msg, terminal_id_),
   0,
   1,
@@ -145,15 +147,15 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Measure_response_msg, base_info_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Measure_response_msg, command_id_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Measure_response_msg, command_info_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Measure_response_msg, terminal_id_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Measure_response_msg, locate_information_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Measure_response_msg, error_manager_),
   0,
-  3,
-  4,
   1,
+  4,
   2,
+  3,
 };
 static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
   { 0, 11, sizeof(::message::Measure_status_msg)},
@@ -199,28 +201,29 @@ void AddDescriptorsImpl() {
       "r_status\022@\n\033locate_information_realtime\030"
       "\005 \001(\0132\033.message.Locate_information\022-\n\rer"
       "ror_manager\030\006 \002(\0132\026.message.Error_manage"
-      "r\"e\n\023Measure_request_msg\022%\n\tbase_info\030\001 "
-      "\002(\0132\022.message.Base_info\022\022\n\ncommand_id\030\002 "
-      "\002(\005\022\023\n\013terminal_id\030\003 \002(\005\"\316\001\n\024Measure_res"
-      "ponse_msg\022%\n\tbase_info\030\001 \002(\0132\022.message.B"
-      "ase_info\022\022\n\ncommand_id\030\002 \002(\005\022\023\n\013terminal"
-      "_id\030\003 \002(\005\0227\n\022locate_information\030\004 \001(\0132\033."
-      "message.Locate_information\022-\n\rerror_mana"
-      "ger\030\005 \002(\0132\026.message.Error_manager*\237\001\n\024La"
-      "ser_manager_status\022\030\n\024LASER_MANAGER_UNKN"
-      "OW\020\000\022\027\n\023LASER_MANAGER_READY\020\001\022\035\n\031LASER_M"
-      "ANAGER_ISSUED_TASK\020\002\022\034\n\030LASER_MANAGER_WA"
-      "IT_REPLY\020\003\022\027\n\023LASER_MANAGER_FAULT\020\004*U\n\013L"
-      "aser_statu\022\024\n\020LASER_DISCONNECT\020\000\022\017\n\013LASE"
-      "R_READY\020\001\022\016\n\nLASER_BUSY\020\002\022\017\n\013LASER_FAULT"
-      "\020\003*\261\001\n\025Locate_manager_status\022\031\n\025LOCATE_M"
-      "ANAGER_UNKNOW\020\000\022\030\n\024LOCATE_MANAGER_READY\020"
-      "\001\022\027\n\023LOCATE_MANAGER_SIFT\020\002\022\026\n\022LOCATE_MAN"
-      "AGER_CAR\020\003\022\030\n\024LOCATE_MANAGER_WHEEL\020\004\022\030\n\024"
-      "LOCATE_MANAGER_FAULT\020\005"
+      "r\"~\n\023Measure_request_msg\022%\n\tbase_info\030\001 "
+      "\002(\0132\022.message.Base_info\022+\n\014command_info\030"
+      "\002 \002(\0132\025.message.Command_info\022\023\n\013terminal"
+      "_id\030\003 \002(\005\"\347\001\n\024Measure_response_msg\022%\n\tba"
+      "se_info\030\001 \002(\0132\022.message.Base_info\022+\n\014com"
+      "mand_info\030\002 \002(\0132\025.message.Command_info\022\023"
+      "\n\013terminal_id\030\003 \002(\005\0227\n\022locate_informatio"
+      "n\030\004 \001(\0132\033.message.Locate_information\022-\n\r"
+      "error_manager\030\005 \002(\0132\026.message.Error_mana"
+      "ger*\237\001\n\024Laser_manager_status\022\030\n\024LASER_MA"
+      "NAGER_UNKNOW\020\000\022\027\n\023LASER_MANAGER_READY\020\001\022"
+      "\035\n\031LASER_MANAGER_ISSUED_TASK\020\002\022\034\n\030LASER_"
+      "MANAGER_WAIT_REPLY\020\003\022\027\n\023LASER_MANAGER_FA"
+      "ULT\020\004*U\n\013Laser_statu\022\024\n\020LASER_DISCONNECT"
+      "\020\000\022\017\n\013LASER_READY\020\001\022\016\n\nLASER_BUSY\020\002\022\017\n\013L"
+      "ASER_FAULT\020\003*\261\001\n\025Locate_manager_status\022\031"
+      "\n\025LOCATE_MANAGER_UNKNOW\020\000\022\030\n\024LOCATE_MANA"
+      "GER_READY\020\001\022\027\n\023LOCATE_MANAGER_SIFT\020\002\022\026\n\022"
+      "LOCATE_MANAGER_CAR\020\003\022\030\n\024LOCATE_MANAGER_W"
+      "HEEL\020\004\022\030\n\024LOCATE_MANAGER_FAULT\020\005"
   };
   ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-      descriptor, 1142);
+      descriptor, 1192);
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
     "measure_message.proto", &protobuf_RegisterTypes);
   ::protobuf_message_5fbase_2eproto::AddDescriptors();
@@ -851,14 +854,20 @@ void Measure_status_msg::InternalSwap(Measure_status_msg* other) {
 void Measure_request_msg::InitAsDefaultInstance() {
   ::message::_Measure_request_msg_default_instance_._instance.get_mutable()->base_info_ = const_cast< ::message::Base_info*>(
       ::message::Base_info::internal_default_instance());
+  ::message::_Measure_request_msg_default_instance_._instance.get_mutable()->command_info_ = const_cast< ::message::Command_info*>(
+      ::message::Command_info::internal_default_instance());
 }
 void Measure_request_msg::clear_base_info() {
   if (base_info_ != NULL) base_info_->Clear();
   clear_has_base_info();
 }
+void Measure_request_msg::clear_command_info() {
+  if (command_info_ != NULL) command_info_->Clear();
+  clear_has_command_info();
+}
 #if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int Measure_request_msg::kBaseInfoFieldNumber;
-const int Measure_request_msg::kCommandIdFieldNumber;
+const int Measure_request_msg::kCommandInfoFieldNumber;
 const int Measure_request_msg::kTerminalIdFieldNumber;
 #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
@@ -881,9 +890,12 @@ Measure_request_msg::Measure_request_msg(const Measure_request_msg& from)
   } else {
     base_info_ = NULL;
   }
-  ::memcpy(&command_id_, &from.command_id_,
-    static_cast<size_t>(reinterpret_cast<char*>(&terminal_id_) -
-    reinterpret_cast<char*>(&command_id_)) + sizeof(terminal_id_));
+  if (from.has_command_info()) {
+    command_info_ = new ::message::Command_info(*from.command_info_);
+  } else {
+    command_info_ = NULL;
+  }
+  terminal_id_ = from.terminal_id_;
   // @@protoc_insertion_point(copy_constructor:message.Measure_request_msg)
 }
 
@@ -901,6 +913,7 @@ Measure_request_msg::~Measure_request_msg() {
 
 void Measure_request_msg::SharedDtor() {
   if (this != internal_default_instance()) delete base_info_;
+  if (this != internal_default_instance()) delete command_info_;
 }
 
 void Measure_request_msg::SetCachedSize(int size) const {
@@ -933,15 +946,17 @@ void Measure_request_msg::Clear() {
   (void) cached_has_bits;
 
   cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000001u) {
-    GOOGLE_DCHECK(base_info_ != NULL);
-    base_info_->Clear();
-  }
-  if (cached_has_bits & 6u) {
-    ::memset(&command_id_, 0, static_cast<size_t>(
-        reinterpret_cast<char*>(&terminal_id_) -
-        reinterpret_cast<char*>(&command_id_)) + sizeof(terminal_id_));
+  if (cached_has_bits & 3u) {
+    if (cached_has_bits & 0x00000001u) {
+      GOOGLE_DCHECK(base_info_ != NULL);
+      base_info_->Clear();
+    }
+    if (cached_has_bits & 0x00000002u) {
+      GOOGLE_DCHECK(command_info_ != NULL);
+      command_info_->Clear();
+    }
   }
+  terminal_id_ = 0;
   _has_bits_.Clear();
   _internal_metadata_.Clear();
 }
@@ -968,14 +983,12 @@ bool Measure_request_msg::MergePartialFromCodedStream(
         break;
       }
 
-      // required int32 command_id = 2;
+      // required .message.Command_info command_info = 2;
       case 2: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
-          set_has_command_id();
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &command_id_)));
+            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+               input, mutable_command_info()));
         } else {
           goto handle_unusual;
         }
@@ -1029,9 +1042,10 @@ void Measure_request_msg::SerializeWithCachedSizes(
       1, *this->base_info_, output);
   }
 
-  // required int32 command_id = 2;
+  // required .message.Command_info command_info = 2;
   if (cached_has_bits & 0x00000002u) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->command_id(), output);
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      2, *this->command_info_, output);
   }
 
   // required int32 terminal_id = 3;
@@ -1061,9 +1075,11 @@ void Measure_request_msg::SerializeWithCachedSizes(
         1, *this->base_info_, deterministic, target);
   }
 
-  // required int32 command_id = 2;
+  // required .message.Command_info command_info = 2;
   if (cached_has_bits & 0x00000002u) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->command_id(), target);
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageToArray(
+        2, *this->command_info_, deterministic, target);
   }
 
   // required int32 terminal_id = 3;
@@ -1090,11 +1106,11 @@ size_t Measure_request_msg::RequiredFieldsByteSizeFallback() const {
         *this->base_info_);
   }
 
-  if (has_command_id()) {
-    // required int32 command_id = 2;
+  if (has_command_info()) {
+    // required .message.Command_info command_info = 2;
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->command_id());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->command_info_);
   }
 
   if (has_terminal_id()) {
@@ -1121,10 +1137,10 @@ size_t Measure_request_msg::ByteSizeLong() const {
       ::google::protobuf::internal::WireFormatLite::MessageSize(
         *this->base_info_);
 
-    // required int32 command_id = 2;
+    // required .message.Command_info command_info = 2;
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->command_id());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->command_info_);
 
     // required int32 terminal_id = 3;
     total_size += 1 +
@@ -1169,7 +1185,7 @@ void Measure_request_msg::MergeFrom(const Measure_request_msg& from) {
       mutable_base_info()->::message::Base_info::MergeFrom(from.base_info());
     }
     if (cached_has_bits & 0x00000002u) {
-      command_id_ = from.command_id_;
+      mutable_command_info()->::message::Command_info::MergeFrom(from.command_info());
     }
     if (cached_has_bits & 0x00000004u) {
       terminal_id_ = from.terminal_id_;
@@ -1197,6 +1213,9 @@ bool Measure_request_msg::IsInitialized() const {
   if (has_base_info()) {
     if (!this->base_info_->IsInitialized()) return false;
   }
+  if (has_command_info()) {
+    if (!this->command_info_->IsInitialized()) return false;
+  }
   return true;
 }
 
@@ -1207,7 +1226,7 @@ void Measure_request_msg::Swap(Measure_request_msg* other) {
 void Measure_request_msg::InternalSwap(Measure_request_msg* other) {
   using std::swap;
   swap(base_info_, other->base_info_);
-  swap(command_id_, other->command_id_);
+  swap(command_info_, other->command_info_);
   swap(terminal_id_, other->terminal_id_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
@@ -1225,6 +1244,8 @@ void Measure_request_msg::InternalSwap(Measure_request_msg* other) {
 void Measure_response_msg::InitAsDefaultInstance() {
   ::message::_Measure_response_msg_default_instance_._instance.get_mutable()->base_info_ = const_cast< ::message::Base_info*>(
       ::message::Base_info::internal_default_instance());
+  ::message::_Measure_response_msg_default_instance_._instance.get_mutable()->command_info_ = const_cast< ::message::Command_info*>(
+      ::message::Command_info::internal_default_instance());
   ::message::_Measure_response_msg_default_instance_._instance.get_mutable()->locate_information_ = const_cast< ::message::Locate_information*>(
       ::message::Locate_information::internal_default_instance());
   ::message::_Measure_response_msg_default_instance_._instance.get_mutable()->error_manager_ = const_cast< ::message::Error_manager*>(
@@ -1234,6 +1255,10 @@ void Measure_response_msg::clear_base_info() {
   if (base_info_ != NULL) base_info_->Clear();
   clear_has_base_info();
 }
+void Measure_response_msg::clear_command_info() {
+  if (command_info_ != NULL) command_info_->Clear();
+  clear_has_command_info();
+}
 void Measure_response_msg::clear_locate_information() {
   if (locate_information_ != NULL) locate_information_->Clear();
   clear_has_locate_information();
@@ -1244,7 +1269,7 @@ void Measure_response_msg::clear_error_manager() {
 }
 #if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int Measure_response_msg::kBaseInfoFieldNumber;
-const int Measure_response_msg::kCommandIdFieldNumber;
+const int Measure_response_msg::kCommandInfoFieldNumber;
 const int Measure_response_msg::kTerminalIdFieldNumber;
 const int Measure_response_msg::kLocateInformationFieldNumber;
 const int Measure_response_msg::kErrorManagerFieldNumber;
@@ -1269,6 +1294,11 @@ Measure_response_msg::Measure_response_msg(const Measure_response_msg& from)
   } else {
     base_info_ = NULL;
   }
+  if (from.has_command_info()) {
+    command_info_ = new ::message::Command_info(*from.command_info_);
+  } else {
+    command_info_ = NULL;
+  }
   if (from.has_locate_information()) {
     locate_information_ = new ::message::Locate_information(*from.locate_information_);
   } else {
@@ -1279,9 +1309,7 @@ Measure_response_msg::Measure_response_msg(const Measure_response_msg& from)
   } else {
     error_manager_ = NULL;
   }
-  ::memcpy(&command_id_, &from.command_id_,
-    static_cast<size_t>(reinterpret_cast<char*>(&terminal_id_) -
-    reinterpret_cast<char*>(&command_id_)) + sizeof(terminal_id_));
+  terminal_id_ = from.terminal_id_;
   // @@protoc_insertion_point(copy_constructor:message.Measure_response_msg)
 }
 
@@ -1299,6 +1327,7 @@ Measure_response_msg::~Measure_response_msg() {
 
 void Measure_response_msg::SharedDtor() {
   if (this != internal_default_instance()) delete base_info_;
+  if (this != internal_default_instance()) delete command_info_;
   if (this != internal_default_instance()) delete locate_information_;
   if (this != internal_default_instance()) delete error_manager_;
 }
@@ -1333,25 +1362,25 @@ void Measure_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(base_info_ != NULL);
       base_info_->Clear();
     }
     if (cached_has_bits & 0x00000002u) {
+      GOOGLE_DCHECK(command_info_ != NULL);
+      command_info_->Clear();
+    }
+    if (cached_has_bits & 0x00000004u) {
       GOOGLE_DCHECK(locate_information_ != NULL);
       locate_information_->Clear();
     }
-    if (cached_has_bits & 0x00000004u) {
+    if (cached_has_bits & 0x00000008u) {
       GOOGLE_DCHECK(error_manager_ != NULL);
       error_manager_->Clear();
     }
   }
-  if (cached_has_bits & 24u) {
-    ::memset(&command_id_, 0, static_cast<size_t>(
-        reinterpret_cast<char*>(&terminal_id_) -
-        reinterpret_cast<char*>(&command_id_)) + sizeof(terminal_id_));
-  }
+  terminal_id_ = 0;
   _has_bits_.Clear();
   _internal_metadata_.Clear();
 }
@@ -1378,14 +1407,12 @@ bool Measure_response_msg::MergePartialFromCodedStream(
         break;
       }
 
-      // required int32 command_id = 2;
+      // required .message.Command_info command_info = 2;
       case 2: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
-          set_has_command_id();
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &command_id_)));
+            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+               input, mutable_command_info()));
         } else {
           goto handle_unusual;
         }
@@ -1463,9 +1490,10 @@ void Measure_response_msg::SerializeWithCachedSizes(
       1, *this->base_info_, output);
   }
 
-  // required int32 command_id = 2;
-  if (cached_has_bits & 0x00000008u) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->command_id(), output);
+  // required .message.Command_info command_info = 2;
+  if (cached_has_bits & 0x00000002u) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      2, *this->command_info_, output);
   }
 
   // required int32 terminal_id = 3;
@@ -1474,13 +1502,13 @@ void Measure_response_msg::SerializeWithCachedSizes(
   }
 
   // optional .message.Locate_information locate_information = 4;
-  if (cached_has_bits & 0x00000002u) {
+  if (cached_has_bits & 0x00000004u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
       4, *this->locate_information_, output);
   }
 
   // required .message.Error_manager error_manager = 5;
-  if (cached_has_bits & 0x00000004u) {
+  if (cached_has_bits & 0x00000008u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
       5, *this->error_manager_, output);
   }
@@ -1507,9 +1535,11 @@ void Measure_response_msg::SerializeWithCachedSizes(
         1, *this->base_info_, deterministic, target);
   }
 
-  // required int32 command_id = 2;
-  if (cached_has_bits & 0x00000008u) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->command_id(), target);
+  // required .message.Command_info command_info = 2;
+  if (cached_has_bits & 0x00000002u) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageToArray(
+        2, *this->command_info_, deterministic, target);
   }
 
   // required int32 terminal_id = 3;
@@ -1518,14 +1548,14 @@ void Measure_response_msg::SerializeWithCachedSizes(
   }
 
   // optional .message.Locate_information locate_information = 4;
-  if (cached_has_bits & 0x00000002u) {
+  if (cached_has_bits & 0x00000004u) {
     target = ::google::protobuf::internal::WireFormatLite::
       InternalWriteMessageToArray(
         4, *this->locate_information_, deterministic, target);
   }
 
   // required .message.Error_manager error_manager = 5;
-  if (cached_has_bits & 0x00000004u) {
+  if (cached_has_bits & 0x00000008u) {
     target = ::google::protobuf::internal::WireFormatLite::
       InternalWriteMessageToArray(
         5, *this->error_manager_, deterministic, target);
@@ -1550,18 +1580,18 @@ size_t Measure_response_msg::RequiredFieldsByteSizeFallback() const {
         *this->base_info_);
   }
 
-  if (has_error_manager()) {
-    // required .message.Error_manager error_manager = 5;
+  if (has_command_info()) {
+    // required .message.Command_info command_info = 2;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->error_manager_);
+        *this->command_info_);
   }
 
-  if (has_command_id()) {
-    // required int32 command_id = 2;
+  if (has_error_manager()) {
+    // required .message.Error_manager error_manager = 5;
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->command_id());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->error_manager_);
   }
 
   if (has_terminal_id()) {
@@ -1582,21 +1612,21 @@ size_t Measure_response_msg::ByteSizeLong() const {
       ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
         _internal_metadata_.unknown_fields());
   }
-  if (((_has_bits_[0] & 0x0000001d) ^ 0x0000001d) == 0) {  // All required fields are present.
+  if (((_has_bits_[0] & 0x0000001b) ^ 0x0000001b) == 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 = 5;
+    // required .message.Command_info command_info = 2;
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::MessageSize(
-        *this->error_manager_);
+        *this->command_info_);
 
-    // required int32 command_id = 2;
+    // required .message.Error_manager error_manager = 5;
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->command_id());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->error_manager_);
 
     // required int32 terminal_id = 3;
     total_size += 1 +
@@ -1648,13 +1678,13 @@ void Measure_response_msg::MergeFrom(const Measure_response_msg& from) {
       mutable_base_info()->::message::Base_info::MergeFrom(from.base_info());
     }
     if (cached_has_bits & 0x00000002u) {
-      mutable_locate_information()->::message::Locate_information::MergeFrom(from.locate_information());
+      mutable_command_info()->::message::Command_info::MergeFrom(from.command_info());
     }
     if (cached_has_bits & 0x00000004u) {
-      mutable_error_manager()->::message::Error_manager::MergeFrom(from.error_manager());
+      mutable_locate_information()->::message::Locate_information::MergeFrom(from.locate_information());
     }
     if (cached_has_bits & 0x00000008u) {
-      command_id_ = from.command_id_;
+      mutable_error_manager()->::message::Error_manager::MergeFrom(from.error_manager());
     }
     if (cached_has_bits & 0x00000010u) {
       terminal_id_ = from.terminal_id_;
@@ -1678,10 +1708,13 @@ void Measure_response_msg::CopyFrom(const Measure_response_msg& from) {
 }
 
 bool Measure_response_msg::IsInitialized() const {
-  if ((_has_bits_[0] & 0x0000001d) != 0x0000001d) return false;
+  if ((_has_bits_[0] & 0x0000001b) != 0x0000001b) return false;
   if (has_base_info()) {
     if (!this->base_info_->IsInitialized()) return false;
   }
+  if (has_command_info()) {
+    if (!this->command_info_->IsInitialized()) return false;
+  }
   if (has_error_manager()) {
     if (!this->error_manager_->IsInitialized()) return false;
   }
@@ -1695,9 +1728,9 @@ void Measure_response_msg::Swap(Measure_response_msg* other) {
 void Measure_response_msg::InternalSwap(Measure_response_msg* other) {
   using std::swap;
   swap(base_info_, other->base_info_);
+  swap(command_info_, other->command_info_);
   swap(locate_information_, other->locate_information_);
   swap(error_manager_, other->error_manager_);
-  swap(command_id_, other->command_id_);
   swap(terminal_id_, other->terminal_id_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);

+ 112 - 56
message/measure_message.pb.h

@@ -405,12 +405,14 @@ class Measure_request_msg : public ::google::protobuf::Message /* @@protoc_inser
   ::message::Base_info* mutable_base_info();
   void set_allocated_base_info(::message::Base_info* base_info);
 
-  // required int32 command_id = 2;
-  bool has_command_id() const;
-  void clear_command_id();
-  static const int kCommandIdFieldNumber = 2;
-  ::google::protobuf::int32 command_id() const;
-  void set_command_id(::google::protobuf::int32 value);
+  // required .message.Command_info command_info = 2;
+  bool has_command_info() const;
+  void clear_command_info();
+  static const int kCommandInfoFieldNumber = 2;
+  const ::message::Command_info& command_info() const;
+  ::message::Command_info* release_command_info();
+  ::message::Command_info* mutable_command_info();
+  void set_allocated_command_info(::message::Command_info* command_info);
 
   // required int32 terminal_id = 3;
   bool has_terminal_id() const;
@@ -423,8 +425,8 @@ class Measure_request_msg : public ::google::protobuf::Message /* @@protoc_inser
  private:
   void set_has_base_info();
   void clear_has_base_info();
-  void set_has_command_id();
-  void clear_has_command_id();
+  void set_has_command_info();
+  void clear_has_command_info();
   void set_has_terminal_id();
   void clear_has_terminal_id();
 
@@ -435,7 +437,7 @@ class Measure_request_msg : public ::google::protobuf::Message /* @@protoc_inser
   ::google::protobuf::internal::HasBits<1> _has_bits_;
   mutable int _cached_size_;
   ::message::Base_info* base_info_;
-  ::google::protobuf::int32 command_id_;
+  ::message::Command_info* command_info_;
   ::google::protobuf::int32 terminal_id_;
   friend struct ::protobuf_measure_5fmessage_2eproto::TableStruct;
   friend void ::protobuf_measure_5fmessage_2eproto::InitDefaultsMeasure_request_msgImpl();
@@ -540,6 +542,15 @@ class Measure_response_msg : public ::google::protobuf::Message /* @@protoc_inse
   ::message::Base_info* mutable_base_info();
   void set_allocated_base_info(::message::Base_info* base_info);
 
+  // required .message.Command_info command_info = 2;
+  bool has_command_info() const;
+  void clear_command_info();
+  static const int kCommandInfoFieldNumber = 2;
+  const ::message::Command_info& command_info() const;
+  ::message::Command_info* release_command_info();
+  ::message::Command_info* mutable_command_info();
+  void set_allocated_command_info(::message::Command_info* command_info);
+
   // optional .message.Locate_information locate_information = 4;
   bool has_locate_information() const;
   void clear_locate_information();
@@ -558,13 +569,6 @@ class Measure_response_msg : public ::google::protobuf::Message /* @@protoc_inse
   ::message::Error_manager* mutable_error_manager();
   void set_allocated_error_manager(::message::Error_manager* error_manager);
 
-  // required int32 command_id = 2;
-  bool has_command_id() const;
-  void clear_command_id();
-  static const int kCommandIdFieldNumber = 2;
-  ::google::protobuf::int32 command_id() const;
-  void set_command_id(::google::protobuf::int32 value);
-
   // required int32 terminal_id = 3;
   bool has_terminal_id() const;
   void clear_terminal_id();
@@ -576,8 +580,8 @@ class Measure_response_msg : public ::google::protobuf::Message /* @@protoc_inse
  private:
   void set_has_base_info();
   void clear_has_base_info();
-  void set_has_command_id();
-  void clear_has_command_id();
+  void set_has_command_info();
+  void clear_has_command_info();
   void set_has_terminal_id();
   void clear_has_terminal_id();
   void set_has_locate_information();
@@ -592,9 +596,9 @@ class Measure_response_msg : public ::google::protobuf::Message /* @@protoc_inse
   ::google::protobuf::internal::HasBits<1> _has_bits_;
   mutable int _cached_size_;
   ::message::Base_info* base_info_;
+  ::message::Command_info* command_info_;
   ::message::Locate_information* locate_information_;
   ::message::Error_manager* error_manager_;
-  ::google::protobuf::int32 command_id_;
   ::google::protobuf::int32 terminal_id_;
   friend struct ::protobuf_measure_5fmessage_2eproto::TableStruct;
   friend void ::protobuf_measure_5fmessage_2eproto::InitDefaultsMeasure_response_msgImpl();
@@ -896,28 +900,54 @@ inline void Measure_request_msg::set_allocated_base_info(::message::Base_info* b
   // @@protoc_insertion_point(field_set_allocated:message.Measure_request_msg.base_info)
 }
 
-// required int32 command_id = 2;
-inline bool Measure_request_msg::has_command_id() const {
+// required .message.Command_info command_info = 2;
+inline bool Measure_request_msg::has_command_info() const {
   return (_has_bits_[0] & 0x00000002u) != 0;
 }
-inline void Measure_request_msg::set_has_command_id() {
+inline void Measure_request_msg::set_has_command_info() {
   _has_bits_[0] |= 0x00000002u;
 }
-inline void Measure_request_msg::clear_has_command_id() {
+inline void Measure_request_msg::clear_has_command_info() {
   _has_bits_[0] &= ~0x00000002u;
 }
-inline void Measure_request_msg::clear_command_id() {
-  command_id_ = 0;
-  clear_has_command_id();
+inline const ::message::Command_info& Measure_request_msg::command_info() const {
+  const ::message::Command_info* p = command_info_;
+  // @@protoc_insertion_point(field_get:message.Measure_request_msg.command_info)
+  return p != NULL ? *p : *reinterpret_cast<const ::message::Command_info*>(
+      &::message::_Command_info_default_instance_);
+}
+inline ::message::Command_info* Measure_request_msg::release_command_info() {
+  // @@protoc_insertion_point(field_release:message.Measure_request_msg.command_info)
+  clear_has_command_info();
+  ::message::Command_info* temp = command_info_;
+  command_info_ = NULL;
+  return temp;
 }
-inline ::google::protobuf::int32 Measure_request_msg::command_id() const {
-  // @@protoc_insertion_point(field_get:message.Measure_request_msg.command_id)
-  return command_id_;
+inline ::message::Command_info* Measure_request_msg::mutable_command_info() {
+  set_has_command_info();
+  if (command_info_ == NULL) {
+    command_info_ = new ::message::Command_info;
+  }
+  // @@protoc_insertion_point(field_mutable:message.Measure_request_msg.command_info)
+  return command_info_;
 }
-inline void Measure_request_msg::set_command_id(::google::protobuf::int32 value) {
-  set_has_command_id();
-  command_id_ = value;
-  // @@protoc_insertion_point(field_set:message.Measure_request_msg.command_id)
+inline void Measure_request_msg::set_allocated_command_info(::message::Command_info* command_info) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(command_info_);
+  }
+  if (command_info) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      command_info = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, command_info, submessage_arena);
+    }
+    set_has_command_info();
+  } else {
+    clear_has_command_info();
+  }
+  command_info_ = command_info;
+  // @@protoc_insertion_point(field_set_allocated:message.Measure_request_msg.command_info)
 }
 
 // required int32 terminal_id = 3;
@@ -998,28 +1028,54 @@ inline void Measure_response_msg::set_allocated_base_info(::message::Base_info*
   // @@protoc_insertion_point(field_set_allocated:message.Measure_response_msg.base_info)
 }
 
-// required int32 command_id = 2;
-inline bool Measure_response_msg::has_command_id() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
+// required .message.Command_info command_info = 2;
+inline bool Measure_response_msg::has_command_info() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
 }
-inline void Measure_response_msg::set_has_command_id() {
-  _has_bits_[0] |= 0x00000008u;
+inline void Measure_response_msg::set_has_command_info() {
+  _has_bits_[0] |= 0x00000002u;
 }
-inline void Measure_response_msg::clear_has_command_id() {
-  _has_bits_[0] &= ~0x00000008u;
+inline void Measure_response_msg::clear_has_command_info() {
+  _has_bits_[0] &= ~0x00000002u;
 }
-inline void Measure_response_msg::clear_command_id() {
-  command_id_ = 0;
-  clear_has_command_id();
+inline const ::message::Command_info& Measure_response_msg::command_info() const {
+  const ::message::Command_info* p = command_info_;
+  // @@protoc_insertion_point(field_get:message.Measure_response_msg.command_info)
+  return p != NULL ? *p : *reinterpret_cast<const ::message::Command_info*>(
+      &::message::_Command_info_default_instance_);
+}
+inline ::message::Command_info* Measure_response_msg::release_command_info() {
+  // @@protoc_insertion_point(field_release:message.Measure_response_msg.command_info)
+  clear_has_command_info();
+  ::message::Command_info* temp = command_info_;
+  command_info_ = NULL;
+  return temp;
 }
-inline ::google::protobuf::int32 Measure_response_msg::command_id() const {
-  // @@protoc_insertion_point(field_get:message.Measure_response_msg.command_id)
-  return command_id_;
+inline ::message::Command_info* Measure_response_msg::mutable_command_info() {
+  set_has_command_info();
+  if (command_info_ == NULL) {
+    command_info_ = new ::message::Command_info;
+  }
+  // @@protoc_insertion_point(field_mutable:message.Measure_response_msg.command_info)
+  return command_info_;
 }
-inline void Measure_response_msg::set_command_id(::google::protobuf::int32 value) {
-  set_has_command_id();
-  command_id_ = value;
-  // @@protoc_insertion_point(field_set:message.Measure_response_msg.command_id)
+inline void Measure_response_msg::set_allocated_command_info(::message::Command_info* command_info) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(command_info_);
+  }
+  if (command_info) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      command_info = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, command_info, submessage_arena);
+    }
+    set_has_command_info();
+  } else {
+    clear_has_command_info();
+  }
+  command_info_ = command_info;
+  // @@protoc_insertion_point(field_set_allocated:message.Measure_response_msg.command_info)
 }
 
 // required int32 terminal_id = 3;
@@ -1048,13 +1104,13 @@ inline void Measure_response_msg::set_terminal_id(::google::protobuf::int32 valu
 
 // optional .message.Locate_information locate_information = 4;
 inline bool Measure_response_msg::has_locate_information() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
+  return (_has_bits_[0] & 0x00000004u) != 0;
 }
 inline void Measure_response_msg::set_has_locate_information() {
-  _has_bits_[0] |= 0x00000002u;
+  _has_bits_[0] |= 0x00000004u;
 }
 inline void Measure_response_msg::clear_has_locate_information() {
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
 }
 inline const ::message::Locate_information& Measure_response_msg::locate_information() const {
   const ::message::Locate_information* p = locate_information_;
@@ -1098,13 +1154,13 @@ inline void Measure_response_msg::set_allocated_locate_information(::message::Lo
 
 // required .message.Error_manager error_manager = 5;
 inline bool Measure_response_msg::has_error_manager() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
+  return (_has_bits_[0] & 0x00000008u) != 0;
 }
 inline void Measure_response_msg::set_has_error_manager() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000008u;
 }
 inline void Measure_response_msg::clear_has_error_manager() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
 }
 inline const ::message::Error_manager& Measure_response_msg::error_manager() const {
   const ::message::Error_manager* p = error_manager_;

+ 2 - 2
message/measure_message.proto

@@ -51,7 +51,7 @@ message Measure_status_msg
 message Measure_request_msg
 {
     required Base_info                  base_info=1;        //消息类型
-    required int32                      command_id=2;                   //指令唯一标识符id
+    required Command_info               command_info=2;                   //指令唯一标识符id
     required int32                      terminal_id=3;          //终端id
 }
 
@@ -59,7 +59,7 @@ message Measure_request_msg
 message Measure_response_msg
 {
     required Base_info                  base_info=1;                         //消息类型
-    required int32                      command_id=2;                   //指令唯一标识符id
+    required Command_info               command_info=2;                   //指令唯一标识符id
     required int32                      terminal_id=3;
 
     optional Locate_information         locate_information=4;

+ 520 - 62
message/message_base.pb.cc

@@ -25,6 +25,11 @@ class Base_infoDefaultTypeInternal {
   ::google::protobuf::internal::ExplicitlyConstructed<Base_info>
       _instance;
 } _Base_info_default_instance_;
+class Command_infoDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<Command_info>
+      _instance;
+} _Command_info_default_instance_;
 class Base_msgDefaultTypeInternal {
  public:
   ::google::protobuf::internal::ExplicitlyConstructed<Base_msg>
@@ -73,6 +78,27 @@ void InitDefaultsBase_info() {
   ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsBase_infoImpl);
 }
 
+void InitDefaultsCommand_infoImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::message::_Command_info_default_instance_;
+    new (ptr) ::message::Command_info();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::message::Command_info::InitAsDefaultInstance();
+}
+
+void InitDefaultsCommand_info() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsCommand_infoImpl);
+}
+
 void InitDefaultsBase_msgImpl() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
@@ -180,8 +206,8 @@ void InitDefaultsParkspace_info() {
   ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsParkspace_infoImpl);
 }
 
-::google::protobuf::Metadata file_level_metadata[6];
-const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[5];
+::google::protobuf::Metadata file_level_metadata[7];
+const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[6];
 
 const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Base_info, _has_bits_),
@@ -197,6 +223,17 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   1,
   2,
   3,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Command_info, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Command_info, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Command_info, time_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Command_info, location_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Command_info, event_),
+  0,
+  1,
+  2,
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Base_msg, _has_bits_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Base_msg, _internal_metadata_),
   ~0u,  // no _extensions_
@@ -281,15 +318,17 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
 };
 static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
   { 0, 9, sizeof(::message::Base_info)},
-  { 13, 19, sizeof(::message::Base_msg)},
-  { 20, 28, sizeof(::message::Error_manager)},
-  { 31, 45, sizeof(::message::Locate_information)},
-  { 54, 63, sizeof(::message::Car_info)},
-  { 67, 83, sizeof(::message::Parkspace_info)},
+  { 13, 21, sizeof(::message::Command_info)},
+  { 24, 30, sizeof(::message::Base_msg)},
+  { 31, 39, sizeof(::message::Error_manager)},
+  { 42, 56, sizeof(::message::Locate_information)},
+  { 65, 74, sizeof(::message::Car_info)},
+  { 78, 94, sizeof(::message::Parkspace_info)},
 };
 
 static ::google::protobuf::Message const * const file_default_instances[] = {
   reinterpret_cast<const ::google::protobuf::Message*>(&::message::_Base_info_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::message::_Command_info_default_instance_),
   reinterpret_cast<const ::google::protobuf::Message*>(&::message::_Base_msg_default_instance_),
   reinterpret_cast<const ::google::protobuf::Message*>(&::message::_Error_manager_default_instance_),
   reinterpret_cast<const ::google::protobuf::Message*>(&::message::_Locate_information_default_instance_),
@@ -313,7 +352,7 @@ void protobuf_AssignDescriptorsOnce() {
 void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
 void protobuf_RegisterTypes(const ::std::string&) {
   protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 6);
+  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 7);
 }
 
 void AddDescriptorsImpl() {
@@ -323,59 +362,62 @@ void AddDescriptorsImpl() {
       "nfo\022\'\n\010msg_type\030\001 \002(\0162\025.message.Message_"
       "type\022\022\n\ntimeout_ms\030\002 \001(\005\022%\n\006sender\030\003 \002(\016"
       "2\025.message.Communicator\022\'\n\010receiver\030\004 \002("
-      "\0162\025.message.Communicator\"1\n\010Base_msg\022%\n\t"
-      "base_info\030\001 \002(\0132\022.message.Base_info\"i\n\rE"
-      "rror_manager\022\022\n\nerror_code\030\001 \002(\005\022)\n\013erro"
-      "r_level\030\002 \001(\0162\024.message.Error_level\022\031\n\021e"
-      "rror_description\030\003 \001(\t\"\341\001\n\022Locate_inform"
-      "ation\022\020\n\010locate_x\030\001 \001(\002\022\020\n\010locate_y\030\002 \001("
-      "\002\022\024\n\014locate_angle\030\003 \001(\002\022\025\n\rlocate_length"
-      "\030\004 \001(\002\022\024\n\014locate_width\030\005 \001(\002\022\025\n\rlocate_h"
-      "eight\030\006 \001(\002\022\031\n\021locate_wheel_base\030\007 \001(\002\022\032"
-      "\n\022locate_wheel_width\030\010 \001(\002\022\026\n\016locate_cor"
-      "rect\030\t \001(\010\"V\n\010Car_info\022\022\n\ncar_length\030\001 \001"
-      "(\002\022\021\n\tcar_width\030\002 \001(\002\022\022\n\ncar_height\030\003 \001("
-      "\002\022\017\n\007license\030\004 \001(\t\"\234\002\n\016Parkspace_info\022\024\n"
-      "\014parkspace_id\030\001 \001(\005\022\r\n\005index\030\002 \001(\005\022%\n\tdi"
-      "rection\030\003 \001(\0162\022.message.Direction\022\r\n\005flo"
-      "or\030\004 \001(\005\022\016\n\006length\030\005 \001(\002\022\r\n\005width\030\006 \001(\002\022"
-      "\016\n\006height\030\007 \001(\002\0223\n\020parkspace_status\030\010 \001("
-      "\0162\031.message.Parkspace_status\022#\n\010car_info"
-      "\030\t \001(\0132\021.message.Car_info\022\022\n\nentry_time\030"
-      "\n \001(\t\022\022\n\nleave_time\030\013 \001(\t*\276\006\n\014Message_ty"
-      "pe\022\r\n\teBase_msg\020\000\022\020\n\014eCommand_msg\020\001\022\026\n\022e"
-      "Locate_status_msg\020\021\022\027\n\023eLocate_request_m"
-      "sg\020\022\022\030\n\024eLocate_response_msg\020\023\022\030\n\024eDispa"
-      "tch_status_msg\020!\022\031\n\025eDispatch_request_ms"
-      "g\020\"\022\032\n\026eDispatch_response_msg\020#\022$\n ePark"
-      "space_allocation_status_msg\0201\022%\n!eParksp"
-      "ace_allocation_request_msg\0202\022&\n\"eParkspa"
-      "ce_allocation_response_msg\0203\022!\n\035eParkspa"
-      "ce_search_request_msg\0204\022\"\n\036eParkspace_se"
-      "arch_response_msg\0205\022\"\n\036eParkspace_releas"
-      "e_request_msg\0206\022#\n\037eParkspace_release_re"
-      "sponse_msg\0207\022\'\n#eParkspace_force_update_"
-      "request_msg\0208\022(\n$eParkspace_force_update"
-      "_response_msg\0209\022(\n$eParkspace_confirm_al"
-      "loc_request_msg\020:\022)\n%eParkspace_confirm_"
-      "alloc_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\037\n\032eSto"
-      "ring_process_statu_msg\020\220\001\022\037\n\032ePicking_pr"
-      "ocess_statu_msg\020\221\001*f\n\014Communicator\022\n\n\006eE"
-      "mpty\020\000\022\t\n\005eMain\020\001\022\016\n\teTerminor\020\200\002\022\017\n\nePa"
-      "rkspace\020\200\004\022\016\n\teMeasurer\020\200\006\022\016\n\teDispatch\020"
-      "\200\010*e\n\013Error_level\022\n\n\006NORMAL\020\000\022\024\n\020NEGLIGI"
-      "BLE_ERROR\020\001\022\017\n\013MINOR_ERROR\020\002\022\017\n\013MAJOR_ER"
-      "ROR\020\003\022\022\n\016CRITICAL_ERROR\020\004*q\n\020Parkspace_s"
-      "tatus\022\024\n\020eParkspace_empty\020\000\022\027\n\023eParkspac"
-      "e_occupied\020\001\022\030\n\024eParkspace_reserverd\020\002\022\024"
-      "\n\020eParkspace_error\020\003*(\n\tDirection\022\014\n\010eFo"
-      "rward\020\001\022\r\n\teBackward\020\002"
+      "\0162\025.message.Communicator\"M\n\014Command_info"
+      "\022\014\n\004time\030\001 \002(\t\022\020\n\010location\030\002 \002(\t\022\035\n\005even"
+      "t\030\003 \002(\0162\016.message.Event\"1\n\010Base_msg\022%\n\tb"
+      "ase_info\030\001 \002(\0132\022.message.Base_info\"i\n\rEr"
+      "ror_manager\022\022\n\nerror_code\030\001 \002(\005\022)\n\013error"
+      "_level\030\002 \001(\0162\024.message.Error_level\022\031\n\021er"
+      "ror_description\030\003 \001(\t\"\341\001\n\022Locate_informa"
+      "tion\022\020\n\010locate_x\030\001 \001(\002\022\020\n\010locate_y\030\002 \001(\002"
+      "\022\024\n\014locate_angle\030\003 \001(\002\022\025\n\rlocate_length\030"
+      "\004 \001(\002\022\024\n\014locate_width\030\005 \001(\002\022\025\n\rlocate_he"
+      "ight\030\006 \001(\002\022\031\n\021locate_wheel_base\030\007 \001(\002\022\032\n"
+      "\022locate_wheel_width\030\010 \001(\002\022\026\n\016locate_corr"
+      "ect\030\t \001(\010\"V\n\010Car_info\022\022\n\ncar_length\030\001 \001("
+      "\002\022\021\n\tcar_width\030\002 \001(\002\022\022\n\ncar_height\030\003 \001(\002"
+      "\022\017\n\007license\030\004 \001(\t\"\234\002\n\016Parkspace_info\022\024\n\014"
+      "parkspace_id\030\001 \001(\005\022\r\n\005index\030\002 \001(\005\022%\n\tdir"
+      "ection\030\003 \001(\0162\022.message.Direction\022\r\n\005floo"
+      "r\030\004 \001(\005\022\016\n\006length\030\005 \001(\002\022\r\n\005width\030\006 \001(\002\022\016"
+      "\n\006height\030\007 \001(\002\0223\n\020parkspace_status\030\010 \001(\016"
+      "2\031.message.Parkspace_status\022#\n\010car_info\030"
+      "\t \001(\0132\021.message.Car_info\022\022\n\nentry_time\030\n"
+      " \001(\t\022\022\n\nleave_time\030\013 \001(\t*\276\006\n\014Message_typ"
+      "e\022\r\n\teBase_msg\020\000\022\020\n\014eCommand_msg\020\001\022\026\n\022eL"
+      "ocate_status_msg\020\021\022\027\n\023eLocate_request_ms"
+      "g\020\022\022\030\n\024eLocate_response_msg\020\023\022\030\n\024eDispat"
+      "ch_status_msg\020!\022\031\n\025eDispatch_request_msg"
+      "\020\"\022\032\n\026eDispatch_response_msg\020#\022$\n eParks"
+      "pace_allocation_status_msg\0201\022%\n!eParkspa"
+      "ce_allocation_request_msg\0202\022&\n\"eParkspac"
+      "e_allocation_response_msg\0203\022!\n\035eParkspac"
+      "e_search_request_msg\0204\022\"\n\036eParkspace_sea"
+      "rch_response_msg\0205\022\"\n\036eParkspace_release"
+      "_request_msg\0206\022#\n\037eParkspace_release_res"
+      "ponse_msg\0207\022\'\n#eParkspace_force_update_r"
+      "equest_msg\0208\022(\n$eParkspace_force_update_"
+      "response_msg\0209\022(\n$eParkspace_confirm_all"
+      "oc_request_msg\020:\022)\n%eParkspace_confirm_a"
+      "lloc_response_msg\020;\022\036\n\032eStore_command_re"
+      "quest_msg\020A\022\037\n\033eStore_command_response_m"
+      "sg\020B\022\037\n\033ePickup_command_request_msg\020C\022 \n"
+      "\034ePickup_command_response_msg\020D\022\037\n\032eStor"
+      "ing_process_statu_msg\020\220\001\022\037\n\032ePicking_pro"
+      "cess_statu_msg\020\221\001*f\n\014Communicator\022\n\n\006eEm"
+      "pty\020\000\022\t\n\005eMain\020\001\022\016\n\teTerminor\020\200\002\022\017\n\nePar"
+      "kspace\020\200\004\022\016\n\teMeasurer\020\200\006\022\016\n\teDispatch\020\200"
+      "\010*#\n\005Event\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*q\n\020Parkspace_statu"
+      "s\022\024\n\020eParkspace_empty\020\000\022\027\n\023eParkspace_oc"
+      "cupied\020\001\022\030\n\024eParkspace_reserverd\020\002\022\024\n\020eP"
+      "arkspace_error\020\003*(\n\tDirection\022\014\n\010eForwar"
+      "d\020\001\022\r\n\teBackward\020\002"
   };
   ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-      descriptor, 2142);
+      descriptor, 2258);
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
     "message_base.proto", &protobuf_RegisterTypes);
 }
@@ -447,10 +489,24 @@ bool Communicator_IsValid(int value) {
   }
 }
 
-const ::google::protobuf::EnumDescriptor* Error_level_descriptor() {
+const ::google::protobuf::EnumDescriptor* Event_descriptor() {
   protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
   return protobuf_message_5fbase_2eproto::file_level_enum_descriptors[2];
 }
+bool Event_IsValid(int value) {
+  switch (value) {
+    case 1:
+    case 2:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::google::protobuf::EnumDescriptor* Error_level_descriptor() {
+  protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_message_5fbase_2eproto::file_level_enum_descriptors[3];
+}
 bool Error_level_IsValid(int value) {
   switch (value) {
     case 0:
@@ -466,7 +522,7 @@ bool Error_level_IsValid(int value) {
 
 const ::google::protobuf::EnumDescriptor* Parkspace_status_descriptor() {
   protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
-  return protobuf_message_5fbase_2eproto::file_level_enum_descriptors[3];
+  return protobuf_message_5fbase_2eproto::file_level_enum_descriptors[4];
 }
 bool Parkspace_status_IsValid(int value) {
   switch (value) {
@@ -482,7 +538,7 @@ bool Parkspace_status_IsValid(int value) {
 
 const ::google::protobuf::EnumDescriptor* Direction_descriptor() {
   protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
-  return protobuf_message_5fbase_2eproto::file_level_enum_descriptors[4];
+  return protobuf_message_5fbase_2eproto::file_level_enum_descriptors[5];
 }
 bool Direction_IsValid(int value) {
   switch (value) {
@@ -903,6 +959,408 @@ void Base_info::InternalSwap(Base_info* other) {
 }
 
 
+// ===================================================================
+
+void Command_info::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int Command_info::kTimeFieldNumber;
+const int Command_info::kLocationFieldNumber;
+const int Command_info::kEventFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+Command_info::Command_info()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_message_5fbase_2eproto::InitDefaultsCommand_info();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:message.Command_info)
+}
+Command_info::Command_info(const Command_info& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  time_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_time()) {
+    time_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.time_);
+  }
+  location_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_location()) {
+    location_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.location_);
+  }
+  event_ = from.event_;
+  // @@protoc_insertion_point(copy_constructor:message.Command_info)
+}
+
+void Command_info::SharedCtor() {
+  _cached_size_ = 0;
+  time_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  location_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  event_ = 1;
+}
+
+Command_info::~Command_info() {
+  // @@protoc_insertion_point(destructor:message.Command_info)
+  SharedDtor();
+}
+
+void Command_info::SharedDtor() {
+  time_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  location_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void Command_info::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Command_info::descriptor() {
+  ::protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_message_5fbase_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const Command_info& Command_info::default_instance() {
+  ::protobuf_message_5fbase_2eproto::InitDefaultsCommand_info();
+  return *internal_default_instance();
+}
+
+Command_info* Command_info::New(::google::protobuf::Arena* arena) const {
+  Command_info* n = new Command_info;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void Command_info::Clear() {
+// @@protoc_insertion_point(message_clear_start:message.Command_info)
+  ::google::protobuf::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 & 7u) {
+    if (cached_has_bits & 0x00000001u) {
+      GOOGLE_DCHECK(!time_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*time_.UnsafeRawStringPointer())->clear();
+    }
+    if (cached_has_bits & 0x00000002u) {
+      GOOGLE_DCHECK(!location_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*location_.UnsafeRawStringPointer())->clear();
+    }
+    event_ = 1;
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool Command_info::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:message.Command_info)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required string time = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_time()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->time().data(), static_cast<int>(this->time().length()),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "message.Command_info.time");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string location = 2;
+      case 2: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_location()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->location().data(), static_cast<int>(this->location().length()),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "message.Command_info.location");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required .message.Event event = 3;
+      case 3: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          if (::message::Event_IsValid(value)) {
+            set_event(static_cast< ::message::Event >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(
+                3, static_cast< ::google::protobuf::uint64>(value));
+          }
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:message.Command_info)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:message.Command_info)
+  return false;
+#undef DO_
+}
+
+void Command_info::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:message.Command_info)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
+  // required string time = 1;
+  if (cached_has_bits & 0x00000001u) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->time().data(), static_cast<int>(this->time().length()),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "message.Command_info.time");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->time(), output);
+  }
+
+  // required string location = 2;
+  if (cached_has_bits & 0x00000002u) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->location().data(), static_cast<int>(this->location().length()),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "message.Command_info.location");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      2, this->location(), output);
+  }
+
+  // required .message.Event event = 3;
+  if (cached_has_bits & 0x00000004u) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      3, this->event(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        _internal_metadata_.unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:message.Command_info)
+}
+
+::google::protobuf::uint8* Command_info::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:message.Command_info)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
+  // required string time = 1;
+  if (cached_has_bits & 0x00000001u) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->time().data(), static_cast<int>(this->time().length()),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "message.Command_info.time");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->time(), target);
+  }
+
+  // required string location = 2;
+  if (cached_has_bits & 0x00000002u) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->location().data(), static_cast<int>(this->location().length()),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "message.Command_info.location");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        2, this->location(), target);
+  }
+
+  // required .message.Event event = 3;
+  if (cached_has_bits & 0x00000004u) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      3, this->event(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:message.Command_info)
+  return target;
+}
+
+size_t Command_info::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:message.Command_info)
+  size_t total_size = 0;
+
+  if (has_time()) {
+    // required string time = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->time());
+  }
+
+  if (has_location()) {
+    // required string location = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->location());
+  }
+
+  if (has_event()) {
+    // required .message.Event event = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::EnumSize(this->event());
+  }
+
+  return total_size;
+}
+size_t Command_info::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:message.Command_info)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        _internal_metadata_.unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x00000007) ^ 0x00000007) == 0) {  // All required fields are present.
+    // required string time = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->time());
+
+    // required string location = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->location());
+
+    // required .message.Event event = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::EnumSize(this->event());
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void Command_info::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:message.Command_info)
+  GOOGLE_DCHECK_NE(&from, this);
+  const Command_info* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const Command_info>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.Command_info)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:message.Command_info)
+    MergeFrom(*source);
+  }
+}
+
+void Command_info::MergeFrom(const Command_info& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:message.Command_info)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = from._has_bits_[0];
+  if (cached_has_bits & 7u) {
+    if (cached_has_bits & 0x00000001u) {
+      set_has_time();
+      time_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.time_);
+    }
+    if (cached_has_bits & 0x00000002u) {
+      set_has_location();
+      location_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.location_);
+    }
+    if (cached_has_bits & 0x00000004u) {
+      event_ = from.event_;
+    }
+    _has_bits_[0] |= cached_has_bits;
+  }
+}
+
+void Command_info::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:message.Command_info)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void Command_info::CopyFrom(const Command_info& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:message.Command_info)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool Command_info::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000007) != 0x00000007) return false;
+  return true;
+}
+
+void Command_info::Swap(Command_info* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void Command_info::InternalSwap(Command_info* other) {
+  using std::swap;
+  time_.Swap(&other->time_);
+  location_.Swap(&other->location_);
+  swap(event_, other->event_);
+  swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Command_info::GetMetadata() const {
+  protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_message_5fbase_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
 // ===================================================================
 
 void Base_msg::InitAsDefaultInstance() {

+ 342 - 6
message/message_base.pb.h

@@ -37,7 +37,7 @@ namespace protobuf_message_5fbase_2eproto {
 struct TableStruct {
   static const ::google::protobuf::internal::ParseTableField entries[];
   static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
-  static const ::google::protobuf::internal::ParseTable schema[6];
+  static const ::google::protobuf::internal::ParseTable schema[7];
   static const ::google::protobuf::internal::FieldMetadata field_metadata[];
   static const ::google::protobuf::internal::SerializationTable serialization_table[];
   static const ::google::protobuf::uint32 offsets[];
@@ -45,6 +45,8 @@ struct TableStruct {
 void AddDescriptors();
 void InitDefaultsBase_infoImpl();
 void InitDefaultsBase_info();
+void InitDefaultsCommand_infoImpl();
+void InitDefaultsCommand_info();
 void InitDefaultsBase_msgImpl();
 void InitDefaultsBase_msg();
 void InitDefaultsError_managerImpl();
@@ -57,6 +59,7 @@ void InitDefaultsParkspace_infoImpl();
 void InitDefaultsParkspace_info();
 inline void InitDefaults() {
   InitDefaultsBase_info();
+  InitDefaultsCommand_info();
   InitDefaultsBase_msg();
   InitDefaultsError_manager();
   InitDefaultsLocate_information();
@@ -74,6 +77,9 @@ extern Base_msgDefaultTypeInternal _Base_msg_default_instance_;
 class Car_info;
 class Car_infoDefaultTypeInternal;
 extern Car_infoDefaultTypeInternal _Car_info_default_instance_;
+class Command_info;
+class Command_infoDefaultTypeInternal;
+extern Command_infoDefaultTypeInternal _Command_info_default_instance_;
 class Error_manager;
 class Error_managerDefaultTypeInternal;
 extern Error_managerDefaultTypeInternal _Error_manager_default_instance_;
@@ -151,6 +157,25 @@ inline bool Communicator_Parse(
   return ::google::protobuf::internal::ParseNamedEnum<Communicator>(
     Communicator_descriptor(), name, value);
 }
+enum Event {
+  eStoring = 1,
+  ePicking = 2
+};
+bool Event_IsValid(int value);
+const Event Event_MIN = eStoring;
+const Event Event_MAX = ePicking;
+const int Event_ARRAYSIZE = Event_MAX + 1;
+
+const ::google::protobuf::EnumDescriptor* Event_descriptor();
+inline const ::std::string& Event_Name(Event value) {
+  return ::google::protobuf::internal::NameOfEnum(
+    Event_descriptor(), value);
+}
+inline bool Event_Parse(
+    const ::std::string& name, Event* value) {
+  return ::google::protobuf::internal::ParseNamedEnum<Event>(
+    Event_descriptor(), name, value);
+}
 enum Error_level {
   NORMAL = 0,
   NEGLIGIBLE_ERROR = 1,
@@ -358,6 +383,155 @@ class Base_info : public ::google::protobuf::Message /* @@protoc_insertion_point
 };
 // -------------------------------------------------------------------
 
+class Command_info : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:message.Command_info) */ {
+ public:
+  Command_info();
+  virtual ~Command_info();
+
+  Command_info(const Command_info& from);
+
+  inline Command_info& operator=(const Command_info& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  Command_info(Command_info&& from) noexcept
+    : Command_info() {
+    *this = ::std::move(from);
+  }
+
+  inline Command_info& operator=(Command_info&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const Command_info& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const Command_info* internal_default_instance() {
+    return reinterpret_cast<const Command_info*>(
+               &_Command_info_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    1;
+
+  void Swap(Command_info* other);
+  friend void swap(Command_info& a, Command_info& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline Command_info* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  Command_info* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const Command_info& from);
+  void MergeFrom(const Command_info& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(Command_info* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required string time = 1;
+  bool has_time() const;
+  void clear_time();
+  static const int kTimeFieldNumber = 1;
+  const ::std::string& time() const;
+  void set_time(const ::std::string& value);
+  #if LANG_CXX11
+  void set_time(::std::string&& value);
+  #endif
+  void set_time(const char* value);
+  void set_time(const char* value, size_t size);
+  ::std::string* mutable_time();
+  ::std::string* release_time();
+  void set_allocated_time(::std::string* time);
+
+  // required string location = 2;
+  bool has_location() const;
+  void clear_location();
+  static const int kLocationFieldNumber = 2;
+  const ::std::string& location() const;
+  void set_location(const ::std::string& value);
+  #if LANG_CXX11
+  void set_location(::std::string&& value);
+  #endif
+  void set_location(const char* value);
+  void set_location(const char* value, size_t size);
+  ::std::string* mutable_location();
+  ::std::string* release_location();
+  void set_allocated_location(::std::string* location);
+
+  // required .message.Event event = 3;
+  bool has_event() const;
+  void clear_event();
+  static const int kEventFieldNumber = 3;
+  ::message::Event event() const;
+  void set_event(::message::Event value);
+
+  // @@protoc_insertion_point(class_scope:message.Command_info)
+ private:
+  void set_has_time();
+  void clear_has_time();
+  void set_has_location();
+  void clear_has_location();
+  void set_has_event();
+  void clear_has_event();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr time_;
+  ::google::protobuf::internal::ArenaStringPtr location_;
+  int event_;
+  friend struct ::protobuf_message_5fbase_2eproto::TableStruct;
+  friend void ::protobuf_message_5fbase_2eproto::InitDefaultsCommand_infoImpl();
+};
+// -------------------------------------------------------------------
+
 class Base_msg : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:message.Base_msg) */ {
  public:
   Base_msg();
@@ -400,7 +574,7 @@ class Base_msg : public ::google::protobuf::Message /* @@protoc_insertion_point(
                &_Base_msg_default_instance_);
   }
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
-    1;
+    2;
 
   void Swap(Base_msg* other);
   friend void swap(Base_msg& a, Base_msg& b) {
@@ -512,7 +686,7 @@ class Error_manager : public ::google::protobuf::Message /* @@protoc_insertion_p
                &_Error_manager_default_instance_);
   }
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
-    2;
+    3;
 
   void Swap(Error_manager* other);
   friend void swap(Error_manager& a, Error_manager& b) {
@@ -650,7 +824,7 @@ class Locate_information : public ::google::protobuf::Message /* @@protoc_insert
                &_Locate_information_default_instance_);
   }
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
-    3;
+    4;
 
   void Swap(Locate_information* other);
   friend void swap(Locate_information& a, Locate_information& b) {
@@ -840,7 +1014,7 @@ class Car_info : public ::google::protobuf::Message /* @@protoc_insertion_point(
                &_Car_info_default_instance_);
   }
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
-    4;
+    5;
 
   void Swap(Car_info* other);
   friend void swap(Car_info& a, Car_info& b) {
@@ -988,7 +1162,7 @@ class Parkspace_info : public ::google::protobuf::Message /* @@protoc_insertion_
                &_Parkspace_info_default_instance_);
   }
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
-    5;
+    6;
 
   void Swap(Parkspace_info* other);
   friend void swap(Parkspace_info& a, Parkspace_info& b) {
@@ -1284,6 +1458,161 @@ inline void Base_info::set_receiver(::message::Communicator value) {
 
 // -------------------------------------------------------------------
 
+// Command_info
+
+// required string time = 1;
+inline bool Command_info::has_time() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void Command_info::set_has_time() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void Command_info::clear_has_time() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void Command_info::clear_time() {
+  time_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_time();
+}
+inline const ::std::string& Command_info::time() const {
+  // @@protoc_insertion_point(field_get:message.Command_info.time)
+  return time_.GetNoArena();
+}
+inline void Command_info::set_time(const ::std::string& value) {
+  set_has_time();
+  time_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:message.Command_info.time)
+}
+#if LANG_CXX11
+inline void Command_info::set_time(::std::string&& value) {
+  set_has_time();
+  time_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:message.Command_info.time)
+}
+#endif
+inline void Command_info::set_time(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
+  set_has_time();
+  time_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:message.Command_info.time)
+}
+inline void Command_info::set_time(const char* value, size_t size) {
+  set_has_time();
+  time_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:message.Command_info.time)
+}
+inline ::std::string* Command_info::mutable_time() {
+  set_has_time();
+  // @@protoc_insertion_point(field_mutable:message.Command_info.time)
+  return time_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Command_info::release_time() {
+  // @@protoc_insertion_point(field_release:message.Command_info.time)
+  clear_has_time();
+  return time_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Command_info::set_allocated_time(::std::string* time) {
+  if (time != NULL) {
+    set_has_time();
+  } else {
+    clear_has_time();
+  }
+  time_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), time);
+  // @@protoc_insertion_point(field_set_allocated:message.Command_info.time)
+}
+
+// required string location = 2;
+inline bool Command_info::has_location() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void Command_info::set_has_location() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void Command_info::clear_has_location() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void Command_info::clear_location() {
+  location_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_location();
+}
+inline const ::std::string& Command_info::location() const {
+  // @@protoc_insertion_point(field_get:message.Command_info.location)
+  return location_.GetNoArena();
+}
+inline void Command_info::set_location(const ::std::string& value) {
+  set_has_location();
+  location_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:message.Command_info.location)
+}
+#if LANG_CXX11
+inline void Command_info::set_location(::std::string&& value) {
+  set_has_location();
+  location_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:message.Command_info.location)
+}
+#endif
+inline void Command_info::set_location(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
+  set_has_location();
+  location_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:message.Command_info.location)
+}
+inline void Command_info::set_location(const char* value, size_t size) {
+  set_has_location();
+  location_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:message.Command_info.location)
+}
+inline ::std::string* Command_info::mutable_location() {
+  set_has_location();
+  // @@protoc_insertion_point(field_mutable:message.Command_info.location)
+  return location_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Command_info::release_location() {
+  // @@protoc_insertion_point(field_release:message.Command_info.location)
+  clear_has_location();
+  return location_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Command_info::set_allocated_location(::std::string* location) {
+  if (location != NULL) {
+    set_has_location();
+  } else {
+    clear_has_location();
+  }
+  location_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), location);
+  // @@protoc_insertion_point(field_set_allocated:message.Command_info.location)
+}
+
+// required .message.Event event = 3;
+inline bool Command_info::has_event() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void Command_info::set_has_event() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void Command_info::clear_has_event() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void Command_info::clear_event() {
+  event_ = 1;
+  clear_has_event();
+}
+inline ::message::Event Command_info::event() const {
+  // @@protoc_insertion_point(field_get:message.Command_info.event)
+  return static_cast< ::message::Event >(event_);
+}
+inline void Command_info::set_event(::message::Event value) {
+  assert(::message::Event_IsValid(value));
+  set_has_event();
+  event_ = value;
+  // @@protoc_insertion_point(field_set:message.Command_info.event)
+}
+
+// -------------------------------------------------------------------
+
 // Base_msg
 
 // required .message.Base_info base_info = 1;
@@ -2206,6 +2535,8 @@ inline void Parkspace_info::set_allocated_leave_time(::std::string* leave_time)
 
 // -------------------------------------------------------------------
 
+// -------------------------------------------------------------------
+
 
 // @@protoc_insertion_point(namespace_scope)
 
@@ -2224,6 +2555,11 @@ template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::message::Communicator>() {
   return ::message::Communicator_descriptor();
 }
+template <> struct is_proto_enum< ::message::Event> : ::google::protobuf::internal::true_type {};
+template <>
+inline const EnumDescriptor* GetEnumDescriptor< ::message::Event>() {
+  return ::message::Event_descriptor();
+}
 template <> struct is_proto_enum< ::message::Error_level> : ::google::protobuf::internal::true_type {};
 template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::message::Error_level>() {

+ 18 - 0
message/message_base.proto

@@ -69,6 +69,24 @@ message Base_info
     required Communicator               receiver=4;                     //接收者
 }
 
+// 事件,停车或者取车
+enum Event
+{
+    eStoring=1;
+    ePicking=2;
+}
+
+// 指令信息, 包含 时间,地点,事件
+// 时间 格式为: 年-月-日:时-分-秒
+//地点格式为 :  区号-序号   楚天项目为  027-01
+message Command_info
+{
+    required string                     time=1;
+    required string                     location=2;
+    required Event                      event=3;
+
+}
+
 message Base_msg
 {
     required Base_info                  base_info=1;

File diff suppressed because it is too large
+ 325 - 232
message/parkspace_allocation_message.pb.cc


+ 299 - 159
message/parkspace_allocation_message.pb.h

@@ -637,6 +637,15 @@ class Parkspace_search_response_msg : public ::google::protobuf::Message /* @@pr
   ::message::Base_info* mutable_base_info();
   void set_allocated_base_info(::message::Base_info* base_info);
 
+  // required .message.Command_info command_info = 2;
+  bool has_command_info() const;
+  void clear_command_info();
+  static const int kCommandInfoFieldNumber = 2;
+  const ::message::Command_info& command_info() const;
+  ::message::Command_info* release_command_info();
+  ::message::Command_info* mutable_command_info();
+  void set_allocated_command_info(::message::Command_info* command_info);
+
   // required .message.Error_manager error_manager = 3;
   bool has_error_manager() const;
   void clear_error_manager();
@@ -655,19 +664,12 @@ class Parkspace_search_response_msg : public ::google::protobuf::Message /* @@pr
   ::message::Parkspace_info* mutable_car_position();
   void set_allocated_car_position(::message::Parkspace_info* car_position);
 
-  // required int32 command_id = 2;
-  bool has_command_id() const;
-  void clear_command_id();
-  static const int kCommandIdFieldNumber = 2;
-  ::google::protobuf::int32 command_id() const;
-  void set_command_id(::google::protobuf::int32 value);
-
   // @@protoc_insertion_point(class_scope:message.Parkspace_search_response_msg)
  private:
   void set_has_base_info();
   void clear_has_base_info();
-  void set_has_command_id();
-  void clear_has_command_id();
+  void set_has_command_info();
+  void clear_has_command_info();
   void set_has_error_manager();
   void clear_has_error_manager();
   void set_has_car_position();
@@ -680,9 +682,9 @@ class Parkspace_search_response_msg : public ::google::protobuf::Message /* @@pr
   ::google::protobuf::internal::HasBits<1> _has_bits_;
   mutable int _cached_size_;
   ::message::Base_info* base_info_;
+  ::message::Command_info* command_info_;
   ::message::Error_manager* error_manager_;
   ::message::Parkspace_info* car_position_;
-  ::google::protobuf::int32 command_id_;
   friend struct ::protobuf_parkspace_5fallocation_5fmessage_2eproto::TableStruct;
   friend void ::protobuf_parkspace_5fallocation_5fmessage_2eproto::InitDefaultsParkspace_search_response_msgImpl();
 };
@@ -786,6 +788,15 @@ class Parkspace_release_request_msg : public ::google::protobuf::Message /* @@pr
   ::message::Base_info* mutable_base_info();
   void set_allocated_base_info(::message::Base_info* base_info);
 
+  // required .message.Command_info command_info = 2;
+  bool has_command_info() const;
+  void clear_command_info();
+  static const int kCommandInfoFieldNumber = 2;
+  const ::message::Command_info& command_info() const;
+  ::message::Command_info* release_command_info();
+  ::message::Command_info* mutable_command_info();
+  void set_allocated_command_info(::message::Command_info* command_info);
+
   // required .message.Parkspace_info release_space_info = 3;
   bool has_release_space_info() const;
   void clear_release_space_info();
@@ -795,19 +806,12 @@ class Parkspace_release_request_msg : public ::google::protobuf::Message /* @@pr
   ::message::Parkspace_info* mutable_release_space_info();
   void set_allocated_release_space_info(::message::Parkspace_info* release_space_info);
 
-  // required int32 command_id = 2;
-  bool has_command_id() const;
-  void clear_command_id();
-  static const int kCommandIdFieldNumber = 2;
-  ::google::protobuf::int32 command_id() const;
-  void set_command_id(::google::protobuf::int32 value);
-
   // @@protoc_insertion_point(class_scope:message.Parkspace_release_request_msg)
  private:
   void set_has_base_info();
   void clear_has_base_info();
-  void set_has_command_id();
-  void clear_has_command_id();
+  void set_has_command_info();
+  void clear_has_command_info();
   void set_has_release_space_info();
   void clear_has_release_space_info();
 
@@ -818,8 +822,8 @@ class Parkspace_release_request_msg : public ::google::protobuf::Message /* @@pr
   ::google::protobuf::internal::HasBits<1> _has_bits_;
   mutable int _cached_size_;
   ::message::Base_info* base_info_;
+  ::message::Command_info* command_info_;
   ::message::Parkspace_info* release_space_info_;
-  ::google::protobuf::int32 command_id_;
   friend struct ::protobuf_parkspace_5fallocation_5fmessage_2eproto::TableStruct;
   friend void ::protobuf_parkspace_5fallocation_5fmessage_2eproto::InitDefaultsParkspace_release_request_msgImpl();
 };
@@ -923,6 +927,15 @@ class Parkspace_release_response_msg : public ::google::protobuf::Message /* @@p
   ::message::Base_info* mutable_base_info();
   void set_allocated_base_info(::message::Base_info* base_info);
 
+  // required .message.Command_info command_info = 2;
+  bool has_command_info() const;
+  void clear_command_info();
+  static const int kCommandInfoFieldNumber = 2;
+  const ::message::Command_info& command_info() const;
+  ::message::Command_info* release_command_info();
+  ::message::Command_info* mutable_command_info();
+  void set_allocated_command_info(::message::Command_info* command_info);
+
   // required .message.Error_manager error_manager = 3;
   bool has_error_manager() const;
   void clear_error_manager();
@@ -941,19 +954,12 @@ class Parkspace_release_response_msg : public ::google::protobuf::Message /* @@p
   ::message::Parkspace_info* mutable_release_space_info();
   void set_allocated_release_space_info(::message::Parkspace_info* release_space_info);
 
-  // required int32 command_id = 2;
-  bool has_command_id() const;
-  void clear_command_id();
-  static const int kCommandIdFieldNumber = 2;
-  ::google::protobuf::int32 command_id() const;
-  void set_command_id(::google::protobuf::int32 value);
-
   // @@protoc_insertion_point(class_scope:message.Parkspace_release_response_msg)
  private:
   void set_has_base_info();
   void clear_has_base_info();
-  void set_has_command_id();
-  void clear_has_command_id();
+  void set_has_command_info();
+  void clear_has_command_info();
   void set_has_error_manager();
   void clear_has_error_manager();
   void set_has_release_space_info();
@@ -966,9 +972,9 @@ class Parkspace_release_response_msg : public ::google::protobuf::Message /* @@p
   ::google::protobuf::internal::HasBits<1> _has_bits_;
   mutable int _cached_size_;
   ::message::Base_info* base_info_;
+  ::message::Command_info* command_info_;
   ::message::Error_manager* error_manager_;
   ::message::Parkspace_info* release_space_info_;
-  ::google::protobuf::int32 command_id_;
   friend struct ::protobuf_parkspace_5fallocation_5fmessage_2eproto::TableStruct;
   friend void ::protobuf_parkspace_5fallocation_5fmessage_2eproto::InitDefaultsParkspace_release_response_msgImpl();
 };
@@ -1072,6 +1078,15 @@ class Parkspace_confirm_alloc_request_msg : public ::google::protobuf::Message /
   ::message::Base_info* mutable_base_info();
   void set_allocated_base_info(::message::Base_info* base_info);
 
+  // required .message.Command_info command_info = 2;
+  bool has_command_info() const;
+  void clear_command_info();
+  static const int kCommandInfoFieldNumber = 2;
+  const ::message::Command_info& command_info() const;
+  ::message::Command_info* release_command_info();
+  ::message::Command_info* mutable_command_info();
+  void set_allocated_command_info(::message::Command_info* command_info);
+
   // required .message.Parkspace_info confirm_space_info = 3;
   bool has_confirm_space_info() const;
   void clear_confirm_space_info();
@@ -1081,19 +1096,12 @@ class Parkspace_confirm_alloc_request_msg : public ::google::protobuf::Message /
   ::message::Parkspace_info* mutable_confirm_space_info();
   void set_allocated_confirm_space_info(::message::Parkspace_info* confirm_space_info);
 
-  // required int32 command_id = 2;
-  bool has_command_id() const;
-  void clear_command_id();
-  static const int kCommandIdFieldNumber = 2;
-  ::google::protobuf::int32 command_id() const;
-  void set_command_id(::google::protobuf::int32 value);
-
   // @@protoc_insertion_point(class_scope:message.Parkspace_confirm_alloc_request_msg)
  private:
   void set_has_base_info();
   void clear_has_base_info();
-  void set_has_command_id();
-  void clear_has_command_id();
+  void set_has_command_info();
+  void clear_has_command_info();
   void set_has_confirm_space_info();
   void clear_has_confirm_space_info();
 
@@ -1104,8 +1112,8 @@ class Parkspace_confirm_alloc_request_msg : public ::google::protobuf::Message /
   ::google::protobuf::internal::HasBits<1> _has_bits_;
   mutable int _cached_size_;
   ::message::Base_info* base_info_;
+  ::message::Command_info* command_info_;
   ::message::Parkspace_info* confirm_space_info_;
-  ::google::protobuf::int32 command_id_;
   friend struct ::protobuf_parkspace_5fallocation_5fmessage_2eproto::TableStruct;
   friend void ::protobuf_parkspace_5fallocation_5fmessage_2eproto::InitDefaultsParkspace_confirm_alloc_request_msgImpl();
 };
@@ -1209,6 +1217,15 @@ class Parkspace_confirm_alloc_response_msg : public ::google::protobuf::Message
   ::message::Base_info* mutable_base_info();
   void set_allocated_base_info(::message::Base_info* base_info);
 
+  // required .message.Command_info command_info = 2;
+  bool has_command_info() const;
+  void clear_command_info();
+  static const int kCommandInfoFieldNumber = 2;
+  const ::message::Command_info& command_info() const;
+  ::message::Command_info* release_command_info();
+  ::message::Command_info* mutable_command_info();
+  void set_allocated_command_info(::message::Command_info* command_info);
+
   // required .message.Error_manager error_manager = 3;
   bool has_error_manager() const;
   void clear_error_manager();
@@ -1227,19 +1244,12 @@ class Parkspace_confirm_alloc_response_msg : public ::google::protobuf::Message
   ::message::Parkspace_info* mutable_confirm_alloc_space_info();
   void set_allocated_confirm_alloc_space_info(::message::Parkspace_info* confirm_alloc_space_info);
 
-  // required int32 command_id = 2;
-  bool has_command_id() const;
-  void clear_command_id();
-  static const int kCommandIdFieldNumber = 2;
-  ::google::protobuf::int32 command_id() const;
-  void set_command_id(::google::protobuf::int32 value);
-
   // @@protoc_insertion_point(class_scope:message.Parkspace_confirm_alloc_response_msg)
  private:
   void set_has_base_info();
   void clear_has_base_info();
-  void set_has_command_id();
-  void clear_has_command_id();
+  void set_has_command_info();
+  void clear_has_command_info();
   void set_has_error_manager();
   void clear_has_error_manager();
   void set_has_confirm_alloc_space_info();
@@ -1252,9 +1262,9 @@ class Parkspace_confirm_alloc_response_msg : public ::google::protobuf::Message
   ::google::protobuf::internal::HasBits<1> _has_bits_;
   mutable int _cached_size_;
   ::message::Base_info* base_info_;
+  ::message::Command_info* command_info_;
   ::message::Error_manager* error_manager_;
   ::message::Parkspace_info* confirm_alloc_space_info_;
-  ::google::protobuf::int32 command_id_;
   friend struct ::protobuf_parkspace_5fallocation_5fmessage_2eproto::TableStruct;
   friend void ::protobuf_parkspace_5fallocation_5fmessage_2eproto::InitDefaultsParkspace_confirm_alloc_response_msgImpl();
 };
@@ -1917,39 +1927,65 @@ inline void Parkspace_search_response_msg::set_allocated_base_info(::message::Ba
   // @@protoc_insertion_point(field_set_allocated:message.Parkspace_search_response_msg.base_info)
 }
 
-// required int32 command_id = 2;
-inline bool Parkspace_search_response_msg::has_command_id() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
+// required .message.Command_info command_info = 2;
+inline bool Parkspace_search_response_msg::has_command_info() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
 }
-inline void Parkspace_search_response_msg::set_has_command_id() {
-  _has_bits_[0] |= 0x00000008u;
+inline void Parkspace_search_response_msg::set_has_command_info() {
+  _has_bits_[0] |= 0x00000002u;
 }
-inline void Parkspace_search_response_msg::clear_has_command_id() {
-  _has_bits_[0] &= ~0x00000008u;
+inline void Parkspace_search_response_msg::clear_has_command_info() {
+  _has_bits_[0] &= ~0x00000002u;
 }
-inline void Parkspace_search_response_msg::clear_command_id() {
-  command_id_ = 0;
-  clear_has_command_id();
+inline const ::message::Command_info& Parkspace_search_response_msg::command_info() const {
+  const ::message::Command_info* p = command_info_;
+  // @@protoc_insertion_point(field_get:message.Parkspace_search_response_msg.command_info)
+  return p != NULL ? *p : *reinterpret_cast<const ::message::Command_info*>(
+      &::message::_Command_info_default_instance_);
+}
+inline ::message::Command_info* Parkspace_search_response_msg::release_command_info() {
+  // @@protoc_insertion_point(field_release:message.Parkspace_search_response_msg.command_info)
+  clear_has_command_info();
+  ::message::Command_info* temp = command_info_;
+  command_info_ = NULL;
+  return temp;
 }
-inline ::google::protobuf::int32 Parkspace_search_response_msg::command_id() const {
-  // @@protoc_insertion_point(field_get:message.Parkspace_search_response_msg.command_id)
-  return command_id_;
+inline ::message::Command_info* Parkspace_search_response_msg::mutable_command_info() {
+  set_has_command_info();
+  if (command_info_ == NULL) {
+    command_info_ = new ::message::Command_info;
+  }
+  // @@protoc_insertion_point(field_mutable:message.Parkspace_search_response_msg.command_info)
+  return command_info_;
 }
-inline void Parkspace_search_response_msg::set_command_id(::google::protobuf::int32 value) {
-  set_has_command_id();
-  command_id_ = value;
-  // @@protoc_insertion_point(field_set:message.Parkspace_search_response_msg.command_id)
+inline void Parkspace_search_response_msg::set_allocated_command_info(::message::Command_info* command_info) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(command_info_);
+  }
+  if (command_info) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      command_info = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, command_info, submessage_arena);
+    }
+    set_has_command_info();
+  } else {
+    clear_has_command_info();
+  }
+  command_info_ = command_info;
+  // @@protoc_insertion_point(field_set_allocated:message.Parkspace_search_response_msg.command_info)
 }
 
 // required .message.Error_manager error_manager = 3;
 inline bool Parkspace_search_response_msg::has_error_manager() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
+  return (_has_bits_[0] & 0x00000004u) != 0;
 }
 inline void Parkspace_search_response_msg::set_has_error_manager() {
-  _has_bits_[0] |= 0x00000002u;
+  _has_bits_[0] |= 0x00000004u;
 }
 inline void Parkspace_search_response_msg::clear_has_error_manager() {
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
 }
 inline const ::message::Error_manager& Parkspace_search_response_msg::error_manager() const {
   const ::message::Error_manager* p = error_manager_;
@@ -1993,13 +2029,13 @@ inline void Parkspace_search_response_msg::set_allocated_error_manager(::message
 
 // optional .message.Parkspace_info car_position = 4;
 inline bool Parkspace_search_response_msg::has_car_position() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
+  return (_has_bits_[0] & 0x00000008u) != 0;
 }
 inline void Parkspace_search_response_msg::set_has_car_position() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000008u;
 }
 inline void Parkspace_search_response_msg::clear_has_car_position() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
 }
 inline const ::message::Parkspace_info& Parkspace_search_response_msg::car_position() const {
   const ::message::Parkspace_info* p = car_position_;
@@ -2095,39 +2131,65 @@ inline void Parkspace_release_request_msg::set_allocated_base_info(::message::Ba
   // @@protoc_insertion_point(field_set_allocated:message.Parkspace_release_request_msg.base_info)
 }
 
-// required int32 command_id = 2;
-inline bool Parkspace_release_request_msg::has_command_id() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
+// required .message.Command_info command_info = 2;
+inline bool Parkspace_release_request_msg::has_command_info() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
 }
-inline void Parkspace_release_request_msg::set_has_command_id() {
-  _has_bits_[0] |= 0x00000004u;
+inline void Parkspace_release_request_msg::set_has_command_info() {
+  _has_bits_[0] |= 0x00000002u;
 }
-inline void Parkspace_release_request_msg::clear_has_command_id() {
-  _has_bits_[0] &= ~0x00000004u;
+inline void Parkspace_release_request_msg::clear_has_command_info() {
+  _has_bits_[0] &= ~0x00000002u;
 }
-inline void Parkspace_release_request_msg::clear_command_id() {
-  command_id_ = 0;
-  clear_has_command_id();
+inline const ::message::Command_info& Parkspace_release_request_msg::command_info() const {
+  const ::message::Command_info* p = command_info_;
+  // @@protoc_insertion_point(field_get:message.Parkspace_release_request_msg.command_info)
+  return p != NULL ? *p : *reinterpret_cast<const ::message::Command_info*>(
+      &::message::_Command_info_default_instance_);
+}
+inline ::message::Command_info* Parkspace_release_request_msg::release_command_info() {
+  // @@protoc_insertion_point(field_release:message.Parkspace_release_request_msg.command_info)
+  clear_has_command_info();
+  ::message::Command_info* temp = command_info_;
+  command_info_ = NULL;
+  return temp;
 }
-inline ::google::protobuf::int32 Parkspace_release_request_msg::command_id() const {
-  // @@protoc_insertion_point(field_get:message.Parkspace_release_request_msg.command_id)
-  return command_id_;
+inline ::message::Command_info* Parkspace_release_request_msg::mutable_command_info() {
+  set_has_command_info();
+  if (command_info_ == NULL) {
+    command_info_ = new ::message::Command_info;
+  }
+  // @@protoc_insertion_point(field_mutable:message.Parkspace_release_request_msg.command_info)
+  return command_info_;
 }
-inline void Parkspace_release_request_msg::set_command_id(::google::protobuf::int32 value) {
-  set_has_command_id();
-  command_id_ = value;
-  // @@protoc_insertion_point(field_set:message.Parkspace_release_request_msg.command_id)
+inline void Parkspace_release_request_msg::set_allocated_command_info(::message::Command_info* command_info) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(command_info_);
+  }
+  if (command_info) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      command_info = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, command_info, submessage_arena);
+    }
+    set_has_command_info();
+  } else {
+    clear_has_command_info();
+  }
+  command_info_ = command_info;
+  // @@protoc_insertion_point(field_set_allocated:message.Parkspace_release_request_msg.command_info)
 }
 
 // required .message.Parkspace_info release_space_info = 3;
 inline bool Parkspace_release_request_msg::has_release_space_info() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
+  return (_has_bits_[0] & 0x00000004u) != 0;
 }
 inline void Parkspace_release_request_msg::set_has_release_space_info() {
-  _has_bits_[0] |= 0x00000002u;
+  _has_bits_[0] |= 0x00000004u;
 }
 inline void Parkspace_release_request_msg::clear_has_release_space_info() {
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
 }
 inline const ::message::Parkspace_info& Parkspace_release_request_msg::release_space_info() const {
   const ::message::Parkspace_info* p = release_space_info_;
@@ -2223,39 +2285,65 @@ inline void Parkspace_release_response_msg::set_allocated_base_info(::message::B
   // @@protoc_insertion_point(field_set_allocated:message.Parkspace_release_response_msg.base_info)
 }
 
-// required int32 command_id = 2;
-inline bool Parkspace_release_response_msg::has_command_id() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
+// required .message.Command_info command_info = 2;
+inline bool Parkspace_release_response_msg::has_command_info() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
 }
-inline void Parkspace_release_response_msg::set_has_command_id() {
-  _has_bits_[0] |= 0x00000008u;
+inline void Parkspace_release_response_msg::set_has_command_info() {
+  _has_bits_[0] |= 0x00000002u;
 }
-inline void Parkspace_release_response_msg::clear_has_command_id() {
-  _has_bits_[0] &= ~0x00000008u;
+inline void Parkspace_release_response_msg::clear_has_command_info() {
+  _has_bits_[0] &= ~0x00000002u;
 }
-inline void Parkspace_release_response_msg::clear_command_id() {
-  command_id_ = 0;
-  clear_has_command_id();
+inline const ::message::Command_info& Parkspace_release_response_msg::command_info() const {
+  const ::message::Command_info* p = command_info_;
+  // @@protoc_insertion_point(field_get:message.Parkspace_release_response_msg.command_info)
+  return p != NULL ? *p : *reinterpret_cast<const ::message::Command_info*>(
+      &::message::_Command_info_default_instance_);
+}
+inline ::message::Command_info* Parkspace_release_response_msg::release_command_info() {
+  // @@protoc_insertion_point(field_release:message.Parkspace_release_response_msg.command_info)
+  clear_has_command_info();
+  ::message::Command_info* temp = command_info_;
+  command_info_ = NULL;
+  return temp;
 }
-inline ::google::protobuf::int32 Parkspace_release_response_msg::command_id() const {
-  // @@protoc_insertion_point(field_get:message.Parkspace_release_response_msg.command_id)
-  return command_id_;
+inline ::message::Command_info* Parkspace_release_response_msg::mutable_command_info() {
+  set_has_command_info();
+  if (command_info_ == NULL) {
+    command_info_ = new ::message::Command_info;
+  }
+  // @@protoc_insertion_point(field_mutable:message.Parkspace_release_response_msg.command_info)
+  return command_info_;
 }
-inline void Parkspace_release_response_msg::set_command_id(::google::protobuf::int32 value) {
-  set_has_command_id();
-  command_id_ = value;
-  // @@protoc_insertion_point(field_set:message.Parkspace_release_response_msg.command_id)
+inline void Parkspace_release_response_msg::set_allocated_command_info(::message::Command_info* command_info) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(command_info_);
+  }
+  if (command_info) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      command_info = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, command_info, submessage_arena);
+    }
+    set_has_command_info();
+  } else {
+    clear_has_command_info();
+  }
+  command_info_ = command_info;
+  // @@protoc_insertion_point(field_set_allocated:message.Parkspace_release_response_msg.command_info)
 }
 
 // required .message.Error_manager error_manager = 3;
 inline bool Parkspace_release_response_msg::has_error_manager() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
+  return (_has_bits_[0] & 0x00000004u) != 0;
 }
 inline void Parkspace_release_response_msg::set_has_error_manager() {
-  _has_bits_[0] |= 0x00000002u;
+  _has_bits_[0] |= 0x00000004u;
 }
 inline void Parkspace_release_response_msg::clear_has_error_manager() {
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
 }
 inline const ::message::Error_manager& Parkspace_release_response_msg::error_manager() const {
   const ::message::Error_manager* p = error_manager_;
@@ -2299,13 +2387,13 @@ inline void Parkspace_release_response_msg::set_allocated_error_manager(::messag
 
 // required .message.Parkspace_info release_space_info = 4;
 inline bool Parkspace_release_response_msg::has_release_space_info() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
+  return (_has_bits_[0] & 0x00000008u) != 0;
 }
 inline void Parkspace_release_response_msg::set_has_release_space_info() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000008u;
 }
 inline void Parkspace_release_response_msg::clear_has_release_space_info() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
 }
 inline const ::message::Parkspace_info& Parkspace_release_response_msg::release_space_info() const {
   const ::message::Parkspace_info* p = release_space_info_;
@@ -2401,39 +2489,65 @@ inline void Parkspace_confirm_alloc_request_msg::set_allocated_base_info(::messa
   // @@protoc_insertion_point(field_set_allocated:message.Parkspace_confirm_alloc_request_msg.base_info)
 }
 
-// required int32 command_id = 2;
-inline bool Parkspace_confirm_alloc_request_msg::has_command_id() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
+// required .message.Command_info command_info = 2;
+inline bool Parkspace_confirm_alloc_request_msg::has_command_info() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
 }
-inline void Parkspace_confirm_alloc_request_msg::set_has_command_id() {
-  _has_bits_[0] |= 0x00000004u;
+inline void Parkspace_confirm_alloc_request_msg::set_has_command_info() {
+  _has_bits_[0] |= 0x00000002u;
 }
-inline void Parkspace_confirm_alloc_request_msg::clear_has_command_id() {
-  _has_bits_[0] &= ~0x00000004u;
+inline void Parkspace_confirm_alloc_request_msg::clear_has_command_info() {
+  _has_bits_[0] &= ~0x00000002u;
 }
-inline void Parkspace_confirm_alloc_request_msg::clear_command_id() {
-  command_id_ = 0;
-  clear_has_command_id();
+inline const ::message::Command_info& Parkspace_confirm_alloc_request_msg::command_info() const {
+  const ::message::Command_info* p = command_info_;
+  // @@protoc_insertion_point(field_get:message.Parkspace_confirm_alloc_request_msg.command_info)
+  return p != NULL ? *p : *reinterpret_cast<const ::message::Command_info*>(
+      &::message::_Command_info_default_instance_);
+}
+inline ::message::Command_info* Parkspace_confirm_alloc_request_msg::release_command_info() {
+  // @@protoc_insertion_point(field_release:message.Parkspace_confirm_alloc_request_msg.command_info)
+  clear_has_command_info();
+  ::message::Command_info* temp = command_info_;
+  command_info_ = NULL;
+  return temp;
 }
-inline ::google::protobuf::int32 Parkspace_confirm_alloc_request_msg::command_id() const {
-  // @@protoc_insertion_point(field_get:message.Parkspace_confirm_alloc_request_msg.command_id)
-  return command_id_;
+inline ::message::Command_info* Parkspace_confirm_alloc_request_msg::mutable_command_info() {
+  set_has_command_info();
+  if (command_info_ == NULL) {
+    command_info_ = new ::message::Command_info;
+  }
+  // @@protoc_insertion_point(field_mutable:message.Parkspace_confirm_alloc_request_msg.command_info)
+  return command_info_;
 }
-inline void Parkspace_confirm_alloc_request_msg::set_command_id(::google::protobuf::int32 value) {
-  set_has_command_id();
-  command_id_ = value;
-  // @@protoc_insertion_point(field_set:message.Parkspace_confirm_alloc_request_msg.command_id)
+inline void Parkspace_confirm_alloc_request_msg::set_allocated_command_info(::message::Command_info* command_info) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(command_info_);
+  }
+  if (command_info) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      command_info = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, command_info, submessage_arena);
+    }
+    set_has_command_info();
+  } else {
+    clear_has_command_info();
+  }
+  command_info_ = command_info;
+  // @@protoc_insertion_point(field_set_allocated:message.Parkspace_confirm_alloc_request_msg.command_info)
 }
 
 // required .message.Parkspace_info confirm_space_info = 3;
 inline bool Parkspace_confirm_alloc_request_msg::has_confirm_space_info() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
+  return (_has_bits_[0] & 0x00000004u) != 0;
 }
 inline void Parkspace_confirm_alloc_request_msg::set_has_confirm_space_info() {
-  _has_bits_[0] |= 0x00000002u;
+  _has_bits_[0] |= 0x00000004u;
 }
 inline void Parkspace_confirm_alloc_request_msg::clear_has_confirm_space_info() {
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
 }
 inline const ::message::Parkspace_info& Parkspace_confirm_alloc_request_msg::confirm_space_info() const {
   const ::message::Parkspace_info* p = confirm_space_info_;
@@ -2529,39 +2643,65 @@ inline void Parkspace_confirm_alloc_response_msg::set_allocated_base_info(::mess
   // @@protoc_insertion_point(field_set_allocated:message.Parkspace_confirm_alloc_response_msg.base_info)
 }
 
-// required int32 command_id = 2;
-inline bool Parkspace_confirm_alloc_response_msg::has_command_id() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
+// required .message.Command_info command_info = 2;
+inline bool Parkspace_confirm_alloc_response_msg::has_command_info() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
 }
-inline void Parkspace_confirm_alloc_response_msg::set_has_command_id() {
-  _has_bits_[0] |= 0x00000008u;
+inline void Parkspace_confirm_alloc_response_msg::set_has_command_info() {
+  _has_bits_[0] |= 0x00000002u;
 }
-inline void Parkspace_confirm_alloc_response_msg::clear_has_command_id() {
-  _has_bits_[0] &= ~0x00000008u;
+inline void Parkspace_confirm_alloc_response_msg::clear_has_command_info() {
+  _has_bits_[0] &= ~0x00000002u;
 }
-inline void Parkspace_confirm_alloc_response_msg::clear_command_id() {
-  command_id_ = 0;
-  clear_has_command_id();
+inline const ::message::Command_info& Parkspace_confirm_alloc_response_msg::command_info() const {
+  const ::message::Command_info* p = command_info_;
+  // @@protoc_insertion_point(field_get:message.Parkspace_confirm_alloc_response_msg.command_info)
+  return p != NULL ? *p : *reinterpret_cast<const ::message::Command_info*>(
+      &::message::_Command_info_default_instance_);
+}
+inline ::message::Command_info* Parkspace_confirm_alloc_response_msg::release_command_info() {
+  // @@protoc_insertion_point(field_release:message.Parkspace_confirm_alloc_response_msg.command_info)
+  clear_has_command_info();
+  ::message::Command_info* temp = command_info_;
+  command_info_ = NULL;
+  return temp;
 }
-inline ::google::protobuf::int32 Parkspace_confirm_alloc_response_msg::command_id() const {
-  // @@protoc_insertion_point(field_get:message.Parkspace_confirm_alloc_response_msg.command_id)
-  return command_id_;
+inline ::message::Command_info* Parkspace_confirm_alloc_response_msg::mutable_command_info() {
+  set_has_command_info();
+  if (command_info_ == NULL) {
+    command_info_ = new ::message::Command_info;
+  }
+  // @@protoc_insertion_point(field_mutable:message.Parkspace_confirm_alloc_response_msg.command_info)
+  return command_info_;
 }
-inline void Parkspace_confirm_alloc_response_msg::set_command_id(::google::protobuf::int32 value) {
-  set_has_command_id();
-  command_id_ = value;
-  // @@protoc_insertion_point(field_set:message.Parkspace_confirm_alloc_response_msg.command_id)
+inline void Parkspace_confirm_alloc_response_msg::set_allocated_command_info(::message::Command_info* command_info) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(command_info_);
+  }
+  if (command_info) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      command_info = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, command_info, submessage_arena);
+    }
+    set_has_command_info();
+  } else {
+    clear_has_command_info();
+  }
+  command_info_ = command_info;
+  // @@protoc_insertion_point(field_set_allocated:message.Parkspace_confirm_alloc_response_msg.command_info)
 }
 
 // required .message.Error_manager error_manager = 3;
 inline bool Parkspace_confirm_alloc_response_msg::has_error_manager() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
+  return (_has_bits_[0] & 0x00000004u) != 0;
 }
 inline void Parkspace_confirm_alloc_response_msg::set_has_error_manager() {
-  _has_bits_[0] |= 0x00000002u;
+  _has_bits_[0] |= 0x00000004u;
 }
 inline void Parkspace_confirm_alloc_response_msg::clear_has_error_manager() {
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
 }
 inline const ::message::Error_manager& Parkspace_confirm_alloc_response_msg::error_manager() const {
   const ::message::Error_manager* p = error_manager_;
@@ -2605,13 +2745,13 @@ inline void Parkspace_confirm_alloc_response_msg::set_allocated_error_manager(::
 
 // required .message.Parkspace_info confirm_alloc_space_info = 4;
 inline bool Parkspace_confirm_alloc_response_msg::has_confirm_alloc_space_info() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
+  return (_has_bits_[0] & 0x00000008u) != 0;
 }
 inline void Parkspace_confirm_alloc_response_msg::set_has_confirm_alloc_space_info() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000008u;
 }
 inline void Parkspace_confirm_alloc_response_msg::clear_has_confirm_alloc_space_info() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000008u;
 }
 inline const ::message::Parkspace_info& Parkspace_confirm_alloc_response_msg::confirm_alloc_space_info() const {
   const ::message::Parkspace_info* p = confirm_alloc_space_info_;

+ 5 - 5
message/parkspace_allocation_message.proto

@@ -32,7 +32,7 @@ message Parkspace_search_request_msg
 message Parkspace_search_response_msg
 {
     required Base_info                  base_info=1;            //消息类型
-    required int32                      command_id=2;           //指令唯一标识符id
+    required Command_info               command_info=2;           //指令唯一标识符id
     required Error_manager              error_manager=3;        //分配成功与否标志
     optional Parkspace_info             car_position=4;         //待查询车辆存放位置
 }
@@ -41,7 +41,7 @@ message Parkspace_search_response_msg
 message Parkspace_release_request_msg
 {
     required Base_info                  base_info=1;            //消息类型
-    required int32                      command_id=2;           //指令唯一标识符id
+    required Command_info               command_info=2;           //指令唯一标识符id
     required Parkspace_info             release_space_info=3;   //待释放车位信息
 }
 
@@ -49,7 +49,7 @@ message Parkspace_release_request_msg
 message Parkspace_release_response_msg
 {
     required Base_info                  base_info=1;            //消息类型
-    required int32                      command_id=2;           //指令唯一标识符id
+    required Command_info               command_info=2;           //指令唯一标识符id
     required Error_manager              error_manager=3;        //分配成功与否标志
     required Parkspace_info             release_space_info=4;   //待释放车位信息
 }
@@ -58,14 +58,14 @@ message Parkspace_release_response_msg
 message Parkspace_confirm_alloc_request_msg
 {
     required Base_info                  base_info=1;            //消息类型
-    required int32                      command_id=2;           //指令唯一标识符id
+    required Command_info               command_info=2;           //指令唯一标识符id
     required Parkspace_info             confirm_space_info=3;    //已修改后的车位信息
 }
 //确定占用车位反馈消息
 message Parkspace_confirm_alloc_response_msg
 {
     required Base_info                  base_info=1;            //消息类型
-    required int32                      command_id=2;           //指令唯一标识符id
+    required Command_info               command_info=2;           //指令唯一标识符id
     required Error_manager              error_manager=3;        //分配成功与否标志
     required Parkspace_info             confirm_alloc_space_info=4;    //已修改后的车位信息
 }

+ 6 - 1
system/PickupProcessTask.cpp

@@ -57,6 +57,7 @@ Error_manager PickupProcessTask::init_task(unsigned int command_id, message::Car
     }
 
     if(is_ready()) {
+        reset_process_statu();
         return SUCCESS;
     }
     else
@@ -79,9 +80,13 @@ void PickupProcessTask::reset_process_statu()
     message::Release_space_step_statu   release_step;
     release_step.set_step_statu(message::eWaiting);
 
+    message::Waitfor_leave_step_statu   waitfor_leave_step;
+    waitfor_leave_step.set_step_statu(message::eWaiting);
+
     m_picking_process_statu_msg.mutable_check_space_step()->CopyFrom(check_step);
     m_picking_process_statu_msg.mutable_dispatch_step()->CopyFrom(pick_step);
     m_picking_process_statu_msg.mutable_release_space_step()->CopyFrom(release_step);
+    m_picking_process_statu_msg.mutable_waitfor_leave()->CopyFrom(waitfor_leave_step);
 
 }
 
@@ -336,7 +341,7 @@ void PickupProcessTask::publish_thread_func(PickupProcessTask* ptask)
 void PickupProcessTask::publish_step_status()
 {
     //未收到退出信号
-    while(false==m_publish_exit_condition.wait_for_ex(std::chrono::milliseconds(200)))
+    while(false==m_publish_exit_condition.wait_for_ex(std::chrono::milliseconds(50)))
     {
         /*
          * 通过communicator 发布状态

+ 11 - 4
system/StoreProcessTask.cpp

@@ -55,6 +55,7 @@ Error_manager StoreProcessTask::init_task( unsigned int command_id,
     }
 
     if(is_ready()) {
+        reset_process_statu();
         return SUCCESS;
     }
     else
@@ -121,7 +122,7 @@ Error_manager StoreProcessTask::dispatch_step()
     base_info.set_msg_type(message::eDispatch_request_msg);
     base_info.set_sender(message::eMain);
     base_info.set_receiver(message::eDispatch);
-    base_info.set_timeout_ms(1000*15); //测量超时15s
+    base_info.set_timeout_ms(1000*15); //超时15s
     request.mutable_base_info()->CopyFrom(base_info);
 
     request.set_command_id(m_command_id);
@@ -192,7 +193,7 @@ bool StoreProcessTask::is_ready()
 Error_manager StoreProcessTask::alloc_space()
 {
     //更新车位分配步骤状态
-    m_storing_process_statu_msg.mutable_alloc_space_step()->mutable_car_info()->CopyFrom(m_locate_info);
+    m_storing_process_statu_msg.mutable_alloc_space_step()->mutable_car_info()->CopyFrom(m_car_info);
     m_storing_process_statu_msg.mutable_alloc_space_step()->set_step_statu(message::eWorking);
 
     /*
@@ -374,6 +375,7 @@ void StoreProcessTask::Main()
             m_storing_process_statu_msg.mutable_measure_step()->set_step_statu(message::eWorking);
             //开始定位
             code=locate_step();
+            usleep(1000*1000);
             if(code!=SUCCESS)
             {
                 m_storing_process_statu_msg.mutable_measure_step()->set_step_statu(message::eError);
@@ -393,7 +395,10 @@ void StoreProcessTask::Main()
             m_storing_process_statu_msg.mutable_dispatch_step()->mutable_locate_info()->CopyFrom(m_measure_response_msg.locate_information());
             m_storing_process_statu_msg.mutable_dispatch_step()->mutable_space_info()->CopyFrom(m_parcspace_alloc_response_msg.allocated_space_info());
             //开始调度
+
             code=dispatch_step();
+
+            usleep(1000*1000);
             if(code!=SUCCESS)
             {
                 m_storing_process_statu_msg.mutable_dispatch_step()->set_step_statu(message::eError);
@@ -416,7 +421,9 @@ void StoreProcessTask::Main()
             {
                 m_storing_process_statu_msg.mutable_confirm_space_step()->set_step_statu(message::eError);
                 m_storing_process_statu_msg.mutable_confirm_space_step()->set_description(code.get_error_description());
-                LOG(ERROR)<<"停车流程:"<<code.get_error_description();
+                LOG(ERROR)<<"指令:"<<m_command_id<<",终端号:"<<m_terminor_id<<"停车流程:"<<code.get_error_description()<<
+                " 车位id :"<<m_parcspace_alloc_response_msg.allocated_space_info().parkspace_id()
+                <<",车牌:"<<m_car_info.license();
                 break;
             }
             //更新状态信息
@@ -471,7 +478,7 @@ void StoreProcessTask::publish_thread_func(StoreProcessTask* ptask)
 void StoreProcessTask::publish_step_status()
 {
     //未收到退出信号
-    while(false==m_publish_exit_condition.wait_for_ex(std::chrono::milliseconds(200)))
+    while(false==m_publish_exit_condition.wait_for_ex(std::chrono::milliseconds(50)))
     {
         /*
          * 通过communicator 发布状态

+ 3 - 0
system/command_manager.cpp

@@ -104,6 +104,9 @@ Error_manager Command_manager::execute_store_command(message::Store_command_requ
 
                         //一切正常,接受指令
                         int command_id=request.terminal_id()+10000;
+
+                        LOG(INFO)<<"收到停车指令:"<<command_id<<", 车牌:"<<request.car_info().license()<<
+                        ",终端:"<<request.terminal_id();
                         tq::BaseTask* ptask;
                         if(false==m_store_command_task_map.find(request.terminal_id(),ptask))
                         {

+ 25 - 2
test/Terminal_communication.cpp

@@ -93,7 +93,8 @@ Error_manager Terminal_communication::execute_msg(Communication_message* p_msg)
         message::Base_info base_info=msg.base_info();
         if(base_info.sender()==message::eMain)
         {
-            //m_entrance_status=msg;
+            m_storing_statu_map[msg.terminal_id()]=msg;
+
         }
     }
 
@@ -107,7 +108,7 @@ Error_manager Terminal_communication::execute_msg(Communication_message* p_msg)
         message::Base_info base_info=msg.base_info();
         if(base_info.sender()==message::eMain)
         {
-            //m_entrance_status=msg;
+            m_picking_statu_map[msg.terminal_id()]=msg;
         }
     }
 
@@ -266,3 +267,25 @@ Error_manager Terminal_communication::pickup_request(message::Pickup_command_req
     return Error_manager(RESPONSE_TIMEOUT,MINOR_ERROR,"parkspace release request timeout");
 
 }
+
+
+/*
+     * 获取停车流程状态
+     */
+Error_manager Terminal_communication::get_storing_statu(int terminal_id,message::Storing_process_statu_msg& msg)
+{
+    if(m_storing_statu_map.find(terminal_id,msg)) {
+        return SUCCESS;
+    }
+    return FAILED;
+}
+
+/*
+ * 获取取车流程状态
+ */
+Error_manager Terminal_communication::get_picking_statu(int terminal_id,message::Picking_process_statu_msg& msg)
+{
+    if(m_picking_statu_map.find(terminal_id,msg))
+        return SUCCESS;
+    return FAILED;
+}

+ 13 - 0
test/Terminal_communication.h

@@ -11,6 +11,7 @@
 #include "terminal_message.pb.h"
 #include "parkspace_allocation_message.pb.h"
 #include "message_compare.h"
+#include "thread_safe_map.h"
 
 class Terminal_communication :public Singleton<Terminal_communication>, public Communication_socket_base{
 
@@ -38,6 +39,15 @@ public:
      */
     Error_manager pickup_request(message::Pickup_command_request_msg& request,message::Pickup_command_response_msg& response);
 
+    /*
+     * 获取停车流程状态
+     */
+    Error_manager get_storing_statu(int terminal_id,message::Storing_process_statu_msg& msg);
+
+    /*
+     * 获取取车流程状态
+     */
+    Error_manager get_picking_statu(int terminal_id,message::Picking_process_statu_msg& msg);
 
 protected:
     //重载函数
@@ -59,6 +69,9 @@ private:
     message::Pickup_command_response_msg            m_pickup_response_msg;
     int                                             m_terminal_id;
 
+    thread_safe_map<int ,message::Storing_process_statu_msg>        m_storing_statu_map;
+    thread_safe_map<int ,message::Picking_process_statu_msg>        m_picking_statu_map;
+
 
 
 };

+ 15 - 13
test/pickup_terminal.cpp

@@ -54,18 +54,24 @@ Error_manager pickup_terminal::pickup(message::Car_info& car_info)
         return ERROR;
     }
     //等待停车完成
-    /*message::Entrance_statu statu;
+
     while(m_exit_cond.wait_for_millisecond(200)==false)
     {
-        code = Terminal_communication::get_instance_pointer()->check_pickup_entrance_statu(m_terminal_id, statu);
+        message::Picking_process_statu_msg msg;
+        code = Terminal_communication::get_instance_pointer()->get_picking_statu(m_terminal_id, msg);
         if (code != SUCCESS) {
             continue;
         }
-
-        if (statu == message::eReady) {
+        message::Step_statu check_space_statu=msg.check_space_step().step_statu();
+        message::Step_statu dispatch_space_statu=msg.dispatch_step().step_statu();
+        message::Step_statu release_space_statu=msg.release_space_step().step_statu();
+        if(check_space_statu==message::eComplete
+           && dispatch_space_statu==message::eComplete
+           && release_space_statu ==message::eComplete)
+        {
             return SUCCESS;
         }
-    }*/
+    }
     return FAILED;
 }
 
@@ -79,14 +85,10 @@ void pickup_terminal::pickup_thread(pickup_terminal* picker)
             continue;
         if(picker->m_thread_safe_queue->try_pop(car_info)==true)
         {
-            if(picker->pickup(car_info)==SUCCESS)
-                LOG(WARNING)<<"取车终端:"<<picker->m_terminal_id<<",车辆:"<<car_info.license().c_str()
-                        <<",已经取车完成,剩余out:"<<picker->m_thread_safe_queue->size();
-            else
-            {
-                LOG(ERROR)<<"取车终端:"<<picker->m_terminal_id<<",车辆:"<<car_info.license().c_str()
-                          <<",已经取车失败,剩余out:"<<picker->m_thread_safe_queue->size();
-            }
+            /*LOG(WARNING)<<"取车终端:"<<picker->m_terminal_id<<",车辆:"<<car_info.license().c_str()
+                        <<",开始取车,剩余out:"<<picker->m_thread_safe_queue->size();*/
+            picker->pickup(car_info);
+
         }
     }
 }

+ 22 - 15
test/store_terminal.cpp

@@ -62,20 +62,29 @@ Error_manager store_terminal::storing(message::Car_info& car_info)
         std::cout<<"  request_error: "<<code.to_string()<<std::endl;
         return ERROR;
     }
-    usleep(1000*100);
     //等待停车完成
 
-    while(m_exit_cond.wait_for_millisecond(200)==false) {
-
-        /*code = Terminal_communication::get_instance_pointer()->check_store_entrance_statu(m_terminal_id, statu);
+    while(m_exit_cond.wait_for_millisecond(50)==false) {
+        message::Storing_process_statu_msg msg;
+        code = Terminal_communication::get_instance_pointer()->get_storing_statu(m_terminal_id, msg);
         if (code != SUCCESS) {
             continue;
         }
-        if (statu == message::eReady) {
+
+        message::Step_statu alloc_space_statu=msg.alloc_space_step().step_statu();
+        message::Step_statu measure_space_statu=msg.measure_step().step_statu();
+        message::Step_statu dispatch_space_statu=msg.dispatch_step().step_statu();
+        message::Step_statu confirm_space_statu=msg.confirm_space_step().step_statu();
+        if(alloc_space_statu==message::eComplete
+            && measure_space_statu==message::eComplete
+            && dispatch_space_statu==message::eComplete
+            && confirm_space_statu ==message::eComplete)
+        {
             if (m_thread_safe_output_queue)
                 m_thread_safe_output_queue->push(car_info);
             return SUCCESS;
-        }*/
+        }
+
     }
     return FAILED;
 }
@@ -83,7 +92,7 @@ Error_manager store_terminal::storing(message::Car_info& car_info)
 
 void store_terminal::storing_thread(store_terminal* pStore)
 {
-    while(pStore->m_exit_cond.wait_for_millisecond(100)==false)
+    while(pStore->m_exit_cond.wait_for_millisecond(50)==false)
     {
         message::Car_info car_info;
         if(pStore->m_thread_safe_queue== nullptr)
@@ -91,14 +100,12 @@ void store_terminal::storing_thread(store_terminal* pStore)
 
         if(pStore->m_thread_safe_queue->try_pop(car_info)==true)
         {
-            if(pStore->storing(car_info)==SUCCESS)
-                LOG(INFO)<<"停车终端:"<<pStore->m_terminal_id<<",车辆:"<<car_info.license().c_str()<<",停车完成,剩余in:"
-                <<pStore->m_thread_safe_queue->size();
-            else
-            {
-                LOG(ERROR)<<"停车终端:"<<pStore->m_terminal_id<<",车辆:"<<car_info.license().c_str()<<",停车失败,剩余in:"
-                         <<pStore->m_thread_safe_queue->size();
-            }
+            LOG(INFO)<<"停车终端:"<<pStore->m_terminal_id<<",车辆:"<<car_info.license().c_str()<<",停车开始,剩余in:"
+                  <<pStore->m_thread_safe_queue->size();
+            pStore->storing(car_info);
+            LOG(INFO)<<"停车终端:"<<pStore->m_terminal_id<<",车辆:"<<car_info.license().c_str()<<",停车完成,剩余in:"
+                     <<pStore->m_thread_safe_queue->size();
+
         }
     }
 }

+ 44 - 5
test/terminal_client.cpp

@@ -19,6 +19,8 @@
 #include "store_terminal.h"
 #include "pickup_terminal.h"
 #include "pathcreator.h"
+#include "process_message.pb.h"
+#include "system_communicator.h"
 
 GOOGLE_GLOG_DLL_DECL void shut_down_logging(const char* data, int size)
 {
@@ -79,13 +81,13 @@ void init_glog()
 
 int main() {
     init_glog();
-    Terminal_communication::get_instance_pointer()->communication_connect("tcp://192.168.0.203:30001");
+    Terminal_communication::get_instance_pointer()->communication_connect("tcp://192.168.2.183:30001");
     Terminal_communication::get_instance_pointer()->communication_run();
     usleep(2000*1000);
     threadsafe_queue<message::Car_info> input_queue;
     threadsafe_queue<message::Car_info> output_queue;
 
-    const int n_input=1;
+    const int n_input=3;
     const int n_output=1;
     std::vector<store_terminal*> input_terminals;
     std::vector<pickup_terminal*> output_terminals;
@@ -107,8 +109,45 @@ int main() {
     bool run = true;
     Error_manager code;
     char c=0;
+
     while (c!='q') {
 
+        /*int k=rand()%4;
+
+        message::Storing_process_statu_msg msg;
+        message::Base_info base_info;
+        base_info.set_msg_type(message::eStoring_process_statu_msg);
+        base_info.set_sender(message::eMain);
+        base_info.set_receiver(message::eTerminor);
+        msg.mutable_base_info()->CopyFrom(base_info);
+
+        message::Alloc_space_step_statu alloc_step;
+        alloc_step.set_step_statu(message::Step_statu(k));
+
+        message::Measure_step_statu     measure_step;
+        measure_step.set_step_statu(message::eWaiting);
+
+        message::Dispatch_store_step_statu  store_step;
+        store_step.set_step_statu(message::eWaiting);
+
+        message::Confirm_space_step_statu   confirm_step;
+        confirm_step.set_step_statu(message::eWaiting);
+
+        message::Release_space_step_statu   release_step;
+        release_step.set_step_statu(message::eWaiting);
+
+        msg.mutable_alloc_space_step()->CopyFrom(alloc_step);
+        msg.mutable_measure_step()->CopyFrom(measure_step);
+        msg.mutable_dispatch_step()->CopyFrom(store_step);
+        msg.mutable_confirm_space_step()->CopyFrom(confirm_step);
+        msg.mutable_failed_release_space_step()->CopyFrom(release_step);
+
+        System_communicator::get_instance_pointer()->post_entrance_statu(msg);
+        usleep(1000*1000);*/
+
+
+
+
         int license_id = rand() % 90000 + 10000;
         char C=rand()%10+'A';
         char license[255] = {0};
@@ -125,14 +164,14 @@ int main() {
         int in_count=input_queue.size();
         int out_count=output_queue.size();
 
-        if(n%20==0 && n!=0) {
+        if(n%10==0) {
             std::cout<<"输入 q 退出,其他继续";
             std::cin >> c;
         }
         else {
             //暂停 5-15s 代替
-            int delay=10*1000;//in_count*200;
-            usleep(1000*delay+1);
+           /* int delay=10*1000;//in_count*200;
+            usleep(1000*delay+1);*/
             std::this_thread::yield();
         }
     }