570 likes | 831 Views
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
E N D
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