260 likes | 521 Views
Honeywell Displays Testing. Mike Santa Cruz Brad Simons Ryan Hernandez Matt Lombardo Jeremy Pager. The Hardware. One or more display units (DU) are connected to the Advanced Graphics Module (AGM) through the Modular Avionics Unit (MAU).
E N D
Honeywell Displays Testing Mike Santa Cruz Brad Simons Ryan Hernandez Matt Lombardo Jeremy Pager
The Hardware • One or more display units (DU) are connected to the Advanced Graphics Module (AGM) through the Modular Avionics Unit (MAU). • The display is analogous to a monitor, the AGM to a computer, and the MAU to a computer casing with multiple slots. • The AGM uses OpenGL libraries to draw primitives to the display.
The Problem, Reviewed • The AGM-200 is currently in development, and uses a different graphics processor than the AGM-100. • The OpenGL libraries need to be tested to ensure they still work correctly.
The Problem (con’t) • The AGM already has the ability to compute Cyclical Redundancy Checksums (CRC) to detect differences between two display areas. • To test the libraries, primitives must be drawn and the CRC calculated. • The AGM needs to be controlled from a remote machine, as it does not have its own monitor.
Documentation • Honeywell requires extensive documentation on the requirements of the program • SRS • Before any code is written it must be described in detail • SRDD • Descriptions of all tests must be in writing • Test Plan
SRS • System Requirements Specification • System Overview • General System Requirements • System Safety Requirements • Quality Requirements • Functional Allocation Requirements • System Interface Requirements • Power-Up/Restart Processing Requirements • Built-In-Test Requirements
Example SRS Requirement The program shall sum ten consecutive numbers and output the result [SRS NUMBER OUTPUT]
SRDD • System Requirements and Design Document • Describes all functions to be written • Describes data formats to be used • Also includes instructions on how to install
Example SRDD 3.5.1 printNumbers 3.5.1.1 API void printNumbers(int a) 3.5.1.2 Requirements The program shall add the numbers starting at the parameter a, to a+9, then it shall print the result of the addition of those numbers. [SRDD PRINT NUMBERS METHOD /; SRS NUMBER OUTPUT]
Code Example // [SRDD PRINT NUMBERS METHOD /; SRS NUMBER OUTPUT] void printNumbers(int a){ int b = 0; for(int i = a;i<a+10;i++){ b+= i; } cout << b; }
The Server • The AGM has its own operating system, called DEOS. • DEOS does not have a virtual machine, so native code (i.e. C/C++) must be used. • A small server application will be running on the AGM to accept and process requests from a TCP connection.
The Server (con’t) • DEOS does not have a registry. • Information about each process must be manually declared and uploaded to the AGM. • Threads • Mutexes • Time Slices • Slack
The Server (con’t) • The server waits for an incoming TCP request. • The server parses the request, which is either to draw an OpenGL primitive or get a CRC. • The OpenGL library or CRC is invoked, and the result is returned to the client through the TCP socket.
HGL • Based on OpenGL 1.4. • Stripped down functionality, no need to render cutting-edge 3D graphics. • All drawing in our application done in immediate mode, i.e. glBegin()/glEnd().
HGL (con’t) • Primitive types
Server Progress • Gave a demo to Malachi before spring break • UDP Connection between client/server • Able to receive incoming data from the client • Drawing HGL Primitives • Red box drawn on screen upon starting client
Server Side: To Do • TCP Connection • CRC • Outgoing data transmission • Write code to parse and execute commands from the client
The Client • The client (written in Java) will create a request and send it to the server. • The client waits for a response from the server. • In order to support modularity and extensibility, the “client” is only a layer that is invoked by a separate Java program.
Client Progress • Client is 97.3% done • Able to detect success/error • Display added to applet