Compare commits

...

10 Commits

Author SHA1 Message Date
hwinkel
24c44dc152 ADD: added generated protobuf files from version control 2024-02-02 10:06:56 +01:00
Henry Winkel
6a84d6dd65 ADD: Fixed bug in unpacking a simtrack message 2023-12-19 18:04:11 +01:00
Henry Winkel
20dea2bfd0 ADD: updated messages 2023-12-19 14:29:58 +01:00
Henry Winkel
f83852bf6b ADD: added tracklist update and systemstate update messages with tests and some improvements of simtrack 2023-12-19 13:30:35 +01:00
hwinkel
d345fd5bc3 ADD: added GET TRACKLIST to control type 2023-11-10 13:17:23 +01:00
Henry Winkel
630e8c4d74 ADD: new whisper-com version 2023-11-09 17:28:39 +01:00
Henry Winkel
6845716395 ADD: updated default RCS 2023-11-08 15:01:42 +01:00
Henry Winkel
7bb7c4bb8e ADD: added generated protofiles 2023-11-07 15:45:58 +01:00
Henry Winkel
fdd2f87ea9 FIX: fixed missing proto files 2023-11-07 13:09:22 +01:00
Henry Winkel
869769be0d FIX: fixed gitignore 2023-11-07 10:52:43 +01:00
31 changed files with 779 additions and 5173 deletions

2
.gitignore vendored
View File

@@ -3,3 +3,5 @@ build/
*.pb.cc *.pb.cc
*.pb.h *.pb.h

View File

@@ -49,6 +49,21 @@ add_library(SimCore STATIC
include/SimCore/Messages/Protos/GeocentricPosition.pb.cc include/SimCore/Messages/Protos/GeocentricPosition.pb.cc
include/SimCore/Messages/Protos/Identifier.pb.cc include/SimCore/Messages/Protos/Identifier.pb.cc
include/SimCore/Messages/SystemStateUpdate.hpp
src/SimCore/Messages/SystemStateUpdate.cpp
include/SimCore/Messages/Protos/SystemStateUpdate.pb.cc
include/SimCore/Messages/TracklistUpdate.hpp
src/SimCore/Messages/TracklistUpdate.cpp
include/SimCore/Messages/Protos/TracklistUpdate.pb.cc
include/SimCore/SensorData.hpp
src/SimCore/SensorData.cpp
include/SimCore/EffectorData.hpp
src/SimCore/EffectorData.cpp
include/SimCore/data.hpp include/SimCore/data.hpp
@@ -146,4 +161,14 @@ IF (${TEST_SIMCORE_LIBRARY})
target_link_libraries(test_TrackClass Catch2::Catch2 SimCore loguru) target_link_libraries(test_TrackClass Catch2::Catch2 SimCore loguru)
catch_discover_tests(test_TrackClass) catch_discover_tests(test_TrackClass)
add_executable(test_SystemStateUpdate tests/test_SystemStateUpdate.cpp)
target_link_libraries(test_SystemStateUpdate Catch2::Catch2 SimCore loguru)
catch_discover_tests(test_SystemStateUpdate)
add_executable(test_TracklistUpdate tests/test_TracklistUpdate.cpp)
target_link_libraries(test_TracklistUpdate Catch2::Catch2 SimCore loguru)
catch_discover_tests(test_TracklistUpdate)
ENDIF() ENDIF()

View File

@@ -0,0 +1,20 @@
#pragma once
#include "SimCore/Identifier.hpp"
#include "SimCore/data.hpp"
namespace SimCore
{
class EffectorData
{
public:
EffectorData(const SimCore::Identifier effctorID, const std::string name);
const SimCore::Identifier EffectorID;
Data<std::string> Name;
};
}

View File

@@ -1,432 +0,0 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: Control.proto
#include "Control.pb.h"
#include <algorithm>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::PROTOBUF_NAMESPACE_ID;
namespace _pbi = _pb::internal;
namespace messages {
namespace control {
PROTOBUF_CONSTEXPR control::control(
::_pbi::ConstantInitialized): _impl_{
/*decltype(_impl_._has_bits_)*/{}
, /*decltype(_impl_._cached_size_)*/{}
, /*decltype(_impl_.data_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
, /*decltype(_impl_.identifier_)*/nullptr
, /*decltype(_impl_.timestamp_)*/uint64_t{0u}
, /*decltype(_impl_.type_)*/0u} {}
struct controlDefaultTypeInternal {
PROTOBUF_CONSTEXPR controlDefaultTypeInternal()
: _instance(::_pbi::ConstantInitialized{}) {}
~controlDefaultTypeInternal() {}
union {
control _instance;
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 controlDefaultTypeInternal _control_default_instance_;
} // namespace control
} // namespace messages
static ::_pb::Metadata file_level_metadata_Control_2eproto[1];
static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_Control_2eproto = nullptr;
static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_Control_2eproto = nullptr;
const uint32_t TableStruct_Control_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
PROTOBUF_FIELD_OFFSET(::messages::control::control, _impl_._has_bits_),
PROTOBUF_FIELD_OFFSET(::messages::control::control, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
~0u, // no _inlined_string_donated_
PROTOBUF_FIELD_OFFSET(::messages::control::control, _impl_.identifier_),
PROTOBUF_FIELD_OFFSET(::messages::control::control, _impl_.type_),
PROTOBUF_FIELD_OFFSET(::messages::control::control, _impl_.data_),
PROTOBUF_FIELD_OFFSET(::messages::control::control, _impl_.timestamp_),
~0u,
~0u,
~0u,
0,
};
static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
{ 0, 10, -1, sizeof(::messages::control::control)},
};
static const ::_pb::Message* const file_default_instances[] = {
&::messages::control::_control_default_instance_._instance,
};
const char descriptor_table_protodef_Control_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
"\n\rControl.proto\022\020messages.control\032\020Ident"
"ifier.proto\"{\n\007control\022.\n\nIdentifier\030\001 \001"
"(\0132\032.messages.track.Identifier\022\014\n\004type\030\002"
" \001(\r\022\014\n\004data\030\003 \001(\t\022\026\n\ttimestamp\030\004 \001(\004H\000\210"
"\001\001B\014\n\n_timestampb\006proto3"
;
static const ::_pbi::DescriptorTable* const descriptor_table_Control_2eproto_deps[1] = {
&::descriptor_table_Identifier_2eproto,
};
static ::_pbi::once_flag descriptor_table_Control_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_Control_2eproto = {
false, false, 184, descriptor_table_protodef_Control_2eproto,
"Control.proto",
&descriptor_table_Control_2eproto_once, descriptor_table_Control_2eproto_deps, 1, 1,
schemas, file_default_instances, TableStruct_Control_2eproto::offsets,
file_level_metadata_Control_2eproto, file_level_enum_descriptors_Control_2eproto,
file_level_service_descriptors_Control_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_Control_2eproto_getter() {
return &descriptor_table_Control_2eproto;
}
// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_Control_2eproto(&descriptor_table_Control_2eproto);
namespace messages {
namespace control {
// ===================================================================
class control::_Internal {
public:
using HasBits = decltype(std::declval<control>()._impl_._has_bits_);
static const ::messages::track::Identifier& identifier(const control* msg);
static void set_has_timestamp(HasBits* has_bits) {
(*has_bits)[0] |= 1u;
}
};
const ::messages::track::Identifier&
control::_Internal::identifier(const control* msg) {
return *msg->_impl_.identifier_;
}
void control::clear_identifier() {
if (GetArenaForAllocation() == nullptr && _impl_.identifier_ != nullptr) {
delete _impl_.identifier_;
}
_impl_.identifier_ = nullptr;
}
control::control(::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.control.control)
}
control::control(const control& from)
: ::PROTOBUF_NAMESPACE_ID::Message() {
control* const _this = this; (void)_this;
new (&_impl_) Impl_{
decltype(_impl_._has_bits_){from._impl_._has_bits_}
, /*decltype(_impl_._cached_size_)*/{}
, decltype(_impl_.data_){}
, decltype(_impl_.identifier_){nullptr}
, decltype(_impl_.timestamp_){}
, decltype(_impl_.type_){}};
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
_impl_.data_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
_impl_.data_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
if (!from._internal_data().empty()) {
_this->_impl_.data_.Set(from._internal_data(),
_this->GetArenaForAllocation());
}
if (from._internal_has_identifier()) {
_this->_impl_.identifier_ = new ::messages::track::Identifier(*from._impl_.identifier_);
}
::memcpy(&_impl_.timestamp_, &from._impl_.timestamp_,
static_cast<size_t>(reinterpret_cast<char*>(&_impl_.type_) -
reinterpret_cast<char*>(&_impl_.timestamp_)) + sizeof(_impl_.type_));
// @@protoc_insertion_point(copy_constructor:messages.control.control)
}
inline void control::SharedCtor(
::_pb::Arena* arena, bool is_message_owned) {
(void)arena;
(void)is_message_owned;
new (&_impl_) Impl_{
decltype(_impl_._has_bits_){}
, /*decltype(_impl_._cached_size_)*/{}
, decltype(_impl_.data_){}
, decltype(_impl_.identifier_){nullptr}
, decltype(_impl_.timestamp_){uint64_t{0u}}
, decltype(_impl_.type_){0u}
};
_impl_.data_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
_impl_.data_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}
control::~control() {
// @@protoc_insertion_point(destructor:messages.control.control)
if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
(void)arena;
return;
}
SharedDtor();
}
inline void control::SharedDtor() {
GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
_impl_.data_.Destroy();
if (this != internal_default_instance()) delete _impl_.identifier_;
}
void control::SetCachedSize(int size) const {
_impl_._cached_size_.Set(size);
}
void control::Clear() {
// @@protoc_insertion_point(message_clear_start:messages.control.control)
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
_impl_.data_.ClearToEmpty();
if (GetArenaForAllocation() == nullptr && _impl_.identifier_ != nullptr) {
delete _impl_.identifier_;
}
_impl_.identifier_ = nullptr;
_impl_.timestamp_ = uint64_t{0u};
_impl_.type_ = 0u;
_impl_._has_bits_.Clear();
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* control::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
_Internal::HasBits has_bits{};
while (!ctx->Done(&ptr)) {
uint32_t tag;
ptr = ::_pbi::ReadTag(ptr, &tag);
switch (tag >> 3) {
// .messages.track.Identifier Identifier = 1;
case 1:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
ptr = ctx->ParseMessage(_internal_mutable_identifier(), ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// uint32 type = 2;
case 2:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
_impl_.type_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// string data = 3;
case 3:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
auto str = _internal_mutable_data();
ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
CHK_(ptr);
CHK_(::_pbi::VerifyUTF8(str, "messages.control.control.data"));
} else
goto handle_unusual;
continue;
// optional uint64 timestamp = 4;
case 4:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
_Internal::set_has_timestamp(&has_bits);
_impl_.timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
default:
goto handle_unusual;
} // switch
handle_unusual:
if ((tag == 0) || ((tag & 7) == 4)) {
CHK_(ptr);
ctx->SetLastTag(tag);
goto message_done;
}
ptr = UnknownFieldParse(
tag,
_internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
ptr, ctx);
CHK_(ptr != nullptr);
} // while
message_done:
_impl_._has_bits_.Or(has_bits);
return ptr;
failure:
ptr = nullptr;
goto message_done;
#undef CHK_
}
uint8_t* control::_InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
// @@protoc_insertion_point(serialize_to_array_start:messages.control.control)
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
// .messages.track.Identifier Identifier = 1;
if (this->_internal_has_identifier()) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessage(1, _Internal::identifier(this),
_Internal::identifier(this).GetCachedSize(), target, stream);
}
// uint32 type = 2;
if (this->_internal_type() != 0) {
target = stream->EnsureSpace(target);
target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_type(), target);
}
// string data = 3;
if (!this->_internal_data().empty()) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
this->_internal_data().data(), static_cast<int>(this->_internal_data().length()),
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
"messages.control.control.data");
target = stream->WriteStringMaybeAliased(
3, this->_internal_data(), target);
}
// optional uint64 timestamp = 4;
if (_internal_has_timestamp()) {
target = stream->EnsureSpace(target);
target = ::_pbi::WireFormatLite::WriteUInt64ToArray(4, this->_internal_timestamp(), target);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
}
// @@protoc_insertion_point(serialize_to_array_end:messages.control.control)
return target;
}
size_t control::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:messages.control.control)
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 data = 3;
if (!this->_internal_data().empty()) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
this->_internal_data());
}
// .messages.track.Identifier Identifier = 1;
if (this->_internal_has_identifier()) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
*_impl_.identifier_);
}
// optional uint64 timestamp = 4;
cached_has_bits = _impl_._has_bits_[0];
if (cached_has_bits & 0x00000001u) {
total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_timestamp());
}
// uint32 type = 2;
if (this->_internal_type() != 0) {
total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_type());
}
return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData control::_class_data_ = {
::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
control::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*control::GetClassData() const { return &_class_data_; }
void control::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
auto* const _this = static_cast<control*>(&to_msg);
auto& from = static_cast<const control&>(from_msg);
// @@protoc_insertion_point(class_specific_merge_from_start:messages.control.control)
GOOGLE_DCHECK_NE(&from, _this);
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
if (!from._internal_data().empty()) {
_this->_internal_set_data(from._internal_data());
}
if (from._internal_has_identifier()) {
_this->_internal_mutable_identifier()->::messages::track::Identifier::MergeFrom(
from._internal_identifier());
}
if (from._internal_has_timestamp()) {
_this->_internal_set_timestamp(from._internal_timestamp());
}
if (from._internal_type() != 0) {
_this->_internal_set_type(from._internal_type());
}
_this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}
void control::CopyFrom(const control& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:messages.control.control)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool control::IsInitialized() const {
return true;
}
void control::InternalSwap(control* other) {
using std::swap;
auto* lhs_arena = GetArenaForAllocation();
auto* rhs_arena = other->GetArenaForAllocation();
_internal_metadata_.InternalSwap(&other->_internal_metadata_);
swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
&_impl_.data_, lhs_arena,
&other->_impl_.data_, rhs_arena
);
::PROTOBUF_NAMESPACE_ID::internal::memswap<
PROTOBUF_FIELD_OFFSET(control, _impl_.type_)
+ sizeof(control::_impl_.type_)
- PROTOBUF_FIELD_OFFSET(control, _impl_.identifier_)>(
reinterpret_cast<char*>(&_impl_.identifier_),
reinterpret_cast<char*>(&other->_impl_.identifier_));
}
::PROTOBUF_NAMESPACE_ID::Metadata control::GetMetadata() const {
return ::_pbi::AssignDescriptors(
&descriptor_table_Control_2eproto_getter, &descriptor_table_Control_2eproto_once,
file_level_metadata_Control_2eproto[0]);
}
// @@protoc_insertion_point(namespace_scope)
} // namespace control
} // namespace messages
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::messages::control::control*
Arena::CreateMaybeMessage< ::messages::control::control >(Arena* arena) {
return Arena::CreateMessageInternal< ::messages::control::control >(arena);
}
PROTOBUF_NAMESPACE_CLOSE
// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>

View File

@@ -1,467 +0,0 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: Control.proto
#ifndef GOOGLE_PROTOBUF_INCLUDED_Control_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_Control_2eproto
#include <limits>
#include <string>
#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3021000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif
#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata_lite.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h> // IWYU pragma: export
#include <google/protobuf/extension_set.h> // IWYU pragma: export
#include <google/protobuf/unknown_field_set.h>
#include "Identifier.pb.h"
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_Control_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
} // namespace internal
PROTOBUF_NAMESPACE_CLOSE
// Internal implementation detail -- do not use these members.
struct TableStruct_Control_2eproto {
static const uint32_t offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_Control_2eproto;
namespace messages {
namespace control {
class control;
struct controlDefaultTypeInternal;
extern controlDefaultTypeInternal _control_default_instance_;
} // namespace control
} // namespace messages
PROTOBUF_NAMESPACE_OPEN
template<> ::messages::control::control* Arena::CreateMaybeMessage<::messages::control::control>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace messages {
namespace control {
// ===================================================================
class control final :
public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:messages.control.control) */ {
public:
inline control() : control(nullptr) {}
~control() override;
explicit PROTOBUF_CONSTEXPR control(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
control(const control& from);
control(control&& from) noexcept
: control() {
*this = ::std::move(from);
}
inline control& operator=(const control& from) {
CopyFrom(from);
return *this;
}
inline control& operator=(control&& from) noexcept {
if (this == &from) return *this;
if (GetOwningArena() == from.GetOwningArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
&& GetOwningArena() != nullptr
#endif // !PROTOBUF_FORCE_COPY_IN_MOVE
) {
InternalSwap(&from);
} else {
CopyFrom(from);
}
return *this;
}
static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
return GetDescriptor();
}
static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
return default_instance().GetMetadata().descriptor;
}
static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
return default_instance().GetMetadata().reflection;
}
static const control& default_instance() {
return *internal_default_instance();
}
static inline const control* internal_default_instance() {
return reinterpret_cast<const control*>(
&_control_default_instance_);
}
static constexpr int kIndexInFileMessages =
0;
friend void swap(control& a, control& b) {
a.Swap(&b);
}
inline void Swap(control* other) {
if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
if (GetOwningArena() != nullptr &&
GetOwningArena() == other->GetOwningArena()) {
#else // PROTOBUF_FORCE_COPY_IN_SWAP
if (GetOwningArena() == other->GetOwningArena()) {
#endif // !PROTOBUF_FORCE_COPY_IN_SWAP
InternalSwap(other);
} else {
::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
}
}
void UnsafeArenaSwap(control* other) {
if (other == this) return;
GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
InternalSwap(other);
}
// implements Message ----------------------------------------------
control* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
return CreateMaybeMessage<control>(arena);
}
using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
void CopyFrom(const control& from);
using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
void MergeFrom( const control& from) {
control::MergeImpl(*this, from);
}
private:
static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
public:
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
bool IsInitialized() const final;
size_t ByteSizeLong() const final;
const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
uint8_t* _InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
int GetCachedSize() const final { return _impl_._cached_size_.Get(); }
private:
void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
void SharedDtor();
void SetCachedSize(int size) const final;
void InternalSwap(control* other);
private:
friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
return "messages.control.control";
}
protected:
explicit control(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned = false);
public:
static const ClassData _class_data_;
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
// nested types ----------------------------------------------------
// accessors -------------------------------------------------------
enum : int {
kDataFieldNumber = 3,
kIdentifierFieldNumber = 1,
kTimestampFieldNumber = 4,
kTypeFieldNumber = 2,
};
// string data = 3;
void clear_data();
const std::string& data() const;
template <typename ArgT0 = const std::string&, typename... ArgT>
void set_data(ArgT0&& arg0, ArgT... args);
std::string* mutable_data();
PROTOBUF_NODISCARD std::string* release_data();
void set_allocated_data(std::string* data);
private:
const std::string& _internal_data() const;
inline PROTOBUF_ALWAYS_INLINE void _internal_set_data(const std::string& value);
std::string* _internal_mutable_data();
public:
// .messages.track.Identifier Identifier = 1;
bool has_identifier() const;
private:
bool _internal_has_identifier() const;
public:
void clear_identifier();
const ::messages::track::Identifier& identifier() const;
PROTOBUF_NODISCARD ::messages::track::Identifier* release_identifier();
::messages::track::Identifier* mutable_identifier();
void set_allocated_identifier(::messages::track::Identifier* identifier);
private:
const ::messages::track::Identifier& _internal_identifier() const;
::messages::track::Identifier* _internal_mutable_identifier();
public:
void unsafe_arena_set_allocated_identifier(
::messages::track::Identifier* identifier);
::messages::track::Identifier* unsafe_arena_release_identifier();
// optional uint64 timestamp = 4;
bool has_timestamp() const;
private:
bool _internal_has_timestamp() const;
public:
void clear_timestamp();
uint64_t timestamp() const;
void set_timestamp(uint64_t value);
private:
uint64_t _internal_timestamp() const;
void _internal_set_timestamp(uint64_t value);
public:
// uint32 type = 2;
void clear_type();
uint32_t type() const;
void set_type(uint32_t value);
private:
uint32_t _internal_type() const;
void _internal_set_type(uint32_t value);
public:
// @@protoc_insertion_point(class_scope:messages.control.control)
private:
class _Internal;
template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
typedef void InternalArenaConstructable_;
typedef void DestructorSkippable_;
struct Impl_ {
::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr data_;
::messages::track::Identifier* identifier_;
uint64_t timestamp_;
uint32_t type_;
};
union { Impl_ _impl_; };
friend struct ::TableStruct_Control_2eproto;
};
// ===================================================================
// ===================================================================
#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif // __GNUC__
// control
// .messages.track.Identifier Identifier = 1;
inline bool control::_internal_has_identifier() const {
return this != internal_default_instance() && _impl_.identifier_ != nullptr;
}
inline bool control::has_identifier() const {
return _internal_has_identifier();
}
inline const ::messages::track::Identifier& control::_internal_identifier() const {
const ::messages::track::Identifier* p = _impl_.identifier_;
return p != nullptr ? *p : reinterpret_cast<const ::messages::track::Identifier&>(
::messages::track::_Identifier_default_instance_);
}
inline const ::messages::track::Identifier& control::identifier() const {
// @@protoc_insertion_point(field_get:messages.control.control.Identifier)
return _internal_identifier();
}
inline void control::unsafe_arena_set_allocated_identifier(
::messages::track::Identifier* identifier) {
if (GetArenaForAllocation() == nullptr) {
delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.identifier_);
}
_impl_.identifier_ = identifier;
if (identifier) {
} else {
}
// @@protoc_insertion_point(field_unsafe_arena_set_allocated:messages.control.control.Identifier)
}
inline ::messages::track::Identifier* control::release_identifier() {
::messages::track::Identifier* temp = _impl_.identifier_;
_impl_.identifier_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
if (GetArenaForAllocation() == nullptr) { delete old; }
#else // PROTOBUF_FORCE_COPY_IN_RELEASE
if (GetArenaForAllocation() != nullptr) {
temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
}
#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE
return temp;
}
inline ::messages::track::Identifier* control::unsafe_arena_release_identifier() {
// @@protoc_insertion_point(field_release:messages.control.control.Identifier)
::messages::track::Identifier* temp = _impl_.identifier_;
_impl_.identifier_ = nullptr;
return temp;
}
inline ::messages::track::Identifier* control::_internal_mutable_identifier() {
if (_impl_.identifier_ == nullptr) {
auto* p = CreateMaybeMessage<::messages::track::Identifier>(GetArenaForAllocation());
_impl_.identifier_ = p;
}
return _impl_.identifier_;
}
inline ::messages::track::Identifier* control::mutable_identifier() {
::messages::track::Identifier* _msg = _internal_mutable_identifier();
// @@protoc_insertion_point(field_mutable:messages.control.control.Identifier)
return _msg;
}
inline void control::set_allocated_identifier(::messages::track::Identifier* identifier) {
::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
if (message_arena == nullptr) {
delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.identifier_);
}
if (identifier) {
::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(identifier));
if (message_arena != submessage_arena) {
identifier = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
message_arena, identifier, submessage_arena);
}
} else {
}
_impl_.identifier_ = identifier;
// @@protoc_insertion_point(field_set_allocated:messages.control.control.Identifier)
}
// uint32 type = 2;
inline void control::clear_type() {
_impl_.type_ = 0u;
}
inline uint32_t control::_internal_type() const {
return _impl_.type_;
}
inline uint32_t control::type() const {
// @@protoc_insertion_point(field_get:messages.control.control.type)
return _internal_type();
}
inline void control::_internal_set_type(uint32_t value) {
_impl_.type_ = value;
}
inline void control::set_type(uint32_t value) {
_internal_set_type(value);
// @@protoc_insertion_point(field_set:messages.control.control.type)
}
// string data = 3;
inline void control::clear_data() {
_impl_.data_.ClearToEmpty();
}
inline const std::string& control::data() const {
// @@protoc_insertion_point(field_get:messages.control.control.data)
return _internal_data();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void control::set_data(ArgT0&& arg0, ArgT... args) {
_impl_.data_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
// @@protoc_insertion_point(field_set:messages.control.control.data)
}
inline std::string* control::mutable_data() {
std::string* _s = _internal_mutable_data();
// @@protoc_insertion_point(field_mutable:messages.control.control.data)
return _s;
}
inline const std::string& control::_internal_data() const {
return _impl_.data_.Get();
}
inline void control::_internal_set_data(const std::string& value) {
_impl_.data_.Set(value, GetArenaForAllocation());
}
inline std::string* control::_internal_mutable_data() {
return _impl_.data_.Mutable(GetArenaForAllocation());
}
inline std::string* control::release_data() {
// @@protoc_insertion_point(field_release:messages.control.control.data)
return _impl_.data_.Release();
}
inline void control::set_allocated_data(std::string* data) {
if (data != nullptr) {
} else {
}
_impl_.data_.SetAllocated(data, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
if (_impl_.data_.IsDefault()) {
_impl_.data_.Set("", GetArenaForAllocation());
}
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
// @@protoc_insertion_point(field_set_allocated:messages.control.control.data)
}
// optional uint64 timestamp = 4;
inline bool control::_internal_has_timestamp() const {
bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
return value;
}
inline bool control::has_timestamp() const {
return _internal_has_timestamp();
}
inline void control::clear_timestamp() {
_impl_.timestamp_ = uint64_t{0u};
_impl_._has_bits_[0] &= ~0x00000001u;
}
inline uint64_t control::_internal_timestamp() const {
return _impl_.timestamp_;
}
inline uint64_t control::timestamp() const {
// @@protoc_insertion_point(field_get:messages.control.control.timestamp)
return _internal_timestamp();
}
inline void control::_internal_set_timestamp(uint64_t value) {
_impl_._has_bits_[0] |= 0x00000001u;
_impl_.timestamp_ = value;
}
inline void control::set_timestamp(uint64_t value) {
_internal_set_timestamp(value);
// @@protoc_insertion_point(field_set:messages.control.control.timestamp)
}
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif // __GNUC__
// @@protoc_insertion_point(namespace_scope)
} // namespace control
} // namespace messages
// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_Control_2eproto

View File

@@ -1,370 +0,0 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: GeocentricPosition.proto
#include "GeocentricPosition.pb.h"
#include <algorithm>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::PROTOBUF_NAMESPACE_ID;
namespace _pbi = _pb::internal;
namespace messages {
namespace track {
PROTOBUF_CONSTEXPR EntityGeocentricPosition::EntityGeocentricPosition(
::_pbi::ConstantInitialized): _impl_{
/*decltype(_impl_.x_)*/0
, /*decltype(_impl_.y_)*/0
, /*decltype(_impl_.z_)*/0
, /*decltype(_impl_._cached_size_)*/{}} {}
struct EntityGeocentricPositionDefaultTypeInternal {
PROTOBUF_CONSTEXPR EntityGeocentricPositionDefaultTypeInternal()
: _instance(::_pbi::ConstantInitialized{}) {}
~EntityGeocentricPositionDefaultTypeInternal() {}
union {
EntityGeocentricPosition _instance;
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 EntityGeocentricPositionDefaultTypeInternal _EntityGeocentricPosition_default_instance_;
} // namespace track
} // namespace messages
static ::_pb::Metadata file_level_metadata_GeocentricPosition_2eproto[1];
static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_GeocentricPosition_2eproto = nullptr;
static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_GeocentricPosition_2eproto = nullptr;
const uint32_t TableStruct_GeocentricPosition_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::messages::track::EntityGeocentricPosition, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
~0u, // no _inlined_string_donated_
PROTOBUF_FIELD_OFFSET(::messages::track::EntityGeocentricPosition, _impl_.x_),
PROTOBUF_FIELD_OFFSET(::messages::track::EntityGeocentricPosition, _impl_.y_),
PROTOBUF_FIELD_OFFSET(::messages::track::EntityGeocentricPosition, _impl_.z_),
};
static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
{ 0, -1, -1, sizeof(::messages::track::EntityGeocentricPosition)},
};
static const ::_pb::Message* const file_default_instances[] = {
&::messages::track::_EntityGeocentricPosition_default_instance_._instance,
};
const char descriptor_table_protodef_GeocentricPosition_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
"\n\030GeocentricPosition.proto\022\016messages.tra"
"ck\";\n\030EntityGeocentricPosition\022\t\n\001X\030\001 \001("
"\001\022\t\n\001Y\030\002 \001(\001\022\t\n\001Z\030\003 \001(\001b\006proto3"
;
static ::_pbi::once_flag descriptor_table_GeocentricPosition_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_GeocentricPosition_2eproto = {
false, false, 111, descriptor_table_protodef_GeocentricPosition_2eproto,
"GeocentricPosition.proto",
&descriptor_table_GeocentricPosition_2eproto_once, nullptr, 0, 1,
schemas, file_default_instances, TableStruct_GeocentricPosition_2eproto::offsets,
file_level_metadata_GeocentricPosition_2eproto, file_level_enum_descriptors_GeocentricPosition_2eproto,
file_level_service_descriptors_GeocentricPosition_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_GeocentricPosition_2eproto_getter() {
return &descriptor_table_GeocentricPosition_2eproto;
}
// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_GeocentricPosition_2eproto(&descriptor_table_GeocentricPosition_2eproto);
namespace messages {
namespace track {
// ===================================================================
class EntityGeocentricPosition::_Internal {
public:
};
EntityGeocentricPosition::EntityGeocentricPosition(::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.track.EntityGeocentricPosition)
}
EntityGeocentricPosition::EntityGeocentricPosition(const EntityGeocentricPosition& from)
: ::PROTOBUF_NAMESPACE_ID::Message() {
EntityGeocentricPosition* const _this = this; (void)_this;
new (&_impl_) Impl_{
decltype(_impl_.x_){}
, decltype(_impl_.y_){}
, decltype(_impl_.z_){}
, /*decltype(_impl_._cached_size_)*/{}};
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
::memcpy(&_impl_.x_, &from._impl_.x_,
static_cast<size_t>(reinterpret_cast<char*>(&_impl_.z_) -
reinterpret_cast<char*>(&_impl_.x_)) + sizeof(_impl_.z_));
// @@protoc_insertion_point(copy_constructor:messages.track.EntityGeocentricPosition)
}
inline void EntityGeocentricPosition::SharedCtor(
::_pb::Arena* arena, bool is_message_owned) {
(void)arena;
(void)is_message_owned;
new (&_impl_) Impl_{
decltype(_impl_.x_){0}
, decltype(_impl_.y_){0}
, decltype(_impl_.z_){0}
, /*decltype(_impl_._cached_size_)*/{}
};
}
EntityGeocentricPosition::~EntityGeocentricPosition() {
// @@protoc_insertion_point(destructor:messages.track.EntityGeocentricPosition)
if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
(void)arena;
return;
}
SharedDtor();
}
inline void EntityGeocentricPosition::SharedDtor() {
GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}
void EntityGeocentricPosition::SetCachedSize(int size) const {
_impl_._cached_size_.Set(size);
}
void EntityGeocentricPosition::Clear() {
// @@protoc_insertion_point(message_clear_start:messages.track.EntityGeocentricPosition)
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
::memset(&_impl_.x_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&_impl_.z_) -
reinterpret_cast<char*>(&_impl_.x_)) + sizeof(_impl_.z_));
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* EntityGeocentricPosition::_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) {
// double X = 1;
case 1:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 9)) {
_impl_.x_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
ptr += sizeof(double);
} else
goto handle_unusual;
continue;
// double Y = 2;
case 2:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 17)) {
_impl_.y_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
ptr += sizeof(double);
} else
goto handle_unusual;
continue;
// double Z = 3;
case 3:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 25)) {
_impl_.z_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
ptr += sizeof(double);
} else
goto handle_unusual;
continue;
default:
goto handle_unusual;
} // switch
handle_unusual:
if ((tag == 0) || ((tag & 7) == 4)) {
CHK_(ptr);
ctx->SetLastTag(tag);
goto message_done;
}
ptr = UnknownFieldParse(
tag,
_internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
ptr, ctx);
CHK_(ptr != nullptr);
} // while
message_done:
return ptr;
failure:
ptr = nullptr;
goto message_done;
#undef CHK_
}
uint8_t* EntityGeocentricPosition::_InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
// @@protoc_insertion_point(serialize_to_array_start:messages.track.EntityGeocentricPosition)
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
// double X = 1;
static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
double tmp_x = this->_internal_x();
uint64_t raw_x;
memcpy(&raw_x, &tmp_x, sizeof(tmp_x));
if (raw_x != 0) {
target = stream->EnsureSpace(target);
target = ::_pbi::WireFormatLite::WriteDoubleToArray(1, this->_internal_x(), target);
}
// double Y = 2;
static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
double tmp_y = this->_internal_y();
uint64_t raw_y;
memcpy(&raw_y, &tmp_y, sizeof(tmp_y));
if (raw_y != 0) {
target = stream->EnsureSpace(target);
target = ::_pbi::WireFormatLite::WriteDoubleToArray(2, this->_internal_y(), target);
}
// double Z = 3;
static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
double tmp_z = this->_internal_z();
uint64_t raw_z;
memcpy(&raw_z, &tmp_z, sizeof(tmp_z));
if (raw_z != 0) {
target = stream->EnsureSpace(target);
target = ::_pbi::WireFormatLite::WriteDoubleToArray(3, this->_internal_z(), target);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
}
// @@protoc_insertion_point(serialize_to_array_end:messages.track.EntityGeocentricPosition)
return target;
}
size_t EntityGeocentricPosition::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:messages.track.EntityGeocentricPosition)
size_t total_size = 0;
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
// double X = 1;
static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
double tmp_x = this->_internal_x();
uint64_t raw_x;
memcpy(&raw_x, &tmp_x, sizeof(tmp_x));
if (raw_x != 0) {
total_size += 1 + 8;
}
// double Y = 2;
static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
double tmp_y = this->_internal_y();
uint64_t raw_y;
memcpy(&raw_y, &tmp_y, sizeof(tmp_y));
if (raw_y != 0) {
total_size += 1 + 8;
}
// double Z = 3;
static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
double tmp_z = this->_internal_z();
uint64_t raw_z;
memcpy(&raw_z, &tmp_z, sizeof(tmp_z));
if (raw_z != 0) {
total_size += 1 + 8;
}
return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData EntityGeocentricPosition::_class_data_ = {
::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
EntityGeocentricPosition::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*EntityGeocentricPosition::GetClassData() const { return &_class_data_; }
void EntityGeocentricPosition::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
auto* const _this = static_cast<EntityGeocentricPosition*>(&to_msg);
auto& from = static_cast<const EntityGeocentricPosition&>(from_msg);
// @@protoc_insertion_point(class_specific_merge_from_start:messages.track.EntityGeocentricPosition)
GOOGLE_DCHECK_NE(&from, _this);
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
double tmp_x = from._internal_x();
uint64_t raw_x;
memcpy(&raw_x, &tmp_x, sizeof(tmp_x));
if (raw_x != 0) {
_this->_internal_set_x(from._internal_x());
}
static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
double tmp_y = from._internal_y();
uint64_t raw_y;
memcpy(&raw_y, &tmp_y, sizeof(tmp_y));
if (raw_y != 0) {
_this->_internal_set_y(from._internal_y());
}
static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
double tmp_z = from._internal_z();
uint64_t raw_z;
memcpy(&raw_z, &tmp_z, sizeof(tmp_z));
if (raw_z != 0) {
_this->_internal_set_z(from._internal_z());
}
_this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}
void EntityGeocentricPosition::CopyFrom(const EntityGeocentricPosition& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:messages.track.EntityGeocentricPosition)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool EntityGeocentricPosition::IsInitialized() const {
return true;
}
void EntityGeocentricPosition::InternalSwap(EntityGeocentricPosition* other) {
using std::swap;
_internal_metadata_.InternalSwap(&other->_internal_metadata_);
::PROTOBUF_NAMESPACE_ID::internal::memswap<
PROTOBUF_FIELD_OFFSET(EntityGeocentricPosition, _impl_.z_)
+ sizeof(EntityGeocentricPosition::_impl_.z_)
- PROTOBUF_FIELD_OFFSET(EntityGeocentricPosition, _impl_.x_)>(
reinterpret_cast<char*>(&_impl_.x_),
reinterpret_cast<char*>(&other->_impl_.x_));
}
::PROTOBUF_NAMESPACE_ID::Metadata EntityGeocentricPosition::GetMetadata() const {
return ::_pbi::AssignDescriptors(
&descriptor_table_GeocentricPosition_2eproto_getter, &descriptor_table_GeocentricPosition_2eproto_once,
file_level_metadata_GeocentricPosition_2eproto[0]);
}
// @@protoc_insertion_point(namespace_scope)
} // namespace track
} // namespace messages
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::messages::track::EntityGeocentricPosition*
Arena::CreateMaybeMessage< ::messages::track::EntityGeocentricPosition >(Arena* arena) {
return Arena::CreateMessageInternal< ::messages::track::EntityGeocentricPosition >(arena);
}
PROTOBUF_NAMESPACE_CLOSE
// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>

View File

@@ -1,313 +0,0 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: GeocentricPosition.proto
#ifndef GOOGLE_PROTOBUF_INCLUDED_GeocentricPosition_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_GeocentricPosition_2eproto
#include <limits>
#include <string>
#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3021000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif
#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata_lite.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h> // IWYU pragma: export
#include <google/protobuf/extension_set.h> // IWYU pragma: export
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_GeocentricPosition_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
} // namespace internal
PROTOBUF_NAMESPACE_CLOSE
// Internal implementation detail -- do not use these members.
struct TableStruct_GeocentricPosition_2eproto {
static const uint32_t offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_GeocentricPosition_2eproto;
namespace messages {
namespace track {
class EntityGeocentricPosition;
struct EntityGeocentricPositionDefaultTypeInternal;
extern EntityGeocentricPositionDefaultTypeInternal _EntityGeocentricPosition_default_instance_;
} // namespace track
} // namespace messages
PROTOBUF_NAMESPACE_OPEN
template<> ::messages::track::EntityGeocentricPosition* Arena::CreateMaybeMessage<::messages::track::EntityGeocentricPosition>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace messages {
namespace track {
// ===================================================================
class EntityGeocentricPosition final :
public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:messages.track.EntityGeocentricPosition) */ {
public:
inline EntityGeocentricPosition() : EntityGeocentricPosition(nullptr) {}
~EntityGeocentricPosition() override;
explicit PROTOBUF_CONSTEXPR EntityGeocentricPosition(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
EntityGeocentricPosition(const EntityGeocentricPosition& from);
EntityGeocentricPosition(EntityGeocentricPosition&& from) noexcept
: EntityGeocentricPosition() {
*this = ::std::move(from);
}
inline EntityGeocentricPosition& operator=(const EntityGeocentricPosition& from) {
CopyFrom(from);
return *this;
}
inline EntityGeocentricPosition& operator=(EntityGeocentricPosition&& from) noexcept {
if (this == &from) return *this;
if (GetOwningArena() == from.GetOwningArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
&& GetOwningArena() != nullptr
#endif // !PROTOBUF_FORCE_COPY_IN_MOVE
) {
InternalSwap(&from);
} else {
CopyFrom(from);
}
return *this;
}
static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
return GetDescriptor();
}
static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
return default_instance().GetMetadata().descriptor;
}
static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
return default_instance().GetMetadata().reflection;
}
static const EntityGeocentricPosition& default_instance() {
return *internal_default_instance();
}
static inline const EntityGeocentricPosition* internal_default_instance() {
return reinterpret_cast<const EntityGeocentricPosition*>(
&_EntityGeocentricPosition_default_instance_);
}
static constexpr int kIndexInFileMessages =
0;
friend void swap(EntityGeocentricPosition& a, EntityGeocentricPosition& b) {
a.Swap(&b);
}
inline void Swap(EntityGeocentricPosition* other) {
if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
if (GetOwningArena() != nullptr &&
GetOwningArena() == other->GetOwningArena()) {
#else // PROTOBUF_FORCE_COPY_IN_SWAP
if (GetOwningArena() == other->GetOwningArena()) {
#endif // !PROTOBUF_FORCE_COPY_IN_SWAP
InternalSwap(other);
} else {
::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
}
}
void UnsafeArenaSwap(EntityGeocentricPosition* other) {
if (other == this) return;
GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
InternalSwap(other);
}
// implements Message ----------------------------------------------
EntityGeocentricPosition* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
return CreateMaybeMessage<EntityGeocentricPosition>(arena);
}
using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
void CopyFrom(const EntityGeocentricPosition& from);
using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
void MergeFrom( const EntityGeocentricPosition& from) {
EntityGeocentricPosition::MergeImpl(*this, from);
}
private:
static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
public:
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
bool IsInitialized() const final;
size_t ByteSizeLong() const final;
const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
uint8_t* _InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
int GetCachedSize() const final { return _impl_._cached_size_.Get(); }
private:
void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
void SharedDtor();
void SetCachedSize(int size) const final;
void InternalSwap(EntityGeocentricPosition* other);
private:
friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
return "messages.track.EntityGeocentricPosition";
}
protected:
explicit EntityGeocentricPosition(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned = false);
public:
static const ClassData _class_data_;
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
// nested types ----------------------------------------------------
// accessors -------------------------------------------------------
enum : int {
kXFieldNumber = 1,
kYFieldNumber = 2,
kZFieldNumber = 3,
};
// double X = 1;
void clear_x();
double x() const;
void set_x(double value);
private:
double _internal_x() const;
void _internal_set_x(double value);
public:
// double Y = 2;
void clear_y();
double y() const;
void set_y(double value);
private:
double _internal_y() const;
void _internal_set_y(double value);
public:
// double Z = 3;
void clear_z();
double z() const;
void set_z(double value);
private:
double _internal_z() const;
void _internal_set_z(double value);
public:
// @@protoc_insertion_point(class_scope:messages.track.EntityGeocentricPosition)
private:
class _Internal;
template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
typedef void InternalArenaConstructable_;
typedef void DestructorSkippable_;
struct Impl_ {
double x_;
double y_;
double z_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
};
union { Impl_ _impl_; };
friend struct ::TableStruct_GeocentricPosition_2eproto;
};
// ===================================================================
// ===================================================================
#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif // __GNUC__
// EntityGeocentricPosition
// double X = 1;
inline void EntityGeocentricPosition::clear_x() {
_impl_.x_ = 0;
}
inline double EntityGeocentricPosition::_internal_x() const {
return _impl_.x_;
}
inline double EntityGeocentricPosition::x() const {
// @@protoc_insertion_point(field_get:messages.track.EntityGeocentricPosition.X)
return _internal_x();
}
inline void EntityGeocentricPosition::_internal_set_x(double value) {
_impl_.x_ = value;
}
inline void EntityGeocentricPosition::set_x(double value) {
_internal_set_x(value);
// @@protoc_insertion_point(field_set:messages.track.EntityGeocentricPosition.X)
}
// double Y = 2;
inline void EntityGeocentricPosition::clear_y() {
_impl_.y_ = 0;
}
inline double EntityGeocentricPosition::_internal_y() const {
return _impl_.y_;
}
inline double EntityGeocentricPosition::y() const {
// @@protoc_insertion_point(field_get:messages.track.EntityGeocentricPosition.Y)
return _internal_y();
}
inline void EntityGeocentricPosition::_internal_set_y(double value) {
_impl_.y_ = value;
}
inline void EntityGeocentricPosition::set_y(double value) {
_internal_set_y(value);
// @@protoc_insertion_point(field_set:messages.track.EntityGeocentricPosition.Y)
}
// double Z = 3;
inline void EntityGeocentricPosition::clear_z() {
_impl_.z_ = 0;
}
inline double EntityGeocentricPosition::_internal_z() const {
return _impl_.z_;
}
inline double EntityGeocentricPosition::z() const {
// @@protoc_insertion_point(field_get:messages.track.EntityGeocentricPosition.Z)
return _internal_z();
}
inline void EntityGeocentricPosition::_internal_set_z(double value) {
_impl_.z_ = value;
}
inline void EntityGeocentricPosition::set_z(double value) {
_internal_set_z(value);
// @@protoc_insertion_point(field_set:messages.track.EntityGeocentricPosition.Z)
}
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif // __GNUC__
// @@protoc_insertion_point(namespace_scope)
} // namespace track
} // namespace messages
// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_GeocentricPosition_2eproto

View File

@@ -1,327 +0,0 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: Identifier.proto
#include "Identifier.pb.h"
#include <algorithm>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::PROTOBUF_NAMESPACE_ID;
namespace _pbi = _pb::internal;
namespace messages {
namespace track {
PROTOBUF_CONSTEXPR Identifier::Identifier(
::_pbi::ConstantInitialized): _impl_{
/*decltype(_impl_.uuid_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
, /*decltype(_impl_.external_)*/false
, /*decltype(_impl_._cached_size_)*/{}} {}
struct IdentifierDefaultTypeInternal {
PROTOBUF_CONSTEXPR IdentifierDefaultTypeInternal()
: _instance(::_pbi::ConstantInitialized{}) {}
~IdentifierDefaultTypeInternal() {}
union {
Identifier _instance;
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 IdentifierDefaultTypeInternal _Identifier_default_instance_;
} // namespace track
} // namespace messages
static ::_pb::Metadata file_level_metadata_Identifier_2eproto[1];
static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_Identifier_2eproto = nullptr;
static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_Identifier_2eproto = nullptr;
const uint32_t TableStruct_Identifier_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::messages::track::Identifier, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
~0u, // no _inlined_string_donated_
PROTOBUF_FIELD_OFFSET(::messages::track::Identifier, _impl_.external_),
PROTOBUF_FIELD_OFFSET(::messages::track::Identifier, _impl_.uuid_),
};
static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
{ 0, -1, -1, sizeof(::messages::track::Identifier)},
};
static const ::_pb::Message* const file_default_instances[] = {
&::messages::track::_Identifier_default_instance_._instance,
};
const char descriptor_table_protodef_Identifier_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
"\n\020Identifier.proto\022\016messages.track\",\n\nId"
"entifier\022\020\n\010external\030\001 \001(\010\022\014\n\004uuid\030\002 \001(\t"
"b\006proto3"
;
static ::_pbi::once_flag descriptor_table_Identifier_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_Identifier_2eproto = {
false, false, 88, descriptor_table_protodef_Identifier_2eproto,
"Identifier.proto",
&descriptor_table_Identifier_2eproto_once, nullptr, 0, 1,
schemas, file_default_instances, TableStruct_Identifier_2eproto::offsets,
file_level_metadata_Identifier_2eproto, file_level_enum_descriptors_Identifier_2eproto,
file_level_service_descriptors_Identifier_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_Identifier_2eproto_getter() {
return &descriptor_table_Identifier_2eproto;
}
// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_Identifier_2eproto(&descriptor_table_Identifier_2eproto);
namespace messages {
namespace track {
// ===================================================================
class Identifier::_Internal {
public:
};
Identifier::Identifier(::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.track.Identifier)
}
Identifier::Identifier(const Identifier& from)
: ::PROTOBUF_NAMESPACE_ID::Message() {
Identifier* const _this = this; (void)_this;
new (&_impl_) Impl_{
decltype(_impl_.uuid_){}
, decltype(_impl_.external_){}
, /*decltype(_impl_._cached_size_)*/{}};
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
_impl_.uuid_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
_impl_.uuid_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
if (!from._internal_uuid().empty()) {
_this->_impl_.uuid_.Set(from._internal_uuid(),
_this->GetArenaForAllocation());
}
_this->_impl_.external_ = from._impl_.external_;
// @@protoc_insertion_point(copy_constructor:messages.track.Identifier)
}
inline void Identifier::SharedCtor(
::_pb::Arena* arena, bool is_message_owned) {
(void)arena;
(void)is_message_owned;
new (&_impl_) Impl_{
decltype(_impl_.uuid_){}
, decltype(_impl_.external_){false}
, /*decltype(_impl_._cached_size_)*/{}
};
_impl_.uuid_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
_impl_.uuid_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}
Identifier::~Identifier() {
// @@protoc_insertion_point(destructor:messages.track.Identifier)
if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
(void)arena;
return;
}
SharedDtor();
}
inline void Identifier::SharedDtor() {
GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
_impl_.uuid_.Destroy();
}
void Identifier::SetCachedSize(int size) const {
_impl_._cached_size_.Set(size);
}
void Identifier::Clear() {
// @@protoc_insertion_point(message_clear_start:messages.track.Identifier)
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
_impl_.uuid_.ClearToEmpty();
_impl_.external_ = false;
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* Identifier::_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) {
// bool external = 1;
case 1:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
_impl_.external_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// string uuid = 2;
case 2:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
auto str = _internal_mutable_uuid();
ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
CHK_(ptr);
CHK_(::_pbi::VerifyUTF8(str, "messages.track.Identifier.uuid"));
} else
goto handle_unusual;
continue;
default:
goto handle_unusual;
} // switch
handle_unusual:
if ((tag == 0) || ((tag & 7) == 4)) {
CHK_(ptr);
ctx->SetLastTag(tag);
goto message_done;
}
ptr = UnknownFieldParse(
tag,
_internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
ptr, ctx);
CHK_(ptr != nullptr);
} // while
message_done:
return ptr;
failure:
ptr = nullptr;
goto message_done;
#undef CHK_
}
uint8_t* Identifier::_InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
// @@protoc_insertion_point(serialize_to_array_start:messages.track.Identifier)
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
// bool external = 1;
if (this->_internal_external() != 0) {
target = stream->EnsureSpace(target);
target = ::_pbi::WireFormatLite::WriteBoolToArray(1, this->_internal_external(), target);
}
// string uuid = 2;
if (!this->_internal_uuid().empty()) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
this->_internal_uuid().data(), static_cast<int>(this->_internal_uuid().length()),
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
"messages.track.Identifier.uuid");
target = stream->WriteStringMaybeAliased(
2, this->_internal_uuid(), target);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
}
// @@protoc_insertion_point(serialize_to_array_end:messages.track.Identifier)
return target;
}
size_t Identifier::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:messages.track.Identifier)
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 uuid = 2;
if (!this->_internal_uuid().empty()) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
this->_internal_uuid());
}
// bool external = 1;
if (this->_internal_external() != 0) {
total_size += 1 + 1;
}
return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Identifier::_class_data_ = {
::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
Identifier::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Identifier::GetClassData() const { return &_class_data_; }
void Identifier::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
auto* const _this = static_cast<Identifier*>(&to_msg);
auto& from = static_cast<const Identifier&>(from_msg);
// @@protoc_insertion_point(class_specific_merge_from_start:messages.track.Identifier)
GOOGLE_DCHECK_NE(&from, _this);
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
if (!from._internal_uuid().empty()) {
_this->_internal_set_uuid(from._internal_uuid());
}
if (from._internal_external() != 0) {
_this->_internal_set_external(from._internal_external());
}
_this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}
void Identifier::CopyFrom(const Identifier& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:messages.track.Identifier)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool Identifier::IsInitialized() const {
return true;
}
void Identifier::InternalSwap(Identifier* 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_.uuid_, lhs_arena,
&other->_impl_.uuid_, rhs_arena
);
swap(_impl_.external_, other->_impl_.external_);
}
::PROTOBUF_NAMESPACE_ID::Metadata Identifier::GetMetadata() const {
return ::_pbi::AssignDescriptors(
&descriptor_table_Identifier_2eproto_getter, &descriptor_table_Identifier_2eproto_once,
file_level_metadata_Identifier_2eproto[0]);
}
// @@protoc_insertion_point(namespace_scope)
} // namespace track
} // namespace messages
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::messages::track::Identifier*
Arena::CreateMaybeMessage< ::messages::track::Identifier >(Arena* arena) {
return Arena::CreateMessageInternal< ::messages::track::Identifier >(arena);
}
PROTOBUF_NAMESPACE_CLOSE
// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>

View File

@@ -1,317 +0,0 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: Identifier.proto
#ifndef GOOGLE_PROTOBUF_INCLUDED_Identifier_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_Identifier_2eproto
#include <limits>
#include <string>
#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3021000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif
#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata_lite.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h> // IWYU pragma: export
#include <google/protobuf/extension_set.h> // IWYU pragma: export
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_Identifier_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
} // namespace internal
PROTOBUF_NAMESPACE_CLOSE
// Internal implementation detail -- do not use these members.
struct TableStruct_Identifier_2eproto {
static const uint32_t offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_Identifier_2eproto;
namespace messages {
namespace track {
class Identifier;
struct IdentifierDefaultTypeInternal;
extern IdentifierDefaultTypeInternal _Identifier_default_instance_;
} // namespace track
} // namespace messages
PROTOBUF_NAMESPACE_OPEN
template<> ::messages::track::Identifier* Arena::CreateMaybeMessage<::messages::track::Identifier>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace messages {
namespace track {
// ===================================================================
class Identifier final :
public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:messages.track.Identifier) */ {
public:
inline Identifier() : Identifier(nullptr) {}
~Identifier() override;
explicit PROTOBUF_CONSTEXPR Identifier(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
Identifier(const Identifier& from);
Identifier(Identifier&& from) noexcept
: Identifier() {
*this = ::std::move(from);
}
inline Identifier& operator=(const Identifier& from) {
CopyFrom(from);
return *this;
}
inline Identifier& operator=(Identifier&& from) noexcept {
if (this == &from) return *this;
if (GetOwningArena() == from.GetOwningArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
&& GetOwningArena() != nullptr
#endif // !PROTOBUF_FORCE_COPY_IN_MOVE
) {
InternalSwap(&from);
} else {
CopyFrom(from);
}
return *this;
}
static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
return GetDescriptor();
}
static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
return default_instance().GetMetadata().descriptor;
}
static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
return default_instance().GetMetadata().reflection;
}
static const Identifier& default_instance() {
return *internal_default_instance();
}
static inline const Identifier* internal_default_instance() {
return reinterpret_cast<const Identifier*>(
&_Identifier_default_instance_);
}
static constexpr int kIndexInFileMessages =
0;
friend void swap(Identifier& a, Identifier& b) {
a.Swap(&b);
}
inline void Swap(Identifier* other) {
if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
if (GetOwningArena() != nullptr &&
GetOwningArena() == other->GetOwningArena()) {
#else // PROTOBUF_FORCE_COPY_IN_SWAP
if (GetOwningArena() == other->GetOwningArena()) {
#endif // !PROTOBUF_FORCE_COPY_IN_SWAP
InternalSwap(other);
} else {
::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
}
}
void UnsafeArenaSwap(Identifier* other) {
if (other == this) return;
GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
InternalSwap(other);
}
// implements Message ----------------------------------------------
Identifier* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
return CreateMaybeMessage<Identifier>(arena);
}
using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
void CopyFrom(const Identifier& from);
using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
void MergeFrom( const Identifier& from) {
Identifier::MergeImpl(*this, from);
}
private:
static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
public:
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
bool IsInitialized() const final;
size_t ByteSizeLong() const final;
const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
uint8_t* _InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
int GetCachedSize() const final { return _impl_._cached_size_.Get(); }
private:
void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
void SharedDtor();
void SetCachedSize(int size) const final;
void InternalSwap(Identifier* other);
private:
friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
return "messages.track.Identifier";
}
protected:
explicit Identifier(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned = false);
public:
static const ClassData _class_data_;
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
// nested types ----------------------------------------------------
// accessors -------------------------------------------------------
enum : int {
kUuidFieldNumber = 2,
kExternalFieldNumber = 1,
};
// string uuid = 2;
void clear_uuid();
const std::string& uuid() const;
template <typename ArgT0 = const std::string&, typename... ArgT>
void set_uuid(ArgT0&& arg0, ArgT... args);
std::string* mutable_uuid();
PROTOBUF_NODISCARD std::string* release_uuid();
void set_allocated_uuid(std::string* uuid);
private:
const std::string& _internal_uuid() const;
inline PROTOBUF_ALWAYS_INLINE void _internal_set_uuid(const std::string& value);
std::string* _internal_mutable_uuid();
public:
// bool external = 1;
void clear_external();
bool external() const;
void set_external(bool value);
private:
bool _internal_external() const;
void _internal_set_external(bool value);
public:
// @@protoc_insertion_point(class_scope:messages.track.Identifier)
private:
class _Internal;
template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
typedef void InternalArenaConstructable_;
typedef void DestructorSkippable_;
struct Impl_ {
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr uuid_;
bool external_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
};
union { Impl_ _impl_; };
friend struct ::TableStruct_Identifier_2eproto;
};
// ===================================================================
// ===================================================================
#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif // __GNUC__
// Identifier
// bool external = 1;
inline void Identifier::clear_external() {
_impl_.external_ = false;
}
inline bool Identifier::_internal_external() const {
return _impl_.external_;
}
inline bool Identifier::external() const {
// @@protoc_insertion_point(field_get:messages.track.Identifier.external)
return _internal_external();
}
inline void Identifier::_internal_set_external(bool value) {
_impl_.external_ = value;
}
inline void Identifier::set_external(bool value) {
_internal_set_external(value);
// @@protoc_insertion_point(field_set:messages.track.Identifier.external)
}
// string uuid = 2;
inline void Identifier::clear_uuid() {
_impl_.uuid_.ClearToEmpty();
}
inline const std::string& Identifier::uuid() const {
// @@protoc_insertion_point(field_get:messages.track.Identifier.uuid)
return _internal_uuid();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void Identifier::set_uuid(ArgT0&& arg0, ArgT... args) {
_impl_.uuid_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
// @@protoc_insertion_point(field_set:messages.track.Identifier.uuid)
}
inline std::string* Identifier::mutable_uuid() {
std::string* _s = _internal_mutable_uuid();
// @@protoc_insertion_point(field_mutable:messages.track.Identifier.uuid)
return _s;
}
inline const std::string& Identifier::_internal_uuid() const {
return _impl_.uuid_.Get();
}
inline void Identifier::_internal_set_uuid(const std::string& value) {
_impl_.uuid_.Set(value, GetArenaForAllocation());
}
inline std::string* Identifier::_internal_mutable_uuid() {
return _impl_.uuid_.Mutable(GetArenaForAllocation());
}
inline std::string* Identifier::release_uuid() {
// @@protoc_insertion_point(field_release:messages.track.Identifier.uuid)
return _impl_.uuid_.Release();
}
inline void Identifier::set_allocated_uuid(std::string* uuid) {
if (uuid != nullptr) {
} else {
}
_impl_.uuid_.SetAllocated(uuid, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
if (_impl_.uuid_.IsDefault()) {
_impl_.uuid_.Set("", GetArenaForAllocation());
}
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
// @@protoc_insertion_point(field_set_allocated:messages.track.Identifier.uuid)
}
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif // __GNUC__
// @@protoc_insertion_point(namespace_scope)
} // namespace track
} // namespace messages
// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_Identifier_2eproto

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,33 @@
syntax = "proto3";
package messages.data;
import "Identifier.proto";
message SystemStateUpdate
{
messages.track.Identifier OwnID = 1;
repeated Sensor sensors = 2;
repeated Effector effectors = 3;
}
message Sensor
{
messages.track.Identifier ID = 1;
string name = 2;
double range = 3;
uint32 kind = 4;
uint32 Status = 5;
}
message Effector
{
messages.track.Identifier ID = 1;
string name = 2;
double range = 3;
int32 ammunition = 4;
int32 maxammunition =6;
uint32 Status = 7;
}

View File

@@ -0,0 +1,26 @@
syntax = "proto3";
package messages.data;
import "Identifier.proto";
// import "GeocentricPosition.proto";
import "google/protobuf/timestamp.proto";
import "SimTrack.proto";
message TracklistUpdate
{
messages.track.Identifier OwnID = 1;
google.protobuf.Timestamp timestamp = 2;
uint32 TracksCount = 3;
repeated messages.SimTrack.SimTrack tracks = 4;
}
// message TrackUpdate
// {
// messages.track.Identifier TrackID = 1;
// string Name = 2;
// messages.track.EntityGeocentricPosition position = 3;
// double distance = 4;
// double bearing = 5;
// }

View File

@@ -29,7 +29,9 @@ namespace SimCore
SimTrack(SimCore::Identifier id, WHISPER::SourceType sourcetype, SimCore::Kind::EntityKind entityKind,SimCore::Side::EntitySide Side); SimTrack(SimCore::Identifier id, WHISPER::SourceType sourcetype, SimCore::Kind::EntityKind entityKind,SimCore::Side::EntitySide Side);
~SimTrack(); SimTrack(messages::SimTrack::SimTrack message);
// ~SimTrack();
/// @brief /// @brief
/// @param pos /// @param pos
@@ -57,8 +59,10 @@ namespace SimCore
/// @return returns the amout of emission /// @return returns the amout of emission
size_t coutEmissions(); size_t coutEmissions();
/// @brief return the proto message for a simtrack
messages::SimTrack::SimTrack getSimTrackMessage();
/// @brief return a WHISPER Message out of a simtrack object /// @brief return a WHISPER Message out of a simtrack object
/// @param parentID
/// @return WHISPER::Message /// @return WHISPER::Message
WHISPER::Message buildMessage(); WHISPER::Message buildMessage();
@@ -72,6 +76,11 @@ namespace SimCore
/// @return SimTrack Oject /// @return SimTrack Oject
static std::unique_ptr<SimCore::SimTrack> unpack(std::string msgString); static std::unique_ptr<SimCore::SimTrack> unpack(std::string msgString);
/// @brief creates a SimTrack out of a string message
/// @param msg
/// @return SimTrack Oject
static std::unique_ptr<SimCore::SimTrack> unpack(messages::SimTrack::SimTrack message);
public: public:
Data<std::string> Name; Data<std::string> Name;
Data<double> Speed; Data<double> Speed;

View File

@@ -0,0 +1,45 @@
#pragma once
#include "SimCore/EffectorData.hpp"
#include "SimCore/Identifier.hpp"
#include "SimCore/SensorData.hpp"
#include "WHISPER/Messages/Message.hpp"
#include <memory>
#include <vector>
namespace SimCore
{
class SystemStateUpdate
{
public:
SystemStateUpdate(const SimCore::Identifier OwnID);
SimCore::Identifier getOwnID();
void addSensorData(SimCore::SensorData data);
void addEffectorData(SimCore::EffectorData data);
/// @brief return a WHISPER Message out of a simtrack object
/// @return WHISPER::Message
WHISPER::Message buildMessage();
/// @brief creates a SimTrack out of a whisper message
/// @param msg
/// @return SimTrack Oject
static std::unique_ptr<SystemStateUpdate> unpack(WHISPER::Message msg);
std::vector<SensorData> getSensorData();
std::vector<EffectorData> getEffectorData();
private:
const SimCore::Identifier OwnID;
std::vector<SensorData> SensorData_;
std::vector<EffectorData> EffectorData_;
};
}

View File

@@ -0,0 +1,32 @@
#pragma once
#include "SimCore/Identifier.hpp"
#include "SimCore/Messages/SimTrack.hpp"
#include <memory>
#include <vector>
namespace SimCore
{
class TracklistUpdate
{
public:
TracklistUpdate(const SimCore::Identifier OwnID);
SimCore::Identifier getOwnID();
void addTrack(SimCore::SimTrack track);
std::vector<SimTrack> getTracks();
WHISPER::Message buildMessage();
/// @brief creates a SimTrack out of a whisper message
/// @param msg
/// @return SimTrack Oject
static std::unique_ptr<TracklistUpdate> unpack(WHISPER::Message msg);
private:
const SimCore::Identifier OwnID_;
std::vector<SimTrack> tracks_;
};
}

View File

@@ -47,7 +47,10 @@ namespace SimCore {
std::tuple<double, double> distanceBearingToPosition(Position &p2); std::tuple<double, double> distanceBearingToPosition(Position &p2);
bool operator== ( Position &lhs); bool operator== ( Position &lhs);
friend bool operator==(const Position& lhs, const Position& rhs);
Position& operator=(const Position other); Position& operator=(const Position other);
@@ -67,4 +70,6 @@ namespace SimCore {
}; };
} }

View File

@@ -0,0 +1,27 @@
#pragma once
#include "SimCore/Identifier.hpp"
#include "SimCore/SimCore.hpp"
#include "SimCore/data.hpp"
#include <string>
namespace SimCore
{
class SensorData
{
public:
SensorData(const SimCore::Identifier sensorID, const std::string Name);
public:
const SimCore::Identifier SensorID;
Data<std::string> Name;
Data<double> Range;
Data<std::uint32_t> SensorKind;
Data<std::uint32_t> Status;
};
}

View File

@@ -4,8 +4,8 @@
#include <string> #include <string>
#define RCS_DEFAULT 1000 #define RCS_DEFAULT 1000
#define RCS_AIR 800 #define RCS_AIR 700
#define RCS_SURFACE 10000 #define RCS_SURFACE 1500
#define RCS_LAND 100 #define RCS_LAND 100
#define RCS_SPACE 100 #define RCS_SPACE 100
@@ -84,6 +84,25 @@ namespace Kind {
}; };
} }
enum Status : std::uint32_t{
ACTIVE,
OFF,
INTAKT,
DEFEKT,
DEGRADED
};
static std::map<std::uint32_t, std::string> StatusMap =
{
{ACTIVE, "Active"},
{OFF, "Off"},
{INTAKT, "Intakt" },
{DEFEKT, "Defekt"},
{DEGRADED, "Degraded"},
};
enum SensorKinds : std::uint32_t { enum SensorKinds : std::uint32_t {
RADAR = 1, RADAR = 1,
ELOKA, ELOKA,
@@ -117,7 +136,9 @@ enum ControlType : std::uint32_t
SHUT_DOWN, SHUT_DOWN,
CREATE_ENTITY, CREATE_ENTITY,
DELETE_ENTITY, DELETE_ENTITY,
GET_CONTROL GET_CONTROL,
GET_TRACKLIST
}; };

View File

@@ -0,0 +1,15 @@
#include <SimCore/EffectorData.hpp>
namespace SimCore
{
EffectorData::EffectorData(const SimCore::Identifier effctorID, const std::string name)
:EffectorID(effctorID),Name(name)
{
}
}

View File

@@ -1,3 +1,4 @@
#include "SimCore/Identifier.hpp"
#include "SimCore/Position.hpp" #include "SimCore/Position.hpp"
#include "SimCore/SimCore.hpp" #include "SimCore/SimCore.hpp"
#include "WHISPER/Messages/Message.hpp" #include "WHISPER/Messages/Message.hpp"
@@ -65,10 +66,117 @@ namespace SimCore
RCS.setValue(0); RCS.setValue(0);
} }
SimTrack::SimTrack(messages::SimTrack::SimTrack trackMsg)
:ID_(SimCore::Identifier(trackMsg.entityidentifier())),Name(trackMsg.conatactname())
{
SimTrack::~SimTrack() WHISPER::SourceType sourcetype = (WHISPER::SourceType)trackMsg.contactsourcetype();
{
} 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())
{
this->SourceType.setValue((WHISPER::SourceType)trackMsg.contactsourcetype());
}
if (trackMsg.has_geocentricposition())
{
this->setPosition(trackMsg.mutable_geocentricposition()->x(), trackMsg.mutable_geocentricposition()->y(), trackMsg.mutable_geocentricposition()->z());
}else
{
Position tmpPos;
tmpPos.setGeodesicPos(0, 0, 0);
this->setPosition(tmpPos);
}
if (trackMsg.has_contactcourse())
{
this->Course.setValue(trackMsg.contactcourse());
}else
{
this->Course.setValue(0);
}
if (trackMsg.has_contactspeed())
{
this->Speed.setValue(trackMsg.contactspeed());
}else
{
this->Speed.setValue(0);
}
if (trackMsg.has_conactpitch())
{
this->Pitch.setValue(trackMsg.conactpitch());
}else {
this->Pitch.setValue(0);
}
if (trackMsg.has_contactrcs())
{
this->RCS.setValue(trackMsg.contactrcs());
}else
{
switch (entityKind)
{
case SimCore::Kind::EntityKind::AIR:
{
this->RCS.setValue(RCS_AIR);
break;
}
case SimCore::Kind::EntityKind::LAND:
{
this->RCS.setValue(RCS_LAND);
break;
}
case SimCore::Kind::EntityKind::SURFACE:
{
this->RCS.setValue(RCS_SURFACE);
break;
}
case SimCore::Kind::EntityKind::SPACE:
{
this->RCS.setValue(RCS_SPACE);
break;
}
default:
{
this->RCS.setValue(RCS_DEFAULT);
break;
}
}
}
for (int i = 0; i < trackMsg.contactemissions_size(); i++)
{
const messages::SimTrack::Emission* emission = trackMsg.mutable_contactemissions(i);
auto obj = SimCore::Emission::unpackEmission(*emission);
this->addEmission(obj);
}
}
// SimTrack::~SimTrack()
// {
// }
const SimCore::Identifier SimTrack::getIdentifier() const SimCore::Identifier SimTrack::getIdentifier()
{ {
@@ -92,45 +200,54 @@ namespace SimCore
return position_; return position_;
} }
messages::SimTrack::SimTrack SimTrack::getSimTrackMessage()
{
messages::SimTrack::SimTrack SimTrack;
if (Name.isValid()) SimTrack.set_conatactname(Name.getValue());
else SimTrack.set_conatactname(" ");
if (position_.isValid())
{
SimTrack.mutable_geocentricposition()->set_x(position_.getGeocentricPos()(SimCore::X));
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());
if(Pitch.isValid()) SimTrack.set_conactpitch(this->Pitch.getValue());
if(RCS.isValid()) SimTrack.set_contactrcs(this->RCS.getValue());
SimTrack.mutable_entityidentifier()->set_external((uint32_t)this->ID_.isExternal());
SimTrack.mutable_entityidentifier()->set_uuid(this->ID_.getUUID());
std::vector<std::shared_ptr<Emission>>::iterator it;
for( it = EmissionList.begin(); it != EmissionList.end(); it++)
{
auto emissionMsg = it->get()->packEmission();
SimTrack.add_contactemissions()->CopyFrom(emissionMsg);
}
// SimTrack.mutable_timestamp()->set_seconds(time(NULL));
return SimTrack;
}
WHISPER::Message SimTrack::buildMessage() WHISPER::Message SimTrack::buildMessage()
{ {
WHISPER::Message msg(ID_.getUUID(),WHISPER::MsgTopics::TRACK , WHISPER::MsgType::SIM_TRACK); WHISPER::Message msg(ID_.getUUID(),WHISPER::MsgTopics::TRACK , WHISPER::MsgType::SIM_TRACK);
messages::SimTrack::SimTrack SimTrack; messages::SimTrack::SimTrack SimTrack = this->getSimTrackMessage();
if (Name.isValid()) SimTrack.set_conatactname(Name.getValue());
else SimTrack.set_conatactname(" ");
if (position_.isValid())
{
SimTrack.mutable_geocentricposition()->set_x(position_.getGeocentricPos()(SimCore::X));
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());
if(Pitch.isValid()) SimTrack.set_conactpitch(this->Pitch.getValue());
if(RCS.isValid()) SimTrack.set_contactrcs(this->RCS.getValue());
SimTrack.mutable_entityidentifier()->set_external((uint32_t)this->ID_.isExternal());
SimTrack.mutable_entityidentifier()->set_uuid(this->ID_.getUUID());
std::vector<std::shared_ptr<Emission>>::iterator it;
for( it = EmissionList.begin(); it != EmissionList.end(); it++)
{
auto emissionMsg = it->get()->packEmission();
SimTrack.add_contactemissions()->CopyFrom(emissionMsg);
}
// SimTrack.mutable_timestamp()->set_seconds(time(NULL));
auto any = std::make_shared<google::protobuf::Any>(); auto any = std::make_shared<google::protobuf::Any>();
@@ -154,111 +271,7 @@ namespace SimCore
m.payload().UnpackTo(&trackMsg); m.payload().UnpackTo(&trackMsg);
} }
SimCore::Identifier id(*trackMsg.mutable_entityidentifier()); return SimTrack(trackMsg);
WHISPER::SourceType sourcetype = (WHISPER::SourceType)trackMsg.contactsourcetype();
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())
{
track.SourceType.setValue((WHISPER::SourceType)trackMsg.contactsourcetype());
}
if (trackMsg.has_geocentricposition())
{
track.setPosition(trackMsg.mutable_geocentricposition()->x(), trackMsg.mutable_geocentricposition()->y(), trackMsg.mutable_geocentricposition()->z());
}else
{
Position tmpPos;
tmpPos.setGeodesicPos(0, 0, 0);
track.setPosition(tmpPos);
}
if (trackMsg.has_contactcourse())
{
track.Course.setValue(trackMsg.contactcourse());
}else
{
track.Course.setValue(0);
}
if (trackMsg.has_contactspeed())
{
track.Speed.setValue(trackMsg.contactspeed());
}else
{
track.Speed.setValue(0);
}
if (trackMsg.has_conactpitch())
{
track.Pitch.setValue(trackMsg.conactpitch());
}else {
track.Pitch.setValue(0);
}
if (trackMsg.has_contactrcs())
{
track.RCS.setValue(trackMsg.contactrcs());
}else
{
switch (entityKind)
{
case SimCore::Kind::EntityKind::AIR:
{
track.RCS.setValue(RCS_AIR);
break;
}
case SimCore::Kind::EntityKind::LAND:
{
track.RCS.setValue(RCS_LAND);
break;
}
case SimCore::Kind::EntityKind::SURFACE:
{
track.RCS.setValue(RCS_SURFACE);
break;
}
case SimCore::Kind::EntityKind::SPACE:
{
track.RCS.setValue(RCS_SPACE);
break;
}
default:
{
track.RCS.setValue(RCS_DEFAULT);
break;
}
}
}
for (int i = 0; i < trackMsg.contactemissions_size(); i++)
{
const messages::SimTrack::Emission* emission = trackMsg.mutable_contactemissions(i);
auto obj = SimCore::Emission::unpackEmission(*emission);
track.addEmission(obj);
}
return track;
} }
@@ -275,6 +288,15 @@ namespace SimCore
} }
std::unique_ptr<SimCore::SimTrack> SimTrack::unpack(messages::SimTrack::SimTrack trackMsg)
{
return std::make_unique<SimTrack>(trackMsg);
}
void SimTrack::addEmission(Emission emission) void SimTrack::addEmission(Emission emission)

View File

@@ -0,0 +1,112 @@
#include "SimCore/EffectorData.hpp"
#include "SimCore/Identifier.hpp"
#include "SimCore/Messages/Protos/SystemStateUpdate.pb.h"
#include "SimCore/SensorData.hpp"
#include <SimCore/Messages/SystemStateUpdate.hpp>
#include <algorithm>
#include <memory>
namespace SimCore {
SystemStateUpdate::SystemStateUpdate(const SimCore::Identifier ownID):OwnID(ownID)
{
}
SimCore::Identifier SystemStateUpdate::getOwnID()
{
return OwnID;
}
void SystemStateUpdate::addSensorData(SimCore::SensorData data)
{
SensorData_.push_back(data);
}
void SystemStateUpdate::addEffectorData(SimCore::EffectorData data)
{
EffectorData_.push_back(data);
}
WHISPER::Message SystemStateUpdate::buildMessage()
{
WHISPER::Message msg(OwnID.getUUID(),WHISPER::MsgTopics::DATA , WHISPER::MsgType::SYSTEMSTATE_UPDATE);
messages::data::SystemStateUpdate message;
message.mutable_ownid()->set_uuid(OwnID.getUUID());
message.mutable_ownid()->set_external(OwnID.isExternal());
for(auto &sensor : SensorData_)
{
messages::data::Sensor *s = message.add_sensors();
s->set_name(sensor.Name.getValue());
s->mutable_id()->set_uuid(sensor.SensorID.getUUID());
s->mutable_id()->set_external(sensor.SensorID.isExternal());
s->set_kind(sensor.SensorKind.getValue());
s->set_range(sensor.Range.getValue());
s->set_status(sensor.Status.getValue());
}
for(auto &effector : EffectorData_)
{
messages::data::Effector *e = message.add_effectors();
e->mutable_id()->set_uuid(effector.EffectorID.getUUID());
e->set_name(effector.Name.getValue());
}
auto any = std::make_shared<google::protobuf::Any>();
any->PackFrom(message);
msg.addPayLoad(any);
return msg;
}
std::unique_ptr<SystemStateUpdate> SystemStateUpdate::unpack(WHISPER::Message msg)
{
auto m = msg.getProtoMessage();
auto UpdateMessage = messages::data::SystemStateUpdate();
if(!m.payload().Is<messages::data::SystemStateUpdate>())
{
return nullptr;
}
m.payload().UnpackTo(&UpdateMessage);
std::unique_ptr<SystemStateUpdate> obj = std::make_unique<SystemStateUpdate>(SimCore::Identifier( UpdateMessage.ownid()));
for(auto sensor: UpdateMessage.sensors())
{
SensorData data(SimCore::Identifier(sensor.id()),sensor.name());
data.SensorKind.setValue(sensor.kind());
data.Range.setValue(sensor.range());
data.Status.setValue(sensor.status());
obj->addSensorData(data);
}
for(auto effector: UpdateMessage.effectors())
{
EffectorData data(SimCore::Identifier(effector.id()),effector.name());
obj->addEffectorData(data);
}
return obj;
}
std::vector<SensorData> SystemStateUpdate::getSensorData()
{
return this->SensorData_;
}
std::vector<EffectorData> SystemStateUpdate::getEffectorData()
{
return this->EffectorData_;
}
}

View File

@@ -0,0 +1,76 @@
#include "SimCore/Messages/SimTrack.hpp"
#include <SimCore/Messages/TracklistUpdate.hpp>
#include <SimCore/Messages/Protos/TracklistUpdate.pb.h>
namespace SimCore
{
TracklistUpdate::TracklistUpdate(const SimCore::Identifier OwnID)
:OwnID_(OwnID)
{
}
SimCore::Identifier TracklistUpdate::getOwnID()
{
return OwnID_;
}
void TracklistUpdate::addTrack(SimCore::SimTrack track)
{
tracks_.push_back(track);
}
std::vector<SimTrack> TracklistUpdate::getTracks()
{
return tracks_;
}
WHISPER::Message TracklistUpdate::buildMessage()
{
WHISPER::Message msg(OwnID_.getUUID(),WHISPER::MsgTopics::DATA , WHISPER::MsgType::TRACKLIST_UPDATE);
messages::data::TracklistUpdate message;
message.mutable_ownid()->set_uuid(OwnID_.getUUID());
message.mutable_ownid()->set_external(OwnID_.isExternal());
for(auto &track : tracks_)
{
message.mutable_tracks()->Add(track.getSimTrackMessage());
}
auto any = std::make_shared<google::protobuf::Any>();
any->PackFrom(message);
msg.addPayLoad(any);
return msg;
}
std::unique_ptr<TracklistUpdate> TracklistUpdate::unpack(WHISPER::Message msg)
{
auto m = msg.getProtoMessage();
auto UpdateMessage = messages::data::TracklistUpdate();
if(!m.payload().Is<messages::data::TracklistUpdate>())
{
return nullptr;
}
m.payload().UnpackTo(&UpdateMessage);
std::unique_ptr<TracklistUpdate> obj = std::make_unique<TracklistUpdate>(SimCore::Identifier( UpdateMessage.ownid()));
for(auto track: UpdateMessage.tracks())
{
obj->addTrack(SimTrack(track));
}
return obj;
}
}

View File

@@ -131,6 +131,18 @@ namespace SimCore {
} }
bool operator==(const Position& lhs, const Position& rhs)
{
if (lhs.GeocentricPos_ == rhs.GeocentricPos_) {
return true;
}else{
return false;
}
}
Position& Position::operator=(const Position other) Position& Position::operator=(const Position other)
{ {
std::lock_guard<std::mutex> lock(other.mx); std::lock_guard<std::mutex> lock(other.mx);

View File

@@ -0,0 +1,11 @@
#include <SimCore/SensorData.hpp>
namespace SimCore
{
SensorData::SensorData(const SimCore::Identifier sensorID, const std::string Name):
SensorID(sensorID),Name(Name)
{}
}

View File

@@ -1,4 +1,5 @@
#include <thread>
#define CATCH_CONFIG_MAIN #define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp> #include <catch2/catch.hpp>
@@ -24,7 +25,8 @@ SCENARIO("Testing the SimCore Sensor")
THEN("check if Track attributes are correct") THEN("check if Track attributes are correct")
{ {
REQUIRE(Name.getValue() == "hello world"); REQUIRE(Name.getValue() == "hello world");
REQUIRE(Name.getValidity() == true); REQUIRE(Name.isValid() == true);
std::this_thread::sleep_for(std::chrono::milliseconds(100));
REQUIRE(Name.getWriteTime() < std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count()); REQUIRE(Name.getWriteTime() < std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count());

View File

@@ -41,7 +41,7 @@ SCENARIO("Testing the SimCorePositionClass")
REQUIRE(std::abs(pos1b.getGeocentricPos()(SimCore::Z) - GeocentPos1(SimCore::Z)) <= 0.001); REQUIRE(std::abs(pos1b.getGeocentricPos()(SimCore::Z) - GeocentPos1(SimCore::Z)) <= 0.001);
REQUIRE(pos2.getGeocentricPos() == pos1.getGeocentricPos()); REQUIRE(pos2 == pos1);
REQUIRE(pos2.getGeodesicPos() == pos1.getGeodesicPos()); REQUIRE(pos2.getGeodesicPos() == pos1.getGeodesicPos());

View File

@@ -88,10 +88,11 @@ SCENARIO("Testing the SimCore Track")
REQUIRE(track.getEmission(emi1.getID()).get()->getID() == idEmi); REQUIRE(track.getEmission(emi1.getID()).get()->getID() == idEmi);
REQUIRE(msg.get()->msgType_ == WHISPER::SIM_TRACK); REQUIRE(msg.get()->msgType_ == WHISPER::SIM_TRACK);
REQUIRE(trackPtr->Speed.getValue() == speed); REQUIRE(trackPtr->Speed.getValue() == speed);
REQUIRE(trackPtr->getPosition().getGeocentricPos() == GeocentPos1); REQUIRE(trackPtr->getPosition().getGeocentricPos() == GeocentPos1);
REQUIRE(trackDeserialized.getEmission(emi1.getID()).get()->getID() == idEmi); REQUIRE(trackDeserialized.getEmission(emi1.getID()).get()->getID() == idEmi);
REQUIRE(trackDeserialized.Name.getValue() == "TEST");

View File

@@ -0,0 +1,72 @@
#include "SimCore/EffectorData.hpp"
#include "SimCore/Identifier.hpp"
#include "SimCore/SimCore.hpp"
#include "WHISPER/Messages/Message.hpp"
#define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp>
#include <string>
#include <SimCore/Messages/SystemStateUpdate.hpp>
SCENARIO("Testing the SimCore Sensor")
{
GIVEN("different Attributes for a Track in different forms")
{
SimCore::Identifier OwnID;
SimCore::SystemStateUpdate update(OwnID);
SimCore::Identifier Idsensor1;
std::string NameSensor1 = "TRS3D";
SimCore::SensorData sensor1(Idsensor1,NameSensor1);
sensor1.SensorKind.setValue(SimCore::SensorKinds::RADAR);
sensor1.Range.setValue(120000);
sensor1.Status.setValue(SimCore::Status::ACTIVE);
update.addSensorData(sensor1);
SimCore::Identifier Idsensor2;
std::string NameSensor2 = "Smart-S";
SimCore::SensorData sensor2(Idsensor2,NameSensor2);
sensor1.SensorKind.setValue(SimCore::SensorKinds::RADAR);
sensor1.Range.setValue(90000);
sensor1.Status.setValue(SimCore::Status::OFF);
update.addSensorData(sensor1);
SimCore::Identifier Ideffector1;
std::string NameEffector1 = "MLG";
SimCore::EffectorData effector1(Ideffector1,NameEffector1);
update.addEffectorData(effector1);
auto msg = update.buildMessage().serialize();
auto resMess = WHISPER::Message(msg);
auto resUpdate = SimCore::SystemStateUpdate::unpack(resMess);
WHEN("constructing Track Object with data")
{
THEN("check if Track attributes are correct")
{
REQUIRE(resMess.msgType_ == WHISPER::MsgType::SYSTEMSTATE_UPDATE);
REQUIRE(resUpdate->getOwnID() == OwnID);
REQUIRE(resUpdate->getSensorData().size() == 2);
REQUIRE(resUpdate->getEffectorData().size() == 1);
REQUIRE(resUpdate->getEffectorData()[0].EffectorID == effector1.EffectorID);
REQUIRE(resUpdate->getEffectorData()[0].Name.getValue() == NameEffector1);
} //THEN
} // WHEN
} // GIVEN
} //SCENARIO

View File

@@ -0,0 +1,59 @@
#include "SimCore/Identifier.hpp"
#include "SimCore/Messages/SimTrack.hpp"
#include "SimCore/Position.hpp"
#define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp>
#include <string>
#include <SimCore/Messages/TracklistUpdate.hpp>
SCENARIO("Testing the SimCore Sensor")
{
GIVEN("different Attributes for a Track in different forms")
{
SimCore::Identifier OwnID;
SimCore::TracklistUpdate update(OwnID);
SimCore::SimTrack track1;
track1.Course.setValue(273);
track1.Speed.setValue(11);
track1.Pitch.setValue(45);
SimCore::Position pos1;
pos1.setGeodesicPos(55, 10, 0);
track1.setPosition(pos1);
update.addTrack(track1);
WHEN("constructing Track Object with data")
{
auto msg = update.buildMessage().serialize();
auto resMess = WHISPER::Message(msg);
auto resUpdate = SimCore::TracklistUpdate::unpack(resMess);
THEN("check if Track attributes are correct")
{
REQUIRE(update.getOwnID() == OwnID);
REQUIRE(update.getTracks().size() == 1);
REQUIRE(resMess.msgType_ == WHISPER::MsgType::TRACKLIST_UPDATE);
REQUIRE(resUpdate->getOwnID() == OwnID);
REQUIRE(resUpdate->getTracks().size() == 1);
REQUIRE(resUpdate->getTracks()[0].getIdentifier() == track1.getIdentifier());
REQUIRE(resUpdate->getTracks()[0].Course.getValue() == 273);
REQUIRE(resUpdate->getTracks()[0].Speed.getValue() == 11);
REQUIRE(resUpdate->getTracks()[0].Pitch.getValue() == 45);
REQUIRE(resUpdate->getTracks()[0].getPosition() == pos1);
} //THEN
} // WHEN
} // GIVEN
} //SCENARIO