WSF
usmtf Namespace Reference

Namespaces

namespace  ffirn_descriptors
namespace  ZoneType
 currently supported zone types.

Classes

class  Acmid
class  Aco
class  AerialRefueling
class  AerialRefuelingInfo
class  AerialRefuelingSystem
class  AirAssetControl
class  AircraftControlAgency
class  AircraftMission
class  AircraftMissionData
class  AircraftMissionLocation
class  AircraftMissionTransform
 Transforms a Segment identifying an Aircraft Mission into one or more AFSIM script blocks containing platforms. More...
class  AirspaceShape
class  AirspaceTimeMode
class  Altitude
 USMTF Excerpt: More...
class  Ampn
class  AOrbit
class  AOrbitZone
class  APeriod
class  APoint
 The APoint Set is used to provide a single position. More...
class  Ato
class  Beacon
class  Circle
 The Circle Set is used to provide a single position with a radius specifying width. More...
class  CircularZone
 Transforms a Segment identifying an Circle Zone, Point Zone, or Radarc Zone into an AFSIM zone script block. More...
class  Comment
class  Corridor
class  Efflevel
class  EllipticalArea
class  ErrorManager
class  Exer
class  Exportable
class  FFIRN_Validator
class  Field
class  FreeText
class  Frequency
class  FuelLoad
class  FuelType
class  Geoline
class  ICAO_Resolver
class  InnerOuterRange
class  InputBlock
class  InputBlockProperty
class  InputBuilder
class  IntervalDuration
class  IntervalFrequency
class  LatLon
 B.POSITION OR ROUTE POINT, LAT / LONG, SECONDS. More...
class  Macro
class  MacroEnabled
class  Message
class  NamedLocation
class  OneTrack
class  OneTrackZone
class  OrbitAlignment
class  PackageCommander
class  PackageData
class  Period
class  Platform
class  PlatformTypeDefinition
 Exportable entity that exports an input block for a type definition. More...
class  Polyarc
class  PolyarcZone
class  Polygon
class  PolygonalZone
struct  Point
 Represents a point. More...
struct  LineSegment
 Represents a Line segment so that intersection can be calculated. More...
class  Radarc
class  RadialBearing
 EXAMPLE: /030T*‍/. More...
class  RadioEnabled
 A class to dry up code thats adding frequency validation support to Sets. More...
class  Radius
 USMTF Excerpt: More...
class  RangeValidator
class  RefuelingTasking
class  RegexValidator
class  RelativeBearingRange
class  SectorGeometry
class  Segment
class  Set
class  TabularSet
 Useful conveniences for Sets that are Tabular in nature, see Onetrack.hpp for example. More...
class  TacanChannel
class  TaskCountry
class  TaskUnit
class  TimePoint
class  TrackWidth
class  ImportError
 Error with import file streams or Parsing with the Standard in mind. More...
class  ExportError
 Error with Export file streams. More...
class  MessageError
 Error in accessing a Set that isn't present in the Message. More...
class  SetError
 Error in accessing a field that isn't present in the set. More...
class  ValidationError
 Validation Errors, used heavily in anything thats Validatable. More...
class  USMTF_Factory
 Uses of this is highly documented in pretty much every tests Suite. More...
class  USMTF_Parser
class  USMTF_Transformer
 Exists to Facilitate the contract for Polymorphic Script Block Exports From Set Segments. More...
class  UTM_Location
 FFIRN_Validator responsible for the validation and property extraction of a UTM Location. More...
class  Validatable
class  VariantValidator
class  VerifiedLatLonDS
class  VerifiedLatLonS
class  VerifiedLatLonTM
class  VerifiedTimePoint
 Same as TimePoint.hpp (see it) but with a few extra verification validations. More...
class  VerticalDimension
class  Zone

Typedefs

using MessageFactory = USMTF_Factory<Message, std::vector<std::unique_ptr<Set>>>
using SetFactory = USMTF_Factory<Set, std::vector<Field>>

Functions

void ExportAco (const Aco &aAco, InputBuilder &ib)
 Exports the Aco to scenario lay down file indicated by the target InputBuilder.
void ExportAto (const Ato &aAto, const std::string &aDirectory, const std::string &aFileName)
 Exports the Ato to scenario lay down file indicated by the target InputBuilder.
const UtLLPos FindPositionOnGreaterCircle (const UtLLPos &aPosition, double aRadialBearing, double aRadius) noexcept
double FindVectorTrueNorthHeading (const UtLLPos &aVectorOrigin, const UtLLPos &aVectorEnd) noexcept
 Used to extract heading out of UtLLPos::HeadingAndDistance calculation, simple convenience wrapper.
std::vector< UtLLPos > FindSquareOfRefrencePositions (const UtLLPos &aOrigin, const UtLLPos &aDestination, double aOriginsGreaterCircleDistance) noexcept
 Used to calculate corner positions given a start point/end point with just a single equal distance.
std::vector< UtLLPos > FindPositionsLeftAndRightOfOriginToDestRef (const UtLLPos &aOrigin, const UtLLPos &aDestination, double aLeftMeters, double aRightMeters) noexcept
 Used to calculate corner positions given a start point/end point and a width left/right.
std::unique_ptr< ZoneCreateZone (const std::string &zoneType, const Segment &aSegment) noexcept
 Self Explanatory, instantiate a zone using the correct supported USMTF_Transformer.

Variables

static const std::string NULL_FIELD = "-"
template<class T, class U>
std::unique_ptr< USMTF_Factory< T, U > > USMTF_Factory< T, U >::mFactoryInstance
static const char cFIELD_MARKER = '/'
static const std::string cMAIN_TEXT_START_EXER = "EXER"
static const std::string cMAIN_TEXT_START_OPER = "OPER"
static const std::string cMESSAGE_ID_SET_TYPE = "MSGID"
static const size_t cBYTE_OFFSET = cMAIN_TEXT_START_EXER.length() + 1
static const std::string cREVISION_NUMBER = "2004"
static const std::string cUSMTF_STANDARD = "MIL-STD-6040"

Detailed Description

+--------------------------------------------------------------—+ | Message Text Composition Message Text | | Format Structure | +---------------------------—+-------------------------------—+ | Introductory Text | (Specified by Applicable | | | Communications Procedures) | +---------------------------—+-------------------------------—+

EXER/OPER
MSGID
REF
–*
Main Text
RMKS
Closing Text DECL

+----------------------------—+-------------------------------—+

Structure of a sample hypothetical formatted message Introductory Text -----> C O N F I D E N T I A L* +-----------------> EXER/BRAVE SHIELD 85// | MSGID/HELOALREQ/CTG89.05/1225001// |Linear Set -----> LIFTREQ/UNITDES:4FLDARTYBNCBTY/REQNO:SAM234/PRY:3A/HELMSN:AIRLF | /NOTPAC:1-CH46// | 6LOAD | /DE/ONLOC /ONTIME /QTY /LDTYP /OFFLOC/OFFTIME/QTY | /01/KBSA /260900Z/ 3/PAX-CBT /KBSB /260915Z/ 1 | /02/- /- / -/- /FB A /260940Z/ 2 | /03/KBSB /260915Z/ 2/FUEL BLADDERS /FB C /261020Z Main Text /04/FB A /260940Z/ 1/PALLET /FB C /261020Z | /05/FB C /261020Z/ 3/PAX-CBT /KBSA /261115Z// | TIMEAMP/03/NET/260800Z// | TIMEAMP/05/NLT/261200Z// | 7LOAD | /DE/CARGOWT/CARGOSZ/LGTH /WDTH /HEIGHT /EX-IN/H |Columnar Set ----> /03/10000LB/ 48CUF/ 4FT/ 4FT/ 3FT/EXT /N | /04/ 2000LB/ 60CUF/ 5FT/ 3FT/ 4FT/IN /N// | LANDPT/FB A/PTNM:FIREBASE APPLE/23ABC12001400// | LANDPT/FB C/PTNM:FIREBASE CRABAPPLE/23ABC85009200// | LANDSTS/KBSA/-/-/LSSTAT:COLD/CNTNAME:MAJ STEIN/-/-/-DE:01// | LANDSTS/FB A/MRKING:PANEL/RED/LSSTAT:HOT/CNTCS:HOT POTATO/132.5// |Free Text Set----> NARR/IT IS AUTHORIZED TO BYPASS HOT LANDING ZONES// +-----------------> RMKS/THIS FREE TEXT SET IS ADDED FOR DEMONSTRATION PURPOSES ONLY// Closing Text ----------> DECL/ORIG:USJFCOM/15A/INST:AT EXERCISE ENDEX//

Ideally we shouldn't need so many specialization of VerifiedLatLon to get the right validation and member extraction. Unfortunately I don't have the time right now to figure that out for general use. Come back to this once ACO scaffold is done to repair it. I suspect it will be some method of dynamic regex group selection for the minute seconds fields.

There was a divergence of LatLon from manual parsing to RegexParsing, and now the specializations for precision. these solutions are history of learning new use cases and api improvement, but, thats no excuse, they need consolidated when time allows. 2/11/2020.

this does not apply to non verified LatLons, as they have a completely different structure and parsing needs. However, this can probably be addressed as well. Im certain we can find common ground and some solutions to dry this all up and simplify it. Example: 351025.3N9-0790125.7W1

Ideally we shouldn't need so many specialization of VerifiedLatLon to get the right validation and member extraction. Unfortunately I don't have the time right now to figure that out for general use. Come back to this once ACO scaffold is done to repair it. I suspect it will be some method of dynamic regex group selection for the minute seconds fields.

There was a divergence of LatLon from manual parsing to RegexParsing, and now the specializations for precision. these solutions are history of learning new use cases and api improvement, but, thats no excuse, they need consolidated when time allows. 2/11/2020.

this does not apply to non verified LatLons, as they have a completely different structure and parsing needs. However, this can probably be addressed as well. Im certain we can find common ground and some solutions to dry this all up and simplify it. Example: VGEOK:3510.234N8-07901.123W3

Typedef Documentation

◆ MessageFactory

using usmtf::MessageFactory = USMTF_Factory<Message, std::vector<std::unique_ptr<Set>>>

Convenience for Set and Message Authors. The Template functionality is really only meant for these two uses.

◆ SetFactory

using usmtf::SetFactory = USMTF_Factory<Set, std::vector<Field>>

Function Documentation

◆ CreateZone()

std::unique_ptr< Zone > usmtf::CreateZone ( const std::string & zoneType,
const Segment & aSegment )
noexcept

◆ ExportAco()

USMTF_EXPORT void usmtf::ExportAco ( const Aco & aAco,
InputBuilder & aIb )

Exports the Aco to scenario lay down file indicated by the target InputBuilder.

References usmtf::InputBuilder::AddBlocks(), usmtf::InputBuilder::Export(), usmtf::Aco::GetHeader(), and usmtf::Aco::GetZones().

◆ ExportAto()

USMTF_EXPORT void usmtf::ExportAto ( const Ato & aAto,
const std::string & aDirectory,
const std::string & aFileName )

◆ FindPositionOnGreaterCircle()

const UtLLPos usmtf::FindPositionOnGreaterCircle ( const UtLLPos & aPosition,
double aRadialBearing,
double aRadius )
noexcept

Position Utils is sort of a hodge podge collection of code related to using, converting and calculating positions from other positions.

used to find a position on a circle circumference

Referenced by FindPositionsLeftAndRightOfOriginToDestRef().

◆ FindPositionsLeftAndRightOfOriginToDestRef()

std::vector< UtLLPos > usmtf::FindPositionsLeftAndRightOfOriginToDestRef ( const UtLLPos & aOrigin,
const UtLLPos & aDestination,
double aLeftMeters,
double aRightMeters )
noexcept

Used to calculate corner positions given a start point/end point and a width left/right.

References FindPositionOnGreaterCircle(), and FindVectorTrueNorthHeading().

Referenced by FindSquareOfRefrencePositions(), and usmtf::OneTrackZone::GetInputBlock().

◆ FindSquareOfRefrencePositions()

std::vector< UtLLPos > usmtf::FindSquareOfRefrencePositions ( const UtLLPos & aOrigin,
const UtLLPos & aDestination,
double aGreaterCircleDistance )
noexcept

Used to calculate corner positions given a start point/end point with just a single equal distance.

References FindPositionsLeftAndRightOfOriginToDestRef().

Referenced by usmtf::AOrbit::GetAlignmentOffsetPoints().

◆ FindVectorTrueNorthHeading()

double usmtf::FindVectorTrueNorthHeading ( const UtLLPos & aVectorOrigin,
const UtLLPos & aVectorEnd )
noexcept

Used to extract heading out of UtLLPos::HeadingAndDistance calculation, simple convenience wrapper.

Referenced by FindPositionsLeftAndRightOfOriginToDestRef().

Variable Documentation

◆ cBYTE_OFFSET

const size_t usmtf::cBYTE_OFFSET = cMAIN_TEXT_START_EXER.length() + 1
static

◆ cFIELD_MARKER

const char usmtf::cFIELD_MARKER = '/'
static

◆ cMAIN_TEXT_START_EXER

const std::string usmtf::cMAIN_TEXT_START_EXER = "EXER"
static

◆ cMAIN_TEXT_START_OPER

const std::string usmtf::cMAIN_TEXT_START_OPER = "OPER"
static

◆ cMESSAGE_ID_SET_TYPE

const std::string usmtf::cMESSAGE_ID_SET_TYPE = "MSGID"
static

◆ cREVISION_NUMBER

const std::string usmtf::cREVISION_NUMBER = "2004"
static

◆ cUSMTF_STANDARD

const std::string usmtf::cUSMTF_STANDARD = "MIL-STD-6040"
static

◆ NULL_FIELD

◆ USMTF_Factory< T, U >::mFactoryInstance

template<class T, class U>
std::unique_ptr<USMTF_Factory<T, U> > usmtf::USMTF_Factory< T, U >::mFactoryInstance
Copyrights Multiple, All Rights Reserved