DeepHistory.c 32 KB

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