43
SRTS RCMP Project Overview By Jerry D. Garcia

SRTS RCMP Project Overview By Jerry D. Garcia. Outline Project Details & Description Analysis Development Delivery Conclusion

Embed Size (px)

Citation preview

Page 1: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

SRTS RCMP Project Overview

By Jerry D. Garcia

Page 2: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Outline

Project Details & Description Analysis Development Delivery Conclusion

Page 3: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Motivation

Students training to learn flight and operation procedures at Tinker AFB for the E3 AWACS fleet of aircraft use simulation suite called SRTS

System was old, outdated, unmaintained, difficult to manage and slow

Needed update

Page 4: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Definitions – E3 AWACS Airborne Warning and

Control System Basically a giant,

flying mobile radar Systems used to

detect aircraft, ships and vehicles at a distance

Useful for command control and battle management

Page 5: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Definitions - SRTS Surveillance Radar Training Set Air Force trainer designed to provide

maintenance/operations procedures for E3 AWACS Surveillance Radar Prime Mission Equipment

Located at Tinker AFB, OK Sets consist of one…

IOS – Instructor Operator Station (1) SWDF – Simware Development Facility (1) SWS – Student Work Station (SWS) (6)

Page 6: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Definitions: SRTS DiagramSWS

Page 7: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Definitions – CAT Console Computer Aided Training Console Controls and drives the SRTS simulation

software on SWS Receives notifications over network

regarding user inputs, changes in switches and gauges, commands from Instructor Operator Station, updates simulation accordingly

Communicates and sends update commands to other components

Page 8: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Definitions: SRTS Diagram

CAT Console

SWS

Page 9: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Definitions - RCMP Radar Control Maintenance Panel Simulator for RCMC P91 console on AWACS airship Interactive, menu-driven radar display interface Utilized to acquaint students with all aspects of RCMC

operation FIT – Fault Isolation Test Procedures RCMP Menu and Selection Navigation PPI – Plan Position Indicator FFT – Fast Fourier Transform

Situated on right hand side of SWS

Page 10: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Definitions: SRTS Diagram Con’t

RCMP

Left/RightRCDU

Custom Keyboard

CustomTrackball

Windows 95Computer

Page 11: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Project Purpose Port original RCMP Windows 95 Visual C

codebase into C++11 on openSUSE Linux Rewrite for improved performance,

readability, portability, intuitiveness Maintain parity with original system

behavior and functionality Parallel effort with Tinker AFB team

translating CAT simulation driving software 1 year project

Page 12: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

NCI & ATC Collaboration

Work for ATC (Prime) in Altus, OK Work at NCI (Sub) in San Antonio, TX

Chad SkeetersTechnical Lead

Fred ClutzProject Manager

Richard McGinleyDirector of Engineering

Page 13: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Skills Required C++11 Linux Cairo Graphics, GTK, XLib Libraries Some network/socket communication Agile development Mercurial versioning system Familiarity with radar systems Familiarity with Windows 95 MFC

Page 14: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Skills I Possessed C++11 Linux Cairo Graphics, GTK, XLib Libraries Some network/socket communication Agile development Mercurial versioning system Familiarity with radar systems Familiarity with Windows 95 MFC

Page 15: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Skills I Possessed Redux Bachelors of Science in Computer Science

at UTSA (3.9 GPA) Object Oriented Language Programming

(Java) PHP, CSS, HTML, XHTML, XML, W3C

compliancy Some C, C# experience Some relational database experience with

Oracle/MySQL/JDBC Wordpress CMS PROBLEM SOLVING SKILLS!

Page 16: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Why Did They Hire Me?

Good Problem Solving Skills Flexibility and Adaptability Quick Learner Good Communication Integrity More affordable than the next guy

Page 17: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Analysis Begins

Get acquainted with project details Pour through existing documentation Analyze existing files, relationships Formulate plan of attack

Page 18: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

SWS RCMP Software What it actually does

Receives and processes Simware Directives from nearby CAT computer

Parses resource files for window generation Processes keyboard and mouse actions Based on above, updates left/right display

panels to show dialog menus and radar displays How it does it

Developed in Visual C++ 5.0 Microsoft Developer Studio

Built on Microsoft Foundation Classes (MFC) Framework

Page 19: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Major Coding Areas

RCMPSrvr PPIDLL APISrv

Page 20: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

RCMPSrvr Primary entry into program (RCMPSrvrDlg.cpp) CAT computer communicates back and forth over

network with RCMP through RCMPSrvr Responsibilities

Startup and initialization Event Timing Socket Communication Processing Simware Directives Parsing Dialog Resource Files to build menus and

associating to panels Communication to keyboard LED’s Keyboard/mouse processing Communication to PPIDLL/APISrv

Basically the locus of control for all RCMP activity

Page 21: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

RCMPSrvr Overview

Page 22: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

PPIDLL Code area that manages both the PPI and FFT radar

displays Receives and processes commands from RCMPSrvr on

how to build the PPI and FFT displays, and their respective display objects (targets, strobes, bitmaps, movies, etc.)

Synchs with RCMPSrvr for timed update events of the displays

Communicates with APISrvr to create display primitives, and associates these to proper subwindows for proper display

Page 23: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

PPIDLL Con’t Multiple display types

PPI Display Types PPI_A PPI_G PPI_Plots PPI_Reports PPI_REPORTS_EX

FFT Display Types Range vs. Range (RR) 1 Range Gate vs. All Doppler Filters 3 Range Gates vs. All Doppler Filters 1 Doppler Filter vs. All Range Gates 3 Doppler Filters vs. All Range Gates

Page 24: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

PPIDLL Con’t

Uses helper classes to manage state information used for primitive objects belonging to each display type CmdChgSymbol Targets Strobes ECCM

Page 25: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

PPIDLL Overview

Page 26: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

APISrv Graphical server that builds a variety of

drawing primitives using MFC Device Contexts

Receives requests from RCMPSrvr and PPIDLL to build the drawing primitives

Responsible for generating, managing and deleting all primitives

Stores every drawing primitive object created, and maintains their relationships through complex hierarchy of arrays

Page 27: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Drawing Primitives Drawing Primitives Include…

Frame, Subwindow, Clip Rectangle Bar Plot, Bitmap, Bitmap Definition, Bitmap Movie Mark, ECCM Slider, Strobe, Filled Rectangle Line, Lubber Line PPI_A, PPI_G Circle Plot, Line Plot, Plot Definition Target, Target Definition Text

All primitives implement “Primitive” parent class As a result, every primitive stores an array of

subprimitives

Page 28: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

APISrv Overview

Page 29: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Primitive Hierarchy

Page 30: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Ex. PPI_A Display

Page 31: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

High Level Summary

Page 32: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Concerns Huge codebase

Difficult to trace logic Difficult to tell how parts worked together Time-consuming to read

Unmaintained Badly formatted Mixed logic Deprecated logic

Old language on old system Over a decade old (Windows 95) MFC Variants, Device Contexts, Timer threads, Void Pointers, AFX

Threads Complex, unintuitive design Manuals general, no documentation Redundancy Previous contractor efforts Less than one year

Page 33: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Solution

+ =

Lots of coffee Intravenous Drip Results!

Page 34: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Actual Approach High level conceptual design Prepare Development Environment Major Refactoring Effort Build development tools

Page 35: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

High Level Conceptual Design

Page 36: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Development Environment Work from Gnome command line terminal

on openSUSE Linux Coded in GVIM editor with SPF-13 plugin Code changes constantly checked into

Mercurial repository on NCI MTS Server Connected development computers directly

over Ethernet cables to test on SWS

Page 37: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Refactoring effort Clean up original code Unpeel spaghetti

Strip out mixed functionality to relevant areas Implement manager software to concentrate

major areas of functionality Rework MFC logic

Device Context logic to Cairo code Startup, shutdown and timer functionality

Remove layers of redundancy (container classes, primitive arrays, comment histories, etc.)

Revision and simplification of networking code to use BSD Sockets (Berkley sockets)

Overhaul keyboard, LED and mouse handling Slow process of cleanup/reworking/tweaking

Page 38: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Tools Developed RCMP Packet Sniffer

Records all communication between CAT and RCMP

Keeps timestamp information CAT Playback Tool

Plays back recorded data to serve as dummy simulator of CAT

Options to Adjust Timing Revised by Technical Lead

Better API Simultaneous read/playback to both original

RCMP display and local testing computer

Page 39: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

High Level Code Overview

Page 40: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Results of Process

Major Improvements to… Usability Readability Portability Size Performance Version control

Page 41: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Delivery

11th hour tweaks and preparations to head to Tinker AFB

9 hour drive up to Oklahoma

Page 42: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Delivery Con’t

Onsite setup, integration and testing Ongoing development of unfinished

CAT simulation driver software Bug fixes, miscellaneous Success!

Page 43: SRTS RCMP Project Overview By Jerry D. Garcia. Outline  Project Details & Description  Analysis  Development  Delivery  Conclusion

Wrapup, Questions, Comments