This README provides a quick overview of QP for Arduino. Please refer to the companion webiste to this project at:
https://www.state-machine.com/arduino
The QP adaptation for Arduino is distributed in a single ZIP archive qp-_arduino-1.8.x.zip, where stands for version of the QP frameworks.
You need to unzip the qp-_arduino-1.8.x.zip archive into your Arduino-Sketchbook folder. To find out where your Sketchbook folder is, or to configure a different location for your Sketchbook folder, you need to open the Arduino IDE and select File | Preferences menu. The sketchbook location will be shown at the top of the Preferences dialog box. Once you identify the Sketchbook folder, you simply unzip the whole archive to your Sketchbook.
The archive qp-_arduino-1.8.x.zip contains two external libraries for Arduino:
qpcpp_sam -- QP/C++ framework for SAM-based Arduinos (ARM Cortex-M) qpn_avr -- QP-nano framework for AVR based Arduinos
Each QP library contains the examples sub-directory, which contans the QM model file and the generated code. The intended way of working with the examples is to use the QM modeling tool to modify the state diagrams and the code, and to use the Arduino IDE only to build and upload the code to the Arduino board(s).
NOTE: The preferences in the Arduino IDE should be set up to "Use external editor" so that the IDE will update the code each time it is re-generated by the QM modeling tool.
When you unzip the archive into your Sketchbook directory, the examples provided in each QP library shows up in the Arduino IDE under the menu:
File|Examples|Examples from Custom Libraries
The QP real-time embedded frameworks for Arduino are licensed under the modified GPLv3 license with the QP-Arduino Exception (see file QP-Arduino_GPL_Exception.txt in the root of the archive). Specifically, the Exception removes the requirement to expose your propriatory source code as long as you deploy it on an Arduino-Certified board.
The QM graphical modeling tool is freeware. The QM tool is provided under the terms of a simple End-User License Agreement (EULA).
Please refer to the companion webiste to this project at:
https://www.state-machine.com/arduino
Please submit any questions or comments to the free QP support forum at: https://sourceforge.net/p/qpc/discussion/668726