Skip to content

QP/C Real-Time Event Framework/RTOS is a lightweight implementation of the asynchronous, event-driven Active Object (Actor) model and Hierarchical State Machines.

Notifications You must be signed in to change notification settings

QuantumLeaps/qpc

Repository files navigation

QP Framework

What's New?

GitHub release (latest by date)

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

NOTE: If you're interested in the latest QP/C version from GitHub, it is recommended that you clone this repo like that:

git clone https://github.com/QuantumLeaps/qpc --recurse-submodules --depth 1

Alternatively, you can also download one of the stable QP/C Releases.

About QP/C Real-Time Event Framework

QP/C real-time event framework (RTEF) is a lightweight implementation of the asynchronous, event-driven Active Object (a.k.a. Actor) model of computation specifically designed for real-time embedded systems, such as microcontrollers (MCUs). QP/C is both a software infrastructure for building applications consisting of Active Objects (Actors) and a runtime environment for executing the Active Objects in a deterministic, real-time fashion. Additionally, QP/C Framework supports Hierarchical State Machines with which to specify the behavior of Active Objects [UML 2.5], [Sutter:10], [ROOM:94]. The QP/C Framework can be viewed as a modern, asynchronous, and truly event driven real-time operating system (RTOS).

QP Framework Family

QP/C framework is part of the larger QP family consisting of the following QP editions:

QP Edition Language API Safety Functions Certification Artifacts Licensing
QP/C C (C11) same as SafeQP/C Selected Assertions Req/Arch/Design dual
QP/C++ C++ (C++17) same as SafeQP/C++ Selected Assertions Req/Arch/Design dual
SafeQP/C C (C11) same as QP/C All Safety Functions Extensive
Certification Kit
commercial
SafeQP/C++ C++ (C++17) same as QP/C++ All Safety Functions Extensive
Certification Kit
commercial

The SafeQP/C and SafeQP/C++ frameworks were originally derived from QP/C and QP/C++, respectively, but were extensively reengineered for the safety market using compliant Software Safety Lifecycle (SSL). In this process, the QP framework functional model has been subjected to a full Hazard and Risk Analysis, which identified all areas of weakness within the functional model and API. These findings led to creation of Safety Requirements and risk mitigation by Safety Functions, which were subsequently implemented, verified, and validated. The SafeQP frameworks are accompanied by the "SafeQP Certification Kits", which provide developers with ready-to-use artifacts, enabling them to save time, mitigate risk, and reduce costs during application certification for safety-critical devices in the industrial, medical, aerospace, and automotive industries. Please contact Quantum Leaps for more information about the SafeQP frameworks and the "Certification Kits".

NOTE: The SafeQP/C edition remain fully API- and functionally compatible with the corresponding standard QP/C framework. This ensures existing QP/C Applications can transition seamlessly to SafeQP/C without requiring any modifications. SafeQP/C edition retain QP/C Frameworks' hallmark features, including a small memory footprint, excellent efficiency, and hard real-time functionality.

Getting Started with QP/C

The most recommended way of obtaining QP/C is by downloading the QP-bundle, which includes QP/C as well as the QM modeling tool and the QTools collection. The main advantage of obtaining QP/C bundled together like that is that you get all components, tools and examples ready to go.

Getting Started Resources

Licensing

The QP/C real-time event framework is licensed under the dual licensing model, with the following licensing options:

  1. Open-source licensing under the GNU General Public License (GPLv3).

NOTE: The GPL requires that all modifications to the original code as well as your application code (Derivative Works as defined in the Copyright Law) must also be released under the terms of the GPL open source license.

  1. Closed-source licensing under one of Quantum Leaps commercial licenses, which are specifically designed for users interested in retaining the proprietary status of their code.

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.

NOTE: The SafeQP frameworks and the accompanying "Certification Kits" are licensed commercially only.

Files Removed from the QP/C Open Source GPL Distribution

Due to the widespread non-compliance with the GPL, as well as infringement on the dual-licensing model of QP frameworks, the following QP/C components have been removed from the open-source GPL distribution:

  • QS target-resident software tracing component
  • QXK dual-mode kernel

NOTE: These components are available to the commercial licensees with the active Support Term. Please contact Quantum Leaps technical support to get the complete QP/C framework distribution.

NOTE: To request evaluation of the complete QP/C framework, please contact Quantum Leaps at: https://www.state-machine.com/contact

Documentation

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

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

Contact Information

How to Help this Project?

If you like this project, please give it a star (in the upper-right corner of your browser window):