SameNameDifferentRegion.c 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  1. #include <stdlib.h>
  2. #include <string.h>
  3. #include "sc_types.h"
  4. #include "SameNameDifferentRegion.h"
  5. /*! \file Implementation of the state machine 'SameNameDifferentRegion'
  6. */
  7. /* prototypes of all internal functions */
  8. static sc_boolean sameNameDifferentRegion_check_main_region_StateA_tr0_tr0(const SameNameDifferentRegion* handle);
  9. static sc_boolean sameNameDifferentRegion_check_main_region_StateB_r1_StateA_tr0_tr0(const SameNameDifferentRegion* handle);
  10. static void sameNameDifferentRegion_effect_main_region_StateA_tr0(SameNameDifferentRegion* handle);
  11. static void sameNameDifferentRegion_effect_main_region_StateB_r1_StateA_tr0(SameNameDifferentRegion* handle);
  12. static void sameNameDifferentRegion_enseq_main_region_StateA_default(SameNameDifferentRegion* handle);
  13. static void sameNameDifferentRegion_enseq_main_region_StateB_default(SameNameDifferentRegion* handle);
  14. static void sameNameDifferentRegion_enseq_main_region_StateB_r1_StateA_default(SameNameDifferentRegion* handle);
  15. static void sameNameDifferentRegion_enseq_main_region_StateB_r1_StateB_default(SameNameDifferentRegion* handle);
  16. static void sameNameDifferentRegion_enseq_main_region_default(SameNameDifferentRegion* handle);
  17. static void sameNameDifferentRegion_enseq_main_region_StateB_r1_default(SameNameDifferentRegion* handle);
  18. static void sameNameDifferentRegion_exseq_main_region_StateA(SameNameDifferentRegion* handle);
  19. static void sameNameDifferentRegion_exseq_main_region_StateB_r1_StateA(SameNameDifferentRegion* handle);
  20. static void sameNameDifferentRegion_exseq_main_region_StateB_r1_StateB(SameNameDifferentRegion* handle);
  21. static void sameNameDifferentRegion_exseq_main_region(SameNameDifferentRegion* handle);
  22. static void sameNameDifferentRegion_exseq_main_region_StateB_r1(SameNameDifferentRegion* handle);
  23. static void sameNameDifferentRegion_react_main_region_StateA(SameNameDifferentRegion* handle);
  24. static void sameNameDifferentRegion_react_main_region_StateB_r1_StateA(SameNameDifferentRegion* handle);
  25. static void sameNameDifferentRegion_react_main_region_StateB_r1_StateB(SameNameDifferentRegion* handle);
  26. static void sameNameDifferentRegion_react_main_region__entry_Default(SameNameDifferentRegion* handle);
  27. static void sameNameDifferentRegion_react_main_region_StateB_r1__entry_Default(SameNameDifferentRegion* handle);
  28. static void sameNameDifferentRegion_clearInEvents(SameNameDifferentRegion* handle);
  29. static void sameNameDifferentRegion_clearOutEvents(SameNameDifferentRegion* handle);
  30. void sameNameDifferentRegion_init(SameNameDifferentRegion* handle)
  31. {
  32. sc_integer i;
  33. for (i = 0; i < SAMENAMEDIFFERENTREGION_MAX_ORTHOGONAL_STATES; ++i)
  34. {
  35. handle->stateConfVector[i] = SameNameDifferentRegion_last_state;
  36. }
  37. handle->stateConfVectorPosition = 0;
  38. sameNameDifferentRegion_clearInEvents(handle);
  39. sameNameDifferentRegion_clearOutEvents(handle);
  40. }
  41. void sameNameDifferentRegion_enter(SameNameDifferentRegion* handle)
  42. {
  43. /* Default enter sequence for statechart SameNameDifferentRegion */
  44. sameNameDifferentRegion_enseq_main_region_default(handle);
  45. }
  46. void sameNameDifferentRegion_exit(SameNameDifferentRegion* handle)
  47. {
  48. /* Default exit sequence for statechart SameNameDifferentRegion */
  49. sameNameDifferentRegion_exseq_main_region(handle);
  50. }
  51. sc_boolean sameNameDifferentRegion_isActive(const SameNameDifferentRegion* handle)
  52. {
  53. sc_boolean result = bool_false;
  54. int i;
  55. for(i = 0; i < SAMENAMEDIFFERENTREGION_MAX_ORTHOGONAL_STATES; i++)
  56. {
  57. result = result || handle->stateConfVector[i] != SameNameDifferentRegion_last_state;
  58. }
  59. return result;
  60. }
  61. /*
  62. * Always returns 'false' since this state machine can never become final.
  63. */
  64. sc_boolean sameNameDifferentRegion_isFinal(const SameNameDifferentRegion* handle)
  65. {
  66. return bool_false;
  67. }
  68. static void sameNameDifferentRegion_clearInEvents(SameNameDifferentRegion* handle)
  69. {
  70. handle->iface.e1_raised = bool_false;
  71. }
  72. static void sameNameDifferentRegion_clearOutEvents(SameNameDifferentRegion* handle)
  73. {
  74. }
  75. void sameNameDifferentRegion_runCycle(SameNameDifferentRegion* handle)
  76. {
  77. sameNameDifferentRegion_clearOutEvents(handle);
  78. for (handle->stateConfVectorPosition = 0;
  79. handle->stateConfVectorPosition < SAMENAMEDIFFERENTREGION_MAX_ORTHOGONAL_STATES;
  80. handle->stateConfVectorPosition++)
  81. {
  82. switch (handle->stateConfVector[handle->stateConfVectorPosition])
  83. {
  84. case SameNameDifferentRegion_main_region_StateA :
  85. {
  86. sameNameDifferentRegion_react_main_region_StateA(handle);
  87. break;
  88. }
  89. case SameNameDifferentRegion_main_region_StateB_r1_StateA :
  90. {
  91. sameNameDifferentRegion_react_main_region_StateB_r1_StateA(handle);
  92. break;
  93. }
  94. case SameNameDifferentRegion_main_region_StateB_r1_StateB :
  95. {
  96. sameNameDifferentRegion_react_main_region_StateB_r1_StateB(handle);
  97. break;
  98. }
  99. default:
  100. break;
  101. }
  102. }
  103. sameNameDifferentRegion_clearInEvents(handle);
  104. }
  105. sc_boolean sameNameDifferentRegion_isStateActive(const SameNameDifferentRegion* handle, SameNameDifferentRegionStates state)
  106. {
  107. sc_boolean result = bool_false;
  108. switch (state)
  109. {
  110. case SameNameDifferentRegion_main_region_StateA :
  111. result = (sc_boolean) (handle->stateConfVector[SCVI_SAMENAMEDIFFERENTREGION_MAIN_REGION_STATEA] == SameNameDifferentRegion_main_region_StateA
  112. );
  113. break;
  114. case SameNameDifferentRegion_main_region_StateB :
  115. result = (sc_boolean) (handle->stateConfVector[SCVI_SAMENAMEDIFFERENTREGION_MAIN_REGION_STATEB] >= SameNameDifferentRegion_main_region_StateB
  116. && handle->stateConfVector[SCVI_SAMENAMEDIFFERENTREGION_MAIN_REGION_STATEB] <= SameNameDifferentRegion_main_region_StateB_r1_StateB);
  117. break;
  118. case SameNameDifferentRegion_main_region_StateB_r1_StateA :
  119. result = (sc_boolean) (handle->stateConfVector[SCVI_SAMENAMEDIFFERENTREGION_MAIN_REGION_STATEB_R1_STATEA] == SameNameDifferentRegion_main_region_StateB_r1_StateA
  120. );
  121. break;
  122. case SameNameDifferentRegion_main_region_StateB_r1_StateB :
  123. result = (sc_boolean) (handle->stateConfVector[SCVI_SAMENAMEDIFFERENTREGION_MAIN_REGION_STATEB_R1_STATEB] == SameNameDifferentRegion_main_region_StateB_r1_StateB
  124. );
  125. break;
  126. default:
  127. result = bool_false;
  128. break;
  129. }
  130. return result;
  131. }
  132. void sameNameDifferentRegionIface_raise_e1(SameNameDifferentRegion* handle)
  133. {
  134. handle->iface.e1_raised = bool_true;
  135. }
  136. /* implementations of all internal functions */
  137. static sc_boolean sameNameDifferentRegion_check_main_region_StateA_tr0_tr0(const SameNameDifferentRegion* handle)
  138. {
  139. return handle->iface.e1_raised;
  140. }
  141. static sc_boolean sameNameDifferentRegion_check_main_region_StateB_r1_StateA_tr0_tr0(const SameNameDifferentRegion* handle)
  142. {
  143. return handle->iface.e1_raised;
  144. }
  145. static void sameNameDifferentRegion_effect_main_region_StateA_tr0(SameNameDifferentRegion* handle)
  146. {
  147. sameNameDifferentRegion_exseq_main_region_StateA(handle);
  148. sameNameDifferentRegion_enseq_main_region_StateB_default(handle);
  149. }
  150. static void sameNameDifferentRegion_effect_main_region_StateB_r1_StateA_tr0(SameNameDifferentRegion* handle)
  151. {
  152. sameNameDifferentRegion_exseq_main_region_StateB_r1_StateA(handle);
  153. sameNameDifferentRegion_enseq_main_region_StateB_r1_StateB_default(handle);
  154. }
  155. /* 'default' enter sequence for state StateA */
  156. static void sameNameDifferentRegion_enseq_main_region_StateA_default(SameNameDifferentRegion* handle)
  157. {
  158. /* 'default' enter sequence for state StateA */
  159. handle->stateConfVector[0] = SameNameDifferentRegion_main_region_StateA;
  160. handle->stateConfVectorPosition = 0;
  161. }
  162. /* 'default' enter sequence for state StateB */
  163. static void sameNameDifferentRegion_enseq_main_region_StateB_default(SameNameDifferentRegion* handle)
  164. {
  165. /* 'default' enter sequence for state StateB */
  166. sameNameDifferentRegion_enseq_main_region_StateB_r1_default(handle);
  167. }
  168. /* 'default' enter sequence for state StateA */
  169. static void sameNameDifferentRegion_enseq_main_region_StateB_r1_StateA_default(SameNameDifferentRegion* handle)
  170. {
  171. /* 'default' enter sequence for state StateA */
  172. handle->stateConfVector[0] = SameNameDifferentRegion_main_region_StateB_r1_StateA;
  173. handle->stateConfVectorPosition = 0;
  174. }
  175. /* 'default' enter sequence for state StateB */
  176. static void sameNameDifferentRegion_enseq_main_region_StateB_r1_StateB_default(SameNameDifferentRegion* handle)
  177. {
  178. /* 'default' enter sequence for state StateB */
  179. handle->stateConfVector[0] = SameNameDifferentRegion_main_region_StateB_r1_StateB;
  180. handle->stateConfVectorPosition = 0;
  181. }
  182. /* 'default' enter sequence for region main region */
  183. static void sameNameDifferentRegion_enseq_main_region_default(SameNameDifferentRegion* handle)
  184. {
  185. /* 'default' enter sequence for region main region */
  186. sameNameDifferentRegion_react_main_region__entry_Default(handle);
  187. }
  188. /* 'default' enter sequence for region r1 */
  189. static void sameNameDifferentRegion_enseq_main_region_StateB_r1_default(SameNameDifferentRegion* handle)
  190. {
  191. /* 'default' enter sequence for region r1 */
  192. sameNameDifferentRegion_react_main_region_StateB_r1__entry_Default(handle);
  193. }
  194. /* Default exit sequence for state StateA */
  195. static void sameNameDifferentRegion_exseq_main_region_StateA(SameNameDifferentRegion* handle)
  196. {
  197. /* Default exit sequence for state StateA */
  198. handle->stateConfVector[0] = SameNameDifferentRegion_last_state;
  199. handle->stateConfVectorPosition = 0;
  200. }
  201. /* Default exit sequence for state StateA */
  202. static void sameNameDifferentRegion_exseq_main_region_StateB_r1_StateA(SameNameDifferentRegion* handle)
  203. {
  204. /* Default exit sequence for state StateA */
  205. handle->stateConfVector[0] = SameNameDifferentRegion_last_state;
  206. handle->stateConfVectorPosition = 0;
  207. }
  208. /* Default exit sequence for state StateB */
  209. static void sameNameDifferentRegion_exseq_main_region_StateB_r1_StateB(SameNameDifferentRegion* handle)
  210. {
  211. /* Default exit sequence for state StateB */
  212. handle->stateConfVector[0] = SameNameDifferentRegion_last_state;
  213. handle->stateConfVectorPosition = 0;
  214. }
  215. /* Default exit sequence for region main region */
  216. static void sameNameDifferentRegion_exseq_main_region(SameNameDifferentRegion* handle)
  217. {
  218. /* Default exit sequence for region main region */
  219. /* Handle exit of all possible states (of SameNameDifferentRegion.main_region) at position 0... */
  220. switch(handle->stateConfVector[ 0 ])
  221. {
  222. case SameNameDifferentRegion_main_region_StateA :
  223. {
  224. sameNameDifferentRegion_exseq_main_region_StateA(handle);
  225. break;
  226. }
  227. case SameNameDifferentRegion_main_region_StateB_r1_StateA :
  228. {
  229. sameNameDifferentRegion_exseq_main_region_StateB_r1_StateA(handle);
  230. break;
  231. }
  232. case SameNameDifferentRegion_main_region_StateB_r1_StateB :
  233. {
  234. sameNameDifferentRegion_exseq_main_region_StateB_r1_StateB(handle);
  235. break;
  236. }
  237. default: break;
  238. }
  239. }
  240. /* Default exit sequence for region r1 */
  241. static void sameNameDifferentRegion_exseq_main_region_StateB_r1(SameNameDifferentRegion* handle)
  242. {
  243. /* Default exit sequence for region r1 */
  244. /* Handle exit of all possible states (of SameNameDifferentRegion.main_region.StateB.r1) at position 0... */
  245. switch(handle->stateConfVector[ 0 ])
  246. {
  247. case SameNameDifferentRegion_main_region_StateB_r1_StateA :
  248. {
  249. sameNameDifferentRegion_exseq_main_region_StateB_r1_StateA(handle);
  250. break;
  251. }
  252. case SameNameDifferentRegion_main_region_StateB_r1_StateB :
  253. {
  254. sameNameDifferentRegion_exseq_main_region_StateB_r1_StateB(handle);
  255. break;
  256. }
  257. default: break;
  258. }
  259. }
  260. /* The reactions of state StateA. */
  261. static void sameNameDifferentRegion_react_main_region_StateA(SameNameDifferentRegion* handle)
  262. {
  263. /* The reactions of state StateA. */
  264. if (sameNameDifferentRegion_check_main_region_StateA_tr0_tr0(handle) == bool_true)
  265. {
  266. sameNameDifferentRegion_effect_main_region_StateA_tr0(handle);
  267. }
  268. }
  269. /* The reactions of state StateA. */
  270. static void sameNameDifferentRegion_react_main_region_StateB_r1_StateA(SameNameDifferentRegion* handle)
  271. {
  272. /* The reactions of state StateA. */
  273. if (sameNameDifferentRegion_check_main_region_StateB_r1_StateA_tr0_tr0(handle) == bool_true)
  274. {
  275. sameNameDifferentRegion_effect_main_region_StateB_r1_StateA_tr0(handle);
  276. }
  277. }
  278. /* The reactions of state StateB. */
  279. static void sameNameDifferentRegion_react_main_region_StateB_r1_StateB(SameNameDifferentRegion* handle)
  280. {
  281. /* The reactions of state StateB. */
  282. }
  283. /* Default react sequence for initial entry */
  284. static void sameNameDifferentRegion_react_main_region__entry_Default(SameNameDifferentRegion* handle)
  285. {
  286. /* Default react sequence for initial entry */
  287. sameNameDifferentRegion_enseq_main_region_StateA_default(handle);
  288. }
  289. /* Default react sequence for initial entry */
  290. static void sameNameDifferentRegion_react_main_region_StateB_r1__entry_Default(SameNameDifferentRegion* handle)
  291. {
  292. /* Default react sequence for initial entry */
  293. sameNameDifferentRegion_enseq_main_region_StateB_r1_StateA_default(handle);
  294. }