Practical UML statecharts in C/C++ : event-driven programming for embedded systems /: event-driven programming for embedded systems. (2008)
- Record Type:
- Book
- Title:
- Practical UML statecharts in C/C++ : event-driven programming for embedded systems /: event-driven programming for embedded systems. (2008)
- Main Title:
- Practical UML statecharts in C/C++ : event-driven programming for embedded systems
- Further Information:
- Note: Miro Samek.
- Other Names:
- Samek, Miro
- Contents:
- Preface PART I STATECHARTS Chapter 1 Whirlwind Tour of Programming with Statecharts1.1 Why Bother?1.2 The Traditional Event-Action Paradigm1.3 State Machines ? A Better Way of Programming1.3.1 The Time Bomb Example1.3.2 The Calculator Example1.5 Object-Oriented Analogy1.6 The Event-driven Framework1.6 SummaryChapter 2 A Crash Course in Statecharts 2.1 The Essence of Finite State Machines2.2 The Essence of UML Statecharts2.3 Examples of State Models2.4 SummaryChapter 3 Standard State Machine Implementations3.1 State Machine Interface3.2 Nested switch Statement3.3 State Table3.4 State Design Pattern3.5 Optimal FSM Implementation3.6 State Machines and C++ Exception Handling 3.7 Role of Pointer-to-Member Functions3.8 Implementing Guards, Junctions, and Choice Points3.9 Implementing Entry and Exit Actions3.10 Dealing with State Hierarchy3.11 SummaryChapter 4 QEP: A Minimal Hierarchical Event Processor4.1 General Structure of the QEP Event Processor4.2 An Annotated Example (QHsm)4.3 QEP Structure4.3.1 QEP Source Code Structure4.3.2 Internal Representation of a State Machine4.3.3 Initialization of a State Machine4.3.4 Dispatching Events to a FSM4.3.5 Executing a Transition in a FSM4.3.6 Dispatching Events to a HSM4.3.7 Executing a Transition in a HSM4.3.8 Static Transition Optimization in a HSM4.4 Porting and Configuring QEP4.5 Caveats4.6 SummaryChapter 5 Implementing State Machines with QEP5.1 Implementing a HSM with QEP<BR id="CRLF">5.1.1 Step 1: Enumerating Signals5.1.2 Step 2:Preface PART I STATECHARTS Chapter 1 Whirlwind Tour of Programming with Statecharts1.1 Why Bother?1.2 The Traditional Event-Action Paradigm1.3 State Machines ? A Better Way of Programming1.3.1 The Time Bomb Example1.3.2 The Calculator Example1.5 Object-Oriented Analogy1.6 The Event-driven Framework1.6 SummaryChapter 2 A Crash Course in Statecharts 2.1 The Essence of Finite State Machines2.2 The Essence of UML Statecharts2.3 Examples of State Models2.4 SummaryChapter 3 Standard State Machine Implementations3.1 State Machine Interface3.2 Nested switch Statement3.3 State Table3.4 State Design Pattern3.5 Optimal FSM Implementation3.6 State Machines and C++ Exception Handling 3.7 Role of Pointer-to-Member Functions3.8 Implementing Guards, Junctions, and Choice Points3.9 Implementing Entry and Exit Actions3.10 Dealing with State Hierarchy3.11 SummaryChapter 4 QEP: A Minimal Hierarchical Event Processor4.1 General Structure of the QEP Event Processor4.2 An Annotated Example (QHsm)4.3 QEP Structure4.3.1 QEP Source Code Structure4.3.2 Internal Representation of a State Machine4.3.3 Initialization of a State Machine4.3.4 Dispatching Events to a FSM4.3.5 Executing a Transition in a FSM4.3.6 Dispatching Events to a HSM4.3.7 Executing a Transition in a HSM4.3.8 Static Transition Optimization in a HSM4.4 Porting and Configuring QEP4.5 Caveats4.6 SummaryChapter 5 Implementing State Machines with QEP5.1 Implementing a HSM with QEP<BR id="CRLF">5.1.1 Step 1: Enumerating Signals5.1.2 Step 2: Defining Events5.1.3 Step 3: Defining the QCalc State Machine5.1.4 Step 4: Declaring the QCalc States5.1.5 Step 5: Initializing the HSM5.1.6 Step 6: Implementing the State Handler Functions5.2 Implementing a FSM with QEP2.5 Pitfalls to Avoid While Coding State Machines with QEP2.5.1 Incomplete State Handlers2-372.5.2 Confusing Statecharts with Flowcharts2-382.5.3 Ill-Formed State Handlers2-392.5.4 Suboptimal Signal Granularity2-422.5.5 Violating the Run To Completion Semantics2-424.6 SummaryChapter 6 State Patterns6.1 Ultimate Hook6.2 Reminder6.3 Deferred Event6.4 Orthogonal Component6.5 Transition to History6.6 Summary<BR id="CRLF">PART II EVENT-DRIVEN FRAMEWORKChapter 7 QF: A Minimal Event-Driven Embedded Framework7.1 Conventional Approach to Multithreading7.2 Computing Model of QF7.3 Annotated Example7.3.1 The ?Airplane in the Tunnel? Game7.3.2 The Active Object Design7.3.3 The Implementation7.3.4 The Port for ARM Cortex-M37.3.5 Testing7.4 SummaryChapter 8 Design of QF8.1 Handling Errors and Exceptional Conditions8.2 Memory Management8.3 Mutual Exclusion and Blocking8.4 Active Objects8.5 Event Management in QF8.6 Event Delivery Mechanisms in QF8.9 Deferring and Recalling Events in QF8.7 Time Events8.8 SummaryChapter 9 Implementation of QF9.1 Code Organization9.2 Critical Section in QF9.3 General QF Policies Enforced by Assertions9.4 Active Object class9.5 Native QF Event Queue9.6 Native QF Memory Pool9.7 Native QF Priority Set9.8 Native QF SchedulerChapter 10 Porting QF10.1 QF Porting Guide10.2 QF on Bare-Metal Targets (the Vanilla Port)10.3 Using QF with a preemptive Real-Time Kernel (µC/OS-II)10.4 QF port to a POSIX-Compliant OS (Linux)10.5 SummaryChapter 11 Conclusion11.2 Rules for Developing Event-Driven Embedded Applications11.3 Heuristics11.4 Sizing Event Queues and Event Pools11.5 System Integration11.6 Summary of Key Elements11.7 An InvitationAppendix A QK: A Single-Stack Preemptive KernelA.2 Run-to-Completion ProcessingA.3 Synchronous and Asynchronous PreemptionsA.4 Stack UtilizationA.4 Comparison with a Traditional RTOSA.5 SummaryAppendix B QS: Software Tracing for Event Driven SystemsB.1 Software Tracing ConceptsB.2 Structure of QS Trace RecordsB.3 QS FiltersB.4 QS Data ProtocolB.5 QS Trace BufferB.6 Configuring and Porting QSB.7 SummaryAppendix C Inheriting Entire State Models in C++C.1 Statechart Refinement Example in C++C.3 CaveatsC.4 SummaryAppendix D Guide to Notation D.1 Class DiagramsD.2 Statechart DiagramsD.3 Sequence DiagramsD.4 Timing DiagramsAppendix E CD-ROME.1 Source Code StructureE.2 InstallationE.3 LicensingE.4 Answers to the ExercisesE.5 QP Reference Guide (Doxygen)E.6 Resources BibliographyIndex … (more)
- Edition:
- 2nd ed
- Publisher Details:
- Place of publication not identified : CRC Press
- Publication Date:
- 2008
- Extent:
- 1 online resource (728 pages)
- Subjects:
- 005.117
Computer software -- Development
Formal methods (Computer science)
Statecharts (Computer science)
UML (Computer science)
Object-oriented programming (Computer science) - Languages:
- English
- ISBNs:
- 9781482249262
- Related ISBNs:
- 148224926X
- Access Rights:
- Legal Deposit; Only available on premises controlled by the deposit library and to one user at any one time; The Legal Deposit Libraries (Non-Print Works) Regulations (UK).
- Access Usage:
- Restricted: Printing from this resource is governed by The Legal Deposit Libraries (Non-Print Works) Regulations (UK) and UK copyright law currently in force.
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library HMNTS - ELD.DS.313793
- Ingest File:
- 01_244.xml