-
Notifications
You must be signed in to change notification settings - Fork 163
/
Copy pathsporadic2.c
145 lines (129 loc) · 5.21 KB
/
sporadic2.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
//$file${.::sporadic2.c} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
//
// Model: real-time.qm
// File: ${.::sporadic2.c}
//
// This code has been generated by QM 7.0.1 <www.state-machine.com/qm>.
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
//
// Copyright (c) 2005 Quantum Leaps, LLC. All rights reserved.
//
// ____________________________________
// / /
// / GGGGGGG PPPPPPPP LL /
// / GG GG PP PP LL /
// / GG PP PP LL /
// / GG GGGGG PPPPPPPP LL /
// / GG GG PP LL /
// / GGGGGGG PP LLLLLLL /
// /___________________________________/
//
// SPDX-License-Identifier: GPL-3.0-or-later
//
// This generated code is open-source software licensed under the GNU
// General Public License (GPL) as published by the Free Software Foundation
// (see <https://www.gnu.org/licenses>).
//
// NOTE:
// The GPL does NOT permit the incorporation of this code into proprietary
// programs. Please contact Quantum Leaps for commercial licensing options,
// which expressly supersede the GPL and are designed explicitly for
// closed-source distribution.
//
// Quantum Leaps contact information:
// <www.state-machine.com/licensing>
// <info@state-machine.com>
//
//$endhead${.::sporadic2.c} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#include "qpc.h" // QP/C real-time event framework
#include "bsp.h" // Board Support Package
#include "app.h" // Application interface
//$declare${AOs::Sporadic2} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
//${AOs::Sporadic2} ..........................................................
typedef struct Sporadic2 {
// protected:
QMActive super;
// public:
} Sporadic2;
extern Sporadic2 Sporadic2_inst;
// protected:
static QState Sporadic2_initial(Sporadic2 * const me, void const * const par);
static QState Sporadic2_active (Sporadic2 * const me, QEvt const * const e);
static QMState const Sporadic2_active_s = {
QM_STATE_NULL, // superstate (top)
Q_STATE_CAST(&Sporadic2_active),
Q_ACTION_NULL, // no entry action
Q_ACTION_NULL, // no exit action
Q_ACTION_NULL // no initial tran.
};
//$enddecl${AOs::Sporadic2} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//Q_DEFINE_THIS_MODULE("sporadic2")
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
// Check for the minimum required QP version
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
#error qpc version 7.3.0 or higher required
#endif
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//$define${Shared::Sporadic2_ctor} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
//${Shared::Sporadic2_ctor} ..................................................
void Sporadic2_ctor(void) {
Sporadic2 * const me = &Sporadic2_inst;
QMActive_ctor(&me->super, Q_STATE_CAST(&Sporadic2_initial));
}
//$enddef${Shared::Sporadic2_ctor} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//$define${Shared::AO_Sporadic2} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
//${Shared::AO_Sporadic2} ....................................................
QActive * const AO_Sporadic2 = (QActive *)&Sporadic2_inst;
//$enddef${Shared::AO_Sporadic2} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//$define${AOs::Sporadic2} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
//${AOs::Sporadic2} ..........................................................
Sporadic2 Sporadic2_inst;
//${AOs::Sporadic2::SM} ......................................................
static QState Sporadic2_initial(Sporadic2 * const me, void const * const par) {
//${AOs::Sporadic2::SM::initial}
Q_UNUSED_PAR(par);
QS_FUN_DICTIONARY(&Sporadic2_active);
static QMTranActTable const tatbl_ = { // tran-action table
&Sporadic2_active_s, // target state
{
Q_ACTION_NULL // zero terminator
}
};
return QM_TRAN_INIT(&tatbl_);
}
//${AOs::Sporadic2::SM::active} ..............................................
//${AOs::Sporadic2::SM::active}
static QState Sporadic2_active(Sporadic2 * const me, QEvt const * const e) {
QState status_;
switch (e->sig) {
//${AOs::Sporadic2::SM::active::SPORADIC_A}
case SPORADIC_A_SIG: {
Q_UNUSED_PAR(me);
BSP_d5on();
QACTIVE_POST(AO_Sporadic3, e, me); // Sporadic2 --> Sporadic3
BSP_d5off();
status_ = QM_HANDLED();
break;
}
//${AOs::Sporadic2::SM::active::SPORADIC_B}
case SPORADIC_B_SIG: {
BSP_d5on();
QACTIVE_POST(AO_Periodic1, BSP_getEvtPeriodic1(1U), me);
BSP_d5off();
for (uint16_t i = Q_EVT_CAST(SporadicSpecEvt)->toggles;
i > 0U; --i)
{
BSP_d5on();
BSP_d5off();
}
status_ = QM_HANDLED();
break;
}
default: {
status_ = QM_SUPER();
break;
}
}
return status_;
}
//$enddef${AOs::Sporadic2} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^