English | MP4 | AVC 1920×1080 | AAC 44KHz 2ch | 97 lectures (12h 14m) | 8.73 GB
Learn to implement event-driven embedded applications using simple and hierarchical UML state machine approach
Learn the fundamentals of simple and hierarchical UML state machines in easy steps
The course emphasizes project-based learning, learning by doing.
The goal of this course is to introduce an event-driven programming paradigm using simple and hierarchical state machines.
After going through this course, you will be trained to apply the state machine approach to solve your complex embedded systems projects.
Some of the highlights of this course are as below
you will learn,
1) UML(Unified Modeling Language) state machine semantics like simple/composite states, events, signals, transitions, entry/exit actions, guards, pseudo-states, etc
2) Drawing UML state machines using graphical modeling tools such as Astah and QM™ modeling tool
3) Implementing embedded applications using Hierarchical state machines and Active objects design approach
4) Using QP™ real-time embedded framework and QP™-Nano Arduino library in your embedded projects
5) Active objects
6) Hands-on event-driven project implementation and testing on Arduino UNO board
What you’ll learn
- Event driven programming paradigm
- Flat and hierarchical state machines (Simple FSMs and H-FSMs)
- UML state machine semantics and state chart drawing
- Converting UML statecharts into executable C/C++ code
- Action objects design approach
- Different state machine implementation strategies
- Nested switch implementation of state machines
- State table approach to implementing the state machines
- State-Handler approach to implementing the state machines
- Usage of function pointers in ‘C’
- Hands-on projects using simple FSM and HSMs
- Step by step code development
- Graphically modeling event-driven embedded application using UML statecharts modeler tools
- Working with QP™ embedded real-time framework and QM™ tool of Quantum Leaps, LLC to draw and implement the HSMs
Table of Contents
Introduction
1 About the instructor
2 Important Note
3 Course Repository and Slides
4 Introduction to Finite State Machine
5 Mealy and Moore machine
6 Mealy and Moore State Transition Table
7 Exercise-0001 LED control Mealy machine example
8 Exercise-001 LED control Mealy machine implementation part 1
9 Exercise-001 LED control Mealy machine implementation part 2
10 Exercise-002 LED control Moore machine implementation
UML Flat state machine and Implementation
11 Exercise-003 Productivity Timer demo
12 Astah UML download
13 UML Simple and Composite states
14 UML state machine internal state activitiesentry – exit – do
15 UML state machine types of Transitions
16 Events and Signals
17 Exercise-003 States and Initial Psuedostates
18 Exercise-003 Defining states Entry and Exit actions
19 Exercise-003 Drawing state transitions
20 Exercise-003 Implementing TIMESET state
21 Exercise-003 Implementing PAUSE state
22 Exercise-003 Implementing STAT state
23 Installing Microsoft VS Code and PlatformIO extension
Flat state machine exercise implementation
24 Exercise-003 Create new project
25 Exercise-003 Data structure explanation
26 Exercise-003 Defining initial transition function
27 Different approach to implement state machine
Nested switch technique to implement State Machine
28 Exercise-003 Nested switch implementation of an FSM part 1
29 Exercise-003 Nested switch implementation of an FSM part 2
30 Exercise-003 Hardware connections
31 Exercise-003 Implementing event producer code
32 Exercise-003 Dispatching time tick event
33 Button bouncing explanation
34 Exercise-003 Button software de-bouncing implementation
35 Adding arduino Library to project in platformIO
36 Exercise-003 Implementing LCD functions Part 1
37 Exercise-003 Implementing LCD functions Part 2
38 Exercise-003 Helper function implementation
39 Exercise-003 Implementing initial transition actions
40 Exercise-003 Testing on hardware
Function pointers in C
41 Function pointers in C
42 Passing function pointers as function arguments
State handler technique to implement State Machine
43 Exercise-004 Implementation using state handler approach
State table technique to implement State Machine
44 Exercise-004 State table approach for implementation of an FSM part-1
45 Exercise-004 State table approach for implementation of an FSM part-2
46 D arrays in C
47 Exercise-004 State table approach for implementation of an FSM part-3
48 Exercise-004 State table approach for implementation of an FSM part-4
UML Hierarchical State Machines and QPtm framework
49 Hierarchical State MachinesHSMs
50 Run-to-completion and QPtm framework
51 Download QPtm Nano Arduino library
52 HSM transition execution sequence testing
UML HSM transition execution sequences
53 Exercise-006 Test HSM transition execution sequence on Arduino
54 Adding files in QM tool
55 Adding codes to files using QM tool
56 Adding a class attribute
57 Adding class operation
58 Adding assertion failure callback
59 QHSMINIT and QHSMDISPATCH APIs
60 Exercise-006 Testing
61 Exercise-006 Testing History state
UML HSM exercise using QM tool
62 Exercise-007 Clock Alarm Introduction
63 Exercise-007 Clock Alarm demo
64 Exercise-007 States Signals and Data structure used
65 Exercise-007 Drawing an HSM
66 Exercise-007 Adding main application object and constructor
67 Atmega328p Timer peripheral explanation
68 Atmega328p Timer registers and setup code
69 Exercise-007 Adding class operations
70 Exercise-007 Defining initial transition actions
71 Exercise-007 Coding for the TICKING state
72 Exercise-007 Adding free operations
73 Exercise-007 Reading currtime through class operation
74 Exercise-007 Handling TICK event in TICKING state and testing
75 Exercise-007 Drawing CLOCKSETTING state
76 Exercise-007 Implementing CLOCKSETTING state part-1
77 Exercise-007 Implementing CLOCKSETTING state part-2
78 Exercise-007 Implementing CLOCKSETTING state part-3
79 Exercise-007 Implementing CLOCKSETTING state part-4
80 Feedback
81 Exercise-007 Updating real time
82 Exercise-007 ALARMSETTING state
83 Exercise-007 Implementing ALARMSETTING state
84 Exercise-007 Implementing ALARMNOTIFY state
Active Objects
85 Active Objects
86 Orthogonal state pattern
87 Exercise-008 Implementation part 1
88 Exercise-008 Implementation part 2
89 Exercise-008 Implementation part 3
90 Exercise-008 Implementation part 4
91 Exercise-008 Implementation part 5
92 Feedback
93 Exercise-008 Implementation part 6
94 Exercise-008 Implementation part 7
95 Exercise-008 Implementation part 8
96 Exercise-008 Implementation part 9
97 BONUS LECTURE
Resolve the captcha to access the links!