ADD: added entity side as enum and added maps to translate side and kind enums to string; change contactenvironment to contactside in proto

This commit is contained in:
Henry Winkel
2023-09-27 14:40:22 +02:00
parent 4a61f74e83
commit c8061ca068
6 changed files with 252 additions and 121 deletions

View File

@@ -32,10 +32,11 @@ PROTOBUF_CONSTEXPR SimTrack::SimTrack(
, /*decltype(_impl_.geocentricposition_)*/nullptr
, /*decltype(_impl_.contactspeed_)*/0
, /*decltype(_impl_.contactsourcetype_)*/0u
, /*decltype(_impl_.contactenvironemnt_)*/0u
, /*decltype(_impl_.contactkind_)*/0u
, /*decltype(_impl_.contactcourse_)*/0
, /*decltype(_impl_.conactpitch_)*/0
, /*decltype(_impl_.contactrcs_)*/0} {}
, /*decltype(_impl_.contactrcs_)*/0
, /*decltype(_impl_.contactside_)*/0u} {}
struct SimTrackDefaultTypeInternal {
PROTOBUF_CONSTEXPR SimTrackDefaultTypeInternal()
: _instance(::_pbi::ConstantInitialized{}) {}
@@ -88,7 +89,8 @@ const uint32_t TableStruct_SimTrack_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE
PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactspeed_),
PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactcourse_),
PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.conactpitch_),
PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactenvironemnt_),
PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactkind_),
PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactside_),
PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactrcs_),
PROTOBUF_FIELD_OFFSET(::messages::SimTrack::SimTrack, _impl_.contactemissions_),
~0u,
@@ -99,6 +101,7 @@ const uint32_t TableStruct_SimTrack_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE
4,
5,
3,
7,
6,
~0u,
PROTOBUF_FIELD_OFFSET(::messages::SimTrack::Emission, _impl_._has_bits_),
@@ -129,8 +132,8 @@ const uint32_t TableStruct_SimTrack_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE
5,
};
static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
{ 0, 16, -1, sizeof(::messages::SimTrack::SimTrack)},
{ 26, 42, -1, sizeof(::messages::SimTrack::Emission)},
{ 0, 17, -1, sizeof(::messages::SimTrack::SimTrack)},
{ 28, 44, -1, sizeof(::messages::SimTrack::Emission)},
};
static const ::_pb::Message* const file_default_instances[] = {
@@ -142,30 +145,31 @@ const char descriptor_table_protodef_SimTrack_2eproto[] PROTOBUF_SECTION_VARIABL
"\n\016SimTrack.proto\022\021messages.SimTrack\032\037goo"
"gle/protobuf/timestamp.proto\032\036google/pro"
"tobuf/duration.proto\032\020Identifier.proto\032\030"
"GeocentricPosition.proto\"\211\004\n\010SimTrack\0224\n"
"GeocentricPosition.proto\"\245\004\n\010SimTrack\0224\n"
"\020EntityIdentifier\030\001 \001(\0132\032.messages.track"
".Identifier\022\024\n\014ConatactName\030\002 \001(\t\022\036\n\021Con"
"tactSourceType\030\003 \001(\rH\000\210\001\001\022I\n\022GeocentricP"
"osition\030\004 \001(\0132(.messages.track.EntityGeo"
"centricPositionH\001\210\001\001\022\031\n\014ContactSpeed\030\005 \001"
"(\001H\002\210\001\001\022\032\n\rContactCourse\030\006 \001(\001H\003\210\001\001\022\030\n\013C"
"onactPitch\030\007 \001(\001H\004\210\001\001\022\037\n\022ContactEnvirone"
"mnt\030\010 \001(\rH\005\210\001\001\022\027\n\nContactRCS\030\t \001(\001H\006\210\001\001\022"
"5\n\020ContactEmissions\030\n \003(\0132\033.messages.Sim"
"Track.EmissionB\024\n\022_ContactSourceTypeB\025\n\023"
"_GeocentricPositionB\017\n\r_ContactSpeedB\020\n\016"
"_ContactCourseB\016\n\014_ConactPitchB\025\n\023_Conta"
"ctEnvironemntB\r\n\013_ContactRCS\"\366\002\n\010Emissio"
"n\022.\n\nIdentifier\030\001 \001(\0132\032.messages.track.I"
"dentifier\022\014\n\004name\030\002 \001(\t\022\021\n\tfrequency\030\003 \001"
"(\001\022\r\n\005Range\030\004 \001(\001\022\026\n\tBandwidth\030\005 \001(\rH\000\210\001"
"\001\022\027\n\npulseWidth\030\006 \001(\rH\001\210\001\001\022\034\n\017pulseRepit"
"ition\030\007 \001(\rH\002\210\001\001\022\032\n\rradiatedPower\030\010 \001(\rH"
"\003\210\001\001\022\032\n\rnumberOfBeams\030\t \001(\rH\004\210\001\001\022\033\n\016sear"
"chInterval\030\n \001(\rH\005\210\001\001B\014\n\n_BandwidthB\r\n\013_"
"pulseWidthB\022\n\020_pulseRepititionB\020\n\016_radia"
"tedPowerB\020\n\016_numberOfBeamsB\021\n\017_searchInt"
"ervalb\006proto3"
"onactPitch\030\007 \001(\001H\004\210\001\001\022\030\n\013ContactKind\030\010 \001"
"(\rH\005\210\001\001\022\030\n\013ContactSide\030\t \001(\rH\006\210\001\001\022\027\n\nCon"
"tactRCS\030\n \001(\001H\007\210\001\001\0225\n\020ContactEmissions\030\013"
" \003(\0132\033.messages.SimTrack.EmissionB\024\n\022_Co"
"ntactSourceTypeB\025\n\023_GeocentricPositionB\017"
"\n\r_ContactSpeedB\020\n\016_ContactCourseB\016\n\014_Co"
"nactPitchB\016\n\014_ContactKindB\016\n\014_ContactSid"
"eB\r\n\013_ContactRCS\"\366\002\n\010Emission\022.\n\nIdentif"
"ier\030\001 \001(\0132\032.messages.track.Identifier\022\014\n"
"\004name\030\002 \001(\t\022\021\n\tfrequency\030\003 \001(\001\022\r\n\005Range\030"
"\004 \001(\001\022\026\n\tBandwidth\030\005 \001(\rH\000\210\001\001\022\027\n\npulseWi"
"dth\030\006 \001(\rH\001\210\001\001\022\034\n\017pulseRepitition\030\007 \001(\rH"
"\002\210\001\001\022\032\n\rradiatedPower\030\010 \001(\rH\003\210\001\001\022\032\n\rnumb"
"erOfBeams\030\t \001(\rH\004\210\001\001\022\033\n\016searchInterval\030\n"
" \001(\rH\005\210\001\001B\014\n\n_BandwidthB\r\n\013_pulseWidthB\022"
"\n\020_pulseRepititionB\020\n\016_radiatedPowerB\020\n\016"
"_numberOfBeamsB\021\n\017_searchIntervalb\006proto"
"3"
;
static const ::_pbi::DescriptorTable* const descriptor_table_SimTrack_2eproto_deps[4] = {
&::descriptor_table_GeocentricPosition_2eproto,
@@ -175,7 +179,7 @@ static const ::_pbi::DescriptorTable* const descriptor_table_SimTrack_2eproto_de
};
static ::_pbi::once_flag descriptor_table_SimTrack_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_SimTrack_2eproto = {
false, false, 1053, descriptor_table_protodef_SimTrack_2eproto,
false, false, 1081, descriptor_table_protodef_SimTrack_2eproto,
"SimTrack.proto",
&descriptor_table_SimTrack_2eproto_once, descriptor_table_SimTrack_2eproto_deps, 4, 2,
schemas, file_default_instances, TableStruct_SimTrack_2eproto::offsets,
@@ -213,9 +217,12 @@ class SimTrack::_Internal {
static void set_has_conactpitch(HasBits* has_bits) {
(*has_bits)[0] |= 32u;
}
static void set_has_contactenvironemnt(HasBits* has_bits) {
static void set_has_contactkind(HasBits* has_bits) {
(*has_bits)[0] |= 8u;
}
static void set_has_contactside(HasBits* has_bits) {
(*has_bits)[0] |= 128u;
}
static void set_has_contactrcs(HasBits* has_bits) {
(*has_bits)[0] |= 64u;
}
@@ -257,10 +264,11 @@ SimTrack::SimTrack(const SimTrack& from)
, decltype(_impl_.geocentricposition_){nullptr}
, decltype(_impl_.contactspeed_){}
, decltype(_impl_.contactsourcetype_){}
, decltype(_impl_.contactenvironemnt_){}
, decltype(_impl_.contactkind_){}
, decltype(_impl_.contactcourse_){}
, decltype(_impl_.conactpitch_){}
, decltype(_impl_.contactrcs_){}};
, decltype(_impl_.contactrcs_){}
, decltype(_impl_.contactside_){}};
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
_impl_.conatactname_.InitDefault();
@@ -278,8 +286,8 @@ SimTrack::SimTrack(const SimTrack& from)
_this->_impl_.geocentricposition_ = new ::messages::track::EntityGeocentricPosition(*from._impl_.geocentricposition_);
}
::memcpy(&_impl_.contactspeed_, &from._impl_.contactspeed_,
static_cast<size_t>(reinterpret_cast<char*>(&_impl_.contactrcs_) -
reinterpret_cast<char*>(&_impl_.contactspeed_)) + sizeof(_impl_.contactrcs_));
static_cast<size_t>(reinterpret_cast<char*>(&_impl_.contactside_) -
reinterpret_cast<char*>(&_impl_.contactspeed_)) + sizeof(_impl_.contactside_));
// @@protoc_insertion_point(copy_constructor:messages.SimTrack.SimTrack)
}
@@ -296,10 +304,11 @@ inline void SimTrack::SharedCtor(
, decltype(_impl_.geocentricposition_){nullptr}
, decltype(_impl_.contactspeed_){0}
, decltype(_impl_.contactsourcetype_){0u}
, decltype(_impl_.contactenvironemnt_){0u}
, decltype(_impl_.contactkind_){0u}
, decltype(_impl_.contactcourse_){0}
, decltype(_impl_.conactpitch_){0}
, decltype(_impl_.contactrcs_){0}
, decltype(_impl_.contactside_){0u}
};
_impl_.conatactname_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
@@ -345,10 +354,10 @@ void SimTrack::Clear() {
GOOGLE_DCHECK(_impl_.geocentricposition_ != nullptr);
_impl_.geocentricposition_->Clear();
}
if (cached_has_bits & 0x0000007eu) {
if (cached_has_bits & 0x000000feu) {
::memset(&_impl_.contactspeed_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&_impl_.contactrcs_) -
reinterpret_cast<char*>(&_impl_.contactspeed_)) + sizeof(_impl_.contactrcs_));
reinterpret_cast<char*>(&_impl_.contactside_) -
reinterpret_cast<char*>(&_impl_.contactspeed_)) + sizeof(_impl_.contactside_));
}
_impl_._has_bits_.Clear();
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
@@ -423,34 +432,43 @@ const char* SimTrack::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx)
} else
goto handle_unusual;
continue;
// optional uint32 ContactEnvironemnt = 8;
// optional uint32 ContactKind = 8;
case 8:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
_Internal::set_has_contactenvironemnt(&has_bits);
_impl_.contactenvironemnt_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
_Internal::set_has_contactkind(&has_bits);
_impl_.contactkind_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional double ContactRCS = 9;
// optional uint32 ContactSide = 9;
case 9:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 73)) {
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 72)) {
_Internal::set_has_contactside(&has_bits);
_impl_.contactside_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional double ContactRCS = 10;
case 10:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 81)) {
_Internal::set_has_contactrcs(&has_bits);
_impl_.contactrcs_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
ptr += sizeof(double);
} else
goto handle_unusual;
continue;
// repeated .messages.SimTrack.Emission ContactEmissions = 10;
case 10:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
// repeated .messages.SimTrack.Emission ContactEmissions = 11;
case 11:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
ptr -= 1;
do {
ptr += 1;
ptr = ctx->ParseMessage(_internal_add_contactemissions(), ptr);
CHK_(ptr);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<82>(ptr));
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<90>(ptr));
} else
goto handle_unusual;
continue;
@@ -532,24 +550,30 @@ uint8_t* SimTrack::_InternalSerialize(
target = ::_pbi::WireFormatLite::WriteDoubleToArray(7, this->_internal_conactpitch(), target);
}
// optional uint32 ContactEnvironemnt = 8;
if (_internal_has_contactenvironemnt()) {
// optional uint32 ContactKind = 8;
if (_internal_has_contactkind()) {
target = stream->EnsureSpace(target);
target = ::_pbi::WireFormatLite::WriteUInt32ToArray(8, this->_internal_contactenvironemnt(), target);
target = ::_pbi::WireFormatLite::WriteUInt32ToArray(8, this->_internal_contactkind(), target);
}
// optional double ContactRCS = 9;
// optional uint32 ContactSide = 9;
if (_internal_has_contactside()) {
target = stream->EnsureSpace(target);
target = ::_pbi::WireFormatLite::WriteUInt32ToArray(9, this->_internal_contactside(), target);
}
// optional double ContactRCS = 10;
if (_internal_has_contactrcs()) {
target = stream->EnsureSpace(target);
target = ::_pbi::WireFormatLite::WriteDoubleToArray(9, this->_internal_contactrcs(), target);
target = ::_pbi::WireFormatLite::WriteDoubleToArray(10, this->_internal_contactrcs(), target);
}
// repeated .messages.SimTrack.Emission ContactEmissions = 10;
// repeated .messages.SimTrack.Emission ContactEmissions = 11;
for (unsigned i = 0,
n = static_cast<unsigned>(this->_internal_contactemissions_size()); i < n; i++) {
const auto& repfield = this->_internal_contactemissions(i);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessage(10, repfield, repfield.GetCachedSize(), target, stream);
InternalWriteMessage(11, repfield, repfield.GetCachedSize(), target, stream);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
@@ -568,7 +592,7 @@ size_t SimTrack::ByteSizeLong() const {
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
// repeated .messages.SimTrack.Emission ContactEmissions = 10;
// repeated .messages.SimTrack.Emission ContactEmissions = 11;
total_size += 1UL * this->_internal_contactemissions_size();
for (const auto& msg : this->_impl_.contactemissions_) {
total_size +=
@@ -590,7 +614,7 @@ size_t SimTrack::ByteSizeLong() const {
}
cached_has_bits = _impl_._has_bits_[0];
if (cached_has_bits & 0x0000007fu) {
if (cached_has_bits & 0x000000ffu) {
// optional .messages.track.EntityGeocentricPosition GeocentricPosition = 4;
if (cached_has_bits & 0x00000001u) {
total_size += 1 +
@@ -608,9 +632,9 @@ size_t SimTrack::ByteSizeLong() const {
total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_contactsourcetype());
}
// optional uint32 ContactEnvironemnt = 8;
// optional uint32 ContactKind = 8;
if (cached_has_bits & 0x00000008u) {
total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_contactenvironemnt());
total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_contactkind());
}
// optional double ContactCourse = 6;
@@ -623,11 +647,16 @@ size_t SimTrack::ByteSizeLong() const {
total_size += 1 + 8;
}
// optional double ContactRCS = 9;
// optional double ContactRCS = 10;
if (cached_has_bits & 0x00000040u) {
total_size += 1 + 8;
}
// optional uint32 ContactSide = 9;
if (cached_has_bits & 0x00000080u) {
total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_contactside());
}
}
return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}
@@ -656,7 +685,7 @@ void SimTrack::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTO
from._internal_entityidentifier());
}
cached_has_bits = from._impl_._has_bits_[0];
if (cached_has_bits & 0x0000007fu) {
if (cached_has_bits & 0x000000ffu) {
if (cached_has_bits & 0x00000001u) {
_this->_internal_mutable_geocentricposition()->::messages::track::EntityGeocentricPosition::MergeFrom(
from._internal_geocentricposition());
@@ -668,7 +697,7 @@ void SimTrack::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTO
_this->_impl_.contactsourcetype_ = from._impl_.contactsourcetype_;
}
if (cached_has_bits & 0x00000008u) {
_this->_impl_.contactenvironemnt_ = from._impl_.contactenvironemnt_;
_this->_impl_.contactkind_ = from._impl_.contactkind_;
}
if (cached_has_bits & 0x00000010u) {
_this->_impl_.contactcourse_ = from._impl_.contactcourse_;
@@ -679,6 +708,9 @@ void SimTrack::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTO
if (cached_has_bits & 0x00000040u) {
_this->_impl_.contactrcs_ = from._impl_.contactrcs_;
}
if (cached_has_bits & 0x00000080u) {
_this->_impl_.contactside_ = from._impl_.contactside_;
}
_this->_impl_._has_bits_[0] |= cached_has_bits;
}
_this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
@@ -707,8 +739,8 @@ void SimTrack::InternalSwap(SimTrack* other) {
&other->_impl_.conatactname_, rhs_arena
);
::PROTOBUF_NAMESPACE_ID::internal::memswap<
PROTOBUF_FIELD_OFFSET(SimTrack, _impl_.contactrcs_)
+ sizeof(SimTrack::_impl_.contactrcs_)
PROTOBUF_FIELD_OFFSET(SimTrack, _impl_.contactside_)
+ sizeof(SimTrack::_impl_.contactside_)
- PROTOBUF_FIELD_OFFSET(SimTrack, _impl_.entityidentifier_)>(
reinterpret_cast<char*>(&_impl_.entityidentifier_),
reinterpret_cast<char*>(&other->_impl_.entityidentifier_));

View File

@@ -188,18 +188,19 @@ class SimTrack final :
// accessors -------------------------------------------------------
enum : int {
kContactEmissionsFieldNumber = 10,
kContactEmissionsFieldNumber = 11,
kConatactNameFieldNumber = 2,
kEntityIdentifierFieldNumber = 1,
kGeocentricPositionFieldNumber = 4,
kContactSpeedFieldNumber = 5,
kContactSourceTypeFieldNumber = 3,
kContactEnvironemntFieldNumber = 8,
kContactKindFieldNumber = 8,
kContactCourseFieldNumber = 6,
kConactPitchFieldNumber = 7,
kContactRCSFieldNumber = 9,
kContactRCSFieldNumber = 10,
kContactSideFieldNumber = 9,
};
// repeated .messages.SimTrack.Emission ContactEmissions = 10;
// repeated .messages.SimTrack.Emission ContactEmissions = 11;
int contactemissions_size() const;
private:
int _internal_contactemissions_size() const;
@@ -293,17 +294,17 @@ class SimTrack final :
void _internal_set_contactsourcetype(uint32_t value);
public:
// optional uint32 ContactEnvironemnt = 8;
bool has_contactenvironemnt() const;
// optional uint32 ContactKind = 8;
bool has_contactkind() const;
private:
bool _internal_has_contactenvironemnt() const;
bool _internal_has_contactkind() const;
public:
void clear_contactenvironemnt();
uint32_t contactenvironemnt() const;
void set_contactenvironemnt(uint32_t value);
void clear_contactkind();
uint32_t contactkind() const;
void set_contactkind(uint32_t value);
private:
uint32_t _internal_contactenvironemnt() const;
void _internal_set_contactenvironemnt(uint32_t value);
uint32_t _internal_contactkind() const;
void _internal_set_contactkind(uint32_t value);
public:
// optional double ContactCourse = 6;
@@ -332,7 +333,7 @@ class SimTrack final :
void _internal_set_conactpitch(double value);
public:
// optional double ContactRCS = 9;
// optional double ContactRCS = 10;
bool has_contactrcs() const;
private:
bool _internal_has_contactrcs() const;
@@ -345,6 +346,19 @@ class SimTrack final :
void _internal_set_contactrcs(double value);
public:
// optional uint32 ContactSide = 9;
bool has_contactside() const;
private:
bool _internal_has_contactside() const;
public:
void clear_contactside();
uint32_t contactside() const;
void set_contactside(uint32_t value);
private:
uint32_t _internal_contactside() const;
void _internal_set_contactside(uint32_t value);
public:
// @@protoc_insertion_point(class_scope:messages.SimTrack.SimTrack)
private:
class _Internal;
@@ -361,10 +375,11 @@ class SimTrack final :
::messages::track::EntityGeocentricPosition* geocentricposition_;
double contactspeed_;
uint32_t contactsourcetype_;
uint32_t contactenvironemnt_;
uint32_t contactkind_;
double contactcourse_;
double conactpitch_;
double contactrcs_;
uint32_t contactside_;
};
union { Impl_ _impl_; };
friend struct ::TableStruct_SimTrack_2eproto;
@@ -1000,35 +1015,63 @@ inline void SimTrack::set_conactpitch(double value) {
// @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ConactPitch)
}
// optional uint32 ContactEnvironemnt = 8;
inline bool SimTrack::_internal_has_contactenvironemnt() const {
// optional uint32 ContactKind = 8;
inline bool SimTrack::_internal_has_contactkind() const {
bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0;
return value;
}
inline bool SimTrack::has_contactenvironemnt() const {
return _internal_has_contactenvironemnt();
inline bool SimTrack::has_contactkind() const {
return _internal_has_contactkind();
}
inline void SimTrack::clear_contactenvironemnt() {
_impl_.contactenvironemnt_ = 0u;
inline void SimTrack::clear_contactkind() {
_impl_.contactkind_ = 0u;
_impl_._has_bits_[0] &= ~0x00000008u;
}
inline uint32_t SimTrack::_internal_contactenvironemnt() const {
return _impl_.contactenvironemnt_;
inline uint32_t SimTrack::_internal_contactkind() const {
return _impl_.contactkind_;
}
inline uint32_t SimTrack::contactenvironemnt() const {
// @@protoc_insertion_point(field_get:messages.SimTrack.SimTrack.ContactEnvironemnt)
return _internal_contactenvironemnt();
inline uint32_t SimTrack::contactkind() const {
// @@protoc_insertion_point(field_get:messages.SimTrack.SimTrack.ContactKind)
return _internal_contactkind();
}
inline void SimTrack::_internal_set_contactenvironemnt(uint32_t value) {
inline void SimTrack::_internal_set_contactkind(uint32_t value) {
_impl_._has_bits_[0] |= 0x00000008u;
_impl_.contactenvironemnt_ = value;
_impl_.contactkind_ = value;
}
inline void SimTrack::set_contactenvironemnt(uint32_t value) {
_internal_set_contactenvironemnt(value);
// @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ContactEnvironemnt)
inline void SimTrack::set_contactkind(uint32_t value) {
_internal_set_contactkind(value);
// @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ContactKind)
}
// optional double ContactRCS = 9;
// optional uint32 ContactSide = 9;
inline bool SimTrack::_internal_has_contactside() const {
bool value = (_impl_._has_bits_[0] & 0x00000080u) != 0;
return value;
}
inline bool SimTrack::has_contactside() const {
return _internal_has_contactside();
}
inline void SimTrack::clear_contactside() {
_impl_.contactside_ = 0u;
_impl_._has_bits_[0] &= ~0x00000080u;
}
inline uint32_t SimTrack::_internal_contactside() const {
return _impl_.contactside_;
}
inline uint32_t SimTrack::contactside() const {
// @@protoc_insertion_point(field_get:messages.SimTrack.SimTrack.ContactSide)
return _internal_contactside();
}
inline void SimTrack::_internal_set_contactside(uint32_t value) {
_impl_._has_bits_[0] |= 0x00000080u;
_impl_.contactside_ = value;
}
inline void SimTrack::set_contactside(uint32_t value) {
_internal_set_contactside(value);
// @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ContactSide)
}
// optional double ContactRCS = 10;
inline bool SimTrack::_internal_has_contactrcs() const {
bool value = (_impl_._has_bits_[0] & 0x00000040u) != 0;
return value;
@@ -1056,7 +1099,7 @@ inline void SimTrack::set_contactrcs(double value) {
// @@protoc_insertion_point(field_set:messages.SimTrack.SimTrack.ContactRCS)
}
// repeated .messages.SimTrack.Emission ContactEmissions = 10;
// repeated .messages.SimTrack.Emission ContactEmissions = 11;
inline int SimTrack::_internal_contactemissions_size() const {
return _impl_.contactemissions_.size();
}

View File

@@ -20,10 +20,11 @@ message SimTrack {
optional double ContactSpeed = 5;
optional double ContactCourse = 6;
optional double ConactPitch = 7;
optional uint32 ContactEnvironemnt = 8;
optional double ContactRCS = 9;
optional uint32 ContactKind = 8;
optional uint32 ContactSide = 9;
optional double ContactRCS = 10;
repeated Emission ContactEmissions = 10;
repeated Emission ContactEmissions = 11;
// google.protobuf.Timestamp timestamp = 9;
}

View File

@@ -4,6 +4,7 @@
#include <WHISPER/Messages/Message.hpp>
#include "SimCore/Messages/Protos/SimTrack.pb.h"
#include "SimCore/SimCore.hpp"
#include <SimCore/Identifier.hpp>
#include <SimCore/Position.hpp>
#include <SimCore/data.hpp>
@@ -20,13 +21,13 @@ namespace SimCore
public:
SimTrack();
SimTrack(std::string name, SimCore::EntityKind entityKind);
SimTrack(std::string name, SimCore::Kind::EntityKind entityKind,SimCore::Side::EntitySide Side);
SimTrack(WHISPER::SourceType sourcetype, SimCore::EntityKind entityKind);
SimTrack(WHISPER::SourceType sourcetype, SimCore::Kind::EntityKind entityKind, SimCore::Side::EntitySide Side);
SimTrack(SimCore::Identifier id,std::string name, SimCore::EntityKind entityKind);
SimTrack(SimCore::Identifier id,std::string name, SimCore::Kind::EntityKind entityKind,SimCore::Side::EntitySide Side);
SimTrack(SimCore::Identifier id, WHISPER::SourceType sourcetype, SimCore::EntityKind entityKind);
SimTrack(SimCore::Identifier id, WHISPER::SourceType sourcetype, SimCore::Kind::EntityKind entityKind,SimCore::Side::EntitySide Side);
~SimTrack();
@@ -79,7 +80,8 @@ namespace SimCore
Data<double> RCS;
Data<WHISPER::SourceType> SourceType;
Data<SimCore::EntityKind> EntityKind;
Data<SimCore::Side::EntitySide> EntitySide;
Data<SimCore::Kind::EntityKind> EntityKind;
private:
const SimCore::Identifier ID_;

View File

@@ -1,5 +1,7 @@
#pragma once
#include <cstdint>
#include <map>
#include <string>
#define RCS_DEFAULT 1000
#define RCS_AIR 800
@@ -42,16 +44,45 @@ INTERNAL = false
};
namespace Side {
enum EntityKind : std::uint8_t{
enum EntitySide : std::uint8_t{
UNKNOWN,
NEUTRAL = 1,
HOSTILE = 2,
FRIEND = 3,
};
static std::map<std::uint8_t, std::string> EntitySideMap =
{
{EntitySide::UNKNOWN, "Unknown"},
{EntitySide::NEUTRAL, "Neutral"},
{EntitySide::HOSTILE, "Hostile"},
{EntitySide::FRIEND, "Friend"}
};
}
namespace Kind {
enum EntityKind : std::uint8_t{
UNKNOWN = 0,
SURFACE = 1,
SUBSURFACE = 2,
AIR = 3,
LAND = 4,
SPACE = 5
};
};
static std::map<std::uint8_t, std::string> EntityKindMap =
{
{UNKNOWN, "Unknown"},
{SURFACE, "Surface"},
{SUBSURFACE, "Subsurface" },
{AIR, "Air"},
{LAND, "Land"},
{SPACE, "Space"}
};
}
enum SensorKinds : std::uint32_t {
RADAR = 1,

View File

@@ -1,3 +1,4 @@
#include "SimCore/SimCore.hpp"
#include "WHISPER/Messages/Message.hpp"
#include <SimCore/Messages/SimTrack.hpp>
#include <iterator>
@@ -10,8 +11,8 @@ namespace SimCore
SimTrack::SimTrack()
:ID_(SimCore::Identifier())
{
EntityKind.setValue(SimCore::EntityKind::UNKNOWN);
EntityKind.setValue(Kind::UNKNOWN);
EntitySide.setValue(Side::UNKNOWN);
position_ = SimCore::Position();
Speed.setValue(0);
Course.setValue(0);
@@ -19,16 +20,22 @@ namespace SimCore
RCS.setValue(0);
}
SimTrack::SimTrack(std::string name, SimCore::EntityKind entityKind):ID_(SimCore::Identifier())
SimTrack::SimTrack(std::string name, SimCore::Kind::EntityKind entityKind, SimCore::Side::EntitySide Side)
:ID_(SimCore::Identifier()),Name(name)
{
Name.setValue(name);
EntityKind.setValue(entityKind);
EntitySide.setValue(Side);
}
SimTrack::SimTrack(WHISPER::SourceType sourcetype,SimCore::EntityKind entityKind)
SimTrack::SimTrack(WHISPER::SourceType sourcetype,SimCore::Kind::EntityKind entityKind, SimCore::Side::EntitySide Side)
:ID_(SimCore::Identifier())
{
EntityKind.setValue(entityKind);
EntitySide.setValue(Side);
position_ = SimCore::Position();
Speed.setValue(0);
@@ -36,17 +43,18 @@ namespace SimCore
Pitch.setValue(0);
RCS.setValue(0);
}
SimTrack::SimTrack(SimCore::Identifier id,std::string name, SimCore::EntityKind entityKind)
SimTrack::SimTrack(SimCore::Identifier id,std::string name, SimCore::Kind::EntityKind entityKind, SimCore::Side::EntitySide Side)
:ID_(id),Name(name),EntityKind(entityKind)
{
}
SimTrack::SimTrack(SimCore::Identifier id ,WHISPER::SourceType sourcetype,SimCore::EntityKind entityKind )
SimTrack::SimTrack(SimCore::Identifier id ,WHISPER::SourceType sourcetype,SimCore::Kind::EntityKind entityKind, SimCore::Side::EntitySide Side)
:ID_(id),SourceType(sourcetype)
{
EntityKind.setValue(entityKind);
EntitySide.setValue(Side);
position_ = SimCore::Position();
Speed.setValue(0);
@@ -100,6 +108,8 @@ namespace SimCore
SimTrack.mutable_geocentricposition()->set_y(position_.getGeocentricPos()(SimCore::Y));
SimTrack.mutable_geocentricposition()->set_z(position_.getGeocentricPos()(SimCore::Z));
}
if(EntitySide.isValid()) SimTrack.set_contactside(this->EntitySide.getValue());
if(EntityKind.isValid()) SimTrack.set_contactkind(this->EntitySide.getValue());
if(Speed.isValid()) SimTrack.set_contactspeed(this->Speed.getValue());
if(Course.isValid()) SimTrack.set_contactcourse(this->Course.getValue());
@@ -146,9 +156,21 @@ namespace SimCore
WHISPER::SourceType sourcetype = (WHISPER::SourceType)trackMsg.contactsourcetype();
SimCore::EntityKind entityKind = (SimCore::EntityKind)trackMsg.contactenvironemnt();
SimCore::SimTrack track(id,trackMsg.conatactname(),entityKind);
SimCore::Kind::EntityKind entityKind = SimCore::Kind::UNKNOWN;
if (trackMsg.has_contactkind())
{
entityKind = (SimCore::Kind::EntityKind)trackMsg.contactkind();
}
SimCore::Side::EntitySide entitySide = SimCore::Side::UNKNOWN;
if (trackMsg.has_contactside())
{
entitySide = (SimCore::Side::EntitySide)trackMsg.contactside();
}
SimCore::SimTrack track(id,trackMsg.conatactname(),entityKind,entitySide);
if (trackMsg.has_contactsourcetype())
{
@@ -178,23 +200,23 @@ namespace SimCore
{
switch (entityKind)
{
case SimCore::EntityKind::AIR:
case SimCore::Kind::EntityKind::AIR:
{
track.RCS.setValue(RCS_AIR);
break;
}
case SimCore::EntityKind::LAND:
case SimCore::Kind::EntityKind::LAND:
{
track.RCS.setValue(RCS_LAND);
break;
}
case SimCore::EntityKind::SURFACE:
case SimCore::Kind::EntityKind::SURFACE:
{
track.RCS.setValue(RCS_SURFACE);
break;
}
case SimCore::EntityKind::SPACE:
case SimCore::Kind::EntityKind::SPACE:
{
track.RCS.setValue(RCS_SPACE);
break;