From c8061ca068b597b09d1b1886afe4cb56393e697d Mon Sep 17 00:00:00 2001 From: Henry Winkel Date: Wed, 27 Sep 2023 14:40:22 +0200 Subject: [PATCH] ADD: added entity side as enum and added maps to translate side and kind enums to string; change contactenvironment to contactside in proto --- .../SimCore/Messages/Protos/SimTrack.pb.cc | 148 +++++++++++------- include/SimCore/Messages/Protos/SimTrack.pb.h | 107 +++++++++---- .../SimCore/Messages/Protos/SimTrack.proto | 7 +- include/SimCore/Messages/SimTrack.hpp | 12 +- include/SimCore/SimCore.hpp | 47 +++++- src/SimCore/Messages/SimTrack.cpp | 52 ++++-- 6 files changed, 252 insertions(+), 121 deletions(-) diff --git a/include/SimCore/Messages/Protos/SimTrack.pb.cc b/include/SimCore/Messages/Protos/SimTrack.pb.cc index 3530e2d..f7e87a1 100644 --- a/include/SimCore/Messages/Protos/SimTrack.pb.cc +++ b/include/SimCore/Messages/Protos/SimTrack.pb.cc @@ -32,10 +32,11 @@ PROTOBUF_CONSTEXPR SimTrack::SimTrack( , /*decltype(_impl_.geocentricposition_)*/nullptr , /*decltype(_impl_.contactspeed_)*/0 , /*decltype(_impl_.contactsourcetype_)*/0u - , /*decltype(_impl_.contactenvironemnt_)*/0u + , /*decltype(_impl_.contactkind_)*/0u , /*decltype(_impl_.contactcourse_)*/0 , /*decltype(_impl_.conactpitch_)*/0 - , /*decltype(_impl_.contactrcs_)*/0} {} + , /*decltype(_impl_.contactrcs_)*/0 + , /*decltype(_impl_.contactside_)*/0u} {} struct SimTrackDefaultTypeInternal { PROTOBUF_CONSTEXPR SimTrackDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {} @@ -88,7 +89,8 @@ const uint32_t TableStruct_SimTrack_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactspeed_), PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactcourse_), PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.conactpitch_), - PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactenvironemnt_), + PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactkind_), + PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactside_), PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactrcs_), PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactemissions_), ~0u, @@ -99,6 +101,7 @@ const uint32_t TableStruct_SimTrack_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE 4, 5, 3, + 7, 6, ~0u, PROTOBUF_FIELD_OFFSET(::messages::SimTrack::Emission, _impl_._has_bits_), @@ -129,8 +132,8 @@ const uint32_t TableStruct_SimTrack_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE 5, }; static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - { 0, 16, -1, sizeof(::messages::SimTrack::SimTrack)}, - { 26, 42, -1, sizeof(::messages::SimTrack::Emission)}, + { 0, 17, -1, sizeof(::messages::SimTrack::SimTrack)}, + { 28, 44, -1, sizeof(::messages::SimTrack::Emission)}, }; static const ::_pb::Message* const file_default_instances[] = { @@ -142,30 +145,31 @@ 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\"\211\004\n\010SimTrack\0224\n" + "GeocentricPosition.proto\"\245\004\n\010SimTrack\0224\n" "\020EntityIdentifier\030\001 \001(\0132\032.messages.track" ".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" + "onactPitch\030\007 \001(\001H\004\210\001\001\022\030\n\013ContactKind\030\010 \001" + "(\rH\005\210\001\001\022\030\n\013ContactSide\030\t \001(\rH\006\210\001\001\022\027\n\nCon" + "tactRCS\030\n \001(\001H\007\210\001\001\0225\n\020ContactEmissions\030\013" + " \003(\0132\033.messages.SimTrack.EmissionB\024\n\022_Co" + "ntactSourceTypeB\025\n\023_GeocentricPositionB\017" + "\n\r_ContactSpeedB\020\n\016_ContactCourseB\016\n\014_Co" + "nactPitchB\016\n\014_ContactKindB\016\n\014_ContactSid" + "eB\r\n\013_ContactRCS\"\366\002\n\010Emission\022.\n\nIdentif" + "ier\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\005Range\030" + "\004 \001(\001\022\026\n\tBandwidth\030\005 \001(\rH\000\210\001\001\022\027\n\npulseWi" + "dth\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\rnumb" + "erOfBeams\030\t \001(\rH\004\210\001\001\022\033\n\016searchInterval\030\n" + " \001(\rH\005\210\001\001B\014\n\n_BandwidthB\r\n\013_pulseWidthB\022" + "\n\020_pulseRepititionB\020\n\016_radiatedPowerB\020\n\016" + "_numberOfBeamsB\021\n\017_searchIntervalb\006proto" + "3" ; static const ::_pbi::DescriptorTable* const descriptor_table_SimTrack_2eproto_deps[4] = { &::descriptor_table_GeocentricPosition_2eproto, @@ -175,7 +179,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, 1053, descriptor_table_protodef_SimTrack_2eproto, + false, false, 1081, 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, @@ -213,9 +217,12 @@ class SimTrack::_Internal { static void set_has_conactpitch(HasBits* has_bits) { (*has_bits)[0] |= 32u; } - static void set_has_contactenvironemnt(HasBits* has_bits) { + static void set_has_contactkind(HasBits* has_bits) { (*has_bits)[0] |= 8u; } + static void set_has_contactside(HasBits* has_bits) { + (*has_bits)[0] |= 128u; + } static void set_has_contactrcs(HasBits* has_bits) { (*has_bits)[0] |= 64u; } @@ -257,10 +264,11 @@ SimTrack::SimTrack(const SimTrack& from) , decltype(_impl_.geocentricposition_){nullptr} , decltype(_impl_.contactspeed_){} , decltype(_impl_.contactsourcetype_){} - , decltype(_impl_.contactenvironemnt_){} + , decltype(_impl_.contactkind_){} , decltype(_impl_.contactcourse_){} , decltype(_impl_.conactpitch_){} - , decltype(_impl_.contactrcs_){}}; + , decltype(_impl_.contactrcs_){} + , decltype(_impl_.contactside_){}}; _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); _impl_.conatactname_.InitDefault(); @@ -278,8 +286,8 @@ SimTrack::SimTrack(const SimTrack& from) _this->_impl_.geocentricposition_ = new ::messages::track::EntityGeocentricPosition(*from._impl_.geocentricposition_); } ::memcpy(&_impl_.contactspeed_, &from._impl_.contactspeed_, - static_cast(reinterpret_cast(&_impl_.contactrcs_) - - reinterpret_cast(&_impl_.contactspeed_)) + sizeof(_impl_.contactrcs_)); + static_cast(reinterpret_cast(&_impl_.contactside_) - + reinterpret_cast(&_impl_.contactspeed_)) + sizeof(_impl_.contactside_)); // @@protoc_insertion_point(copy_constructor:messages.SimTrack.SimTrack) } @@ -296,10 +304,11 @@ inline void SimTrack::SharedCtor( , decltype(_impl_.geocentricposition_){nullptr} , decltype(_impl_.contactspeed_){0} , decltype(_impl_.contactsourcetype_){0u} - , decltype(_impl_.contactenvironemnt_){0u} + , decltype(_impl_.contactkind_){0u} , decltype(_impl_.contactcourse_){0} , decltype(_impl_.conactpitch_){0} , decltype(_impl_.contactrcs_){0} + , decltype(_impl_.contactside_){0u} }; _impl_.conatactname_.InitDefault(); #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING @@ -345,10 +354,10 @@ void SimTrack::Clear() { GOOGLE_DCHECK(_impl_.geocentricposition_ != nullptr); _impl_.geocentricposition_->Clear(); } - if (cached_has_bits & 0x0000007eu) { + if (cached_has_bits & 0x000000feu) { ::memset(&_impl_.contactspeed_, 0, static_cast( - reinterpret_cast(&_impl_.contactrcs_) - - reinterpret_cast(&_impl_.contactspeed_)) + sizeof(_impl_.contactrcs_)); + reinterpret_cast(&_impl_.contactside_) - + reinterpret_cast(&_impl_.contactspeed_)) + sizeof(_impl_.contactside_)); } _impl_._has_bits_.Clear(); _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); @@ -423,34 +432,43 @@ const char* SimTrack::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) } else goto handle_unusual; continue; - // optional uint32 ContactEnvironemnt = 8; + // optional uint32 ContactKind = 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); + _Internal::set_has_contactkind(&has_bits); + _impl_.contactkind_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); CHK_(ptr); } else goto handle_unusual; continue; - // optional double ContactRCS = 9; + // optional uint32 ContactSide = 9; case 9: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 73)) { + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 72)) { + _Internal::set_has_contactside(&has_bits); + _impl_.contactside_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // optional double ContactRCS = 10; + case 10: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 81)) { _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 = 10; - case 10: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 82)) { + // repeated .messages.SimTrack.Emission ContactEmissions = 11; + case 11: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 90)) { 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<82>(ptr)); + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<90>(ptr)); } else goto handle_unusual; continue; @@ -532,24 +550,30 @@ uint8_t* SimTrack::_InternalSerialize( target = ::_pbi::WireFormatLite::WriteDoubleToArray(7, this->_internal_conactpitch(), target); } - // optional uint32 ContactEnvironemnt = 8; - if (_internal_has_contactenvironemnt()) { + // optional uint32 ContactKind = 8; + if (_internal_has_contactkind()) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(8, this->_internal_contactenvironemnt(), target); + target = ::_pbi::WireFormatLite::WriteUInt32ToArray(8, this->_internal_contactkind(), target); } - // optional double ContactRCS = 9; + // optional uint32 ContactSide = 9; + if (_internal_has_contactside()) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteUInt32ToArray(9, this->_internal_contactside(), target); + } + + // optional double ContactRCS = 10; if (_internal_has_contactrcs()) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteDoubleToArray(9, this->_internal_contactrcs(), target); + target = ::_pbi::WireFormatLite::WriteDoubleToArray(10, this->_internal_contactrcs(), target); } - // repeated .messages.SimTrack.Emission ContactEmissions = 10; + // repeated .messages.SimTrack.Emission ContactEmissions = 11; 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(10, repfield, repfield.GetCachedSize(), target, stream); + InternalWriteMessage(11, repfield, repfield.GetCachedSize(), target, stream); } if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { @@ -568,7 +592,7 @@ size_t SimTrack::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - // repeated .messages.SimTrack.Emission ContactEmissions = 10; + // repeated .messages.SimTrack.Emission ContactEmissions = 11; total_size += 1UL * this->_internal_contactemissions_size(); for (const auto& msg : this->_impl_.contactemissions_) { total_size += @@ -590,7 +614,7 @@ size_t SimTrack::ByteSizeLong() const { } cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x0000007fu) { + if (cached_has_bits & 0x000000ffu) { // optional .messages.track.EntityGeocentricPosition GeocentricPosition = 4; if (cached_has_bits & 0x00000001u) { total_size += 1 + @@ -608,9 +632,9 @@ size_t SimTrack::ByteSizeLong() const { total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_contactsourcetype()); } - // optional uint32 ContactEnvironemnt = 8; + // optional uint32 ContactKind = 8; if (cached_has_bits & 0x00000008u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_contactenvironemnt()); + total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_contactkind()); } // optional double ContactCourse = 6; @@ -623,11 +647,16 @@ size_t SimTrack::ByteSizeLong() const { total_size += 1 + 8; } - // optional double ContactRCS = 9; + // optional double ContactRCS = 10; if (cached_has_bits & 0x00000040u) { total_size += 1 + 8; } + // optional uint32 ContactSide = 9; + if (cached_has_bits & 0x00000080u) { + total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_contactside()); + } + } return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); } @@ -656,7 +685,7 @@ void SimTrack::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTO from._internal_entityidentifier()); } cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x0000007fu) { + if (cached_has_bits & 0x000000ffu) { if (cached_has_bits & 0x00000001u) { _this->_internal_mutable_geocentricposition()->::messages::track::EntityGeocentricPosition::MergeFrom( from._internal_geocentricposition()); @@ -668,7 +697,7 @@ void SimTrack::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTO _this->_impl_.contactsourcetype_ = from._impl_.contactsourcetype_; } if (cached_has_bits & 0x00000008u) { - _this->_impl_.contactenvironemnt_ = from._impl_.contactenvironemnt_; + _this->_impl_.contactkind_ = from._impl_.contactkind_; } if (cached_has_bits & 0x00000010u) { _this->_impl_.contactcourse_ = from._impl_.contactcourse_; @@ -679,6 +708,9 @@ void SimTrack::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTO if (cached_has_bits & 0x00000040u) { _this->_impl_.contactrcs_ = from._impl_.contactrcs_; } + if (cached_has_bits & 0x00000080u) { + _this->_impl_.contactside_ = from._impl_.contactside_; + } _this->_impl_._has_bits_[0] |= cached_has_bits; } _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); @@ -707,8 +739,8 @@ void SimTrack::InternalSwap(SimTrack* other) { &other->_impl_.conatactname_, rhs_arena ); ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(SimTrack, _impl_.contactrcs_) - + sizeof(SimTrack::_impl_.contactrcs_) + PROTOBUF_FIELD_OFFSET(SimTrack, _impl_.contactside_) + + sizeof(SimTrack::_impl_.contactside_) - PROTOBUF_FIELD_OFFSET(SimTrack, _impl_.entityidentifier_)>( reinterpret_cast(&_impl_.entityidentifier_), reinterpret_cast(&other->_impl_.entityidentifier_)); diff --git a/include/SimCore/Messages/Protos/SimTrack.pb.h b/include/SimCore/Messages/Protos/SimTrack.pb.h index c80fc36..5481ddd 100644 --- a/include/SimCore/Messages/Protos/SimTrack.pb.h +++ b/include/SimCore/Messages/Protos/SimTrack.pb.h @@ -188,18 +188,19 @@ class SimTrack final : // accessors ------------------------------------------------------- enum : int { - kContactEmissionsFieldNumber = 10, + kContactEmissionsFieldNumber = 11, kConatactNameFieldNumber = 2, kEntityIdentifierFieldNumber = 1, kGeocentricPositionFieldNumber = 4, kContactSpeedFieldNumber = 5, kContactSourceTypeFieldNumber = 3, - kContactEnvironemntFieldNumber = 8, + kContactKindFieldNumber = 8, kContactCourseFieldNumber = 6, kConactPitchFieldNumber = 7, - kContactRCSFieldNumber = 9, + kContactRCSFieldNumber = 10, + kContactSideFieldNumber = 9, }; - // repeated .messages.SimTrack.Emission ContactEmissions = 10; + // repeated .messages.SimTrack.Emission ContactEmissions = 11; int contactemissions_size() const; private: int _internal_contactemissions_size() const; @@ -293,17 +294,17 @@ class SimTrack final : void _internal_set_contactsourcetype(uint32_t value); public: - // optional uint32 ContactEnvironemnt = 8; - bool has_contactenvironemnt() const; + // optional uint32 ContactKind = 8; + bool has_contactkind() const; private: - bool _internal_has_contactenvironemnt() const; + bool _internal_has_contactkind() const; public: - void clear_contactenvironemnt(); - uint32_t contactenvironemnt() const; - void set_contactenvironemnt(uint32_t value); + void clear_contactkind(); + uint32_t contactkind() const; + void set_contactkind(uint32_t value); private: - uint32_t _internal_contactenvironemnt() const; - void _internal_set_contactenvironemnt(uint32_t value); + uint32_t _internal_contactkind() const; + void _internal_set_contactkind(uint32_t value); public: // optional double ContactCourse = 6; @@ -332,7 +333,7 @@ class SimTrack final : void _internal_set_conactpitch(double value); public: - // optional double ContactRCS = 9; + // optional double ContactRCS = 10; bool has_contactrcs() const; private: bool _internal_has_contactrcs() const; @@ -345,6 +346,19 @@ class SimTrack final : void _internal_set_contactrcs(double value); public: + // optional uint32 ContactSide = 9; + bool has_contactside() const; + private: + bool _internal_has_contactside() const; + public: + void clear_contactside(); + uint32_t contactside() const; + void set_contactside(uint32_t value); + private: + uint32_t _internal_contactside() const; + void _internal_set_contactside(uint32_t value); + public: + // @@protoc_insertion_point(class_scope:messages.SimTrack.SimTrack) private: class _Internal; @@ -361,10 +375,11 @@ class SimTrack final : ::messages::track::EntityGeocentricPosition* geocentricposition_; double contactspeed_; uint32_t contactsourcetype_; - uint32_t contactenvironemnt_; + uint32_t contactkind_; double contactcourse_; double conactpitch_; double contactrcs_; + uint32_t contactside_; }; union { Impl_ _impl_; }; friend struct ::TableStruct_SimTrack_2eproto; @@ -1000,35 +1015,63 @@ inline void SimTrack::set_conactpitch(double value) { // @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ConactPitch) } -// optional uint32 ContactEnvironemnt = 8; -inline bool SimTrack::_internal_has_contactenvironemnt() const { +// optional uint32 ContactKind = 8; +inline bool SimTrack::_internal_has_contactkind() const { bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0; return value; } -inline bool SimTrack::has_contactenvironemnt() const { - return _internal_has_contactenvironemnt(); +inline bool SimTrack::has_contactkind() const { + return _internal_has_contactkind(); } -inline void SimTrack::clear_contactenvironemnt() { - _impl_.contactenvironemnt_ = 0u; +inline void SimTrack::clear_contactkind() { + _impl_.contactkind_ = 0u; _impl_._has_bits_[0] &= ~0x00000008u; } -inline uint32_t SimTrack::_internal_contactenvironemnt() const { - return _impl_.contactenvironemnt_; +inline uint32_t SimTrack::_internal_contactkind() const { + return _impl_.contactkind_; } -inline uint32_t SimTrack::contactenvironemnt() const { - // @@protoc_insertion_point(field_get:messages.SimTrack.SimTrack.ContactEnvironemnt) - return _internal_contactenvironemnt(); +inline uint32_t SimTrack::contactkind() const { + // @@protoc_insertion_point(field_get:messages.SimTrack.SimTrack.ContactKind) + return _internal_contactkind(); } -inline void SimTrack::_internal_set_contactenvironemnt(uint32_t value) { +inline void SimTrack::_internal_set_contactkind(uint32_t value) { _impl_._has_bits_[0] |= 0x00000008u; - _impl_.contactenvironemnt_ = value; + _impl_.contactkind_ = value; } -inline void SimTrack::set_contactenvironemnt(uint32_t value) { - _internal_set_contactenvironemnt(value); - // @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ContactEnvironemnt) +inline void SimTrack::set_contactkind(uint32_t value) { + _internal_set_contactkind(value); + // @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ContactKind) } -// optional double ContactRCS = 9; +// optional uint32 ContactSide = 9; +inline bool SimTrack::_internal_has_contactside() const { + bool value = (_impl_._has_bits_[0] & 0x00000080u) != 0; + return value; +} +inline bool SimTrack::has_contactside() const { + return _internal_has_contactside(); +} +inline void SimTrack::clear_contactside() { + _impl_.contactside_ = 0u; + _impl_._has_bits_[0] &= ~0x00000080u; +} +inline uint32_t SimTrack::_internal_contactside() const { + return _impl_.contactside_; +} +inline uint32_t SimTrack::contactside() const { + // @@protoc_insertion_point(field_get:messages.SimTrack.SimTrack.ContactSide) + return _internal_contactside(); +} +inline void SimTrack::_internal_set_contactside(uint32_t value) { + _impl_._has_bits_[0] |= 0x00000080u; + _impl_.contactside_ = value; +} +inline void SimTrack::set_contactside(uint32_t value) { + _internal_set_contactside(value); + // @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ContactSide) +} + +// optional double ContactRCS = 10; inline bool SimTrack::_internal_has_contactrcs() const { bool value = (_impl_._has_bits_[0] & 0x00000040u) != 0; return value; @@ -1056,7 +1099,7 @@ inline void SimTrack::set_contactrcs(double value) { // @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ContactRCS) } -// repeated .messages.SimTrack.Emission ContactEmissions = 10; +// repeated .messages.SimTrack.Emission ContactEmissions = 11; 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 985f2e5..1494bd2 100644 --- a/include/SimCore/Messages/Protos/SimTrack.proto +++ b/include/SimCore/Messages/Protos/SimTrack.proto @@ -20,10 +20,11 @@ message SimTrack { optional double ContactSpeed = 5; optional double ContactCourse = 6; optional double ConactPitch = 7; - optional uint32 ContactEnvironemnt = 8; - optional double ContactRCS = 9; + optional uint32 ContactKind = 8; + optional uint32 ContactSide = 9; + optional double ContactRCS = 10; - repeated Emission ContactEmissions = 10; + repeated Emission ContactEmissions = 11; // google.protobuf.Timestamp timestamp = 9; } diff --git a/include/SimCore/Messages/SimTrack.hpp b/include/SimCore/Messages/SimTrack.hpp index 278ebfa..9187129 100644 --- a/include/SimCore/Messages/SimTrack.hpp +++ b/include/SimCore/Messages/SimTrack.hpp @@ -4,6 +4,7 @@ #include #include "SimCore/Messages/Protos/SimTrack.pb.h" +#include "SimCore/SimCore.hpp" #include #include #include @@ -20,13 +21,13 @@ namespace SimCore public: SimTrack(); - SimTrack(std::string name, SimCore::EntityKind entityKind); + SimTrack(std::string name, SimCore::Kind::EntityKind entityKind,SimCore::Side::EntitySide Side); - SimTrack(WHISPER::SourceType sourcetype, SimCore::EntityKind entityKind); + SimTrack(WHISPER::SourceType sourcetype, SimCore::Kind::EntityKind entityKind, SimCore::Side::EntitySide Side); - SimTrack(SimCore::Identifier id,std::string name, SimCore::EntityKind entityKind); + SimTrack(SimCore::Identifier id,std::string name, SimCore::Kind::EntityKind entityKind,SimCore::Side::EntitySide Side); - SimTrack(SimCore::Identifier id, WHISPER::SourceType sourcetype, SimCore::EntityKind entityKind); + SimTrack(SimCore::Identifier id, WHISPER::SourceType sourcetype, SimCore::Kind::EntityKind entityKind,SimCore::Side::EntitySide Side); ~SimTrack(); @@ -79,7 +80,8 @@ namespace SimCore Data RCS; Data SourceType; - Data EntityKind; + Data EntitySide; + Data EntityKind; private: const SimCore::Identifier ID_; diff --git a/include/SimCore/SimCore.hpp b/include/SimCore/SimCore.hpp index 16cc8b6..6f24574 100644 --- a/include/SimCore/SimCore.hpp +++ b/include/SimCore/SimCore.hpp @@ -1,5 +1,7 @@ #pragma once #include +#include +#include #define RCS_DEFAULT 1000 #define RCS_AIR 800 @@ -42,16 +44,45 @@ INTERNAL = false }; +namespace Side { -enum EntityKind : std::uint8_t{ - UNKNOWN = 0, - SURFACE = 1, - SUBSURFACE = 2, - AIR = 3, - LAND = 4, - SPACE = 5 -}; + enum EntitySide : std::uint8_t{ + UNKNOWN, + NEUTRAL = 1, + HOSTILE = 2, + FRIEND = 3, + + }; + static std::map EntitySideMap = + { + {EntitySide::UNKNOWN, "Unknown"}, + {EntitySide::NEUTRAL, "Neutral"}, + {EntitySide::HOSTILE, "Hostile"}, + {EntitySide::FRIEND, "Friend"} + }; +} +namespace Kind { + + enum EntityKind : std::uint8_t{ + UNKNOWN = 0, + SURFACE = 1, + SUBSURFACE = 2, + AIR = 3, + LAND = 4, + SPACE = 5 + }; + + static std::map EntityKindMap = + { + {UNKNOWN, "Unknown"}, + {SURFACE, "Surface"}, + {SUBSURFACE, "Subsurface" }, + {AIR, "Air"}, + {LAND, "Land"}, + {SPACE, "Space"} + }; +} enum SensorKinds : std::uint32_t { RADAR = 1, diff --git a/src/SimCore/Messages/SimTrack.cpp b/src/SimCore/Messages/SimTrack.cpp index 63bb3e9..3a28508 100644 --- a/src/SimCore/Messages/SimTrack.cpp +++ b/src/SimCore/Messages/SimTrack.cpp @@ -1,3 +1,4 @@ +#include "SimCore/SimCore.hpp" #include "WHISPER/Messages/Message.hpp" #include #include @@ -10,8 +11,8 @@ namespace SimCore SimTrack::SimTrack() :ID_(SimCore::Identifier()) { - EntityKind.setValue(SimCore::EntityKind::UNKNOWN); - + EntityKind.setValue(Kind::UNKNOWN); + EntitySide.setValue(Side::UNKNOWN); position_ = SimCore::Position(); Speed.setValue(0); Course.setValue(0); @@ -19,34 +20,41 @@ namespace SimCore RCS.setValue(0); } - SimTrack::SimTrack(std::string name, SimCore::EntityKind entityKind):ID_(SimCore::Identifier()) + SimTrack::SimTrack(std::string name, SimCore::Kind::EntityKind entityKind, SimCore::Side::EntitySide Side) + :ID_(SimCore::Identifier()),Name(name) { - Name.setValue(name); + + EntityKind.setValue(entityKind); + EntitySide.setValue(Side); + + } - SimTrack::SimTrack(WHISPER::SourceType sourcetype,SimCore::EntityKind entityKind) + SimTrack::SimTrack(WHISPER::SourceType sourcetype,SimCore::Kind::EntityKind entityKind, SimCore::Side::EntitySide Side) :ID_(SimCore::Identifier()) { EntityKind.setValue(entityKind); - + EntitySide.setValue(Side); + position_ = SimCore::Position(); Speed.setValue(0); Course.setValue(0); Pitch.setValue(0); RCS.setValue(0); } - SimTrack::SimTrack(SimCore::Identifier id,std::string name, SimCore::EntityKind entityKind) + SimTrack::SimTrack(SimCore::Identifier id,std::string name, SimCore::Kind::EntityKind entityKind, SimCore::Side::EntitySide Side) :ID_(id),Name(name),EntityKind(entityKind) { } - SimTrack::SimTrack(SimCore::Identifier id ,WHISPER::SourceType sourcetype,SimCore::EntityKind entityKind ) + SimTrack::SimTrack(SimCore::Identifier id ,WHISPER::SourceType sourcetype,SimCore::Kind::EntityKind entityKind, SimCore::Side::EntitySide Side) :ID_(id),SourceType(sourcetype) { EntityKind.setValue(entityKind); + EntitySide.setValue(Side); position_ = SimCore::Position(); Speed.setValue(0); @@ -100,6 +108,8 @@ namespace SimCore SimTrack.mutable_geocentricposition()->set_y(position_.getGeocentricPos()(SimCore::Y)); SimTrack.mutable_geocentricposition()->set_z(position_.getGeocentricPos()(SimCore::Z)); } + if(EntitySide.isValid()) SimTrack.set_contactside(this->EntitySide.getValue()); + if(EntityKind.isValid()) SimTrack.set_contactkind(this->EntitySide.getValue()); if(Speed.isValid()) SimTrack.set_contactspeed(this->Speed.getValue()); if(Course.isValid()) SimTrack.set_contactcourse(this->Course.getValue()); @@ -146,9 +156,21 @@ namespace SimCore WHISPER::SourceType sourcetype = (WHISPER::SourceType)trackMsg.contactsourcetype(); - SimCore::EntityKind entityKind = (SimCore::EntityKind)trackMsg.contactenvironemnt(); - - SimCore::SimTrack track(id,trackMsg.conatactname(),entityKind); + + SimCore::Kind::EntityKind entityKind = SimCore::Kind::UNKNOWN; + if (trackMsg.has_contactkind()) + { + entityKind = (SimCore::Kind::EntityKind)trackMsg.contactkind(); + } + + SimCore::Side::EntitySide entitySide = SimCore::Side::UNKNOWN; + if (trackMsg.has_contactside()) + { + entitySide = (SimCore::Side::EntitySide)trackMsg.contactside(); + } + + + SimCore::SimTrack track(id,trackMsg.conatactname(),entityKind,entitySide); if (trackMsg.has_contactsourcetype()) { @@ -178,23 +200,23 @@ namespace SimCore { switch (entityKind) { - case SimCore::EntityKind::AIR: + case SimCore::Kind::EntityKind::AIR: { track.RCS.setValue(RCS_AIR); break; } - case SimCore::EntityKind::LAND: + case SimCore::Kind::EntityKind::LAND: { track.RCS.setValue(RCS_LAND); break; } - case SimCore::EntityKind::SURFACE: + case SimCore::Kind::EntityKind::SURFACE: { track.RCS.setValue(RCS_SURFACE); break; } - case SimCore::EntityKind::SPACE: + case SimCore::Kind::EntityKind::SPACE: { track.RCS.setValue(RCS_SPACE); break;