Simple Blinky Application"Fly 'n' Shoot" Game
The Dining Philosophers Problem (DPP) example is an intermediate-level application with multiple active objects. It illustrates the following QP features:
- multiple active objects, including an array of active objects;
- designing the simple state machines in the QM tool and generating the code automatically (can also be done manually);
- using multiple periodic time events;
- using mutable events with parameters.
- direct event posting to active objects.
- publish-subscribe event delivery;
- initializing the QP framework;
- starting multiple active objects; and
- transferring control to QP to run the application.
Built-in kernels:
- non-preemptive QV kernel;
- preemptive, non-blocking QK kernel;
- dual-mode, blocking/non-blocking QXK kernel (for ARM Cortex-M);
Build configurations:
- debug configuration (default)
- release configuration
- spy (software tracing) configuration
The DPP example is provided for most supported boards as well as in the command-line version (on the host). Please look for examples named dpp_<board-name> in the qpcpp/examples/examples directory (e.g., @qpx/examples/arm-cm/dpp_ek-tm4c123gxl for the EK-TM4C123GXL board (TivaC LaunchPad)).
The Dining Philosophers Problem (DPP) example is described in the Application Note: Dining Philosophers Problem (DPP) Example↑.
Application Note: Dining Philosophers Problem (DPP) Example- Note
- There is also a DPP variant that implements the "Philosophers" as passive "Orthogonal Components" of the "Table" active object. That DPP version is located in @qpx/examples/examples/workstation/dpp-comp/
Simple Blinky Application"Fly 'n' Shoot" Game