cse capstone project
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 PresentationTRANSCRIPT
![Page 1: CSE Capstone Project](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/1.jpg)
CSE Capstone Project
Final Presentation
![Page 2: CSE Capstone Project](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/5.jpg)
System Level Overview
![Page 6: CSE Capstone Project](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/13.jpg)
GUI
![Page 14: CSE Capstone Project](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/21.jpg)
HGL
Supported functions: Draw Line Draw Square Draw Triangle Draw Polygon Clear Display Set Color
![Page 22: CSE Capstone Project](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062308/56812dde550346895d93318b/html5/thumbnails/23.jpg)
Questions?