Mitch English, Product Development Team Lead at Inertia, dives into the QP framework for embedded systems. He discusses his experience implementing QP in a medical device project, emphasizing its efficiency in managing complex state machines. The conversation covers event communication strategies, revealing how a shift to a publish-subscribe pattern could enhance flexibility. Mitch also highlights the importance of starting simple and gradually increasing complexity, and he underscores the QP framework's advantages over traditional solutions in real-time applications.
44:11
forum Ask episode
web_stories AI Snips
view_agenda Chapters
menu_book Books
auto_awesome Transcript
info_circle Episode notes
question_answer ANECDOTE
Blood Analyzer Project
Mitch and Jeff used QP on a blood analyzer with a cartridge subsystem.
This subsystem managed complex sequences like cinching and testing, abstracting details from the main state machine.
insights INSIGHT
Hierarchical State Machine Benefits
Hierarchical state machines simplify handling similar behaviors across multiple states.
A super-state handles the shared behavior, reducing code duplication.
insights INSIGHT
QP Framework Fundamentals
QP is a framework, not just a library, enforcing a specific event processing architecture.
It uses a kernel to centralize and dispatch events to active objects (state machine + event queue).
Get the Snipd Podcast app to discover more snips from this episode
The episode features a discussion with Mitch English, a product development team lead at Inertia, about using the QP (Quantum Platform) framework for embedded systems development. Mitch and Jeff recently collaborated on a medical device project where they successfully implemented QP. The framework, created by Miro Samek, implements the actor model with active objects running in their own threads and communicating via messages. This approach helps avoid common concurrency issues found in traditional RTOS implementations.
The discussion covers how QP's hierarchical state machine framework makes it easier to manage complex state transitions and system behaviors. They share their experience using QP on a blood analyzer project, discussing how they structured the code with different layers of abstraction and maintained multiple test builds throughout development. The team found that QP's architecture helped make the system's complexity more manageable and testable.
A key learning they shared was about event communication - while they initially used direct posting between active objects, they later realized that using the publish-subscribe pattern more extensively would have made testing easier and the system more flexible. They recommend starting with QP's simple examples and gradually building up complexity rather than trying to implement complex examples right away.
Key Timestamps: 00:00:00 - Introduction and background 00:03:00 - Overview of QP framework and actor model 00:06:30 - Discussion of hierarchical state machines 00:19:30 - Project architecture and implementation approach 00:27:00 - Testing strategies and development process 00:30:00 - Team structure and collaboration 00:35:00 - Hardware/software integration 00:39:00 - Advice for getting started with QP 00:41:50 - About Inertia and contact information