DeepEntry.c 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808
  1. #include <stdlib.h>
  2. #include <string.h>
  3. #include "sc_types.h"
  4. #include "DeepEntry.h"
  5. /*! \file Implementation of the state machine 'DeepEntry'
  6. */
  7. /* prototypes of all internal functions */
  8. static sc_boolean deepEntry_check_r2_B_tr0_tr0(const DeepEntry* handle);
  9. static sc_boolean deepEntry_check_r2_B_r_BA_tr0_tr0(const DeepEntry* handle);
  10. static sc_boolean deepEntry_check_r2_C_tr0_tr0(const DeepEntry* handle);
  11. static void deepEntry_effect_r2_B_tr0(DeepEntry* handle);
  12. static void deepEntry_effect_r2_B_r_BA_tr0(DeepEntry* handle);
  13. static void deepEntry_effect_r2_C_tr0(DeepEntry* handle);
  14. static void deepEntry_enact_r_A(DeepEntry* handle);
  15. static void deepEntry_enact_r2_B_r_BA(DeepEntry* handle);
  16. static void deepEntry_enact_r3_D(DeepEntry* handle);
  17. static void deepEntry_enact_r3_D_r_DA(DeepEntry* handle);
  18. static void deepEntry_enseq_r_A_r_B_default(DeepEntry* handle);
  19. static void deepEntry_enseq_r2_B_default(DeepEntry* handle);
  20. static void deepEntry_enseq_r2_B_r_BA_default(DeepEntry* handle);
  21. static void deepEntry_enseq_r2_B_r_BA_r_BAA_default(DeepEntry* handle);
  22. static void deepEntry_enseq_r2_B_r_BB_default(DeepEntry* handle);
  23. static void deepEntry_enseq_r2_C_default(DeepEntry* handle);
  24. static void deepEntry_enseq_r3_D_r_DA_r_DAA_default(DeepEntry* handle);
  25. static void deepEntry_enseq_r_default(DeepEntry* handle);
  26. static void deepEntry_enseq_r2_default(DeepEntry* handle);
  27. static void deepEntry_enseq_r2_B_r_default(DeepEntry* handle);
  28. static void deepEntry_shenseq_r2_B_r(DeepEntry* handle);
  29. static void deepEntry_enseq_r2_B_r_BA_r_default(DeepEntry* handle);
  30. static void deepEntry_enseq_r3_default(DeepEntry* handle);
  31. static void deepEntry_dhenseq_r3(DeepEntry* handle);
  32. static void deepEntry_dhenseq_r3_D_r(DeepEntry* handle);
  33. static void deepEntry_dhenseq_r3_D_r_DA_r(DeepEntry* handle);
  34. static void deepEntry_exseq_r_A_r_B(DeepEntry* handle);
  35. static void deepEntry_exseq_r2_B(DeepEntry* handle);
  36. static void deepEntry_exseq_r2_B_r_BA(DeepEntry* handle);
  37. static void deepEntry_exseq_r2_B_r_BA_r_BAA(DeepEntry* handle);
  38. static void deepEntry_exseq_r2_B_r_BB(DeepEntry* handle);
  39. static void deepEntry_exseq_r2_C(DeepEntry* handle);
  40. static void deepEntry_exseq_r3_D_r_DA_r_DAA(DeepEntry* handle);
  41. static void deepEntry_exseq_r(DeepEntry* handle);
  42. static void deepEntry_exseq_r_A_r(DeepEntry* handle);
  43. static void deepEntry_exseq_r2(DeepEntry* handle);
  44. static void deepEntry_exseq_r2_B_r(DeepEntry* handle);
  45. static void deepEntry_exseq_r2_B_r_BA_r(DeepEntry* handle);
  46. static void deepEntry_exseq_r3(DeepEntry* handle);
  47. static void deepEntry_exseq_r3_D_r(DeepEntry* handle);
  48. static void deepEntry_exseq_r3_D_r_DA_r(DeepEntry* handle);
  49. static void deepEntry_react_r_A_r_B(DeepEntry* handle);
  50. static void deepEntry_react_r2_B_r_BA_r_BAA(DeepEntry* handle);
  51. static void deepEntry_react_r2_B_r_BB(DeepEntry* handle);
  52. static void deepEntry_react_r2_C(DeepEntry* handle);
  53. static void deepEntry_react_r3_D_r_DA_r_DAA(DeepEntry* handle);
  54. static void deepEntry_react_r__entry_Default(DeepEntry* handle);
  55. static void deepEntry_react_r2_B_r__entry_Default(DeepEntry* handle);
  56. static void deepEntry_react_r2_B_r_BA_r__entry_Default(DeepEntry* handle);
  57. static void deepEntry_react_r2__entry_Default(DeepEntry* handle);
  58. static void deepEntry_react_r3__entry_Default(DeepEntry* handle);
  59. static void deepEntry_clearInEvents(DeepEntry* handle);
  60. static void deepEntry_clearOutEvents(DeepEntry* handle);
  61. void deepEntry_init(DeepEntry* handle)
  62. {
  63. sc_integer i;
  64. for (i = 0; i < DEEPENTRY_MAX_ORTHOGONAL_STATES; ++i)
  65. {
  66. handle->stateConfVector[i] = DeepEntry_last_state;
  67. }
  68. for (i = 0; i < DEEPENTRY_MAX_HISTORY_STATES; ++i)
  69. {
  70. handle->historyVector[i] = DeepEntry_last_state;
  71. }
  72. handle->stateConfVectorPosition = 0;
  73. deepEntry_clearInEvents(handle);
  74. deepEntry_clearOutEvents(handle);
  75. /* Default init sequence for statechart DeepEntry */
  76. handle->iface.x = 0;
  77. handle->iface.y = 0;
  78. handle->iface.z = 0;
  79. }
  80. void deepEntry_enter(DeepEntry* handle)
  81. {
  82. /* Default enter sequence for statechart DeepEntry */
  83. deepEntry_enseq_r_default(handle);
  84. deepEntry_enseq_r2_default(handle);
  85. deepEntry_enseq_r3_default(handle);
  86. }
  87. void deepEntry_exit(DeepEntry* handle)
  88. {
  89. /* Default exit sequence for statechart DeepEntry */
  90. deepEntry_exseq_r(handle);
  91. deepEntry_exseq_r2(handle);
  92. deepEntry_exseq_r3(handle);
  93. }
  94. sc_boolean deepEntry_isActive(const DeepEntry* handle)
  95. {
  96. sc_boolean result;
  97. if (handle->stateConfVector[0] != DeepEntry_last_state || handle->stateConfVector[1] != DeepEntry_last_state || handle->stateConfVector[2] != DeepEntry_last_state)
  98. {
  99. result = bool_true;
  100. }
  101. else
  102. {
  103. result = bool_false;
  104. }
  105. return result;
  106. }
  107. /*
  108. * Always returns 'false' since this state machine can never become final.
  109. */
  110. sc_boolean deepEntry_isFinal(const DeepEntry* handle)
  111. {
  112. return bool_false;
  113. }
  114. static void deepEntry_clearInEvents(DeepEntry* handle)
  115. {
  116. handle->iface.e_raised = bool_false;
  117. handle->iface.f_raised = bool_false;
  118. }
  119. static void deepEntry_clearOutEvents(DeepEntry* handle)
  120. {
  121. }
  122. void deepEntry_runCycle(DeepEntry* handle)
  123. {
  124. deepEntry_clearOutEvents(handle);
  125. for (handle->stateConfVectorPosition = 0;
  126. handle->stateConfVectorPosition < DEEPENTRY_MAX_ORTHOGONAL_STATES;
  127. handle->stateConfVectorPosition++)
  128. {
  129. switch (handle->stateConfVector[handle->stateConfVectorPosition])
  130. {
  131. case DeepEntry_r_A_r_B :
  132. {
  133. deepEntry_react_r_A_r_B(handle);
  134. break;
  135. }
  136. case DeepEntry_r2_B_r_BA_r_BAA :
  137. {
  138. deepEntry_react_r2_B_r_BA_r_BAA(handle);
  139. break;
  140. }
  141. case DeepEntry_r2_B_r_BB :
  142. {
  143. deepEntry_react_r2_B_r_BB(handle);
  144. break;
  145. }
  146. case DeepEntry_r2_C :
  147. {
  148. deepEntry_react_r2_C(handle);
  149. break;
  150. }
  151. case DeepEntry_r3_D_r_DA_r_DAA :
  152. {
  153. deepEntry_react_r3_D_r_DA_r_DAA(handle);
  154. break;
  155. }
  156. default:
  157. break;
  158. }
  159. }
  160. deepEntry_clearInEvents(handle);
  161. }
  162. sc_boolean deepEntry_isStateActive(const DeepEntry* handle, DeepEntryStates state)
  163. {
  164. sc_boolean result = bool_false;
  165. switch (state)
  166. {
  167. case DeepEntry_r_A :
  168. result = (sc_boolean) (handle->stateConfVector[0] >= DeepEntry_r_A
  169. && handle->stateConfVector[0] <= DeepEntry_r_A_r_B);
  170. break;
  171. case DeepEntry_r_A_r_B :
  172. result = (sc_boolean) (handle->stateConfVector[0] == DeepEntry_r_A_r_B
  173. );
  174. break;
  175. case DeepEntry_r2_B :
  176. result = (sc_boolean) (handle->stateConfVector[1] >= DeepEntry_r2_B
  177. && handle->stateConfVector[1] <= DeepEntry_r2_B_r_BB);
  178. break;
  179. case DeepEntry_r2_B_r_BA :
  180. result = (sc_boolean) (handle->stateConfVector[1] >= DeepEntry_r2_B_r_BA
  181. && handle->stateConfVector[1] <= DeepEntry_r2_B_r_BA_r_BAA);
  182. break;
  183. case DeepEntry_r2_B_r_BA_r_BAA :
  184. result = (sc_boolean) (handle->stateConfVector[1] == DeepEntry_r2_B_r_BA_r_BAA
  185. );
  186. break;
  187. case DeepEntry_r2_B_r_BB :
  188. result = (sc_boolean) (handle->stateConfVector[1] == DeepEntry_r2_B_r_BB
  189. );
  190. break;
  191. case DeepEntry_r2_C :
  192. result = (sc_boolean) (handle->stateConfVector[1] == DeepEntry_r2_C
  193. );
  194. break;
  195. case DeepEntry_r3_D :
  196. result = (sc_boolean) (handle->stateConfVector[2] >= DeepEntry_r3_D
  197. && handle->stateConfVector[2] <= DeepEntry_r3_D_r_DA_r_DAA);
  198. break;
  199. case DeepEntry_r3_D_r_DA :
  200. result = (sc_boolean) (handle->stateConfVector[2] >= DeepEntry_r3_D_r_DA
  201. && handle->stateConfVector[2] <= DeepEntry_r3_D_r_DA_r_DAA);
  202. break;
  203. case DeepEntry_r3_D_r_DA_r_DAA :
  204. result = (sc_boolean) (handle->stateConfVector[2] == DeepEntry_r3_D_r_DA_r_DAA
  205. );
  206. break;
  207. default:
  208. result = bool_false;
  209. break;
  210. }
  211. return result;
  212. }
  213. void deepEntryIface_raise_e(DeepEntry* handle)
  214. {
  215. handle->iface.e_raised = bool_true;
  216. }
  217. void deepEntryIface_raise_f(DeepEntry* handle)
  218. {
  219. handle->iface.f_raised = bool_true;
  220. }
  221. sc_integer deepEntryIface_get_x(const DeepEntry* handle)
  222. {
  223. return handle->iface.x;
  224. }
  225. void deepEntryIface_set_x(DeepEntry* handle, sc_integer value)
  226. {
  227. handle->iface.x = value;
  228. }
  229. sc_integer deepEntryIface_get_y(const DeepEntry* handle)
  230. {
  231. return handle->iface.y;
  232. }
  233. void deepEntryIface_set_y(DeepEntry* handle, sc_integer value)
  234. {
  235. handle->iface.y = value;
  236. }
  237. sc_integer deepEntryIface_get_z(const DeepEntry* handle)
  238. {
  239. return handle->iface.z;
  240. }
  241. void deepEntryIface_set_z(DeepEntry* handle, sc_integer value)
  242. {
  243. handle->iface.z = value;
  244. }
  245. /* implementations of all internal functions */
  246. static sc_boolean deepEntry_check_r2_B_tr0_tr0(const DeepEntry* handle)
  247. {
  248. return handle->iface.f_raised;
  249. }
  250. static sc_boolean deepEntry_check_r2_B_r_BA_tr0_tr0(const DeepEntry* handle)
  251. {
  252. return handle->iface.e_raised;
  253. }
  254. static sc_boolean deepEntry_check_r2_C_tr0_tr0(const DeepEntry* handle)
  255. {
  256. return handle->iface.f_raised;
  257. }
  258. static void deepEntry_effect_r2_B_tr0(DeepEntry* handle)
  259. {
  260. deepEntry_exseq_r2_B(handle);
  261. deepEntry_enseq_r2_C_default(handle);
  262. }
  263. static void deepEntry_effect_r2_B_r_BA_tr0(DeepEntry* handle)
  264. {
  265. deepEntry_exseq_r2_B_r_BA(handle);
  266. deepEntry_enseq_r2_B_r_BB_default(handle);
  267. }
  268. static void deepEntry_effect_r2_C_tr0(DeepEntry* handle)
  269. {
  270. deepEntry_exseq_r2_C(handle);
  271. deepEntry_enseq_r2_B_default(handle);
  272. }
  273. /* Entry action for state 'A'. */
  274. static void deepEntry_enact_r_A(DeepEntry* handle)
  275. {
  276. /* Entry action for state 'A'. */
  277. handle->iface.x += 1;
  278. }
  279. /* Entry action for state 'BA'. */
  280. static void deepEntry_enact_r2_B_r_BA(DeepEntry* handle)
  281. {
  282. /* Entry action for state 'BA'. */
  283. handle->iface.y += 1;
  284. }
  285. /* Entry action for state 'D'. */
  286. static void deepEntry_enact_r3_D(DeepEntry* handle)
  287. {
  288. /* Entry action for state 'D'. */
  289. handle->iface.z += 1;
  290. }
  291. /* Entry action for state 'DA'. */
  292. static void deepEntry_enact_r3_D_r_DA(DeepEntry* handle)
  293. {
  294. /* Entry action for state 'DA'. */
  295. handle->iface.z += 1;
  296. }
  297. /* 'default' enter sequence for state B */
  298. static void deepEntry_enseq_r_A_r_B_default(DeepEntry* handle)
  299. {
  300. /* 'default' enter sequence for state B */
  301. handle->stateConfVector[0] = DeepEntry_r_A_r_B;
  302. handle->stateConfVectorPosition = 0;
  303. }
  304. /* 'default' enter sequence for state B */
  305. static void deepEntry_enseq_r2_B_default(DeepEntry* handle)
  306. {
  307. /* 'default' enter sequence for state B */
  308. deepEntry_enseq_r2_B_r_default(handle);
  309. }
  310. /* 'default' enter sequence for state BA */
  311. static void deepEntry_enseq_r2_B_r_BA_default(DeepEntry* handle)
  312. {
  313. /* 'default' enter sequence for state BA */
  314. deepEntry_enact_r2_B_r_BA(handle);
  315. deepEntry_enseq_r2_B_r_BA_r_default(handle);
  316. handle->historyVector[0] = handle->stateConfVector[1];
  317. }
  318. /* 'default' enter sequence for state BAA */
  319. static void deepEntry_enseq_r2_B_r_BA_r_BAA_default(DeepEntry* handle)
  320. {
  321. /* 'default' enter sequence for state BAA */
  322. handle->stateConfVector[1] = DeepEntry_r2_B_r_BA_r_BAA;
  323. handle->stateConfVectorPosition = 1;
  324. }
  325. /* 'default' enter sequence for state BB */
  326. static void deepEntry_enseq_r2_B_r_BB_default(DeepEntry* handle)
  327. {
  328. /* 'default' enter sequence for state BB */
  329. handle->stateConfVector[1] = DeepEntry_r2_B_r_BB;
  330. handle->stateConfVectorPosition = 1;
  331. handle->historyVector[0] = handle->stateConfVector[1];
  332. }
  333. /* 'default' enter sequence for state C */
  334. static void deepEntry_enseq_r2_C_default(DeepEntry* handle)
  335. {
  336. /* 'default' enter sequence for state C */
  337. handle->stateConfVector[1] = DeepEntry_r2_C;
  338. handle->stateConfVectorPosition = 1;
  339. }
  340. /* 'default' enter sequence for state DAA */
  341. static void deepEntry_enseq_r3_D_r_DA_r_DAA_default(DeepEntry* handle)
  342. {
  343. /* 'default' enter sequence for state DAA */
  344. handle->stateConfVector[2] = DeepEntry_r3_D_r_DA_r_DAA;
  345. handle->stateConfVectorPosition = 2;
  346. handle->historyVector[3] = handle->stateConfVector[2];
  347. }
  348. /* 'default' enter sequence for region r */
  349. static void deepEntry_enseq_r_default(DeepEntry* handle)
  350. {
  351. /* 'default' enter sequence for region r */
  352. deepEntry_react_r__entry_Default(handle);
  353. }
  354. /* 'default' enter sequence for region r2 */
  355. static void deepEntry_enseq_r2_default(DeepEntry* handle)
  356. {
  357. /* 'default' enter sequence for region r2 */
  358. deepEntry_react_r2__entry_Default(handle);
  359. }
  360. /* 'default' enter sequence for region r */
  361. static void deepEntry_enseq_r2_B_r_default(DeepEntry* handle)
  362. {
  363. /* 'default' enter sequence for region r */
  364. deepEntry_react_r2_B_r__entry_Default(handle);
  365. }
  366. /* shallow enterSequence with history in child r */
  367. static void deepEntry_shenseq_r2_B_r(DeepEntry* handle)
  368. {
  369. /* shallow enterSequence with history in child r */
  370. /* Handle shallow history entry of r */
  371. switch(handle->historyVector[ 0 ])
  372. {
  373. case DeepEntry_r2_B_r_BA_r_BAA :
  374. {
  375. deepEntry_enseq_r2_B_r_BA_default(handle);
  376. break;
  377. }
  378. case DeepEntry_r2_B_r_BB :
  379. {
  380. deepEntry_enseq_r2_B_r_BB_default(handle);
  381. break;
  382. }
  383. default: break;
  384. }
  385. }
  386. /* 'default' enter sequence for region r */
  387. static void deepEntry_enseq_r2_B_r_BA_r_default(DeepEntry* handle)
  388. {
  389. /* 'default' enter sequence for region r */
  390. deepEntry_react_r2_B_r_BA_r__entry_Default(handle);
  391. }
  392. /* 'default' enter sequence for region r3 */
  393. static void deepEntry_enseq_r3_default(DeepEntry* handle)
  394. {
  395. /* 'default' enter sequence for region r3 */
  396. deepEntry_react_r3__entry_Default(handle);
  397. }
  398. /* deep enterSequence with history in child r3 */
  399. static void deepEntry_dhenseq_r3(DeepEntry* handle)
  400. {
  401. /* deep enterSequence with history in child r3 */
  402. /* Handle deep history entry of r3 */
  403. switch(handle->historyVector[ 1 ])
  404. {
  405. case DeepEntry_r3_D_r_DA_r_DAA :
  406. {
  407. /* enterSequence with history in child D for leaf DAA */
  408. deepEntry_enact_r3_D(handle);
  409. deepEntry_dhenseq_r3_D_r(handle);
  410. break;
  411. }
  412. default: break;
  413. }
  414. }
  415. /* deep enterSequence with history in child r */
  416. static void deepEntry_dhenseq_r3_D_r(DeepEntry* handle)
  417. {
  418. /* deep enterSequence with history in child r */
  419. /* Handle deep history entry of r */
  420. switch(handle->historyVector[ 2 ])
  421. {
  422. case DeepEntry_r3_D_r_DA_r_DAA :
  423. {
  424. /* enterSequence with history in child DA for leaf DAA */
  425. deepEntry_enact_r3_D_r_DA(handle);
  426. deepEntry_dhenseq_r3_D_r_DA_r(handle);
  427. break;
  428. }
  429. default: break;
  430. }
  431. }
  432. /* deep enterSequence with history in child r */
  433. static void deepEntry_dhenseq_r3_D_r_DA_r(DeepEntry* handle)
  434. {
  435. /* deep enterSequence with history in child r */
  436. /* Handle deep history entry of r */
  437. switch(handle->historyVector[ 3 ])
  438. {
  439. case DeepEntry_r3_D_r_DA_r_DAA :
  440. {
  441. /* enterSequence with history in child DAA for leaf DAA */
  442. deepEntry_enseq_r3_D_r_DA_r_DAA_default(handle);
  443. break;
  444. }
  445. default: break;
  446. }
  447. }
  448. /* Default exit sequence for state B */
  449. static void deepEntry_exseq_r_A_r_B(DeepEntry* handle)
  450. {
  451. /* Default exit sequence for state B */
  452. handle->stateConfVector[0] = DeepEntry_last_state;
  453. handle->stateConfVectorPosition = 0;
  454. }
  455. /* Default exit sequence for state B */
  456. static void deepEntry_exseq_r2_B(DeepEntry* handle)
  457. {
  458. /* Default exit sequence for state B */
  459. deepEntry_exseq_r2_B_r(handle);
  460. }
  461. /* Default exit sequence for state BA */
  462. static void deepEntry_exseq_r2_B_r_BA(DeepEntry* handle)
  463. {
  464. /* Default exit sequence for state BA */
  465. deepEntry_exseq_r2_B_r_BA_r(handle);
  466. }
  467. /* Default exit sequence for state BAA */
  468. static void deepEntry_exseq_r2_B_r_BA_r_BAA(DeepEntry* handle)
  469. {
  470. /* Default exit sequence for state BAA */
  471. handle->stateConfVector[1] = DeepEntry_last_state;
  472. handle->stateConfVectorPosition = 1;
  473. }
  474. /* Default exit sequence for state BB */
  475. static void deepEntry_exseq_r2_B_r_BB(DeepEntry* handle)
  476. {
  477. /* Default exit sequence for state BB */
  478. handle->stateConfVector[1] = DeepEntry_last_state;
  479. handle->stateConfVectorPosition = 1;
  480. }
  481. /* Default exit sequence for state C */
  482. static void deepEntry_exseq_r2_C(DeepEntry* handle)
  483. {
  484. /* Default exit sequence for state C */
  485. handle->stateConfVector[1] = DeepEntry_last_state;
  486. handle->stateConfVectorPosition = 1;
  487. }
  488. /* Default exit sequence for state DAA */
  489. static void deepEntry_exseq_r3_D_r_DA_r_DAA(DeepEntry* handle)
  490. {
  491. /* Default exit sequence for state DAA */
  492. handle->stateConfVector[2] = DeepEntry_last_state;
  493. handle->stateConfVectorPosition = 2;
  494. }
  495. /* Default exit sequence for region r */
  496. static void deepEntry_exseq_r(DeepEntry* handle)
  497. {
  498. /* Default exit sequence for region r */
  499. /* Handle exit of all possible states (of DeepEntry.r) at position 0... */
  500. switch(handle->stateConfVector[ 0 ])
  501. {
  502. case DeepEntry_r_A_r_B :
  503. {
  504. deepEntry_exseq_r_A_r_B(handle);
  505. break;
  506. }
  507. default: break;
  508. }
  509. }
  510. /* Default exit sequence for region r */
  511. static void deepEntry_exseq_r_A_r(DeepEntry* handle)
  512. {
  513. /* Default exit sequence for region r */
  514. /* Handle exit of all possible states (of DeepEntry.r.A.r) at position 0... */
  515. switch(handle->stateConfVector[ 0 ])
  516. {
  517. case DeepEntry_r_A_r_B :
  518. {
  519. deepEntry_exseq_r_A_r_B(handle);
  520. break;
  521. }
  522. default: break;
  523. }
  524. }
  525. /* Default exit sequence for region r2 */
  526. static void deepEntry_exseq_r2(DeepEntry* handle)
  527. {
  528. /* Default exit sequence for region r2 */
  529. /* Handle exit of all possible states (of DeepEntry.r2) at position 1... */
  530. switch(handle->stateConfVector[ 1 ])
  531. {
  532. case DeepEntry_r2_B_r_BA_r_BAA :
  533. {
  534. deepEntry_exseq_r2_B_r_BA_r_BAA(handle);
  535. break;
  536. }
  537. case DeepEntry_r2_B_r_BB :
  538. {
  539. deepEntry_exseq_r2_B_r_BB(handle);
  540. break;
  541. }
  542. case DeepEntry_r2_C :
  543. {
  544. deepEntry_exseq_r2_C(handle);
  545. break;
  546. }
  547. default: break;
  548. }
  549. }
  550. /* Default exit sequence for region r */
  551. static void deepEntry_exseq_r2_B_r(DeepEntry* handle)
  552. {
  553. /* Default exit sequence for region r */
  554. /* Handle exit of all possible states (of DeepEntry.r2.B.r) at position 1... */
  555. switch(handle->stateConfVector[ 1 ])
  556. {
  557. case DeepEntry_r2_B_r_BA_r_BAA :
  558. {
  559. deepEntry_exseq_r2_B_r_BA_r_BAA(handle);
  560. break;
  561. }
  562. case DeepEntry_r2_B_r_BB :
  563. {
  564. deepEntry_exseq_r2_B_r_BB(handle);
  565. break;
  566. }
  567. default: break;
  568. }
  569. }
  570. /* Default exit sequence for region r */
  571. static void deepEntry_exseq_r2_B_r_BA_r(DeepEntry* handle)
  572. {
  573. /* Default exit sequence for region r */
  574. /* Handle exit of all possible states (of DeepEntry.r2.B.r.BA.r) at position 1... */
  575. switch(handle->stateConfVector[ 1 ])
  576. {
  577. case DeepEntry_r2_B_r_BA_r_BAA :
  578. {
  579. deepEntry_exseq_r2_B_r_BA_r_BAA(handle);
  580. break;
  581. }
  582. default: break;
  583. }
  584. }
  585. /* Default exit sequence for region r3 */
  586. static void deepEntry_exseq_r3(DeepEntry* handle)
  587. {
  588. /* Default exit sequence for region r3 */
  589. /* Handle exit of all possible states (of DeepEntry.r3) at position 2... */
  590. switch(handle->stateConfVector[ 2 ])
  591. {
  592. case DeepEntry_r3_D_r_DA_r_DAA :
  593. {
  594. deepEntry_exseq_r3_D_r_DA_r_DAA(handle);
  595. break;
  596. }
  597. default: break;
  598. }
  599. }
  600. /* Default exit sequence for region r */
  601. static void deepEntry_exseq_r3_D_r(DeepEntry* handle)
  602. {
  603. /* Default exit sequence for region r */
  604. /* Handle exit of all possible states (of DeepEntry.r3.D.r) at position 2... */
  605. switch(handle->stateConfVector[ 2 ])
  606. {
  607. case DeepEntry_r3_D_r_DA_r_DAA :
  608. {
  609. deepEntry_exseq_r3_D_r_DA_r_DAA(handle);
  610. break;
  611. }
  612. default: break;
  613. }
  614. }
  615. /* Default exit sequence for region r */
  616. static void deepEntry_exseq_r3_D_r_DA_r(DeepEntry* handle)
  617. {
  618. /* Default exit sequence for region r */
  619. /* Handle exit of all possible states (of DeepEntry.r3.D.r.DA.r) at position 2... */
  620. switch(handle->stateConfVector[ 2 ])
  621. {
  622. case DeepEntry_r3_D_r_DA_r_DAA :
  623. {
  624. deepEntry_exseq_r3_D_r_DA_r_DAA(handle);
  625. break;
  626. }
  627. default: break;
  628. }
  629. }
  630. /* The reactions of state B. */
  631. static void deepEntry_react_r_A_r_B(DeepEntry* handle)
  632. {
  633. /* The reactions of state B. */
  634. }
  635. /* The reactions of state BAA. */
  636. static void deepEntry_react_r2_B_r_BA_r_BAA(DeepEntry* handle)
  637. {
  638. /* The reactions of state BAA. */
  639. if (deepEntry_check_r2_B_tr0_tr0(handle) == bool_true)
  640. {
  641. deepEntry_effect_r2_B_tr0(handle);
  642. } else
  643. {
  644. if (deepEntry_check_r2_B_r_BA_tr0_tr0(handle) == bool_true)
  645. {
  646. deepEntry_effect_r2_B_r_BA_tr0(handle);
  647. } else
  648. {
  649. }
  650. }
  651. }
  652. /* The reactions of state BB. */
  653. static void deepEntry_react_r2_B_r_BB(DeepEntry* handle)
  654. {
  655. /* The reactions of state BB. */
  656. if (deepEntry_check_r2_B_tr0_tr0(handle) == bool_true)
  657. {
  658. deepEntry_effect_r2_B_tr0(handle);
  659. } else
  660. {
  661. }
  662. }
  663. /* The reactions of state C. */
  664. static void deepEntry_react_r2_C(DeepEntry* handle)
  665. {
  666. /* The reactions of state C. */
  667. if (deepEntry_check_r2_C_tr0_tr0(handle) == bool_true)
  668. {
  669. deepEntry_effect_r2_C_tr0(handle);
  670. }
  671. }
  672. /* The reactions of state DAA. */
  673. static void deepEntry_react_r3_D_r_DA_r_DAA(DeepEntry* handle)
  674. {
  675. /* The reactions of state DAA. */
  676. }
  677. /* Default react sequence for initial entry */
  678. static void deepEntry_react_r__entry_Default(DeepEntry* handle)
  679. {
  680. /* Default react sequence for initial entry */
  681. deepEntry_enact_r_A(handle);
  682. deepEntry_enseq_r_A_r_B_default(handle);
  683. }
  684. /* Default react sequence for shallow history entry */
  685. static void deepEntry_react_r2_B_r__entry_Default(DeepEntry* handle)
  686. {
  687. /* Default react sequence for shallow history entry */
  688. /* Enter the region with shallow history */
  689. if (handle->historyVector[0] != DeepEntry_last_state)
  690. {
  691. deepEntry_shenseq_r2_B_r(handle);
  692. } else
  693. {
  694. deepEntry_enact_r2_B_r_BA(handle);
  695. deepEntry_enseq_r2_B_r_BA_r_BAA_default(handle);
  696. handle->historyVector[0] = handle->stateConfVector[1];
  697. }
  698. }
  699. /* Default react sequence for initial entry */
  700. static void deepEntry_react_r2_B_r_BA_r__entry_Default(DeepEntry* handle)
  701. {
  702. /* Default react sequence for initial entry */
  703. deepEntry_enseq_r2_B_r_BA_r_BAA_default(handle);
  704. }
  705. /* Default react sequence for initial entry */
  706. static void deepEntry_react_r2__entry_Default(DeepEntry* handle)
  707. {
  708. /* Default react sequence for initial entry */
  709. deepEntry_enseq_r2_B_default(handle);
  710. }
  711. /* Default react sequence for deep history entry */
  712. static void deepEntry_react_r3__entry_Default(DeepEntry* handle)
  713. {
  714. /* Default react sequence for deep history entry */
  715. /* Enter the region with deep history */
  716. if (handle->historyVector[1] != DeepEntry_last_state)
  717. {
  718. deepEntry_dhenseq_r3(handle);
  719. } else
  720. {
  721. deepEntry_enact_r3_D(handle);
  722. deepEntry_enact_r3_D_r_DA(handle);
  723. deepEntry_enseq_r3_D_r_DA_r_DAA_default(handle);
  724. handle->historyVector[2] = handle->stateConfVector[2];
  725. handle->historyVector[1] = handle->stateConfVector[2];
  726. }
  727. }