
NATO Armaments Support ServicesUser Training NASS Packages Release 4.0 September 2008 NATO/PfP UNCLASSIFIED
Agenda • Introduction • Overview • Development Environment • SCPP • Configuration • Packages • Autotest • Closing NATO/PfP UNCLASSIFIED
Packages (1) NATO/PfP UNCLASSIFIED
Packages (2) NATO/PfP UNCLASSIFIED
Packages (3) NATO/PfP UNCLASSIFIED
Packages (4) NATO/PfP UNCLASSIFIED
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) • 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) • 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) • 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 • 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 • 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_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) • 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) • 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) 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) 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) • config_pkg\nass-config_pkg.ads NATO/PfP UNCLASSIFIED
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 • 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 • 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) • 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) • 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 • 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) • 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) • 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 • 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 • Transformations/conversions for TM locations • Zone_to_Zone • Grid_Declination • TM_To_Geographic • Etc. NATO/PfP UNCLASSIFIED
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) • 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 • 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 • 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 • UTM Instantiation of Generic_Location_Pkg NATO/PfP UNCLASSIFIED
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 • 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 • 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) • 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) • 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 • Implementation of a variant of the RSA MD5 message digest algorithm NATO/PfP UNCLASSIFIED
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 • 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) • 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) • 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 • 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 • 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 • 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 • Rename of Ada.Text_Io NATO/PfP UNCLASSIFIED
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 • Instance of NASS.Unconstrained_Location_Pkg.Datum_Trans constrained by the safe range of real64 NATO/PfP UNCLASSIFIED
NASS.Vectors • Provides basic mathematic operations on 3-dimension (x, y, z) vectors • Vectors64: real64 instance of Vectors NATO/PfP UNCLASSIFIED