11#ifndef L16_LINK16INTERFACE_HPP
12#define L16_LINK16INTERFACE_HPP
20#include "DisEntityId.hpp"
24#include "UtCallback.hpp"
25#include "UtCallbackHolder.hpp"
128 UtCallbackListN<void(
const WsfL16::Messages::InitialBase&)>
JMessageSent;
140 const Messages::InitialBase* aMessage,
146 const char* aDataPtr,
152 unsigned short* aMessage,
161 unsigned short* aMessage,
188 unsigned int& aWeaponTrackNumber,
189 unsigned int& aControllerTrackNumber);
193 mGetWeaponTrackNumberFunctionPtr = aFunctionPtr;
196 void GetWeaponTrackNumbers(
size_t aWeaponIndex,
unsigned int& aWeaponTrackNumber,
unsigned int& aControllerTrackNumber);
199 unsigned int aTrackNumber);
206 bool IsFiltered(
WsfPlatform& aPlatform,
const Messages::InitialBase* aMsg);
208 bool IsFiltered(
WsfPlatform* aPlatform,
int aLabel,
int aSublabel);
213 void CreateHeader(
double aSimTime,
const SlotParameters& aSlotParameters);
215 void CreateHeaderWSF(
double aSimTime,
const SlotParameters& aSlotParameters);
218 int ConvertDIS_SlotNumberToWsf(
unsigned int aSlotNumber);
220 void GetCurrentTime(
double aSimTime,
221 unsigned int aWsfSlotIndex,
222 unsigned int& aSecondsSinceJan1_1900,
223 unsigned int& aSecondFraction,
224 unsigned int& aEpoch,
225 unsigned int& aTimeSlotIndex);
243 void SendTransmitterPDU(
double aSimTime,
245 DisEntityId aDisEntityId,
247 unsigned int aStatus);
257 UtCallbackHolder mCallbacks;
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfDisInterface.hpp:83
Definition WsfDisSignal.hpp:24
Sends and receives link16 messages.
Definition ComputerProcessor.hpp:50
Definition Interface.hpp:97
bool IsFiltered(int aLabel, int aSublabel)
Definition Interface.cpp:365
std::set< int > mFilteredMessageTypes
Definition Interface.hpp:101
std::set< std::pair< int, int > > mFilteredSpecificTypes
Definition Interface.hpp:102
Definition Interface_J11.hpp:44
WsfL16::Interface_J11 is an interface to DisSignal PDUs conveying J11 messages.
Definition Interface_J11.hpp:79
void FilterMessageSend(WsfPlatform &aSenderPlatform, int aLabel, int aSubLabel=-1)
Definition Interface.cpp:773
static void SetIFF_FromJ3xIdentity(WsfTrack &aTrack, int aJ3xIdentity)
Definition Interface.cpp:450
Interface(InterfaceSetup &aScenario)
Definition Interface.cpp:371
UtCallbackListN< void(double, const WsfL16::Messages::InitialBase &)> JMessageReceived
Definition Interface.hpp:127
void(*)(WsfSimulation &aSimulation, size_t aWeaponIndex, unsigned int & aWeaponTrackNumber, unsigned int & aControllerTrackNumber) GetWeaponTrackNumbersFn
Definition Interface.hpp:186
bool IncludeJ3xTrackDisEntityId()
Returns a boolean used to determine whether or not to include track DIS entity id inside J3....
Definition Interface.hpp:134
unsigned GetLandSpecificType(WsfStringId aPlatformTypeId)
Definition Interface.cpp:1168
WsfDisInterface * GetDisInterface() const
Definition Interface.hpp:181
UtCallbackListN< void(const WsfL16::Messages::InitialBase &)> JMessageSent
Definition Interface.hpp:128
void AddedToSimulation() override
Definition Interface.cpp:381
WsfStringId GetAirPlatformType(unsigned aAirSpecificTypeId)
Definition Interface.cpp:1179
unsigned GetAirSpecificType(WsfStringId aPlatformTypeId)
Definition Interface.cpp:1157
~Interface() override
Definition Interface.cpp:386
void SetWeaponTrackNumbersFunction(GetWeaponTrackNumbersFn aFunctionPtr)
Definition Interface.hpp:191
static WSF_L16_EXPORT void SetPlatformTrackNumber(WsfPlatform *aPlatformPtr, unsigned int aTrackNumber)
Definition Interface.cpp:1457
void SendUserDefinedJMessage(double aSimTime, WsfPlatform *aSender, unsigned short *aMessage, int aNPG, int aMessageBytes, int aLabel, int aSubLabel, int aNumMsgs)
Definition Interface.cpp:659
void SendJMessage(double aSimTime, WsfPlatform &aSender, const Messages::InitialBase *aMessage)
Definition Interface.cpp:630
void GetWeaponTrackNumbers(size_t aWeaponIndex, unsigned int &aWeaponTrackNumber, unsigned int &aControllerTrackNumber)
Definition Interface.cpp:1417
void UnfilterMessageSend(WsfPlatform &aSenderPlatform, int aLabel, int aSubLabel=-1)
Definition Interface.cpp:799
WsfStringId GetLandPlatformType(unsigned aLandSpecificTypeId)
Definition Interface.cpp:1190
static int GetJ3xIdentityFromIFF(WsfTrack::IFF_Status aIFF_Status)
Definition Interface.cpp:426
bool Initialize() override
Definition Interface.cpp:391
static WSF_L16_EXPORT WsfPlatform * GetControllerFromTrackNumber(WsfSimulation *aSimulationPtr, unsigned int aTrackNumber)
Definition Interface.cpp:1427
void SendRawJMessage(double aSimTime, WsfPlatform *aSender, const char *aDataPtr, int aMessageBytes, int aNPG)
Definition Interface.cpp:1024
Definition SlotParameters.hpp:20
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
WsfSimulationExtension()
Definition WsfSimulationExtension.cpp:23
friend class WsfSimulation
Definition WsfSimulationExtension.hpp:43
The main controller for a simulation.
Definition WsfSimulation.hpp:109
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
IFF_Status
An enumeration for IFF.
Definition WsfTrack.hpp:149
Definition WsfWeaponEngagement.hpp:43
Definition WsfComm.hpp:43
This file should be included prior to defining a message. Currently there is a limit of 32 fields per...
Definition AllMessages.hpp:55
Definition WsfComm.cpp:34
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
bool mIncludeJ3xTrackDEI
Definition Interface.hpp:88
bool SetNPGTable(int aMsgType, int aNPG)
Definition Interface.cpp:355
bool mIsRequested
Definition Interface.hpp:81
std::map< unsigned, WsfStringId > mAirPlatformTypes
Definition Interface.hpp:89
TdlHeaderType mHeaderType
Definition Interface.hpp:73
Messages::HeaderTDL100 mHeaderTDL100
Definition Interface.hpp:77
TdlSwapType mSwapMethod
Definition Interface.hpp:74
double mSecondsSinceMidnight
Definition Interface.hpp:87
bool mFillWith31_7
Definition Interface.hpp:84
bool mIgnoreInboundMessages
Definition Interface.hpp:85
int mSlotOffset
Definition Interface.hpp:79
bool ProcessInput(UtInput &aInput)
Definition Interface.cpp:68
std::map< WsfStringId, unsigned > mLandSpecificTypes
Definition Interface.hpp:92
InterfaceSetup(WsfScenario &aScenario)
Definition Interface.cpp:53
WsfScenario * mWsfSetupPtr
Definition Interface.hpp:110
void PrintScriptUsage()
Scripting language.
Definition Interface.cpp:193
Interface_J11_Setup mInterface_J11_Setup
Definition Interface.hpp:94
bool mSendPPLI
Definition Interface.hpp:83
Messages::WSF_HeaderTDL100 mWSF_HeaderTDL100
Definition Interface.hpp:78
std::map< size_t, MessageFilter > mPlatformFilters
Definition Interface.hpp:105
int mTimeSlotType
Definition Interface.hpp:76
double mSecondsTillSimStartSinceJan1_1900
Definition Interface.hpp:86
std::map< unsigned, WsfStringId > mLandPlatformTypes
Definition Interface.hpp:91
MessageFilter mGlobalFilters
Definition Interface.hpp:106
std::map< WsfStringId, unsigned > mAirSpecificTypes
Definition Interface.hpp:90
bool mDebugEnabled
Definition Interface.hpp:82
Messages::HeaderTDL100 mTdlHeader
Definition Interface.hpp:80
TdlSwapType
Definition Interface.hpp:60
@ cTRAP_TOOL
Definition Interface.hpp:62
@ cWSF
Definition Interface.hpp:61
TdlHeaderType
Definition Interface.hpp:54
@ cTDL_100
Definition Interface.hpp:56
@ cTDL_6
Definition Interface.hpp:55
std::set< std::pair< int, int > > mNPGTable
Definition Interface.hpp:108
int mTSALevel
Definition Interface.hpp:75
void PrintScriptUsageRst()
Definition Interface.cpp:248
bool IsRequested() const
Definition Interface.hpp:70