From 196086f00e6ba3648fe2d690ed0b60ab0dda3985 Mon Sep 17 00:00:00 2001 From: Jun Zhang Date: Mon, 4 Nov 2024 09:48:29 +0800 Subject: [PATCH] add carbon data struct --- city/person/v2/carbon.proto | 24 + city/person/v2/vehicle.proto | 4 + cpp/city/person/v2/carbon.grpc.pb.cc | 29 + cpp/city/person/v2/carbon.grpc.pb.h | 37 ++ cpp/city/person/v2/carbon.pb.cc | 559 ++++++++++++++++++ cpp/city/person/v2/carbon.pb.h | 472 +++++++++++++++ cpp/city/person/v2/vehicle.pb.cc | 179 ++++-- cpp/city/person/v2/vehicle.pb.h | 108 ++++ doc/index.html | 110 ++++ es/city/person/v2/carbon_pb.d.ts | 86 +++ es/city/person/v2/carbon_pb.js | 27 + es/city/person/v2/vehicle_pb.d.ts | 9 + es/city/person/v2/vehicle_pb.js | 2 + go/city/person/v2/carbon.pb.go | 211 +++++++ go/city/person/v2/vehicle.pb.go | 300 +++++----- pycityproto/city/person/v2/__init__.pyi | 1 + pycityproto/city/person/v2/carbon_pb2.py | 15 + pycityproto/city/person/v2/carbon_pb2.pyi | 26 + pycityproto/city/person/v2/carbon_pb2_grpc.py | 2 + pycityproto/city/person/v2/vehicle_pb2.py | 39 +- pycityproto/city/person/v2/vehicle_pb2.pyi | 7 +- 21 files changed, 2024 insertions(+), 223 deletions(-) create mode 100644 city/person/v2/carbon.proto create mode 100644 cpp/city/person/v2/carbon.grpc.pb.cc create mode 100644 cpp/city/person/v2/carbon.grpc.pb.h create mode 100644 cpp/city/person/v2/carbon.pb.cc create mode 100644 cpp/city/person/v2/carbon.pb.h create mode 100644 es/city/person/v2/carbon_pb.d.ts create mode 100644 es/city/person/v2/carbon_pb.js create mode 100644 go/city/person/v2/carbon.pb.go create mode 100644 pycityproto/city/person/v2/carbon_pb2.py create mode 100644 pycityproto/city/person/v2/carbon_pb2.pyi create mode 100644 pycityproto/city/person/v2/carbon_pb2_grpc.py diff --git a/city/person/v2/carbon.proto b/city/person/v2/carbon.proto new file mode 100644 index 00000000..597759c6 --- /dev/null +++ b/city/person/v2/carbon.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; + +package city.person.v2; + +// 车辆瞬时碳排放信息 +// Vehicle instantaneous carbon emission information +message VehicleCarbon { + // ID + int32 id = 1; + // delta distance (m) + double ds = 2; + // vehicle speed (m/s) + double v = 3; + // vehicle acceleration (m/s^2) + double a = 4; + // energy for acceleration (J) + double u_acc = 5; + // energy for rolling resistance (J) + double u_roll = 6; + // energy for air resistance (J) + double u_aero = 7; + // C_D: drag coefficient + double c_d = 8; +} diff --git a/city/person/v2/vehicle.proto b/city/person/v2/vehicle.proto index f0260a9d..542e2493 100644 --- a/city/person/v2/vehicle.proto +++ b/city/person/v2/vehicle.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package city.person.v2; +import "city/person/v2/carbon.proto"; import "city/person/v2/motion.proto"; import "city/routing/v2/routing.proto"; @@ -75,6 +76,9 @@ message VehicleRuntime { // 自由流下的预计到达时刻 // estimated arrival time under free flow double eta_free_flow = 10; + // 碳排放信息 + // carbon emission information + optional VehicleCarbon carbon = 11; } enum VehicleRelation { diff --git a/cpp/city/person/v2/carbon.grpc.pb.cc b/cpp/city/person/v2/carbon.grpc.pb.cc new file mode 100644 index 00000000..9607a5aa --- /dev/null +++ b/cpp/city/person/v2/carbon.grpc.pb.cc @@ -0,0 +1,29 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: city/person/v2/carbon.proto + +#include "city/person/v2/carbon.pb.h" +#include "city/person/v2/carbon.grpc.pb.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +namespace city { +namespace person { +namespace v2 { + +} // namespace city +} // namespace person +} // namespace v2 + diff --git a/cpp/city/person/v2/carbon.grpc.pb.h b/cpp/city/person/v2/carbon.grpc.pb.h new file mode 100644 index 00000000..2b8da269 --- /dev/null +++ b/cpp/city/person/v2/carbon.grpc.pb.h @@ -0,0 +1,37 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: city/person/v2/carbon.proto +#ifndef GRPC_city_2fperson_2fv2_2fcarbon_2eproto__INCLUDED +#define GRPC_city_2fperson_2fv2_2fcarbon_2eproto__INCLUDED + +#include "city/person/v2/carbon.pb.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace city { +namespace person { +namespace v2 { + +} // namespace v2 +} // namespace person +} // namespace city + + +#endif // GRPC_city_2fperson_2fv2_2fcarbon_2eproto__INCLUDED diff --git a/cpp/city/person/v2/carbon.pb.cc b/cpp/city/person/v2/carbon.pb.cc new file mode 100644 index 00000000..893a8f8e --- /dev/null +++ b/cpp/city/person/v2/carbon.pb.cc @@ -0,0 +1,559 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: city/person/v2/carbon.proto + +#include "city/person/v2/carbon.pb.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +// @@protoc_insertion_point(includes) +#include + +PROTOBUF_PRAGMA_INIT_SEG + +namespace _pb = ::PROTOBUF_NAMESPACE_ID; +namespace _pbi = _pb::internal; + +namespace city { +namespace person { +namespace v2 { +PROTOBUF_CONSTEXPR VehicleCarbon::VehicleCarbon( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.ds_)*/0 + , /*decltype(_impl_.v_)*/0 + , /*decltype(_impl_.a_)*/0 + , /*decltype(_impl_.u_acc_)*/0 + , /*decltype(_impl_.u_roll_)*/0 + , /*decltype(_impl_.u_aero_)*/0 + , /*decltype(_impl_.c_d_)*/0 + , /*decltype(_impl_.id_)*/0 + , /*decltype(_impl_._cached_size_)*/{}} {} +struct VehicleCarbonDefaultTypeInternal { + PROTOBUF_CONSTEXPR VehicleCarbonDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~VehicleCarbonDefaultTypeInternal() {} + union { + VehicleCarbon _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 VehicleCarbonDefaultTypeInternal _VehicleCarbon_default_instance_; +} // namespace v2 +} // namespace person +} // namespace city +static ::_pb::Metadata file_level_metadata_city_2fperson_2fv2_2fcarbon_2eproto[1]; +static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_city_2fperson_2fv2_2fcarbon_2eproto = nullptr; +static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_city_2fperson_2fv2_2fcarbon_2eproto = nullptr; + +const uint32_t TableStruct_city_2fperson_2fv2_2fcarbon_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::city::person::v2::VehicleCarbon, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::city::person::v2::VehicleCarbon, _impl_.id_), + PROTOBUF_FIELD_OFFSET(::city::person::v2::VehicleCarbon, _impl_.ds_), + PROTOBUF_FIELD_OFFSET(::city::person::v2::VehicleCarbon, _impl_.v_), + PROTOBUF_FIELD_OFFSET(::city::person::v2::VehicleCarbon, _impl_.a_), + PROTOBUF_FIELD_OFFSET(::city::person::v2::VehicleCarbon, _impl_.u_acc_), + PROTOBUF_FIELD_OFFSET(::city::person::v2::VehicleCarbon, _impl_.u_roll_), + PROTOBUF_FIELD_OFFSET(::city::person::v2::VehicleCarbon, _impl_.u_aero_), + PROTOBUF_FIELD_OFFSET(::city::person::v2::VehicleCarbon, _impl_.c_d_), +}; +static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, -1, -1, sizeof(::city::person::v2::VehicleCarbon)}, +}; + +static const ::_pb::Message* const file_default_instances[] = { + &::city::person::v2::_VehicleCarbon_default_instance_._instance, +}; + +const char descriptor_table_protodef_city_2fperson_2fv2_2fcarbon_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n\033city/person/v2/carbon.proto\022\016city.pers" + "on.v2\"\237\001\n\rVehicleCarbon\022\016\n\002id\030\001 \001(\005R\002id\022" + "\016\n\002ds\030\002 \001(\001R\002ds\022\014\n\001v\030\003 \001(\001R\001v\022\014\n\001a\030\004 \001(\001" + "R\001a\022\023\n\005u_acc\030\005 \001(\001R\004uAcc\022\025\n\006u_roll\030\006 \001(\001" + "R\005uRoll\022\025\n\006u_aero\030\007 \001(\001R\005uAero\022\017\n\003c_d\030\010 " + "\001(\001R\002cDB\264\001\n\022com.city.person.v2B\013CarbonPr" + "otoP\001Z7git.fiblab.net/sim/protos/v2/go/c" + "ity/person/v2;personv2\242\002\003CPX\252\002\016City.Pers" + "on.V2\312\002\016City\\Person\\V2\342\002\032City\\Person\\V2\\" + "GPBMetadata\352\002\020City::Person::V2b\006proto3" + ; +static ::_pbi::once_flag descriptor_table_city_2fperson_2fv2_2fcarbon_2eproto_once; +const ::_pbi::DescriptorTable descriptor_table_city_2fperson_2fv2_2fcarbon_2eproto = { + false, false, 398, descriptor_table_protodef_city_2fperson_2fv2_2fcarbon_2eproto, + "city/person/v2/carbon.proto", + &descriptor_table_city_2fperson_2fv2_2fcarbon_2eproto_once, nullptr, 0, 1, + schemas, file_default_instances, TableStruct_city_2fperson_2fv2_2fcarbon_2eproto::offsets, + file_level_metadata_city_2fperson_2fv2_2fcarbon_2eproto, file_level_enum_descriptors_city_2fperson_2fv2_2fcarbon_2eproto, + file_level_service_descriptors_city_2fperson_2fv2_2fcarbon_2eproto, +}; +PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_city_2fperson_2fv2_2fcarbon_2eproto_getter() { + return &descriptor_table_city_2fperson_2fv2_2fcarbon_2eproto; +} + +// Force running AddDescriptors() at dynamic initialization time. +PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_city_2fperson_2fv2_2fcarbon_2eproto(&descriptor_table_city_2fperson_2fv2_2fcarbon_2eproto); +namespace city { +namespace person { +namespace v2 { + +// =================================================================== + +class VehicleCarbon::_Internal { + public: +}; + +VehicleCarbon::VehicleCarbon(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:city.person.v2.VehicleCarbon) +} +VehicleCarbon::VehicleCarbon(const VehicleCarbon& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + VehicleCarbon* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.ds_){} + , decltype(_impl_.v_){} + , decltype(_impl_.a_){} + , decltype(_impl_.u_acc_){} + , decltype(_impl_.u_roll_){} + , decltype(_impl_.u_aero_){} + , decltype(_impl_.c_d_){} + , decltype(_impl_.id_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + ::memcpy(&_impl_.ds_, &from._impl_.ds_, + static_cast(reinterpret_cast(&_impl_.id_) - + reinterpret_cast(&_impl_.ds_)) + sizeof(_impl_.id_)); + // @@protoc_insertion_point(copy_constructor:city.person.v2.VehicleCarbon) +} + +inline void VehicleCarbon::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.ds_){0} + , decltype(_impl_.v_){0} + , decltype(_impl_.a_){0} + , decltype(_impl_.u_acc_){0} + , decltype(_impl_.u_roll_){0} + , decltype(_impl_.u_aero_){0} + , decltype(_impl_.c_d_){0} + , decltype(_impl_.id_){0} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +VehicleCarbon::~VehicleCarbon() { + // @@protoc_insertion_point(destructor:city.person.v2.VehicleCarbon) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void VehicleCarbon::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); +} + +void VehicleCarbon::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void VehicleCarbon::Clear() { +// @@protoc_insertion_point(message_clear_start:city.person.v2.VehicleCarbon) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + ::memset(&_impl_.ds_, 0, static_cast( + reinterpret_cast(&_impl_.id_) - + reinterpret_cast(&_impl_.ds_)) + sizeof(_impl_.id_)); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* VehicleCarbon::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // int32 id = 1 [json_name = "id"]; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { + _impl_.id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // double ds = 2 [json_name = "ds"]; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 17)) { + _impl_.ds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); + ptr += sizeof(double); + } else + goto handle_unusual; + continue; + // double v = 3 [json_name = "v"]; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 25)) { + _impl_.v_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); + ptr += sizeof(double); + } else + goto handle_unusual; + continue; + // double a = 4 [json_name = "a"]; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 33)) { + _impl_.a_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); + ptr += sizeof(double); + } else + goto handle_unusual; + continue; + // double u_acc = 5 [json_name = "uAcc"]; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 41)) { + _impl_.u_acc_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); + ptr += sizeof(double); + } else + goto handle_unusual; + continue; + // double u_roll = 6 [json_name = "uRoll"]; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 49)) { + _impl_.u_roll_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); + ptr += sizeof(double); + } else + goto handle_unusual; + continue; + // double u_aero = 7 [json_name = "uAero"]; + case 7: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 57)) { + _impl_.u_aero_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); + ptr += sizeof(double); + } else + goto handle_unusual; + continue; + // double c_d = 8 [json_name = "cD"]; + case 8: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 65)) { + _impl_.c_d_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); + ptr += sizeof(double); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* VehicleCarbon::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:city.person.v2.VehicleCarbon) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // int32 id = 1 [json_name = "id"]; + if (this->_internal_id() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_id(), target); + } + + // double ds = 2 [json_name = "ds"]; + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_ds = this->_internal_ds(); + uint64_t raw_ds; + memcpy(&raw_ds, &tmp_ds, sizeof(tmp_ds)); + if (raw_ds != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteDoubleToArray(2, this->_internal_ds(), target); + } + + // double v = 3 [json_name = "v"]; + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_v = this->_internal_v(); + uint64_t raw_v; + memcpy(&raw_v, &tmp_v, sizeof(tmp_v)); + if (raw_v != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteDoubleToArray(3, this->_internal_v(), target); + } + + // double a = 4 [json_name = "a"]; + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_a = this->_internal_a(); + uint64_t raw_a; + memcpy(&raw_a, &tmp_a, sizeof(tmp_a)); + if (raw_a != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteDoubleToArray(4, this->_internal_a(), target); + } + + // double u_acc = 5 [json_name = "uAcc"]; + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_u_acc = this->_internal_u_acc(); + uint64_t raw_u_acc; + memcpy(&raw_u_acc, &tmp_u_acc, sizeof(tmp_u_acc)); + if (raw_u_acc != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteDoubleToArray(5, this->_internal_u_acc(), target); + } + + // double u_roll = 6 [json_name = "uRoll"]; + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_u_roll = this->_internal_u_roll(); + uint64_t raw_u_roll; + memcpy(&raw_u_roll, &tmp_u_roll, sizeof(tmp_u_roll)); + if (raw_u_roll != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteDoubleToArray(6, this->_internal_u_roll(), target); + } + + // double u_aero = 7 [json_name = "uAero"]; + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_u_aero = this->_internal_u_aero(); + uint64_t raw_u_aero; + memcpy(&raw_u_aero, &tmp_u_aero, sizeof(tmp_u_aero)); + if (raw_u_aero != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteDoubleToArray(7, this->_internal_u_aero(), target); + } + + // double c_d = 8 [json_name = "cD"]; + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_c_d = this->_internal_c_d(); + uint64_t raw_c_d; + memcpy(&raw_c_d, &tmp_c_d, sizeof(tmp_c_d)); + if (raw_c_d != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteDoubleToArray(8, this->_internal_c_d(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:city.person.v2.VehicleCarbon) + return target; +} + +size_t VehicleCarbon::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:city.person.v2.VehicleCarbon) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // double ds = 2 [json_name = "ds"]; + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_ds = this->_internal_ds(); + uint64_t raw_ds; + memcpy(&raw_ds, &tmp_ds, sizeof(tmp_ds)); + if (raw_ds != 0) { + total_size += 1 + 8; + } + + // double v = 3 [json_name = "v"]; + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_v = this->_internal_v(); + uint64_t raw_v; + memcpy(&raw_v, &tmp_v, sizeof(tmp_v)); + if (raw_v != 0) { + total_size += 1 + 8; + } + + // double a = 4 [json_name = "a"]; + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_a = this->_internal_a(); + uint64_t raw_a; + memcpy(&raw_a, &tmp_a, sizeof(tmp_a)); + if (raw_a != 0) { + total_size += 1 + 8; + } + + // double u_acc = 5 [json_name = "uAcc"]; + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_u_acc = this->_internal_u_acc(); + uint64_t raw_u_acc; + memcpy(&raw_u_acc, &tmp_u_acc, sizeof(tmp_u_acc)); + if (raw_u_acc != 0) { + total_size += 1 + 8; + } + + // double u_roll = 6 [json_name = "uRoll"]; + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_u_roll = this->_internal_u_roll(); + uint64_t raw_u_roll; + memcpy(&raw_u_roll, &tmp_u_roll, sizeof(tmp_u_roll)); + if (raw_u_roll != 0) { + total_size += 1 + 8; + } + + // double u_aero = 7 [json_name = "uAero"]; + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_u_aero = this->_internal_u_aero(); + uint64_t raw_u_aero; + memcpy(&raw_u_aero, &tmp_u_aero, sizeof(tmp_u_aero)); + if (raw_u_aero != 0) { + total_size += 1 + 8; + } + + // double c_d = 8 [json_name = "cD"]; + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_c_d = this->_internal_c_d(); + uint64_t raw_c_d; + memcpy(&raw_c_d, &tmp_c_d, sizeof(tmp_c_d)); + if (raw_c_d != 0) { + total_size += 1 + 8; + } + + // int32 id = 1 [json_name = "id"]; + if (this->_internal_id() != 0) { + total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_id()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData VehicleCarbon::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + VehicleCarbon::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*VehicleCarbon::GetClassData() const { return &_class_data_; } + + +void VehicleCarbon::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:city.person.v2.VehicleCarbon) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_ds = from._internal_ds(); + uint64_t raw_ds; + memcpy(&raw_ds, &tmp_ds, sizeof(tmp_ds)); + if (raw_ds != 0) { + _this->_internal_set_ds(from._internal_ds()); + } + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_v = from._internal_v(); + uint64_t raw_v; + memcpy(&raw_v, &tmp_v, sizeof(tmp_v)); + if (raw_v != 0) { + _this->_internal_set_v(from._internal_v()); + } + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_a = from._internal_a(); + uint64_t raw_a; + memcpy(&raw_a, &tmp_a, sizeof(tmp_a)); + if (raw_a != 0) { + _this->_internal_set_a(from._internal_a()); + } + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_u_acc = from._internal_u_acc(); + uint64_t raw_u_acc; + memcpy(&raw_u_acc, &tmp_u_acc, sizeof(tmp_u_acc)); + if (raw_u_acc != 0) { + _this->_internal_set_u_acc(from._internal_u_acc()); + } + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_u_roll = from._internal_u_roll(); + uint64_t raw_u_roll; + memcpy(&raw_u_roll, &tmp_u_roll, sizeof(tmp_u_roll)); + if (raw_u_roll != 0) { + _this->_internal_set_u_roll(from._internal_u_roll()); + } + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_u_aero = from._internal_u_aero(); + uint64_t raw_u_aero; + memcpy(&raw_u_aero, &tmp_u_aero, sizeof(tmp_u_aero)); + if (raw_u_aero != 0) { + _this->_internal_set_u_aero(from._internal_u_aero()); + } + static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); + double tmp_c_d = from._internal_c_d(); + uint64_t raw_c_d; + memcpy(&raw_c_d, &tmp_c_d, sizeof(tmp_c_d)); + if (raw_c_d != 0) { + _this->_internal_set_c_d(from._internal_c_d()); + } + if (from._internal_id() != 0) { + _this->_internal_set_id(from._internal_id()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void VehicleCarbon::CopyFrom(const VehicleCarbon& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:city.person.v2.VehicleCarbon) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool VehicleCarbon::IsInitialized() const { + return true; +} + +void VehicleCarbon::InternalSwap(VehicleCarbon* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::memswap< + PROTOBUF_FIELD_OFFSET(VehicleCarbon, _impl_.id_) + + sizeof(VehicleCarbon::_impl_.id_) + - PROTOBUF_FIELD_OFFSET(VehicleCarbon, _impl_.ds_)>( + reinterpret_cast(&_impl_.ds_), + reinterpret_cast(&other->_impl_.ds_)); +} + +::PROTOBUF_NAMESPACE_ID::Metadata VehicleCarbon::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_city_2fperson_2fv2_2fcarbon_2eproto_getter, &descriptor_table_city_2fperson_2fv2_2fcarbon_2eproto_once, + file_level_metadata_city_2fperson_2fv2_2fcarbon_2eproto[0]); +} + +// @@protoc_insertion_point(namespace_scope) +} // namespace v2 +} // namespace person +} // namespace city +PROTOBUF_NAMESPACE_OPEN +template<> PROTOBUF_NOINLINE ::city::person::v2::VehicleCarbon* +Arena::CreateMaybeMessage< ::city::person::v2::VehicleCarbon >(Arena* arena) { + return Arena::CreateMessageInternal< ::city::person::v2::VehicleCarbon >(arena); +} +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include diff --git a/cpp/city/person/v2/carbon.pb.h b/cpp/city/person/v2/carbon.pb.h new file mode 100644 index 00000000..f30990ac --- /dev/null +++ b/cpp/city/person/v2/carbon.pb.h @@ -0,0 +1,472 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: city/person/v2/carbon.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_city_2fperson_2fv2_2fcarbon_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_city_2fperson_2fv2_2fcarbon_2eproto + +#include +#include + +#include +#if PROTOBUF_VERSION < 3021000 +#error This file was generated by a newer version of protoc which is +#error incompatible with your Protocol Buffer headers. Please update +#error your headers. +#endif +#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION +#error This file was generated by an older version of protoc which is +#error incompatible with your Protocol Buffer headers. Please +#error regenerate this file with a newer version of protoc. +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include // IWYU pragma: export +#include // IWYU pragma: export +#include +// @@protoc_insertion_point(includes) +#include +#define PROTOBUF_INTERNAL_EXPORT_city_2fperson_2fv2_2fcarbon_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_city_2fperson_2fv2_2fcarbon_2eproto { + static const uint32_t offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_city_2fperson_2fv2_2fcarbon_2eproto; +namespace city { +namespace person { +namespace v2 { +class VehicleCarbon; +struct VehicleCarbonDefaultTypeInternal; +extern VehicleCarbonDefaultTypeInternal _VehicleCarbon_default_instance_; +} // namespace v2 +} // namespace person +} // namespace city +PROTOBUF_NAMESPACE_OPEN +template<> ::city::person::v2::VehicleCarbon* Arena::CreateMaybeMessage<::city::person::v2::VehicleCarbon>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace city { +namespace person { +namespace v2 { + +// =================================================================== + +class VehicleCarbon final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:city.person.v2.VehicleCarbon) */ { + public: + inline VehicleCarbon() : VehicleCarbon(nullptr) {} + ~VehicleCarbon() override; + explicit PROTOBUF_CONSTEXPR VehicleCarbon(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + VehicleCarbon(const VehicleCarbon& from); + VehicleCarbon(VehicleCarbon&& from) noexcept + : VehicleCarbon() { + *this = ::std::move(from); + } + + inline VehicleCarbon& operator=(const VehicleCarbon& from) { + CopyFrom(from); + return *this; + } + inline VehicleCarbon& operator=(VehicleCarbon&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const VehicleCarbon& default_instance() { + return *internal_default_instance(); + } + static inline const VehicleCarbon* internal_default_instance() { + return reinterpret_cast( + &_VehicleCarbon_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + friend void swap(VehicleCarbon& a, VehicleCarbon& b) { + a.Swap(&b); + } + inline void Swap(VehicleCarbon* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(VehicleCarbon* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + VehicleCarbon* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const VehicleCarbon& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const VehicleCarbon& from) { + VehicleCarbon::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(VehicleCarbon* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "city.person.v2.VehicleCarbon"; + } + protected: + explicit VehicleCarbon(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kDsFieldNumber = 2, + kVFieldNumber = 3, + kAFieldNumber = 4, + kUAccFieldNumber = 5, + kURollFieldNumber = 6, + kUAeroFieldNumber = 7, + kCDFieldNumber = 8, + kIdFieldNumber = 1, + }; + // double ds = 2 [json_name = "ds"]; + void clear_ds(); + double ds() const; + void set_ds(double value); + private: + double _internal_ds() const; + void _internal_set_ds(double value); + public: + + // double v = 3 [json_name = "v"]; + void clear_v(); + double v() const; + void set_v(double value); + private: + double _internal_v() const; + void _internal_set_v(double value); + public: + + // double a = 4 [json_name = "a"]; + void clear_a(); + double a() const; + void set_a(double value); + private: + double _internal_a() const; + void _internal_set_a(double value); + public: + + // double u_acc = 5 [json_name = "uAcc"]; + void clear_u_acc(); + double u_acc() const; + void set_u_acc(double value); + private: + double _internal_u_acc() const; + void _internal_set_u_acc(double value); + public: + + // double u_roll = 6 [json_name = "uRoll"]; + void clear_u_roll(); + double u_roll() const; + void set_u_roll(double value); + private: + double _internal_u_roll() const; + void _internal_set_u_roll(double value); + public: + + // double u_aero = 7 [json_name = "uAero"]; + void clear_u_aero(); + double u_aero() const; + void set_u_aero(double value); + private: + double _internal_u_aero() const; + void _internal_set_u_aero(double value); + public: + + // double c_d = 8 [json_name = "cD"]; + void clear_c_d(); + double c_d() const; + void set_c_d(double value); + private: + double _internal_c_d() const; + void _internal_set_c_d(double value); + public: + + // int32 id = 1 [json_name = "id"]; + void clear_id(); + int32_t id() const; + void set_id(int32_t value); + private: + int32_t _internal_id() const; + void _internal_set_id(int32_t value); + public: + + // @@protoc_insertion_point(class_scope:city.person.v2.VehicleCarbon) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + double ds_; + double v_; + double a_; + double u_acc_; + double u_roll_; + double u_aero_; + double c_d_; + int32_t id_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_city_2fperson_2fv2_2fcarbon_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// VehicleCarbon + +// int32 id = 1 [json_name = "id"]; +inline void VehicleCarbon::clear_id() { + _impl_.id_ = 0; +} +inline int32_t VehicleCarbon::_internal_id() const { + return _impl_.id_; +} +inline int32_t VehicleCarbon::id() const { + // @@protoc_insertion_point(field_get:city.person.v2.VehicleCarbon.id) + return _internal_id(); +} +inline void VehicleCarbon::_internal_set_id(int32_t value) { + + _impl_.id_ = value; +} +inline void VehicleCarbon::set_id(int32_t value) { + _internal_set_id(value); + // @@protoc_insertion_point(field_set:city.person.v2.VehicleCarbon.id) +} + +// double ds = 2 [json_name = "ds"]; +inline void VehicleCarbon::clear_ds() { + _impl_.ds_ = 0; +} +inline double VehicleCarbon::_internal_ds() const { + return _impl_.ds_; +} +inline double VehicleCarbon::ds() const { + // @@protoc_insertion_point(field_get:city.person.v2.VehicleCarbon.ds) + return _internal_ds(); +} +inline void VehicleCarbon::_internal_set_ds(double value) { + + _impl_.ds_ = value; +} +inline void VehicleCarbon::set_ds(double value) { + _internal_set_ds(value); + // @@protoc_insertion_point(field_set:city.person.v2.VehicleCarbon.ds) +} + +// double v = 3 [json_name = "v"]; +inline void VehicleCarbon::clear_v() { + _impl_.v_ = 0; +} +inline double VehicleCarbon::_internal_v() const { + return _impl_.v_; +} +inline double VehicleCarbon::v() const { + // @@protoc_insertion_point(field_get:city.person.v2.VehicleCarbon.v) + return _internal_v(); +} +inline void VehicleCarbon::_internal_set_v(double value) { + + _impl_.v_ = value; +} +inline void VehicleCarbon::set_v(double value) { + _internal_set_v(value); + // @@protoc_insertion_point(field_set:city.person.v2.VehicleCarbon.v) +} + +// double a = 4 [json_name = "a"]; +inline void VehicleCarbon::clear_a() { + _impl_.a_ = 0; +} +inline double VehicleCarbon::_internal_a() const { + return _impl_.a_; +} +inline double VehicleCarbon::a() const { + // @@protoc_insertion_point(field_get:city.person.v2.VehicleCarbon.a) + return _internal_a(); +} +inline void VehicleCarbon::_internal_set_a(double value) { + + _impl_.a_ = value; +} +inline void VehicleCarbon::set_a(double value) { + _internal_set_a(value); + // @@protoc_insertion_point(field_set:city.person.v2.VehicleCarbon.a) +} + +// double u_acc = 5 [json_name = "uAcc"]; +inline void VehicleCarbon::clear_u_acc() { + _impl_.u_acc_ = 0; +} +inline double VehicleCarbon::_internal_u_acc() const { + return _impl_.u_acc_; +} +inline double VehicleCarbon::u_acc() const { + // @@protoc_insertion_point(field_get:city.person.v2.VehicleCarbon.u_acc) + return _internal_u_acc(); +} +inline void VehicleCarbon::_internal_set_u_acc(double value) { + + _impl_.u_acc_ = value; +} +inline void VehicleCarbon::set_u_acc(double value) { + _internal_set_u_acc(value); + // @@protoc_insertion_point(field_set:city.person.v2.VehicleCarbon.u_acc) +} + +// double u_roll = 6 [json_name = "uRoll"]; +inline void VehicleCarbon::clear_u_roll() { + _impl_.u_roll_ = 0; +} +inline double VehicleCarbon::_internal_u_roll() const { + return _impl_.u_roll_; +} +inline double VehicleCarbon::u_roll() const { + // @@protoc_insertion_point(field_get:city.person.v2.VehicleCarbon.u_roll) + return _internal_u_roll(); +} +inline void VehicleCarbon::_internal_set_u_roll(double value) { + + _impl_.u_roll_ = value; +} +inline void VehicleCarbon::set_u_roll(double value) { + _internal_set_u_roll(value); + // @@protoc_insertion_point(field_set:city.person.v2.VehicleCarbon.u_roll) +} + +// double u_aero = 7 [json_name = "uAero"]; +inline void VehicleCarbon::clear_u_aero() { + _impl_.u_aero_ = 0; +} +inline double VehicleCarbon::_internal_u_aero() const { + return _impl_.u_aero_; +} +inline double VehicleCarbon::u_aero() const { + // @@protoc_insertion_point(field_get:city.person.v2.VehicleCarbon.u_aero) + return _internal_u_aero(); +} +inline void VehicleCarbon::_internal_set_u_aero(double value) { + + _impl_.u_aero_ = value; +} +inline void VehicleCarbon::set_u_aero(double value) { + _internal_set_u_aero(value); + // @@protoc_insertion_point(field_set:city.person.v2.VehicleCarbon.u_aero) +} + +// double c_d = 8 [json_name = "cD"]; +inline void VehicleCarbon::clear_c_d() { + _impl_.c_d_ = 0; +} +inline double VehicleCarbon::_internal_c_d() const { + return _impl_.c_d_; +} +inline double VehicleCarbon::c_d() const { + // @@protoc_insertion_point(field_get:city.person.v2.VehicleCarbon.c_d) + return _internal_c_d(); +} +inline void VehicleCarbon::_internal_set_c_d(double value) { + + _impl_.c_d_ = value; +} +inline void VehicleCarbon::set_c_d(double value) { + _internal_set_c_d(value); + // @@protoc_insertion_point(field_set:city.person.v2.VehicleCarbon.c_d) +} + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ + +// @@protoc_insertion_point(namespace_scope) + +} // namespace v2 +} // namespace person +} // namespace city + +// @@protoc_insertion_point(global_scope) + +#include +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_city_2fperson_2fv2_2fcarbon_2eproto diff --git a/cpp/city/person/v2/vehicle.pb.cc b/cpp/city/person/v2/vehicle.pb.cc index 357736b5..324b37ca 100644 --- a/cpp/city/person/v2/vehicle.pb.cc +++ b/cpp/city/person/v2/vehicle.pb.cc @@ -77,6 +77,7 @@ PROTOBUF_CONSTEXPR VehicleRuntime::VehicleRuntime( , /*decltype(_impl_.base_)*/nullptr , /*decltype(_impl_.lc_)*/nullptr , /*decltype(_impl_.action_)*/nullptr + , /*decltype(_impl_.carbon_)*/nullptr , /*decltype(_impl_.running_distance_)*/0 , /*decltype(_impl_.departure_time_)*/0 , /*decltype(_impl_.eta_)*/0 @@ -194,6 +195,7 @@ const uint32_t TableStruct_city_2fperson_2fv2_2fvehicle_2eproto::offsets[] PROTO PROTOBUF_FIELD_OFFSET(::city::person::v2::VehicleRuntime, _impl_.departure_time_), PROTOBUF_FIELD_OFFSET(::city::person::v2::VehicleRuntime, _impl_.eta_), PROTOBUF_FIELD_OFFSET(::city::person::v2::VehicleRuntime, _impl_.eta_free_flow_), + PROTOBUF_FIELD_OFFSET(::city::person::v2::VehicleRuntime, _impl_.carbon_), ~0u, 0, 1, @@ -202,6 +204,7 @@ const uint32_t TableStruct_city_2fperson_2fv2_2fvehicle_2eproto::offsets[] PROTO ~0u, ~0u, ~0u, + 2, ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::city::person::v2::ObservedVehicle, _internal_metadata_), ~0u, // no _extensions_ @@ -238,10 +241,10 @@ static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protode { 0, -1, -1, sizeof(::city::person::v2::LC)}, { 10, 20, -1, sizeof(::city::person::v2::VehicleAction)}, { 24, -1, -1, sizeof(::city::person::v2::VehicleRouteAction)}, - { 32, 46, -1, sizeof(::city::person::v2::VehicleRuntime)}, - { 54, -1, -1, sizeof(::city::person::v2::ObservedVehicle)}, - { 64, -1, -1, sizeof(::city::person::v2::ObservedLane)}, - { 74, -1, -1, sizeof(::city::person::v2::VehicleEnv)}, + { 32, 47, -1, sizeof(::city::person::v2::VehicleRuntime)}, + { 56, -1, -1, sizeof(::city::person::v2::ObservedVehicle)}, + { 66, -1, -1, sizeof(::city::person::v2::ObservedLane)}, + { 76, -1, -1, sizeof(::city::person::v2::VehicleEnv)}, }; static const ::_pb::Message* const file_default_instances[] = { @@ -256,68 +259,72 @@ static const ::_pb::Message* const file_default_instances[] = { const char descriptor_table_protodef_city_2fperson_2fv2_2fvehicle_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = "\n\034city/person/v2/vehicle.proto\022\016city.per" - "son.v2\032\033city/person/v2/motion.proto\032\035cit" - "y/routing/v2/routing.proto\"\204\001\n\002LC\022$\n\016sha" - "dow_lane_id\030\001 \001(\005R\014shadowLaneId\022\031\n\010shado" - "w_s\030\002 \001(\001R\007shadowS\022\024\n\005angle\030\003 \001(\001R\005angle" - "\022\'\n\017completed_ratio\030\004 \001(\001R\016completedRati" - "o\"\177\n\rVehicleAction\022\016\n\002id\030\004 \001(\005R\002id\022\020\n\003ac" - "c\030\001 \001(\001R\003acc\022%\n\014lc_target_id\030\002 \001(\005H\000R\nlc" - "TargetId\210\001\001\022\024\n\005angle\030\003 \001(\001R\005angleB\017\n\r_lc" - "_target_id\"X\n\022VehicleRouteAction\022\016\n\002id\030\001" - " \001(\005R\002id\0222\n\007journey\030\002 \001(\0132\030.city.routing" - ".v2.JourneyR\007journey\"\353\002\n\016VehicleRuntime\022" - "0\n\004base\030\001 \001(\0132\034.city.person.v2.PersonMot" - "ionR\004base\022\'\n\002lc\030\004 \001(\0132\022.city.person.v2.L" - "CH\000R\002lc\210\001\001\022:\n\006action\030\005 \001(\0132\035.city.person" - ".v2.VehicleActionH\001R\006action\210\001\001\022)\n\020runnin" - "g_distance\030\006 \001(\001R\017runningDistance\022(\n\020num" - "_going_astray\030\007 \001(\005R\016numGoingAstray\022%\n\016d" - "eparture_time\030\010 \001(\001R\rdepartureTime\022\020\n\003et" - "a\030\t \001(\001R\003eta\022\"\n\reta_free_flow\030\n \001(\001R\013eta" - "FreeFlowB\005\n\003_lcB\t\n\007_action\"\301\001\n\017ObservedV" - "ehicle\022\016\n\002id\030\001 \001(\005R\002id\0224\n\006motion\030\002 \001(\0132\034" - ".city.person.v2.PersonMotionR\006motion\022+\n\021" - "relative_distance\030\003 \001(\001R\020relativeDistanc" - "e\022;\n\010relation\030\004 \001(\0162\037.city.person.v2.Veh" - "icleRelationR\010relation\"\257\001\n\014ObservedLane\022" - "\016\n\002id\030\001 \001(\005R\002id\022 \n\013restriction\030\002 \001(\010R\013re" - "striction\022;\n\013light_state\030\003 \001(\0162\032.city.pe" - "rson.v2.LightStateR\nlightState\0220\n\024light_" - "remaining_time\030\004 \001(\001R\022lightRemainingTime" - "\"\235\002\n\nVehicleEnv\022\016\n\002id\030\001 \001(\005R\002id\0228\n\007runti" - "me\030\002 \001(\0132\036.city.person.v2.VehicleRuntime" - "R\007runtime\0222\n\007journey\030\003 \001(\0132\030.city.routin" - "g.v2.JourneyR\007journey\022L\n\021observed_vehicl" - "es\030\004 \003(\0132\037.city.person.v2.ObservedVehicl" - "eR\020observedVehicles\022C\n\016observed_lanes\030\005 " - "\003(\0132\034.city.person.v2.ObservedLaneR\robser" - "vedLanes*\273\002\n\017VehicleRelation\022 \n\034VEHICLE_" - "RELATION_UNSPECIFIED\020\000\022\032\n\026VEHICLE_RELATI" - "ON_AHEAD\020\001\022\033\n\027VEHICLE_RELATION_BEHIND\020\002\022" - "!\n\035VEHICLE_RELATION_SHADOW_AHEAD\020\003\022\"\n\036VE" - "HICLE_RELATION_SHADOW_BEHIND\020\004\022\037\n\033VEHICL" - "E_RELATION_LEFT_AHEAD\020\005\022 \n\034VEHICLE_RELAT" - "ION_RIGHT_AHEAD\020\006\022 \n\034VEHICLE_RELATION_LE" - "FT_BEHIND\020\007\022!\n\035VEHICLE_RELATION_RIGHT_BE" - "HIND\020\010*m\n\nLightState\022\033\n\027LIGHT_STATE_UNSP" - "ECIFIED\020\000\022\023\n\017LIGHT_STATE_RED\020\001\022\025\n\021LIGHT_" - "STATE_GREEN\020\002\022\026\n\022LIGHT_STATE_YELLOW\020\003B\265\001" - "\n\022com.city.person.v2B\014VehicleProtoP\001Z7gi" - "t.fiblab.net/sim/protos/v2/go/city/perso" - "n/v2;personv2\242\002\003CPX\252\002\016City.Person.V2\312\002\016C" - "ity\\Person\\V2\342\002\032City\\Person\\V2\\GPBMetada" - "ta\352\002\020City::Person::V2b\006proto3" + "son.v2\032\033city/person/v2/carbon.proto\032\033cit" + "y/person/v2/motion.proto\032\035city/routing/v" + "2/routing.proto\"\204\001\n\002LC\022$\n\016shadow_lane_id" + "\030\001 \001(\005R\014shadowLaneId\022\031\n\010shadow_s\030\002 \001(\001R\007" + "shadowS\022\024\n\005angle\030\003 \001(\001R\005angle\022\'\n\017complet" + "ed_ratio\030\004 \001(\001R\016completedRatio\"\177\n\rVehicl" + "eAction\022\016\n\002id\030\004 \001(\005R\002id\022\020\n\003acc\030\001 \001(\001R\003ac" + "c\022%\n\014lc_target_id\030\002 \001(\005H\000R\nlcTargetId\210\001\001" + "\022\024\n\005angle\030\003 \001(\001R\005angleB\017\n\r_lc_target_id\"" + "X\n\022VehicleRouteAction\022\016\n\002id\030\001 \001(\005R\002id\0222\n" + "\007journey\030\002 \001(\0132\030.city.routing.v2.Journey" + "R\007journey\"\262\003\n\016VehicleRuntime\0220\n\004base\030\001 \001" + "(\0132\034.city.person.v2.PersonMotionR\004base\022\'" + "\n\002lc\030\004 \001(\0132\022.city.person.v2.LCH\000R\002lc\210\001\001\022" + ":\n\006action\030\005 \001(\0132\035.city.person.v2.Vehicle" + "ActionH\001R\006action\210\001\001\022)\n\020running_distance\030" + "\006 \001(\001R\017runningDistance\022(\n\020num_going_astr" + "ay\030\007 \001(\005R\016numGoingAstray\022%\n\016departure_ti" + "me\030\010 \001(\001R\rdepartureTime\022\020\n\003eta\030\t \001(\001R\003et" + "a\022\"\n\reta_free_flow\030\n \001(\001R\013etaFreeFlow\022:\n" + "\006carbon\030\013 \001(\0132\035.city.person.v2.VehicleCa" + "rbonH\002R\006carbon\210\001\001B\005\n\003_lcB\t\n\007_actionB\t\n\007_" + "carbon\"\301\001\n\017ObservedVehicle\022\016\n\002id\030\001 \001(\005R\002" + "id\0224\n\006motion\030\002 \001(\0132\034.city.person.v2.Pers" + "onMotionR\006motion\022+\n\021relative_distance\030\003 " + "\001(\001R\020relativeDistance\022;\n\010relation\030\004 \001(\0162" + "\037.city.person.v2.VehicleRelationR\010relati" + "on\"\257\001\n\014ObservedLane\022\016\n\002id\030\001 \001(\005R\002id\022 \n\013r" + "estriction\030\002 \001(\010R\013restriction\022;\n\013light_s" + "tate\030\003 \001(\0162\032.city.person.v2.LightStateR\n" + "lightState\0220\n\024light_remaining_time\030\004 \001(\001" + "R\022lightRemainingTime\"\235\002\n\nVehicleEnv\022\016\n\002i" + "d\030\001 \001(\005R\002id\0228\n\007runtime\030\002 \001(\0132\036.city.pers" + "on.v2.VehicleRuntimeR\007runtime\0222\n\007journey" + "\030\003 \001(\0132\030.city.routing.v2.JourneyR\007journe" + "y\022L\n\021observed_vehicles\030\004 \003(\0132\037.city.pers" + "on.v2.ObservedVehicleR\020observedVehicles\022" + "C\n\016observed_lanes\030\005 \003(\0132\034.city.person.v2" + ".ObservedLaneR\robservedLanes*\273\002\n\017Vehicle" + "Relation\022 \n\034VEHICLE_RELATION_UNSPECIFIED" + "\020\000\022\032\n\026VEHICLE_RELATION_AHEAD\020\001\022\033\n\027VEHICL" + "E_RELATION_BEHIND\020\002\022!\n\035VEHICLE_RELATION_" + "SHADOW_AHEAD\020\003\022\"\n\036VEHICLE_RELATION_SHADO" + "W_BEHIND\020\004\022\037\n\033VEHICLE_RELATION_LEFT_AHEA" + "D\020\005\022 \n\034VEHICLE_RELATION_RIGHT_AHEAD\020\006\022 \n" + "\034VEHICLE_RELATION_LEFT_BEHIND\020\007\022!\n\035VEHIC" + "LE_RELATION_RIGHT_BEHIND\020\010*m\n\nLightState" + "\022\033\n\027LIGHT_STATE_UNSPECIFIED\020\000\022\023\n\017LIGHT_S" + "TATE_RED\020\001\022\025\n\021LIGHT_STATE_GREEN\020\002\022\026\n\022LIG" + "HT_STATE_YELLOW\020\003B\265\001\n\022com.city.person.v2" + "B\014VehicleProtoP\001Z7git.fiblab.net/sim/pro" + "tos/v2/go/city/person/v2;personv2\242\002\003CPX\252" + "\002\016City.Person.V2\312\002\016City\\Person\\V2\342\002\032City" + "\\Person\\V2\\GPBMetadata\352\002\020City::Person::V" + "2b\006proto3" ; -static const ::_pbi::DescriptorTable* const descriptor_table_city_2fperson_2fv2_2fvehicle_2eproto_deps[2] = { +static const ::_pbi::DescriptorTable* const descriptor_table_city_2fperson_2fv2_2fvehicle_2eproto_deps[3] = { + &::descriptor_table_city_2fperson_2fv2_2fcarbon_2eproto, &::descriptor_table_city_2fperson_2fv2_2fmotion_2eproto, &::descriptor_table_city_2frouting_2fv2_2frouting_2eproto, }; static ::_pbi::once_flag descriptor_table_city_2fperson_2fv2_2fvehicle_2eproto_once; const ::_pbi::DescriptorTable descriptor_table_city_2fperson_2fv2_2fvehicle_2eproto = { - false, false, 2109, descriptor_table_protodef_city_2fperson_2fv2_2fvehicle_2eproto, + false, false, 2209, descriptor_table_protodef_city_2fperson_2fv2_2fvehicle_2eproto, "city/person/v2/vehicle.proto", - &descriptor_table_city_2fperson_2fv2_2fvehicle_2eproto_once, descriptor_table_city_2fperson_2fv2_2fvehicle_2eproto_deps, 2, 7, + &descriptor_table_city_2fperson_2fv2_2fvehicle_2eproto_once, descriptor_table_city_2fperson_2fv2_2fvehicle_2eproto_deps, 3, 7, schemas, file_default_instances, TableStruct_city_2fperson_2fv2_2fvehicle_2eproto::offsets, file_level_metadata_city_2fperson_2fv2_2fvehicle_2eproto, file_level_enum_descriptors_city_2fperson_2fv2_2fvehicle_2eproto, file_level_service_descriptors_city_2fperson_2fv2_2fvehicle_2eproto, @@ -1205,6 +1212,10 @@ class VehicleRuntime::_Internal { static void set_has_action(HasBits* has_bits) { (*has_bits)[0] |= 2u; } + static const ::city::person::v2::VehicleCarbon& carbon(const VehicleRuntime* msg); + static void set_has_carbon(HasBits* has_bits) { + (*has_bits)[0] |= 4u; + } }; const ::city::person::v2::PersonMotion& @@ -1219,12 +1230,20 @@ const ::city::person::v2::VehicleAction& VehicleRuntime::_Internal::action(const VehicleRuntime* msg) { return *msg->_impl_.action_; } +const ::city::person::v2::VehicleCarbon& +VehicleRuntime::_Internal::carbon(const VehicleRuntime* msg) { + return *msg->_impl_.carbon_; +} void VehicleRuntime::clear_base() { if (GetArenaForAllocation() == nullptr && _impl_.base_ != nullptr) { delete _impl_.base_; } _impl_.base_ = nullptr; } +void VehicleRuntime::clear_carbon() { + if (_impl_.carbon_ != nullptr) _impl_.carbon_->Clear(); + _impl_._has_bits_[0] &= ~0x00000004u; +} VehicleRuntime::VehicleRuntime(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned) : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { @@ -1240,6 +1259,7 @@ VehicleRuntime::VehicleRuntime(const VehicleRuntime& from) , decltype(_impl_.base_){nullptr} , decltype(_impl_.lc_){nullptr} , decltype(_impl_.action_){nullptr} + , decltype(_impl_.carbon_){nullptr} , decltype(_impl_.running_distance_){} , decltype(_impl_.departure_time_){} , decltype(_impl_.eta_){} @@ -1256,6 +1276,9 @@ VehicleRuntime::VehicleRuntime(const VehicleRuntime& from) if (from._internal_has_action()) { _this->_impl_.action_ = new ::city::person::v2::VehicleAction(*from._impl_.action_); } + if (from._internal_has_carbon()) { + _this->_impl_.carbon_ = new ::city::person::v2::VehicleCarbon(*from._impl_.carbon_); + } ::memcpy(&_impl_.running_distance_, &from._impl_.running_distance_, static_cast(reinterpret_cast(&_impl_.num_going_astray_) - reinterpret_cast(&_impl_.running_distance_)) + sizeof(_impl_.num_going_astray_)); @@ -1272,6 +1295,7 @@ inline void VehicleRuntime::SharedCtor( , decltype(_impl_.base_){nullptr} , decltype(_impl_.lc_){nullptr} , decltype(_impl_.action_){nullptr} + , decltype(_impl_.carbon_){nullptr} , decltype(_impl_.running_distance_){0} , decltype(_impl_.departure_time_){0} , decltype(_impl_.eta_){0} @@ -1294,6 +1318,7 @@ inline void VehicleRuntime::SharedDtor() { if (this != internal_default_instance()) delete _impl_.base_; if (this != internal_default_instance()) delete _impl_.lc_; if (this != internal_default_instance()) delete _impl_.action_; + if (this != internal_default_instance()) delete _impl_.carbon_; } void VehicleRuntime::SetCachedSize(int size) const { @@ -1311,7 +1336,7 @@ void VehicleRuntime::Clear() { } _impl_.base_ = nullptr; cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { + if (cached_has_bits & 0x00000007u) { if (cached_has_bits & 0x00000001u) { GOOGLE_DCHECK(_impl_.lc_ != nullptr); _impl_.lc_->Clear(); @@ -1320,6 +1345,10 @@ void VehicleRuntime::Clear() { GOOGLE_DCHECK(_impl_.action_ != nullptr); _impl_.action_->Clear(); } + if (cached_has_bits & 0x00000004u) { + GOOGLE_DCHECK(_impl_.carbon_ != nullptr); + _impl_.carbon_->Clear(); + } } ::memset(&_impl_.running_distance_, 0, static_cast( reinterpret_cast(&_impl_.num_going_astray_) - @@ -1399,6 +1428,14 @@ const char* VehicleRuntime::_InternalParse(const char* ptr, ::_pbi::ParseContext } else goto handle_unusual; continue; + // optional .city.person.v2.VehicleCarbon carbon = 11 [json_name = "carbon"]; + case 11: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 90)) { + ptr = ctx->ParseMessage(_internal_mutable_carbon(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; default: goto handle_unusual; } // switch @@ -1496,6 +1533,13 @@ uint8_t* VehicleRuntime::_InternalSerialize( target = ::_pbi::WireFormatLite::WriteDoubleToArray(10, this->_internal_eta_free_flow(), target); } + // optional .city.person.v2.VehicleCarbon carbon = 11 [json_name = "carbon"]; + if (_internal_has_carbon()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(11, _Internal::carbon(this), + _Internal::carbon(this).GetCachedSize(), target, stream); + } + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); @@ -1520,7 +1564,7 @@ size_t VehicleRuntime::ByteSizeLong() const { } cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { + if (cached_has_bits & 0x00000007u) { // optional .city.person.v2.LC lc = 4 [json_name = "lc"]; if (cached_has_bits & 0x00000001u) { total_size += 1 + @@ -1535,6 +1579,13 @@ size_t VehicleRuntime::ByteSizeLong() const { *_impl_.action_); } + // optional .city.person.v2.VehicleCarbon carbon = 11 [json_name = "carbon"]; + if (cached_has_bits & 0x00000004u) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.carbon_); + } + } // double running_distance = 6 [json_name = "runningDistance"]; static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); @@ -1600,7 +1651,7 @@ void VehicleRuntime::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const : from._internal_base()); } cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { + if (cached_has_bits & 0x00000007u) { if (cached_has_bits & 0x00000001u) { _this->_internal_mutable_lc()->::city::person::v2::LC::MergeFrom( from._internal_lc()); @@ -1609,6 +1660,10 @@ void VehicleRuntime::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const : _this->_internal_mutable_action()->::city::person::v2::VehicleAction::MergeFrom( from._internal_action()); } + if (cached_has_bits & 0x00000004u) { + _this->_internal_mutable_carbon()->::city::person::v2::VehicleCarbon::MergeFrom( + from._internal_carbon()); + } } static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); double tmp_running_distance = from._internal_running_distance(); diff --git a/cpp/city/person/v2/vehicle.pb.h b/cpp/city/person/v2/vehicle.pb.h index 50eed467..efe9ddfb 100644 --- a/cpp/city/person/v2/vehicle.pb.h +++ b/cpp/city/person/v2/vehicle.pb.h @@ -31,6 +31,7 @@ #include // IWYU pragma: export #include #include +#include "city/person/v2/carbon.pb.h" #include "city/person/v2/motion.pb.h" #include "city/routing/v2/routing.pb.h" // @@protoc_insertion_point(includes) @@ -807,6 +808,7 @@ class VehicleRuntime final : kBaseFieldNumber = 1, kLcFieldNumber = 4, kActionFieldNumber = 5, + kCarbonFieldNumber = 11, kRunningDistanceFieldNumber = 6, kDepartureTimeFieldNumber = 8, kEtaFieldNumber = 9, @@ -867,6 +869,24 @@ class VehicleRuntime final : ::city::person::v2::VehicleAction* action); ::city::person::v2::VehicleAction* unsafe_arena_release_action(); + // optional .city.person.v2.VehicleCarbon carbon = 11 [json_name = "carbon"]; + bool has_carbon() const; + private: + bool _internal_has_carbon() const; + public: + void clear_carbon(); + const ::city::person::v2::VehicleCarbon& carbon() const; + PROTOBUF_NODISCARD ::city::person::v2::VehicleCarbon* release_carbon(); + ::city::person::v2::VehicleCarbon* mutable_carbon(); + void set_allocated_carbon(::city::person::v2::VehicleCarbon* carbon); + private: + const ::city::person::v2::VehicleCarbon& _internal_carbon() const; + ::city::person::v2::VehicleCarbon* _internal_mutable_carbon(); + public: + void unsafe_arena_set_allocated_carbon( + ::city::person::v2::VehicleCarbon* carbon); + ::city::person::v2::VehicleCarbon* unsafe_arena_release_carbon(); + // double running_distance = 6 [json_name = "runningDistance"]; void clear_running_distance(); double running_distance() const; @@ -925,6 +945,7 @@ class VehicleRuntime final : ::city::person::v2::PersonMotion* base_; ::city::person::v2::LC* lc_; ::city::person::v2::VehicleAction* action_; + ::city::person::v2::VehicleCarbon* carbon_; double running_distance_; double departure_time_; double eta_; @@ -2194,6 +2215,93 @@ inline void VehicleRuntime::set_eta_free_flow(double value) { // @@protoc_insertion_point(field_set:city.person.v2.VehicleRuntime.eta_free_flow) } +// optional .city.person.v2.VehicleCarbon carbon = 11 [json_name = "carbon"]; +inline bool VehicleRuntime::_internal_has_carbon() const { + bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; + PROTOBUF_ASSUME(!value || _impl_.carbon_ != nullptr); + return value; +} +inline bool VehicleRuntime::has_carbon() const { + return _internal_has_carbon(); +} +inline const ::city::person::v2::VehicleCarbon& VehicleRuntime::_internal_carbon() const { + const ::city::person::v2::VehicleCarbon* p = _impl_.carbon_; + return p != nullptr ? *p : reinterpret_cast( + ::city::person::v2::_VehicleCarbon_default_instance_); +} +inline const ::city::person::v2::VehicleCarbon& VehicleRuntime::carbon() const { + // @@protoc_insertion_point(field_get:city.person.v2.VehicleRuntime.carbon) + return _internal_carbon(); +} +inline void VehicleRuntime::unsafe_arena_set_allocated_carbon( + ::city::person::v2::VehicleCarbon* carbon) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.carbon_); + } + _impl_.carbon_ = carbon; + if (carbon) { + _impl_._has_bits_[0] |= 0x00000004u; + } else { + _impl_._has_bits_[0] &= ~0x00000004u; + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:city.person.v2.VehicleRuntime.carbon) +} +inline ::city::person::v2::VehicleCarbon* VehicleRuntime::release_carbon() { + _impl_._has_bits_[0] &= ~0x00000004u; + ::city::person::v2::VehicleCarbon* temp = _impl_.carbon_; + _impl_.carbon_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::city::person::v2::VehicleCarbon* VehicleRuntime::unsafe_arena_release_carbon() { + // @@protoc_insertion_point(field_release:city.person.v2.VehicleRuntime.carbon) + _impl_._has_bits_[0] &= ~0x00000004u; + ::city::person::v2::VehicleCarbon* temp = _impl_.carbon_; + _impl_.carbon_ = nullptr; + return temp; +} +inline ::city::person::v2::VehicleCarbon* VehicleRuntime::_internal_mutable_carbon() { + _impl_._has_bits_[0] |= 0x00000004u; + if (_impl_.carbon_ == nullptr) { + auto* p = CreateMaybeMessage<::city::person::v2::VehicleCarbon>(GetArenaForAllocation()); + _impl_.carbon_ = p; + } + return _impl_.carbon_; +} +inline ::city::person::v2::VehicleCarbon* VehicleRuntime::mutable_carbon() { + ::city::person::v2::VehicleCarbon* _msg = _internal_mutable_carbon(); + // @@protoc_insertion_point(field_mutable:city.person.v2.VehicleRuntime.carbon) + return _msg; +} +inline void VehicleRuntime::set_allocated_carbon(::city::person::v2::VehicleCarbon* carbon) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.carbon_); + } + if (carbon) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena( + reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(carbon)); + if (message_arena != submessage_arena) { + carbon = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, carbon, submessage_arena); + } + _impl_._has_bits_[0] |= 0x00000004u; + } else { + _impl_._has_bits_[0] &= ~0x00000004u; + } + _impl_.carbon_ = carbon; + // @@protoc_insertion_point(field_set_allocated:city.person.v2.VehicleRuntime.carbon) +} + // ------------------------------------------------------------------- // ObservedVehicle diff --git a/doc/index.html b/doc/index.html index 7cffe70e..bfb5c1bc 100644 --- a/doc/index.html +++ b/doc/index.html @@ -1279,6 +1279,21 @@

Table of Contents

+
  • + city/person/v2/carbon.proto + +
  • + +
  • city/routing/v2/routing.proto
      @@ -9280,6 +9295,93 @@

      TrafficLightService

      +
      +

      city/person/v2/carbon.proto

      Top +
      +

      + + +

      VehicleCarbon

      +

      车辆瞬时碳排放信息

      Vehicle instantaneous carbon emission information

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      FieldTypeLabelDescription
      idint32

      ID

      dsdouble

      delta distance (m)

      vdouble

      vehicle speed (m/s)

      adouble

      vehicle acceleration (m/s^2)

      u_accdouble

      energy for acceleration (J)

      u_rolldouble

      energy for rolling resistance (J)

      u_aerodouble

      energy for air resistance (J)

      c_ddouble

      C_D: drag coefficient

      + + + + + + + + + + + + +

      city/routing/v2/routing.proto

      Top
      @@ -11155,6 +11257,14 @@

      VehicleRuntime

      estimated arrival time under free flow

      + + carbon + VehicleCarbon + optional +

      碳排放信息 +carbon emission information

      + + diff --git a/es/city/person/v2/carbon_pb.d.ts b/es/city/person/v2/carbon_pb.d.ts new file mode 100644 index 00000000..b8998e8e --- /dev/null +++ b/es/city/person/v2/carbon_pb.d.ts @@ -0,0 +1,86 @@ +// @generated by protoc-gen-es v1.10.0 +// @generated from file city/person/v2/carbon.proto (package city.person.v2, syntax proto3) +/* eslint-disable */ +// @ts-nocheck + +import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; +import { Message, proto3 } from "@bufbuild/protobuf"; + +/** + * 车辆瞬时碳排放信息 + * Vehicle instantaneous carbon emission information + * + * @generated from message city.person.v2.VehicleCarbon + */ +export declare class VehicleCarbon extends Message { + /** + * ID + * + * @generated from field: int32 id = 1; + */ + id: number; + + /** + * delta distance (m) + * + * @generated from field: double ds = 2; + */ + ds: number; + + /** + * vehicle speed (m/s) + * + * @generated from field: double v = 3; + */ + v: number; + + /** + * vehicle acceleration (m/s^2) + * + * @generated from field: double a = 4; + */ + a: number; + + /** + * energy for acceleration (J) + * + * @generated from field: double u_acc = 5; + */ + uAcc: number; + + /** + * energy for rolling resistance (J) + * + * @generated from field: double u_roll = 6; + */ + uRoll: number; + + /** + * energy for air resistance (J) + * + * @generated from field: double u_aero = 7; + */ + uAero: number; + + /** + * C_D: drag coefficient + * + * @generated from field: double c_d = 8; + */ + cD: number; + + constructor(data?: PartialMessage); + + static readonly runtime: typeof proto3; + static readonly typeName = "city.person.v2.VehicleCarbon"; + static readonly fields: FieldList; + + static fromBinary(bytes: Uint8Array, options?: Partial): VehicleCarbon; + + static fromJson(jsonValue: JsonValue, options?: Partial): VehicleCarbon; + + static fromJsonString(jsonString: string, options?: Partial): VehicleCarbon; + + static equals(a: VehicleCarbon | PlainMessage | undefined, b: VehicleCarbon | PlainMessage | undefined): boolean; +} + diff --git a/es/city/person/v2/carbon_pb.js b/es/city/person/v2/carbon_pb.js new file mode 100644 index 00000000..5886b47e --- /dev/null +++ b/es/city/person/v2/carbon_pb.js @@ -0,0 +1,27 @@ +// @generated by protoc-gen-es v1.10.0 +// @generated from file city/person/v2/carbon.proto (package city.person.v2, syntax proto3) +/* eslint-disable */ +// @ts-nocheck + +import { proto3 } from "@bufbuild/protobuf"; + +/** + * 车辆瞬时碳排放信息 + * Vehicle instantaneous carbon emission information + * + * @generated from message city.person.v2.VehicleCarbon + */ +export const VehicleCarbon = /*@__PURE__*/ proto3.makeMessageType( + "city.person.v2.VehicleCarbon", + () => [ + { no: 1, name: "id", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 2, name: "ds", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 3, name: "v", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 4, name: "a", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 5, name: "u_acc", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 6, name: "u_roll", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 7, name: "u_aero", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 8, name: "c_d", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + ], +); + diff --git a/es/city/person/v2/vehicle_pb.d.ts b/es/city/person/v2/vehicle_pb.d.ts index e17c0419..53d615a9 100644 --- a/es/city/person/v2/vehicle_pb.d.ts +++ b/es/city/person/v2/vehicle_pb.d.ts @@ -7,6 +7,7 @@ import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialM import { Message, proto3 } from "@bufbuild/protobuf"; import type { Journey } from "../../routing/v2/routing_pb.js"; import type { PersonMotion } from "./motion_pb.js"; +import type { VehicleCarbon } from "./carbon_pb.js"; /** * @generated from enum city.person.v2.VehicleRelation @@ -339,6 +340,14 @@ export declare class VehicleRuntime extends Message { */ etaFreeFlow: number; + /** + * 碳排放信息 + * carbon emission information + * + * @generated from field: optional city.person.v2.VehicleCarbon carbon = 11; + */ + carbon?: VehicleCarbon; + constructor(data?: PartialMessage); static readonly runtime: typeof proto3; diff --git a/es/city/person/v2/vehicle_pb.js b/es/city/person/v2/vehicle_pb.js index 671fea22..ef6e8e47 100644 --- a/es/city/person/v2/vehicle_pb.js +++ b/es/city/person/v2/vehicle_pb.js @@ -6,6 +6,7 @@ import { proto3 } from "@bufbuild/protobuf"; import { Journey } from "../../routing/v2/routing_pb.js"; import { PersonMotion } from "./motion_pb.js"; +import { VehicleCarbon } from "./carbon_pb.js"; /** * @generated from enum city.person.v2.VehicleRelation @@ -101,6 +102,7 @@ export const VehicleRuntime = /*@__PURE__*/ proto3.makeMessageType( { no: 8, name: "departure_time", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, { no: 9, name: "eta", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, { no: 10, name: "eta_free_flow", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 11, name: "carbon", kind: "message", T: VehicleCarbon, opt: true }, ], ); diff --git a/go/city/person/v2/carbon.pb.go b/go/city/person/v2/carbon.pb.go new file mode 100644 index 00000000..a1b63973 --- /dev/null +++ b/go/city/person/v2/carbon.pb.go @@ -0,0 +1,211 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.35.1 +// protoc (unknown) +// source: city/person/v2/carbon.proto + +package personv2 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// 车辆瞬时碳排放信息 +// Vehicle instantaneous carbon emission information +type VehicleCarbon struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ID + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty" bson:"id" db:"id" yaml:"id"` + // delta distance (m) + Ds float64 `protobuf:"fixed64,2,opt,name=ds,proto3" json:"ds,omitempty" bson:"ds" db:"ds" yaml:"ds"` + // vehicle speed (m/s) + V float64 `protobuf:"fixed64,3,opt,name=v,proto3" json:"v,omitempty" bson:"v" db:"v" yaml:"v"` + // vehicle acceleration (m/s^2) + A float64 `protobuf:"fixed64,4,opt,name=a,proto3" json:"a,omitempty" bson:"a" db:"a" yaml:"a"` + // energy for acceleration (J) + UAcc float64 `protobuf:"fixed64,5,opt,name=u_acc,json=uAcc,proto3" json:"u_acc,omitempty" bson:"u_acc" db:"u_acc" yaml:"u_acc"` + // energy for rolling resistance (J) + URoll float64 `protobuf:"fixed64,6,opt,name=u_roll,json=uRoll,proto3" json:"u_roll,omitempty" bson:"u_roll" db:"u_roll" yaml:"u_roll"` + // energy for air resistance (J) + UAero float64 `protobuf:"fixed64,7,opt,name=u_aero,json=uAero,proto3" json:"u_aero,omitempty" bson:"u_aero" db:"u_aero" yaml:"u_aero"` + // C_D: drag coefficient + CD float64 `protobuf:"fixed64,8,opt,name=c_d,json=cD,proto3" json:"c_d,omitempty" bson:"cd" db:"cd" yaml:"cd"` +} + +func (x *VehicleCarbon) Reset() { + *x = VehicleCarbon{} + mi := &file_city_person_v2_carbon_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *VehicleCarbon) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VehicleCarbon) ProtoMessage() {} + +func (x *VehicleCarbon) ProtoReflect() protoreflect.Message { + mi := &file_city_person_v2_carbon_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VehicleCarbon.ProtoReflect.Descriptor instead. +func (*VehicleCarbon) Descriptor() ([]byte, []int) { + return file_city_person_v2_carbon_proto_rawDescGZIP(), []int{0} +} + +func (x *VehicleCarbon) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *VehicleCarbon) GetDs() float64 { + if x != nil { + return x.Ds + } + return 0 +} + +func (x *VehicleCarbon) GetV() float64 { + if x != nil { + return x.V + } + return 0 +} + +func (x *VehicleCarbon) GetA() float64 { + if x != nil { + return x.A + } + return 0 +} + +func (x *VehicleCarbon) GetUAcc() float64 { + if x != nil { + return x.UAcc + } + return 0 +} + +func (x *VehicleCarbon) GetURoll() float64 { + if x != nil { + return x.URoll + } + return 0 +} + +func (x *VehicleCarbon) GetUAero() float64 { + if x != nil { + return x.UAero + } + return 0 +} + +func (x *VehicleCarbon) GetCD() float64 { + if x != nil { + return x.CD + } + return 0 +} + +var File_city_person_v2_carbon_proto protoreflect.FileDescriptor + +var file_city_person_v2_carbon_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x76, 0x32, + 0x2f, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x63, + 0x69, 0x74, 0x79, 0x2e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x22, 0x9f, 0x01, + 0x0a, 0x0d, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x0e, 0x0a, 0x02, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, 0x64, 0x73, 0x12, + 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, + 0x01, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x61, 0x12, 0x13, 0x0a, 0x05, 0x75, + 0x5f, 0x61, 0x63, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x75, 0x41, 0x63, 0x63, + 0x12, 0x15, 0x0a, 0x06, 0x75, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x05, 0x75, 0x52, 0x6f, 0x6c, 0x6c, 0x12, 0x15, 0x0a, 0x06, 0x75, 0x5f, 0x61, 0x65, 0x72, + 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x75, 0x41, 0x65, 0x72, 0x6f, 0x12, 0x0f, + 0x0a, 0x03, 0x63, 0x5f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, 0x63, 0x44, 0x42, + 0xb4, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x42, 0x0b, 0x43, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x69, 0x62, 0x6c, 0x61, + 0x62, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x73, 0x69, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, + 0x2f, 0x76, 0x32, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x2f, 0x76, 0x32, 0x3b, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x76, 0x32, 0xa2, 0x02, + 0x03, 0x43, 0x50, 0x58, 0xaa, 0x02, 0x0e, 0x43, 0x69, 0x74, 0x79, 0x2e, 0x50, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x0e, 0x43, 0x69, 0x74, 0x79, 0x5c, 0x50, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x5c, 0x56, 0x32, 0xe2, 0x02, 0x1a, 0x43, 0x69, 0x74, 0x79, 0x5c, 0x50, 0x65, + 0x72, 0x73, 0x6f, 0x6e, 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x10, 0x43, 0x69, 0x74, 0x79, 0x3a, 0x3a, 0x50, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_city_person_v2_carbon_proto_rawDescOnce sync.Once + file_city_person_v2_carbon_proto_rawDescData = file_city_person_v2_carbon_proto_rawDesc +) + +func file_city_person_v2_carbon_proto_rawDescGZIP() []byte { + file_city_person_v2_carbon_proto_rawDescOnce.Do(func() { + file_city_person_v2_carbon_proto_rawDescData = protoimpl.X.CompressGZIP(file_city_person_v2_carbon_proto_rawDescData) + }) + return file_city_person_v2_carbon_proto_rawDescData +} + +var file_city_person_v2_carbon_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_city_person_v2_carbon_proto_goTypes = []any{ + (*VehicleCarbon)(nil), // 0: city.person.v2.VehicleCarbon +} +var file_city_person_v2_carbon_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_city_person_v2_carbon_proto_init() } +func file_city_person_v2_carbon_proto_init() { + if File_city_person_v2_carbon_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_city_person_v2_carbon_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_city_person_v2_carbon_proto_goTypes, + DependencyIndexes: file_city_person_v2_carbon_proto_depIdxs, + MessageInfos: file_city_person_v2_carbon_proto_msgTypes, + }.Build() + File_city_person_v2_carbon_proto = out.File + file_city_person_v2_carbon_proto_rawDesc = nil + file_city_person_v2_carbon_proto_goTypes = nil + file_city_person_v2_carbon_proto_depIdxs = nil +} diff --git a/go/city/person/v2/vehicle.pb.go b/go/city/person/v2/vehicle.pb.go index ee866ffd..9f52a06c 100644 --- a/go/city/person/v2/vehicle.pb.go +++ b/go/city/person/v2/vehicle.pb.go @@ -414,6 +414,9 @@ type VehicleRuntime struct { // 自由流下的预计到达时刻 // estimated arrival time under free flow EtaFreeFlow float64 `protobuf:"fixed64,10,opt,name=eta_free_flow,json=etaFreeFlow,proto3" json:"eta_free_flow,omitempty" bson:"eta_free_flow" db:"eta_free_flow" yaml:"eta_free_flow"` + // 碳排放信息 + // carbon emission information + Carbon *VehicleCarbon `protobuf:"bytes,11,opt,name=carbon,proto3,oneof" json:"carbon,omitempty" bson:"carbon" db:"carbon" yaml:"carbon"` } func (x *VehicleRuntime) Reset() { @@ -502,6 +505,13 @@ func (x *VehicleRuntime) GetEtaFreeFlow() float64 { return 0 } +func (x *VehicleRuntime) GetCarbon() *VehicleCarbon { + if x != nil { + return x.Carbon + } + return nil +} + // 观测到的车辆 // observed vehicles type ObservedVehicle struct { @@ -752,135 +762,142 @@ var file_city_person_v2_vehicle_proto_rawDesc = []byte{ 0x0a, 0x1c, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x76, 0x32, 0x2f, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x1a, 0x1b, - 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x76, 0x32, 0x2f, 0x6d, - 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x63, 0x69, 0x74, - 0x79, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x6f, 0x75, - 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x84, 0x01, 0x0a, 0x02, 0x4c, - 0x43, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x6e, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x64, 0x6f, - 0x77, 0x4c, 0x61, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x64, 0x6f, - 0x77, 0x5f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x73, 0x68, 0x61, 0x64, 0x6f, - 0x77, 0x53, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x01, 0x52, 0x05, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x01, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x52, 0x61, 0x74, 0x69, - 0x6f, 0x22, 0x7f, 0x0a, 0x0d, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x03, 0x61, 0x63, 0x63, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x63, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x63, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x61, - 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x61, 0x6e, 0x67, 0x6c, - 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x63, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, - 0x69, 0x64, 0x22, 0x58, 0x0a, 0x12, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x07, 0x6a, 0x6f, 0x75, 0x72, - 0x6e, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x69, 0x74, 0x79, - 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x6f, 0x75, 0x72, - 0x6e, 0x65, 0x79, 0x52, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x22, 0xeb, 0x02, 0x0a, - 0x0e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, - 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, - 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x12, 0x27, 0x0a, 0x02, 0x6c, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, - 0x43, 0x48, 0x00, 0x52, 0x02, 0x6c, 0x63, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x69, 0x74, - 0x79, 0x2e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x65, 0x68, 0x69, - 0x63, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x06, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, - 0x67, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x0f, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x5f, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x61, - 0x73, 0x74, 0x72, 0x61, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6e, 0x75, 0x6d, - 0x47, 0x6f, 0x69, 0x6e, 0x67, 0x41, 0x73, 0x74, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x64, - 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x03, 0x65, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0d, 0x65, 0x74, 0x61, 0x5f, 0x66, 0x72, 0x65, 0x65, - 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x65, 0x74, 0x61, - 0x46, 0x72, 0x65, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x6c, 0x63, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc1, 0x01, 0x0a, 0x0f, 0x4f, - 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x34, - 0x0a, 0x06, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, - 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6d, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x10, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x65, 0x72, 0x73, 0x6f, - 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xaf, - 0x01, 0x0a, 0x0c, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x65, - 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x0a, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x30, - 0x0a, 0x14, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x6c, 0x69, - 0x67, 0x68, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, - 0x22, 0x9d, 0x02, 0x0a, 0x0a, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x45, 0x6e, 0x76, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x38, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, - 0x32, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x6a, 0x6f, 0x75, - 0x72, 0x6e, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x69, 0x74, - 0x79, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x6f, 0x75, - 0x72, 0x6e, 0x65, 0x79, 0x52, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x12, 0x4c, 0x0a, - 0x11, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, - 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, - 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x10, 0x6f, 0x62, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0e, 0x6f, - 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x65, 0x72, 0x73, 0x6f, - 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4c, 0x61, 0x6e, - 0x65, 0x52, 0x0d, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x65, 0x73, - 0x2a, 0xbb, 0x02, 0x0a, 0x0f, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x1c, 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, 0x45, 0x5f, - 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, - 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x48, 0x45, 0x41, 0x44, - 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x52, 0x45, - 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x45, 0x48, 0x49, 0x4e, 0x44, 0x10, 0x02, 0x12, - 0x21, 0x0a, 0x1d, 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x48, 0x41, 0x44, 0x4f, 0x57, 0x5f, 0x41, 0x48, 0x45, 0x41, 0x44, - 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x52, 0x45, - 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x48, 0x41, 0x44, 0x4f, 0x57, 0x5f, 0x42, 0x45, - 0x48, 0x49, 0x4e, 0x44, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, - 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, - 0x41, 0x48, 0x45, 0x41, 0x44, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x56, 0x45, 0x48, 0x49, 0x43, - 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48, - 0x54, 0x5f, 0x41, 0x48, 0x45, 0x41, 0x44, 0x10, 0x06, 0x12, 0x20, 0x0a, 0x1c, 0x56, 0x45, 0x48, - 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, - 0x46, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x49, 0x4e, 0x44, 0x10, 0x07, 0x12, 0x21, 0x0a, 0x1d, 0x56, + 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x76, 0x32, 0x2f, 0x63, + 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x63, 0x69, 0x74, + 0x79, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x76, 0x32, 0x2f, 0x6d, 0x6f, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x72, + 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x84, 0x01, 0x0a, 0x02, 0x4c, 0x43, 0x12, 0x24, + 0x0a, 0x0e, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x4c, 0x61, + 0x6e, 0x65, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x5f, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x53, 0x12, + 0x14, 0x0a, 0x05, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, + 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0x7f, + 0x0a, 0x0d, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x61, 0x63, + 0x63, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x63, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x63, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6e, 0x67, 0x6c, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x6c, 0x63, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x22, + 0x58, 0x0a, 0x12, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x72, 0x6f, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, + 0x52, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x22, 0xb2, 0x03, 0x0a, 0x0e, 0x56, 0x65, + 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x04, + 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x69, 0x74, + 0x79, 0x2e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x27, + 0x0a, 0x02, 0x6c, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x69, 0x74, + 0x79, 0x2e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x43, 0x48, 0x00, + 0x52, 0x02, 0x6c, 0x63, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x64, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x72, + 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, + 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x5f, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x73, 0x74, 0x72, + 0x61, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x47, 0x6f, 0x69, + 0x6e, 0x67, 0x41, 0x73, 0x74, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x65, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x65, 0x74, + 0x61, 0x12, 0x22, 0x0a, 0x0d, 0x65, 0x74, 0x61, 0x5f, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x66, 0x6c, + 0x6f, 0x77, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x65, 0x74, 0x61, 0x46, 0x72, 0x65, + 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x61, + 0x72, 0x62, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x06, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x6c, 0x63, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x22, 0xc1, + 0x01, 0x0a, 0x0f, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, + 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x34, 0x0a, 0x06, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, + 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x06, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x10, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0xaf, 0x01, 0x0a, 0x0c, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4c, + 0x61, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x63, 0x69, 0x74, + 0x79, 0x2e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x67, 0x68, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x61, + 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x12, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x54, 0x69, 0x6d, 0x65, 0x22, 0x9d, 0x02, 0x0a, 0x0a, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, + 0x45, 0x6e, 0x76, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x38, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x75, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, + 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, + 0x2e, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x52, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, + 0x79, 0x12, 0x4c, 0x0a, 0x11, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x76, 0x65, + 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, + 0x69, 0x74, 0x79, 0x2e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x10, 0x6f, + 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x12, + 0x43, 0x0a, 0x0e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x65, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x4c, 0x61, 0x6e, 0x65, 0x52, 0x0d, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4c, + 0x61, 0x6e, 0x65, 0x73, 0x2a, 0xbb, 0x02, 0x0a, 0x0f, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x1c, 0x56, 0x45, 0x48, 0x49, + 0x43, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x56, 0x45, + 0x48, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, + 0x48, 0x45, 0x41, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, + 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x45, 0x48, 0x49, 0x4e, + 0x44, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x52, + 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x48, 0x41, 0x44, 0x4f, 0x57, 0x5f, 0x41, + 0x48, 0x45, 0x41, 0x44, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, + 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x48, 0x41, 0x44, 0x4f, + 0x57, 0x5f, 0x42, 0x45, 0x48, 0x49, 0x4e, 0x44, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x56, 0x45, + 0x48, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, + 0x45, 0x46, 0x54, 0x5f, 0x41, 0x48, 0x45, 0x41, 0x44, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x49, 0x4e, 0x44, 0x10, 0x08, 0x2a, 0x6d, - 0x0a, 0x0a, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x17, - 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x49, 0x47, - 0x48, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x15, - 0x0a, 0x11, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x47, 0x52, - 0x45, 0x45, 0x4e, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x10, 0x03, 0x42, 0xb5, 0x01, - 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x65, 0x72, 0x73, 0x6f, - 0x6e, 0x2e, 0x76, 0x32, 0x42, 0x0c, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x69, 0x62, 0x6c, 0x61, 0x62, - 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x73, 0x69, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, - 0x76, 0x32, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, - 0x6e, 0x2f, 0x76, 0x32, 0x3b, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x76, 0x32, 0xa2, 0x02, 0x03, - 0x43, 0x50, 0x58, 0xaa, 0x02, 0x0e, 0x43, 0x69, 0x74, 0x79, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, - 0x6e, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x0e, 0x43, 0x69, 0x74, 0x79, 0x5c, 0x50, 0x65, 0x72, 0x73, - 0x6f, 0x6e, 0x5c, 0x56, 0x32, 0xe2, 0x02, 0x1a, 0x43, 0x69, 0x74, 0x79, 0x5c, 0x50, 0x65, 0x72, - 0x73, 0x6f, 0x6e, 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x10, 0x43, 0x69, 0x74, 0x79, 0x3a, 0x3a, 0x50, 0x65, 0x72, 0x73, 0x6f, - 0x6e, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x41, 0x48, 0x45, 0x41, 0x44, 0x10, 0x06, 0x12, 0x20, 0x0a, + 0x1c, 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x49, 0x4e, 0x44, 0x10, 0x07, 0x12, + 0x21, 0x0a, 0x1d, 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x49, 0x4e, 0x44, + 0x10, 0x08, 0x2a, 0x6d, 0x0a, 0x0a, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, + 0x0f, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x44, + 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x47, + 0x48, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x10, + 0x03, 0x42, 0xb5, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x42, 0x0c, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x69, + 0x62, 0x6c, 0x61, 0x62, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x73, 0x69, 0x6d, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x73, 0x2f, 0x76, 0x32, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x76, 0x32, 0x3b, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x76, + 0x32, 0xa2, 0x02, 0x03, 0x43, 0x50, 0x58, 0xaa, 0x02, 0x0e, 0x43, 0x69, 0x74, 0x79, 0x2e, 0x50, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x0e, 0x43, 0x69, 0x74, 0x79, 0x5c, + 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5c, 0x56, 0x32, 0xe2, 0x02, 0x1a, 0x43, 0x69, 0x74, 0x79, + 0x5c, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x10, 0x43, 0x69, 0x74, 0x79, 0x3a, 0x3a, 0x50, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -909,24 +926,26 @@ var file_city_person_v2_vehicle_proto_goTypes = []any{ (*VehicleEnv)(nil), // 8: city.person.v2.VehicleEnv (*v2.Journey)(nil), // 9: city.routing.v2.Journey (*PersonMotion)(nil), // 10: city.person.v2.PersonMotion + (*VehicleCarbon)(nil), // 11: city.person.v2.VehicleCarbon } var file_city_person_v2_vehicle_proto_depIdxs = []int32{ 9, // 0: city.person.v2.VehicleRouteAction.journey:type_name -> city.routing.v2.Journey 10, // 1: city.person.v2.VehicleRuntime.base:type_name -> city.person.v2.PersonMotion 2, // 2: city.person.v2.VehicleRuntime.lc:type_name -> city.person.v2.LC 3, // 3: city.person.v2.VehicleRuntime.action:type_name -> city.person.v2.VehicleAction - 10, // 4: city.person.v2.ObservedVehicle.motion:type_name -> city.person.v2.PersonMotion - 0, // 5: city.person.v2.ObservedVehicle.relation:type_name -> city.person.v2.VehicleRelation - 1, // 6: city.person.v2.ObservedLane.light_state:type_name -> city.person.v2.LightState - 5, // 7: city.person.v2.VehicleEnv.runtime:type_name -> city.person.v2.VehicleRuntime - 9, // 8: city.person.v2.VehicleEnv.journey:type_name -> city.routing.v2.Journey - 6, // 9: city.person.v2.VehicleEnv.observed_vehicles:type_name -> city.person.v2.ObservedVehicle - 7, // 10: city.person.v2.VehicleEnv.observed_lanes:type_name -> city.person.v2.ObservedLane - 11, // [11:11] is the sub-list for method output_type - 11, // [11:11] is the sub-list for method input_type - 11, // [11:11] is the sub-list for extension type_name - 11, // [11:11] is the sub-list for extension extendee - 0, // [0:11] is the sub-list for field type_name + 11, // 4: city.person.v2.VehicleRuntime.carbon:type_name -> city.person.v2.VehicleCarbon + 10, // 5: city.person.v2.ObservedVehicle.motion:type_name -> city.person.v2.PersonMotion + 0, // 6: city.person.v2.ObservedVehicle.relation:type_name -> city.person.v2.VehicleRelation + 1, // 7: city.person.v2.ObservedLane.light_state:type_name -> city.person.v2.LightState + 5, // 8: city.person.v2.VehicleEnv.runtime:type_name -> city.person.v2.VehicleRuntime + 9, // 9: city.person.v2.VehicleEnv.journey:type_name -> city.routing.v2.Journey + 6, // 10: city.person.v2.VehicleEnv.observed_vehicles:type_name -> city.person.v2.ObservedVehicle + 7, // 11: city.person.v2.VehicleEnv.observed_lanes:type_name -> city.person.v2.ObservedLane + 12, // [12:12] is the sub-list for method output_type + 12, // [12:12] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name } func init() { file_city_person_v2_vehicle_proto_init() } @@ -934,6 +953,7 @@ func file_city_person_v2_vehicle_proto_init() { if File_city_person_v2_vehicle_proto != nil { return } + file_city_person_v2_carbon_proto_init() file_city_person_v2_motion_proto_init() file_city_person_v2_vehicle_proto_msgTypes[1].OneofWrappers = []any{} file_city_person_v2_vehicle_proto_msgTypes[3].OneofWrappers = []any{} diff --git a/pycityproto/city/person/v2/__init__.pyi b/pycityproto/city/person/v2/__init__.pyi index 14ee097b..51bd50df 100644 --- a/pycityproto/city/person/v2/__init__.pyi +++ b/pycityproto/city/person/v2/__init__.pyi @@ -1,3 +1,4 @@ +from . import carbon_pb2 from . import motion_pb2 from . import person_pb2 from . import person_runtime_pb2 diff --git a/pycityproto/city/person/v2/carbon_pb2.py b/pycityproto/city/person/v2/carbon_pb2.py new file mode 100644 index 00000000..3ba7b83b --- /dev/null +++ b/pycityproto/city/person/v2/carbon_pb2.py @@ -0,0 +1,15 @@ +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_sym_db = _symbol_database.Default() +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bcity/person/v2/carbon.proto\x12\x0ecity.person.v2"\x9f\x01\n\rVehicleCarbon\x12\x0e\n\x02id\x18\x01 \x01(\x05R\x02id\x12\x0e\n\x02ds\x18\x02 \x01(\x01R\x02ds\x12\x0c\n\x01v\x18\x03 \x01(\x01R\x01v\x12\x0c\n\x01a\x18\x04 \x01(\x01R\x01a\x12\x13\n\x05u_acc\x18\x05 \x01(\x01R\x04uAcc\x12\x15\n\x06u_roll\x18\x06 \x01(\x01R\x05uRoll\x12\x15\n\x06u_aero\x18\x07 \x01(\x01R\x05uAero\x12\x0f\n\x03c_d\x18\x08 \x01(\x01R\x02cDB\xb4\x01\n\x12com.city.person.v2B\x0bCarbonProtoP\x01Z7git.fiblab.net/sim/protos/v2/go/city/person/v2;personv2\xa2\x02\x03CPX\xaa\x02\x0eCity.Person.V2\xca\x02\x0eCity\\Person\\V2\xe2\x02\x1aCity\\Person\\V2\\GPBMetadata\xea\x02\x10City::Person::V2b\x06proto3') +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'city.person.v2.carbon_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\x12com.city.person.v2B\x0bCarbonProtoP\x01Z7git.fiblab.net/sim/protos/v2/go/city/person/v2;personv2\xa2\x02\x03CPX\xaa\x02\x0eCity.Person.V2\xca\x02\x0eCity\\Person\\V2\xe2\x02\x1aCity\\Person\\V2\\GPBMetadata\xea\x02\x10City::Person::V2' + _globals['_VEHICLECARBON']._serialized_start = 48 + _globals['_VEHICLECARBON']._serialized_end = 207 \ No newline at end of file diff --git a/pycityproto/city/person/v2/carbon_pb2.pyi b/pycityproto/city/person/v2/carbon_pb2.pyi new file mode 100644 index 00000000..fe1395d6 --- /dev/null +++ b/pycityproto/city/person/v2/carbon_pb2.pyi @@ -0,0 +1,26 @@ +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Optional as _Optional +DESCRIPTOR: _descriptor.FileDescriptor + +class VehicleCarbon(_message.Message): + __slots__ = ['id', 'ds', 'v', 'a', 'u_acc', 'u_roll', 'u_aero', 'c_d'] + ID_FIELD_NUMBER: _ClassVar[int] + DS_FIELD_NUMBER: _ClassVar[int] + V_FIELD_NUMBER: _ClassVar[int] + A_FIELD_NUMBER: _ClassVar[int] + U_ACC_FIELD_NUMBER: _ClassVar[int] + U_ROLL_FIELD_NUMBER: _ClassVar[int] + U_AERO_FIELD_NUMBER: _ClassVar[int] + C_D_FIELD_NUMBER: _ClassVar[int] + id: int + ds: float + v: float + a: float + u_acc: float + u_roll: float + u_aero: float + c_d: float + + def __init__(self, id: _Optional[int]=..., ds: _Optional[float]=..., v: _Optional[float]=..., a: _Optional[float]=..., u_acc: _Optional[float]=..., u_roll: _Optional[float]=..., u_aero: _Optional[float]=..., c_d: _Optional[float]=...) -> None: + ... \ No newline at end of file diff --git a/pycityproto/city/person/v2/carbon_pb2_grpc.py b/pycityproto/city/person/v2/carbon_pb2_grpc.py new file mode 100644 index 00000000..a8ba7cd4 --- /dev/null +++ b/pycityproto/city/person/v2/carbon_pb2_grpc.py @@ -0,0 +1,2 @@ +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc \ No newline at end of file diff --git a/pycityproto/city/person/v2/vehicle_pb2.py b/pycityproto/city/person/v2/vehicle_pb2.py index 6757cc7f..3b0712a7 100644 --- a/pycityproto/city/person/v2/vehicle_pb2.py +++ b/pycityproto/city/person/v2/vehicle_pb2.py @@ -4,30 +4,31 @@ from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder _sym_db = _symbol_database.Default() +from ....city.person.v2 import carbon_pb2 as city_dot_person_dot_v2_dot_carbon__pb2 from ....city.person.v2 import motion_pb2 as city_dot_person_dot_v2_dot_motion__pb2 from ....city.routing.v2 import routing_pb2 as city_dot_routing_dot_v2_dot_routing__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1ccity/person/v2/vehicle.proto\x12\x0ecity.person.v2\x1a\x1bcity/person/v2/motion.proto\x1a\x1dcity/routing/v2/routing.proto"\x84\x01\n\x02LC\x12$\n\x0eshadow_lane_id\x18\x01 \x01(\x05R\x0cshadowLaneId\x12\x19\n\x08shadow_s\x18\x02 \x01(\x01R\x07shadowS\x12\x14\n\x05angle\x18\x03 \x01(\x01R\x05angle\x12\'\n\x0fcompleted_ratio\x18\x04 \x01(\x01R\x0ecompletedRatio"\x7f\n\rVehicleAction\x12\x0e\n\x02id\x18\x04 \x01(\x05R\x02id\x12\x10\n\x03acc\x18\x01 \x01(\x01R\x03acc\x12%\n\x0clc_target_id\x18\x02 \x01(\x05H\x00R\nlcTargetId\x88\x01\x01\x12\x14\n\x05angle\x18\x03 \x01(\x01R\x05angleB\x0f\n\r_lc_target_id"X\n\x12VehicleRouteAction\x12\x0e\n\x02id\x18\x01 \x01(\x05R\x02id\x122\n\x07journey\x18\x02 \x01(\x0b2\x18.city.routing.v2.JourneyR\x07journey"\xeb\x02\n\x0eVehicleRuntime\x120\n\x04base\x18\x01 \x01(\x0b2\x1c.city.person.v2.PersonMotionR\x04base\x12\'\n\x02lc\x18\x04 \x01(\x0b2\x12.city.person.v2.LCH\x00R\x02lc\x88\x01\x01\x12:\n\x06action\x18\x05 \x01(\x0b2\x1d.city.person.v2.VehicleActionH\x01R\x06action\x88\x01\x01\x12)\n\x10running_distance\x18\x06 \x01(\x01R\x0frunningDistance\x12(\n\x10num_going_astray\x18\x07 \x01(\x05R\x0enumGoingAstray\x12%\n\x0edeparture_time\x18\x08 \x01(\x01R\rdepartureTime\x12\x10\n\x03eta\x18\t \x01(\x01R\x03eta\x12"\n\reta_free_flow\x18\n \x01(\x01R\x0betaFreeFlowB\x05\n\x03_lcB\t\n\x07_action"\xc1\x01\n\x0fObservedVehicle\x12\x0e\n\x02id\x18\x01 \x01(\x05R\x02id\x124\n\x06motion\x18\x02 \x01(\x0b2\x1c.city.person.v2.PersonMotionR\x06motion\x12+\n\x11relative_distance\x18\x03 \x01(\x01R\x10relativeDistance\x12;\n\x08relation\x18\x04 \x01(\x0e2\x1f.city.person.v2.VehicleRelationR\x08relation"\xaf\x01\n\x0cObservedLane\x12\x0e\n\x02id\x18\x01 \x01(\x05R\x02id\x12 \n\x0brestriction\x18\x02 \x01(\x08R\x0brestriction\x12;\n\x0blight_state\x18\x03 \x01(\x0e2\x1a.city.person.v2.LightStateR\nlightState\x120\n\x14light_remaining_time\x18\x04 \x01(\x01R\x12lightRemainingTime"\x9d\x02\n\nVehicleEnv\x12\x0e\n\x02id\x18\x01 \x01(\x05R\x02id\x128\n\x07runtime\x18\x02 \x01(\x0b2\x1e.city.person.v2.VehicleRuntimeR\x07runtime\x122\n\x07journey\x18\x03 \x01(\x0b2\x18.city.routing.v2.JourneyR\x07journey\x12L\n\x11observed_vehicles\x18\x04 \x03(\x0b2\x1f.city.person.v2.ObservedVehicleR\x10observedVehicles\x12C\n\x0eobserved_lanes\x18\x05 \x03(\x0b2\x1c.city.person.v2.ObservedLaneR\robservedLanes*\xbb\x02\n\x0fVehicleRelation\x12 \n\x1cVEHICLE_RELATION_UNSPECIFIED\x10\x00\x12\x1a\n\x16VEHICLE_RELATION_AHEAD\x10\x01\x12\x1b\n\x17VEHICLE_RELATION_BEHIND\x10\x02\x12!\n\x1dVEHICLE_RELATION_SHADOW_AHEAD\x10\x03\x12"\n\x1eVEHICLE_RELATION_SHADOW_BEHIND\x10\x04\x12\x1f\n\x1bVEHICLE_RELATION_LEFT_AHEAD\x10\x05\x12 \n\x1cVEHICLE_RELATION_RIGHT_AHEAD\x10\x06\x12 \n\x1cVEHICLE_RELATION_LEFT_BEHIND\x10\x07\x12!\n\x1dVEHICLE_RELATION_RIGHT_BEHIND\x10\x08*m\n\nLightState\x12\x1b\n\x17LIGHT_STATE_UNSPECIFIED\x10\x00\x12\x13\n\x0fLIGHT_STATE_RED\x10\x01\x12\x15\n\x11LIGHT_STATE_GREEN\x10\x02\x12\x16\n\x12LIGHT_STATE_YELLOW\x10\x03B\xb5\x01\n\x12com.city.person.v2B\x0cVehicleProtoP\x01Z7git.fiblab.net/sim/protos/v2/go/city/person/v2;personv2\xa2\x02\x03CPX\xaa\x02\x0eCity.Person.V2\xca\x02\x0eCity\\Person\\V2\xe2\x02\x1aCity\\Person\\V2\\GPBMetadata\xea\x02\x10City::Person::V2b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1ccity/person/v2/vehicle.proto\x12\x0ecity.person.v2\x1a\x1bcity/person/v2/carbon.proto\x1a\x1bcity/person/v2/motion.proto\x1a\x1dcity/routing/v2/routing.proto"\x84\x01\n\x02LC\x12$\n\x0eshadow_lane_id\x18\x01 \x01(\x05R\x0cshadowLaneId\x12\x19\n\x08shadow_s\x18\x02 \x01(\x01R\x07shadowS\x12\x14\n\x05angle\x18\x03 \x01(\x01R\x05angle\x12\'\n\x0fcompleted_ratio\x18\x04 \x01(\x01R\x0ecompletedRatio"\x7f\n\rVehicleAction\x12\x0e\n\x02id\x18\x04 \x01(\x05R\x02id\x12\x10\n\x03acc\x18\x01 \x01(\x01R\x03acc\x12%\n\x0clc_target_id\x18\x02 \x01(\x05H\x00R\nlcTargetId\x88\x01\x01\x12\x14\n\x05angle\x18\x03 \x01(\x01R\x05angleB\x0f\n\r_lc_target_id"X\n\x12VehicleRouteAction\x12\x0e\n\x02id\x18\x01 \x01(\x05R\x02id\x122\n\x07journey\x18\x02 \x01(\x0b2\x18.city.routing.v2.JourneyR\x07journey"\xb2\x03\n\x0eVehicleRuntime\x120\n\x04base\x18\x01 \x01(\x0b2\x1c.city.person.v2.PersonMotionR\x04base\x12\'\n\x02lc\x18\x04 \x01(\x0b2\x12.city.person.v2.LCH\x00R\x02lc\x88\x01\x01\x12:\n\x06action\x18\x05 \x01(\x0b2\x1d.city.person.v2.VehicleActionH\x01R\x06action\x88\x01\x01\x12)\n\x10running_distance\x18\x06 \x01(\x01R\x0frunningDistance\x12(\n\x10num_going_astray\x18\x07 \x01(\x05R\x0enumGoingAstray\x12%\n\x0edeparture_time\x18\x08 \x01(\x01R\rdepartureTime\x12\x10\n\x03eta\x18\t \x01(\x01R\x03eta\x12"\n\reta_free_flow\x18\n \x01(\x01R\x0betaFreeFlow\x12:\n\x06carbon\x18\x0b \x01(\x0b2\x1d.city.person.v2.VehicleCarbonH\x02R\x06carbon\x88\x01\x01B\x05\n\x03_lcB\t\n\x07_actionB\t\n\x07_carbon"\xc1\x01\n\x0fObservedVehicle\x12\x0e\n\x02id\x18\x01 \x01(\x05R\x02id\x124\n\x06motion\x18\x02 \x01(\x0b2\x1c.city.person.v2.PersonMotionR\x06motion\x12+\n\x11relative_distance\x18\x03 \x01(\x01R\x10relativeDistance\x12;\n\x08relation\x18\x04 \x01(\x0e2\x1f.city.person.v2.VehicleRelationR\x08relation"\xaf\x01\n\x0cObservedLane\x12\x0e\n\x02id\x18\x01 \x01(\x05R\x02id\x12 \n\x0brestriction\x18\x02 \x01(\x08R\x0brestriction\x12;\n\x0blight_state\x18\x03 \x01(\x0e2\x1a.city.person.v2.LightStateR\nlightState\x120\n\x14light_remaining_time\x18\x04 \x01(\x01R\x12lightRemainingTime"\x9d\x02\n\nVehicleEnv\x12\x0e\n\x02id\x18\x01 \x01(\x05R\x02id\x128\n\x07runtime\x18\x02 \x01(\x0b2\x1e.city.person.v2.VehicleRuntimeR\x07runtime\x122\n\x07journey\x18\x03 \x01(\x0b2\x18.city.routing.v2.JourneyR\x07journey\x12L\n\x11observed_vehicles\x18\x04 \x03(\x0b2\x1f.city.person.v2.ObservedVehicleR\x10observedVehicles\x12C\n\x0eobserved_lanes\x18\x05 \x03(\x0b2\x1c.city.person.v2.ObservedLaneR\robservedLanes*\xbb\x02\n\x0fVehicleRelation\x12 \n\x1cVEHICLE_RELATION_UNSPECIFIED\x10\x00\x12\x1a\n\x16VEHICLE_RELATION_AHEAD\x10\x01\x12\x1b\n\x17VEHICLE_RELATION_BEHIND\x10\x02\x12!\n\x1dVEHICLE_RELATION_SHADOW_AHEAD\x10\x03\x12"\n\x1eVEHICLE_RELATION_SHADOW_BEHIND\x10\x04\x12\x1f\n\x1bVEHICLE_RELATION_LEFT_AHEAD\x10\x05\x12 \n\x1cVEHICLE_RELATION_RIGHT_AHEAD\x10\x06\x12 \n\x1cVEHICLE_RELATION_LEFT_BEHIND\x10\x07\x12!\n\x1dVEHICLE_RELATION_RIGHT_BEHIND\x10\x08*m\n\nLightState\x12\x1b\n\x17LIGHT_STATE_UNSPECIFIED\x10\x00\x12\x13\n\x0fLIGHT_STATE_RED\x10\x01\x12\x15\n\x11LIGHT_STATE_GREEN\x10\x02\x12\x16\n\x12LIGHT_STATE_YELLOW\x10\x03B\xb5\x01\n\x12com.city.person.v2B\x0cVehicleProtoP\x01Z7git.fiblab.net/sim/protos/v2/go/city/person/v2;personv2\xa2\x02\x03CPX\xaa\x02\x0eCity.Person.V2\xca\x02\x0eCity\\Person\\V2\xe2\x02\x1aCity\\Person\\V2\\GPBMetadata\xea\x02\x10City::Person::V2b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'city.person.v2.vehicle_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: _globals['DESCRIPTOR']._options = None _globals['DESCRIPTOR']._serialized_options = b'\n\x12com.city.person.v2B\x0cVehicleProtoP\x01Z7git.fiblab.net/sim/protos/v2/go/city/person/v2;personv2\xa2\x02\x03CPX\xaa\x02\x0eCity.Person.V2\xca\x02\x0eCity\\Person\\V2\xe2\x02\x1aCity\\Person\\V2\\GPBMetadata\xea\x02\x10City::Person::V2' - _globals['_VEHICLERELATION']._serialized_start = 1491 - _globals['_VEHICLERELATION']._serialized_end = 1806 - _globals['_LIGHTSTATE']._serialized_start = 1808 - _globals['_LIGHTSTATE']._serialized_end = 1917 - _globals['_LC']._serialized_start = 109 - _globals['_LC']._serialized_end = 241 - _globals['_VEHICLEACTION']._serialized_start = 243 - _globals['_VEHICLEACTION']._serialized_end = 370 - _globals['_VEHICLEROUTEACTION']._serialized_start = 372 - _globals['_VEHICLEROUTEACTION']._serialized_end = 460 - _globals['_VEHICLERUNTIME']._serialized_start = 463 - _globals['_VEHICLERUNTIME']._serialized_end = 826 - _globals['_OBSERVEDVEHICLE']._serialized_start = 829 - _globals['_OBSERVEDVEHICLE']._serialized_end = 1022 - _globals['_OBSERVEDLANE']._serialized_start = 1025 - _globals['_OBSERVEDLANE']._serialized_end = 1200 - _globals['_VEHICLEENV']._serialized_start = 1203 - _globals['_VEHICLEENV']._serialized_end = 1488 \ No newline at end of file + _globals['_VEHICLERELATION']._serialized_start = 1591 + _globals['_VEHICLERELATION']._serialized_end = 1906 + _globals['_LIGHTSTATE']._serialized_start = 1908 + _globals['_LIGHTSTATE']._serialized_end = 2017 + _globals['_LC']._serialized_start = 138 + _globals['_LC']._serialized_end = 270 + _globals['_VEHICLEACTION']._serialized_start = 272 + _globals['_VEHICLEACTION']._serialized_end = 399 + _globals['_VEHICLEROUTEACTION']._serialized_start = 401 + _globals['_VEHICLEROUTEACTION']._serialized_end = 489 + _globals['_VEHICLERUNTIME']._serialized_start = 492 + _globals['_VEHICLERUNTIME']._serialized_end = 926 + _globals['_OBSERVEDVEHICLE']._serialized_start = 929 + _globals['_OBSERVEDVEHICLE']._serialized_end = 1122 + _globals['_OBSERVEDLANE']._serialized_start = 1125 + _globals['_OBSERVEDLANE']._serialized_end = 1300 + _globals['_VEHICLEENV']._serialized_start = 1303 + _globals['_VEHICLEENV']._serialized_end = 1588 \ No newline at end of file diff --git a/pycityproto/city/person/v2/vehicle_pb2.pyi b/pycityproto/city/person/v2/vehicle_pb2.pyi index 5a167b7d..7a88423f 100644 --- a/pycityproto/city/person/v2/vehicle_pb2.pyi +++ b/pycityproto/city/person/v2/vehicle_pb2.pyi @@ -1,3 +1,4 @@ +from city.person.v2 import carbon_pb2 as _carbon_pb2 from city.person.v2 import motion_pb2 as _motion_pb2 from city.routing.v2 import routing_pb2 as _routing_pb2 from google.protobuf.internal import containers as _containers @@ -78,7 +79,7 @@ class VehicleRouteAction(_message.Message): ... class VehicleRuntime(_message.Message): - __slots__ = ['base', 'lc', 'action', 'running_distance', 'num_going_astray', 'departure_time', 'eta', 'eta_free_flow'] + __slots__ = ['base', 'lc', 'action', 'running_distance', 'num_going_astray', 'departure_time', 'eta', 'eta_free_flow', 'carbon'] BASE_FIELD_NUMBER: _ClassVar[int] LC_FIELD_NUMBER: _ClassVar[int] ACTION_FIELD_NUMBER: _ClassVar[int] @@ -87,6 +88,7 @@ class VehicleRuntime(_message.Message): DEPARTURE_TIME_FIELD_NUMBER: _ClassVar[int] ETA_FIELD_NUMBER: _ClassVar[int] ETA_FREE_FLOW_FIELD_NUMBER: _ClassVar[int] + CARBON_FIELD_NUMBER: _ClassVar[int] base: _motion_pb2.PersonMotion lc: LC action: VehicleAction @@ -95,8 +97,9 @@ class VehicleRuntime(_message.Message): departure_time: float eta: float eta_free_flow: float + carbon: _carbon_pb2.VehicleCarbon - def __init__(self, base: _Optional[_Union[_motion_pb2.PersonMotion, _Mapping]]=..., lc: _Optional[_Union[LC, _Mapping]]=..., action: _Optional[_Union[VehicleAction, _Mapping]]=..., running_distance: _Optional[float]=..., num_going_astray: _Optional[int]=..., departure_time: _Optional[float]=..., eta: _Optional[float]=..., eta_free_flow: _Optional[float]=...) -> None: + def __init__(self, base: _Optional[_Union[_motion_pb2.PersonMotion, _Mapping]]=..., lc: _Optional[_Union[LC, _Mapping]]=..., action: _Optional[_Union[VehicleAction, _Mapping]]=..., running_distance: _Optional[float]=..., num_going_astray: _Optional[int]=..., departure_time: _Optional[float]=..., eta: _Optional[float]=..., eta_free_flow: _Optional[float]=..., carbon: _Optional[_Union[_carbon_pb2.VehicleCarbon, _Mapping]]=...) -> None: ... class ObservedVehicle(_message.Message):