Blinky Low-Power example
the sole instance of Blinky (singleton)
blink counter
: QActive(Q_STATE_CAST(&initial)),
m_timeEvt0(this, TIMEOUT0_SIG, 0U)
(void)e; // unused parameter
subscribe(BTN_PRESSED_SIG);
BSP_tickRate0_on();
m_count = 4U;
m_timeEvt0.armX(2U, 2U);
m_timeEvt0.disarm();
BSP_led0_on();
BSP_led0_off();
--m_count;
m_count > 0
the sole instance of Blinky1 (singleton)
blink counter
: QActive(Q_STATE_CAST(&initial)),
m_timeEvt1(this, TIMEOUT1_SIG, 1U)
(void)e; /* unused parameter */
subscribe(BTN_PRESSED_SIG);
BSP_tickRate1_on();
m_count = 13U;
m_timeEvt1.armX(2U, 2U);
m_timeEvt1.disarm();
BSP_led1_on();
BSP_led1_off();
--m_count;
m_count > 0
= &Blinky0::instance;
= &Blinky1::instance;
#ifndef LOW_POWER_HPP
#define LOW_POWER_HPP
enum BlinkySignals {
BTN_PRESSED_SIG = QP::Q_USER_SIG, // button SW1 was pressed
MAX_PUB_SIG, // the last published signal
TIMEOUT0_SIG, // timeout for Blinky0
TIMEOUT1_SIG, // timeout for Blinky1
MAX_SIG // the last signal
};
$declare${AOs::AO_Blinky0}
#ifdef QXK_HPP // QXK kernel?
extern QP::QXThread XT_Blinky1;
extern QP::QXSemaphore XSEM_sw1;
#else // QV or QK kernels
$declare${AOs::AO_Blinky1}
#endif
#endif // LOW_POWER_HPP
#include "qpcpp.hpp"
#include "low_power.hpp"
#include "bsp.hpp"
//Q_DEFINE_THIS_FILE
$declare${AOs::Blinky0}
$define${AOs::AO_Blinky0}
$define${AOs::Blinky0}
#include "qpcpp.hpp"
#include "low_power.hpp"
#include "bsp.hpp"
//Q_DEFINE_THIS_FILE
$declare${AOs::Blinky1}
$define${AOs::AO_Blinky1}
$define${AOs::Blinky1}