QP is an event-driven, RTOS-like, active object framework for microcontrollers, such as mbed. The QP framework provides thread-safe execution of active objects (concurrent state machines) and support both manual and automatic coding of UML statecharts in readable, production-quality C or C++. Automatic code generation of QP code is supported by the free QM modeling tool.

Dependents:   qp_hangman qp_dpp qp_blinky

QP/C++ (Quantum Platform in C++) is a lightweight, open source active object (actor) framework for building responsive and modular real-time embedded applications as systems of asynchronous event-driven active objects (actors). The QP/C++ framework is a member of a larger family consisting of QP/C++, QP/C, and QP-nano frameworks, which are all strictly quality controlled, thoroughly documented, and available under GPLv3 with a special Exception for mbed (see http://www.state-machine.com/licensing/QP-mbed_GPL_Exception.txt).

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 (http://www.state-machine.com/qm).

Please see the "QP/C++ Reference Manual" (http://www.state-machine.com/qpcpp) for more information.

Revision:
1:379cf3202ba2
Parent:
0:064c79e7311a
Child:
2:5c8be45330ab
--- a/qp_port.h	Wed Feb 09 14:46:03 2011 +0000
+++ b/qp_port.h	Wed Feb 09 23:41:29 2011 +0000
@@ -1,7 +1,7 @@
 //////////////////////////////////////////////////////////////////////////////
 // Product: QP/C++ port to ARM Cortex, selectable Vanilla/QK, mbed compiler
 // Last Updated for QP ver: 4.1.06 (modified to fit in one file)
-// Date of the Last Update: Feb 08, 2011
+// Date of the Last Update: Feb 09, 2011
 //
 //                    Q u a n t u m     L e a P s
 //                    ---------------------------
@@ -28,17 +28,7 @@
 #ifndef qp_port_h
 #define qp_port_h
 
-// enable the Q-SPY software tracing instrumentation
-#define Q_SPY
-
-// enable preemptive QK kernel
-#define QK_PREEMPTIVE
-
-// The maximum number of active objects in the application (could be up to 63)
-#define QF_MAX_ACTIVE      16
-
-// The signal size (1, 2, 4 bytes)
-#define Q_SIGNAL_SIZE      2
+#include "qp_config.h"    // QP configuration defined at the application level
 
 //............................................................................
                                              // QF critical section entry/exit