WSF
WsfXIO_ObjectInfo.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFXIO_OBJECTINFO_HPP
13#define WSFXIO_OBJECTINFO_HPP
14
15#include "wsf_export.h"
16
17#include <cassert>
18#include <vector>
19
20#include "GenUniqueId.hpp"
21#include "PakIntTypes.hpp"
22#include "PakSerializeFwd.hpp"
23#include "UtEntity.hpp"
24#include "WsfComponentRoles.hpp"
25#include "WsfEM_Antenna.hpp"
26#include "WsfPath.hpp"
28class WsfRoute;
29#include "WsfStringId.hpp"
30#include "WsfTypes.hpp"
40
41// =================================================================================================
47// =================================================================================================
48
55{
56public:
57 WsfXIO_ExtraInfo() = default;
58 virtual ~WsfXIO_ExtraInfo() = default;
59
60 template<typename T>
61 void Serialize(T& aBuff)
62 {
63 aBuff& mDummy;
64 }
65 bool mDummy;
66};
67
70{
71public:
72 template<typename T>
82
84 double mPitch;
96
98 double mMinAzScan; // radians
99 double mMaxAzScan; // radians
100 double mMinElScan; // radians
101 double mMaxElScan; // radians
103
106
107 double mMinAzFOV; // radians
108 double mMaxAzFOV; // radians
109 double mMinElFOV; // radians
110 double mMaxElFOV; // radians
111 double mMinRange; // meters
112 double mMaxRange; // meters
113 double mMinAlt; // meters
114 double mMaxAlt; // meters
116};
117
120{
121public:
124
125 template<typename T>
126 void Serialize(T& aBuff)
127 {
128 aBuff& mBeamTilt& mAntennaPtr& PakSerialization::Polymorphic(mExtraPtr);
129 }
130
131 double mBeamTilt;
134};
135
155
186
187// XIO representation of a WsfObject.
189{
190public:
191 // ObjectType used to be an enum, but it needs to be an int because it is based on component role.
192 using ObjectType = int32_t;
193
194 enum
195 {
196 cPLATFORM_PART = 0x40000000,
198 // Allows one to isolate the WSF component role for platform/articulated parts.
199 // It is 23 bits wide, so the role must be less than 8388608 (2^23).
201 // Picks up the general type of a platform part.
202 cPART_TYPE_MASK = 0x607fffff,
203 // The 'DERIVED_TYPE' field allows one to uniquely identify a particular type of part within a
204 // category of platform parts. For instance, one could uniquely identify a particular implementation
205 // of a sensor. It is 6 bits wide so it allows for 64 values [0..63]
206 cDERIVED_TYPE_MASK = 0x1f800000,
207 cDERIVED_TYPE_BEGIN = 0x00800000, // The first non-zero value
208 // Start of the
216 // XIO components may add additional objects.
217 };
218
220 : mObjectType(aObjectType)
221 {
222 }
223
224 bool IsPlatform() const { return mObjectType == cPLATFORM; }
225 bool IsTrackManager() const { return mObjectType == cTRACK_MANAGER; }
226 bool IsPlatformPart() const { return (mObjectType & cPLATFORM_PART) != 0; }
227 bool IsArticulatedPart() const { return (mObjectType & cARTICULATED_PART) != 0; }
228 bool IsSensor() const { return (mObjectType & cPART_TYPE_MASK) == cSENSOR_PART; }
229 bool IsComm() const { return (mObjectType & cPART_TYPE_MASK) == cCOMM_PART; }
230 bool IsProcessor() const { return (mObjectType & cPART_TYPE_MASK) == cPROCESSOR_PART; }
231 bool IsMover() const { return (mObjectType & cPART_TYPE_MASK) == cMOVER_PART; }
232 ObjectType GetObjectType() const { return mObjectType; }
233
234 template<typename T>
235 void Serialize(T& aBuff)
236 {
237 aBuff& mObjectType;
238 }
239
240private:
241 WsfXIO_ObjectInfo& operator=(const WsfXIO_ObjectInfo& aRhs) = delete;
243
245 ObjectType mObjectType;
246};
247
249{
250public:
252
257 virtual ~WsfXIO_PlatformPartInfo();
258
259 template<typename T>
266
267 void InitStateChange(WsfXIO_PartStateChangeRequestPkt& aPkt);
268 virtual void UpdateFromStateChange(WsfXIO_PartStateChangePkt& aPkt);
269 virtual void UpdateFromPartState(WsfXIO_PlatformPartStatePkt& aPkt);
270
272 int GetPartType() const { return mPartType; }
274 size_t GetPlatformIndex() const { return mPlatformIndex; }
276 WsfStringId GetName() const { return mName; }
282 bool IsTurnedOn() const { return mIsTurnedOn; }
284 void TurnOn(bool aTurnOn = true);
286 void TurnOff();
288 void SetDebugEnabled(bool aEnabled);
289
291 bool IsOperational() const { return mIsOperational; }
292
295
297 void SetPlatformPtr(WsfXIO_PlatformInfo* aPlatformPtr) { mPlatformPtr = aPlatformPtr; }
298
301
302 void SetTurnedOnFlag(const bool aTurnedOn) { mIsTurnedOn = aTurnedOn; }
303
306
316
317protected:
319};
320
323{
324public:
326
331
332 template<typename T>
333 void Serialize(T& aBuff)
334 {
336 aBuff& mYaw& mPitch& mRoll& mTilt;
337 }
338
339 void UpdateFromStateChange(WsfXIO_PartStateChangePkt& aPkt) override;
340 void UpdateFromPartState(WsfXIO_PlatformPartStatePkt& aPkt) override;
341
343
344 double mYaw;
345 double mPitch;
346 double mRoll;
347 double mTilt;
349private:
351};
352
353
356{
357public:
362
363 template<typename T>
369
370 void UpdateFromStateChange(WsfXIO_PartStateChangePkt& aPkt) override;
371 void UpdateFromPartState(WsfXIO_PlatformPartStatePkt& aPkt) override;
372
373 void SelectMode(bool aSelect, WsfStringId aModeId);
374 bool IsModeSelected(WsfStringId aModeName);
375
376 std::vector<WsfStringId> mModeNames;
377 std::vector<WsfStringId> mSelectedModeNames;
379
380private:
382};
383
386{
387public:
393
394 template<typename T>
395 void Serialize(T& aBuff)
396 {
398 aBuff& mNetworkName;
399 }
400
402
403private:
405};
406
408{
409public:
410 template<typename T>
411 void Serialize(T& aBuff)
412 {
413 aBuff& mModeName;
414 }
416};
417
419{
420public:
422 {
425 };
426
427 template<typename T>
428 void Serialize(T& aBuff)
429 {
431 aBuff& mFrameTime& mModeType;
432 }
434 int32_t mModeType;
435};
436
439{
440public:
446 ~WsfXIO_SensorInfo() override;
447
448 template<typename T>
449 void Serialize(T& aBuff)
450 {
453 }
454 void UpdateFromStateChange(WsfXIO_PartStateChangePkt& aPkt) override;
455 void UpdateFromPartState(WsfXIO_PlatformPartStatePkt& aPkt) override;
456
457 WsfXIO_SensorModeInfo* GetCurrentMode();
458
460 std::vector<WsfXIO_EM_XmtrInfo*> mTransmitters;
461 std::vector<WsfXIO_EM_RcvrInfo*> mReceivers;
462 std::vector<WsfXIO_SensorModeInfo> mModes;
463
464private:
466};
467
470{
471public:
477
478 template<typename T>
479 void Serialize(T& aBuff)
480 {
482 }
483
484private:
486};
487
490{
491public:
494
497
498 template<typename T>
499 void Serialize(T& aBuff)
500 {
502 aBuff& mCorrelationStrategy& mFusionStrategy;
503 }
504
505 WsfStringId GetCorrelationStrategy() const { return mCorrelationStrategy; }
506 WsfStringId GetFusionStrategy() const { return mFusionStrategy; }
508 void ChangeFusionStrategy(WsfStringId aMethod) const;
510 void ChangeCorrelationStrategy(WsfStringId aMethod) const;
511
512 // The following methods were protected but were made public due to problems with gcc 3 and vs2003.
514 void SetFusionStrategy(WsfStringId aMethod) { mFusionStrategy = aMethod; }
516 void SetCorrelationStrategy(WsfStringId aMethod) { mCorrelationStrategy = aMethod; }
517
518private:
519 WsfXIO_TrackManagerInfo& operator=(const WsfXIO_TrackManagerInfo& aRhs) = delete;
521
522 WsfStringId mCorrelationStrategy;
523 WsfStringId mFusionStrategy;
524 WsfXIO_PlatformInfo* mPlatformPtr;
525};
526
527void WSF_EXPORT Load(PakI& aBuff, WsfXIO_PlatformPartInfo*& aPtr);
528void WSF_EXPORT Save(PakO& aBuff, WsfXIO_PlatformPartInfo*& aPtr);
529
532{
535 template<typename T>
536 void Serialize(T& aBuff)
537 {
538 aBuff& mName& mGlobalName;
539 }
540};
541
543{
544public:
549
550 template<typename T>
551 void Serialize(T& aBuff)
552 {
554 aBuff& PakSerialization::Enum(mSwitchType) & mTurnFailOption& mTurnFailThreshold& mConstraints;
555 }
556
561
562private:
564};
565
567{
568public:
573
576 : WsfXIO_ObjectInfo(aType)
577 , mFlags(0)
578 , mStateValid(false)
579 , mEntityStateBaseTime(1.0E12)
580 , mEntityType()
582 , mRoutePtr()
584 , mMoverPtr()
585 , mAuxDataPtr(nullptr)
586 , mHostId(0)
587 , mHostConnectionPtr(nullptr)
588 {
589 }
590
591 virtual ~WsfXIO_PlatformInfo();
592
593 bool operator==(const WsfXIO_PlatformInfo& aRhs) const;
594 bool operator==(const WsfXIO_EntityId& aRhs) const;
595
596 template<typename T>
597 void Serialize(T& aBuff)
598 {
599 aBuff& mIndex& mFlags& mName& mType;
600 aBuff& mParts;
601 aBuff& PakSerialization::Enum(mSpatialDomain) & mIcon& mSide& mMarking& mEntityId& mEntityType;
604 aBuff& mMoverPtr& mAuxDataPtr;
605 if (!T::cIS_OUTPUT)
606 {
607 mTrackManagerInfo.mPlatformPtr = this;
608 }
609 }
610
611 void SetHostConnection(WsfXIO_Connection* aConnectionPtr);
612 WsfXIO_Connection* GetHostConnection() const { return mHostConnectionPtr; }
613 int GetConnectionId() const { return mHostId; }
614
615 WsfXIO_PlatformId GetId() const { return WsfXIO_PlatformId(mIndex, mHostId); }
616
618 int32_t GetIndex() const { return mIndex; }
620 WsfStringId GetName() const { return mName; }
622 WsfStringId GetType() const { return mType; }
624 WsfStringId GetIcon() const { return mIcon; }
626 WsfStringId GetSide() const { return mSide; }
627 WsfStringId GetMarking() const { return mMarking; }
630
632 using PartList = std::vector<WsfXIO_PlatformPartInfo*>;
633 void AddPart(WsfXIO_PlatformPartInfo* aPartPtr) { mParts.push_back(aPartPtr); }
634 unsigned int GetPartCount() const { return (unsigned int)mParts.size(); }
635 WsfXIO_PlatformPartInfo* GetPartEntry(unsigned int aEntry) const { return mParts[aEntry]; }
636
637 PartList::const_iterator BeginParts() const { return mParts.begin(); }
638 PartList::const_iterator EndParts() const { return mParts.end(); }
639 PartList::iterator BeginParts() { return mParts.begin(); }
640 PartList::iterator EndParts() { return mParts.end(); }
641 const PartList& GetParts() const { return mParts; }
642 WsfXIO_PlatformPartInfo* FindPart(WsfStringId aPartName, int aType);
643
645 unsigned int GetZoneCount() const { return (unsigned int)mZoneNames.size(); }
646
648 std::vector<WsfXIO_Zone>::const_iterator BeginZones() const { return mZoneNames.begin(); }
649 std::vector<WsfXIO_Zone>::const_iterator EndZones() const { return mZoneNames.end(); }
650
651 bool UpdateState(double aSimTime);
652 void SetStateRefTime(double aBaseTime) { mEntityStateBaseTime = aBaseTime; }
653 bool IsStateValid() const { return mEntityStateBaseTime < 1.0E12; }
654
655 const UtEntity& GetState() const { return mEntityState; }
656 UtEntity& GetState() { return mEntityState; }
657
660
663
664 using CommandChain = std::pair<WsfStringId, WsfStringId>;
665 const std::vector<CommandChain>& GetCommanders() const { return mCommanders; }
666
668
669 void RequestDelete();
670
671 int32_t mIndex;
672 int32_t mFlags;
679
680 std::vector<WsfXIO_PlatformPartInfo*> mParts;
681
684 UtEntity mEntityState;
687
689
690 std::vector<CommandChain> mCommanders;
691 std::vector<WsfXIO_Zone> mZoneNames;
695
696 WsfAttributeContainer* mAuxDataPtr; // Aux Data is only sent once, not updated
697private:
698 int mHostId;
699 WsfXIO_Connection* mHostConnectionPtr;
700
702 WsfXIO_PlatformInfo& operator=(const WsfXIO_PlatformInfo& aRhs) = delete;
703};
704
706{
707 using LinkList = std::vector<WsfStringId>;
708 template<typename T>
709 void Serialize(T& aBuff)
710 {
712 }
716};
717
718void WSF_EXPORT Load(PakI& aBuff, WsfXIO_ObjectInfo*& aPtr);
719void WSF_EXPORT Save(PakO& aBuff, WsfXIO_ObjectInfo*& aPtr);
720
721#endif
@ cWSF_COMPONENT_PLATFORM
The component is or derives from WsfPlatform.
Definition WsfComponentRoles.hpp:94
@ cWSF_COMPONENT_TRACK_MANAGER
A 'track manager' component (WsfTrackManager).
Definition WsfComponentRoles.hpp:107
@ cWSF_COMPONENT_PROCESSOR
A 'processor' component (WsfProcessor).
Definition WsfComponentRoles.hpp:104
@ cWSF_COMPONENT_SENSOR
A 'sensor' component (WsfSensor).
Definition WsfComponentRoles.hpp:105
@ cWSF_COMPONENT_COMM
A 'comm' component (WsfComm).
Definition WsfComponentRoles.hpp:102
@ cWSF_COMPONENT_MOVER
A 'mover' component (WsfMover).
Definition WsfComponentRoles.hpp:100
bool operator==(int aId, const WsfStringInt &aRhs)
Equal relational operator for the case of an integer on the LHS and a StringId on the RHS.
Definition WsfStringId.hpp:69
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
WsfSpatialDomain
A collection of enumerations and type definitions that are used across a number of components.
Definition WsfTypes.hpp:32
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
void WSF_EXPORT Load(PakI &aBuff, WsfXIO_PlatformPartInfo *&aPtr)
Definition WsfXIO_ObjectInfo.cpp:345
void WSF_EXPORT Save(PakO &aBuff, WsfXIO_PlatformPartInfo *&aPtr)
Definition WsfXIO_ObjectInfo.cpp:352
Definition WsfAttributeContainer.hpp:24
EBS_Mode
Electronic beam steering capabilities.
Definition WsfEM_Antenna.hpp:62
ScanMode
The scan mode indicates how the beam scans within the field of view.
Definition WsfEM_Antenna.hpp:53
A collection of WsfWaypoint objects that represent a path to be followed.
Definition WsfRoute.hpp:40
XIO representation of WsfEM_Antenna.
Definition WsfXIO_ObjectInfo.hpp:70
double mMaxRange
Definition WsfXIO_ObjectInfo.hpp:112
double mMaxElScan
Definition WsfXIO_ObjectInfo.hpp:101
double mEBS_AzCosSteeringLimit
The cosine of the maximum electronic beam steering angle in azimuth.
Definition WsfXIO_ObjectInfo.hpp:86
WsfEM_Antenna::ScanMode mScanMode
Definition WsfXIO_ObjectInfo.hpp:97
double mMaxElFOV
Definition WsfXIO_ObjectInfo.hpp:110
double mEBS_ElCosSteeringLimit
The cosine of the maximum electronic beam steering angle in elevation.
Definition WsfXIO_ObjectInfo.hpp:88
double mMinElScan
Definition WsfXIO_ObjectInfo.hpp:100
double mMinElFOV
Definition WsfXIO_ObjectInfo.hpp:109
double mEBS_AzLossExponent
The azimuth exponent 'n' of cos(x)^n for computing electronic beam steering losses.
Definition WsfXIO_ObjectInfo.hpp:90
double mMaxAzScan
Definition WsfXIO_ObjectInfo.hpp:99
double mMaxAzFOV
Definition WsfXIO_ObjectInfo.hpp:108
double mMinRange
Definition WsfXIO_ObjectInfo.hpp:111
double mMinAlt
Definition WsfXIO_ObjectInfo.hpp:113
double mMinAzScan
Definition WsfXIO_ObjectInfo.hpp:98
double mMaxAlt
Definition WsfXIO_ObjectInfo.hpp:114
WsfEM_Antenna::EBS_Mode mEBS_Mode
The degrees-of-freedom for electronic beam steering.
Definition WsfXIO_ObjectInfo.hpp:94
double mMinAzFOV
Definition WsfXIO_ObjectInfo.hpp:107
double mPitch
The pitch (tilt) angle of the antenna relative to the articulated part.
Definition WsfXIO_ObjectInfo.hpp:84
double mEBS_ElLossExponent
The elevation exponent 'n' of cos(x)^n for computing electronic beam steering losses.
Definition WsfXIO_ObjectInfo.hpp:92
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:73
double mYaw
Orientation of the articulated part.
Definition WsfXIO_ObjectInfo.hpp:344
double mTilt
Definition WsfXIO_ObjectInfo.hpp:347
double mPitch
Definition WsfXIO_ObjectInfo.hpp:345
static const ObjectType cPART_INFO_ID
Definition WsfXIO_ObjectInfo.hpp:325
double mRoll
Definition WsfXIO_ObjectInfo.hpp:346
WsfXIO_ArticulatedPartInfo(ObjectType aType=cPART_INFO_ID)
Definition WsfXIO_ObjectInfo.hpp:327
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:333
WsfStringId mNetworkName
Definition WsfXIO_ObjectInfo.hpp:401
static const ObjectType cPART_INFO_ID
Definition WsfXIO_ObjectInfo.hpp:388
WsfXIO_CommInfo(ObjectType aType=cPART_INFO_ID)
Definition WsfXIO_ObjectInfo.hpp:389
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:395
Definition WsfXIO_Connection.hpp:37
XIO representation of a WsfEM_Rcvr.
Definition WsfXIO_ObjectInfo.hpp:138
double mNoisePower
Definition WsfXIO_ObjectInfo.hpp:153
double mBandwidth
Definition WsfXIO_ObjectInfo.hpp:148
double mDetectionThreshold
Definition WsfXIO_ObjectInfo.hpp:150
double mPeakAntennaGain
Definition WsfXIO_ObjectInfo.hpp:149
double mInternalLoss
Definition WsfXIO_ObjectInfo.hpp:151
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:141
double mFrequency
Definition WsfXIO_ObjectInfo.hpp:147
double mNoiseFigure
Definition WsfXIO_ObjectInfo.hpp:152
WsfXIO_EM_RcvrInfo * mLinkedRcvrPtr
Definition WsfXIO_ObjectInfo.hpp:184
double mFrequency
Definition WsfXIO_ObjectInfo.hpp:173
double mPulseRepetitionInterval
Definition WsfXIO_ObjectInfo.hpp:178
double mPower
Definition WsfXIO_ObjectInfo.hpp:175
double mPeakAntennaGain
Definition WsfXIO_ObjectInfo.hpp:181
double mBandwidth
Definition WsfXIO_ObjectInfo.hpp:174
double mPulseRepetitionFrequency
Definition WsfXIO_ObjectInfo.hpp:177
WsfXIO_EM_XmtrInfo()=default
double mPulseWidth
Definition WsfXIO_ObjectInfo.hpp:179
double mPulseCompressionRatio
Definition WsfXIO_ObjectInfo.hpp:176
double mInternalLoss
Definition WsfXIO_ObjectInfo.hpp:180
bool mUsePeakPower
Definition WsfXIO_ObjectInfo.hpp:182
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:164
WsfXIO_AntennaInfo * mAntennaPtr
Definition WsfXIO_ObjectInfo.hpp:132
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:126
double mBeamTilt
Definition WsfXIO_ObjectInfo.hpp:131
WsfXIO_ExtraInfo * mExtraPtr
Definition WsfXIO_ObjectInfo.hpp:133
WsfXIO_EM_XmtrRcvrInfo()=default
Definition WsfXIO_ObjectInfo.hpp:55
bool mDummy
Definition WsfXIO_ObjectInfo.hpp:65
virtual ~WsfXIO_ExtraInfo()=default
WsfXIO_ExtraInfo()=default
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:61
Definition WsfXIO_ObjectInfo.hpp:408
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:411
WsfStringId mModeName
Definition WsfXIO_ObjectInfo.hpp:415
std::vector< WsfStringId > mSelectedModeNames
Definition WsfXIO_ObjectInfo.hpp:377
WsfStringId mCurrentModeName
Definition WsfXIO_ObjectInfo.hpp:378
WsfXIO_ModedPartInfo(ObjectType aType)
Definition WsfXIO_ObjectInfo.hpp:358
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:364
std::vector< WsfStringId > mModeNames
Definition WsfXIO_ObjectInfo.hpp:376
Definition WsfXIO_ObjectInfo.hpp:543
int mTurnFailOption
Definition WsfXIO_ObjectInfo.hpp:558
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:551
WsfXIO_MoverInfo()
Definition WsfXIO_ObjectInfo.hpp:545
WsfPath::Switch mSwitchType
Definition WsfXIO_ObjectInfo.hpp:557
double mTurnFailThreshold
Definition WsfXIO_ObjectInfo.hpp:559
WsfPathConstraints mConstraints
Definition WsfXIO_ObjectInfo.hpp:560
Definition WsfXIO_ObjectInfo.hpp:189
bool IsMover() const
Definition WsfXIO_ObjectInfo.hpp:231
bool IsPlatformPart() const
Definition WsfXIO_ObjectInfo.hpp:226
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:235
bool IsPlatform() const
Definition WsfXIO_ObjectInfo.hpp:224
bool IsProcessor() const
Definition WsfXIO_ObjectInfo.hpp:230
ObjectType GetObjectType() const
Definition WsfXIO_ObjectInfo.hpp:232
WsfXIO_ObjectInfo(ObjectType aObjectType)
Definition WsfXIO_ObjectInfo.hpp:219
bool IsComm() const
Definition WsfXIO_ObjectInfo.hpp:229
bool IsArticulatedPart() const
Definition WsfXIO_ObjectInfo.hpp:227
int32_t ObjectType
Definition WsfXIO_ObjectInfo.hpp:192
@ cCOMM_PART
Definition WsfXIO_ObjectInfo.hpp:213
@ cNO_OBJECT
Definition WsfXIO_ObjectInfo.hpp:209
@ cPLATFORM_PART
Definition WsfXIO_ObjectInfo.hpp:196
@ cCOMPONENT_ROLE_MASK
Definition WsfXIO_ObjectInfo.hpp:200
@ cMOVER_PART
Definition WsfXIO_ObjectInfo.hpp:212
@ cPROCESSOR_PART
Definition WsfXIO_ObjectInfo.hpp:214
@ cTRACK_MANAGER
Definition WsfXIO_ObjectInfo.hpp:211
@ cPART_TYPE_MASK
Definition WsfXIO_ObjectInfo.hpp:202
@ cSENSOR_PART
Definition WsfXIO_ObjectInfo.hpp:215
@ cPLATFORM
Definition WsfXIO_ObjectInfo.hpp:210
@ cDERIVED_TYPE_MASK
Definition WsfXIO_ObjectInfo.hpp:206
@ cDERIVED_TYPE_BEGIN
Definition WsfXIO_ObjectInfo.hpp:207
@ cARTICULATED_PART
Definition WsfXIO_ObjectInfo.hpp:197
bool IsTrackManager() const
Definition WsfXIO_ObjectInfo.hpp:225
bool IsSensor() const
Definition WsfXIO_ObjectInfo.hpp:228
Inform other applications about a platform part state change.
Definition WsfXIO_PacketRegistry.hpp:460
Requests that an application changes either state or mode of a platform part.
Definition WsfXIO_PacketRegistry.hpp:487
Definition WsfXIO_PlatformId.hpp:20
Definition WsfXIO_ObjectInfo.hpp:567
std::vector< WsfXIO_Zone >::const_iterator EndZones() const
Definition WsfXIO_ObjectInfo.hpp:649
std::vector< WsfXIO_Zone >::const_iterator BeginZones() const
Returns begin index to the list of Zone names.
Definition WsfXIO_ObjectInfo.hpp:648
PartList::iterator EndParts()
Definition WsfXIO_ObjectInfo.hpp:640
WsfXIO_MoverInfo * mMoverPtr
Definition WsfXIO_ObjectInfo.hpp:694
WsfStringId GetMarking() const
Definition WsfXIO_ObjectInfo.hpp:627
WsfStringId GetSide() const
SideID of the platform.
Definition WsfXIO_ObjectInfo.hpp:626
int32_t mIndex
Definition WsfXIO_ObjectInfo.hpp:671
std::vector< WsfXIO_PlatformPartInfo * > PartList
Definition WsfXIO_ObjectInfo.hpp:632
WsfXIO_PlatformInfo(ObjectType aType=cPART_INFO_ID)
Definition WsfXIO_ObjectInfo.hpp:575
WsfXIO_EntityType mEntityType
Definition WsfXIO_ObjectInfo.hpp:686
PlatformFlags
Definition WsfXIO_ObjectInfo.hpp:570
@ cEXTERNALLY_CONTROLLED
Definition WsfXIO_ObjectInfo.hpp:571
WsfSpatialDomain mSpatialDomain
Definition WsfXIO_ObjectInfo.hpp:678
WsfXIO_EntityId mEntityId
Definition WsfXIO_ObjectInfo.hpp:685
WsfStringId mIcon
Definition WsfXIO_ObjectInfo.hpp:675
static const ObjectType cPART_INFO_ID
Definition WsfXIO_ObjectInfo.hpp:574
PartList::iterator BeginParts()
Definition WsfXIO_ObjectInfo.hpp:639
WsfStringId mSide
Definition WsfXIO_ObjectInfo.hpp:676
WsfStringId mName
Definition WsfXIO_ObjectInfo.hpp:673
WsfXIO_TrackManagerInfo & GetTrackManagerInfo()
Definition WsfXIO_ObjectInfo.hpp:662
WsfStringId mType
Definition WsfXIO_ObjectInfo.hpp:674
WsfRoute * mRoutePtr
Definition WsfXIO_ObjectInfo.hpp:692
UtEntity & GetState()
Definition WsfXIO_ObjectInfo.hpp:656
std::vector< WsfXIO_PlatformPartInfo * > mParts
Definition WsfXIO_ObjectInfo.hpp:680
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:597
WsfXIO_PlatformPartInfo * GetPartEntry(unsigned int aEntry) const
Definition WsfXIO_ObjectInfo.hpp:635
unsigned int GetZoneCount() const
Returns the number of zones the platform uses.
Definition WsfXIO_ObjectInfo.hpp:645
unsigned int GetPartCount() const
Definition WsfXIO_ObjectInfo.hpp:634
WsfXIO_PlatformPartInfo PlatformPartInfo
Definition WsfXIO_ObjectInfo.hpp:631
WsfXIO_TrackManagerInfo mTrackManagerInfo
Definition WsfXIO_ObjectInfo.hpp:688
WsfStringId GetName() const
NameID of the platform or platform type.
Definition WsfXIO_ObjectInfo.hpp:620
std::pair< WsfStringId, WsfStringId > CommandChain
Definition WsfXIO_ObjectInfo.hpp:664
PartList::const_iterator EndParts() const
Definition WsfXIO_ObjectInfo.hpp:638
double mEntityStateBaseTime
Definition WsfXIO_ObjectInfo.hpp:683
std::vector< CommandChain > mCommanders
Definition WsfXIO_ObjectInfo.hpp:690
WsfXIO_PlatformId GetId() const
Definition WsfXIO_ObjectInfo.hpp:615
int mTargetWaypointIndex
Definition WsfXIO_ObjectInfo.hpp:693
const UtEntity & GetState() const
Definition WsfXIO_ObjectInfo.hpp:655
void SetStateRefTime(double aBaseTime)
Definition WsfXIO_ObjectInfo.hpp:652
WsfStringId mMarking
Definition WsfXIO_ObjectInfo.hpp:677
WsfAttributeContainer * mAuxDataPtr
Definition WsfXIO_ObjectInfo.hpp:696
int GetConnectionId() const
Definition WsfXIO_ObjectInfo.hpp:613
int32_t GetIndex() const
Index if the platform is in the simulation.
Definition WsfXIO_ObjectInfo.hpp:618
std::vector< WsfXIO_Zone > mZoneNames
Definition WsfXIO_ObjectInfo.hpp:691
WsfXIO_EntityId GetEntityId() const
Definition WsfXIO_ObjectInfo.hpp:658
bool IsStateValid() const
Definition WsfXIO_ObjectInfo.hpp:653
PartList::const_iterator BeginParts() const
Definition WsfXIO_ObjectInfo.hpp:637
WsfAttributeContainer * GetAuxData() const
Definition WsfXIO_ObjectInfo.hpp:667
UtEntity mEntityState
Definition WsfXIO_ObjectInfo.hpp:684
WsfXIO_EntityType GetEntityType() const
Definition WsfXIO_ObjectInfo.hpp:659
int32_t mFlags
Definition WsfXIO_ObjectInfo.hpp:672
const PartList & GetParts() const
Definition WsfXIO_ObjectInfo.hpp:641
WsfStringId GetType() const
NameID of the base type of the platform.
Definition WsfXIO_ObjectInfo.hpp:622
bool mStateValid
Definition WsfXIO_ObjectInfo.hpp:682
void AddPart(WsfXIO_PlatformPartInfo *aPartPtr)
Definition WsfXIO_ObjectInfo.hpp:633
WsfXIO_Connection * GetHostConnection() const
Definition WsfXIO_ObjectInfo.hpp:612
const std::vector< CommandChain > & GetCommanders() const
Definition WsfXIO_ObjectInfo.hpp:665
const WsfXIO_TrackManagerInfo & GetTrackManagerInfo() const
Definition WsfXIO_ObjectInfo.hpp:661
WsfSpatialDomain GetSpatialDomain() const
Spatial domain of the platform.
Definition WsfXIO_ObjectInfo.hpp:629
WsfStringId GetIcon() const
Platform icon.
Definition WsfXIO_ObjectInfo.hpp:624
Definition WsfXIO_ObjectInfo.hpp:249
bool mIsOperational
Definition WsfXIO_ObjectInfo.hpp:313
bool mIsTurnedOn
Definition WsfXIO_ObjectInfo.hpp:312
WsfStringId mBasicType
Definition WsfXIO_ObjectInfo.hpp:311
friend class WsfXIO_RemotePlatformList
Definition WsfXIO_ObjectInfo.hpp:304
bool IsExternallyControlled() const
'true' if the platform part is externally controlled
Definition WsfXIO_ObjectInfo.hpp:294
WsfStringId mType
Definition WsfXIO_ObjectInfo.hpp:310
WsfStringId mName
Definition WsfXIO_ObjectInfo.hpp:309
bool IsOperational() const
'true' if the platform part is operational
Definition WsfXIO_ObjectInfo.hpp:291
friend struct RequestStateChangeFunctor
Definition WsfXIO_ObjectInfo.hpp:305
int GetPartType() const
Type of platform part.
Definition WsfXIO_ObjectInfo.hpp:272
size_t GetPlatformIndex() const
Index of the platform.
Definition WsfXIO_ObjectInfo.hpp:274
static const ObjectType cPART_INFO_ID
Definition WsfXIO_ObjectInfo.hpp:251
int mPartType
Definition WsfXIO_ObjectInfo.hpp:307
bool mIsExternallyControlled
Definition WsfXIO_ObjectInfo.hpp:314
bool mDebugEnabled
Definition WsfXIO_ObjectInfo.hpp:315
WsfStringId GetBasicType() const
Most basic type of the platform part. ex: 'WSF_RADAR_SENSOR' or 'WSF_TASK_PROCESSOR'.
Definition WsfXIO_ObjectInfo.hpp:280
bool IsTurnedOn() const
'true' if the platform part is turned on
Definition WsfXIO_ObjectInfo.hpp:282
void SetPlatformPtr(WsfXIO_PlatformInfo *aPlatformPtr)
Set owning platform pointer. Use with caution.
Definition WsfXIO_ObjectInfo.hpp:297
WsfXIO_PlatformPartInfo(ObjectType aType=cPART_INFO_ID)
Definition WsfXIO_ObjectInfo.hpp:253
WsfXIO_PlatformInfo * GetPlatform() const
Get owning platform pointer.
Definition WsfXIO_ObjectInfo.hpp:300
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:260
WsfXIO_PlatformInfo * mPlatformPtr
Definition WsfXIO_ObjectInfo.hpp:318
size_t mPlatformIndex
Definition WsfXIO_ObjectInfo.hpp:308
void SetTurnedOnFlag(const bool aTurnedOn)
Definition WsfXIO_ObjectInfo.hpp:302
WsfStringId GetInstantiationType() const
TypeID of the platform part.
Definition WsfXIO_ObjectInfo.hpp:278
WsfStringId GetName() const
NameID of the platform part.
Definition WsfXIO_ObjectInfo.hpp:276
Requests that an application begin sending state information for a specified platform part.
Definition WsfXIO_PacketRegistry.hpp:1157
Contains information about a processor.
Definition WsfXIO_ObjectInfo.hpp:470
static const ObjectType cPART_INFO_ID
Definition WsfXIO_ObjectInfo.hpp:472
WsfXIO_ProcessorInfo(ObjectType aType=cPART_INFO_ID)
Definition WsfXIO_ObjectInfo.hpp:473
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:479
Definition WsfXIO_RemotePlatformList.hpp:37
Provides information about a sensor.
Definition WsfXIO_ObjectInfo.hpp:439
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:449
std::vector< WsfXIO_EM_RcvrInfo * > mReceivers
Definition WsfXIO_ObjectInfo.hpp:461
int mSensorClass
Definition WsfXIO_ObjectInfo.hpp:459
std::vector< WsfXIO_EM_XmtrInfo * > mTransmitters
Definition WsfXIO_ObjectInfo.hpp:460
static const ObjectType cPART_INFO_ID
Definition WsfXIO_ObjectInfo.hpp:441
std::vector< WsfXIO_SensorModeInfo > mModes
Definition WsfXIO_ObjectInfo.hpp:462
WsfXIO_SensorInfo(ObjectType aType=cPART_INFO_ID)
Definition WsfXIO_ObjectInfo.hpp:442
Definition WsfXIO_ObjectInfo.hpp:419
double mFrameTime
Definition WsfXIO_ObjectInfo.hpp:433
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:428
ModeType
Definition WsfXIO_ObjectInfo.hpp:422
@ cSEARCH
Definition WsfXIO_ObjectInfo.hpp:423
@ cTRACK
Definition WsfXIO_ObjectInfo.hpp:424
int32_t mModeType
Definition WsfXIO_ObjectInfo.hpp:434
Contains information about a track manager.
Definition WsfXIO_ObjectInfo.hpp:490
friend class WsfXIO_RemotePlatformList
Definition WsfXIO_ObjectInfo.hpp:493
WsfStringId GetFusionStrategy() const
Definition WsfXIO_ObjectInfo.hpp:506
friend class WsfXIO_PlatformInfo
Definition WsfXIO_ObjectInfo.hpp:492
void SetFusionStrategy(WsfStringId aMethod)
Sets the fusion strategy without broadcasting a packet.
Definition WsfXIO_ObjectInfo.hpp:514
static const ObjectType cPART_INFO_ID
Definition WsfXIO_ObjectInfo.hpp:495
void SetCorrelationStrategy(WsfStringId aMethod)
Sets the correlation strategy without broadcasting a packet.
Definition WsfXIO_ObjectInfo.hpp:516
WsfStringId GetCorrelationStrategy() const
Definition WsfXIO_ObjectInfo.hpp:505
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:499
WsfXIO_TrackManagerInfo(ObjectType aType=cTRACK_MANAGER)
Definition WsfXIO_ObjectInfo.cpp:153
Definition WsfXIO_Defines.hpp:22
Switch
Option setting when to react as a WsfWaypoint is approached.
Definition WsfPath.hpp:76
Contains constraints used for computing a path in WsfPathComputer.
Definition WsfPathConstraints.hpp:24
Definition WsfXIO_ObjectInfo.hpp:706
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:709
WsfStringId mChainName
Definition WsfXIO_ObjectInfo.hpp:713
std::vector< WsfStringId > LinkList
Definition WsfXIO_ObjectInfo.hpp:707
LinkList mSubordinates
Definition WsfXIO_ObjectInfo.hpp:715
WsfStringId mCommander
Definition WsfXIO_ObjectInfo.hpp:714
Definition WsfXIO_SerializeTypes.hpp:64
Definition WsfXIO_SerializeTypes.hpp:129
Represents a serialized WsfZOne.
Definition WsfXIO_ObjectInfo.hpp:532
WsfStringId mGlobalName
Definition WsfXIO_ObjectInfo.hpp:534
WsfStringId mName
Definition WsfXIO_ObjectInfo.hpp:533
void Serialize(T &aBuff)
Definition WsfXIO_ObjectInfo.hpp:536
Copyrights Multiple, All Rights Reserved