技术文章大纲:QPC学习笔记(三):QPCdemo解析
QPC框架示例:Binky_Demo简介
Binky_Demo是一个基于QPC(Quantum Platform for Control)状态机实现的LED闪烁演示示例。在这个示例中,我们运用了基础的QPC状态机编程模式,以及QPC时间事件。通过Binky_Demo,人们可以清晰地了解到QPC状态机程序的结构组成及其工作原理。通常,这类程序包含几个关键部分,共同协作以实现特定的功能。
QPC binky demo源码如下:
#include "qpc.h" // QP/C real-time event framework
#include "blinky.h" // Blinky Application interface
#include "bsp.h" // Board Support Package
typedef struct {
QActive super;
QTimeEvt timeEvt;
} Blinky;
extern Blinky Blinky_inst; // Blinky instance declaration
static QState Blinky_initial(Blinky * const me, void const * const par);
static QState Blinky_off(Blinky * const me, QEvt const * const e);
static QState Blinky_on(Blinky * const me, QEvt const * const e);
//----------------------------------------------------------------------------
Blinky Blinky_inst; // the Blinky AO instance definition
QActive * const AO_Blinky = &Blinky_inst.super; // global opaque pointer
//............................................................................
// Blinky "constructor"
void Blinky_ctor(void) {
Blinky * const me = &Blinky_inst;
QActive_ctor(&me->super, Q_STATE_CAST(&Blinky_initial));