Deleted.

Committer:
QL
Date:
Tue Feb 15 20:13:34 2011 +0000
Revision:
0:9601fa787c8b
Child:
1:3fe0c7f27d97

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
QL 0:9601fa787c8b 1 //////////////////////////////////////////////////////////////////////////////
QL 0:9601fa787c8b 2 // Model: pelican.qm
QL 0:9601fa787c8b 3 // File: ./pelican.cpp
QL 0:9601fa787c8b 4 //
QL 0:9601fa787c8b 5 // This file has been generated automatically by QP Modeler (QM).
QL 0:9601fa787c8b 6 // DO NOT EDIT THIS FILE MANUALLY.
QL 0:9601fa787c8b 7 //
QL 0:9601fa787c8b 8 // Please visit www.state-machine.com/qm for more information.
QL 0:9601fa787c8b 9 //////////////////////////////////////////////////////////////////////////////
QL 0:9601fa787c8b 10 #include "qp_port.h"
QL 0:9601fa787c8b 11 #include "bsp.h"
QL 0:9601fa787c8b 12 #include "pelican.h"
QL 0:9601fa787c8b 13
QL 0:9601fa787c8b 14 Q_DEFINE_THIS_FILE
QL 0:9601fa787c8b 15
QL 0:9601fa787c8b 16 enum PelicanTimeouts { // various timeouts in ticks
QL 0:9601fa787c8b 17 CARS_GREEN_MIN_TOUT = BSP_TICKS_PER_SEC * 8, // min green for cars
QL 0:9601fa787c8b 18 CARS_YELLOW_TOUT = BSP_TICKS_PER_SEC * 3, // yellow for cars
QL 0:9601fa787c8b 19 PEDS_WALK_TOUT = BSP_TICKS_PER_SEC * 3, // walking time for peds
QL 0:9601fa787c8b 20 PEDS_FLASH_TOUT = BSP_TICKS_PER_SEC / 5, // flashing timeout for peds
QL 0:9601fa787c8b 21 PEDS_FLASH_NUM = 5*2, // number of flashes for peds
QL 0:9601fa787c8b 22 OFF_FLASH_TOUT = BSP_TICKS_PER_SEC / 2 // flashing timeout when off
QL 0:9601fa787c8b 23 };
QL 0:9601fa787c8b 24
QL 0:9601fa787c8b 25 // Pelican class -------------------------------------------------------------
QL 0:9601fa787c8b 26 // $(components::Pelican) ....................................................
QL 0:9601fa787c8b 27 class Pelican : public QActive {
QL 0:9601fa787c8b 28 private:
QL 0:9601fa787c8b 29 QTimeEvt m_timeout;
QL 0:9601fa787c8b 30 uint8_t m_flashCtr;
QL 0:9601fa787c8b 31
QL 0:9601fa787c8b 32 public:
QL 0:9601fa787c8b 33 Pelican() : QActive((QStateHandler)&Pelican::initial), m_timeout(TIMEOUT_SIG) {
QL 0:9601fa787c8b 34 }
QL 0:9601fa787c8b 35
QL 0:9601fa787c8b 36 protected:
QL 0:9601fa787c8b 37 static QState initial(Pelican *me, QEvent const *e);
QL 0:9601fa787c8b 38 static QState operational(Pelican *me, QEvent const *e);
QL 0:9601fa787c8b 39 static QState carsEnabled(Pelican *me, QEvent const *e);
QL 0:9601fa787c8b 40 static QState carsGreen(Pelican *me, QEvent const *e);
QL 0:9601fa787c8b 41 static QState carsGreenNoPed(Pelican *me, QEvent const *e);
QL 0:9601fa787c8b 42 static QState carsGreenInt(Pelican *me, QEvent const *e);
QL 0:9601fa787c8b 43 static QState carsGreenPedWait(Pelican *me, QEvent const *e);
QL 0:9601fa787c8b 44 static QState carsYellow(Pelican *me, QEvent const *e);
QL 0:9601fa787c8b 45 static QState pedsEnabled(Pelican *me, QEvent const *e);
QL 0:9601fa787c8b 46 static QState pedsWalk(Pelican *me, QEvent const *e);
QL 0:9601fa787c8b 47 static QState pedsFlash(Pelican *me, QEvent const *e);
QL 0:9601fa787c8b 48 static QState offline(Pelican *me, QEvent const *e);
QL 0:9601fa787c8b 49 };
QL 0:9601fa787c8b 50
QL 0:9601fa787c8b 51 // Local objects -------------------------------------------------------------
QL 0:9601fa787c8b 52 static Pelican l_Pelican; // the single instance of Pelican active object
QL 0:9601fa787c8b 53
QL 0:9601fa787c8b 54 // Global objects ------------------------------------------------------------
QL 0:9601fa787c8b 55 QActive * const AO_Pelican = &l_Pelican; // the opaque pointer
QL 0:9601fa787c8b 56
QL 0:9601fa787c8b 57 // Pelican class definition --------------------------------------------------
QL 0:9601fa787c8b 58 // $(components::Pelican) ....................................................
QL 0:9601fa787c8b 59
QL 0:9601fa787c8b 60 // $(components::Pelican::Statechart) ........................................
QL 0:9601fa787c8b 61 // @(/1/0/3/0)
QL 0:9601fa787c8b 62 QState Pelican::initial(Pelican *me, QEvent const *e) {
QL 0:9601fa787c8b 63 me->subscribe(PEDS_WAITING_SIG);
QL 0:9601fa787c8b 64
QL 0:9601fa787c8b 65 QS_OBJ_DICTIONARY(&l_Pelican);
QL 0:9601fa787c8b 66 QS_OBJ_DICTIONARY(&me->m_timeout);
QL 0:9601fa787c8b 67
QL 0:9601fa787c8b 68 QS_FUN_DICTIONARY(&QHsm::top);
QL 0:9601fa787c8b 69 QS_FUN_DICTIONARY(&Pelican::initial);
QL 0:9601fa787c8b 70 QS_FUN_DICTIONARY(&Pelican::offline);
QL 0:9601fa787c8b 71 QS_FUN_DICTIONARY(&Pelican::operational);
QL 0:9601fa787c8b 72 QS_FUN_DICTIONARY(&Pelican::carsEnabled);
QL 0:9601fa787c8b 73 QS_FUN_DICTIONARY(&Pelican::carsGreen);
QL 0:9601fa787c8b 74 QS_FUN_DICTIONARY(&Pelican::carsGreenNoPed);
QL 0:9601fa787c8b 75 QS_FUN_DICTIONARY(&Pelican::carsGreenPedWait);
QL 0:9601fa787c8b 76 QS_FUN_DICTIONARY(&Pelican::carsGreenInt);
QL 0:9601fa787c8b 77 QS_FUN_DICTIONARY(&Pelican::carsYellow);
QL 0:9601fa787c8b 78 QS_FUN_DICTIONARY(&Pelican::pedsEnabled);
QL 0:9601fa787c8b 79 QS_FUN_DICTIONARY(&Pelican::pedsWalk);
QL 0:9601fa787c8b 80 QS_FUN_DICTIONARY(&Pelican::pedsFlash);
QL 0:9601fa787c8b 81
QL 0:9601fa787c8b 82 QS_SIG_DICTIONARY(PEDS_WAITING_SIG, 0); // global signals
QL 0:9601fa787c8b 83 QS_SIG_DICTIONARY(ON_SIG, 0);
QL 0:9601fa787c8b 84 QS_SIG_DICTIONARY(OFF_SIG, 0);
QL 0:9601fa787c8b 85
QL 0:9601fa787c8b 86 QS_SIG_DICTIONARY(TIMEOUT_SIG, &l_Pelican); // just for Pelican
QL 0:9601fa787c8b 87 return Q_TRAN(&Pelican::operational);
QL 0:9601fa787c8b 88 }
QL 0:9601fa787c8b 89 // $(components::Pelican::Statechart::operational) ...........................
QL 0:9601fa787c8b 90 QState Pelican::operational(Pelican *me, QEvent const *e) {
QL 0:9601fa787c8b 91 switch (e->sig) {
QL 0:9601fa787c8b 92 // @(/1/0/3/1)
QL 0:9601fa787c8b 93 case Q_ENTRY_SIG: {
QL 0:9601fa787c8b 94 BSP_signalCars(CARS_RED);
QL 0:9601fa787c8b 95 BSP_signalPeds(PEDS_DONT_WALK);
QL 0:9601fa787c8b 96 return Q_HANDLED();
QL 0:9601fa787c8b 97 }
QL 0:9601fa787c8b 98 // @(/1/0/3/1/0)
QL 0:9601fa787c8b 99 case Q_INIT_SIG: {
QL 0:9601fa787c8b 100 return Q_TRAN(&Pelican::carsEnabled);
QL 0:9601fa787c8b 101 }
QL 0:9601fa787c8b 102 // @(/1/0/3/1/1)
QL 0:9601fa787c8b 103 case OFF_SIG: {
QL 0:9601fa787c8b 104 return Q_TRAN(&Pelican::offline);
QL 0:9601fa787c8b 105 }
QL 0:9601fa787c8b 106 }
QL 0:9601fa787c8b 107 return Q_SUPER(&QHsm::top);
QL 0:9601fa787c8b 108 }
QL 0:9601fa787c8b 109 // $(components::Pelican::Statechart::operational::carsEnabled) ..............
QL 0:9601fa787c8b 110 QState Pelican::carsEnabled(Pelican *me, QEvent const *e) {
QL 0:9601fa787c8b 111 switch (e->sig) {
QL 0:9601fa787c8b 112 // @(/1/0/3/1/2)
QL 0:9601fa787c8b 113 case Q_EXIT_SIG: {
QL 0:9601fa787c8b 114 BSP_signalCars(CARS_RED);
QL 0:9601fa787c8b 115 return Q_HANDLED();
QL 0:9601fa787c8b 116 }
QL 0:9601fa787c8b 117 // @(/1/0/3/1/2/0)
QL 0:9601fa787c8b 118 case Q_INIT_SIG: {
QL 0:9601fa787c8b 119 return Q_TRAN(&Pelican::carsGreen);
QL 0:9601fa787c8b 120 }
QL 0:9601fa787c8b 121 }
QL 0:9601fa787c8b 122 return Q_SUPER(&Pelican::operational);
QL 0:9601fa787c8b 123 }
QL 0:9601fa787c8b 124 // $(components::Pelican::Statechart::operational::carsEnabled::carsGreen) ...
QL 0:9601fa787c8b 125 QState Pelican::carsGreen(Pelican *me, QEvent const *e) {
QL 0:9601fa787c8b 126 switch (e->sig) {
QL 0:9601fa787c8b 127 // @(/1/0/3/1/2/1)
QL 0:9601fa787c8b 128 case Q_ENTRY_SIG: {
QL 0:9601fa787c8b 129 BSP_signalCars(CARS_GREEN);
QL 0:9601fa787c8b 130 me->m_timeout.postIn(me, CARS_GREEN_MIN_TOUT);
QL 0:9601fa787c8b 131 return Q_HANDLED();
QL 0:9601fa787c8b 132 }
QL 0:9601fa787c8b 133 // @(/1/0/3/1/2/1)
QL 0:9601fa787c8b 134 case Q_EXIT_SIG: {
QL 0:9601fa787c8b 135 me->m_timeout.disarm();
QL 0:9601fa787c8b 136 return Q_HANDLED();
QL 0:9601fa787c8b 137 }
QL 0:9601fa787c8b 138 // @(/1/0/3/1/2/1/0)
QL 0:9601fa787c8b 139 case Q_INIT_SIG: {
QL 0:9601fa787c8b 140 return Q_TRAN(&Pelican::carsGreenNoPed);
QL 0:9601fa787c8b 141 }
QL 0:9601fa787c8b 142 }
QL 0:9601fa787c8b 143 return Q_SUPER(&Pelican::carsEnabled);
QL 0:9601fa787c8b 144 }
QL 0:9601fa787c8b 145 // $(components::Pelican::Statechart::operational::carsEnabled::carsGreen::carsGreenNoPed)
QL 0:9601fa787c8b 146 QState Pelican::carsGreenNoPed(Pelican *me, QEvent const *e) {
QL 0:9601fa787c8b 147 switch (e->sig) {
QL 0:9601fa787c8b 148 // @(/1/0/3/1/2/1/1)
QL 0:9601fa787c8b 149 case Q_ENTRY_SIG: {
QL 0:9601fa787c8b 150 BSP_showState("carsGreenNoPed");
QL 0:9601fa787c8b 151 return Q_HANDLED();
QL 0:9601fa787c8b 152 }
QL 0:9601fa787c8b 153 // @(/1/0/3/1/2/1/1/0)
QL 0:9601fa787c8b 154 case PEDS_WAITING_SIG: {
QL 0:9601fa787c8b 155 return Q_TRAN(&Pelican::carsGreenPedWait);
QL 0:9601fa787c8b 156 }
QL 0:9601fa787c8b 157 // @(/1/0/3/1/2/1/1/1)
QL 0:9601fa787c8b 158 case TIMEOUT_SIG: {
QL 0:9601fa787c8b 159 return Q_TRAN(&Pelican::carsGreenInt);
QL 0:9601fa787c8b 160 }
QL 0:9601fa787c8b 161 }
QL 0:9601fa787c8b 162 return Q_SUPER(&Pelican::carsGreen);
QL 0:9601fa787c8b 163 }
QL 0:9601fa787c8b 164 // $(components::Pelican::Statechart::operational::carsEnabled::carsGreen::carsGreenInt)
QL 0:9601fa787c8b 165 QState Pelican::carsGreenInt(Pelican *me, QEvent const *e) {
QL 0:9601fa787c8b 166 switch (e->sig) {
QL 0:9601fa787c8b 167 // @(/1/0/3/1/2/1/2)
QL 0:9601fa787c8b 168 case Q_ENTRY_SIG: {
QL 0:9601fa787c8b 169 BSP_showState("carsGreenInt");
QL 0:9601fa787c8b 170 return Q_HANDLED();
QL 0:9601fa787c8b 171 }
QL 0:9601fa787c8b 172 // @(/1/0/3/1/2/1/2/0)
QL 0:9601fa787c8b 173 case PEDS_WAITING_SIG: {
QL 0:9601fa787c8b 174 return Q_TRAN(&Pelican::carsYellow);
QL 0:9601fa787c8b 175 }
QL 0:9601fa787c8b 176 }
QL 0:9601fa787c8b 177 return Q_SUPER(&Pelican::carsGreen);
QL 0:9601fa787c8b 178 }
QL 0:9601fa787c8b 179 // $(components::Pelican::Statechart::operational::carsEnabled::carsGreen::carsGreenPedWait)
QL 0:9601fa787c8b 180 QState Pelican::carsGreenPedWait(Pelican *me, QEvent const *e) {
QL 0:9601fa787c8b 181 switch (e->sig) {
QL 0:9601fa787c8b 182 // @(/1/0/3/1/2/1/3)
QL 0:9601fa787c8b 183 case Q_ENTRY_SIG: {
QL 0:9601fa787c8b 184 BSP_showState("carsGreenPedWait");
QL 0:9601fa787c8b 185 return Q_HANDLED();
QL 0:9601fa787c8b 186 }
QL 0:9601fa787c8b 187 // @(/1/0/3/1/2/1/3/0)
QL 0:9601fa787c8b 188 case TIMEOUT_SIG: {
QL 0:9601fa787c8b 189 return Q_TRAN(&Pelican::carsYellow);
QL 0:9601fa787c8b 190 }
QL 0:9601fa787c8b 191 }
QL 0:9601fa787c8b 192 return Q_SUPER(&Pelican::carsGreen);
QL 0:9601fa787c8b 193 }
QL 0:9601fa787c8b 194 // $(components::Pelican::Statechart::operational::carsEnabled::carsYellow) ..
QL 0:9601fa787c8b 195 QState Pelican::carsYellow(Pelican *me, QEvent const *e) {
QL 0:9601fa787c8b 196 switch (e->sig) {
QL 0:9601fa787c8b 197 // @(/1/0/3/1/2/2)
QL 0:9601fa787c8b 198 case Q_ENTRY_SIG: {
QL 0:9601fa787c8b 199 BSP_showState("carsYellow");
QL 0:9601fa787c8b 200 BSP_signalCars(CARS_YELLOW);
QL 0:9601fa787c8b 201 me->m_timeout.postIn(me, CARS_YELLOW_TOUT);
QL 0:9601fa787c8b 202 return Q_HANDLED();
QL 0:9601fa787c8b 203 }
QL 0:9601fa787c8b 204 // @(/1/0/3/1/2/2)
QL 0:9601fa787c8b 205 case Q_EXIT_SIG: {
QL 0:9601fa787c8b 206 me->m_timeout.disarm();
QL 0:9601fa787c8b 207 return Q_HANDLED();
QL 0:9601fa787c8b 208 }
QL 0:9601fa787c8b 209 // @(/1/0/3/1/2/2/0)
QL 0:9601fa787c8b 210 case TIMEOUT_SIG: {
QL 0:9601fa787c8b 211 return Q_TRAN(&Pelican::pedsEnabled);
QL 0:9601fa787c8b 212 }
QL 0:9601fa787c8b 213 }
QL 0:9601fa787c8b 214 return Q_SUPER(&Pelican::carsEnabled);
QL 0:9601fa787c8b 215 }
QL 0:9601fa787c8b 216 // $(components::Pelican::Statechart::operational::pedsEnabled) ..............
QL 0:9601fa787c8b 217 QState Pelican::pedsEnabled(Pelican *me, QEvent const *e) {
QL 0:9601fa787c8b 218 switch (e->sig) {
QL 0:9601fa787c8b 219 // @(/1/0/3/1/3)
QL 0:9601fa787c8b 220 case Q_EXIT_SIG: {
QL 0:9601fa787c8b 221 BSP_signalPeds(PEDS_DONT_WALK);
QL 0:9601fa787c8b 222 return Q_HANDLED();
QL 0:9601fa787c8b 223 }
QL 0:9601fa787c8b 224 // @(/1/0/3/1/3/0)
QL 0:9601fa787c8b 225 case Q_INIT_SIG: {
QL 0:9601fa787c8b 226 return Q_TRAN(&Pelican::pedsWalk);
QL 0:9601fa787c8b 227 }
QL 0:9601fa787c8b 228 }
QL 0:9601fa787c8b 229 return Q_SUPER(&Pelican::operational);
QL 0:9601fa787c8b 230 }
QL 0:9601fa787c8b 231 // $(components::Pelican::Statechart::operational::pedsEnabled::pedsWalk) ....
QL 0:9601fa787c8b 232 QState Pelican::pedsWalk(Pelican *me, QEvent const *e) {
QL 0:9601fa787c8b 233 switch (e->sig) {
QL 0:9601fa787c8b 234 // @(/1/0/3/1/3/1)
QL 0:9601fa787c8b 235 case Q_ENTRY_SIG: {
QL 0:9601fa787c8b 236 BSP_showState("pedsWalk");
QL 0:9601fa787c8b 237 BSP_signalPeds(PEDS_WALK);
QL 0:9601fa787c8b 238 me->m_timeout.postIn(me, PEDS_WALK_TOUT);
QL 0:9601fa787c8b 239 return Q_HANDLED();
QL 0:9601fa787c8b 240 }
QL 0:9601fa787c8b 241 // @(/1/0/3/1/3/1)
QL 0:9601fa787c8b 242 case Q_EXIT_SIG: {
QL 0:9601fa787c8b 243 me->m_timeout.disarm();
QL 0:9601fa787c8b 244 return Q_HANDLED();
QL 0:9601fa787c8b 245 }
QL 0:9601fa787c8b 246 // @(/1/0/3/1/3/1/0)
QL 0:9601fa787c8b 247 case TIMEOUT_SIG: {
QL 0:9601fa787c8b 248 return Q_TRAN(&Pelican::pedsFlash);
QL 0:9601fa787c8b 249 }
QL 0:9601fa787c8b 250 }
QL 0:9601fa787c8b 251 return Q_SUPER(&Pelican::pedsEnabled);
QL 0:9601fa787c8b 252 }
QL 0:9601fa787c8b 253 // $(components::Pelican::Statechart::operational::pedsEnabled::pedsFlash) ...
QL 0:9601fa787c8b 254 QState Pelican::pedsFlash(Pelican *me, QEvent const *e) {
QL 0:9601fa787c8b 255 switch (e->sig) {
QL 0:9601fa787c8b 256 // @(/1/0/3/1/3/2)
QL 0:9601fa787c8b 257 case Q_ENTRY_SIG: {
QL 0:9601fa787c8b 258 BSP_showState("pedsWalk");
QL 0:9601fa787c8b 259 me->m_timeout.postEvery(me, PEDS_FLASH_TOUT);
QL 0:9601fa787c8b 260 me->m_flashCtr = PEDS_FLASH_NUM*2 + 1;
QL 0:9601fa787c8b 261 return Q_HANDLED();
QL 0:9601fa787c8b 262 }
QL 0:9601fa787c8b 263 // @(/1/0/3/1/3/2)
QL 0:9601fa787c8b 264 case Q_EXIT_SIG: {
QL 0:9601fa787c8b 265 me->m_timeout.disarm();
QL 0:9601fa787c8b 266 return Q_HANDLED();
QL 0:9601fa787c8b 267 }
QL 0:9601fa787c8b 268 // @(/1/0/3/1/3/2/0)
QL 0:9601fa787c8b 269 case TIMEOUT_SIG: {
QL 0:9601fa787c8b 270 // @(/1/0/3/1/3/2/0/0)
QL 0:9601fa787c8b 271 if (me->m_flashCtr != 0) {
QL 0:9601fa787c8b 272 --me->m_flashCtr;
QL 0:9601fa787c8b 273 // @(/1/0/3/1/3/2/0/0/0)
QL 0:9601fa787c8b 274 if ((me->m_flashCtr & 1) == 0) {
QL 0:9601fa787c8b 275 BSP_signalPeds(PEDS_DONT_WALK);
QL 0:9601fa787c8b 276 return Q_HANDLED();
QL 0:9601fa787c8b 277 }
QL 0:9601fa787c8b 278 // @(/1/0/3/1/3/2/0/0/1)
QL 0:9601fa787c8b 279 else {
QL 0:9601fa787c8b 280 BSP_signalPeds(PEDS_BLANK);
QL 0:9601fa787c8b 281 return Q_HANDLED();
QL 0:9601fa787c8b 282 }
QL 0:9601fa787c8b 283 }
QL 0:9601fa787c8b 284 // @(/1/0/3/1/3/2/0/1)
QL 0:9601fa787c8b 285 else {
QL 0:9601fa787c8b 286 return Q_TRAN(&Pelican::carsEnabled);
QL 0:9601fa787c8b 287 }
QL 0:9601fa787c8b 288 }
QL 0:9601fa787c8b 289 }
QL 0:9601fa787c8b 290 return Q_SUPER(&Pelican::pedsEnabled);
QL 0:9601fa787c8b 291 }
QL 0:9601fa787c8b 292 // $(components::Pelican::Statechart::offline) ...............................
QL 0:9601fa787c8b 293 QState Pelican::offline(Pelican *me, QEvent const *e) {
QL 0:9601fa787c8b 294 switch (e->sig) {
QL 0:9601fa787c8b 295 // @(/1/0/3/2)
QL 0:9601fa787c8b 296 case Q_ENTRY_SIG: {
QL 0:9601fa787c8b 297 BSP_showState("offline");
QL 0:9601fa787c8b 298 me->m_timeout.postEvery(me, OFF_FLASH_TOUT);
QL 0:9601fa787c8b 299 me->m_flashCtr = 0;
QL 0:9601fa787c8b 300 return Q_HANDLED();
QL 0:9601fa787c8b 301 }
QL 0:9601fa787c8b 302 // @(/1/0/3/2)
QL 0:9601fa787c8b 303 case Q_EXIT_SIG: {
QL 0:9601fa787c8b 304 me->m_timeout.disarm();
QL 0:9601fa787c8b 305 return Q_HANDLED();
QL 0:9601fa787c8b 306 }
QL 0:9601fa787c8b 307 // @(/1/0/3/2/0)
QL 0:9601fa787c8b 308 case TIMEOUT_SIG: {
QL 0:9601fa787c8b 309 me->m_flashCtr ^= 1;
QL 0:9601fa787c8b 310 // @(/1/0/3/2/0/0)
QL 0:9601fa787c8b 311 if ((me->m_flashCtr & 1) == 0) {
QL 0:9601fa787c8b 312 BSP_signalCars(CARS_RED);
QL 0:9601fa787c8b 313 BSP_signalPeds(PEDS_DONT_WALK);
QL 0:9601fa787c8b 314 return Q_HANDLED();
QL 0:9601fa787c8b 315 }
QL 0:9601fa787c8b 316 // @(/1/0/3/2/0/1)
QL 0:9601fa787c8b 317 else {
QL 0:9601fa787c8b 318 BSP_signalCars(CARS_BLANK);
QL 0:9601fa787c8b 319 BSP_signalPeds(PEDS_BLANK);
QL 0:9601fa787c8b 320 return Q_HANDLED();
QL 0:9601fa787c8b 321 }
QL 0:9601fa787c8b 322 }
QL 0:9601fa787c8b 323 // @(/1/0/3/2/1)
QL 0:9601fa787c8b 324 case ON_SIG: {
QL 0:9601fa787c8b 325 return Q_TRAN(&Pelican::operational);
QL 0:9601fa787c8b 326 }
QL 0:9601fa787c8b 327 }
QL 0:9601fa787c8b 328 return Q_SUPER(&QHsm::top);
QL 0:9601fa787c8b 329 }
QL 0:9601fa787c8b 330