Dashboard Technical Presentation
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


Dashboard Technical Presentation



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

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



Total Views
Views on SlideShare
Embed Views



2 Embeds 14

http://www.linkedin.com 13
https://www.linkedin.com 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Dashboard Technical Presentation Presentation Transcript

  • 1. Design Considerations and Implementation of a Persistent Constellation Launch Control System Dashboard Data Display Framework Matthew A. Noyes Rochester Institute of Technology
  • 2. Requirements
    • UTC Time Display
    • Countdown Time Display
    • System Status Indicator
    • Countdown Time Go/Hold Indicator
    • User Information
    • Embedded Shift Change Login
    • Dynamic System Application Menu Generator
    • Must not overlay other system application windows.
  • 3. Design Considerations
  • 4. GNOME Panel Applet
    • Potential Advantages
      • Reduce custom development time
      • Screen real-estate reservation features already implemented
      • Glade Interface Builder
  • 5. GNOME Panel Applet
    • Potential Disadvantages
      • Bonobo deprecation
      • No Java language bindings
      • High Maintenance
        • .server file definition
        • Heavy manipulation of profile settings
  • 6. C/GTK+ Application
    • Potential Advantages
      • Glade Interface Builder
      • Java bindings
      • GTK wrappers for X server calls
  • 7. C/GTK+ Application
    • Potential Disadvantages
      • Cannot maintain consistent look and feel or communication with other LCS Applications
      • Too many external dependencies
        • LibGlade to parse the GUI
        • GTK to render the GUI
  • 8. Java/Swing Application
    • Potential Advantages
      • Cross-platform development
      • Reduced dependencies
      • Intrinsic Java Message Bus communication
      • Consistent look/feel/integration with other LCS Applications
  • 9. Java/Swing Application
    • Potential Disadvantages
      • GUI implemented with machine-generated code
      • No intrinsic method to control/reserve screen real estate
  • 10. Java/Swing Prototype Implementation
  • 11.
    • 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
  • 12.
    • 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.
  • 13. The Menu Subsystem
  • 14.
    • Dynamic Menu Generation
      • Menu root directories stored in XML file
        • Custom SAX Parser (event driven)
    • Launchers/Shortcut buttons
      • Quick access to common/critical functionality
    • Interfaces with Strut Manager
      • Automatically wraps menus onto additional strut-enabled menu bars
    • See Component Model for implementation details
  • 15. The Strut Manager Subsystem
  • 16.
    • Window Struts in C
      • Low level X functions
    • Window Struts in Java
      • Java Native Interface
      • C Dynamic Library
      • JWindow
      • Strut manager class
    • Component Model for implementation details
  • 17. Java Caller C Dynamic Library long pointer pointer long
  • 18. Setting Struts in C
    • Atoms
      • _NET_WM_STRUT
    • 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)
  • 19. Component Model
  • 20.  
  • 21. Performance Analysis: CPU Usage
  • 22. Active Dashboard Idle Dashboard
  • 23. Performance Analysis: Memory Usage
  • 24. Idle Dashboard Active Dashboard
  • 25. Questions?