1
- // . $file${.::blinky_bsp-esp32.ino} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
1
+ // $file${.::main.cpp} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
2
2
//
3
3
// Model: blinky_bsp-esp32.qm
4
- // File: ${.::blinky_bsp-esp32.ino }
4
+ // File: ${.::main.cpp }
5
5
//
6
- // This code has been generated by QM 5.1 .1 <www.state-machine.com/qm/ >.
6
+ // This code has been generated by QM 7.0 .1 <www.state-machine.com/qm>.
7
7
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
8
8
//
9
- // This program is open source software: you can redistribute it and/or
10
- // modify it under the terms of the GNU General Public License as published
11
- // by the Free Software Foundation.
9
+ // Copyright (c) 2005 Quantum Leaps, LLC. All rights reserved.
12
10
//
13
- // This program is distributed in the hope that it will be useful, but
14
- // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15
- // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16
- // for more details.
11
+ // ____________________________________
12
+ // / /
13
+ // / GGGGGGG PPPPPPPP LL /
14
+ // / GG GG PP PP LL /
15
+ // / GG PP PP LL /
16
+ // / GG GGGGG PPPPPPPP LL /
17
+ // / GG GG PP LL /
18
+ // / GGGGGGG PP LLLLLLL /
19
+ // /___________________________________/
17
20
//
18
- // .$endhead${.::blinky_bsp-esp32.ino} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
21
+ // SPDX-License-Identifier: GPL-3.0-or-later
22
+ //
23
+ // This generated code is open-source software licensed under the GNU
24
+ // General Public License (GPL) as published by the Free Software Foundation
25
+ // (see <https://www.gnu.org/licenses>).
26
+ //
27
+ // NOTE:
28
+ // The GPL does NOT permit the incorporation of this code into proprietary
29
+ // programs. Please contact Quantum Leaps for commercial licensing options,
30
+ // which expressly supersede the GPL and are designed explicitly for
31
+ // closed-source distribution.
32
+ //
33
+ // Quantum Leaps contact information:
34
+ // <www.state-machine.com/licensing>
35
+
36
+ //
37
+ // $endhead${.::main.cpp} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
19
38
#include " qpcpp.hpp" // QP-C++ framework
20
39
#include " blinky.hpp" // Blinky application interface
21
40
#include " bsp.hpp" // Board Support Package (BSP)
22
41
23
42
using namespace QP ;
24
- static constexpr unsigned stack_size = 1000 ;
25
-
43
+ static constexpr unsigned stack_size = 1700 ;
26
44
// ............................................................................
27
45
void setup () {
28
46
QF::init (); // initialize the framework
29
47
BSP::init (); // initialize the BSP
30
48
49
+ // initialize event pools
50
+ static QF_MPOOL_EL (QP::QEvt) smlPoolSto[20 ];
51
+ QP::QF::poolInit (smlPoolSto, sizeof (smlPoolSto), sizeof (smlPoolSto[0 ]));
52
+
53
+ // initialize publish-subscribe
54
+ static QP::QSubscrList subscrSto[10 ];
55
+ QP::QActive::psInit (subscrSto, Q_DIM (subscrSto));
56
+
31
57
// statically allocate event queues for the AOs and start them...
32
- static QEvt const *blinky_queueSto[30 ];
58
+ static QP::QEvtPtr blinky_queueSto[30 ];
59
+ static StackType_t stack[stack_size];
33
60
AO_Blinky->start (1U , // priority
34
- blinky_queueSto, // queu storage for evets
61
+ blinky_queueSto, // queue storage for events
35
62
Q_DIM (blinky_queueSto), // len of queue
36
- nullptr , // No static stack
37
- stack_size);
38
- QF::run (); // Normally QF Run is located in a loop
63
+ stack,
64
+ sizeof (stack));
65
+
66
+ QF::run (); // Normally QF Run is located in a loop
39
67
// but since using Arduino SDK not necessary
40
68
// Called once to call QF::OnStartup and produce the QS trace
41
69
}
@@ -46,8 +74,9 @@ void loop() {
46
74
47
75
// ============================================================================
48
76
// generate declarations and definitions of all AO classes (state machines)...
49
- // .$declare${AOs::Blinky} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
50
- // .${AOs::Blinky} ............................................................
77
+ // $declare${AOs::Blinky} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
78
+
79
+ // ${AOs::Blinky} .............................................................
51
80
class Blinky : public QP ::QActive {
52
81
private:
53
82
QP::QTimeEvt m_timeEvt;
@@ -62,26 +91,28 @@ protected:
62
91
Q_STATE_DECL (initial);
63
92
Q_STATE_DECL (off);
64
93
Q_STATE_DECL (on);
65
- };
66
- // . $enddecl${AOs::Blinky} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
67
- // . $skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
68
- // . Check for the minimum required QP version
69
- #if (QP_VERSION < 690U ) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U ))
70
- #error qpcpp version 6.9 .0 or higher required
94
+ }; // class Blinky
95
+ // $enddecl${AOs::Blinky} ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
96
+ // $skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
97
+ // Check for the minimum required QP version
98
+ #if (QP_VERSION < 730U ) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U ))
99
+ #error qpcpp version 7.3 .0 or higher required
71
100
#endif
72
- // .$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
73
- // .$define${AOs::Blinky} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
74
- // .${AOs::Blinky} ............................................................
101
+ // $endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
102
+ // $define${AOs::Blinky} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
103
+
104
+ // ${AOs::Blinky} .............................................................
75
105
Blinky Blinky::instance;
76
- // .${AOs::Blinky::Blinky} ....................................................
106
+
107
+ // ${AOs::Blinky::Blinky} .....................................................
77
108
Blinky::Blinky ()
78
109
: QActive(Q_STATE_CAST(&Blinky::initial)),
79
110
m_timeEvt(this , TIMEOUT_SIG, 0U )
80
111
{}
81
112
82
- // . ${AOs::Blinky::SM} ........................................................
113
+ // ${AOs::Blinky::SM} . ........................................................
83
114
Q_STATE_DEF (Blinky, initial) {
84
- // . ${AOs::Blinky::SM::initial}
115
+ // ${AOs::Blinky::SM::initial}
85
116
(void )e; // unused parameter
86
117
m_timeEvt.armX (BSP::TICKS_PER_SEC/2 , BSP::TICKS_PER_SEC/2 );
87
118
@@ -93,17 +124,18 @@ Q_STATE_DEF(Blinky, initial) {
93
124
94
125
return tran (&off);
95
126
}
96
- // .${AOs::Blinky::SM::off} ...................................................
127
+
128
+ // ${AOs::Blinky::SM::off} ....................................................
97
129
Q_STATE_DEF (Blinky, off) {
98
130
QP::QState status_;
99
131
switch (e->sig ) {
100
- // . ${AOs::Blinky::SM::off}
132
+ // ${AOs::Blinky::SM::off}
101
133
case Q_ENTRY_SIG: {
102
134
BSP::ledOff ();
103
135
status_ = Q_RET_HANDLED;
104
136
break ;
105
137
}
106
- // . ${AOs::Blinky::SM::off::TIMEOUT}
138
+ // ${AOs::Blinky::SM::off::TIMEOUT}
107
139
case TIMEOUT_SIG: {
108
140
status_ = tran (&on);
109
141
break ;
@@ -115,17 +147,18 @@ Q_STATE_DEF(Blinky, off) {
115
147
}
116
148
return status_;
117
149
}
118
- // .${AOs::Blinky::SM::on} ....................................................
150
+
151
+ // ${AOs::Blinky::SM::on} .....................................................
119
152
Q_STATE_DEF (Blinky, on) {
120
153
QP::QState status_;
121
154
switch (e->sig ) {
122
- // . ${AOs::Blinky::SM::on}
155
+ // ${AOs::Blinky::SM::on}
123
156
case Q_ENTRY_SIG: {
124
157
BSP::ledOn ();
125
158
status_ = Q_RET_HANDLED;
126
159
break ;
127
160
}
128
- // . ${AOs::Blinky::SM::on::TIMEOUT}
161
+ // ${AOs::Blinky::SM::on::TIMEOUT}
129
162
case TIMEOUT_SIG: {
130
163
status_ = tran (&off);
131
164
break ;
@@ -137,13 +170,15 @@ Q_STATE_DEF(Blinky, on) {
137
170
}
138
171
return status_;
139
172
}
140
- // . $enddef${AOs::Blinky} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
173
+ // $enddef${AOs::Blinky} ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
141
174
// ...
142
175
143
176
// ============================================================================
144
177
// generate definitions of all AO opaque pointers...
145
- // .$define${AOs::AO_Blinky} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
146
- // .${AOs::AO_Blinky} .........................................................
178
+ // $define${AOs::AO_Blinky} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
179
+
180
+ // ${AOs::AO_Blinky} ..........................................................
147
181
QP::QActive * const AO_Blinky = &Blinky::instance;
148
- // . $enddef${AOs::AO_Blinky} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
182
+ // $enddef${AOs::AO_Blinky} ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
149
183
// ...
184
+
0 commit comments