All Projects → QuantumLeaps → Qpcpp

QuantumLeaps / Qpcpp

Licence: other
QP/C++ real-time embedded framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines

Projects that are alternatives of or similar to Qpcpp

Qpn
QP-nano real-time embedded framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
Stars: ✭ 107 (-13.71%)
Mutual labels:  state-machine, event-driven, fsm, framework, actor-model, actor, embedded-systems, rtos
Qpc
QP/C real-time embedded framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
Stars: ✭ 379 (+205.65%)
Mutual labels:  state-machine, event-driven, framework, actor-model, actor, arm, rtos
qp-arduino
QP real-time embedded frameworks/RTOS for Arduino (AVR and SAM)
Stars: ✭ 37 (-70.16%)
Mutual labels:  fsm, state-machine, event-driven, rtos
Prettyos
A Preemptive Hard Real Time kernel for embedded devices.
Stars: ✭ 36 (-70.97%)
Mutual labels:  arm, embedded-systems, rtos
Hfsm2
High-Performance Hierarchical Finite State Machine Framework
Stars: ✭ 134 (+8.06%)
Mutual labels:  state-machine, fsm, embedded-systems
qm
QM model-based design tool and code generator based on UML state machines
Stars: ✭ 54 (-56.45%)
Mutual labels:  fsm, state-machine, embedded-systems
DemOS
Free, simple, extremely lightweight, stackless, cooperative, co-routine system (OS) for microcontrollers
Stars: ✭ 18 (-85.48%)
Mutual labels:  arm, state-machine, rtos
Distortos
object-oriented C++ RTOS for microcontrollers
Stars: ✭ 354 (+185.48%)
Mutual labels:  framework, arm, rtos
Rt Thread
RT-Thread is an open source IoT operating system.
Stars: ✭ 6,466 (+5114.52%)
Mutual labels:  arm, embedded-systems, rtos
Mylinux
myLinux is a small UNIX like OS for embedded systems based on Westermo NetBox
Stars: ✭ 53 (-57.26%)
Mutual labels:  arm, embedded-systems
Apprun
AppRun is a JavaScript library for developing high-performance and reliable web applications using the elm inspired architecture, events and components.
Stars: ✭ 1,087 (+776.61%)
Mutual labels:  event-driven, framework
Jstate
Advanced state machines in Java.
Stars: ✭ 84 (-32.26%)
Mutual labels:  state-machine, fsm
Actor4j Core
Actor4j is an actor-oriented Java framework. Useful for building lightweighted microservices (these are the actors themselves or groups of them). Enhanced performance of message passing.
Stars: ✭ 48 (-61.29%)
Mutual labels:  actor-model, actor
Rt0s
Minimal Realtime OS for Cortex-M0
Stars: ✭ 41 (-66.94%)
Mutual labels:  arm, rtos
Qtools
QTools collection of open source tools for embedded systems development on Windows, Linux and MacOS
Stars: ✭ 64 (-48.39%)
Mutual labels:  arm, embedded-systems
Rails Disco
Distributed Rails with commands, events and projections.
Stars: ✭ 95 (-23.39%)
Mutual labels:  event-driven, framework
Erika3
ERIKA Enterprise v3 RTOS
Stars: ✭ 98 (-20.97%)
Mutual labels:  arm, rtos
Rust fsm macros
FSM in Rust's macros.
Stars: ✭ 20 (-83.87%)
Mutual labels:  state-machine, fsm
Finity
A finite state machine library for Node.js and the browser with a friendly configuration DSL.
Stars: ✭ 88 (-29.03%)
Mutual labels:  state-machine, fsm
Eve
An extensible event-driven application framework in haskell
Stars: ✭ 101 (-18.55%)
Mutual labels:  event-driven, framework

QP framework

NOTE: If your company has a policy forbidding open source in your product, all QP frameworks can be licensed commercially, in which case you don't use any open source license and you do not violate your policy.


What's New?

View QP/C++ Revision History at: https://www.state-machine.com/qpcpp/history.html


Documentation

The offline HTML documentation for this particular version of QP/C++ is located in the folder html/. To view the offline documentation, open the file html/index.html in your web browser.

The online HTML documention for the latest version of QP/C++ is located at: https://www.state-machine.com/qpcpp/


About QP/C++

QP/C++ (Quantum Platform in C++) is a lightweight, open source Real-Time Embedded Framework (RTEF) for building modern embedded software as systems of asynchronous, event-driven active objects (actors). The QP/C++ framework is a member of a larger QP family consisting of QP/C, QP/C++, and QP-nano frameworks, which are all strictly quality controlled, thoroughly documented, and commercially licensable.

Safer Model of Concurrency

The QP framework family is based on the Active Object (actor) design pattern, which inherently supports and automatically enforces the following best practices of concurrent programming:

  • Keep data isolated and bound to active objects' threads. Threads should hide (encapsulate) their private data and other resources, and not share them with the rest of the system.

  • Communicate among active object threads asynchronously via event objects. Using asynchronous events keeps the threads running truly independently, without blocking on each other.

  • Active object threads should spend their lifetime responding to incoming events, so their mainline should consist of an event-loop that handles events one at a time (to completion), thus avoiding any concurrency hazards within an active object thread itself.

This architecture is generally safer, more responsive and easier to understand and maintain than the shared-state concurrency of a conventional RTOS. It also provides higher level of abstraction and the correct abstractions to effectively apply modeling and code generation to deeply embedded real-time systems.

Hierarchical State Machines

The behavior of active objects is specified in QP/C++ by means of Hierarchical State Machines (UML statecharts). The framework supports manual coding of UML state machines in C as well as automatic code generation by means of the free QM modeling tool.

Built-in Real-Time Kernels

The QP/C++ framework can run on bare-metal single-chip microcontrollers, completely replacing a traditional RTOS. The framework contains a selection of built-in real-time kernels, such as the cooperative QV kernel, the preemptive non-blocking QK kernel, and the preemptive, blocking QXK kernel that provides all the features you might expect from a traditional RTOS. Native QP ports and ready-to-use examples are provided for major CPUs, such as ARM Cortex-M (M0/M0+/M3/M4/M7).

Traditional RTOS/OS

QP/C++ can also work with a traditional RTOS, such as ThreadX, FreeRTOS, embOS, uC/OS-II and TI-RTOS, as well as with (embedded) Linux (POSIX) and Windows.

Maturity

With 60,000 downloads a year, the QP family is the most popular such solution on the embedded software market. It provides a modern, reusable architecture for embedded applications, which combines the active-object model of concurrency with hierarchical state machines.


Getting Started with QP/C++

The QP/C++ Reference Manual provides instructions on how to download, install, and get started with QP/C++ quickly.

The AppNote: "Getting Started with QP/C++" contains also a tutorial, in which you build a simple "Blinky" application.


QP/C++ Licensing

QP/C++ is licensed under the increasingly popular dual licensing model, in which both the open source software distribution mechanism and traditional closed source software distribution models are combined.

NOTE: If your company has a policy forbidding open source in your product, all QP frameworks can be licensed commercially, in which case you don't use any open source license and you do not violate your policy.


QP/C++ Documentation

The QP/C++ Manual is located online at: https://www.state-machine.com/qpcpp


How to get help?

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].