CSE Capstone Project

23
CSE Capstone Project Final Presentation

description

CSE Capstone Project. Final Presentation. Honeywell Avionics Displays Group. Display Group Located in Dear Valley Program and support cockpit displays Displays are responsible for reporting various important flight information Altitude, Speed, Pitch, etc. Project Managers Malachi Nordine - PowerPoint PPT Presentation

Transcript of CSE Capstone Project

Page 1: CSE Capstone Project

CSE Capstone Project

Final Presentation

Page 2: CSE Capstone Project

Honeywell Avionics Displays Group

Display Group Located in Dear Valley Program and support cockpit displays Displays are responsible for reporting various

important flight information Altitude, Speed, Pitch, etc.

Project Managers Malachi Nordine Mohammed Islam

Page 3: CSE Capstone Project

The Hardware

Two main components: Display Unit (DU) – Displays flight information in

2-D graphics.

Advanced Graphics Module (AGM) – The graphics engine which uses OpenGL libraries to draw primitives to one or more displays.

Page 4: CSE Capstone Project

Project Overview

The purpose Create a remote testing tool for the new advanced

graphics module (AGM-200). Testing tool checks for consistency for all primitives

drawn by AGM-200.

The approach Set up a client-server network between a remote PC

and the AGM-200. Commands:

Draw an OpenGL primitive. Retrieve corresponding CRC value.

Page 5: CSE Capstone Project

System Level Overview

Page 6: CSE Capstone Project

Documentation

Honeywell’s protocol for doing documentation: Requirements: SRS (System Requirement

Specification) Design: SRDD (System Requirement Design

Document) Testing: Test Plan

Goal: Lower levels of documentation trace back to higher

levels of documentation for requirement verification Test Plan test cases -> SRDD requirements ->

SRS requirements

Page 7: CSE Capstone Project

SRS - Overview

The SRS focuses on the system-level requirements (the “what”), non implementation specific. System Overview General System Requirements Quality Requirements System Interface Requirements

Page 8: CSE Capstone Project

SRS – General System Requirements

Main focus of SRS: general system requirements Provide abstract non implementation specific

description of each requirement Provide test cases for each requirement

Represented by “shall” statements, must be testable

Each “shall” statement has a trace tag

Page 9: CSE Capstone Project

SRDD - Overview

SRDD focuses on the lower-level implementation -specific requirements (the “how”)

It is a list of methods and classes that will eventually be implemented Specific enough to explain exactly what a

function does Abstract enough so the programmer can

implement the code anyway they want

Page 10: CSE Capstone Project

SRDD – Example Function

• setPrimitive tells the AGM-200 which drawing mode to be in.

• SRDD “shall” statements trace back to SRS

Page 11: CSE Capstone Project

Test Plan

Test plan is the lowest level in the documentation hierarchy.

The document is organized as a listing of test cases which correspond to all of the “shall” statements in the SRDD.

Not actual code, but descriptions of code that you will write that gives the coder freedom of implementation.

Page 12: CSE Capstone Project

Client

Layered Design Client Transactions / Requests GUI / Test Runner

Network Decided to use UDP, but left TCP functionality in

as product switch

Page 13: CSE Capstone Project

GUI

Page 14: CSE Capstone Project

Output

tcpClient.fixtures.TransactionFixture

IP port Start?

agm 6969 true

tcpClient.fixtures.GenericRequestFixture DrawSquare

GetReply?

true

tcpClient.fixtures.GenericRequestFixture SetColorFlat

RR GG BB GetReply?

22 33 FF true

tcpClient.fixtures.GenericRequestFixture GetCRC

GetReply?

0x7C4237D7

Page 15: CSE Capstone Project

Class Structure

AGM_Client.jar: package fit package displayTool

DisplayFrame.java, DisplayTool.java package tcpClient

NetClient.java, TCPClient.java, UDPClient.java Request.java, Reply.java, Transaction.java TestRunner.java package fixtures

GenericRequestFixture.java TransactionFixture.java

TCPApplet.java

Page 16: CSE Capstone Project

Server Environment

Ran on the DEOS operating system Proprietary real-time scheduling OS

Written in C++ Time consuming setting up server project in visual studio

Memory, scheduling, threads, mutexes, mailboxes, etc. all entered manually into registry

Binary file and registry uploaded to the AGM using ftpshell and then ran

Debugging done through logProcessEvents and checked through telnet

Page 17: CSE Capstone Project

Server Processes

We use two processes: CRC aClient

aClient has multiple threads: Handle UDP connection Draw HGL primitives Receive a message from CRC process when the

value of the CRC has changed

Page 18: CSE Capstone Project

Client/Server Communication

Server waits for incoming UDP connection from client

Server receives string in following format using recvfrom(): Function|Param1|Param2|…|ParamN

Unpack() parses it and reads parameters into an array of strings

Switch used to either change what is drawn or get a CRC value

sendto() is used to send status or CRC back to client

Page 19: CSE Capstone Project

CRC Operation

CRC is calculated using a different process. DEOS only allows “server” processes to interact

with our process, and CRC calculation is not a “server” process (HGL is)

To get around this, we use a mailbox that is accessed by our main process.

CRC sends a new value to the mailbox each time it changes

Thread in main process keeps checking mailbox and stores value in global variable

Page 20: CSE Capstone Project

OpenGL

Standard specification defining a cross-platform graphics API

Doesn’t provide the actual functionality; only an interface

Useful for abstraction and uniformity

Displays use OpenGL to convert geometric primitives (lines, shapes, etc) into pixels

Page 21: CSE Capstone Project

HGL

Supported functions: Draw Line Draw Square Draw Triangle Draw Polygon Clear Display Set Color

Page 22: CSE Capstone Project

Conclusion

Had some holdups along the way due to environment

We had to narrow the scope a bit, but in the end we built a working product

Opportunity to learn a thing or two about graphics, embedded software, and network programming

Page 23: CSE Capstone Project

Questions?