WSF
WsfXIO_WeaponPacketRegistry.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_WEAPONPACKETREGISTRY_HPP
13#define WSFXIO_WEAPONPACKETREGISTRY_HPP
14
15#include "wsf_mil_export.h"
16
17class PakProcessor;
18#include "WsfTrack.hpp"
19#include "xio/WsfXIO_Data.hpp"
21#include "xio/WsfXIO_Packet.hpp"
23
24// See WsfXIO_Packet.hpp for packet ID reservations
25
27class WSF_MIL_EXPORT WsfXIO_WeaponPacketRegistry
28{
29public:
30 static void RegisterPackets(PakProcessor& aProcessor);
31 static void RegisterClasses();
32
33private:
34};
35
36#define XIO_DEFINE_PACKET_CTOR(PACKET_NAME__, BASE_TYPE__, PACKET_ID__) \
37 typedef BASE_TYPE__ BaseType; \
38 static const int cPACKET_ID = PACKET_ID__; \
39 PACKET_NAME__(int aPacketId = cPACKET_ID) \
40 : BASE_TYPE__(aPacketId)
41
42#define XIO_DEFINE_PACKET_SERIALIZE() \
43 template<typename T> \
44 void Serialize(T& aBuff) \
45 { \
46 BaseType::Serialize(aBuff); \
47 DoSerialize(aBuff); \
48 } \
49 template<typename T> \
50 void DoSerialize(T& aBuff)
51
52// Macro to implement some boiler plate code for WsfXIO_Packet types, including:
53// defining the packet ID and serializing the base class
54// PACKET_NAME__ - Name of the packet class
55// BASE_TYPE__ - Name of the base class
56// PACKET_ID__ - Unique ID of the packet
57#define XIO_DEFINE_PACKET(PACKET_NAME__, BASE_TYPE__, PACKET_ID__) \
58 XIO_DEFINE_PACKET_CTOR(PACKET_NAME__, BASE_TYPE__, PACKET_ID__) {} \
59 XIO_DEFINE_PACKET_SERIALIZE()
60
85
115
116#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfTrackId.hpp:33
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Requests an application to turn on or off an EA/EP technique.
Definition WsfXIO_WeaponPacketRegistry.hpp:88
TechniqueType mTechniqueType
EA or EP technique.
Definition WsfXIO_WeaponPacketRegistry.hpp:102
XIO_DEFINE_PACKET(WsfXIO_EW_TechniqueStateChangeRequestPkt, WsfXIO_Packet, 76)
Definition WsfXIO_WeaponPacketRegistry.hpp:96
WsfStringId mTechniqueId
ID of the EA/EP technique.
Definition WsfXIO_WeaponPacketRegistry.hpp:111
TechniqueType
Definition WsfXIO_WeaponPacketRegistry.hpp:91
@ cEP
Definition WsfXIO_WeaponPacketRegistry.hpp:93
@ cEA
Definition WsfXIO_WeaponPacketRegistry.hpp:92
WsfStringId mPartName
NameID of the sensor or weapon.
Definition WsfXIO_WeaponPacketRegistry.hpp:106
bool mOnOff
Select (true) or deselect (false) the technique.
Definition WsfXIO_WeaponPacketRegistry.hpp:113
int32_t mXmtrRcvrIndex
Index of the xmtr or rcvr.
Definition WsfXIO_WeaponPacketRegistry.hpp:108
int32_t mPlatformIndex
Index of the owning platform.
Definition WsfXIO_WeaponPacketRegistry.hpp:104
Triggers a weapon to fire on a track.
Definition WsfXIO_WeaponPacketRegistry.hpp:63
WsfTrackId mTrackId
If mTrackPtr is null, mTrackId is used to look up a track on the launching platform.
Definition WsfXIO_WeaponPacketRegistry.hpp:78
WsfTrack * mTrackPtr
If mTrackPtr is non-null it will be used.
Definition WsfXIO_WeaponPacketRegistry.hpp:76
WsfStringId mTargetNameId
Definition WsfXIO_WeaponPacketRegistry.hpp:81
int32_t mPlatformIndex
Index of the firing platform.
Definition WsfXIO_WeaponPacketRegistry.hpp:72
WsfStringId mWeaponNameId
Name of the weapon on the firing platform that is being fired.
Definition WsfXIO_WeaponPacketRegistry.hpp:74
int mSalvoSize
The number of rounds to be fired.
Definition WsfXIO_WeaponPacketRegistry.hpp:83
void ReceiveCleanup() override
Definition WsfXIO_WeaponPacketRegistry.hpp:70
XIO_DEFINE_PACKET(WsfXIO_FireWeaponPkt, WsfXIO_Packet, 75)
Definition WsfXIO_WeaponPacketRegistry.hpp:65
WsfXIO_Packet(int aPacketId)
Definition WsfXIO_Packet.hpp:57
Performs the registration of XIO packets and classes.
Definition WsfXIO_WeaponPacketRegistry.hpp:28
static void RegisterPackets(PakProcessor &aProcessor)
Definition WsfXIO_WeaponPacketRegistry.cpp:30
static void RegisterClasses()
Register class types to support polymorphic serialization.
Definition WsfXIO_WeaponPacketRegistry.cpp:38
Definition WsfXIO_Defines.hpp:22
Copyrights Multiple, All Rights Reserved