dashboard technical presentation

25
Design Considerations Design Considerations and Implementation of and Implementation of a Persistent a Persistent Constellation Launch Constellation Launch Control System Control System Dashboard Data Display Dashboard Data Display Framework Framework Matthew A. Noyes Matthew A. Noyes Rochester Institute of Rochester Institute of Technology Technology

Upload: mattn

Post on 23-Jun-2015

585 views

Category:

Documents


2 download

DESCRIPTION

This is a technical overview of my software design I presented to the head of the Engineering division at Kennedy Space Center.

TRANSCRIPT

Page 1: Dashboard Technical Presentation

Design Considerations and Design Considerations and Implementation of a Implementation of a

Persistent Constellation Persistent Constellation Launch Control System Launch Control System Dashboard Data Display Dashboard Data Display

FrameworkFrameworkMatthew A. NoyesMatthew A. Noyes

Rochester Institute of Rochester Institute of TechnologyTechnology

Page 2: Dashboard Technical Presentation

RequirementsRequirements UTC Time DisplayUTC Time Display Countdown Time DisplayCountdown Time Display System Status IndicatorSystem Status Indicator Countdown Time Go/Hold IndicatorCountdown Time Go/Hold Indicator User InformationUser Information Embedded Shift Change LoginEmbedded Shift Change Login Dynamic System Application Menu Dynamic System Application Menu

GeneratorGenerator Must not overlay other system application Must not overlay other system application

windows.windows.

Page 3: Dashboard Technical Presentation

Design ConsiderationsDesign Considerations

Page 4: Dashboard Technical Presentation

GNOME Panel AppletGNOME Panel Applet

Potential AdvantagesPotential Advantages Reduce custom development timeReduce custom development time Screen real-estate reservation features Screen real-estate reservation features

already implementedalready implemented Glade Interface BuilderGlade Interface Builder

Page 5: Dashboard Technical Presentation

GNOME Panel AppletGNOME Panel Applet

Potential DisadvantagesPotential Disadvantages Bonobo deprecationBonobo deprecation No Java language bindingsNo Java language bindings High MaintenanceHigh Maintenance

.server file definition.server file definition Heavy manipulation of profile settingsHeavy manipulation of profile settings

Page 6: Dashboard Technical Presentation

C/GTK+ ApplicationC/GTK+ Application

Potential AdvantagesPotential Advantages Glade Interface BuilderGlade Interface Builder Java bindingsJava bindings GTK wrappers for X server callsGTK wrappers for X server calls

Page 7: Dashboard Technical Presentation

C/GTK+ ApplicationC/GTK+ Application

Potential DisadvantagesPotential Disadvantages Cannot maintain consistent look and Cannot maintain consistent look and

feel or communication with other LCS feel or communication with other LCS ApplicationsApplications

Too many external dependenciesToo many external dependencies LibGlade to parse the GUILibGlade to parse the GUI GTK to render the GUIGTK to render the GUI

Page 8: Dashboard Technical Presentation

Java/Swing ApplicationJava/Swing Application

Potential AdvantagesPotential Advantages Cross-platform developmentCross-platform development Reduced dependenciesReduced dependencies Intrinsic Java Message Bus Intrinsic Java Message Bus

communicationcommunication Consistent look/feel/integration with Consistent look/feel/integration with

other LCS Applicationsother LCS Applications

Page 9: Dashboard Technical Presentation

Java/Swing ApplicationJava/Swing Application

Potential DisadvantagesPotential Disadvantages GUI implemented with machine-GUI implemented with machine-

generated codegenerated code No intrinsic method to control/reserve No intrinsic method to control/reserve

screen real estatescreen real estate

Page 10: Dashboard Technical Presentation

Java/Swing Prototype Java/Swing Prototype ImplementationImplementation

Page 11: Dashboard Technical Presentation

• Image logo enhances presentation quality/acts as a visual waypoint to most important information

• User information allows for quick reference for user, and additionally acts as an identifier when a screenshot is taken

• System Time/Countdown Time

• Font and location provide visual clues of information criticality

• System/Countdown Go/No Go status indicator. Pulsating icons augment presentation quality while acting as visual information cues

• Shift Change login allows users to quickly and efficiently change shifts without complex menu interaction or exiting Desktop session

Page 12: Dashboard Technical Presentation

• Menu obtains a pressed/non-pressed relief and icon changes to visually reflect open/closed menu state.

• The open menu is static and is closed when any other is opened.

• Subdirectories contain other executables, and cannot be executed themselves (though they may be selected).

• The menu can also be closed with the “Close” button.

• The “Run” button executes all selected files and then closes the menu.

• Selected executables appear highlighted. More than one executable can be selected with Ctrl+Click, and several in sequence with Shift+Click.

• Double-clicking will execute all selected files but will not close the menu.

Page 13: Dashboard Technical Presentation

The Menu SubsystemThe Menu Subsystem

Page 14: Dashboard Technical Presentation

Dynamic Menu GenerationDynamic Menu Generation Menu root directories stored in XML fileMenu root directories stored in XML file

Custom SAX Parser (event driven)Custom SAX Parser (event driven)

Launchers/Shortcut buttonsLaunchers/Shortcut buttons Quick access to common/critical functionalityQuick access to common/critical functionality

Interfaces with Strut ManagerInterfaces with Strut Manager Automatically wraps menus onto additional Automatically wraps menus onto additional

strut-enabled menu barsstrut-enabled menu bars See Component Model for implementation See Component Model for implementation

detailsdetails

Page 15: Dashboard Technical Presentation

The Strut Manager The Strut Manager SubsystemSubsystem

Page 16: Dashboard Technical Presentation

Window Struts in CWindow Struts in C Low level X functionsLow level X functions

Window Struts in JavaWindow Struts in Java Java Native InterfaceJava Native Interface C Dynamic LibraryC Dynamic Library JWindowJWindow Strut manager classStrut manager class

Component Model for Component Model for implementation detailsimplementation details

Page 17: Dashboard Technical Presentation

Java Caller

C Dynamic Library

long

pointer

pointer

long

Page 18: Dashboard Technical Presentation

Setting Struts in CSetting Struts in C• Atoms

• _NET_WM_STRUT

• _NET_WM_STRUT_PARTIAL

• _NET_WM_WINDOW_TYPE

• _NET_WM_WINDOW_TYPE_DOCK

• Functions

• XOpenDisplay(display_name)

• XCreateSimpleWindow(display, parent, x, y, width, height, border_width, border, background)

• XInternAtom(display, atom_name, only_if_exists)

• XChangeProperty(display, window, property_atom, atom_type, bit_format, property_mode, data, num_elements)

• XMapWindow(display *d, window)

• XNextEvent(display, event_return)

Page 19: Dashboard Technical Presentation

Component ModelComponent Model

Page 20: Dashboard Technical Presentation
Page 21: Dashboard Technical Presentation

Performance Analysis: Performance Analysis: CPU UsageCPU Usage

Page 22: Dashboard Technical Presentation

Active Dashboard

Idle Dashboard

Page 23: Dashboard Technical Presentation

Performance Analysis: Performance Analysis: Memory UsageMemory Usage

Page 24: Dashboard Technical Presentation

Idle Dashboard

Active Dashboard

Page 25: Dashboard Technical Presentation

Questions?Questions?