DeepEntry.c 22 KB

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