DeepHistory.cpp 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895
  1. #include "DeepHistory.h"
  2. #include <string.h>
  3. /*! \file Implementation of the state machine 'DeepHistory'
  4. */
  5. DeepHistory::DeepHistory()
  6. {
  7. for (int i = 0; i < maxHistoryStates; ++i)
  8. historyVector[i] = DeepHistory_last_state;
  9. stateConfVectorPosition = 0;
  10. }
  11. DeepHistory::~DeepHistory()
  12. {
  13. }
  14. void DeepHistory::init()
  15. {
  16. for (int i = 0; i < maxOrthogonalStates; ++i)
  17. stateConfVector[i] = DeepHistory_last_state;
  18. for (int i = 0; i < maxHistoryStates; ++i)
  19. historyVector[i] = DeepHistory_last_state;
  20. stateConfVectorPosition = 0;
  21. clearInEvents();
  22. clearOutEvents();
  23. }
  24. void DeepHistory::enter()
  25. {
  26. /* Default enter sequence for statechart DeepHistory */
  27. enseq_mainRegion_default();
  28. }
  29. void DeepHistory::exit()
  30. {
  31. /* Default exit sequence for statechart DeepHistory */
  32. exseq_mainRegion();
  33. }
  34. sc_boolean DeepHistory::isActive() const
  35. {
  36. return stateConfVector[0] != DeepHistory_last_state;
  37. }
  38. /*
  39. * Always returns 'false' since this state machine can never become final.
  40. */
  41. sc_boolean DeepHistory::isFinal() const
  42. {
  43. return false;}
  44. void DeepHistory::runCycle()
  45. {
  46. clearOutEvents();
  47. for (stateConfVectorPosition = 0;
  48. stateConfVectorPosition < maxOrthogonalStates;
  49. stateConfVectorPosition++)
  50. {
  51. switch (stateConfVector[stateConfVectorPosition])
  52. {
  53. case mainRegion_State1 :
  54. {
  55. react_mainRegion_State1();
  56. break;
  57. }
  58. case mainRegion_State2__region0_a :
  59. {
  60. react_mainRegion_State2__region0_a();
  61. break;
  62. }
  63. case mainRegion_State2__region0_State4__region0_State6 :
  64. {
  65. react_mainRegion_State2__region0_State4__region0_State6();
  66. break;
  67. }
  68. case mainRegion_State2__region0_State4__region0_State7__region0_State8 :
  69. {
  70. react_mainRegion_State2__region0_State4__region0_State7__region0_State8();
  71. break;
  72. }
  73. case mainRegion_State2__region0_State4__region0_State7__region0_State9 :
  74. {
  75. react_mainRegion_State2__region0_State4__region0_State7__region0_State9();
  76. break;
  77. }
  78. case mainRegion_State2__region0_State5 :
  79. {
  80. react_mainRegion_State2__region0_State5();
  81. break;
  82. }
  83. default:
  84. break;
  85. }
  86. }
  87. clearInEvents();
  88. }
  89. void DeepHistory::clearInEvents()
  90. {
  91. iface.event1_raised = false;
  92. iface.event2_raised = false;
  93. iface.event3_raised = false;
  94. iface.event4_raised = false;
  95. iface.event5_raised = false;
  96. iface.event6_raised = false;
  97. iface.event7_raised = false;
  98. iface.event8_raised = false;
  99. iface.event9_raised = false;
  100. }
  101. void DeepHistory::clearOutEvents()
  102. {
  103. }
  104. sc_boolean DeepHistory::isStateActive(DeepHistoryStates state) const
  105. {
  106. switch (state)
  107. {
  108. case mainRegion_State1 :
  109. return (sc_boolean) (stateConfVector[0] == mainRegion_State1
  110. );
  111. case mainRegion_State2 :
  112. return (sc_boolean) (stateConfVector[0] >= mainRegion_State2
  113. && stateConfVector[0] <= mainRegion_State2__region0_State5);
  114. case mainRegion_State2__region0_a :
  115. return (sc_boolean) (stateConfVector[0] == mainRegion_State2__region0_a
  116. );
  117. case mainRegion_State2__region0_State4 :
  118. return (sc_boolean) (stateConfVector[0] >= mainRegion_State2__region0_State4
  119. && stateConfVector[0] <= mainRegion_State2__region0_State4__region0_State7__region0_State9);
  120. case mainRegion_State2__region0_State4__region0_State6 :
  121. return (sc_boolean) (stateConfVector[0] == mainRegion_State2__region0_State4__region0_State6
  122. );
  123. case mainRegion_State2__region0_State4__region0_State7 :
  124. return (sc_boolean) (stateConfVector[0] >= mainRegion_State2__region0_State4__region0_State7
  125. && stateConfVector[0] <= mainRegion_State2__region0_State4__region0_State7__region0_State9);
  126. case mainRegion_State2__region0_State4__region0_State7__region0_State8 :
  127. return (sc_boolean) (stateConfVector[0] == mainRegion_State2__region0_State4__region0_State7__region0_State8
  128. );
  129. case mainRegion_State2__region0_State4__region0_State7__region0_State9 :
  130. return (sc_boolean) (stateConfVector[0] == mainRegion_State2__region0_State4__region0_State7__region0_State9
  131. );
  132. case mainRegion_State2__region0_State5 :
  133. return (sc_boolean) (stateConfVector[0] == mainRegion_State2__region0_State5
  134. );
  135. default: return false;
  136. }
  137. }
  138. DeepHistory::DefaultSCI* DeepHistory::getDefaultSCI()
  139. {
  140. return &iface;
  141. }
  142. void DeepHistory::DefaultSCI::raise_event1()
  143. {
  144. event1_raised = true;
  145. }
  146. void DeepHistory::raise_event1()
  147. {
  148. iface.raise_event1();
  149. }
  150. void DeepHistory::DefaultSCI::raise_event2()
  151. {
  152. event2_raised = true;
  153. }
  154. void DeepHistory::raise_event2()
  155. {
  156. iface.raise_event2();
  157. }
  158. void DeepHistory::DefaultSCI::raise_event3()
  159. {
  160. event3_raised = true;
  161. }
  162. void DeepHistory::raise_event3()
  163. {
  164. iface.raise_event3();
  165. }
  166. void DeepHistory::DefaultSCI::raise_event4()
  167. {
  168. event4_raised = true;
  169. }
  170. void DeepHistory::raise_event4()
  171. {
  172. iface.raise_event4();
  173. }
  174. void DeepHistory::DefaultSCI::raise_event5()
  175. {
  176. event5_raised = true;
  177. }
  178. void DeepHistory::raise_event5()
  179. {
  180. iface.raise_event5();
  181. }
  182. void DeepHistory::DefaultSCI::raise_event6()
  183. {
  184. event6_raised = true;
  185. }
  186. void DeepHistory::raise_event6()
  187. {
  188. iface.raise_event6();
  189. }
  190. void DeepHistory::DefaultSCI::raise_event7()
  191. {
  192. event7_raised = true;
  193. }
  194. void DeepHistory::raise_event7()
  195. {
  196. iface.raise_event7();
  197. }
  198. void DeepHistory::DefaultSCI::raise_event8()
  199. {
  200. event8_raised = true;
  201. }
  202. void DeepHistory::raise_event8()
  203. {
  204. iface.raise_event8();
  205. }
  206. void DeepHistory::DefaultSCI::raise_event9()
  207. {
  208. event9_raised = true;
  209. }
  210. void DeepHistory::raise_event9()
  211. {
  212. iface.raise_event9();
  213. }
  214. // implementations of all internal functions
  215. sc_boolean DeepHistory::check_mainRegion_State1_tr0_tr0()
  216. {
  217. return iface.event1_raised;
  218. }
  219. sc_boolean DeepHistory::check_mainRegion_State2_tr0_tr0()
  220. {
  221. return iface.event2_raised;
  222. }
  223. sc_boolean DeepHistory::check_mainRegion_State2__region0_a_tr0_tr0()
  224. {
  225. return iface.event3_raised;
  226. }
  227. sc_boolean DeepHistory::check_mainRegion_State2__region0_State4_tr0_tr0()
  228. {
  229. return iface.event4_raised;
  230. }
  231. sc_boolean DeepHistory::check_mainRegion_State2__region0_State4__region0_State6_tr0_tr0()
  232. {
  233. return iface.event5_raised;
  234. }
  235. sc_boolean DeepHistory::check_mainRegion_State2__region0_State4__region0_State7_tr0_tr0()
  236. {
  237. return iface.event6_raised;
  238. }
  239. sc_boolean DeepHistory::check_mainRegion_State2__region0_State4__region0_State7__region0_State8_tr0_tr0()
  240. {
  241. return iface.event7_raised;
  242. }
  243. sc_boolean DeepHistory::check_mainRegion_State2__region0_State4__region0_State7__region0_State9_tr0_tr0()
  244. {
  245. return iface.event8_raised;
  246. }
  247. void DeepHistory::effect_mainRegion_State1_tr0()
  248. {
  249. exseq_mainRegion_State1();
  250. enseq_mainRegion_State2_default();
  251. }
  252. void DeepHistory::effect_mainRegion_State2_tr0()
  253. {
  254. exseq_mainRegion_State2();
  255. enseq_mainRegion_State1_default();
  256. }
  257. void DeepHistory::effect_mainRegion_State2__region0_a_tr0()
  258. {
  259. exseq_mainRegion_State2__region0_a();
  260. enseq_mainRegion_State2__region0_State4_default();
  261. }
  262. void DeepHistory::effect_mainRegion_State2__region0_State4_tr0()
  263. {
  264. exseq_mainRegion_State2__region0_State4();
  265. enseq_mainRegion_State2__region0_State5_default();
  266. }
  267. void DeepHistory::effect_mainRegion_State2__region0_State4__region0_State6_tr0()
  268. {
  269. exseq_mainRegion_State2__region0_State4__region0_State6();
  270. enseq_mainRegion_State2__region0_State4__region0_State7_default();
  271. }
  272. void DeepHistory::effect_mainRegion_State2__region0_State4__region0_State7_tr0()
  273. {
  274. exseq_mainRegion_State2__region0_State4__region0_State7();
  275. enseq_mainRegion_State2__region0_State4__region0_State6_default();
  276. }
  277. void DeepHistory::effect_mainRegion_State2__region0_State4__region0_State7__region0_State8_tr0()
  278. {
  279. exseq_mainRegion_State2__region0_State4__region0_State7__region0_State8();
  280. enseq_mainRegion_State2__region0_State4__region0_State7__region0_State9_default();
  281. }
  282. void DeepHistory::effect_mainRegion_State2__region0_State4__region0_State7__region0_State9_tr0()
  283. {
  284. exseq_mainRegion_State2__region0_State4__region0_State7__region0_State9();
  285. enseq_mainRegion_State2__region0_State4__region0_State7__region0_State8_default();
  286. }
  287. /* 'default' enter sequence for state State1 */
  288. void DeepHistory::enseq_mainRegion_State1_default()
  289. {
  290. /* 'default' enter sequence for state State1 */
  291. stateConfVector[0] = mainRegion_State1;
  292. stateConfVectorPosition = 0;
  293. }
  294. /* 'default' enter sequence for state State2 */
  295. void DeepHistory::enseq_mainRegion_State2_default()
  296. {
  297. /* 'default' enter sequence for state State2 */
  298. enseq_mainRegion_State2__region0_default();
  299. }
  300. /* 'default' enter sequence for state a */
  301. void DeepHistory::enseq_mainRegion_State2__region0_a_default()
  302. {
  303. /* 'default' enter sequence for state a */
  304. stateConfVector[0] = mainRegion_State2__region0_a;
  305. stateConfVectorPosition = 0;
  306. historyVector[0] = stateConfVector[0];
  307. }
  308. /* 'default' enter sequence for state State4 */
  309. void DeepHistory::enseq_mainRegion_State2__region0_State4_default()
  310. {
  311. /* 'default' enter sequence for state State4 */
  312. enseq_mainRegion_State2__region0_State4__region0_default();
  313. historyVector[0] = stateConfVector[0];
  314. }
  315. /* 'default' enter sequence for state State6 */
  316. void DeepHistory::enseq_mainRegion_State2__region0_State4__region0_State6_default()
  317. {
  318. /* 'default' enter sequence for state State6 */
  319. stateConfVector[0] = mainRegion_State2__region0_State4__region0_State6;
  320. stateConfVectorPosition = 0;
  321. historyVector[1] = stateConfVector[0];
  322. }
  323. /* 'default' enter sequence for state State7 */
  324. void DeepHistory::enseq_mainRegion_State2__region0_State4__region0_State7_default()
  325. {
  326. /* 'default' enter sequence for state State7 */
  327. enseq_mainRegion_State2__region0_State4__region0_State7__region0_default();
  328. historyVector[1] = stateConfVector[0];
  329. }
  330. /* 'default' enter sequence for state State8 */
  331. void DeepHistory::enseq_mainRegion_State2__region0_State4__region0_State7__region0_State8_default()
  332. {
  333. /* 'default' enter sequence for state State8 */
  334. stateConfVector[0] = mainRegion_State2__region0_State4__region0_State7__region0_State8;
  335. stateConfVectorPosition = 0;
  336. historyVector[2] = stateConfVector[0];
  337. }
  338. /* 'default' enter sequence for state State9 */
  339. void DeepHistory::enseq_mainRegion_State2__region0_State4__region0_State7__region0_State9_default()
  340. {
  341. /* 'default' enter sequence for state State9 */
  342. stateConfVector[0] = mainRegion_State2__region0_State4__region0_State7__region0_State9;
  343. stateConfVectorPosition = 0;
  344. historyVector[2] = stateConfVector[0];
  345. }
  346. /* 'default' enter sequence for state State5 */
  347. void DeepHistory::enseq_mainRegion_State2__region0_State5_default()
  348. {
  349. /* 'default' enter sequence for state State5 */
  350. stateConfVector[0] = mainRegion_State2__region0_State5;
  351. stateConfVectorPosition = 0;
  352. historyVector[0] = stateConfVector[0];
  353. }
  354. /* 'default' enter sequence for region mainRegion */
  355. void DeepHistory::enseq_mainRegion_default()
  356. {
  357. /* 'default' enter sequence for region mainRegion */
  358. react_mainRegion__entry_Default();
  359. }
  360. /* 'default' enter sequence for region null */
  361. void DeepHistory::enseq_mainRegion_State2__region0_default()
  362. {
  363. /* 'default' enter sequence for region null */
  364. react_mainRegion_State2__region0__entry_Default();
  365. }
  366. /* deep enterSequence with history in child null */
  367. void DeepHistory::dhenseq_mainRegion_State2__region0()
  368. {
  369. /* deep enterSequence with history in child null */
  370. /* Handle deep history entry of null */
  371. switch(historyVector[ 0 ])
  372. {
  373. case mainRegion_State2__region0_a :
  374. {
  375. /* enterSequence with history in child a for leaf a */
  376. enseq_mainRegion_State2__region0_a_default();
  377. break;
  378. }
  379. case mainRegion_State2__region0_State4__region0_State6 :
  380. {
  381. /* enterSequence with history in child State4 for leaf State6 */
  382. dhenseq_mainRegion_State2__region0_State4__region0();
  383. break;
  384. }
  385. case mainRegion_State2__region0_State4__region0_State7__region0_State8 :
  386. {
  387. /* enterSequence with history in child State4 for leaf State8 */
  388. dhenseq_mainRegion_State2__region0_State4__region0();
  389. break;
  390. }
  391. case mainRegion_State2__region0_State4__region0_State7__region0_State9 :
  392. {
  393. /* enterSequence with history in child State4 for leaf State9 */
  394. dhenseq_mainRegion_State2__region0_State4__region0();
  395. break;
  396. }
  397. case mainRegion_State2__region0_State5 :
  398. {
  399. /* enterSequence with history in child State5 for leaf State5 */
  400. enseq_mainRegion_State2__region0_State5_default();
  401. break;
  402. }
  403. default: break;
  404. }
  405. }
  406. /* 'default' enter sequence for region null */
  407. void DeepHistory::enseq_mainRegion_State2__region0_State4__region0_default()
  408. {
  409. /* 'default' enter sequence for region null */
  410. react_mainRegion_State2__region0_State4__region0__entry_Default();
  411. }
  412. /* deep enterSequence with history in child null */
  413. void DeepHistory::dhenseq_mainRegion_State2__region0_State4__region0()
  414. {
  415. /* deep enterSequence with history in child null */
  416. /* Handle deep history entry of null */
  417. switch(historyVector[ 1 ])
  418. {
  419. case mainRegion_State2__region0_State4__region0_State6 :
  420. {
  421. /* enterSequence with history in child State6 for leaf State6 */
  422. enseq_mainRegion_State2__region0_State4__region0_State6_default();
  423. break;
  424. }
  425. case mainRegion_State2__region0_State4__region0_State7__region0_State8 :
  426. {
  427. /* enterSequence with history in child State7 for leaf State8 */
  428. dhenseq_mainRegion_State2__region0_State4__region0_State7__region0();
  429. break;
  430. }
  431. case mainRegion_State2__region0_State4__region0_State7__region0_State9 :
  432. {
  433. /* enterSequence with history in child State7 for leaf State9 */
  434. dhenseq_mainRegion_State2__region0_State4__region0_State7__region0();
  435. break;
  436. }
  437. default: break;
  438. }
  439. }
  440. /* 'default' enter sequence for region null */
  441. void DeepHistory::enseq_mainRegion_State2__region0_State4__region0_State7__region0_default()
  442. {
  443. /* 'default' enter sequence for region null */
  444. react_mainRegion_State2__region0_State4__region0_State7__region0__entry_Default();
  445. }
  446. /* deep enterSequence with history in child null */
  447. void DeepHistory::dhenseq_mainRegion_State2__region0_State4__region0_State7__region0()
  448. {
  449. /* deep enterSequence with history in child null */
  450. /* Handle deep history entry of null */
  451. switch(historyVector[ 2 ])
  452. {
  453. case mainRegion_State2__region0_State4__region0_State7__region0_State8 :
  454. {
  455. /* enterSequence with history in child State8 for leaf State8 */
  456. enseq_mainRegion_State2__region0_State4__region0_State7__region0_State8_default();
  457. break;
  458. }
  459. case mainRegion_State2__region0_State4__region0_State7__region0_State9 :
  460. {
  461. /* enterSequence with history in child State9 for leaf State9 */
  462. enseq_mainRegion_State2__region0_State4__region0_State7__region0_State9_default();
  463. break;
  464. }
  465. default: break;
  466. }
  467. }
  468. /* Default exit sequence for state State1 */
  469. void DeepHistory::exseq_mainRegion_State1()
  470. {
  471. /* Default exit sequence for state State1 */
  472. stateConfVector[0] = DeepHistory_last_state;
  473. stateConfVectorPosition = 0;
  474. }
  475. /* Default exit sequence for state State2 */
  476. void DeepHistory::exseq_mainRegion_State2()
  477. {
  478. /* Default exit sequence for state State2 */
  479. exseq_mainRegion_State2__region0();
  480. }
  481. /* Default exit sequence for state a */
  482. void DeepHistory::exseq_mainRegion_State2__region0_a()
  483. {
  484. /* Default exit sequence for state a */
  485. stateConfVector[0] = DeepHistory_last_state;
  486. stateConfVectorPosition = 0;
  487. }
  488. /* Default exit sequence for state State4 */
  489. void DeepHistory::exseq_mainRegion_State2__region0_State4()
  490. {
  491. /* Default exit sequence for state State4 */
  492. exseq_mainRegion_State2__region0_State4__region0();
  493. }
  494. /* Default exit sequence for state State6 */
  495. void DeepHistory::exseq_mainRegion_State2__region0_State4__region0_State6()
  496. {
  497. /* Default exit sequence for state State6 */
  498. stateConfVector[0] = DeepHistory_last_state;
  499. stateConfVectorPosition = 0;
  500. }
  501. /* Default exit sequence for state State7 */
  502. void DeepHistory::exseq_mainRegion_State2__region0_State4__region0_State7()
  503. {
  504. /* Default exit sequence for state State7 */
  505. exseq_mainRegion_State2__region0_State4__region0_State7__region0();
  506. }
  507. /* Default exit sequence for state State8 */
  508. void DeepHistory::exseq_mainRegion_State2__region0_State4__region0_State7__region0_State8()
  509. {
  510. /* Default exit sequence for state State8 */
  511. stateConfVector[0] = DeepHistory_last_state;
  512. stateConfVectorPosition = 0;
  513. }
  514. /* Default exit sequence for state State9 */
  515. void DeepHistory::exseq_mainRegion_State2__region0_State4__region0_State7__region0_State9()
  516. {
  517. /* Default exit sequence for state State9 */
  518. stateConfVector[0] = DeepHistory_last_state;
  519. stateConfVectorPosition = 0;
  520. }
  521. /* Default exit sequence for state State5 */
  522. void DeepHistory::exseq_mainRegion_State2__region0_State5()
  523. {
  524. /* Default exit sequence for state State5 */
  525. stateConfVector[0] = DeepHistory_last_state;
  526. stateConfVectorPosition = 0;
  527. }
  528. /* Default exit sequence for region mainRegion */
  529. void DeepHistory::exseq_mainRegion()
  530. {
  531. /* Default exit sequence for region mainRegion */
  532. /* Handle exit of all possible states (of DeepHistory.mainRegion) at position 0... */
  533. switch(stateConfVector[ 0 ])
  534. {
  535. case mainRegion_State1 :
  536. {
  537. exseq_mainRegion_State1();
  538. break;
  539. }
  540. case mainRegion_State2__region0_a :
  541. {
  542. exseq_mainRegion_State2__region0_a();
  543. break;
  544. }
  545. case mainRegion_State2__region0_State4__region0_State6 :
  546. {
  547. exseq_mainRegion_State2__region0_State4__region0_State6();
  548. break;
  549. }
  550. case mainRegion_State2__region0_State4__region0_State7__region0_State8 :
  551. {
  552. exseq_mainRegion_State2__region0_State4__region0_State7__region0_State8();
  553. break;
  554. }
  555. case mainRegion_State2__region0_State4__region0_State7__region0_State9 :
  556. {
  557. exseq_mainRegion_State2__region0_State4__region0_State7__region0_State9();
  558. break;
  559. }
  560. case mainRegion_State2__region0_State5 :
  561. {
  562. exseq_mainRegion_State2__region0_State5();
  563. break;
  564. }
  565. default: break;
  566. }
  567. }
  568. /* Default exit sequence for region null */
  569. void DeepHistory::exseq_mainRegion_State2__region0()
  570. {
  571. /* Default exit sequence for region null */
  572. /* Handle exit of all possible states (of DeepHistory.mainRegion.State2._region0) at position 0... */
  573. switch(stateConfVector[ 0 ])
  574. {
  575. case mainRegion_State2__region0_a :
  576. {
  577. exseq_mainRegion_State2__region0_a();
  578. break;
  579. }
  580. case mainRegion_State2__region0_State4__region0_State6 :
  581. {
  582. exseq_mainRegion_State2__region0_State4__region0_State6();
  583. break;
  584. }
  585. case mainRegion_State2__region0_State4__region0_State7__region0_State8 :
  586. {
  587. exseq_mainRegion_State2__region0_State4__region0_State7__region0_State8();
  588. break;
  589. }
  590. case mainRegion_State2__region0_State4__region0_State7__region0_State9 :
  591. {
  592. exseq_mainRegion_State2__region0_State4__region0_State7__region0_State9();
  593. break;
  594. }
  595. case mainRegion_State2__region0_State5 :
  596. {
  597. exseq_mainRegion_State2__region0_State5();
  598. break;
  599. }
  600. default: break;
  601. }
  602. }
  603. /* Default exit sequence for region null */
  604. void DeepHistory::exseq_mainRegion_State2__region0_State4__region0()
  605. {
  606. /* Default exit sequence for region null */
  607. /* Handle exit of all possible states (of DeepHistory.mainRegion.State2._region0.State4._region0) at position 0... */
  608. switch(stateConfVector[ 0 ])
  609. {
  610. case mainRegion_State2__region0_State4__region0_State6 :
  611. {
  612. exseq_mainRegion_State2__region0_State4__region0_State6();
  613. break;
  614. }
  615. case mainRegion_State2__region0_State4__region0_State7__region0_State8 :
  616. {
  617. exseq_mainRegion_State2__region0_State4__region0_State7__region0_State8();
  618. break;
  619. }
  620. case mainRegion_State2__region0_State4__region0_State7__region0_State9 :
  621. {
  622. exseq_mainRegion_State2__region0_State4__region0_State7__region0_State9();
  623. break;
  624. }
  625. default: break;
  626. }
  627. }
  628. /* Default exit sequence for region null */
  629. void DeepHistory::exseq_mainRegion_State2__region0_State4__region0_State7__region0()
  630. {
  631. /* Default exit sequence for region null */
  632. /* Handle exit of all possible states (of DeepHistory.mainRegion.State2._region0.State4._region0.State7._region0) at position 0... */
  633. switch(stateConfVector[ 0 ])
  634. {
  635. case mainRegion_State2__region0_State4__region0_State7__region0_State8 :
  636. {
  637. exseq_mainRegion_State2__region0_State4__region0_State7__region0_State8();
  638. break;
  639. }
  640. case mainRegion_State2__region0_State4__region0_State7__region0_State9 :
  641. {
  642. exseq_mainRegion_State2__region0_State4__region0_State7__region0_State9();
  643. break;
  644. }
  645. default: break;
  646. }
  647. }
  648. /* The reactions of state State1. */
  649. void DeepHistory::react_mainRegion_State1()
  650. {
  651. /* The reactions of state State1. */
  652. if (check_mainRegion_State1_tr0_tr0())
  653. {
  654. effect_mainRegion_State1_tr0();
  655. }
  656. }
  657. /* The reactions of state a. */
  658. void DeepHistory::react_mainRegion_State2__region0_a()
  659. {
  660. /* The reactions of state a. */
  661. if (check_mainRegion_State2_tr0_tr0())
  662. {
  663. effect_mainRegion_State2_tr0();
  664. } else
  665. {
  666. if (check_mainRegion_State2__region0_a_tr0_tr0())
  667. {
  668. effect_mainRegion_State2__region0_a_tr0();
  669. }
  670. }
  671. }
  672. /* The reactions of state State6. */
  673. void DeepHistory::react_mainRegion_State2__region0_State4__region0_State6()
  674. {
  675. /* The reactions of state State6. */
  676. if (check_mainRegion_State2_tr0_tr0())
  677. {
  678. effect_mainRegion_State2_tr0();
  679. } else
  680. {
  681. if (check_mainRegion_State2__region0_State4_tr0_tr0())
  682. {
  683. effect_mainRegion_State2__region0_State4_tr0();
  684. } else
  685. {
  686. if (check_mainRegion_State2__region0_State4__region0_State6_tr0_tr0())
  687. {
  688. effect_mainRegion_State2__region0_State4__region0_State6_tr0();
  689. }
  690. }
  691. }
  692. }
  693. /* The reactions of state State8. */
  694. void DeepHistory::react_mainRegion_State2__region0_State4__region0_State7__region0_State8()
  695. {
  696. /* The reactions of state State8. */
  697. if (check_mainRegion_State2_tr0_tr0())
  698. {
  699. effect_mainRegion_State2_tr0();
  700. } else
  701. {
  702. if (check_mainRegion_State2__region0_State4_tr0_tr0())
  703. {
  704. effect_mainRegion_State2__region0_State4_tr0();
  705. } else
  706. {
  707. if (check_mainRegion_State2__region0_State4__region0_State7_tr0_tr0())
  708. {
  709. effect_mainRegion_State2__region0_State4__region0_State7_tr0();
  710. } else
  711. {
  712. if (check_mainRegion_State2__region0_State4__region0_State7__region0_State8_tr0_tr0())
  713. {
  714. effect_mainRegion_State2__region0_State4__region0_State7__region0_State8_tr0();
  715. }
  716. }
  717. }
  718. }
  719. }
  720. /* The reactions of state State9. */
  721. void DeepHistory::react_mainRegion_State2__region0_State4__region0_State7__region0_State9()
  722. {
  723. /* The reactions of state State9. */
  724. if (check_mainRegion_State2_tr0_tr0())
  725. {
  726. effect_mainRegion_State2_tr0();
  727. } else
  728. {
  729. if (check_mainRegion_State2__region0_State4_tr0_tr0())
  730. {
  731. effect_mainRegion_State2__region0_State4_tr0();
  732. } else
  733. {
  734. if (check_mainRegion_State2__region0_State4__region0_State7_tr0_tr0())
  735. {
  736. effect_mainRegion_State2__region0_State4__region0_State7_tr0();
  737. } else
  738. {
  739. if (check_mainRegion_State2__region0_State4__region0_State7__region0_State9_tr0_tr0())
  740. {
  741. effect_mainRegion_State2__region0_State4__region0_State7__region0_State9_tr0();
  742. }
  743. }
  744. }
  745. }
  746. }
  747. /* The reactions of state State5. */
  748. void DeepHistory::react_mainRegion_State2__region0_State5()
  749. {
  750. /* The reactions of state State5. */
  751. if (check_mainRegion_State2_tr0_tr0())
  752. {
  753. effect_mainRegion_State2_tr0();
  754. } else
  755. {
  756. }
  757. }
  758. /* Default react sequence for initial entry */
  759. void DeepHistory::react_mainRegion__entry_Default()
  760. {
  761. /* Default react sequence for initial entry */
  762. enseq_mainRegion_State1_default();
  763. }
  764. /* Default react sequence for initial entry */
  765. void DeepHistory::react_mainRegion_State2__region0_State4__region0__entry_Default()
  766. {
  767. /* Default react sequence for initial entry */
  768. enseq_mainRegion_State2__region0_State4__region0_State6_default();
  769. }
  770. /* Default react sequence for initial entry */
  771. void DeepHistory::react_mainRegion_State2__region0_State4__region0_State7__region0__entry_Default()
  772. {
  773. /* Default react sequence for initial entry */
  774. enseq_mainRegion_State2__region0_State4__region0_State7__region0_State8_default();
  775. }
  776. /* Default react sequence for deep history entry */
  777. void DeepHistory::react_mainRegion_State2__region0__entry_Default()
  778. {
  779. /* Default react sequence for deep history entry */
  780. /* Enter the region with deep history */
  781. if (historyVector[0] != DeepHistory_last_state)
  782. {
  783. dhenseq_mainRegion_State2__region0();
  784. } else
  785. {
  786. enseq_mainRegion_State2__region0_a_default();
  787. }
  788. }