Design Considerations and Implementation of a Persistent Constellation Launch Control System Dashboard Data Display Framew...
Requirements <ul><li>UTC Time Display </li></ul><ul><li>Countdown Time Display </li></ul><ul><li>System Status Indicator <...
Design Considerations
GNOME Panel Applet <ul><li>Potential Advantages </li></ul><ul><ul><li>Reduce custom development time </li></ul></ul><ul><u...
GNOME Panel Applet <ul><li>Potential Disadvantages </li></ul><ul><ul><li>Bonobo deprecation </li></ul></ul><ul><ul><li>No ...
C/GTK+ Application <ul><li>Potential Advantages </li></ul><ul><ul><li>Glade Interface Builder </li></ul></ul><ul><ul><li>J...
C/GTK+ Application <ul><li>Potential Disadvantages </li></ul><ul><ul><li>Cannot maintain consistent look and feel or commu...
Java/Swing Application <ul><li>Potential Advantages </li></ul><ul><ul><li>Cross-platform development </li></ul></ul><ul><u...
Java/Swing Application <ul><li>Potential Disadvantages </li></ul><ul><ul><li>GUI implemented with machine-generated code <...
Java/Swing Prototype Implementation
<ul><li>Image logo enhances presentation quality/acts as a visual waypoint to most important information </li></ul><ul><li...
<ul><li>Menu obtains a pressed/non-pressed relief and icon changes to visually reflect open/closed menu state. </li></ul><...
The Menu Subsystem
<ul><li>Dynamic Menu Generation </li></ul><ul><ul><li>Menu root directories stored in XML file </li></ul></ul><ul><ul><ul>...
The Strut Manager Subsystem
<ul><li>Window Struts in C </li></ul><ul><ul><li>Low level X functions </li></ul></ul><ul><li>Window Struts in Java </li><...
Java Caller C Dynamic Library long pointer pointer long
Setting Struts in C <ul><li>Atoms </li></ul><ul><ul><li>_NET_WM_STRUT </li></ul></ul><ul><ul><li>_NET_WM_STRUT_PARTIAL </l...
Component Model
 
Performance Analysis:  CPU Usage
Active Dashboard Idle Dashboard
Performance Analysis:  Memory Usage
Idle Dashboard Active Dashboard
Questions?
Upcoming SlideShare
Loading in …5
×

Dashboard Technical Presentation

697 views

Published on

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

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
697
On SlideShare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dashboard Technical Presentation

  1. 1. Design Considerations and Implementation of a Persistent Constellation Launch Control System Dashboard Data Display Framework Matthew A. Noyes Rochester Institute of Technology
  2. 2. Requirements <ul><li>UTC Time Display </li></ul><ul><li>Countdown Time Display </li></ul><ul><li>System Status Indicator </li></ul><ul><li>Countdown Time Go/Hold Indicator </li></ul><ul><li>User Information </li></ul><ul><li>Embedded Shift Change Login </li></ul><ul><li>Dynamic System Application Menu Generator </li></ul><ul><li>Must not overlay other system application windows. </li></ul>
  3. 3. Design Considerations
  4. 4. GNOME Panel Applet <ul><li>Potential Advantages </li></ul><ul><ul><li>Reduce custom development time </li></ul></ul><ul><ul><li>Screen real-estate reservation features already implemented </li></ul></ul><ul><ul><li>Glade Interface Builder </li></ul></ul>
  5. 5. GNOME Panel Applet <ul><li>Potential Disadvantages </li></ul><ul><ul><li>Bonobo deprecation </li></ul></ul><ul><ul><li>No Java language bindings </li></ul></ul><ul><ul><li>High Maintenance </li></ul></ul><ul><ul><ul><li>.server file definition </li></ul></ul></ul><ul><ul><ul><li>Heavy manipulation of profile settings </li></ul></ul></ul>
  6. 6. C/GTK+ Application <ul><li>Potential Advantages </li></ul><ul><ul><li>Glade Interface Builder </li></ul></ul><ul><ul><li>Java bindings </li></ul></ul><ul><ul><li>GTK wrappers for X server calls </li></ul></ul>
  7. 7. C/GTK+ Application <ul><li>Potential Disadvantages </li></ul><ul><ul><li>Cannot maintain consistent look and feel or communication with other LCS Applications </li></ul></ul><ul><ul><li>Too many external dependencies </li></ul></ul><ul><ul><ul><li>LibGlade to parse the GUI </li></ul></ul></ul><ul><ul><ul><li>GTK to render the GUI </li></ul></ul></ul>
  8. 8. Java/Swing Application <ul><li>Potential Advantages </li></ul><ul><ul><li>Cross-platform development </li></ul></ul><ul><ul><li>Reduced dependencies </li></ul></ul><ul><ul><li>Intrinsic Java Message Bus communication </li></ul></ul><ul><ul><li>Consistent look/feel/integration with other LCS Applications </li></ul></ul>
  9. 9. Java/Swing Application <ul><li>Potential Disadvantages </li></ul><ul><ul><li>GUI implemented with machine-generated code </li></ul></ul><ul><ul><li>No intrinsic method to control/reserve screen real estate </li></ul></ul>
  10. 10. Java/Swing Prototype Implementation
  11. 11. <ul><li>Image logo enhances presentation quality/acts as a visual waypoint to most important information </li></ul><ul><li>User information allows for quick reference for user, and additionally acts as an identifier when a screenshot is taken </li></ul><ul><li>System Time/Countdown Time </li></ul><ul><li>Font and location provide visual clues of information criticality </li></ul><ul><li>System/Countdown Go/No Go status indicator. Pulsating icons augment presentation quality while acting as visual information cues </li></ul><ul><li>Shift Change login allows users to quickly and efficiently change shifts without complex menu interaction or exiting Desktop session </li></ul>
  12. 12. <ul><li>Menu obtains a pressed/non-pressed relief and icon changes to visually reflect open/closed menu state. </li></ul><ul><li>The open menu is static and is closed when any other is opened. </li></ul><ul><li>Subdirectories contain other executables, and cannot be executed themselves (though they may be selected). </li></ul><ul><li>The menu can also be closed with the “Close” button. </li></ul><ul><li>The “Run” button executes all selected files and then closes the menu. </li></ul><ul><li>Selected executables appear highlighted. More than one executable can be selected with Ctrl+Click, and several in sequence with Shift+Click. </li></ul><ul><li>Double-clicking will execute all selected files but will not close the menu. </li></ul>
  13. 13. The Menu Subsystem
  14. 14. <ul><li>Dynamic Menu Generation </li></ul><ul><ul><li>Menu root directories stored in XML file </li></ul></ul><ul><ul><ul><li>Custom SAX Parser (event driven) </li></ul></ul></ul><ul><li>Launchers/Shortcut buttons </li></ul><ul><ul><li>Quick access to common/critical functionality </li></ul></ul><ul><li>Interfaces with Strut Manager </li></ul><ul><ul><li>Automatically wraps menus onto additional strut-enabled menu bars </li></ul></ul><ul><li>See Component Model for implementation details </li></ul>
  15. 15. The Strut Manager Subsystem
  16. 16. <ul><li>Window Struts in C </li></ul><ul><ul><li>Low level X functions </li></ul></ul><ul><li>Window Struts in Java </li></ul><ul><ul><li>Java Native Interface </li></ul></ul><ul><ul><li>C Dynamic Library </li></ul></ul><ul><ul><li>JWindow </li></ul></ul><ul><ul><li>Strut manager class </li></ul></ul><ul><li>Component Model for implementation details </li></ul>
  17. 17. Java Caller C Dynamic Library long pointer pointer long
  18. 18. Setting Struts in C <ul><li>Atoms </li></ul><ul><ul><li>_NET_WM_STRUT </li></ul></ul><ul><ul><li>_NET_WM_STRUT_PARTIAL </li></ul></ul><ul><ul><li>_NET_WM_WINDOW_TYPE </li></ul></ul><ul><ul><li>_NET_WM_WINDOW_TYPE_DOCK </li></ul></ul><ul><li>Functions </li></ul><ul><ul><li>XOpenDisplay(display_name) </li></ul></ul><ul><ul><li>XCreateSimpleWindow(display, parent, x, y, width, height, border_width, border, background) </li></ul></ul><ul><ul><li>XInternAtom(display, atom_name, only_if_exists) </li></ul></ul><ul><ul><li>XChangeProperty(display, window, property_atom, atom_type, bit_format, property_mode, data, num_elements) </li></ul></ul><ul><ul><li>XMapWindow(display *d, window) </li></ul></ul><ul><ul><li>XNextEvent(display, event_return) </li></ul></ul>
  19. 19. Component Model
  20. 21. Performance Analysis: CPU Usage
  21. 22. Active Dashboard Idle Dashboard
  22. 23. Performance Analysis: Memory Usage
  23. 24. Idle Dashboard Active Dashboard
  24. 25. Questions?

×