300 likes | 459 Views
NATO Armaments Support Services User Training. Overview of the NASS Release 4.0 September 2008. Agenda. Introduction Overview Development Environment Configuration SCPP Packages Autotest Closing. Presentation Structure. System Overview Scope and Limitations
E N D
NATO Armaments Support Services User Training Overview of the NASS Release 4.0 September 2008 Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Agenda • Introduction • Overview • Development Environment • Configuration • SCPP • Packages • Autotest • Closing Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Presentation Structure • System Overview • Scope and Limitations • Architecture / Namespace • General information • Coordinate Systems • Ammunition Nomenclature • Error Handling • Input/Output • Lists • File authentication • Command Line Interface • Portability Issues • NASS - OPr Integration Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
System Overview • What is NASS? • NASS is a set of services with broad applicability across the S4 suite of products • NASS is not dependent on any other S4 product • Written mainly in Ada95 programming language • Configurable: Can be configured to meet the needs of different users • Portable: Can be ported to different hardware/operating system environments Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
System Overview (continued) • NASS has “Core” and “non-Core” capabilities • “Core” capabilities cannot be easily removed from the software • Supports the needs of most users • “non-Core” capabilities can easily be added or removed from the software • Use of Stream I/O to save state data • Command Line Interface, CLI • Etc… Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
System Overview (continued) • NASS can be configured by • Modifying configuration parameters • Adding/removing Ada packages • Using the Source Code Preprocessor tool (SCPP) to add/remove lines of code.E.g. TEDM, DEBUG, Deprecated code, etc. Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Scope • NASS will never have • Dependencies on other S4 products • Services that are only useful to one S4 product • Information or source code that is NATO/PfP Restricted In general, the capabilities of the NASS will be limited to those capabilities that are useful to several S4 products and do not require knowledge of other S4 products. Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Limitations NASS does not currently have: • Graphic modules • Necessary during unit test of Numerics Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Architecture / Namespace NASS Constants Base Types • Service Packages for: • Geography • Lists • Math • Random Number Generator • Status • Etc. Met Debug Fci Fire_Mission Coordinate_Systems Debug IO (files) Text IO Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
General Information • Coordinate Systems • Ammunition nomenclature • Error handling • Input and Output • Lists • File Authentication • Command Line Interface Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Coordinate Systems • Locations on a map may be represented in: • Geographic coordinates (latitude and longitude) • One of two grid systems: UTM or BNG • Conversion services between coordinate systems are provided in the packages NASS.TMandNASS.Location_Pkg • The range of values are specified in the package NASS.Base_Types.Coordinate_Systems Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
UTM Coordinates 10,000,000 84 deg N Edge of Grid Zone Northing 3 deg Longitude 0 Equator 10,000,000 ~150,000 500,000 ~850,000 Easting 80 deg S 0 Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
BNG Coordinates 1,200,000 400,000 0 Easting 800,000 Northing 0 Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Trajectory X2 X2 X1 E2 Earth’s Surface Cartesian Coordinates : 1-2 plane The vector E in nass.flight_path is one example of this system. Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
X1 Reference Azimuth Trajectory X3 Cartesian Coordinates : 1-3 plane Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Ammunition Nomenclature (1) • Bounded strings are used for • Weapon Model • 16 characters, example “M198” • Projectile Model • 16 characters, example “M107DC” • Projectile Country • 4 characters, example “TU” • Fuze Model • 16 characters, example “M557” • Fuze Country • 4 characters, example “BE” • Propellant/Charge • 16 characters, example “M3A1/3G” Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Ammunition Nomenclature (2) • Enumeration types are used for • Safety Level: SAFE, COMBAT, EMERGENCY • Fuze Mode: PDET, TIME, PROX, DLAY • Projectile type • Projectile Subtype • Integer type is used for • Ballistic Match: 0..5 Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Error Handling (1) • Ada exceptions • For propagation of severe errors to the OPr • Status Messages (type Status_Type) • Indicate three levels of error: • INFO - information • WARNING - requested operation was successful but a warning was issued • ERROR - requested operation was not successful Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Error Handling (2) • Package NASS.Status defines status messages and services on status messages to be used by other kernels • type Status_Type, a single message • type Status_Code, may contain up to 10 messages • Most NASS Services currently don’t use Status_Code as return status Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Error Handling (3) Example Operations: Result : NASS.Status.Status_Code; Status : NASS.Status.Status_Type • Add(Result, Status) • Adds a status to the Status_Code list. • Successful(Result) • returns TRUE if Result contains no errors. Warnings are allowed. • Complete_Success(Result) • returns TRUE if Result contains no errors or warnings. Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Error Handling (4) Example Operations (continued): Result : NASS.Status.Status_Code; Status : NASS.Status.Status_Type • Clear(Result) • deletes all status messages from Result • Test(Result, Status_Type) • returns TRUE if the Status_Type is present in Result • Error_Level(Result) • returns the highest error level in Result(INFO,WARNING, ERROR) Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Input/Output • The core NASS never reads/writes using standard input/output • Some NASS core packages have non-Core child packages with I/O services Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Lists • List Pkg (a fixed size list) • Linked List (a dynamic list) • Bounded Ordered Maps (precursor to Ada2005 package) • Pool & Basic Pool (set of objects in a limited memory space) Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
File Authentication • A variant of the MD5 algorithm is used to generate a 32 byte “fingerprint” of the file (can also use MD5) • The fingerprint is stored as part of the file and recomputed when the file is read • Packages NASS.MAC and NASS.MAC.IO provide the services to fingerprint and authenticate files Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Command Line Interface • The package CLI_Pkg is for processing application-specific command line arguments. • It is a long-term goal to integrate its capabilities into the command line tools of the S4 suite • This will result in a more consistent command line interface across the S4 tools. Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
Portability Issues • The package NASS.Base_Types provides the basic definitions of floating and integer types used by NASS • Floating point types • 32 and 64 bit • Integer types • 8, 16 and 32 bit • String types are defined in package NASS.Bounded_Lengthn • instantiations of Ada.Strings.Bounded.Generic_Bounded_Length • 4, 16, 32, 64, 128, 256, 512 character lengths, plus the configurable NASS.Bounded_Length_Large • Math Libraries are defined in package NASS.Math • instantiation of Ada.Numerics.Generic_Elementary_Functions Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
NASS/OPr Integration (1) • Existing software - what software do you already have and how will NASS interface to this software? • Needed functionality - what functions does NASS provide that you need? • Unneeded functionality - what capabilities does NASS have that you do not need? Typically if your OPr is using NASS, it would also be using some other products of the S4 suite Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
NASS/OPr Integration (2) • OPr Development Language: • Write the OPr in Ada: • Ada Ada interface • Write the OPr in Java, C++, VBA, Delphi, etc.: • Other language Ada interface • Process/Linkage Design (e.g. under MS-Windows) • Create a DLL with NASS • Create a COM Object with NASS • Write NASS as a separate process and use inter-process communications Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
NASS/OPr Integration (3) • Configuration • NASS R2.0 has introduced the NASS.Config_Pkg • NASS is compile-time configured • Currently the NASS.Config_Pkg contains such configurable items as • the NASS Version string, which can be modified to keep track of your national variants. • Debugging flags • Sizes of lists • Etc… Releasable for Internet Transmission NATO/PfP UNCLASSIFIED
NASS/OPr Integration (4) • Ramifications • OPr builders need to have a better understanding of the NASS functions • Reconfiguration of NASS requires a recompile of the NASS (and possibly the OPr) • Developers of multiple National OPr implementations may need parallel CM on NASS configuration packages Testing different configurations can be a significant effort. Releasable for Internet Transmission NATO/PfP UNCLASSIFIED