2023-01-19 21:14:02 -05:00
![QP Framework ](https://www.state-machine.com/img/qp_banner.jpg )
2022-04-19 19:23:30 -04:00
# What's New?
2023-01-19 21:14:02 -05:00
[![GitHub release (latest by date) ](https://img.shields.io/github/v/release/QuantumLeaps/qpcpp )](https://github.com/QuantumLeaps/qpcpp/releases/latest)
2022-04-19 19:23:30 -04:00
View QP/C++ Revision History at: https://www.state-machine.com/qpcpp/history.html
2022-10-28 20:18:39 -04:00
> **NOTE:** If you're interested in the latest QP/C++ version from GitHub,
2024-04-24 09:13:46 -04:00
it is recommended that you clone this repo like that:
2022-10-28 20:18:39 -04:00
```
git clone https://github.com/QuantumLeaps/qpcpp --recurse-submodules --depth 1
```
2024-04-24 09:13:46 -04:00
Alternatively, you can also download one of the stable
[QP/C++ Releases][QP-Rel].
2022-04-30 18:30:21 -04:00
2025-01-18 18:33:40 -05:00
# About QP/C++ Real-Time Embedded Framework
QP/C++ real-time embedded framework (RTEF) is a lightweight implementation of
the [Active Object (a.k.a. Actor) model of computation][AOmod] specifically
tailored for deeply embedded real-time 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][Lic]
| SafeQP/C | C (C11) |same as QP/C |All Safety Functions|Certification Kit| [commercial][Com]
| QP/C++ | C++ (C++17) |same as SafeQP/C++|Selected Assertions |Req/Arch/Design | [dual][Lic]
| SafeQP/C++| C++ (C++17) |same as QP/C++ |All Safety Functions|Certification Kit| [commercial][Com]
[The documentation ](#documentation ) of all QP editions includes the
[Requirements][SRS], [Architecture][SAS], and [Design Specifications][SDS],
which are the best source of information about the underlying concepts,
functionality, architecture, and design of the QP Frameworks and the QP
Applications based on the frameworks.
> **NOTE:** The **SafeQP** frameworks additionally contain **Safety Functions**
required to achieve the higher safety integrity levels and come with much more
extensive [Certification Kits][Cert].
2022-04-19 19:23:30 -04:00
2022-04-30 12:17:02 -04:00
# Getting Started with QP/C++
The most recommended way of obtaining QP/C++ is by downloading the
[QP-bundle ](https://www.state-machine.com/#Downloads ), which includes QP/C++
2024-04-24 09:13:46 -04:00
as well as the [QM modeling tool][QM] and the [QTools collection][QTools].
The main advantage of obtaining QP/C++ bundled together like that is
that you get all components, tools and examples ready to go.
2022-04-30 12:17:02 -04:00
### Getting Started Resources
2025-01-18 18:33:40 -05:00
- ["QP/C++ Tutorial"][Tut]
2022-05-09 14:52:11 -04:00
describes a series of progressively advanced QP/C++ example applications.
2022-04-30 12:17:02 -04:00
- [Video: "Getting Started with QP Real-Time Embedded Frameworks"][Video]
provides instructions on how to download, install, and get started with QP.
- [AppNote: "Getting Started with QP Real-Time Embedded Frameworks"][AN]
contains also a tutorial, in which you build a simple "Blinky" application.
2024-10-15 13:15:28 -04:00
# Licensing
The QP/C++ real-time embedded framework is licensed under the
2024-04-24 09:13:46 -04:00
[dual licensing model ](https://www.state-machine.com/licensing ), with
the following licensing options:
1. [Open-source licensing ](https://www.state-machine.com/licensing#Open ) under the
[GNU General Public License (GPLv3) ](https://www.gnu.org/licenses/gpl-3.0.en.html ).
2024-10-15 13:15:28 -04:00
> NOTE: The GPL requires that all modifications to the original code
2024-04-24 09:13:46 -04:00
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.
2. [Closed-source licensing ](https://www.state-machine.com/licensing#Closed ) under one of
[Quantum Leaps commercial licenses ](https://www.state-machine.com/licensing#Commercial ),
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.
2024-10-15 13:15:28 -04:00
## 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][Lic], 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][Cust] with
the active Support Term. Please contact [Quantum Leaps technical support][Sup]
to get the complete QP/C++ framework distribution.
2025-01-18 18:33:40 -05:00
> **NOTE:** To request **evaluation** of the complete QP/C++ framework, please contact
2024-10-15 13:15:28 -04:00
Quantum Leaps at: https://www.state-machine.com/contact
2022-04-30 12:17:02 -04:00
2025-01-18 18:33:40 -05:00
# Documentation
2024-01-17 07:50:09 -05:00
The online HTML documentation for the **latest** version of QP/C++ is located
2022-05-09 14:52:11 -04:00
at: https://www.state-machine.com/qpcpp
The offline HTML documentation for **this** particular version of QP/C++
2024-04-24 09:13:46 -04:00
is located in the sub-folder [html ](html ) (included in the [QP/C++ releases][QP-Rel]).
To view the offline documentation, open the file [html/index.html ](html/index.html )
in your web browser.
2022-04-19 19:23:30 -04:00
2022-04-30 18:30:21 -04:00
2022-04-19 19:23:30 -04:00
# How to Get Help?
- [Free Support Forum ](https://sourceforge.net/p/qpc/discussion/668726 )
- [Bug Reports ](https://sourceforge.net/p/qpc/bugs/ )
- [Feature Requests ](https://sourceforge.net/p/qpc/feature-requests/ )
- [Quantum Leaps website ](https://www.state-machine.com )
- [Quantum Leaps licensing ](https://www.state-machine.com/licensing )
- [info@state-machine.com ](mailto:info@state-machine.com )
2022-08-11 15:36:19 -04:00
# How to Help this Project?
If you like this project, please give it a star (in the upper-right corner of your browser window):
2024-10-15 13:15:28 -04:00
< p align = "center" >
< img src = "https://www.state-machine.com/img/github-star.jpg" / > < br >
< / p >
2022-08-11 15:36:19 -04:00
2024-04-24 09:13:46 -04:00
[RTEF]: < https: / / www . state-machine . com / rtef >
[QP]: < https: / / www . state-machine . com / products / qp >
[QP/C]: < https: / / github . com / QuantumLeaps / qpc >
[QP/C++]: < https: / / github . com / QuantumLeaps / qpcpp >
2025-01-18 18:33:40 -05:00
[Cert]: < https: // www . state-machine . com / products / qp #CERT >
2024-04-24 09:13:46 -04:00
[QM]: < https: / / github . com / QuantumLeaps / qm >
[QTools]: < https: / / github . com / QuantumLeaps / qtools >
[Lic]: < https: / / www . state-machine . com / licensing >
2025-01-18 18:33:40 -05:00
[Com]: < https: // www . state-machine . com / licensing #Commercial >
2024-04-24 09:13:46 -04:00
[Cust]: < https: / / www . state-machine . com / customers >
2024-10-15 13:15:28 -04:00
[Sup]: < mailto:support @state -machine.com >
2024-04-24 09:13:46 -04:00
[AN]: < https: / / www . state-machine . com / doc / AN_Getting_Started_with_QP . pdf >
[Video]: < https: / / youtu . be / O7ER6_VqIH0 >
2025-01-18 18:33:40 -05:00
[QS]: < https: / / www . state-machine . com / qpcpp / srs-qp_qs . html >
[QV]: < https: / / www . state-machine . com / qpcpp / srs-qp_qv . html >
[QK]: < https: / / www . state-machine . com / qpcpp / srs-qp_qk . html >
[QXK]: < https: / / www . state-machine . com / qpcpp / srs-qp_qxk . html >
[SRS]: < https: / / www . state-machine . com / qpcpp / srs-qp . html >
[SAS]: < https: / / www . state-machine . com / qpcpp / sas-qp . html >
[SDS]: < https: / / www . state-machine . com / qpcpp / sds-qp . html >
[Active]: < https: / / www . state-machine . com / qpcpp / srs-qp_ao . html >
[AOmod]: < https: // www . state-machine . com / qpcpp / srs-qp_ao . html #srs -qp_ao-model >
[Event]: < https: / / www . state-machine . com / qpcpp / srs-qp_evt . html >
[HSM]: < https: / / www . state-machine . com / qpcpp / srs-qp_sm . html >
[Tut]: < https: / / www . state-machine . com / qpcpp / gs_tut . html >
[QP-Rel]: < https: / / github . com / QuantumLeaps / qpcpp / releases >