|
WSF
|
#include <WsfMilDisInterface.hpp>


Classes | |
| struct | IncomingTransfer |
| Incoming weapon transfer definition. More... | |
| struct | OutgoingTransfer |
Public Member Functions | |
| WsfMilDisInterface (WsfMilExtension *aMilExtensionPtr) | |
| WsfMilDisInterface (const WsfMilDisInterface &aSrc) | |
| WsfMilDisInterface (WsfMilDisInterface &&)=default | |
| WsfMilDisInterface & | operator= (const WsfMilDisInterface &)=delete |
| WsfMilDisInterface & | operator= (WsfMilDisInterface &&)=default |
| ~WsfMilDisInterface () override | |
| WsfDisWeaponEvents * | GetWeaponEvents () const |
| Public Member Functions inherited from WsfComponentT< WsfDisInput > | |
| WsfComponentT () | |
| WsfComponentT & | operator= (const WsfComponentT &) noexcept |
| ~WsfComponentT () override=default | |
| virtual void | ComponentParentChanged (ParentType *aParentPtr) |
| ParentType * | GetComponentParent () const |
| void | SetComponentParent (ParentType *aParentPtr) |
| Public Member Functions inherited from WsfComponent | |
| virtual | ~WsfComponent ()=default |
| virtual int | GetComponentInitializationOrder () const |
| template<typename T> | |
| bool | QueryInterfaceT (T *&aRolePtr) |
| bool | ComponentHasRole (int aRole) |
| Returns true if the component has the specified role. | |
| virtual bool | PreInitialize (double aSimTime) |
| virtual bool | Initialize2 (double aSimTime) |
| virtual void | PreInput () |
Static Public Member Functions | |
| static WsfMilDisInterface * | Find (const WsfDisInterface &aDisInterface) |
Component infrastructure methods | |
| using | IncomingTransferList = std::vector<IncomingTransfer> |
| using | OutgoingTransferList = std::vector<OutgoingTransfer> |
| WsfComponent * | CloneComponent () const override |
| WsfStringId | GetComponentName () const override |
| const int * | GetComponentRoles () const override |
| void * | QueryInterface (int aRole) override |
| void | AddedToDisInterface (WsfDisInterface *aDisInterfacePtr) override |
| bool | Initialize (double aSimTime) override |
| bool | ProcessInput (UtInput &aInput) override |
| bool | TransferPlatformToInternalControl (double aSimTime, WsfPlatform *aPlatformPtr, DisEntityId &aEntityId, DisEntityType &aEntityType) override |
| bool | TransferPlatformToExternalControl (double aSimTime, WsfPlatform *aPlatformPtr) override |
| void | PrepareComponent (double aSimTime) override |
| void | PlatformCreated (WsfDisPlatform *aPlatformPtr) override |
| bool | UpdateEmissionSystem (WsfPlatform *aPlatformPtr, WsfDisEmission *aEmissionPtr, DisSystem *aSystemPtr) override |
| bool | AddEmissionSystem (WsfPlatform *aPlatformPtr, WsfDisEmission *aEmissionPtr, DisSystem *aSystemPtr) override |
| bool | UpdateXmtrFromBeam (WsfDisEmission *aEmissionPtr, DisBeam *aBeamPtr, WsfEM_Xmtr *aXmtrPtr, bool &aBeamOn) override |
| void | UpdateWeapon (WsfDisEmission *aEmissionPtr, DisSystem *aSystemPtr, WsfWeapon *aWeaponPtr) |
| void | RemoveXmtrs (WsfDisEmission *aEmissionPtr, DisSystem *aSystemPtr, WsfWeapon *aWeaponPtr) |
| const IncomingTransferList & | GetIncomingTransferList () const |
| const OutgoingTransferList & | GetOutgoingTransferList () const |
| WsfDisInterface * | GetDis () const |
| WsfMilExtension * | GetMilExtension () const |
| const WsfScenario & | GetScenario () const |
| void | UpdateSystemFromWeapon (WsfWeapon *aWeaponPtr, DisSystem *aSystemPtr) |
| Update a DIS System record from a Weapon object. | |
| void | UpdateBeamFromXmtr (WsfEM_Xmtr &aXmtr, DisBeam *aBeamPtr, double aMinAz, double aMaxAz, double aMinEl, double aMaxEl) |
| Update a DIS Beam record from a Transmitter object. | |
| void | AddImplicitWeaponEngagement (WsfWeaponEngagement *aEngagement, const DisEventId &aId) |
| WsfWeaponEngagement * | FindImpicitWeaponEngagement (const DisEventId &aId) const |
| void | AddDirectedEnergyWeapon (std::unique_ptr< WsfDirectedEnergyWeapon > aWeaponPtr, const DisEventId &aId) |
| WsfDirectedEnergyWeapon * | FindDirectedEnergyWeapon (const DisEventId &aId) const |
| void | DeleteDirectedEnergyWeapon (const DisEventId &aId) |
Additional Inherited Members | |
| Public Types inherited from WsfComponentT< WsfDisInput > | |
| typedef WsfDisInput | ParentType |
| This is needed to support the WsfComponentList template. | |
| using WsfMilDisInterface::IncomingTransferList = std::vector<IncomingTransfer> |
| using WsfMilDisInterface::OutgoingTransferList = std::vector<OutgoingTransfer> |
| WsfMilDisInterface::WsfMilDisInterface | ( | WsfMilExtension * | aMilExtensionPtr | ) |
Referenced by CloneComponent(), Find(), operator=(), operator=(), WsfMilDisInterface(), and WsfMilDisInterface().
| WsfMilDisInterface::WsfMilDisInterface | ( | const WsfMilDisInterface & | aSrc | ) |
References WsfMilDisInterface().
|
default |
References WsfMilDisInterface().
|
override |
References WsfWeaponEngagement::Delete().
| void WsfMilDisInterface::AddDirectedEnergyWeapon | ( | std::unique_ptr< WsfDirectedEnergyWeapon > | aWeaponPtr, |
| const DisEventId & | aId ) |
|
overridevirtual |
|
overridevirtual |
| void WsfMilDisInterface::AddImplicitWeaponEngagement | ( | WsfWeaponEngagement * | aEngagement, |
| const DisEventId & | aId ) |
|
overridevirtual |
Clones a component. May return null if component does not support clone.
Implements WsfComponent.
References WsfMilDisInterface().
| void WsfMilDisInterface::DeleteDirectedEnergyWeapon | ( | const DisEventId & | aId | ) |
|
static |
References WsfComponentList::FindByRole(), WsfDisInput::GetComponents(), and WsfMilDisInterface().
Referenced by WsfMilDisPlatform::SendingEmission(), and WsfMilDisPlatform::WsfMilDisPlatform().
| WsfDirectedEnergyWeapon * WsfMilDisInterface::FindDirectedEnergyWeapon | ( | const DisEventId & | aId | ) | const |
| WsfWeaponEngagement * WsfMilDisInterface::FindImpicitWeaponEngagement | ( | const DisEventId & | aId | ) | const |
|
inlineoverridevirtual |
Returns the component's name. Each component in a component list has a unique name. Names are usually defined by the user, but they may also be generated by code and prefixed with a '#' to guarantee no collisions with user-defined names.
Implements WsfComponent.
|
inlineoverridevirtual |
Returns a zero-terminated array of component roles. Note that the array should be in decreasing order of specificity and should generally the inheritance hierarchy. The first entry should be the components 'primary' role. For example a sensor would do the following:
Implements WsfComponent.
References cWSF_COMPONENT_MIL_DIS_EXTENSION.
|
inline |
Referenced by WsfDisWeaponEvents::WsfDisWeaponEvents().
|
inline |
|
inline |
|
inline |
| const WsfScenario & WsfMilDisInterface::GetScenario | ( | ) | const |
|
inline |
Referenced by WsfDisFire::Process().
|
overridevirtual |
Perform phase 1 initialization. This is called by WsfPlatform::Initialize() during phase 1 initialization of the platform. The component should complete validation of input data that could not be done by ProcessInput, as well as any other functions to prepare for simulation use (subject to the next paragraph).
The order in which components are initialized is defined by GetComponentInitializationOrder. In general a component implementation of this method should not be dependent on the state of another component, i.e.: it should not assume that the other components Initialize() method has been called. If such a dependency exists one should use Initialize2() if possible, or specify a value GetComponentInitializationOrder to force things to initialize in a particular order.
| aSimTime | The current simulation time. |
Reimplemented from WsfComponent.
References WsfObserver::DirectedEnergyWeaponBeginShot(), WsfObserver::DirectedEnergyWeaponEndShot(), WsfObserver::DirectedEnergyWeaponUpdateShot(), WsfObserver::ImplicitWeaponEndEngagement(), WsfObserver::JammingRequestCanceled(), WsfObserver::JammingRequestInitiated(), WsfObserver::JammingRequestUpdated(), WsfObserver::WeaponFired(), WsfObserver::WeaponTerminated(), WsfObserver::WeaponTurnedOff(), and WsfObserver::WeaponTurnedOn().
|
delete |
References WsfMilDisInterface().
|
default |
References WsfMilDisInterface().
|
overridevirtual |
Reimplemented from WsfDisComponent.
References WsfDisPlatform::AddComponent().
|
overridevirtual |
Reimplemented from WsfDisComponent.
References WsfComponentList::RoleIterator< T >::AtEnd(), WsfSimulation::GetPlatformCount(), and WsfSimulation::GetPlatformEntry().
|
overridevirtual |
Evaluate the current input command and determine if it is one processed by the component. The component should get the current command from the input stream and determine if it is one that it recognizes. If it does not recognize the command then it should leave the command in the input stream and return false. If it does recognize the command then it should process the command and return true. If invalid arguments are encountered then it should throw an exception.
| aInput | The input stream. |
| UtInput::ExceptionBase | if an invalid input was encountered. |
Reimplemented from WsfComponent.
References WsfDisInterface::ReadEntityId(), and WsfDisInterface::ReadEntityType().
|
overridevirtual |
Requests a component's role interface. A component can support one or more roles.
| aRole | The role whose interface is to be returned. |
Implements WsfComponent.
References cWSF_COMPONENT_MIL_DIS_EXTENSION.
| void WsfMilDisInterface::RemoveXmtrs | ( | WsfDisEmission * | aEmissionPtr, |
| DisSystem * | aSystemPtr, | ||
| WsfWeapon * | aWeaponPtr ) |
Removes unused xmtrs from a weapon.
| aEmissionPtr | [input] Pointer to the DIS emission PDU. |
| aSystemPtr | [input] Pointer to the DIS emission PDU system. |
| aWeaponPtr | [input] Pointer to the weapon to update. |
References WsfEM_XmtrRcvr::GetBandwidth(), WsfWeapon::GetEM_Xmtr(), WsfWeapon::GetEM_XmtrCount(), WsfEM_XmtrRcvr::GetFrequency(), WsfDisPlatform::GetSysBeamIdToPartId(), WsfUniqueId::GetUniqueId(), and WsfWeapon::StopJamming().
Referenced by UpdateWeapon().
|
overridevirtual |
Reimplemented from WsfDisComponent.
|
overridevirtual |
Reimplemented from WsfDisComponent.
| void WsfMilDisInterface::UpdateBeamFromXmtr | ( | WsfEM_Xmtr & | aXmtr, |
| DisBeam * | aBeamPtr, | ||
| double | aMinAz, | ||
| double | aMaxAz, | ||
| double | aMinEl, | ||
| double | aMaxEl ) |
Update a DIS Beam record from a Transmitter object.
References WsfEW_EA::GetElectronicAttack(), WsfEW_EA_EP::GetTechniquesInUse(), and WsfEW_EA_EP::TechniquesAreInUse().
Referenced by UpdateSystemFromWeapon().
|
overridevirtual |
Reimplemented from WsfDisComponent.
References WsfExtEmission::cLEVEL_ONE_DEBUG, WsfExtEmission::cLEVEL_TWO_DEBUG, WsfExtEmission::GetDebugMask(), WsfObject::GetName(), WsfObject::GetType(), WsfMilExtInterface::GetWeapon(), and UpdateWeapon().
| void WsfMilDisInterface::UpdateSystemFromWeapon | ( | WsfWeapon * | aWeaponPtr, |
| DisSystem * | aSystemPtr ) |
Update a DIS System record from a Weapon object.
References WsfEM_Antenna::cSCAN_AZ, WsfEM_Antenna::cSCAN_AZ_EL, WsfEM_Antenna::cSCAN_EL, WsfEM_XmtrRcvr::GetAntenna(), WsfEM_XmtrRcvr::GetAntennaPattern(), WsfAntennaPattern::GetAzimuthBeamwidth(), WsfAntennaPattern::GetElevationBeamwidth(), WsfWeapon::GetEM_Xmtr(), WsfWeapon::GetEM_XmtrCount(), WsfEM_XmtrRcvr::GetFrequency(), WsfEM_XmtrRcvr::GetMode(), WsfWeapon::GetModeEntry(), WsfMode::GetModeIndex(), WsfEM_XmtrRcvr::GetPolarization(), WsfEM_Antenna::GetScanMode(), and UpdateBeamFromXmtr().
Referenced by WsfMilDisPlatform::SendingEmission().
| void WsfMilDisInterface::UpdateWeapon | ( | WsfDisEmission * | aEmissionPtr, |
| DisSystem * | aSystemPtr, | ||
| WsfWeapon * | aWeaponPtr ) |
Updates the weapon from the DIS emitter system data.
| aEmissionPtr | [input] Pointer to the DIS emission PDU. |
| aSystemPtr | [input] Pointer to the DIS emission PDU system. |
| aWeaponPtr | [input] Pointer to the weapon to update. |
References WsfWeapon::GetEM_Xmtr(), WsfWeapon::GetEM_XmtrCount(), WsfWeapon::GetMaximumRequestCount(), WsfUniqueId::GetUniqueId(), platformPtr, RemoveXmtrs(), WsfWeapon::StartJamming(), targetIndex(), WsfWeapon::UpdateJamming(), WsfDisEmission::UpdateLocation(), WsfDisEmission::UpdateSysBeamMapping(), and WsfDisEmission::UpdateXmtr().
Referenced by AddEmissionSystem(), and UpdateEmissionSystem().
|
overridevirtual |
Reimplemented from WsfDisComponent.
References WsfExtEmission::cLEVEL_TWO_DEBUG, WsfEM_Xmtr::cXF_INTERFERER, WsfEM_XmtrRcvr::GetAntenna(), WsfEM_Antenna::GetArticulatedPart(), WsfEM_XmtrRcvr::GetArticulatedPart(), WsfEM_Xmtr::GetFunction(), WsfEM_XmtrRcvr::GetPlatform(), WsfEM_Antenna::GetRelativeLocationWCS(), WsfRF_Jammer::GetTargetedLocationWCS(), WsfUniqueId::GetUniqueId(), WsfRF_Jammer::SetTargetedLocationWCS(), and WsfRF_Jammer::TargetedLocationValid().