User Interfaces and Usability for Embedded Systems

Front Panel - The Book

Front Panel: Designing Software for Embedded User Interfaces is a guide for embedded systems programmers who face the challenge of writing software for event driven user interfaces.

Purchase it online from Amazon.

Purchase it online from Amazon UK.

Programmers of embedded systems have to learn to write code that will drive devices according to the specification supplied in a data sheet, or to match the circuit diagram of custom user interface hardware. This book addresses the issues that arise when you try to add structure to that code. The book describes the Model-View-Controller paradigm, as a general structure that can be applied to most user interface software, whether it be a graphical user interface or a pocket calculator. Finite state machines provide another structure that can be applied to specific pieces of the design. A third area is the management of event queues. These three topics provide the foundation for the design of user interface software.

Other chapters address issues such as the design process, and safety issues in embedded user interface software. One of the more important chapters, Usability for Embedded Systems, is dedicated to the topic of the human computer interaction. Interactions with embedded systems differ from the interactions on the desktop for a number of reasons. One is that the user is often dealing with more diverse hardware. On the desktop, the developer can make the reasonable assumption that the user is familiar with the computer. An embedded system is often making every effort to hide the fact that it contains a computer. A desktop application will be compared to other applications, while an embedded system will be compared to tools - try competing with the ease of use of a hammer.

If you have already purchased the book, you may be interested in the errata, which points out a number of mistakes in the first edition.


Table of Contents

  • 1. Introduction
  • 2. The Model View Controller Paradigm
    • 2.1. What does Object Oriented Software mean in a User Interface?
    • 2.2. Model-View-Controller
    • 2.3. An Array of LEDs
    • 2.4. Layered messages on a Small Text Display
    • 2.5. Conclusion
  • 3. Managing User Events
    • 3.1. User Events on the Desktop
    • 3.2. Polling versus Interrupts
    • 3.3. Queuing
    • 3.4. The Tasks
    • 3.5. Different Queues for Different Events
    • 3.6. Queue Read Ahead
    • 3.7. Directing Event Traffic
  • 4. Finite State Machines
    • 4.1. The FSM as a Poor Man's Real Time Operating System
    • 4.2. Drawing the FSM
    • 4.3. Why user interface code needs FSMs
    • 4.4. Limits of the FSM
    • 4.5. How many states? How many FSMs?
    • 4.6. Use of Constant, Static, Global and Automatic data
    • 4.7. Example of an FSM for a Toggle Button on a GUI
    • 4.8. Menu for a Small Text Display
  • 5. Graphics
    • 5.1. The Software Levels
    • 5.2. Choosing the set of primitives
    • 5.3. The Next Level Up - Do We Need Objects?
    • 5.4. Refreshing the Display
    • 5.5. Compound Objects
    • 5.6. Locating Events
    • 5.7. Touchscreen Programming Techniques
    • 5.8. Multiple Dialogs
    • 5.9. Conclusion
  • 6. Systems Issues
    • 6.1. Multiple processors
    • 6.2. Safety
    • 6.3. Translation and Internationalization
  • 7. C++ in embedded systems
    • 7.1. Introduction to C++
    • 7.2. Choosing C++
    • 7.3. Using C++
    • 7.4. Converted examples
    • 7.5. Conclusion
  • 8. The Design Process
    • 8.1. Writing Requirements
    • 8.2. Iterations through the Interface
    • 8.3. Simulations and Prototypes
  • 9. Usability for Embedded Systems
    • 9.1. The User
    • 9.2. The Interface
    • 9.3. The Graphical User Interface
    • 9.4. Usability and Safety
  • 10. The Future
    • 10.1. Standards
    • 10.2. Graphics Everywhere
    • 10.3. Voice Synthesis and Verbal Commands
    • 10.4. Software quality
    • 10.5. Programming Activities

Murphy, Niall D. Front Panel: Designing Software for Embedded User Interfaces. Lawrence, KS: R&D Books, 1998.

Purchase it online from Amazon. Purchase it online from Amazon UK.

[PanelSoft Home ]