Nato armaments support services user training
This presentation is the property of its rightful owner.
Sponsored Links
1 / 57

NATO Armaments Support Services User Training PowerPoint PPT Presentation


  • 115 Views
  • Uploaded on
  • Presentation posted in: General

NATO Armaments Support Services User Training. NASS Packages Release 4.0 September 2008. Agenda. Introduction Overview Development Environment SCPP Configuration Packages Autotest Closing. Packages (1). Packages (2). Packages (3). Packages (4). NASS.Base_Types (1). Base Types

Download Presentation

NATO Armaments Support Services User Training

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Nato armaments support services user training

NATO Armaments Support ServicesUser Training

NASS Packages

Release 4.0

September 2008

NATO/PfP UNCLASSIFIED


Agenda

Agenda

  • Introduction

  • Overview

  • Development Environment

  • SCPP

  • Configuration

  • Packages

  • Autotest

  • Closing

NATO/PfP UNCLASSIFIED


Packages 1

Packages (1)

NATO/PfP UNCLASSIFIED


Packages 2

Packages (2)

NATO/PfP UNCLASSIFIED


Packages 3

Packages (3)

NATO/PfP UNCLASSIFIED


Packages 4

Packages (4)

NATO/PfP UNCLASSIFIED


Nass base types 1

NASS.Base_Types (1)

  • Base Types

    • Define various numbers types

    • Has several child packages

  • Base_Types.Coordinate_Systems

    • Geography related types, such as

      • Azimuth, Distance, Easting, Northing, Altitude, etc.

      • Datum_Codes, Ellipsoids

    • Geography related functions, such as

      • Normalize_Azimuth

      • Get_Ellipsoid_Data

      • Semi_Major_Axis

NATO/PfP UNCLASSIFIED


Nass base types 2

NASS.Base_Types (2)

  • Base_Types.FCI

    • Type definitions used for Fire Control Inputs, such as:

      • String types (e.g. Fuze_Model_String)

      • Numeric (e.g. Fork)

      • Constants (e.g. Max_Number_of_Phases)

      • Enumerations (e.g. Safety_Type)

  • Base_Types.FCI.CPH

    • FCI types related to Copperhead projectiles

      • E.g. Glide_Angle_Type

NATO/PfP UNCLASSIFIED


Nass base types 3

NASS.Base_Types (3)

  • Base_Types.Fire_Mission

    • Defines types related to fire mission

    • Used mainly by NABK Fire Mission Layer, but potentially useful to other S4 products

    • Defines types such as:

      • Arrays (e.g. Integer_Config_Item)

      • Enumeration (e.g. Projectile_Mode)

      • Numeric (e.g. FF_Clear_Type)

NATO/PfP UNCLASSIFIED


Nass base types 4

NASS.Base_Types (4)

  • Base_Types.Met

    • Type Definitions for Meteorological Data, such as:

      • Numeric types (e.g. Air_Pressure, Wind_Speed)

      • Constants (e.g. Standard_Air_Temperature)

  • Base_Types.Met.CPH

    • Types for Met Data related to Copperhead Projectiles

      • e.g. Cloud_Ceiling_Type

NATO/PfP UNCLASSIFIED


Nass basic pool

NASS.Basic_Pool

  • Manages data records in a static storage pool

generic Size : in Integer;type Concrete_Type istaggedprivate; type Concrete_Access_Type isaccessall Concrete_Type'Class; package NASS.Basic_Pool is

NATO/PfP UNCLASSIFIED


Nass pool

NASS.Pool

  • Derived from Basic_Pool – same set of services

  • Instead of dealing with the concrete type, it deals with the ancestor type of the concrete type

    genericSize: in Integer;type Root_Type isabstracttaggedprivate;type Concrete_Type isnew Root_Type withprivate;type Root_Access_Type isaccessall Root_Type'Class;

    Package NASS.Pool is

NATO/PfP UNCLASSIFIED


Nass bounded length n

NASS.Bounded_LengthN

  • A set of .ads files that define bounded string types of various constant lengths:

    • 4, 6, 8, 16, 32, 64, 128, 256, 512 characters

    • NASS.Bounded_Length_Large is configurable

      • Configured by constant NASS.Config_Pkg. Large_Bounded_String_Size

      • Default length is 1024 characters

NATO/PfP UNCLASSIFIED


Nass cli pkg 1

NASS.CLI_Pkg (1)

  • CLI = Command Line Interface

  • Package to process command line arguments and to return information associated with such arguments to calling applications.

  • Applications can use standard CLI Argument types defined in CLI_Pkg or can extend the basic type to add fields or functionality.

  • Currently located in Non-Core portion of NASS

NATO/PfP UNCLASSIFIED


Nass cli pkg 2

NASS.CLI_Pkg (2)

  • Capabilities:

    • Define the command line arguments

    • Classify an argument as mandatory / optional

    • Define upper and lower bounds of argument values

    • Define subarguments

    • Validate command line parameters

NATO/PfP UNCLASSIFIED


Nass config pkg 1

NASS.Config_Pkg (1)

Debugging constants for static storage pools

  • Trace_Pool_Size - Flag indicates whether “pool size” events should be logged

    • False – not logged

    • True – logged

  • Trace_Allocate_Deallocate_Pools - Flag indicates whether pool allocation/de-allocation events should be logged

    • False – not logged

    • True – logged

NATO/PfP UNCLASSIFIED


Nass config pkg 2

NASS.Config_Pkg (2)

Constants related to the Flight_Path object

  • Trajectory_Extra_Data - flag used to determine if the extra trajectory data is to be logged

    • FALSE => only Time and Position are logged

    • TRUE => extra data is logged

  • Trajectory_List_Size – number of integration points stored in a flight path object.

    • A list size of 600 is usually adequate

NATO/PfP UNCLASSIFIED


Nass config pkg 3

NASS.Config_Pkg (3)

  • config_pkg\nass-config_pkg.ads

NATO/PfP UNCLASSIFIED


Nass constants

NASS.Constants

  • Contains constants such as:

    • Math constants (e.g. PI)

    • Conversion constants (e.g. Cvt_Rad_To_Mils)

    • Scientific constants (e.g. P0 (standard air pressure))

NATO/PfP UNCLASSIFIED


Nass containers bounded bounded ordered maps

NASS.Containers.Bounded.Bounded_Ordered_Maps

  • Generic package to create ordered maps associated with objects of a type which has an underlying partial order

  • Implements the Ada2005 functionality for ordered maps

  • Can be instantiated using constrained types or access types

  • If the underlying object is unconstrained or class-wide, then Bounded_Ordered_Maps must be instantiated with access types and it is the responsibility of the application to predefine the objects which will be used to prevent dynamic memory issues.

NATO/PfP UNCLASSIFIED


Nass crest violations

NASS.Crest_Violations

  • Defines various types related to crest violations (e.g. Crest_Results_Type)

  • Defines a Violation Check Record

  • Defines status messages related to crest violations (e.g. “Far_Crest_Impact”)

NATO/PfP UNCLASSIFIED


Nass flight path 1

NASS.Flight_Path (1)

  • Represents a trajectory as a series of points

  • Instantiation of NASS.List_Pkg with a record of data:

    • Time and Position (Cartesian coordinates)OR

    • Time, Position, Velocity, Spin,Yaw, Met Data etc.

  • Content of record is affected by configuration parameter Log_Trajectory_Extra_Data

NATO/PfP UNCLASSIFIED


Nass flight path 2

NASS.Flight_Path (2)

  • Other flight path variants:

    • NASS.Geo_Flight_Path – position stored as Latitude, Longitude and Altitude

    • NASS.TM_Flight_Path – position stored as TM Easting, Northing and Altitude

NATO/PfP UNCLASSIFIED


Nass generic buffer

NASS.Generic_Buffer

  • Performs low level actions to read data from a text file

  • These services include the services to:

    • load a specified text file to a buffer in memory, parse the contents and access it.

  • Structurally each Buffer contains an array of lines.

  • Each Line consists of one or more bounded string(s)

NATO/PfP UNCLASSIFIED


Nass generic location pkg 1

NASS.Generic_Location_Pkg (1)

  • Extends the NASS.Geographic_Location_Pkg

  • Provides services for creation and manipulation of UTM or BNG locations

    • Compute_Distance

    • Compute_Azimuth

    • Etc.

  • Instantiated to create NASS.Location and NASS.Unconstrained_Location

  • As an example, NASS.Location is extended by NABK to create NABK.FMNL.Location

NATO/PfP UNCLASSIFIED


Nass generic location pkg 2

NASS.Generic_Location_Pkg (2)

  • Coding examples from NASS unit test

  • Package spec:

  • generic_location\nass-generic_location_pkg.ads

  • Test code:

  • generic_location\nass-test_frame-generic_location_pkg.ads

  • generic_location\nass-generic_location_pkg-unit_test.adb

NATO/PfP UNCLASSIFIED


Nass generic real arrays

NASS.Generic_Real_Arrays

  • Defines Real Matrix and Real Vector types

  • Provides operations (+, -, *) for these types

  • NASS.Real64_Arrays is a NASS.Base_Types.Real64 instance of NASS.Generic_Real_Arrays

NATO/PfP UNCLASSIFIED


Nass generic tm

NASS.Generic_TM

  • Transformations/conversions for TM locations

    • Zone_to_Zone

    • Grid_Declination

    • TM_To_Geographic

    • Etc.

NATO/PfP UNCLASSIFIED


Nass geographic location pkg 1

NASS.Geographic_Location_Pkg(1)

  • This package provides services for creation and use of geographic (i.e. latitude / longitude) locations. Services include

    • Compute_Distance

    • Compute_Azimuth

    • Compute_Location

  • Child package Datum_Trans converts location between WGS84 and any Datum

  • Child package Data holds data for datum transforms. Possible to define own datum and ellipsoid here.

  • Child package Datum_Text provides Name and Region of any Datum

NATO/PfP UNCLASSIFIED


Nass geographic location pkg 2

NASS.Geographic_Location_Pkg(2)

  • Coding examples from NASS unit test

  • Package spec:

  • geographic_location\nass-geographic_location_pkg.ads

  • Test Code:

  • geographic_location\nass-geographic_location_pkg-unit_test.adb

NATO/PfP UNCLASSIFIED


Nass geo flight path

NASS.Geo_Flight_Path

  • Extension of List_Pkg

  • Position stored as Latitude, Longitude, Altitude, Range and Time

  • Extended for TEDM to include Ground_Altitude and Safety_Clearance

NATO/PfP UNCLASSIFIED


Nass geo utility pkg

NASS.Geo_Utility_Pkg

  • Provides additional utility services for Lat/Long positions

  • Defines DMS Type and services on this such as:

    • Convert_to_Decimal_Degrees

    • “+”, “-”, “=”

    • Etc…

NATO/PfP UNCLASSIFIED


Nass location pkg

NASS.Location_Pkg

  • UTM Instantiation of Generic_Location_Pkg

NATO/PfP UNCLASSIFIED


Nass integration

NASS.Integration

  • Generic package to perform numerical integration using a first order Predictor-Corrector method

  • Integration64: real64 Instance of Integration

NATO/PfP UNCLASSIFIED


Nass keyed db fixed

NASS.Keyed_DB_Fixed

  • Services on a keyed database of fixed size

  • Services use record ID, record primary key or both primary and secondary key

NATO/PfP UNCLASSIFIED


Nass hashed array fixed

NASS.Hashed_Array_Fixed

  • Contains the definition of a generic storage pool management facility with a fixed size.

  • Storage within the pool can be allocated and freed.

  • Used by NASS.Keyed_Db_Fixed

NATO/PfP UNCLASSIFIED


Nass list pkg nass linked list 1

NASS.List_Pkg & NASS.Linked_List(1)

  • List_Pkg

    • Manages data records in an array list

    • Array size is determined at instantiation

  • Linked_List

    • Manages data records in a double linked list

NATO/PfP UNCLASSIFIED


Nass list pkg nass linked list 2

NASS.List_Pkg & NASS.Linked_List(2)

  • Coding examples from NASS unit test

  • Package spec:

  • list_pkg\nass-list_pkg.ads

  • Test code:

  • list_pkg\nass-test_frame-list_pkg.ads

  • list_pkg\nass-list_pkg-unit_test.adb

NATO/PfP UNCLASSIFIED


Nass mac

NASS.MAC

  • Implementation of a variant of the RSA MD5 message digest algorithm

NATO/PfP UNCLASSIFIED


Nass mac io

NASS.MAC.IO

  • Used by the NABK to ‘authenticate’ data files to determine if a files has been changed since is was originally ‘fingerprinted’.

  • When a file is ‘fingerprinted’, a 128 bit number is computed and stored in the file.

  • When a file is ‘authenticated’ the fingerprint is recomputed and compared to the fingerprint stored in the file.

NATO/PfP UNCLASSIFIED


Nass math

NASS.Math

  • Provides math functions.

  • This package is a rename of the standard Ada package Ada.Numerics.Generic_Elementary_Functions.

  • NASS.Math32 and NASS.Math64 are NASS.Base_Types.Real32 and 64 instances of NASS.Math

NATO/PfP UNCLASSIFIED


Nass status 1

NASS.Status(1)

  • Defines Status types

    • Severity, Kind_Type, etc.

  • Provides services for Status messages

    • Image, Sort, etc.

  • Defines NASS status messages

    • SUCCESS, UNDEFINED, etc.

NATO/PfP UNCLASSIFIED


Nass status 2

NASS.Status(2)

  • Coding examples from NASS unit test

  • Package spec:

  • status\nass-status.ads

  • Test code:

  • status\nass-status-unit_test.adb

NATO/PfP UNCLASSIFIED


Nass string16 list

NASS.String16_List

  • Instance of List_Pkg to hold list of Bounded_Length16.Bounded_String:s

  • List size: Config_Pkg.String16_Maximum_List_Size (default to 200)

NATO/PfP UNCLASSIFIED


Nass string test

NASS.String_Test

  • Provides functions to test if a given String contains a real or integer number. Leading and trailing blanks or tabs are ignored.

  • Additionally also converts string to real64

NATO/PfP UNCLASSIFIED


Nass string utilities

NASS.String_Utilities

  • Provides a collection of functions on strings that are commonly performed:

    • Upper_Case_Trim for all Bounded_Length strings

NATO/PfP UNCLASSIFIED


Nass text io

NASS.Text_Io

  • Rename of Ada.Text_Io

NATO/PfP UNCLASSIFIED


Nass unconstrained location pkg

NASS.Unconstrained_Location_Pkg

  • Instance of Generic_Location_Pkg constrained by the safe range of real64

NATO/PfP UNCLASSIFIED


Nass unconstrained location pkg datum trans

NASS.Unconstrained_Location_Pkg_Datum_Trans

  • Instance of NASS.Unconstrained_Location_Pkg.Datum_Trans constrained by the safe range of real64

NATO/PfP UNCLASSIFIED


Nass vectors

NASS.Vectors

  • Provides basic mathematic operations on 3-dimension (x, y, z) vectors

  • Vectors64: real64 instance of Vectors

NATO/PfP UNCLASSIFIED


Nass moving object pkg

NASS.Moving_Object_Pkg

  • Provides services to manipulate moving object data:

    • Set

    • Get

    • Clear

    • Is_Defined

    • Compute_Velocity_Vector

  • Child package Moving_Weapon_Pkg handles a slewing barrel. Provides services:

    • Set

    • Get

    • Clear

    • Compute_Barrel_Velocity_Vector

NATO/PfP UNCLASSIFIED


Nass numerics 1

NASS.Numerics (1)

  • Provides services for Random Number generation

  • Algorithms used:

    • Mersenne Twister for uniform Unsigned_32

    • Ziggurat for normal distribution

  • Child packages:

    • Numerics.Mersenne_Twister

      • Basis of others and returns Interfaces.Unsigned_32

      • The “core” of the Mersenne_Twister method

    • Numerics.Normal_Random

      • Returns a Float with a normal distribution.

      • The “core” of the Ziggurat method

    • Numerics.Discrete_Random

      • Returns a Natural

      • The only generic package

      • Directly mirrors Ada.Numerics.Discrete_Random

NATO/PfP UNCLASSIFIED


Nass numerics 2

NASS.Numerics (2)

  • Child packages (continued):

    • Numerics.Float_Random

      • Returns a Float in range 0.0 to 1.0 (inclusive)

      • Directly mirrors Ada.Numerics.Float_Random.

    • Numerics.Integer_Random

      • Returns an Integer

      • Instantiation of the provided Discrete_Random

    • Numerics.Natural_Random

      • Returns a Natural

      • Instantiation of the provided Discrete_Random

    • Numerics.Element_Random

      • Provides a random Ada.Streams.Stream_Element value

NATO/PfP UNCLASSIFIED


Nass numerics 3

NASS.Numerics (3)

  • All packages provide the services:

    • function Random

      • Gives the random number

    • procedure Reset

      • Resets or initialises the random number generator

    • procedure Save

      • Saves the internal state of the generator

    • function Image

      • Produces the string representation of a State

    • function Value

      • reconstructs a State from an Image String

NATO/PfP UNCLASSIFIED


Nass numerics 4

NASS.Numerics (4)

  • Coding examples from NASS unit test

  • Package spec:

  • numerics\NASS-Numerics-Float_Random.ads

  • Test code:

  • numerics\nass-numerics-float_random-test.adb

NATO/PfP UNCLASSIFIED


Supporting documentation

Supporting Documentation

  • IDIUG for the NATO Armaments Support Services

  • DDD for the NATO Armaments Support Services

  • “The MD5 Message Digest Algorithm”, R. Rivest, MIT Laboratory for Computer Science and RSA Data Security, Inc., April 1992.

  • “Handbook for Transformations of Datums, Projections, Grids and Common Coordinate Systems (TEC-SR-7)”, US Army Corps of Engineers, Topographical Engineering Center, January 1996

  • “Transverse Mercator Projection (constants, formulae and methods)”, UK Ordnance Survey Leaflet No 72, March 1983

NATO/PfP UNCLASSIFIED


More coding examples if time

More coding examples if time….

  • basic_pool\nass-basic_pool.ads

  • basic_pool\nass-test_frame-basic_pool.ads

  • basic_pool\nass-basic_pool-unit_test.ads

  • basic_pool\nass-basic_pool-unit_test.adb

  • flight_path\nass-flight_path.ads

  • flight_path\nass-flight_path-unit_test.adb

  • hashed_array_fixed\nass-hashed_array_fixed.ads

  • hashed_array_fixed\nass-test_frame-hashed_array_fixed.ads

  • hashed_array_fixed\nass-hashed_array_fixed-unit_test.adb

NATO/PfP UNCLASSIFIED


  • Login