Explorar o código

2021 0308, wangkang parkspace message修改

wk %!s(int64=4) %!d(string=hai) anos
pai
achega
dac0048f1d
Modificáronse 2 ficheiros con 171 adicións e 91 borrados
  1. 137 91
      message/message_base.pb.cc
  2. 34 0
      message/message_base.pb.h

+ 137 - 91
message/message_base.pb.cc

@@ -229,6 +229,7 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Locate_information, locate_wheel_base_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Locate_information, locate_wheel_width_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Locate_information, locate_correct_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Locate_information, locate_front_theta_),
   0,
   1,
   2,
@@ -238,6 +239,7 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   6,
   7,
   8,
+  9,
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Car_info, _has_bits_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Car_info, _internal_metadata_),
   ~0u,  // no _extensions_
@@ -295,9 +297,9 @@ static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROT
   { 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, 65, sizeof(::message::Car_info)},
-  { 71, 91, sizeof(::message::Parkspace_info)},
+  { 31, 46, sizeof(::message::Locate_information)},
+  { 56, 67, sizeof(::message::Car_info)},
+  { 73, 93, sizeof(::message::Parkspace_info)},
 };
 
 static ::google::protobuf::Message const * const file_default_instances[] = {
@@ -339,90 +341,91 @@ void AddDescriptorsImpl() {
       "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"
+      "rror_description\030\003 \001(\t\"\375\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\"\207\001\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\022\026\n\016car_wheel_base\030\005 "
-      "\001(\002\022\027\n\017car_wheel_width\030\006 \001(\002\"\271\004\n\016Parkspa"
-      "ce_info\022\035\n\025parkingspace_index_id\030\001 \001(\005\0222"
-      "\n\021parkingspace_type\030\002 \001(\0162\027.message.Park"
-      "space_type\022\034\n\024parkingspace_unit_id\030\003 \001(\005"
-      "\022\034\n\024parkingspace_room_id\030\004 \001(\005\0222\n\026parkin"
-      "gspace_direction\030\005 \001(\0162\022.message.Directi"
-      "on\022\035\n\025parkingspace_floor_id\030\006 \001(\005\022\032\n\022par"
-      "kingspace_width\030\007 \001(\002\022\033\n\023parkingspace_he"
-      "ight\030\010 \001(\002\0226\n\023parkingspace_status\030\t \001(\0162"
-      "\031.message.Parkspace_status\022#\n\010car_info\030\n"
-      " \001(\0132\021.message.Car_info\022\022\n\nentry_time\030\013 "
-      "\001(\t\022\022\n\nleave_time\030\014 \001(\t\022/\n\016parkspace_pat"
-      "h\030\r \001(\0162\027.message.Parkspace_path\022\032\n\022path"
-      "_estimate_time\030\016 \001(\002\022:\n\027parkspace_status"
-      "_target\030\017 \001(\0162\031.message.Parkspace_status"
-      "*\237\t\n\014Message_type\022\r\n\teBase_msg\020\000\022\020\n\014eCom"
-      "mand_msg\020\001\022\026\n\022eLocate_status_msg\020\021\022\027\n\023eL"
-      "ocate_request_msg\020\022\022\030\n\024eLocate_response_"
-      "msg\020\023\022\030\n\024eDispatch_status_msg\020!\022\031\n\025eDisp"
-      "atch_request_msg\020\"\022\032\n\026eDispatch_response"
-      "_msg\020#\022$\n eParkspace_allocation_status_m"
-      "sg\0201\022%\n!eParkspace_allocation_request_ms"
-      "g\0202\022&\n\"eParkspace_allocation_response_ms"
-      "g\0203\022!\n\035eParkspace_search_request_msg\0204\022\""
-      "\n\036eParkspace_search_response_msg\0205\022\"\n\036eP"
-      "arkspace_release_request_msg\0206\022#\n\037eParks"
-      "pace_release_response_msg\0207\022\'\n#eParkspac"
-      "e_force_update_request_msg\0208\022(\n$eParkspa"
-      "ce_force_update_response_msg\0209\022(\n$eParks"
-      "pace_confirm_alloc_request_msg\020:\022)\n%ePar"
-      "kspace_confirm_alloc_response_msg\020;\022\"\n\036e"
-      "Parkspace_allocation_data_msg\020<\022\036\n\032eStor"
-      "e_command_request_msg\020A\022\037\n\033eStore_comman"
-      "d_response_msg\020B\022\037\n\033ePickup_command_requ"
-      "est_msg\020C\022 \n\034ePickup_command_response_ms"
-      "g\020D\022\037\n\032eStoring_process_statu_msg\020\220\001\022\037\n\032"
-      "ePicking_process_statu_msg\020\221\001\022\"\n\035eCentra"
-      "l_controller_statu_msg\020\240\001\022#\n\036eEntrance_m"
-      "anual_operation_msg\020\260\001\022\"\n\035eProcess_manua"
-      "l_operation_msg\020\261\001\022\037\n\032eDispatch_plan_req"
-      "uest_msg\020\340\001\022 \n\033eDispatch_plan_response_m"
-      "sg\020\341\001\022\"\n\035eDispatch_control_request_msg\020\342"
-      "\001\022#\n\036eDispatch_control_response_msg\020\343\001\022!"
-      "\n\034eDispatch_manager_status_msg\020\352\001\022\037\n\032eDi"
-      "spatch_manager_data_msg\020\353\001*\242\001\n\014Communica"
-      "tor\022\n\n\006eEmpty\020\000\022\t\n\005eMain\020\001\022\016\n\teTerminor\020"
-      "\200\002\022\017\n\neParkspace\020\200\004\022\016\n\teMeasurer\020\200\006\022\032\n\025e"
-      "Measurer_sift_server\020\201\006\022\026\n\021eDispatch_mam"
-      "ager\020\200\010\022\026\n\021eDispatch_control\020\201\010**\n\014Proce"
-      "ss_type\022\014\n\010eStoring\020\001\022\014\n\010ePicking\020\002*e\n\013E"
-      "rror_level\022\n\n\006NORMAL\020\000\022\024\n\020NEGLIGIBLE_ERR"
-      "OR\020\001\022\017\n\013MINOR_ERROR\020\002\022\017\n\013MAJOR_ERROR\020\003\022\022"
-      "\n\016CRITICAL_ERROR\020\004*\207\001\n\020Parkspace_status\022"
-      "\024\n\020eParkspace_empty\020\000\022\027\n\023eParkspace_occu"
-      "pied\020\001\022\027\n\023eParkspace_reserved\020\002\022\025\n\021ePark"
-      "space_locked\020\003\022\024\n\020eParkspace_error\020\004*(\n\t"
-      "Direction\022\014\n\010eForward\020\001\022\r\n\teBackward\020\002*["
-      "\n\016Parkspace_path\022\020\n\014OPTIMAL_PATH\020\001\022\r\n\tLE"
-      "FT_PATH\020\002\022\016\n\nRIGHT_PATH\020\003\022\030\n\024TEMPORARY_C"
-      "ACHE_PATH\020\004*R\n\016Parkspace_type\022\024\n\020MIN_PAR"
-      "KINGSPACE\020\001\022\024\n\020MID_PARKINGSPACE\020\002\022\024\n\020BIG"
-      "_PARKINGSPACE\020\003*\335\002\n\tStep_type\022\017\n\013eAlloc_"
-      "step\020\000\022\021\n\reMeasure_step\020\001\022\021\n\reCompare_st"
-      "ep\020\002\022\022\n\016eDispatch_step\020\003\022\021\n\reConfirm_ste"
-      "p\020\004\022\020\n\014eSearch_step\020\005\022\016\n\neWait_step\020\006\022\021\n"
-      "\reRelease_step\020\007\022\r\n\teComplete\020\010\022\025\n\021eBack"
-      "Confirm_step\020\t\022\026\n\022eBack_compare_step\020\n\022\025"
-      "\n\021eBackMeasure_step\020\013\022\023\n\017eBackAlloc_step"
-      "\020\014\022\022\n\016eBackWait_step\020\r\022\026\n\022eBackDispatch_"
-      "step\020\016\022\024\n\020eBackSearch_step\020\017\022\021\n\reBackCom"
-      "plete\020\020*C\n\nStep_statu\022\014\n\010eWaiting\020\000\022\014\n\010e"
-      "Working\020\001\022\n\n\006eError\020\002\022\r\n\teFinished\020\003"
+      "rect\030\t \001(\010\022\032\n\022locate_front_theta\030\n \001(\002\"\207"
+      "\001\n\010Car_info\022\022\n\ncar_length\030\001 \001(\002\022\021\n\tcar_w"
+      "idth\030\002 \001(\002\022\022\n\ncar_height\030\003 \001(\002\022\017\n\007licens"
+      "e\030\004 \001(\t\022\026\n\016car_wheel_base\030\005 \001(\002\022\027\n\017car_w"
+      "heel_width\030\006 \001(\002\"\271\004\n\016Parkspace_info\022\035\n\025p"
+      "arkingspace_index_id\030\001 \001(\005\0222\n\021parkingspa"
+      "ce_type\030\002 \001(\0162\027.message.Parkspace_type\022\034"
+      "\n\024parkingspace_unit_id\030\003 \001(\005\022\034\n\024parkings"
+      "pace_room_id\030\004 \001(\005\0222\n\026parkingspace_direc"
+      "tion\030\005 \001(\0162\022.message.Direction\022\035\n\025parkin"
+      "gspace_floor_id\030\006 \001(\005\022\032\n\022parkingspace_wi"
+      "dth\030\007 \001(\002\022\033\n\023parkingspace_height\030\010 \001(\002\0226"
+      "\n\023parkingspace_status\030\t \001(\0162\031.message.Pa"
+      "rkspace_status\022#\n\010car_info\030\n \001(\0132\021.messa"
+      "ge.Car_info\022\022\n\nentry_time\030\013 \001(\t\022\022\n\nleave"
+      "_time\030\014 \001(\t\022/\n\016parkspace_path\030\r \001(\0162\027.me"
+      "ssage.Parkspace_path\022\032\n\022path_estimate_ti"
+      "me\030\016 \001(\002\022:\n\027parkspace_status_target\030\017 \001("
+      "\0162\031.message.Parkspace_status*\237\t\n\014Message"
+      "_type\022\r\n\teBase_msg\020\000\022\020\n\014eCommand_msg\020\001\022\026"
+      "\n\022eLocate_status_msg\020\021\022\027\n\023eLocate_reques"
+      "t_msg\020\022\022\030\n\024eLocate_response_msg\020\023\022\030\n\024eDi"
+      "spatch_status_msg\020!\022\031\n\025eDispatch_request"
+      "_msg\020\"\022\032\n\026eDispatch_response_msg\020#\022$\n eP"
+      "arkspace_allocation_status_msg\0201\022%\n!ePar"
+      "kspace_allocation_request_msg\0202\022&\n\"ePark"
+      "space_allocation_response_msg\0203\022!\n\035ePark"
+      "space_search_request_msg\0204\022\"\n\036eParkspace"
+      "_search_response_msg\0205\022\"\n\036eParkspace_rel"
+      "ease_request_msg\0206\022#\n\037eParkspace_release"
+      "_response_msg\0207\022\'\n#eParkspace_force_upda"
+      "te_request_msg\0208\022(\n$eParkspace_force_upd"
+      "ate_response_msg\0209\022(\n$eParkspace_confirm"
+      "_alloc_request_msg\020:\022)\n%eParkspace_confi"
+      "rm_alloc_response_msg\020;\022\"\n\036eParkspace_al"
+      "location_data_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\022\"\n\035eCentral_controller"
+      "_statu_msg\020\240\001\022#\n\036eEntrance_manual_operat"
+      "ion_msg\020\260\001\022\"\n\035eProcess_manual_operation_"
+      "msg\020\261\001\022\037\n\032eDispatch_plan_request_msg\020\340\001\022"
+      " \n\033eDispatch_plan_response_msg\020\341\001\022\"\n\035eDi"
+      "spatch_control_request_msg\020\342\001\022#\n\036eDispat"
+      "ch_control_response_msg\020\343\001\022!\n\034eDispatch_"
+      "manager_status_msg\020\352\001\022\037\n\032eDispatch_manag"
+      "er_data_msg\020\353\001*\242\001\n\014Communicator\022\n\n\006eEmpt"
+      "y\020\000\022\t\n\005eMain\020\001\022\016\n\teTerminor\020\200\002\022\017\n\neParks"
+      "pace\020\200\004\022\016\n\teMeasurer\020\200\006\022\032\n\025eMeasurer_sif"
+      "t_server\020\201\006\022\026\n\021eDispatch_mamager\020\200\010\022\026\n\021e"
+      "Dispatch_control\020\201\010**\n\014Process_type\022\014\n\010e"
+      "Storing\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\013MINO"
+      "R_ERROR\020\002\022\017\n\013MAJOR_ERROR\020\003\022\022\n\016CRITICAL_E"
+      "RROR\020\004*\207\001\n\020Parkspace_status\022\024\n\020eParkspac"
+      "e_empty\020\000\022\027\n\023eParkspace_occupied\020\001\022\027\n\023eP"
+      "arkspace_reserved\020\002\022\025\n\021eParkspace_locked"
+      "\020\003\022\024\n\020eParkspace_error\020\004*(\n\tDirection\022\014\n"
+      "\010eForward\020\001\022\r\n\teBackward\020\002*[\n\016Parkspace_"
+      "path\022\020\n\014OPTIMAL_PATH\020\001\022\r\n\tLEFT_PATH\020\002\022\016\n"
+      "\nRIGHT_PATH\020\003\022\030\n\024TEMPORARY_CACHE_PATH\020\004*"
+      "R\n\016Parkspace_type\022\024\n\020MIN_PARKINGSPACE\020\001\022"
+      "\024\n\020MID_PARKINGSPACE\020\002\022\024\n\020BIG_PARKINGSPAC"
+      "E\020\003*\335\002\n\tStep_type\022\017\n\013eAlloc_step\020\000\022\021\n\reM"
+      "easure_step\020\001\022\021\n\reCompare_step\020\002\022\022\n\016eDis"
+      "patch_step\020\003\022\021\n\reConfirm_step\020\004\022\020\n\014eSear"
+      "ch_step\020\005\022\016\n\neWait_step\020\006\022\021\n\reRelease_st"
+      "ep\020\007\022\r\n\teComplete\020\010\022\025\n\021eBackConfirm_step"
+      "\020\t\022\026\n\022eBack_compare_step\020\n\022\025\n\021eBackMeasu"
+      "re_step\020\013\022\023\n\017eBackAlloc_step\020\014\022\022\n\016eBackW"
+      "ait_step\020\r\022\026\n\022eBackDispatch_step\020\016\022\024\n\020eB"
+      "ackSearch_step\020\017\022\021\n\reBackComplete\020\020*C\n\nS"
+      "tep_statu\022\014\n\010eWaiting\020\000\022\014\n\010eWorking\020\001\022\n\n"
+      "\006eError\020\002\022\r\n\teFinished\020\003"
   };
   ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-      descriptor, 3556);
+      descriptor, 3584);
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
     "message_base.proto", &protobuf_RegisterTypes);
 }
@@ -1684,6 +1687,7 @@ const int Locate_information::kLocateHeightFieldNumber;
 const int Locate_information::kLocateWheelBaseFieldNumber;
 const int Locate_information::kLocateWheelWidthFieldNumber;
 const int Locate_information::kLocateCorrectFieldNumber;
+const int Locate_information::kLocateFrontThetaFieldNumber;
 #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 Locate_information::Locate_information()
@@ -1701,16 +1705,16 @@ Locate_information::Locate_information(const Locate_information& from)
       _cached_size_(0) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   ::memcpy(&locate_x_, &from.locate_x_,
-    static_cast<size_t>(reinterpret_cast<char*>(&locate_correct_) -
-    reinterpret_cast<char*>(&locate_x_)) + sizeof(locate_correct_));
+    static_cast<size_t>(reinterpret_cast<char*>(&locate_front_theta_) -
+    reinterpret_cast<char*>(&locate_x_)) + sizeof(locate_front_theta_));
   // @@protoc_insertion_point(copy_constructor:message.Locate_information)
 }
 
 void Locate_information::SharedCtor() {
   _cached_size_ = 0;
   ::memset(&locate_x_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&locate_correct_) -
-      reinterpret_cast<char*>(&locate_x_)) + sizeof(locate_correct_));
+      reinterpret_cast<char*>(&locate_front_theta_) -
+      reinterpret_cast<char*>(&locate_x_)) + sizeof(locate_front_theta_));
 }
 
 Locate_information::~Locate_information() {
@@ -1756,7 +1760,11 @@ void Locate_information::Clear() {
         reinterpret_cast<char*>(&locate_wheel_width_) -
         reinterpret_cast<char*>(&locate_x_)) + sizeof(locate_wheel_width_));
   }
-  locate_correct_ = false;
+  if (cached_has_bits & 768u) {
+    ::memset(&locate_correct_, 0, static_cast<size_t>(
+        reinterpret_cast<char*>(&locate_front_theta_) -
+        reinterpret_cast<char*>(&locate_correct_)) + sizeof(locate_front_theta_));
+  }
   _has_bits_.Clear();
   _internal_metadata_.Clear();
 }
@@ -1897,6 +1905,20 @@ bool Locate_information::MergePartialFromCodedStream(
         break;
       }
 
+      // optional float locate_front_theta = 10;
+      case 10: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(85u /* 85 & 0xFF */)) {
+          set_has_locate_front_theta();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
+                 input, &locate_front_theta_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
       default: {
       handle_unusual:
         if (tag == 0) {
@@ -1969,6 +1991,11 @@ void Locate_information::SerializeWithCachedSizes(
     ::google::protobuf::internal::WireFormatLite::WriteBool(9, this->locate_correct(), output);
   }
 
+  // optional float locate_front_theta = 10;
+  if (cached_has_bits & 0x00000200u) {
+    ::google::protobuf::internal::WireFormatLite::WriteFloat(10, this->locate_front_theta(), output);
+  }
+
   if (_internal_metadata_.have_unknown_fields()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
         _internal_metadata_.unknown_fields(), output);
@@ -2029,6 +2056,11 @@ void Locate_information::SerializeWithCachedSizes(
     target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(9, this->locate_correct(), target);
   }
 
+  // optional float locate_front_theta = 10;
+  if (cached_has_bits & 0x00000200u) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(10, this->locate_front_theta(), target);
+  }
+
   if (_internal_metadata_.have_unknown_fields()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
         _internal_metadata_.unknown_fields(), target);
@@ -2088,11 +2120,18 @@ size_t Locate_information::ByteSizeLong() const {
     }
 
   }
-  // optional bool locate_correct = 9;
-  if (has_locate_correct()) {
-    total_size += 1 + 1;
-  }
+  if (_has_bits_[8 / 32] & 768u) {
+    // optional bool locate_correct = 9;
+    if (has_locate_correct()) {
+      total_size += 1 + 1;
+    }
+
+    // optional float locate_front_theta = 10;
+    if (has_locate_front_theta()) {
+      total_size += 1 + 4;
+    }
 
+  }
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
   GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
   _cached_size_ = cached_size;
@@ -2150,8 +2189,14 @@ void Locate_information::MergeFrom(const Locate_information& from) {
     }
     _has_bits_[0] |= cached_has_bits;
   }
-  if (cached_has_bits & 0x00000100u) {
-    set_locate_correct(from.locate_correct());
+  if (cached_has_bits & 768u) {
+    if (cached_has_bits & 0x00000100u) {
+      locate_correct_ = from.locate_correct_;
+    }
+    if (cached_has_bits & 0x00000200u) {
+      locate_front_theta_ = from.locate_front_theta_;
+    }
+    _has_bits_[0] |= cached_has_bits;
   }
 }
 
@@ -2188,6 +2233,7 @@ void Locate_information::InternalSwap(Locate_information* other) {
   swap(locate_wheel_base_, other->locate_wheel_base_);
   swap(locate_wheel_width_, other->locate_wheel_width_);
   swap(locate_correct_, other->locate_correct_);
+  swap(locate_front_theta_, other->locate_front_theta_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
   swap(_cached_size_, other->_cached_size_);

+ 34 - 0
message/message_base.pb.h

@@ -888,6 +888,13 @@ class Locate_information : public ::google::protobuf::Message /* @@protoc_insert
   bool locate_correct() const;
   void set_locate_correct(bool value);
 
+  // optional float locate_front_theta = 10;
+  bool has_locate_front_theta() const;
+  void clear_locate_front_theta();
+  static const int kLocateFrontThetaFieldNumber = 10;
+  float locate_front_theta() const;
+  void set_locate_front_theta(float value);
+
   // @@protoc_insertion_point(class_scope:message.Locate_information)
  private:
   void set_has_locate_x();
@@ -908,6 +915,8 @@ class Locate_information : public ::google::protobuf::Message /* @@protoc_insert
   void clear_has_locate_wheel_width();
   void set_has_locate_correct();
   void clear_has_locate_correct();
+  void set_has_locate_front_theta();
+  void clear_has_locate_front_theta();
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
@@ -921,6 +930,7 @@ class Locate_information : public ::google::protobuf::Message /* @@protoc_insert
   float locate_wheel_base_;
   float locate_wheel_width_;
   bool locate_correct_;
+  float locate_front_theta_;
   friend struct ::protobuf_message_5fbase_2eproto::TableStruct;
   friend void ::protobuf_message_5fbase_2eproto::InitDefaultsLocate_informationImpl();
 };
@@ -1864,6 +1874,30 @@ inline void Locate_information::set_locate_correct(bool value) {
   // @@protoc_insertion_point(field_set:message.Locate_information.locate_correct)
 }
 
+// optional float locate_front_theta = 10;
+inline bool Locate_information::has_locate_front_theta() const {
+  return (_has_bits_[0] & 0x00000200u) != 0;
+}
+inline void Locate_information::set_has_locate_front_theta() {
+  _has_bits_[0] |= 0x00000200u;
+}
+inline void Locate_information::clear_has_locate_front_theta() {
+  _has_bits_[0] &= ~0x00000200u;
+}
+inline void Locate_information::clear_locate_front_theta() {
+  locate_front_theta_ = 0;
+  clear_has_locate_front_theta();
+}
+inline float Locate_information::locate_front_theta() const {
+  // @@protoc_insertion_point(field_get:message.Locate_information.locate_front_theta)
+  return locate_front_theta_;
+}
+inline void Locate_information::set_locate_front_theta(float value) {
+  set_has_locate_front_theta();
+  locate_front_theta_ = value;
+  // @@protoc_insertion_point(field_set:message.Locate_information.locate_front_theta)
+}
+
 // -------------------------------------------------------------------
 
 // Car_info