diff --git a/CMakeLists.txt b/CMakeLists.txt index d945c99..cedbe32 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,11 +33,15 @@ add_library(SimCore STATIC include/SimCore/Messages/Track.hpp src/SimCore/Messages/Track.cpp + include/SimCore/Messages/RadarTrack.hpp + src/SimCore/Messages/RadarTrack.cpp + + include/SimCore/Messages/Protos/Track.pb.cc include/SimCore/Messages/Protos/GeocentricPosition.pb.cc include/SimCore/Messages/Protos/Identifier.pb.cc - include/SimCore/Messages/Protos/RadarMessage.pb.cc + include/SimCore/Messages/Protos/RadarTrack.pb.cc include/SimCore/Position.hpp src/SimCore/Position.cpp @@ -105,7 +109,11 @@ IF (${TEST_SIMCORE_LIBRARY}) add_executable(test_TrackClass tests/test_TrackClass.cpp) target_link_libraries(test_TrackClass Catch2::Catch2 SimCore eigen loguru) catch_discover_tests(test_TrackClass) - + + add_executable(test_RadarTrackClass tests/test_RadarTrackClass.cpp) + target_link_libraries(test_RadarTrackClass Catch2::Catch2 SimCore loguru) + catch_discover_tests(test_RadarTrackClass) + add_executable(test_SafeMap tests/test_SafeMap.cpp) target_link_libraries(test_SafeMap Catch2::Catch2 SimCore loguru) catch_discover_tests(test_SafeMap) @@ -123,4 +131,6 @@ IF (${TEST_SIMCORE_LIBRARY}) target_link_libraries(test_UtilFunctions Catch2::Catch2 SimCore loguru) catch_discover_tests(test_UtilFunctions) + + ENDIF() diff --git a/include/SimCore/Messages/ESMTrack.hpp b/include/SimCore/Messages/ESMTrack.hpp new file mode 100644 index 0000000..e69de29 diff --git a/include/SimCore/Messages/Protos/RadarMessage.proto b/include/SimCore/Messages/Protos/RadarMessage.proto deleted file mode 100644 index 2446c8a..0000000 --- a/include/SimCore/Messages/Protos/RadarMessage.proto +++ /dev/null @@ -1,19 +0,0 @@ -syntax = "proto3"; -package messages.RadarMessage; - -import "google/protobuf/timestamp.proto"; -import "GeocentricPosition.proto"; -import "Identifier.proto"; -// [END declaration] - - -message RadarMessage { - messages.track.Identifier EntityIdentifier = 1; - messages.track.EntityGeocentricPosition GeocentricPosition = 2; - double ContactSpeed = 3; - double ContactCourse = 4; - double ContactBearing = 5; - double ContactRange = 6; - string ContactEnvironemnt = 7; - -} \ No newline at end of file diff --git a/include/SimCore/Messages/Protos/RadarMessage.pb.cc b/include/SimCore/Messages/Protos/RadarTrack.pb.cc similarity index 60% rename from include/SimCore/Messages/Protos/RadarMessage.pb.cc rename to include/SimCore/Messages/Protos/RadarTrack.pb.cc index 8838587..ffb0b78 100644 --- a/include/SimCore/Messages/Protos/RadarMessage.pb.cc +++ b/include/SimCore/Messages/Protos/RadarTrack.pb.cc @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! -// source: RadarMessage.proto +// source: RadarTrack.proto -#include "RadarMessage.pb.h" +#include "RadarTrack.pb.h" #include @@ -21,144 +21,163 @@ namespace _pb = ::PROTOBUF_NAMESPACE_ID; namespace _pbi = _pb::internal; namespace messages { -namespace RadarMessage { -PROTOBUF_CONSTEXPR RadarMessage::RadarMessage( +namespace track { +PROTOBUF_CONSTEXPR RadarTrack::RadarTrack( ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_.contactenvironemnt_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + /*decltype(_impl_.radarid_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} , /*decltype(_impl_.entityidentifier_)*/nullptr , /*decltype(_impl_.geocentricposition_)*/nullptr + , /*decltype(_impl_.timestamp_)*/nullptr , /*decltype(_impl_.contactspeed_)*/0 , /*decltype(_impl_.contactcourse_)*/0 , /*decltype(_impl_.contactbearing_)*/0 , /*decltype(_impl_.contactrange_)*/0 + , /*decltype(_impl_.contactenvironemnt_)*/0u , /*decltype(_impl_._cached_size_)*/{}} {} -struct RadarMessageDefaultTypeInternal { - PROTOBUF_CONSTEXPR RadarMessageDefaultTypeInternal() +struct RadarTrackDefaultTypeInternal { + PROTOBUF_CONSTEXPR RadarTrackDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {} - ~RadarMessageDefaultTypeInternal() {} + ~RadarTrackDefaultTypeInternal() {} union { - RadarMessage _instance; + RadarTrack _instance; }; }; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RadarMessageDefaultTypeInternal _RadarMessage_default_instance_; -} // namespace RadarMessage +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RadarTrackDefaultTypeInternal _RadarTrack_default_instance_; +} // namespace track } // namespace messages -static ::_pb::Metadata file_level_metadata_RadarMessage_2eproto[1]; -static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_RadarMessage_2eproto = nullptr; -static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_RadarMessage_2eproto = nullptr; +static ::_pb::Metadata file_level_metadata_RadarTrack_2eproto[1]; +static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_RadarTrack_2eproto = nullptr; +static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_RadarTrack_2eproto = nullptr; -const uint32_t TableStruct_RadarMessage_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { +const uint32_t TableStruct_RadarTrack_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::messages::RadarMessage::RadarMessage, _internal_metadata_), + PROTOBUF_FIELD_OFFSET(::messages::track::RadarTrack, _internal_metadata_), ~0u, // no _extensions_ ~0u, // no _oneof_case_ ~0u, // no _weak_field_map_ ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::messages::RadarMessage::RadarMessage, _impl_.entityidentifier_), - PROTOBUF_FIELD_OFFSET(::messages::RadarMessage::RadarMessage, _impl_.geocentricposition_), - PROTOBUF_FIELD_OFFSET(::messages::RadarMessage::RadarMessage, _impl_.contactspeed_), - PROTOBUF_FIELD_OFFSET(::messages::RadarMessage::RadarMessage, _impl_.contactcourse_), - PROTOBUF_FIELD_OFFSET(::messages::RadarMessage::RadarMessage, _impl_.contactbearing_), - PROTOBUF_FIELD_OFFSET(::messages::RadarMessage::RadarMessage, _impl_.contactrange_), - PROTOBUF_FIELD_OFFSET(::messages::RadarMessage::RadarMessage, _impl_.contactenvironemnt_), + PROTOBUF_FIELD_OFFSET(::messages::track::RadarTrack, _impl_.radarid_), + PROTOBUF_FIELD_OFFSET(::messages::track::RadarTrack, _impl_.entityidentifier_), + PROTOBUF_FIELD_OFFSET(::messages::track::RadarTrack, _impl_.geocentricposition_), + PROTOBUF_FIELD_OFFSET(::messages::track::RadarTrack, _impl_.contactspeed_), + PROTOBUF_FIELD_OFFSET(::messages::track::RadarTrack, _impl_.contactcourse_), + PROTOBUF_FIELD_OFFSET(::messages::track::RadarTrack, _impl_.contactbearing_), + PROTOBUF_FIELD_OFFSET(::messages::track::RadarTrack, _impl_.contactrange_), + PROTOBUF_FIELD_OFFSET(::messages::track::RadarTrack, _impl_.contactenvironemnt_), + PROTOBUF_FIELD_OFFSET(::messages::track::RadarTrack, _impl_.timestamp_), }; static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - { 0, -1, -1, sizeof(::messages::RadarMessage::RadarMessage)}, + { 0, -1, -1, sizeof(::messages::track::RadarTrack)}, }; static const ::_pb::Message* const file_default_instances[] = { - &::messages::RadarMessage::_RadarMessage_default_instance_._instance, + &::messages::track::_RadarTrack_default_instance_._instance, }; -const char descriptor_table_protodef_RadarMessage_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = - "\n\022RadarMessage.proto\022\025messages.RadarMess" - "age\032\037google/protobuf/timestamp.proto\032\030Ge" - "ocentricPosition.proto\032\020Identifier.proto" - "\"\201\002\n\014RadarMessage\0224\n\020EntityIdentifier\030\001 " - "\001(\0132\032.messages.track.Identifier\022D\n\022Geoce" - "ntricPosition\030\002 \001(\0132(.messages.track.Ent" - "ityGeocentricPosition\022\024\n\014ContactSpeed\030\003 " - "\001(\001\022\025\n\rContactCourse\030\004 \001(\001\022\026\n\016ContactBea" - "ring\030\005 \001(\001\022\024\n\014ContactRange\030\006 \001(\001\022\032\n\022Cont" - "actEnvironemnt\030\007 \001(\tb\006proto3" +const char descriptor_table_protodef_RadarTrack_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n\020RadarTrack.proto\022\016messages.track\032\037goog" + "le/protobuf/timestamp.proto\032\030GeocentricP" + "osition.proto\032\020Identifier.proto\"\277\002\n\nRada" + "rTrack\022\017\n\007RadarID\030\001 \001(\t\0224\n\020EntityIdentif" + "ier\030\002 \001(\0132\032.messages.track.Identifier\022D\n" + "\022GeocentricPosition\030\003 \001(\0132(.messages.tra" + "ck.EntityGeocentricPosition\022\024\n\014ContactSp" + "eed\030\004 \001(\001\022\025\n\rContactCourse\030\005 \001(\001\022\026\n\016Cont" + "actBearing\030\006 \001(\001\022\024\n\014ContactRange\030\007 \001(\001\022\032" + "\n\022ContactEnvironemnt\030\010 \001(\r\022-\n\ttimestamp\030" + "\t \001(\0132\032.google.protobuf.Timestampb\006proto" + "3" ; -static const ::_pbi::DescriptorTable* const descriptor_table_RadarMessage_2eproto_deps[3] = { +static const ::_pbi::DescriptorTable* const descriptor_table_RadarTrack_2eproto_deps[3] = { &::descriptor_table_GeocentricPosition_2eproto, &::descriptor_table_Identifier_2eproto, &::descriptor_table_google_2fprotobuf_2ftimestamp_2eproto, }; -static ::_pbi::once_flag descriptor_table_RadarMessage_2eproto_once; -const ::_pbi::DescriptorTable descriptor_table_RadarMessage_2eproto = { - false, false, 388, descriptor_table_protodef_RadarMessage_2eproto, - "RadarMessage.proto", - &descriptor_table_RadarMessage_2eproto_once, descriptor_table_RadarMessage_2eproto_deps, 3, 1, - schemas, file_default_instances, TableStruct_RadarMessage_2eproto::offsets, - file_level_metadata_RadarMessage_2eproto, file_level_enum_descriptors_RadarMessage_2eproto, - file_level_service_descriptors_RadarMessage_2eproto, +static ::_pbi::once_flag descriptor_table_RadarTrack_2eproto_once; +const ::_pbi::DescriptorTable descriptor_table_RadarTrack_2eproto = { + false, false, 441, descriptor_table_protodef_RadarTrack_2eproto, + "RadarTrack.proto", + &descriptor_table_RadarTrack_2eproto_once, descriptor_table_RadarTrack_2eproto_deps, 3, 1, + schemas, file_default_instances, TableStruct_RadarTrack_2eproto::offsets, + file_level_metadata_RadarTrack_2eproto, file_level_enum_descriptors_RadarTrack_2eproto, + file_level_service_descriptors_RadarTrack_2eproto, }; -PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_RadarMessage_2eproto_getter() { - return &descriptor_table_RadarMessage_2eproto; +PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_RadarTrack_2eproto_getter() { + return &descriptor_table_RadarTrack_2eproto; } // Force running AddDescriptors() at dynamic initialization time. -PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_RadarMessage_2eproto(&descriptor_table_RadarMessage_2eproto); +PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_RadarTrack_2eproto(&descriptor_table_RadarTrack_2eproto); namespace messages { -namespace RadarMessage { +namespace track { // =================================================================== -class RadarMessage::_Internal { +class RadarTrack::_Internal { public: - static const ::messages::track::Identifier& entityidentifier(const RadarMessage* msg); - static const ::messages::track::EntityGeocentricPosition& geocentricposition(const RadarMessage* msg); + static const ::messages::track::Identifier& entityidentifier(const RadarTrack* msg); + static const ::messages::track::EntityGeocentricPosition& geocentricposition(const RadarTrack* msg); + static const ::PROTOBUF_NAMESPACE_ID::Timestamp& timestamp(const RadarTrack* msg); }; const ::messages::track::Identifier& -RadarMessage::_Internal::entityidentifier(const RadarMessage* msg) { +RadarTrack::_Internal::entityidentifier(const RadarTrack* msg) { return *msg->_impl_.entityidentifier_; } const ::messages::track::EntityGeocentricPosition& -RadarMessage::_Internal::geocentricposition(const RadarMessage* msg) { +RadarTrack::_Internal::geocentricposition(const RadarTrack* msg) { return *msg->_impl_.geocentricposition_; } -void RadarMessage::clear_entityidentifier() { +const ::PROTOBUF_NAMESPACE_ID::Timestamp& +RadarTrack::_Internal::timestamp(const RadarTrack* msg) { + return *msg->_impl_.timestamp_; +} +void RadarTrack::clear_entityidentifier() { if (GetArenaForAllocation() == nullptr && _impl_.entityidentifier_ != nullptr) { delete _impl_.entityidentifier_; } _impl_.entityidentifier_ = nullptr; } -void RadarMessage::clear_geocentricposition() { +void RadarTrack::clear_geocentricposition() { if (GetArenaForAllocation() == nullptr && _impl_.geocentricposition_ != nullptr) { delete _impl_.geocentricposition_; } _impl_.geocentricposition_ = nullptr; } -RadarMessage::RadarMessage(::PROTOBUF_NAMESPACE_ID::Arena* arena, +void RadarTrack::clear_timestamp() { + if (GetArenaForAllocation() == nullptr && _impl_.timestamp_ != nullptr) { + delete _impl_.timestamp_; + } + _impl_.timestamp_ = nullptr; +} +RadarTrack::RadarTrack(::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:messages.RadarMessage.RadarMessage) + // @@protoc_insertion_point(arena_constructor:messages.track.RadarTrack) } -RadarMessage::RadarMessage(const RadarMessage& from) +RadarTrack::RadarTrack(const RadarTrack& from) : ::PROTOBUF_NAMESPACE_ID::Message() { - RadarMessage* const _this = this; (void)_this; + RadarTrack* const _this = this; (void)_this; new (&_impl_) Impl_{ - decltype(_impl_.contactenvironemnt_){} + decltype(_impl_.radarid_){} , decltype(_impl_.entityidentifier_){nullptr} , decltype(_impl_.geocentricposition_){nullptr} + , decltype(_impl_.timestamp_){nullptr} , decltype(_impl_.contactspeed_){} , decltype(_impl_.contactcourse_){} , decltype(_impl_.contactbearing_){} , decltype(_impl_.contactrange_){} + , decltype(_impl_.contactenvironemnt_){} , /*decltype(_impl_._cached_size_)*/{}}; _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - _impl_.contactenvironemnt_.InitDefault(); + _impl_.radarid_.InitDefault(); #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.contactenvironemnt_.Set("", GetArenaForAllocation()); + _impl_.radarid_.Set("", GetArenaForAllocation()); #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (!from._internal_contactenvironemnt().empty()) { - _this->_impl_.contactenvironemnt_.Set(from._internal_contactenvironemnt(), + if (!from._internal_radarid().empty()) { + _this->_impl_.radarid_.Set(from._internal_radarid(), _this->GetArenaForAllocation()); } if (from._internal_has_entityidentifier()) { @@ -167,34 +186,39 @@ RadarMessage::RadarMessage(const RadarMessage& from) if (from._internal_has_geocentricposition()) { _this->_impl_.geocentricposition_ = new ::messages::track::EntityGeocentricPosition(*from._impl_.geocentricposition_); } + if (from._internal_has_timestamp()) { + _this->_impl_.timestamp_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.timestamp_); + } ::memcpy(&_impl_.contactspeed_, &from._impl_.contactspeed_, - static_cast(reinterpret_cast(&_impl_.contactrange_) - - reinterpret_cast(&_impl_.contactspeed_)) + sizeof(_impl_.contactrange_)); - // @@protoc_insertion_point(copy_constructor:messages.RadarMessage.RadarMessage) + static_cast(reinterpret_cast(&_impl_.contactenvironemnt_) - + reinterpret_cast(&_impl_.contactspeed_)) + sizeof(_impl_.contactenvironemnt_)); + // @@protoc_insertion_point(copy_constructor:messages.track.RadarTrack) } -inline void RadarMessage::SharedCtor( +inline void RadarTrack::SharedCtor( ::_pb::Arena* arena, bool is_message_owned) { (void)arena; (void)is_message_owned; new (&_impl_) Impl_{ - decltype(_impl_.contactenvironemnt_){} + decltype(_impl_.radarid_){} , decltype(_impl_.entityidentifier_){nullptr} , decltype(_impl_.geocentricposition_){nullptr} + , decltype(_impl_.timestamp_){nullptr} , decltype(_impl_.contactspeed_){0} , decltype(_impl_.contactcourse_){0} , decltype(_impl_.contactbearing_){0} , decltype(_impl_.contactrange_){0} + , decltype(_impl_.contactenvironemnt_){0u} , /*decltype(_impl_._cached_size_)*/{} }; - _impl_.contactenvironemnt_.InitDefault(); + _impl_.radarid_.InitDefault(); #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.contactenvironemnt_.Set("", GetArenaForAllocation()); + _impl_.radarid_.Set("", GetArenaForAllocation()); #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING } -RadarMessage::~RadarMessage() { - // @@protoc_insertion_point(destructor:messages.RadarMessage.RadarMessage) +RadarTrack::~RadarTrack() { + // @@protoc_insertion_point(destructor:messages.track.RadarTrack) if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { (void)arena; return; @@ -202,24 +226,25 @@ RadarMessage::~RadarMessage() { SharedDtor(); } -inline void RadarMessage::SharedDtor() { +inline void RadarTrack::SharedDtor() { GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - _impl_.contactenvironemnt_.Destroy(); + _impl_.radarid_.Destroy(); if (this != internal_default_instance()) delete _impl_.entityidentifier_; if (this != internal_default_instance()) delete _impl_.geocentricposition_; + if (this != internal_default_instance()) delete _impl_.timestamp_; } -void RadarMessage::SetCachedSize(int size) const { +void RadarTrack::SetCachedSize(int size) const { _impl_._cached_size_.Set(size); } -void RadarMessage::Clear() { -// @@protoc_insertion_point(message_clear_start:messages.RadarMessage.RadarMessage) +void RadarTrack::Clear() { +// @@protoc_insertion_point(message_clear_start:messages.track.RadarTrack) uint32_t cached_has_bits = 0; // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - _impl_.contactenvironemnt_.ClearToEmpty(); + _impl_.radarid_.ClearToEmpty(); if (GetArenaForAllocation() == nullptr && _impl_.entityidentifier_ != nullptr) { delete _impl_.entityidentifier_; } @@ -228,73 +253,93 @@ void RadarMessage::Clear() { delete _impl_.geocentricposition_; } _impl_.geocentricposition_ = nullptr; + if (GetArenaForAllocation() == nullptr && _impl_.timestamp_ != nullptr) { + delete _impl_.timestamp_; + } + _impl_.timestamp_ = nullptr; ::memset(&_impl_.contactspeed_, 0, static_cast( - reinterpret_cast(&_impl_.contactrange_) - - reinterpret_cast(&_impl_.contactspeed_)) + sizeof(_impl_.contactrange_)); + reinterpret_cast(&_impl_.contactenvironemnt_) - + reinterpret_cast(&_impl_.contactspeed_)) + sizeof(_impl_.contactenvironemnt_)); _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); } -const char* RadarMessage::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +const char* RadarTrack::_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) { - // .messages.track.Identifier EntityIdentifier = 1; + // string RadarID = 1; case 1: if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_radarid(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "messages.track.RadarTrack.RadarID")); + } else + goto handle_unusual; + continue; + // .messages.track.Identifier EntityIdentifier = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { ptr = ctx->ParseMessage(_internal_mutable_entityidentifier(), ptr); CHK_(ptr); } else goto handle_unusual; continue; - // .messages.track.EntityGeocentricPosition GeocentricPosition = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + // .messages.track.EntityGeocentricPosition GeocentricPosition = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { ptr = ctx->ParseMessage(_internal_mutable_geocentricposition(), ptr); CHK_(ptr); } else goto handle_unusual; continue; - // double ContactSpeed = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 25)) { + // double ContactSpeed = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 33)) { _impl_.contactspeed_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); ptr += sizeof(double); } else goto handle_unusual; continue; - // double ContactCourse = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 33)) { + // double ContactCourse = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 41)) { _impl_.contactcourse_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); ptr += sizeof(double); } else goto handle_unusual; continue; - // double ContactBearing = 5; - case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 41)) { + // double ContactBearing = 6; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 49)) { _impl_.contactbearing_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); ptr += sizeof(double); } else goto handle_unusual; continue; - // double ContactRange = 6; - case 6: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 49)) { + // double ContactRange = 7; + case 7: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 57)) { _impl_.contactrange_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); ptr += sizeof(double); } else goto handle_unusual; continue; - // string ContactEnvironemnt = 7; - case 7: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 58)) { - auto str = _internal_mutable_contactenvironemnt(); - ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + // uint32 ContactEnvironemnt = 8; + case 8: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 64)) { + _impl_.contactenvironemnt_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // .google.protobuf.Timestamp timestamp = 9; + case 9: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 74)) { + ptr = ctx->ParseMessage(_internal_mutable_timestamp(), ptr); CHK_(ptr); - CHK_(::_pbi::VerifyUTF8(str, "messages.RadarMessage.RadarMessage.ContactEnvironemnt")); } else goto handle_unusual; continue; @@ -321,114 +366,134 @@ failure: #undef CHK_ } -uint8_t* RadarMessage::_InternalSerialize( +uint8_t* RadarTrack::_InternalSerialize( uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:messages.RadarMessage.RadarMessage) + // @@protoc_insertion_point(serialize_to_array_start:messages.track.RadarTrack) uint32_t cached_has_bits = 0; (void) cached_has_bits; - // .messages.track.Identifier EntityIdentifier = 1; + // string RadarID = 1; + if (!this->_internal_radarid().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_radarid().data(), static_cast(this->_internal_radarid().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "messages.track.RadarTrack.RadarID"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_radarid(), target); + } + + // .messages.track.Identifier EntityIdentifier = 2; if (this->_internal_has_entityidentifier()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(1, _Internal::entityidentifier(this), + InternalWriteMessage(2, _Internal::entityidentifier(this), _Internal::entityidentifier(this).GetCachedSize(), target, stream); } - // .messages.track.EntityGeocentricPosition GeocentricPosition = 2; + // .messages.track.EntityGeocentricPosition GeocentricPosition = 3; if (this->_internal_has_geocentricposition()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(2, _Internal::geocentricposition(this), + InternalWriteMessage(3, _Internal::geocentricposition(this), _Internal::geocentricposition(this).GetCachedSize(), target, stream); } - // double ContactSpeed = 3; + // double ContactSpeed = 4; static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); double tmp_contactspeed = this->_internal_contactspeed(); uint64_t raw_contactspeed; memcpy(&raw_contactspeed, &tmp_contactspeed, sizeof(tmp_contactspeed)); if (raw_contactspeed != 0) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteDoubleToArray(3, this->_internal_contactspeed(), target); + target = ::_pbi::WireFormatLite::WriteDoubleToArray(4, this->_internal_contactspeed(), target); } - // double ContactCourse = 4; + // double ContactCourse = 5; static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); double tmp_contactcourse = this->_internal_contactcourse(); uint64_t raw_contactcourse; memcpy(&raw_contactcourse, &tmp_contactcourse, sizeof(tmp_contactcourse)); if (raw_contactcourse != 0) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteDoubleToArray(4, this->_internal_contactcourse(), target); + target = ::_pbi::WireFormatLite::WriteDoubleToArray(5, this->_internal_contactcourse(), target); } - // double ContactBearing = 5; + // double ContactBearing = 6; static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); double tmp_contactbearing = this->_internal_contactbearing(); uint64_t raw_contactbearing; memcpy(&raw_contactbearing, &tmp_contactbearing, sizeof(tmp_contactbearing)); if (raw_contactbearing != 0) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteDoubleToArray(5, this->_internal_contactbearing(), target); + target = ::_pbi::WireFormatLite::WriteDoubleToArray(6, this->_internal_contactbearing(), target); } - // double ContactRange = 6; + // double ContactRange = 7; static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); double tmp_contactrange = this->_internal_contactrange(); uint64_t raw_contactrange; memcpy(&raw_contactrange, &tmp_contactrange, sizeof(tmp_contactrange)); if (raw_contactrange != 0) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteDoubleToArray(6, this->_internal_contactrange(), target); + target = ::_pbi::WireFormatLite::WriteDoubleToArray(7, this->_internal_contactrange(), target); } - // string ContactEnvironemnt = 7; - if (!this->_internal_contactenvironemnt().empty()) { - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( - this->_internal_contactenvironemnt().data(), static_cast(this->_internal_contactenvironemnt().length()), - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "messages.RadarMessage.RadarMessage.ContactEnvironemnt"); - target = stream->WriteStringMaybeAliased( - 7, this->_internal_contactenvironemnt(), target); + // uint32 ContactEnvironemnt = 8; + if (this->_internal_contactenvironemnt() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteUInt32ToArray(8, this->_internal_contactenvironemnt(), target); + } + + // .google.protobuf.Timestamp timestamp = 9; + if (this->_internal_has_timestamp()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(9, _Internal::timestamp(this), + _Internal::timestamp(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); } - // @@protoc_insertion_point(serialize_to_array_end:messages.RadarMessage.RadarMessage) + // @@protoc_insertion_point(serialize_to_array_end:messages.track.RadarTrack) return target; } -size_t RadarMessage::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:messages.RadarMessage.RadarMessage) +size_t RadarTrack::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:messages.track.RadarTrack) size_t total_size = 0; uint32_t cached_has_bits = 0; // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - // string ContactEnvironemnt = 7; - if (!this->_internal_contactenvironemnt().empty()) { + // string RadarID = 1; + if (!this->_internal_radarid().empty()) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( - this->_internal_contactenvironemnt()); + this->_internal_radarid()); } - // .messages.track.Identifier EntityIdentifier = 1; + // .messages.track.Identifier EntityIdentifier = 2; if (this->_internal_has_entityidentifier()) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( *_impl_.entityidentifier_); } - // .messages.track.EntityGeocentricPosition GeocentricPosition = 2; + // .messages.track.EntityGeocentricPosition GeocentricPosition = 3; if (this->_internal_has_geocentricposition()) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( *_impl_.geocentricposition_); } - // double ContactSpeed = 3; + // .google.protobuf.Timestamp timestamp = 9; + if (this->_internal_has_timestamp()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.timestamp_); + } + + // double ContactSpeed = 4; static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); double tmp_contactspeed = this->_internal_contactspeed(); uint64_t raw_contactspeed; @@ -437,7 +502,7 @@ size_t RadarMessage::ByteSizeLong() const { total_size += 1 + 8; } - // double ContactCourse = 4; + // double ContactCourse = 5; static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); double tmp_contactcourse = this->_internal_contactcourse(); uint64_t raw_contactcourse; @@ -446,7 +511,7 @@ size_t RadarMessage::ByteSizeLong() const { total_size += 1 + 8; } - // double ContactBearing = 5; + // double ContactBearing = 6; static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); double tmp_contactbearing = this->_internal_contactbearing(); uint64_t raw_contactbearing; @@ -455,7 +520,7 @@ size_t RadarMessage::ByteSizeLong() const { total_size += 1 + 8; } - // double ContactRange = 6; + // double ContactRange = 7; static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); double tmp_contactrange = this->_internal_contactrange(); uint64_t raw_contactrange; @@ -464,26 +529,31 @@ size_t RadarMessage::ByteSizeLong() const { total_size += 1 + 8; } + // uint32 ContactEnvironemnt = 8; + if (this->_internal_contactenvironemnt() != 0) { + total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_contactenvironemnt()); + } + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); } -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RadarMessage::_class_data_ = { +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RadarTrack::_class_data_ = { ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - RadarMessage::MergeImpl + RadarTrack::MergeImpl }; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RadarMessage::GetClassData() const { return &_class_data_; } +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RadarTrack::GetClassData() const { return &_class_data_; } -void RadarMessage::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:messages.RadarMessage.RadarMessage) +void RadarTrack::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:messages.track.RadarTrack) GOOGLE_DCHECK_NE(&from, _this); uint32_t cached_has_bits = 0; (void) cached_has_bits; - if (!from._internal_contactenvironemnt().empty()) { - _this->_internal_set_contactenvironemnt(from._internal_contactenvironemnt()); + if (!from._internal_radarid().empty()) { + _this->_internal_set_radarid(from._internal_radarid()); } if (from._internal_has_entityidentifier()) { _this->_internal_mutable_entityidentifier()->::messages::track::Identifier::MergeFrom( @@ -493,6 +563,10 @@ void RadarMessage::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::P _this->_internal_mutable_geocentricposition()->::messages::track::EntityGeocentricPosition::MergeFrom( from._internal_geocentricposition()); } + if (from._internal_has_timestamp()) { + _this->_internal_mutable_timestamp()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom( + from._internal_timestamp()); + } static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size."); double tmp_contactspeed = from._internal_contactspeed(); uint64_t raw_contactspeed; @@ -521,50 +595,53 @@ void RadarMessage::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::P if (raw_contactrange != 0) { _this->_internal_set_contactrange(from._internal_contactrange()); } + if (from._internal_contactenvironemnt() != 0) { + _this->_internal_set_contactenvironemnt(from._internal_contactenvironemnt()); + } _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); } -void RadarMessage::CopyFrom(const RadarMessage& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:messages.RadarMessage.RadarMessage) +void RadarTrack::CopyFrom(const RadarTrack& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:messages.track.RadarTrack) if (&from == this) return; Clear(); MergeFrom(from); } -bool RadarMessage::IsInitialized() const { +bool RadarTrack::IsInitialized() const { return true; } -void RadarMessage::InternalSwap(RadarMessage* other) { +void RadarTrack::InternalSwap(RadarTrack* other) { using std::swap; auto* lhs_arena = GetArenaForAllocation(); auto* rhs_arena = other->GetArenaForAllocation(); _internal_metadata_.InternalSwap(&other->_internal_metadata_); ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( - &_impl_.contactenvironemnt_, lhs_arena, - &other->_impl_.contactenvironemnt_, rhs_arena + &_impl_.radarid_, lhs_arena, + &other->_impl_.radarid_, rhs_arena ); ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(RadarMessage, _impl_.contactrange_) - + sizeof(RadarMessage::_impl_.contactrange_) - - PROTOBUF_FIELD_OFFSET(RadarMessage, _impl_.entityidentifier_)>( + PROTOBUF_FIELD_OFFSET(RadarTrack, _impl_.contactenvironemnt_) + + sizeof(RadarTrack::_impl_.contactenvironemnt_) + - PROTOBUF_FIELD_OFFSET(RadarTrack, _impl_.entityidentifier_)>( reinterpret_cast(&_impl_.entityidentifier_), reinterpret_cast(&other->_impl_.entityidentifier_)); } -::PROTOBUF_NAMESPACE_ID::Metadata RadarMessage::GetMetadata() const { +::PROTOBUF_NAMESPACE_ID::Metadata RadarTrack::GetMetadata() const { return ::_pbi::AssignDescriptors( - &descriptor_table_RadarMessage_2eproto_getter, &descriptor_table_RadarMessage_2eproto_once, - file_level_metadata_RadarMessage_2eproto[0]); + &descriptor_table_RadarTrack_2eproto_getter, &descriptor_table_RadarTrack_2eproto_once, + file_level_metadata_RadarTrack_2eproto[0]); } // @@protoc_insertion_point(namespace_scope) -} // namespace RadarMessage +} // namespace track } // namespace messages PROTOBUF_NAMESPACE_OPEN -template<> PROTOBUF_NOINLINE ::messages::RadarMessage::RadarMessage* -Arena::CreateMaybeMessage< ::messages::RadarMessage::RadarMessage >(Arena* arena) { - return Arena::CreateMessageInternal< ::messages::RadarMessage::RadarMessage >(arena); +template<> PROTOBUF_NOINLINE ::messages::track::RadarTrack* +Arena::CreateMaybeMessage< ::messages::track::RadarTrack >(Arena* arena) { + return Arena::CreateMessageInternal< ::messages::track::RadarTrack >(arena); } PROTOBUF_NAMESPACE_CLOSE diff --git a/include/SimCore/Messages/Protos/RadarMessage.pb.h b/include/SimCore/Messages/Protos/RadarTrack.pb.h similarity index 50% rename from include/SimCore/Messages/Protos/RadarMessage.pb.h rename to include/SimCore/Messages/Protos/RadarTrack.pb.h index 4a7c0ed..1b725c2 100644 --- a/include/SimCore/Messages/Protos/RadarMessage.pb.h +++ b/include/SimCore/Messages/Protos/RadarTrack.pb.h @@ -1,8 +1,8 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! -// source: RadarMessage.proto +// source: RadarTrack.proto -#ifndef GOOGLE_PROTOBUF_INCLUDED_RadarMessage_2eproto -#define GOOGLE_PROTOBUF_INCLUDED_RadarMessage_2eproto +#ifndef GOOGLE_PROTOBUF_INCLUDED_RadarTrack_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_RadarTrack_2eproto #include #include @@ -35,7 +35,7 @@ #include "Identifier.pb.h" // @@protoc_insertion_point(includes) #include -#define PROTOBUF_INTERNAL_EXPORT_RadarMessage_2eproto +#define PROTOBUF_INTERNAL_EXPORT_RadarTrack_2eproto PROTOBUF_NAMESPACE_OPEN namespace internal { class AnyMetadata; @@ -43,43 +43,43 @@ class AnyMetadata; PROTOBUF_NAMESPACE_CLOSE // Internal implementation detail -- do not use these members. -struct TableStruct_RadarMessage_2eproto { +struct TableStruct_RadarTrack_2eproto { static const uint32_t offsets[]; }; -extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_RadarMessage_2eproto; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_RadarTrack_2eproto; namespace messages { -namespace RadarMessage { -class RadarMessage; -struct RadarMessageDefaultTypeInternal; -extern RadarMessageDefaultTypeInternal _RadarMessage_default_instance_; -} // namespace RadarMessage +namespace track { +class RadarTrack; +struct RadarTrackDefaultTypeInternal; +extern RadarTrackDefaultTypeInternal _RadarTrack_default_instance_; +} // namespace track } // namespace messages PROTOBUF_NAMESPACE_OPEN -template<> ::messages::RadarMessage::RadarMessage* Arena::CreateMaybeMessage<::messages::RadarMessage::RadarMessage>(Arena*); +template<> ::messages::track::RadarTrack* Arena::CreateMaybeMessage<::messages::track::RadarTrack>(Arena*); PROTOBUF_NAMESPACE_CLOSE namespace messages { -namespace RadarMessage { +namespace track { // =================================================================== -class RadarMessage final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:messages.RadarMessage.RadarMessage) */ { +class RadarTrack final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:messages.track.RadarTrack) */ { public: - inline RadarMessage() : RadarMessage(nullptr) {} - ~RadarMessage() override; - explicit PROTOBUF_CONSTEXPR RadarMessage(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + inline RadarTrack() : RadarTrack(nullptr) {} + ~RadarTrack() override; + explicit PROTOBUF_CONSTEXPR RadarTrack(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - RadarMessage(const RadarMessage& from); - RadarMessage(RadarMessage&& from) noexcept - : RadarMessage() { + RadarTrack(const RadarTrack& from); + RadarTrack(RadarTrack&& from) noexcept + : RadarTrack() { *this = ::std::move(from); } - inline RadarMessage& operator=(const RadarMessage& from) { + inline RadarTrack& operator=(const RadarTrack& from) { CopyFrom(from); return *this; } - inline RadarMessage& operator=(RadarMessage&& from) noexcept { + inline RadarTrack& operator=(RadarTrack&& from) noexcept { if (this == &from) return *this; if (GetOwningArena() == from.GetOwningArena() #ifdef PROTOBUF_FORCE_COPY_IN_MOVE @@ -102,20 +102,20 @@ class RadarMessage final : static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { return default_instance().GetMetadata().reflection; } - static const RadarMessage& default_instance() { + static const RadarTrack& default_instance() { return *internal_default_instance(); } - static inline const RadarMessage* internal_default_instance() { - return reinterpret_cast( - &_RadarMessage_default_instance_); + static inline const RadarTrack* internal_default_instance() { + return reinterpret_cast( + &_RadarTrack_default_instance_); } static constexpr int kIndexInFileMessages = 0; - friend void swap(RadarMessage& a, RadarMessage& b) { + friend void swap(RadarTrack& a, RadarTrack& b) { a.Swap(&b); } - inline void Swap(RadarMessage* other) { + inline void Swap(RadarTrack* other) { if (other == this) return; #ifdef PROTOBUF_FORCE_COPY_IN_SWAP if (GetOwningArena() != nullptr && @@ -128,7 +128,7 @@ class RadarMessage final : ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); } } - void UnsafeArenaSwap(RadarMessage* other) { + void UnsafeArenaSwap(RadarTrack* other) { if (other == this) return; GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); InternalSwap(other); @@ -136,14 +136,14 @@ class RadarMessage final : // implements Message ---------------------------------------------- - RadarMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); + RadarTrack* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); } using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const RadarMessage& from); + void CopyFrom(const RadarTrack& from); using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const RadarMessage& from) { - RadarMessage::MergeImpl(*this, from); + void MergeFrom( const RadarTrack& from) { + RadarTrack::MergeImpl(*this, from); } private: static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); @@ -161,15 +161,15 @@ class RadarMessage final : void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); void SharedDtor(); void SetCachedSize(int size) const final; - void InternalSwap(RadarMessage* other); + void InternalSwap(RadarTrack* other); private: friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "messages.RadarMessage.RadarMessage"; + return "messages.track.RadarTrack"; } protected: - explicit RadarMessage(::PROTOBUF_NAMESPACE_ID::Arena* arena, + explicit RadarTrack(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned = false); public: @@ -183,29 +183,31 @@ class RadarMessage final : // accessors ------------------------------------------------------- enum : int { - kContactEnvironemntFieldNumber = 7, - kEntityIdentifierFieldNumber = 1, - kGeocentricPositionFieldNumber = 2, - kContactSpeedFieldNumber = 3, - kContactCourseFieldNumber = 4, - kContactBearingFieldNumber = 5, - kContactRangeFieldNumber = 6, + kRadarIDFieldNumber = 1, + kEntityIdentifierFieldNumber = 2, + kGeocentricPositionFieldNumber = 3, + kTimestampFieldNumber = 9, + kContactSpeedFieldNumber = 4, + kContactCourseFieldNumber = 5, + kContactBearingFieldNumber = 6, + kContactRangeFieldNumber = 7, + kContactEnvironemntFieldNumber = 8, }; - // string ContactEnvironemnt = 7; - void clear_contactenvironemnt(); - const std::string& contactenvironemnt() const; + // string RadarID = 1; + void clear_radarid(); + const std::string& radarid() const; template - void set_contactenvironemnt(ArgT0&& arg0, ArgT... args); - std::string* mutable_contactenvironemnt(); - PROTOBUF_NODISCARD std::string* release_contactenvironemnt(); - void set_allocated_contactenvironemnt(std::string* contactenvironemnt); + void set_radarid(ArgT0&& arg0, ArgT... args); + std::string* mutable_radarid(); + PROTOBUF_NODISCARD std::string* release_radarid(); + void set_allocated_radarid(std::string* radarid); private: - const std::string& _internal_contactenvironemnt() const; - inline PROTOBUF_ALWAYS_INLINE void _internal_set_contactenvironemnt(const std::string& value); - std::string* _internal_mutable_contactenvironemnt(); + const std::string& _internal_radarid() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_radarid(const std::string& value); + std::string* _internal_mutable_radarid(); public: - // .messages.track.Identifier EntityIdentifier = 1; + // .messages.track.Identifier EntityIdentifier = 2; bool has_entityidentifier() const; private: bool _internal_has_entityidentifier() const; @@ -223,7 +225,7 @@ class RadarMessage final : ::messages::track::Identifier* entityidentifier); ::messages::track::Identifier* unsafe_arena_release_entityidentifier(); - // .messages.track.EntityGeocentricPosition GeocentricPosition = 2; + // .messages.track.EntityGeocentricPosition GeocentricPosition = 3; bool has_geocentricposition() const; private: bool _internal_has_geocentricposition() const; @@ -241,7 +243,25 @@ class RadarMessage final : ::messages::track::EntityGeocentricPosition* geocentricposition); ::messages::track::EntityGeocentricPosition* unsafe_arena_release_geocentricposition(); - // double ContactSpeed = 3; + // .google.protobuf.Timestamp timestamp = 9; + bool has_timestamp() const; + private: + bool _internal_has_timestamp() const; + public: + void clear_timestamp(); + const ::PROTOBUF_NAMESPACE_ID::Timestamp& timestamp() const; + PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Timestamp* release_timestamp(); + ::PROTOBUF_NAMESPACE_ID::Timestamp* mutable_timestamp(); + void set_allocated_timestamp(::PROTOBUF_NAMESPACE_ID::Timestamp* timestamp); + private: + const ::PROTOBUF_NAMESPACE_ID::Timestamp& _internal_timestamp() const; + ::PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_timestamp(); + public: + void unsafe_arena_set_allocated_timestamp( + ::PROTOBUF_NAMESPACE_ID::Timestamp* timestamp); + ::PROTOBUF_NAMESPACE_ID::Timestamp* unsafe_arena_release_timestamp(); + + // double ContactSpeed = 4; void clear_contactspeed(); double contactspeed() const; void set_contactspeed(double value); @@ -250,7 +270,7 @@ class RadarMessage final : void _internal_set_contactspeed(double value); public: - // double ContactCourse = 4; + // double ContactCourse = 5; void clear_contactcourse(); double contactcourse() const; void set_contactcourse(double value); @@ -259,7 +279,7 @@ class RadarMessage final : void _internal_set_contactcourse(double value); public: - // double ContactBearing = 5; + // double ContactBearing = 6; void clear_contactbearing(); double contactbearing() const; void set_contactbearing(double value); @@ -268,7 +288,7 @@ class RadarMessage final : void _internal_set_contactbearing(double value); public: - // double ContactRange = 6; + // double ContactRange = 7; void clear_contactrange(); double contactrange() const; void set_contactrange(double value); @@ -277,7 +297,16 @@ class RadarMessage final : void _internal_set_contactrange(double value); public: - // @@protoc_insertion_point(class_scope:messages.RadarMessage.RadarMessage) + // uint32 ContactEnvironemnt = 8; + void clear_contactenvironemnt(); + uint32_t contactenvironemnt() const; + void set_contactenvironemnt(uint32_t value); + private: + uint32_t _internal_contactenvironemnt() const; + void _internal_set_contactenvironemnt(uint32_t value); + public: + + // @@protoc_insertion_point(class_scope:messages.track.RadarTrack) private: class _Internal; @@ -285,17 +314,19 @@ class RadarMessage final : typedef void InternalArenaConstructable_; typedef void DestructorSkippable_; struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr contactenvironemnt_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr radarid_; ::messages::track::Identifier* entityidentifier_; ::messages::track::EntityGeocentricPosition* geocentricposition_; + ::PROTOBUF_NAMESPACE_ID::Timestamp* timestamp_; double contactspeed_; double contactcourse_; double contactbearing_; double contactrange_; + uint32_t contactenvironemnt_; mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; }; union { Impl_ _impl_; }; - friend struct ::TableStruct_RadarMessage_2eproto; + friend struct ::TableStruct_RadarTrack_2eproto; }; // =================================================================== @@ -306,25 +337,75 @@ class RadarMessage final : #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wstrict-aliasing" #endif // __GNUC__ -// RadarMessage +// RadarTrack -// .messages.track.Identifier EntityIdentifier = 1; -inline bool RadarMessage::_internal_has_entityidentifier() const { +// string RadarID = 1; +inline void RadarTrack::clear_radarid() { + _impl_.radarid_.ClearToEmpty(); +} +inline const std::string& RadarTrack::radarid() const { + // @@protoc_insertion_point(field_get:messages.track.RadarTrack.RadarID) + return _internal_radarid(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void RadarTrack::set_radarid(ArgT0&& arg0, ArgT... args) { + + _impl_.radarid_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:messages.track.RadarTrack.RadarID) +} +inline std::string* RadarTrack::mutable_radarid() { + std::string* _s = _internal_mutable_radarid(); + // @@protoc_insertion_point(field_mutable:messages.track.RadarTrack.RadarID) + return _s; +} +inline const std::string& RadarTrack::_internal_radarid() const { + return _impl_.radarid_.Get(); +} +inline void RadarTrack::_internal_set_radarid(const std::string& value) { + + _impl_.radarid_.Set(value, GetArenaForAllocation()); +} +inline std::string* RadarTrack::_internal_mutable_radarid() { + + return _impl_.radarid_.Mutable(GetArenaForAllocation()); +} +inline std::string* RadarTrack::release_radarid() { + // @@protoc_insertion_point(field_release:messages.track.RadarTrack.RadarID) + return _impl_.radarid_.Release(); +} +inline void RadarTrack::set_allocated_radarid(std::string* radarid) { + if (radarid != nullptr) { + + } else { + + } + _impl_.radarid_.SetAllocated(radarid, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.radarid_.IsDefault()) { + _impl_.radarid_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:messages.track.RadarTrack.RadarID) +} + +// .messages.track.Identifier EntityIdentifier = 2; +inline bool RadarTrack::_internal_has_entityidentifier() const { return this != internal_default_instance() && _impl_.entityidentifier_ != nullptr; } -inline bool RadarMessage::has_entityidentifier() const { +inline bool RadarTrack::has_entityidentifier() const { return _internal_has_entityidentifier(); } -inline const ::messages::track::Identifier& RadarMessage::_internal_entityidentifier() const { +inline const ::messages::track::Identifier& RadarTrack::_internal_entityidentifier() const { const ::messages::track::Identifier* p = _impl_.entityidentifier_; return p != nullptr ? *p : reinterpret_cast( ::messages::track::_Identifier_default_instance_); } -inline const ::messages::track::Identifier& RadarMessage::entityidentifier() const { - // @@protoc_insertion_point(field_get:messages.RadarMessage.RadarMessage.EntityIdentifier) +inline const ::messages::track::Identifier& RadarTrack::entityidentifier() const { + // @@protoc_insertion_point(field_get:messages.track.RadarTrack.EntityIdentifier) return _internal_entityidentifier(); } -inline void RadarMessage::unsafe_arena_set_allocated_entityidentifier( +inline void RadarTrack::unsafe_arena_set_allocated_entityidentifier( ::messages::track::Identifier* entityidentifier) { if (GetArenaForAllocation() == nullptr) { delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.entityidentifier_); @@ -335,9 +416,9 @@ inline void RadarMessage::unsafe_arena_set_allocated_entityidentifier( } else { } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:messages.RadarMessage.RadarMessage.EntityIdentifier) + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:messages.track.RadarTrack.EntityIdentifier) } -inline ::messages::track::Identifier* RadarMessage::release_entityidentifier() { +inline ::messages::track::Identifier* RadarTrack::release_entityidentifier() { ::messages::track::Identifier* temp = _impl_.entityidentifier_; _impl_.entityidentifier_ = nullptr; @@ -352,14 +433,14 @@ inline ::messages::track::Identifier* RadarMessage::release_entityidentifier() { #endif // !PROTOBUF_FORCE_COPY_IN_RELEASE return temp; } -inline ::messages::track::Identifier* RadarMessage::unsafe_arena_release_entityidentifier() { - // @@protoc_insertion_point(field_release:messages.RadarMessage.RadarMessage.EntityIdentifier) +inline ::messages::track::Identifier* RadarTrack::unsafe_arena_release_entityidentifier() { + // @@protoc_insertion_point(field_release:messages.track.RadarTrack.EntityIdentifier) ::messages::track::Identifier* temp = _impl_.entityidentifier_; _impl_.entityidentifier_ = nullptr; return temp; } -inline ::messages::track::Identifier* RadarMessage::_internal_mutable_entityidentifier() { +inline ::messages::track::Identifier* RadarTrack::_internal_mutable_entityidentifier() { if (_impl_.entityidentifier_ == nullptr) { auto* p = CreateMaybeMessage<::messages::track::Identifier>(GetArenaForAllocation()); @@ -367,12 +448,12 @@ inline ::messages::track::Identifier* RadarMessage::_internal_mutable_entityiden } return _impl_.entityidentifier_; } -inline ::messages::track::Identifier* RadarMessage::mutable_entityidentifier() { +inline ::messages::track::Identifier* RadarTrack::mutable_entityidentifier() { ::messages::track::Identifier* _msg = _internal_mutable_entityidentifier(); - // @@protoc_insertion_point(field_mutable:messages.RadarMessage.RadarMessage.EntityIdentifier) + // @@protoc_insertion_point(field_mutable:messages.track.RadarTrack.EntityIdentifier) return _msg; } -inline void RadarMessage::set_allocated_entityidentifier(::messages::track::Identifier* entityidentifier) { +inline void RadarTrack::set_allocated_entityidentifier(::messages::track::Identifier* entityidentifier) { ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); if (message_arena == nullptr) { delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.entityidentifier_); @@ -390,26 +471,26 @@ inline void RadarMessage::set_allocated_entityidentifier(::messages::track::Iden } _impl_.entityidentifier_ = entityidentifier; - // @@protoc_insertion_point(field_set_allocated:messages.RadarMessage.RadarMessage.EntityIdentifier) + // @@protoc_insertion_point(field_set_allocated:messages.track.RadarTrack.EntityIdentifier) } -// .messages.track.EntityGeocentricPosition GeocentricPosition = 2; -inline bool RadarMessage::_internal_has_geocentricposition() const { +// .messages.track.EntityGeocentricPosition GeocentricPosition = 3; +inline bool RadarTrack::_internal_has_geocentricposition() const { return this != internal_default_instance() && _impl_.geocentricposition_ != nullptr; } -inline bool RadarMessage::has_geocentricposition() const { +inline bool RadarTrack::has_geocentricposition() const { return _internal_has_geocentricposition(); } -inline const ::messages::track::EntityGeocentricPosition& RadarMessage::_internal_geocentricposition() const { +inline const ::messages::track::EntityGeocentricPosition& RadarTrack::_internal_geocentricposition() const { const ::messages::track::EntityGeocentricPosition* p = _impl_.geocentricposition_; return p != nullptr ? *p : reinterpret_cast( ::messages::track::_EntityGeocentricPosition_default_instance_); } -inline const ::messages::track::EntityGeocentricPosition& RadarMessage::geocentricposition() const { - // @@protoc_insertion_point(field_get:messages.RadarMessage.RadarMessage.GeocentricPosition) +inline const ::messages::track::EntityGeocentricPosition& RadarTrack::geocentricposition() const { + // @@protoc_insertion_point(field_get:messages.track.RadarTrack.GeocentricPosition) return _internal_geocentricposition(); } -inline void RadarMessage::unsafe_arena_set_allocated_geocentricposition( +inline void RadarTrack::unsafe_arena_set_allocated_geocentricposition( ::messages::track::EntityGeocentricPosition* geocentricposition) { if (GetArenaForAllocation() == nullptr) { delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.geocentricposition_); @@ -420,9 +501,9 @@ inline void RadarMessage::unsafe_arena_set_allocated_geocentricposition( } else { } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:messages.RadarMessage.RadarMessage.GeocentricPosition) + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:messages.track.RadarTrack.GeocentricPosition) } -inline ::messages::track::EntityGeocentricPosition* RadarMessage::release_geocentricposition() { +inline ::messages::track::EntityGeocentricPosition* RadarTrack::release_geocentricposition() { ::messages::track::EntityGeocentricPosition* temp = _impl_.geocentricposition_; _impl_.geocentricposition_ = nullptr; @@ -437,14 +518,14 @@ inline ::messages::track::EntityGeocentricPosition* RadarMessage::release_geocen #endif // !PROTOBUF_FORCE_COPY_IN_RELEASE return temp; } -inline ::messages::track::EntityGeocentricPosition* RadarMessage::unsafe_arena_release_geocentricposition() { - // @@protoc_insertion_point(field_release:messages.RadarMessage.RadarMessage.GeocentricPosition) +inline ::messages::track::EntityGeocentricPosition* RadarTrack::unsafe_arena_release_geocentricposition() { + // @@protoc_insertion_point(field_release:messages.track.RadarTrack.GeocentricPosition) ::messages::track::EntityGeocentricPosition* temp = _impl_.geocentricposition_; _impl_.geocentricposition_ = nullptr; return temp; } -inline ::messages::track::EntityGeocentricPosition* RadarMessage::_internal_mutable_geocentricposition() { +inline ::messages::track::EntityGeocentricPosition* RadarTrack::_internal_mutable_geocentricposition() { if (_impl_.geocentricposition_ == nullptr) { auto* p = CreateMaybeMessage<::messages::track::EntityGeocentricPosition>(GetArenaForAllocation()); @@ -452,12 +533,12 @@ inline ::messages::track::EntityGeocentricPosition* RadarMessage::_internal_muta } return _impl_.geocentricposition_; } -inline ::messages::track::EntityGeocentricPosition* RadarMessage::mutable_geocentricposition() { +inline ::messages::track::EntityGeocentricPosition* RadarTrack::mutable_geocentricposition() { ::messages::track::EntityGeocentricPosition* _msg = _internal_mutable_geocentricposition(); - // @@protoc_insertion_point(field_mutable:messages.RadarMessage.RadarMessage.GeocentricPosition) + // @@protoc_insertion_point(field_mutable:messages.track.RadarTrack.GeocentricPosition) return _msg; } -inline void RadarMessage::set_allocated_geocentricposition(::messages::track::EntityGeocentricPosition* geocentricposition) { +inline void RadarTrack::set_allocated_geocentricposition(::messages::track::EntityGeocentricPosition* geocentricposition) { ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); if (message_arena == nullptr) { delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.geocentricposition_); @@ -475,137 +556,192 @@ inline void RadarMessage::set_allocated_geocentricposition(::messages::track::En } _impl_.geocentricposition_ = geocentricposition; - // @@protoc_insertion_point(field_set_allocated:messages.RadarMessage.RadarMessage.GeocentricPosition) + // @@protoc_insertion_point(field_set_allocated:messages.track.RadarTrack.GeocentricPosition) } -// double ContactSpeed = 3; -inline void RadarMessage::clear_contactspeed() { +// double ContactSpeed = 4; +inline void RadarTrack::clear_contactspeed() { _impl_.contactspeed_ = 0; } -inline double RadarMessage::_internal_contactspeed() const { +inline double RadarTrack::_internal_contactspeed() const { return _impl_.contactspeed_; } -inline double RadarMessage::contactspeed() const { - // @@protoc_insertion_point(field_get:messages.RadarMessage.RadarMessage.ContactSpeed) +inline double RadarTrack::contactspeed() const { + // @@protoc_insertion_point(field_get:messages.track.RadarTrack.ContactSpeed) return _internal_contactspeed(); } -inline void RadarMessage::_internal_set_contactspeed(double value) { +inline void RadarTrack::_internal_set_contactspeed(double value) { _impl_.contactspeed_ = value; } -inline void RadarMessage::set_contactspeed(double value) { +inline void RadarTrack::set_contactspeed(double value) { _internal_set_contactspeed(value); - // @@protoc_insertion_point(field_set:messages.RadarMessage.RadarMessage.ContactSpeed) + // @@protoc_insertion_point(field_set:messages.track.RadarTrack.ContactSpeed) } -// double ContactCourse = 4; -inline void RadarMessage::clear_contactcourse() { +// double ContactCourse = 5; +inline void RadarTrack::clear_contactcourse() { _impl_.contactcourse_ = 0; } -inline double RadarMessage::_internal_contactcourse() const { +inline double RadarTrack::_internal_contactcourse() const { return _impl_.contactcourse_; } -inline double RadarMessage::contactcourse() const { - // @@protoc_insertion_point(field_get:messages.RadarMessage.RadarMessage.ContactCourse) +inline double RadarTrack::contactcourse() const { + // @@protoc_insertion_point(field_get:messages.track.RadarTrack.ContactCourse) return _internal_contactcourse(); } -inline void RadarMessage::_internal_set_contactcourse(double value) { +inline void RadarTrack::_internal_set_contactcourse(double value) { _impl_.contactcourse_ = value; } -inline void RadarMessage::set_contactcourse(double value) { +inline void RadarTrack::set_contactcourse(double value) { _internal_set_contactcourse(value); - // @@protoc_insertion_point(field_set:messages.RadarMessage.RadarMessage.ContactCourse) + // @@protoc_insertion_point(field_set:messages.track.RadarTrack.ContactCourse) } -// double ContactBearing = 5; -inline void RadarMessage::clear_contactbearing() { +// double ContactBearing = 6; +inline void RadarTrack::clear_contactbearing() { _impl_.contactbearing_ = 0; } -inline double RadarMessage::_internal_contactbearing() const { +inline double RadarTrack::_internal_contactbearing() const { return _impl_.contactbearing_; } -inline double RadarMessage::contactbearing() const { - // @@protoc_insertion_point(field_get:messages.RadarMessage.RadarMessage.ContactBearing) +inline double RadarTrack::contactbearing() const { + // @@protoc_insertion_point(field_get:messages.track.RadarTrack.ContactBearing) return _internal_contactbearing(); } -inline void RadarMessage::_internal_set_contactbearing(double value) { +inline void RadarTrack::_internal_set_contactbearing(double value) { _impl_.contactbearing_ = value; } -inline void RadarMessage::set_contactbearing(double value) { +inline void RadarTrack::set_contactbearing(double value) { _internal_set_contactbearing(value); - // @@protoc_insertion_point(field_set:messages.RadarMessage.RadarMessage.ContactBearing) + // @@protoc_insertion_point(field_set:messages.track.RadarTrack.ContactBearing) } -// double ContactRange = 6; -inline void RadarMessage::clear_contactrange() { +// double ContactRange = 7; +inline void RadarTrack::clear_contactrange() { _impl_.contactrange_ = 0; } -inline double RadarMessage::_internal_contactrange() const { +inline double RadarTrack::_internal_contactrange() const { return _impl_.contactrange_; } -inline double RadarMessage::contactrange() const { - // @@protoc_insertion_point(field_get:messages.RadarMessage.RadarMessage.ContactRange) +inline double RadarTrack::contactrange() const { + // @@protoc_insertion_point(field_get:messages.track.RadarTrack.ContactRange) return _internal_contactrange(); } -inline void RadarMessage::_internal_set_contactrange(double value) { +inline void RadarTrack::_internal_set_contactrange(double value) { _impl_.contactrange_ = value; } -inline void RadarMessage::set_contactrange(double value) { +inline void RadarTrack::set_contactrange(double value) { _internal_set_contactrange(value); - // @@protoc_insertion_point(field_set:messages.RadarMessage.RadarMessage.ContactRange) + // @@protoc_insertion_point(field_set:messages.track.RadarTrack.ContactRange) } -// string ContactEnvironemnt = 7; -inline void RadarMessage::clear_contactenvironemnt() { - _impl_.contactenvironemnt_.ClearToEmpty(); +// uint32 ContactEnvironemnt = 8; +inline void RadarTrack::clear_contactenvironemnt() { + _impl_.contactenvironemnt_ = 0u; } -inline const std::string& RadarMessage::contactenvironemnt() const { - // @@protoc_insertion_point(field_get:messages.RadarMessage.RadarMessage.ContactEnvironemnt) +inline uint32_t RadarTrack::_internal_contactenvironemnt() const { + return _impl_.contactenvironemnt_; +} +inline uint32_t RadarTrack::contactenvironemnt() const { + // @@protoc_insertion_point(field_get:messages.track.RadarTrack.ContactEnvironemnt) return _internal_contactenvironemnt(); } -template -inline PROTOBUF_ALWAYS_INLINE -void RadarMessage::set_contactenvironemnt(ArgT0&& arg0, ArgT... args) { - - _impl_.contactenvironemnt_.Set(static_cast(arg0), args..., GetArenaForAllocation()); - // @@protoc_insertion_point(field_set:messages.RadarMessage.RadarMessage.ContactEnvironemnt) -} -inline std::string* RadarMessage::mutable_contactenvironemnt() { - std::string* _s = _internal_mutable_contactenvironemnt(); - // @@protoc_insertion_point(field_mutable:messages.RadarMessage.RadarMessage.ContactEnvironemnt) - return _s; -} -inline const std::string& RadarMessage::_internal_contactenvironemnt() const { - return _impl_.contactenvironemnt_.Get(); -} -inline void RadarMessage::_internal_set_contactenvironemnt(const std::string& value) { +inline void RadarTrack::_internal_set_contactenvironemnt(uint32_t value) { - _impl_.contactenvironemnt_.Set(value, GetArenaForAllocation()); + _impl_.contactenvironemnt_ = value; } -inline std::string* RadarMessage::_internal_mutable_contactenvironemnt() { - - return _impl_.contactenvironemnt_.Mutable(GetArenaForAllocation()); +inline void RadarTrack::set_contactenvironemnt(uint32_t value) { + _internal_set_contactenvironemnt(value); + // @@protoc_insertion_point(field_set:messages.track.RadarTrack.ContactEnvironemnt) } -inline std::string* RadarMessage::release_contactenvironemnt() { - // @@protoc_insertion_point(field_release:messages.RadarMessage.RadarMessage.ContactEnvironemnt) - return _impl_.contactenvironemnt_.Release(); + +// .google.protobuf.Timestamp timestamp = 9; +inline bool RadarTrack::_internal_has_timestamp() const { + return this != internal_default_instance() && _impl_.timestamp_ != nullptr; } -inline void RadarMessage::set_allocated_contactenvironemnt(std::string* contactenvironemnt) { - if (contactenvironemnt != nullptr) { +inline bool RadarTrack::has_timestamp() const { + return _internal_has_timestamp(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Timestamp& RadarTrack::_internal_timestamp() const { + const ::PROTOBUF_NAMESPACE_ID::Timestamp* p = _impl_.timestamp_; + return p != nullptr ? *p : reinterpret_cast( + ::PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_); +} +inline const ::PROTOBUF_NAMESPACE_ID::Timestamp& RadarTrack::timestamp() const { + // @@protoc_insertion_point(field_get:messages.track.RadarTrack.timestamp) + return _internal_timestamp(); +} +inline void RadarTrack::unsafe_arena_set_allocated_timestamp( + ::PROTOBUF_NAMESPACE_ID::Timestamp* timestamp) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.timestamp_); + } + _impl_.timestamp_ = timestamp; + if (timestamp) { } else { } - _impl_.contactenvironemnt_.SetAllocated(contactenvironemnt, GetArenaForAllocation()); -#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (_impl_.contactenvironemnt_.IsDefault()) { - _impl_.contactenvironemnt_.Set("", GetArenaForAllocation()); + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:messages.track.RadarTrack.timestamp) +} +inline ::PROTOBUF_NAMESPACE_ID::Timestamp* RadarTrack::release_timestamp() { + + ::PROTOBUF_NAMESPACE_ID::Timestamp* temp = _impl_.timestamp_; + _impl_.timestamp_ = 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_DEFAULT_STRING - // @@protoc_insertion_point(field_set_allocated:messages.RadarMessage.RadarMessage.ContactEnvironemnt) +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::PROTOBUF_NAMESPACE_ID::Timestamp* RadarTrack::unsafe_arena_release_timestamp() { + // @@protoc_insertion_point(field_release:messages.track.RadarTrack.timestamp) + + ::PROTOBUF_NAMESPACE_ID::Timestamp* temp = _impl_.timestamp_; + _impl_.timestamp_ = nullptr; + return temp; +} +inline ::PROTOBUF_NAMESPACE_ID::Timestamp* RadarTrack::_internal_mutable_timestamp() { + + if (_impl_.timestamp_ == nullptr) { + auto* p = CreateMaybeMessage<::PROTOBUF_NAMESPACE_ID::Timestamp>(GetArenaForAllocation()); + _impl_.timestamp_ = p; + } + return _impl_.timestamp_; +} +inline ::PROTOBUF_NAMESPACE_ID::Timestamp* RadarTrack::mutable_timestamp() { + ::PROTOBUF_NAMESPACE_ID::Timestamp* _msg = _internal_mutable_timestamp(); + // @@protoc_insertion_point(field_mutable:messages.track.RadarTrack.timestamp) + return _msg; +} +inline void RadarTrack::set_allocated_timestamp(::PROTOBUF_NAMESPACE_ID::Timestamp* timestamp) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.timestamp_); + } + if (timestamp) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena( + reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(timestamp)); + if (message_arena != submessage_arena) { + timestamp = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, timestamp, submessage_arena); + } + + } else { + + } + _impl_.timestamp_ = timestamp; + // @@protoc_insertion_point(field_set_allocated:messages.track.RadarTrack.timestamp) } #ifdef __GNUC__ @@ -614,10 +750,10 @@ inline void RadarMessage::set_allocated_contactenvironemnt(std::string* contacte // @@protoc_insertion_point(namespace_scope) -} // namespace RadarMessage +} // namespace track } // namespace messages // @@protoc_insertion_point(global_scope) #include -#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_RadarMessage_2eproto +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_RadarTrack_2eproto diff --git a/include/SimCore/Messages/Protos/RadarTrack.proto b/include/SimCore/Messages/Protos/RadarTrack.proto new file mode 100644 index 0000000..4fbc3a2 --- /dev/null +++ b/include/SimCore/Messages/Protos/RadarTrack.proto @@ -0,0 +1,23 @@ +syntax = "proto3"; +package messages.track; + +import "google/protobuf/timestamp.proto"; +import "GeocentricPosition.proto"; +import "Identifier.proto"; +// [END declaration] + + +message RadarTrack { + + string RadarID = 1; + messages.track.Identifier EntityIdentifier = 2; + messages.track.EntityGeocentricPosition GeocentricPosition = 3; + double ContactSpeed = 4; + double ContactCourse = 5; + double ContactBearing = 6; + double ContactRange = 7; + uint32 ContactEnvironemnt = 8; + + google.protobuf.Timestamp timestamp = 9; + +} \ No newline at end of file diff --git a/include/SimCore/Messages/RadarTrack.hpp b/include/SimCore/Messages/RadarTrack.hpp new file mode 100644 index 0000000..c4d19e9 --- /dev/null +++ b/include/SimCore/Messages/RadarTrack.hpp @@ -0,0 +1,129 @@ +#pragma once + +#include "SimCore/Identifier.hpp" +#include "SimCore/Messages/Protos/RadarTrack.pb.h" +#include "SimCore/SimCore.hpp" +#include "google/protobuf/any.pb.h" +#include +#include +#include + +#include + +#include +#include +#include +#include +#include + +namespace SimCore { + +class RadarTrack : public WHISPER::Message { + +private: + /// message object from google protobuf + messages::track::RadarTrack radarTrackMessage_; + + /// position of the track + Position position_; + /// speed the track + double speed_ = 0; + /// course of the track + double course_ = 0; + /// indicates if track is from an external source + + /// bearing + double bearing_; + ///range in meters + double range_; + //environment (AIR,SURFACE,SUBSURFACE,SPACE) + SimCore::ContactEnvironment environemnt_; + + + /// function that packs all information to a protobuf message + void packToMessage(); + + /// ID of the object + SimCore::Identifier ID_; + +public: + /** + * @brief a cuntructor that builds the object from a received message + * @param std::string the received thring from the line + */ + RadarTrack(std::string receivedMessage); + + /** + * @brief constructor for building a track which is also the trackmessage to + * send + * @param uint32_t deviceID the id of the sending device + * @param WHISPER::SourceType sourcetype of the sending device + * @param SimCore::Identifier object identifier + * + * @return + */ + RadarTrack(std::uint32_t deviceID, WHISPER::SourceType src,SimCore::Identifier id); + + /** + * @brief set the position of the track + * @param Position object of the position class + * + */ + void setPosition(Position pos); + + /** + * @brief set the position of the track + * @param 3x double set the x,y,z coordinates direkt which causes that an + * object of position class is created + */ + void setPosition(double x, double y, double z); + + /** + * @brief returns the position + * @return object of position class + * + */ + Position getPostion(); + + /// sets speed + void setSpeed(double speed); + + /// set speed in knots + void setSpeedinKnots(double knots); + + /// return sspeed + double getSpeed(); + + /// returns speed as knots + double getSpeedinKnots(); + + /// set course + void setCourse(double course); + + /// returns course + double getCourse(); + + /// set course + void setBearing(double bearing); + + /// returns course + double getBearing(); + + /// set course + void setRange(double range); + + /// returns course + double getRange(); + + /// set course + void setEnvironment(SimCore::ContactEnvironment); + + /// returns course + SimCore::ContactEnvironment getEnvironment(); + + /// set external indicator + void setExternal(bool val); + + SimCore::Identifier getIdentifier(); +}; +} // namespace SimCore \ No newline at end of file diff --git a/include/SimCore/SimCore.hpp b/include/SimCore/SimCore.hpp index bebd505..85332d6 100644 --- a/include/SimCore/SimCore.hpp +++ b/include/SimCore/SimCore.hpp @@ -21,10 +21,20 @@ Z enum ObjectSource : std::uint32_t { + EXTERNAL = 1, INTERNAL = 2 }; +enum ContactEnvironment : std::uint32_t{ + UNKNOWN = 0, + SURFACE = 1, + SUBSURFACE = 2, + AIR = 3, + SPACE = 4 +}; + + } \ No newline at end of file diff --git a/src/SimCore/Messages/RadarTrack.cpp b/src/SimCore/Messages/RadarTrack.cpp new file mode 100644 index 0000000..0394fad --- /dev/null +++ b/src/SimCore/Messages/RadarTrack.cpp @@ -0,0 +1,146 @@ +#include "SimCore/Identifier.hpp" +#include "SimCore/Messages/Protos/RadarTrack.pb.h" +#include "SimCore/Position.hpp" +#include "SimCore/SimCore.hpp" +#include "WHISPER/Messages/Message.hpp" +#include "google/protobuf/message.h" +#include "google/protobuf/timestamp.pb.h" +#include +#include +#include +#include +#include +#include + +namespace SimCore { + +RadarTrack::RadarTrack(std::string receivedMessage) { + msg = messages::header::Message(); + try { + msg.ParseFromString(receivedMessage); + topic_ = msg.topic(); + sourceType_ = msg.sourcetype(); + msgType_ = msg.msgtype(); + + auto trackMessage = messages::track::RadarTrack(); + if (msg.payload_size() == 1) { + if (msg.payload().begin()->Is()) { + msg.payload().begin()->UnpackTo(&trackMessage); + } + } + + messages::track::Identifier ID = trackMessage.entityidentifier(); + + ID_ = SimCore::Identifier( + trackMessage.mutable_entityidentifier()->number(), + (SimCore::ObjectSource)trackMessage.mutable_entityidentifier() + ->external()); + + speed_ = trackMessage.contactspeed(); + course_ = trackMessage.contactcourse(); + bearing_ = trackMessage.contactbearing(); + range_ = trackMessage.contactrange(); + + messages::track::EntityGeocentricPosition pos_temp = + trackMessage.geocentricposition(); + position_.setGeocentricPos(pos_temp.x(), pos_temp.y(), pos_temp.z()); + + } catch (const std::exception &e) { + LOG_S(ERROR) << e.what(); + } +} + +RadarTrack::RadarTrack(std::uint32_t deviceID, WHISPER::SourceType src, + SimCore::Identifier id) + : Message(deviceID, WHISPER::MsgTopics::TRACK, WHISPER::RAW_TRACK, src), + ID_(id) { + + packToMessage(); +} + +void RadarTrack::packToMessage() { + + radarTrackMessage_.mutable_entityidentifier()->set_number(ID_.getNumber()); + radarTrackMessage_.mutable_entityidentifier()->set_external((uint32_t)ID_.getObjectSource()); + + radarTrackMessage_.mutable_geocentricposition()->set_x( + position_.getGeocentricPos()(SimCore::X)); + radarTrackMessage_.mutable_geocentricposition()->set_y( + position_.getGeocentricPos()(SimCore::Y)); + radarTrackMessage_.mutable_geocentricposition()->set_z( + position_.getGeocentricPos()(SimCore::Z)); + + radarTrackMessage_.mutable_entityidentifier()->set_number(ID_.getNumber()); + + + radarTrackMessage_.set_contactspeed(speed_); + radarTrackMessage_.set_contactcourse(course_); + radarTrackMessage_.set_contactbearing(bearing_); + radarTrackMessage_.set_contactrange(range_); + radarTrackMessage_.set_contactenvironemnt((uint32_t)environemnt_); + + radarTrackMessage_.mutable_timestamp()->set_seconds(time(NULL)); + + auto payloadMessage = std::make_shared(); + + payloadMessage->PackFrom(radarTrackMessage_); + addPayLoad(payloadMessage); +} + +void RadarTrack::setPosition(Position pos) { + position_ = pos; + packToMessage(); +} + +void RadarTrack::setPosition(double x, double y, double z) { + Position pos(x, y, z); + position_ = pos; + packToMessage(); +} + +Position RadarTrack::getPostion() { return position_; } + +void RadarTrack::setSpeed(double speed) { + speed_ = speed; + packToMessage(); +} +void RadarTrack::setCourse(double course) { + course_ = course; + packToMessage(); +} + +void RadarTrack::setSpeedinKnots(double knots) { + speed_ = knots / SimCore::MsKt; + packToMessage(); +} + +void RadarTrack::setBearing(double bearing) { + bearing_ = bearing; + packToMessage(); +} + +void RadarTrack::setRange(double range) { + range_ = range; + packToMessage(); +} + +void RadarTrack::setEnvironment(SimCore::ContactEnvironment env ) +{ + environemnt_ = env; + packToMessage(); +} + +double RadarTrack::getSpeed() { return speed_; } +double RadarTrack::getSpeedinKnots() { return speed_ * SimCore::MsKt; } +double RadarTrack::getCourse() { return course_; } +double RadarTrack::getBearing() { return bearing_; } +double RadarTrack::getRange() { return range_; } +SimCore::ContactEnvironment RadarTrack::getEnvironment(){ return environemnt_; } + + + +SimCore::Identifier RadarTrack::getIdentifier() { + return ID_; +} + +} // namespace SimCore \ No newline at end of file diff --git a/tests/test_RadarTrackClass.cpp b/tests/test_RadarTrackClass.cpp new file mode 100644 index 0000000..c7f3257 --- /dev/null +++ b/tests/test_RadarTrackClass.cpp @@ -0,0 +1,65 @@ +#include "SimCore/Identifier.hpp" +#include "SimCore/IdentifierMaker.hpp" +#include "SimCore/Messages/RadarTrack.hpp" +#include +#include +#include +#include +#define CATCH_CONFIG_MAIN +#include +#include + +SCENARIO("Testing the SimCore Track") { + GIVEN("different Attributes for a Track in different forms") { + Eigen::Vector3d GeocentPos1; + GeocentPos1(SimCore::GeocentricPosition::X) = 3784014.333; + GeocentPos1(SimCore::GeocentricPosition::Y) = 899869.779; + GeocentPos1(SimCore::GeocentricPosition::Z) = 5037960.502; + + SimCore::Position pos(3784014.333, 899869.779, 5037960.502); + + std::shared_ptr + msg = NULL; + + SimCore::IdentifierMaker IDMaker; + std::shared_ptr ID = + IDMaker.getNewIdentifier(SimCore::ObjectSource::INTERNAL); + LOG_S(INFO)<<"ID: " << ID->getNumber(); + + std::shared_ptr RadartrackPtr = + std::make_shared(1, WHISPER::SourceType::SENSOR, *ID.get()); + + RadartrackPtr->setPosition(pos); + RadartrackPtr->setBearing(90); + RadartrackPtr->setCourse(360); + RadartrackPtr->setRange(1000); + RadartrackPtr->setEnvironment(SimCore::ContactEnvironment::SURFACE); + + bool isEqual = false; + WHEN("constructing Track Object with data") { + std::string serializedMSG = RadartrackPtr->serialize(); + + SimCore::RadarTrack radarTrack2(serializedMSG); + + SimCore::Identifier ID1(radarTrack2.getIdentifier().getPair()); + auto tr0 = *RadartrackPtr.get(); + SimCore::Identifier ID2(tr0.getIdentifier().getPair()); + + LOG_S(INFO)<<"ID2 source: " << ID2.getObjectSource(); + + if (ID1 == ID2) { + isEqual = true; + } + + + THEN("check if Track attributes are correct") { + REQUIRE(RadartrackPtr->getIdentifier().getNumber() == 1); + REQUIRE(isEqual == true); + REQUIRE(radarTrack2.getIdentifier() == RadartrackPtr->getIdentifier()); + REQUIRE(radarTrack2.getIdentifier().getNumber() == RadartrackPtr->getIdentifier().getNumber()); + REQUIRE(radarTrack2.getPostion().getGeocentricPos() == RadartrackPtr->getPostion().getGeocentricPos()); + + } // THEN + } // WHEN + } // GIVEN +} // SCENARIO \ No newline at end of file