| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- <?xml version="1.0" encoding="UTF-8"?>
- <model version="5.1.4" links="1">
- <documentation>Simple "Blinky" model</documentation>
- <!--${qpc}-->
- <framework name="qpc"/>
- <!--${AOs}-->
- <package name="AOs" stereotype="0x02">
- <!--${AOs::Blinky}-->
- <class name="Blinky" superclass="qpc::QActive">
- <!--${AOs::Blinky::inst}-->
- <attribute name="inst" type="Blinky" visibility="0x00" properties="0x01"/>
- <!--${AOs::Blinky::timeEvt}-->
- <attribute name="timeEvt" type="QTimeEvt" visibility="0x02" properties="0x00"/>
- <!--${AOs::Blinky::SM}-->
- <statechart properties="0x03">
- <!--${AOs::Blinky::SM::initial}-->
- <initial target="../1">
- <action>(void)par; /* unused parameter */
- QTimeEvt_armX(&me->timeEvt,
- BSP_TICKS_PER_SEC/2, BSP_TICKS_PER_SEC/2);</action>
- <initial_glyph conn="2,3,5,1,20,4,-4">
- <action box="0,-2,6,2"/>
- </initial_glyph>
- </initial>
- <!--${AOs::Blinky::SM::off}-->
- <state name="off">
- <entry>BSP_ledOff();</entry>
- <!--${AOs::Blinky::SM::off::TIMEOUT}-->
- <tran trig="TIMEOUT" target="../../2">
- <tran_glyph conn="2,13,3,1,18,6,-2">
- <action box="0,-2,8,2"/>
- </tran_glyph>
- </tran>
- <state_glyph node="2,5,16,10">
- <entry box="1,2,12,4"/>
- </state_glyph>
- </state>
- <!--${AOs::Blinky::SM::on}-->
- <state name="on">
- <entry>BSP_ledOn();</entry>
- <!--${AOs::Blinky::SM::on::TIMEOUT}-->
- <tran trig="TIMEOUT" target="../../1">
- <tran_glyph conn="2,25,3,1,20,-15,-4">
- <action box="0,-2,8,2"/>
- </tran_glyph>
- </tran>
- <state_glyph node="2,17,16,10">
- <entry box="1,2,12,4"/>
- </state_glyph>
- </state>
- <state_diagram size="24,29"/>
- </statechart>
- </class>
- </package>
- <!--${.}-->
- <directory name=".">
- <!--${.::blinky.c}-->
- <file name="blinky.c">
- <text>#include <rtthread.h>
- #ifdef QPC_USING_BLINKY_EXAMPLE
- #ifdef RT_USING_FINSH
- #include <finsh.h>
- #include "qpc.h"
- Q_DEFINE_THIS_FILE
- enum { BSP_TICKS_PER_SEC = 100 };
- void BSP_ledOff(void) {
- rt_kprintf("LED OFF\n");
- }
- void BSP_ledOn(void) {
- rt_kprintf("LED ON\n");
- }
- enum BlinkySignals {
- TIMEOUT_SIG = Q_USER_SIG,
- MAX_SIG
- };
- //*============== ask QM to declare the Blinky class ================*/
- $declare ${AOs::Blinky}
- QActive * const AO_Blinky = &Blinky_inst.super;
- static void Blinky_ctor(void) {
- Blinky *me = &Blinky_inst;
- QActive_ctor(&me->super, Q_STATE_CAST(&Blinky_initial));
- QTimeEvt_ctorX(&me->timeEvt, &me->super, TIMEOUT_SIG, 0U);
- }
- int qpc_blinky_start(void) {
- /* statically allocate event queue buffer for the Blinky AO */
- static QEvt const *blinky_queueSto[10];
- static uint8_t blinky_stack[1024];
- QF_init(); /* initialize the framework */
- Blinky_ctor(); /* explicitly call the "constructor" */
- QACTIVE_START(AO_Blinky,
- 1U, /* priority */
- blinky_queueSto, Q_DIM(blinky_queueSto),
- (void *)blinky_stack, sizeof(blinky_stack), /* no stack */
- (void *)0); /* no initialization parameter */
- return QF_run(); /* run the QF application */
- }
- MSH_CMD_EXPORT(qpc_blinky_start, start qpc blinky example);
- /*================ ask QM to define the Blinky class ================*/
- $define ${AOs::Blinky}
- #endif /* RT_USING_FINSH */
- #endif /* QPC_USING_BLINKY_EXAMPLE */
- </text>
- </file>
- </directory>
- </model>
|