diff --git a/include/SimCore/Messages/Protos/SimTrack.pb.cc b/include/SimCore/Messages/Protos/SimTrack.pb.cc index 227d480..3530e2d 100644 --- a/include/SimCore/Messages/Protos/SimTrack.pb.cc +++ b/include/SimCore/Messages/Protos/SimTrack.pb.cc @@ -27,6 +27,7 @@ PROTOBUF_CONSTEXPR SimTrack::SimTrack( /*decltype(_impl_._has_bits_)*/{} , /*decltype(_impl_._cached_size_)*/{} , /*decltype(_impl_.contactemissions_)*/{} + , /*decltype(_impl_.conatactname_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} , /*decltype(_impl_.entityidentifier_)*/nullptr , /*decltype(_impl_.geocentricposition_)*/nullptr , /*decltype(_impl_.contactspeed_)*/0 @@ -81,6 +82,7 @@ const uint32_t TableStruct_SimTrack_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE ~0u, // no _weak_field_map_ ~0u, // no _inlined_string_donated_ PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.entityidentifier_), + PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.conatactname_), PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactsourcetype_), PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.geocentricposition_), PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactspeed_), @@ -91,12 +93,13 @@ const uint32_t TableStruct_SimTrack_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactemissions_), ~0u, ~0u, + 2, 0, 1, - 3, 4, - 2, 5, + 3, + 6, ~0u, PROTOBUF_FIELD_OFFSET(::messages::SimTrack::Emission, _impl_._has_bits_), PROTOBUF_FIELD_OFFSET(::messages::SimTrack::Emission, _internal_metadata_), @@ -126,8 +129,8 @@ const uint32_t TableStruct_SimTrack_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE 5, }; static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - { 0, 15, -1, sizeof(::messages::SimTrack::SimTrack)}, - { 24, 40, -1, sizeof(::messages::SimTrack::Emission)}, + { 0, 16, -1, sizeof(::messages::SimTrack::SimTrack)}, + { 26, 42, -1, sizeof(::messages::SimTrack::Emission)}, }; static const ::_pb::Message* const file_default_instances[] = { @@ -139,29 +142,30 @@ const char descriptor_table_protodef_SimTrack_2eproto[] PROTOBUF_SECTION_VARIABL "\n\016SimTrack.proto\022\021messages.SimTrack\032\037goo" "gle/protobuf/timestamp.proto\032\036google/pro" "tobuf/duration.proto\032\020Identifier.proto\032\030" - "GeocentricPosition.proto\"\330\003\n\010SimTrack\0224\n" + "GeocentricPosition.proto\"\211\004\n\010SimTrack\0224\n" "\020EntityIdentifier\030\001 \001(\0132\032.messages.track" - ".Identifier\022\031\n\021ContactSourceType\030\002 \001(\r\022I" - "\n\022GeocentricPosition\030\003 \001(\0132(.messages.tr" - "ack.EntityGeocentricPositionH\000\210\001\001\022\031\n\014Con" - "tactSpeed\030\004 \001(\001H\001\210\001\001\022\032\n\rContactCourse\030\005 " - "\001(\001H\002\210\001\001\022\030\n\013ConactPitch\030\006 \001(\001H\003\210\001\001\022\037\n\022Co" - "ntactEnvironemnt\030\007 \001(\rH\004\210\001\001\022\027\n\nContactRC" - "S\030\010 \001(\001H\005\210\001\001\0225\n\020ContactEmissions\030\t \003(\0132\033" - ".messages.SimTrack.EmissionB\025\n\023_Geocentr" - "icPositionB\017\n\r_ContactSpeedB\020\n\016_ContactC" - "ourseB\016\n\014_ConactPitchB\025\n\023_ContactEnviron" - "emntB\r\n\013_ContactRCS\"\366\002\n\010Emission\022.\n\nIden" - "tifier\030\001 \001(\0132\032.messages.track.Identifier" - "\022\014\n\004name\030\002 \001(\t\022\021\n\tfrequency\030\003 \001(\001\022\r\n\005Ran" - "ge\030\004 \001(\001\022\026\n\tBandwidth\030\005 \001(\rH\000\210\001\001\022\027\n\npuls" - "eWidth\030\006 \001(\rH\001\210\001\001\022\034\n\017pulseRepitition\030\007 \001" - "(\rH\002\210\001\001\022\032\n\rradiatedPower\030\010 \001(\rH\003\210\001\001\022\032\n\rn" - "umberOfBeams\030\t \001(\rH\004\210\001\001\022\033\n\016searchInterva" - "l\030\n \001(\rH\005\210\001\001B\014\n\n_BandwidthB\r\n\013_pulseWidt" - "hB\022\n\020_pulseRepititionB\020\n\016_radiatedPowerB" - "\020\n\016_numberOfBeamsB\021\n\017_searchIntervalb\006pr" - "oto3" + ".Identifier\022\024\n\014ConatactName\030\002 \001(\t\022\036\n\021Con" + "tactSourceType\030\003 \001(\rH\000\210\001\001\022I\n\022GeocentricP" + "osition\030\004 \001(\0132(.messages.track.EntityGeo" + "centricPositionH\001\210\001\001\022\031\n\014ContactSpeed\030\005 \001" + "(\001H\002\210\001\001\022\032\n\rContactCourse\030\006 \001(\001H\003\210\001\001\022\030\n\013C" + "onactPitch\030\007 \001(\001H\004\210\001\001\022\037\n\022ContactEnvirone" + "mnt\030\010 \001(\rH\005\210\001\001\022\027\n\nContactRCS\030\t \001(\001H\006\210\001\001\022" + "5\n\020ContactEmissions\030\n \003(\0132\033.messages.Sim" + "Track.EmissionB\024\n\022_ContactSourceTypeB\025\n\023" + "_GeocentricPositionB\017\n\r_ContactSpeedB\020\n\016" + "_ContactCourseB\016\n\014_ConactPitchB\025\n\023_Conta" + "ctEnvironemntB\r\n\013_ContactRCS\"\366\002\n\010Emissio" + "n\022.\n\nIdentifier\030\001 \001(\0132\032.messages.track.I" + "dentifier\022\014\n\004name\030\002 \001(\t\022\021\n\tfrequency\030\003 \001" + "(\001\022\r\n\005Range\030\004 \001(\001\022\026\n\tBandwidth\030\005 \001(\rH\000\210\001" + "\001\022\027\n\npulseWidth\030\006 \001(\rH\001\210\001\001\022\034\n\017pulseRepit" + "ition\030\007 \001(\rH\002\210\001\001\022\032\n\rradiatedPower\030\010 \001(\rH" + "\003\210\001\001\022\032\n\rnumberOfBeams\030\t \001(\rH\004\210\001\001\022\033\n\016sear" + "chInterval\030\n \001(\rH\005\210\001\001B\014\n\n_BandwidthB\r\n\013_" + "pulseWidthB\022\n\020_pulseRepititionB\020\n\016_radia" + "tedPowerB\020\n\016_numberOfBeamsB\021\n\017_searchInt" + "ervalb\006proto3" ; static const ::_pbi::DescriptorTable* const descriptor_table_SimTrack_2eproto_deps[4] = { &::descriptor_table_GeocentricPosition_2eproto, @@ -171,7 +175,7 @@ static const ::_pbi::DescriptorTable* const descriptor_table_SimTrack_2eproto_de }; static ::_pbi::once_flag descriptor_table_SimTrack_2eproto_once; const ::_pbi::DescriptorTable descriptor_table_SimTrack_2eproto = { - false, false, 1004, descriptor_table_protodef_SimTrack_2eproto, + false, false, 1053, descriptor_table_protodef_SimTrack_2eproto, "SimTrack.proto", &descriptor_table_SimTrack_2eproto_once, descriptor_table_SimTrack_2eproto_deps, 4, 2, schemas, file_default_instances, TableStruct_SimTrack_2eproto::offsets, @@ -193,6 +197,9 @@ class SimTrack::_Internal { public: using HasBits = decltype(std::declval()._impl_._has_bits_); static const ::messages::track::Identifier& entityidentifier(const SimTrack* msg); + static void set_has_contactsourcetype(HasBits* has_bits) { + (*has_bits)[0] |= 4u; + } static const ::messages::track::EntityGeocentricPosition& geocentricposition(const SimTrack* msg); static void set_has_geocentricposition(HasBits* has_bits) { (*has_bits)[0] |= 1u; @@ -201,16 +208,16 @@ class SimTrack::_Internal { (*has_bits)[0] |= 2u; } static void set_has_contactcourse(HasBits* has_bits) { - (*has_bits)[0] |= 8u; - } - static void set_has_conactpitch(HasBits* has_bits) { (*has_bits)[0] |= 16u; } + static void set_has_conactpitch(HasBits* has_bits) { + (*has_bits)[0] |= 32u; + } static void set_has_contactenvironemnt(HasBits* has_bits) { - (*has_bits)[0] |= 4u; + (*has_bits)[0] |= 8u; } static void set_has_contactrcs(HasBits* has_bits) { - (*has_bits)[0] |= 32u; + (*has_bits)[0] |= 64u; } }; @@ -245,6 +252,7 @@ SimTrack::SimTrack(const SimTrack& from) decltype(_impl_._has_bits_){from._impl_._has_bits_} , /*decltype(_impl_._cached_size_)*/{} , decltype(_impl_.contactemissions_){from._impl_.contactemissions_} + , decltype(_impl_.conatactname_){} , decltype(_impl_.entityidentifier_){nullptr} , decltype(_impl_.geocentricposition_){nullptr} , decltype(_impl_.contactspeed_){} @@ -255,6 +263,14 @@ SimTrack::SimTrack(const SimTrack& from) , decltype(_impl_.contactrcs_){}}; _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.conatactname_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.conatactname_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_conatactname().empty()) { + _this->_impl_.conatactname_.Set(from._internal_conatactname(), + _this->GetArenaForAllocation()); + } if (from._internal_has_entityidentifier()) { _this->_impl_.entityidentifier_ = new ::messages::track::Identifier(*from._impl_.entityidentifier_); } @@ -275,6 +291,7 @@ inline void SimTrack::SharedCtor( decltype(_impl_._has_bits_){} , /*decltype(_impl_._cached_size_)*/{} , decltype(_impl_.contactemissions_){arena} + , decltype(_impl_.conatactname_){} , decltype(_impl_.entityidentifier_){nullptr} , decltype(_impl_.geocentricposition_){nullptr} , decltype(_impl_.contactspeed_){0} @@ -284,6 +301,10 @@ inline void SimTrack::SharedCtor( , decltype(_impl_.conactpitch_){0} , decltype(_impl_.contactrcs_){0} }; + _impl_.conatactname_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.conatactname_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING } SimTrack::~SimTrack() { @@ -298,6 +319,7 @@ SimTrack::~SimTrack() { inline void SimTrack::SharedDtor() { GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); _impl_.contactemissions_.~RepeatedPtrField(); + _impl_.conatactname_.Destroy(); if (this != internal_default_instance()) delete _impl_.entityidentifier_; if (this != internal_default_instance()) delete _impl_.geocentricposition_; } @@ -313,6 +335,7 @@ void SimTrack::Clear() { (void) cached_has_bits; _impl_.contactemissions_.Clear(); + _impl_.conatactname_.ClearToEmpty(); if (GetArenaForAllocation() == nullptr && _impl_.entityidentifier_ != nullptr) { delete _impl_.entityidentifier_; } @@ -322,12 +345,10 @@ void SimTrack::Clear() { GOOGLE_DCHECK(_impl_.geocentricposition_ != nullptr); _impl_.geocentricposition_->Clear(); } - _impl_.contactspeed_ = 0; - _impl_.contactsourcetype_ = 0u; - if (cached_has_bits & 0x0000003cu) { - ::memset(&_impl_.contactenvironemnt_, 0, static_cast( + if (cached_has_bits & 0x0000007eu) { + ::memset(&_impl_.contactspeed_, 0, static_cast( reinterpret_cast(&_impl_.contactrcs_) - - reinterpret_cast(&_impl_.contactenvironemnt_)) + sizeof(_impl_.contactrcs_)); + reinterpret_cast(&_impl_.contactspeed_)) + sizeof(_impl_.contactrcs_)); } _impl_._has_bits_.Clear(); _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); @@ -348,77 +369,88 @@ const char* SimTrack::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) } else goto handle_unusual; continue; - // uint32 ContactSourceType = 2; + // string ConatactName = 2; case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + auto str = _internal_mutable_conatactname(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "messages.SimTrack.SimTrack.ConatactName")); + } else + goto handle_unusual; + continue; + // optional uint32 ContactSourceType = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { + _Internal::set_has_contactsourcetype(&has_bits); _impl_.contactsourcetype_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); CHK_(ptr); } else goto handle_unusual; continue; - // optional .messages.track.EntityGeocentricPosition GeocentricPosition = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { + // optional .messages.track.EntityGeocentricPosition GeocentricPosition = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 34)) { ptr = ctx->ParseMessage(_internal_mutable_geocentricposition(), ptr); CHK_(ptr); } else goto handle_unusual; continue; - // optional double ContactSpeed = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 33)) { + // optional double ContactSpeed = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 41)) { _Internal::set_has_contactspeed(&has_bits); _impl_.contactspeed_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); ptr += sizeof(double); } else goto handle_unusual; continue; - // optional double ContactCourse = 5; - case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 41)) { + // optional double ContactCourse = 6; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 49)) { _Internal::set_has_contactcourse(&has_bits); _impl_.contactcourse_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); ptr += sizeof(double); } else goto handle_unusual; continue; - // optional double ConactPitch = 6; - case 6: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 49)) { + // optional double ConactPitch = 7; + case 7: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 57)) { _Internal::set_has_conactpitch(&has_bits); _impl_.conactpitch_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); ptr += sizeof(double); } else goto handle_unusual; continue; - // optional uint32 ContactEnvironemnt = 7; - case 7: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 56)) { + // optional uint32 ContactEnvironemnt = 8; + case 8: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 64)) { _Internal::set_has_contactenvironemnt(&has_bits); _impl_.contactenvironemnt_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); CHK_(ptr); } else goto handle_unusual; continue; - // optional double ContactRCS = 8; - case 8: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 65)) { + // optional double ContactRCS = 9; + case 9: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 73)) { _Internal::set_has_contactrcs(&has_bits); _impl_.contactrcs_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); ptr += sizeof(double); } else goto handle_unusual; continue; - // repeated .messages.SimTrack.Emission ContactEmissions = 9; - case 9: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 74)) { + // repeated .messages.SimTrack.Emission ContactEmissions = 10; + case 10: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 82)) { ptr -= 1; do { ptr += 1; ptr = ctx->ParseMessage(_internal_add_contactemissions(), ptr); CHK_(ptr); if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<74>(ptr)); + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<82>(ptr)); } else goto handle_unusual; continue; @@ -459,55 +491,65 @@ uint8_t* SimTrack::_InternalSerialize( _Internal::entityidentifier(this).GetCachedSize(), target, stream); } - // uint32 ContactSourceType = 2; - if (this->_internal_contactsourcetype() != 0) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_contactsourcetype(), target); + // string ConatactName = 2; + if (!this->_internal_conatactname().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_conatactname().data(), static_cast(this->_internal_conatactname().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "messages.SimTrack.SimTrack.ConatactName"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_conatactname(), target); } - // optional .messages.track.EntityGeocentricPosition GeocentricPosition = 3; + // optional uint32 ContactSourceType = 3; + if (_internal_has_contactsourcetype()) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_contactsourcetype(), target); + } + + // optional .messages.track.EntityGeocentricPosition GeocentricPosition = 4; if (_internal_has_geocentricposition()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(3, _Internal::geocentricposition(this), + InternalWriteMessage(4, _Internal::geocentricposition(this), _Internal::geocentricposition(this).GetCachedSize(), target, stream); } - // optional double ContactSpeed = 4; + // optional double ContactSpeed = 5; if (_internal_has_contactspeed()) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteDoubleToArray(4, this->_internal_contactspeed(), target); + target = ::_pbi::WireFormatLite::WriteDoubleToArray(5, this->_internal_contactspeed(), target); } - // optional double ContactCourse = 5; + // optional double ContactCourse = 6; if (_internal_has_contactcourse()) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteDoubleToArray(5, this->_internal_contactcourse(), target); + target = ::_pbi::WireFormatLite::WriteDoubleToArray(6, this->_internal_contactcourse(), target); } - // optional double ConactPitch = 6; + // optional double ConactPitch = 7; if (_internal_has_conactpitch()) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteDoubleToArray(6, this->_internal_conactpitch(), target); + target = ::_pbi::WireFormatLite::WriteDoubleToArray(7, this->_internal_conactpitch(), target); } - // optional uint32 ContactEnvironemnt = 7; + // optional uint32 ContactEnvironemnt = 8; if (_internal_has_contactenvironemnt()) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(7, this->_internal_contactenvironemnt(), target); + target = ::_pbi::WireFormatLite::WriteUInt32ToArray(8, this->_internal_contactenvironemnt(), target); } - // optional double ContactRCS = 8; + // optional double ContactRCS = 9; if (_internal_has_contactrcs()) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteDoubleToArray(8, this->_internal_contactrcs(), target); + target = ::_pbi::WireFormatLite::WriteDoubleToArray(9, this->_internal_contactrcs(), target); } - // repeated .messages.SimTrack.Emission ContactEmissions = 9; + // repeated .messages.SimTrack.Emission ContactEmissions = 10; for (unsigned i = 0, n = static_cast(this->_internal_contactemissions_size()); i < n; i++) { const auto& repfield = this->_internal_contactemissions(i); target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(9, repfield, repfield.GetCachedSize(), target, stream); + InternalWriteMessage(10, repfield, repfield.GetCachedSize(), target, stream); } if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { @@ -526,13 +568,20 @@ size_t SimTrack::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - // repeated .messages.SimTrack.Emission ContactEmissions = 9; + // repeated .messages.SimTrack.Emission ContactEmissions = 10; total_size += 1UL * this->_internal_contactemissions_size(); for (const auto& msg : this->_impl_.contactemissions_) { total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); } + // string ConatactName = 2; + if (!this->_internal_conatactname().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_conatactname()); + } + // .messages.track.Identifier EntityIdentifier = 1; if (this->_internal_has_entityidentifier()) { total_size += 1 + @@ -541,46 +590,44 @@ size_t SimTrack::ByteSizeLong() const { } cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { - // optional .messages.track.EntityGeocentricPosition GeocentricPosition = 3; + if (cached_has_bits & 0x0000007fu) { + // optional .messages.track.EntityGeocentricPosition GeocentricPosition = 4; if (cached_has_bits & 0x00000001u) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( *_impl_.geocentricposition_); } - // optional double ContactSpeed = 4; + // optional double ContactSpeed = 5; if (cached_has_bits & 0x00000002u) { total_size += 1 + 8; } - } - // uint32 ContactSourceType = 2; - if (this->_internal_contactsourcetype() != 0) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_contactsourcetype()); - } - - if (cached_has_bits & 0x0000003cu) { - // optional uint32 ContactEnvironemnt = 7; + // optional uint32 ContactSourceType = 3; if (cached_has_bits & 0x00000004u) { + total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_contactsourcetype()); + } + + // optional uint32 ContactEnvironemnt = 8; + if (cached_has_bits & 0x00000008u) { total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_contactenvironemnt()); } - // optional double ContactCourse = 5; - if (cached_has_bits & 0x00000008u) { - total_size += 1 + 8; - } - - // optional double ConactPitch = 6; + // optional double ContactCourse = 6; if (cached_has_bits & 0x00000010u) { total_size += 1 + 8; } - // optional double ContactRCS = 8; + // optional double ConactPitch = 7; if (cached_has_bits & 0x00000020u) { total_size += 1 + 8; } + // optional double ContactRCS = 9; + if (cached_has_bits & 0x00000040u) { + total_size += 1 + 8; + } + } return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); } @@ -601,12 +648,15 @@ void SimTrack::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTO (void) cached_has_bits; _this->_impl_.contactemissions_.MergeFrom(from._impl_.contactemissions_); + if (!from._internal_conatactname().empty()) { + _this->_internal_set_conatactname(from._internal_conatactname()); + } if (from._internal_has_entityidentifier()) { _this->_internal_mutable_entityidentifier()->::messages::track::Identifier::MergeFrom( from._internal_entityidentifier()); } cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { + if (cached_has_bits & 0x0000007fu) { if (cached_has_bits & 0x00000001u) { _this->_internal_mutable_geocentricposition()->::messages::track::EntityGeocentricPosition::MergeFrom( from._internal_geocentricposition()); @@ -614,22 +664,19 @@ void SimTrack::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTO if (cached_has_bits & 0x00000002u) { _this->_impl_.contactspeed_ = from._impl_.contactspeed_; } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } - if (from._internal_contactsourcetype() != 0) { - _this->_internal_set_contactsourcetype(from._internal_contactsourcetype()); - } - if (cached_has_bits & 0x0000003cu) { if (cached_has_bits & 0x00000004u) { - _this->_impl_.contactenvironemnt_ = from._impl_.contactenvironemnt_; + _this->_impl_.contactsourcetype_ = from._impl_.contactsourcetype_; } if (cached_has_bits & 0x00000008u) { - _this->_impl_.contactcourse_ = from._impl_.contactcourse_; + _this->_impl_.contactenvironemnt_ = from._impl_.contactenvironemnt_; } if (cached_has_bits & 0x00000010u) { - _this->_impl_.conactpitch_ = from._impl_.conactpitch_; + _this->_impl_.contactcourse_ = from._impl_.contactcourse_; } if (cached_has_bits & 0x00000020u) { + _this->_impl_.conactpitch_ = from._impl_.conactpitch_; + } + if (cached_has_bits & 0x00000040u) { _this->_impl_.contactrcs_ = from._impl_.contactrcs_; } _this->_impl_._has_bits_[0] |= cached_has_bits; @@ -650,9 +697,15 @@ bool SimTrack::IsInitialized() const { void SimTrack::InternalSwap(SimTrack* other) { using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); _internal_metadata_.InternalSwap(&other->_internal_metadata_); swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); _impl_.contactemissions_.InternalSwap(&other->_impl_.contactemissions_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.conatactname_, lhs_arena, + &other->_impl_.conatactname_, rhs_arena + ); ::PROTOBUF_NAMESPACE_ID::internal::memswap< PROTOBUF_FIELD_OFFSET(SimTrack, _impl_.contactrcs_) + sizeof(SimTrack::_impl_.contactrcs_) diff --git a/include/SimCore/Messages/Protos/SimTrack.pb.h b/include/SimCore/Messages/Protos/SimTrack.pb.h index 7ac5336..c80fc36 100644 --- a/include/SimCore/Messages/Protos/SimTrack.pb.h +++ b/include/SimCore/Messages/Protos/SimTrack.pb.h @@ -188,17 +188,18 @@ class SimTrack final : // accessors ------------------------------------------------------- enum : int { - kContactEmissionsFieldNumber = 9, + kContactEmissionsFieldNumber = 10, + kConatactNameFieldNumber = 2, kEntityIdentifierFieldNumber = 1, - kGeocentricPositionFieldNumber = 3, - kContactSpeedFieldNumber = 4, - kContactSourceTypeFieldNumber = 2, - kContactEnvironemntFieldNumber = 7, - kContactCourseFieldNumber = 5, - kConactPitchFieldNumber = 6, - kContactRCSFieldNumber = 8, + kGeocentricPositionFieldNumber = 4, + kContactSpeedFieldNumber = 5, + kContactSourceTypeFieldNumber = 3, + kContactEnvironemntFieldNumber = 8, + kContactCourseFieldNumber = 6, + kConactPitchFieldNumber = 7, + kContactRCSFieldNumber = 9, }; - // repeated .messages.SimTrack.Emission ContactEmissions = 9; + // repeated .messages.SimTrack.Emission ContactEmissions = 10; int contactemissions_size() const; private: int _internal_contactemissions_size() const; @@ -216,6 +217,20 @@ class SimTrack final : const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::messages::SimTrack::Emission >& contactemissions() const; + // string ConatactName = 2; + void clear_conatactname(); + const std::string& conatactname() const; + template + void set_conatactname(ArgT0&& arg0, ArgT... args); + std::string* mutable_conatactname(); + PROTOBUF_NODISCARD std::string* release_conatactname(); + void set_allocated_conatactname(std::string* conatactname); + private: + const std::string& _internal_conatactname() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_conatactname(const std::string& value); + std::string* _internal_mutable_conatactname(); + public: + // .messages.track.Identifier EntityIdentifier = 1; bool has_entityidentifier() const; private: @@ -234,7 +249,7 @@ class SimTrack final : ::messages::track::Identifier* entityidentifier); ::messages::track::Identifier* unsafe_arena_release_entityidentifier(); - // optional .messages.track.EntityGeocentricPosition GeocentricPosition = 3; + // optional .messages.track.EntityGeocentricPosition GeocentricPosition = 4; bool has_geocentricposition() const; private: bool _internal_has_geocentricposition() const; @@ -252,7 +267,7 @@ class SimTrack final : ::messages::track::EntityGeocentricPosition* geocentricposition); ::messages::track::EntityGeocentricPosition* unsafe_arena_release_geocentricposition(); - // optional double ContactSpeed = 4; + // optional double ContactSpeed = 5; bool has_contactspeed() const; private: bool _internal_has_contactspeed() const; @@ -265,7 +280,11 @@ class SimTrack final : void _internal_set_contactspeed(double value); public: - // uint32 ContactSourceType = 2; + // optional uint32 ContactSourceType = 3; + bool has_contactsourcetype() const; + private: + bool _internal_has_contactsourcetype() const; + public: void clear_contactsourcetype(); uint32_t contactsourcetype() const; void set_contactsourcetype(uint32_t value); @@ -274,7 +293,7 @@ class SimTrack final : void _internal_set_contactsourcetype(uint32_t value); public: - // optional uint32 ContactEnvironemnt = 7; + // optional uint32 ContactEnvironemnt = 8; bool has_contactenvironemnt() const; private: bool _internal_has_contactenvironemnt() const; @@ -287,7 +306,7 @@ class SimTrack final : void _internal_set_contactenvironemnt(uint32_t value); public: - // optional double ContactCourse = 5; + // optional double ContactCourse = 6; bool has_contactcourse() const; private: bool _internal_has_contactcourse() const; @@ -300,7 +319,7 @@ class SimTrack final : void _internal_set_contactcourse(double value); public: - // optional double ConactPitch = 6; + // optional double ConactPitch = 7; bool has_conactpitch() const; private: bool _internal_has_conactpitch() const; @@ -313,7 +332,7 @@ class SimTrack final : void _internal_set_conactpitch(double value); public: - // optional double ContactRCS = 8; + // optional double ContactRCS = 9; bool has_contactrcs() const; private: bool _internal_has_contactrcs() const; @@ -337,6 +356,7 @@ class SimTrack final : ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::messages::SimTrack::Emission > contactemissions_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr conatactname_; ::messages::track::Identifier* entityidentifier_; ::messages::track::EntityGeocentricPosition* geocentricposition_; double contactspeed_; @@ -731,9 +751,67 @@ inline void SimTrack::set_allocated_entityidentifier(::messages::track::Identifi // @@protoc_insertion_point(field_set_allocated:messages.SimTrack.SimTrack.EntityIdentifier) } -// uint32 ContactSourceType = 2; +// string ConatactName = 2; +inline void SimTrack::clear_conatactname() { + _impl_.conatactname_.ClearToEmpty(); +} +inline const std::string& SimTrack::conatactname() const { + // @@protoc_insertion_point(field_get:messages.SimTrack.SimTrack.ConatactName) + return _internal_conatactname(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void SimTrack::set_conatactname(ArgT0&& arg0, ArgT... args) { + + _impl_.conatactname_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ConatactName) +} +inline std::string* SimTrack::mutable_conatactname() { + std::string* _s = _internal_mutable_conatactname(); + // @@protoc_insertion_point(field_mutable:messages.SimTrack.SimTrack.ConatactName) + return _s; +} +inline const std::string& SimTrack::_internal_conatactname() const { + return _impl_.conatactname_.Get(); +} +inline void SimTrack::_internal_set_conatactname(const std::string& value) { + + _impl_.conatactname_.Set(value, GetArenaForAllocation()); +} +inline std::string* SimTrack::_internal_mutable_conatactname() { + + return _impl_.conatactname_.Mutable(GetArenaForAllocation()); +} +inline std::string* SimTrack::release_conatactname() { + // @@protoc_insertion_point(field_release:messages.SimTrack.SimTrack.ConatactName) + return _impl_.conatactname_.Release(); +} +inline void SimTrack::set_allocated_conatactname(std::string* conatactname) { + if (conatactname != nullptr) { + + } else { + + } + _impl_.conatactname_.SetAllocated(conatactname, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.conatactname_.IsDefault()) { + _impl_.conatactname_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:messages.SimTrack.SimTrack.ConatactName) +} + +// optional uint32 ContactSourceType = 3; +inline bool SimTrack::_internal_has_contactsourcetype() const { + bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; + return value; +} +inline bool SimTrack::has_contactsourcetype() const { + return _internal_has_contactsourcetype(); +} inline void SimTrack::clear_contactsourcetype() { _impl_.contactsourcetype_ = 0u; + _impl_._has_bits_[0] &= ~0x00000004u; } inline uint32_t SimTrack::_internal_contactsourcetype() const { return _impl_.contactsourcetype_; @@ -743,7 +821,7 @@ inline uint32_t SimTrack::contactsourcetype() const { return _internal_contactsourcetype(); } inline void SimTrack::_internal_set_contactsourcetype(uint32_t value) { - + _impl_._has_bits_[0] |= 0x00000004u; _impl_.contactsourcetype_ = value; } inline void SimTrack::set_contactsourcetype(uint32_t value) { @@ -751,7 +829,7 @@ inline void SimTrack::set_contactsourcetype(uint32_t value) { // @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ContactSourceType) } -// optional .messages.track.EntityGeocentricPosition GeocentricPosition = 3; +// optional .messages.track.EntityGeocentricPosition GeocentricPosition = 4; inline bool SimTrack::_internal_has_geocentricposition() const { bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; PROTOBUF_ASSUME(!value || _impl_.geocentricposition_ != nullptr); @@ -838,7 +916,7 @@ inline void SimTrack::set_allocated_geocentricposition(::messages::track::Entity // @@protoc_insertion_point(field_set_allocated:messages.SimTrack.SimTrack.GeocentricPosition) } -// optional double ContactSpeed = 4; +// optional double ContactSpeed = 5; inline bool SimTrack::_internal_has_contactspeed() const { bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; return value; @@ -866,9 +944,9 @@ inline void SimTrack::set_contactspeed(double value) { // @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ContactSpeed) } -// optional double ContactCourse = 5; +// optional double ContactCourse = 6; inline bool SimTrack::_internal_has_contactcourse() const { - bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0; + bool value = (_impl_._has_bits_[0] & 0x00000010u) != 0; return value; } inline bool SimTrack::has_contactcourse() const { @@ -876,7 +954,7 @@ inline bool SimTrack::has_contactcourse() const { } inline void SimTrack::clear_contactcourse() { _impl_.contactcourse_ = 0; - _impl_._has_bits_[0] &= ~0x00000008u; + _impl_._has_bits_[0] &= ~0x00000010u; } inline double SimTrack::_internal_contactcourse() const { return _impl_.contactcourse_; @@ -886,7 +964,7 @@ inline double SimTrack::contactcourse() const { return _internal_contactcourse(); } inline void SimTrack::_internal_set_contactcourse(double value) { - _impl_._has_bits_[0] |= 0x00000008u; + _impl_._has_bits_[0] |= 0x00000010u; _impl_.contactcourse_ = value; } inline void SimTrack::set_contactcourse(double value) { @@ -894,9 +972,9 @@ inline void SimTrack::set_contactcourse(double value) { // @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ContactCourse) } -// optional double ConactPitch = 6; +// optional double ConactPitch = 7; inline bool SimTrack::_internal_has_conactpitch() const { - bool value = (_impl_._has_bits_[0] & 0x00000010u) != 0; + bool value = (_impl_._has_bits_[0] & 0x00000020u) != 0; return value; } inline bool SimTrack::has_conactpitch() const { @@ -904,7 +982,7 @@ inline bool SimTrack::has_conactpitch() const { } inline void SimTrack::clear_conactpitch() { _impl_.conactpitch_ = 0; - _impl_._has_bits_[0] &= ~0x00000010u; + _impl_._has_bits_[0] &= ~0x00000020u; } inline double SimTrack::_internal_conactpitch() const { return _impl_.conactpitch_; @@ -914,7 +992,7 @@ inline double SimTrack::conactpitch() const { return _internal_conactpitch(); } inline void SimTrack::_internal_set_conactpitch(double value) { - _impl_._has_bits_[0] |= 0x00000010u; + _impl_._has_bits_[0] |= 0x00000020u; _impl_.conactpitch_ = value; } inline void SimTrack::set_conactpitch(double value) { @@ -922,9 +1000,9 @@ inline void SimTrack::set_conactpitch(double value) { // @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ConactPitch) } -// optional uint32 ContactEnvironemnt = 7; +// optional uint32 ContactEnvironemnt = 8; inline bool SimTrack::_internal_has_contactenvironemnt() const { - bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; + bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0; return value; } inline bool SimTrack::has_contactenvironemnt() const { @@ -932,7 +1010,7 @@ inline bool SimTrack::has_contactenvironemnt() const { } inline void SimTrack::clear_contactenvironemnt() { _impl_.contactenvironemnt_ = 0u; - _impl_._has_bits_[0] &= ~0x00000004u; + _impl_._has_bits_[0] &= ~0x00000008u; } inline uint32_t SimTrack::_internal_contactenvironemnt() const { return _impl_.contactenvironemnt_; @@ -942,7 +1020,7 @@ inline uint32_t SimTrack::contactenvironemnt() const { return _internal_contactenvironemnt(); } inline void SimTrack::_internal_set_contactenvironemnt(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000004u; + _impl_._has_bits_[0] |= 0x00000008u; _impl_.contactenvironemnt_ = value; } inline void SimTrack::set_contactenvironemnt(uint32_t value) { @@ -950,9 +1028,9 @@ inline void SimTrack::set_contactenvironemnt(uint32_t value) { // @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ContactEnvironemnt) } -// optional double ContactRCS = 8; +// optional double ContactRCS = 9; inline bool SimTrack::_internal_has_contactrcs() const { - bool value = (_impl_._has_bits_[0] & 0x00000020u) != 0; + bool value = (_impl_._has_bits_[0] & 0x00000040u) != 0; return value; } inline bool SimTrack::has_contactrcs() const { @@ -960,7 +1038,7 @@ inline bool SimTrack::has_contactrcs() const { } inline void SimTrack::clear_contactrcs() { _impl_.contactrcs_ = 0; - _impl_._has_bits_[0] &= ~0x00000020u; + _impl_._has_bits_[0] &= ~0x00000040u; } inline double SimTrack::_internal_contactrcs() const { return _impl_.contactrcs_; @@ -970,7 +1048,7 @@ inline double SimTrack::contactrcs() const { return _internal_contactrcs(); } inline void SimTrack::_internal_set_contactrcs(double value) { - _impl_._has_bits_[0] |= 0x00000020u; + _impl_._has_bits_[0] |= 0x00000040u; _impl_.contactrcs_ = value; } inline void SimTrack::set_contactrcs(double value) { @@ -978,7 +1056,7 @@ inline void SimTrack::set_contactrcs(double value) { // @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ContactRCS) } -// repeated .messages.SimTrack.Emission ContactEmissions = 9; +// repeated .messages.SimTrack.Emission ContactEmissions = 10; inline int SimTrack::_internal_contactemissions_size() const { return _impl_.contactemissions_.size(); } diff --git a/include/SimCore/Messages/Protos/SimTrack.proto b/include/SimCore/Messages/Protos/SimTrack.proto index 50c1c1f..985f2e5 100644 --- a/include/SimCore/Messages/Protos/SimTrack.proto +++ b/include/SimCore/Messages/Protos/SimTrack.proto @@ -14,15 +14,16 @@ import "GeocentricPosition.proto"; message SimTrack { messages.track.Identifier EntityIdentifier = 1; - uint32 ContactSourceType = 2; - optional messages.track.EntityGeocentricPosition GeocentricPosition = 3; - optional double ContactSpeed = 4; - optional double ContactCourse = 5; - optional double ConactPitch = 6; - optional uint32 ContactEnvironemnt = 7; - optional double ContactRCS = 8; + string ConatactName = 2; + optional uint32 ContactSourceType = 3; + optional messages.track.EntityGeocentricPosition GeocentricPosition = 4; + optional double ContactSpeed = 5; + optional double ContactCourse = 6; + optional double ConactPitch = 7; + optional uint32 ContactEnvironemnt = 8; + optional double ContactRCS = 9; - repeated Emission ContactEmissions = 9; + repeated Emission ContactEmissions = 10; // google.protobuf.Timestamp timestamp = 9; } diff --git a/include/SimCore/Messages/SimTrack.hpp b/include/SimCore/Messages/SimTrack.hpp index 524c938..fe9085b 100644 --- a/include/SimCore/Messages/SimTrack.hpp +++ b/include/SimCore/Messages/SimTrack.hpp @@ -10,6 +10,7 @@ #include #include +#include namespace SimCore { @@ -19,8 +20,12 @@ namespace SimCore public: SimTrack(); + SimTrack(std::string name, SimCore::EntityKind entityKind); + SimTrack(WHISPER::SourceType sourcetype, SimCore::EntityKind entityKind); + SimTrack(SimCore::Identifier id,std::string name, SimCore::EntityKind entityKind); + SimTrack(SimCore::Identifier id, WHISPER::SourceType sourcetype, SimCore::EntityKind entityKind); ~SimTrack(); @@ -67,6 +72,7 @@ namespace SimCore static std::unique_ptr unpack(std::string msgString); public: + Data Name; Data Speed; Data Course; Data Pitch; @@ -77,7 +83,7 @@ namespace SimCore private: const SimCore::Identifier ID_; - const WHISPER::SourceType SourceType_; + WHISPER::SourceType SourceType_; Position position_; diff --git a/include/SimCore/data.hpp b/include/SimCore/data.hpp index eee9e22..913d007 100644 --- a/include/SimCore/data.hpp +++ b/include/SimCore/data.hpp @@ -16,6 +16,16 @@ namespace SimCore } + Data(T val):data_(val),valid_(false),writeTime_(std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count()) + { + + } + + Data(T val):data_(val),valid_(false),writeTime_(std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count()) + { + + } + Data (const Data &other) { std::lock_guard guard(other.mx); diff --git a/src/SimCore/Messages/SimTrack.cpp b/src/SimCore/Messages/SimTrack.cpp index 8b45dc9..81aeb98 100644 --- a/src/SimCore/Messages/SimTrack.cpp +++ b/src/SimCore/Messages/SimTrack.cpp @@ -19,6 +19,12 @@ namespace SimCore RCS.setValue(0); } + SimTrack::SimTrack(std::string name, SimCore::EntityKind entityKind):ID_(SimCore::Identifier()) + { + Name.setValue(name); + } + + SimTrack::SimTrack(WHISPER::SourceType sourcetype,SimCore::EntityKind entityKind) :ID_(SimCore::Identifier()),SourceType_(sourcetype) { @@ -30,6 +36,12 @@ namespace SimCore Pitch.setValue(0); RCS.setValue(0); } + SimTrack::SimTrack(SimCore::Identifier id,std::string name, SimCore::EntityKind entityKind) + :ID_(id),Name(name),EntityKind(entityKind) + { + + } + SimTrack::SimTrack(SimCore::Identifier id ,WHISPER::SourceType sourcetype,SimCore::EntityKind entityKind ) :ID_(id),SourceType_(sourcetype) @@ -78,6 +90,10 @@ namespace SimCore messages::SimTrack::SimTrack SimTrack; + if (Name.isValid()) SimTrack.set_conatactname(Name.getValue()); + else SimTrack.set_conatactname(" "); + + if (position_.isValid()) { SimTrack.mutable_geocentricposition()->set_x(position_.getGeocentricPos()(SimCore::X)); @@ -132,18 +148,18 @@ namespace SimCore WHISPER::SourceType sourcetype = (WHISPER::SourceType)trackMsg.contactsourcetype(); SimCore::EntityKind entityKind = (SimCore::EntityKind)trackMsg.contactenvironemnt(); - SimCore::SimTrack track(id,sourcetype,entityKind); + SimCore::SimTrack track(id,trackMsg.conatactname(),entityKind); + if (trackMsg.has_contactsourcetype()) + { + track.SourceType_ = (WHISPER::SourceType)trackMsg.contactsourcetype(); + } if (trackMsg.has_geocentricposition()) { track.setPosition(trackMsg.mutable_geocentricposition()->x(), trackMsg.mutable_geocentricposition()->y(), trackMsg.mutable_geocentricposition()->z()); } - if (trackMsg.has_contactcourse()) - { - track.Course.setValue(trackMsg.contactcourse()); - } if (trackMsg.has_contactspeed()) {