tecscde 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rubocop.yml +125 -0
  4. data/.rubocop_todo.yml +188 -0
  5. data/CHANGELOG.md +3 -0
  6. data/Gemfile +6 -0
  7. data/LICENSE +46 -0
  8. data/LICENSE.ja +32 -0
  9. data/README.ja.md +200 -0
  10. data/README.md +35 -0
  11. data/Rakefile +27 -0
  12. data/bin/tecscde +64 -0
  13. data/glade/tecscde-cell-property.glade +205 -0
  14. data/glade/tecscde-celltype-property.glade +172 -0
  15. data/glade/tecscde-celltype.glade +414 -0
  16. data/glade/tecscde-export.glade +161 -0
  17. data/glade/test-cell-plugin.rb +51 -0
  18. data/glade/test-cell-property.rb +35 -0
  19. data/glade/test-export.rb +35 -0
  20. data/glade/test-palette.rb +26 -0
  21. data/lib/tcflow.rb +148 -0
  22. data/lib/tecscde.rb +65 -0
  23. data/lib/tecscde/NewCell.png +0 -0
  24. data/lib/tecscde/SelectArrow.png +0 -0
  25. data/lib/tecscde/attr_tree_view.rb +253 -0
  26. data/lib/tecscde/cell_plugin_dialog.glade +294 -0
  27. data/lib/tecscde/cell_plugin_dialog.rb +89 -0
  28. data/lib/tecscde/celltype_tree_view.rb +105 -0
  29. data/lib/tecscde/change_set_control.rb +35 -0
  30. data/lib/tecscde/change_set_control/change_set.rb +32 -0
  31. data/lib/tecscde/change_set_control/change_set_manager.rb +62 -0
  32. data/lib/tecscde/command.rb +35 -0
  33. data/lib/tecscde/control.rb +491 -0
  34. data/lib/tecscde/highlighted_objects.rb +180 -0
  35. data/lib/tecscde/logger.rb +74 -0
  36. data/lib/tecscde/main_view_and_model.rb +80 -0
  37. data/lib/tecscde/palette.glade +553 -0
  38. data/lib/tecscde/palette.rb +174 -0
  39. data/lib/tecscde/preferences.glade +117 -0
  40. data/lib/tecscde/preferences.rb +44 -0
  41. data/lib/tecscde/tecs_model.rb +1137 -0
  42. data/lib/tecscde/tecs_model/hbar.rb +68 -0
  43. data/lib/tecscde/tecs_model/tm_c_port.rb +122 -0
  44. data/lib/tecscde/tecs_model/tm_c_port_array.rb +98 -0
  45. data/lib/tecscde/tecs_model/tm_cell.rb +496 -0
  46. data/lib/tecscde/tecs_model/tm_e_port.rb +126 -0
  47. data/lib/tecscde/tecs_model/tm_e_port_array.rb +78 -0
  48. data/lib/tecscde/tecs_model/tm_join.rb +293 -0
  49. data/lib/tecscde/tecs_model/tm_join_bar.rb +146 -0
  50. data/lib/tecscde/tecs_model/tm_port.rb +238 -0
  51. data/lib/tecscde/tecs_model/tm_port_array.rb +246 -0
  52. data/lib/tecscde/tecs_model/tm_region.rb +107 -0
  53. data/lib/tecscde/tecs_model/tm_uneditable.rb +68 -0
  54. data/lib/tecscde/tecs_model/vbar.rb +68 -0
  55. data/lib/tecscde/templates/_cell_info.cde.erb +15 -0
  56. data/lib/tecscde/templates/_join_info.cde.erb +28 -0
  57. data/lib/tecscde/templates/main.cde.erb +49 -0
  58. data/lib/tecscde/tm_object.rb +91 -0
  59. data/lib/tecscde/version.rb +4 -0
  60. data/lib/tecscde/view.rb +58 -0
  61. data/lib/tecscde/view/cairo_matrix.rb +90 -0
  62. data/lib/tecscde/view/canvas.rb +59 -0
  63. data/lib/tecscde/view/constants.rb +114 -0
  64. data/lib/tecscde/view/main_view.rb +1245 -0
  65. data/lib/tecsflow.rb +475 -0
  66. data/lib/tecsflow/C_parser.tab.rb +2471 -0
  67. data/lib/tecsflow/C_parser.y.rb +1087 -0
  68. data/lib/tecsflow/classes.rb +421 -0
  69. data/lib/tecsgen.rb +581 -0
  70. data/lib/tecsgen/core/C_parser.tab.rb +2477 -0
  71. data/lib/tecsgen/core/C_parser.y +1032 -0
  72. data/lib/tecsgen/core/bnf-deb.tab.rb +5193 -0
  73. data/lib/tecsgen/core/bnf.tab.rb +5193 -0
  74. data/lib/tecsgen/core/bnf.y +2211 -0
  75. data/lib/tecsgen/core/componentobj.rb +7901 -0
  76. data/lib/tecsgen/core/ctypes.rb +226 -0
  77. data/lib/tecsgen/core/expression.rb +1031 -0
  78. data/lib/tecsgen/core/gen_xml.rb +374 -0
  79. data/lib/tecsgen/core/generate.rb +5206 -0
  80. data/lib/tecsgen/core/location.rb +116 -0
  81. data/lib/tecsgen/core/messages.rb +101 -0
  82. data/lib/tecsgen/core/optimize.rb +456 -0
  83. data/lib/tecsgen/core/plugin.rb +332 -0
  84. data/lib/tecsgen/core/pluginModule.rb +165 -0
  85. data/lib/tecsgen/core/syntaxobj.rb +1234 -0
  86. data/lib/tecsgen/core/tecs_lang.rb +306 -0
  87. data/lib/tecsgen/core/tecsgen.rb +453 -0
  88. data/lib/tecsgen/core/tecsinfo.rb +860 -0
  89. data/lib/tecsgen/core/tool_info.rb +258 -0
  90. data/lib/tecsgen/core/types.rb +1632 -0
  91. data/lib/tecsgen/core/unjoin_plugin.rb +218 -0
  92. data/lib/tecsgen/core/value.rb +650 -0
  93. data/lib/tecsgen/messages/messages_console_en_US.rb +1171 -0
  94. data/lib/tecsgen/messages/messages_console_ja_JP.rb +1171 -0
  95. data/lib/tecsgen/messages/messages_file_en_US.rb +334 -0
  96. data/lib/tecsgen/messages/messages_file_ja_JP.rb +163 -0
  97. data/lib/tecsgen/plugin/ATK1AlarmPlugin.rb +196 -0
  98. data/lib/tecsgen/plugin/ATK1DelayTaskPlugin.rb +106 -0
  99. data/lib/tecsgen/plugin/ATK1EventPlugin.rb +147 -0
  100. data/lib/tecsgen/plugin/ATK1ISRPlugin.rb +174 -0
  101. data/lib/tecsgen/plugin/ATK1KernelPlugin.rb +287 -0
  102. data/lib/tecsgen/plugin/ATK1ResourcePlugin.rb +124 -0
  103. data/lib/tecsgen/plugin/ATK1TaskPlugin.rb +220 -0
  104. data/lib/tecsgen/plugin/C2TECSBridgePlugin.rb +210 -0
  105. data/lib/tecsgen/plugin/CellPlugin.rb +61 -0
  106. data/lib/tecsgen/plugin/CelltypePlugin.rb +72 -0
  107. data/lib/tecsgen/plugin/CompositePlugin.rb +66 -0
  108. data/lib/tecsgen/plugin/DomainPlugin.rb +89 -0
  109. data/lib/tecsgen/plugin/HRP2AlarmHandlerPlugin.rb +76 -0
  110. data/lib/tecsgen/plugin/HRP2Cache.rb +1 -0
  111. data/lib/tecsgen/plugin/HRP2CyclicHandlerPlugin.rb +75 -0
  112. data/lib/tecsgen/plugin/HRP2DataqueuePlugin.rb +68 -0
  113. data/lib/tecsgen/plugin/HRP2EventflagPlugin.rb +68 -0
  114. data/lib/tecsgen/plugin/HRP2FixedSizeMemoryPoolPlugin.rb +68 -0
  115. data/lib/tecsgen/plugin/HRP2HandlerPlugin.rb +117 -0
  116. data/lib/tecsgen/plugin/HRP2KernelObjectPlugin.rb +372 -0
  117. data/lib/tecsgen/plugin/HRP2ObjectPlugin.rb +94 -0
  118. data/lib/tecsgen/plugin/HRP2Plugin.rb +140 -0
  119. data/lib/tecsgen/plugin/HRP2PostHook.rb +111 -0
  120. data/lib/tecsgen/plugin/HRP2PriorityDataqueuePlugin.rb +66 -0
  121. data/lib/tecsgen/plugin/HRP2RPCPlugin.rb +319 -0
  122. data/lib/tecsgen/plugin/HRP2SVCPlugin.rb +473 -0
  123. data/lib/tecsgen/plugin/HRP2SemaphorePlugin.rb +67 -0
  124. data/lib/tecsgen/plugin/HRP2TaskPlugin.rb +200 -0
  125. data/lib/tecsgen/plugin/HRPHandlerPlugin.rb +125 -0
  126. data/lib/tecsgen/plugin/HRPKernelObjectManager.rb +72 -0
  127. data/lib/tecsgen/plugin/HRPKernelObjectPlugin.rb +333 -0
  128. data/lib/tecsgen/plugin/HRPObjectPlugin.rb +93 -0
  129. data/lib/tecsgen/plugin/HRPPlugin.rb +356 -0
  130. data/lib/tecsgen/plugin/HRPRPCPlugin.rb +407 -0
  131. data/lib/tecsgen/plugin/HRPSVCPlugin.rb +859 -0
  132. data/lib/tecsgen/plugin/HRPTaskPlugin.rb +107 -0
  133. data/lib/tecsgen/plugin/Mruby2CBridgePlugin.rb +86 -0
  134. data/lib/tecsgen/plugin/MrubyBridgeCellPlugin.rb +264 -0
  135. data/lib/tecsgen/plugin/MrubyBridgeCelltypePlugin.rb +293 -0
  136. data/lib/tecsgen/plugin/MrubyBridgeCompositePlugin.rb +49 -0
  137. data/lib/tecsgen/plugin/MrubyBridgePlugin.rb +67 -0
  138. data/lib/tecsgen/plugin/MrubyBridgeSignaturePlugin.rb +1307 -0
  139. data/lib/tecsgen/plugin/MrubyInfoBridgePlugin.rb +14 -0
  140. data/lib/tecsgen/plugin/MrubyInfoBridgeSignaturePlugin.rb +994 -0
  141. data/lib/tecsgen/plugin/MultiPlugin.rb +57 -0
  142. data/lib/tecsgen/plugin/NotifierPlugin.rb +1217 -0
  143. data/lib/tecsgen/plugin/OpaqueMarshalerPlugin.rb +81 -0
  144. data/lib/tecsgen/plugin/OpaqueRPCPlugin.rb +323 -0
  145. data/lib/tecsgen/plugin/RPCPlugin.rb +266 -0
  146. data/lib/tecsgen/plugin/RepeatCellPlugin.rb +166 -0
  147. data/lib/tecsgen/plugin/RepeatJoinPlugin.rb +130 -0
  148. data/lib/tecsgen/plugin/SharedOpaqueRPCPlugin.rb +357 -0
  149. data/lib/tecsgen/plugin/SharedRPCPlugin.rb +329 -0
  150. data/lib/tecsgen/plugin/SignaturePlugin.rb +77 -0
  151. data/lib/tecsgen/plugin/TECS2CBridgePlugin.rb +178 -0
  152. data/lib/tecsgen/plugin/TECSInfoPlugin.rb +280 -0
  153. data/lib/tecsgen/plugin/ThroughPlugin.rb +333 -0
  154. data/lib/tecsgen/plugin/TracePlugin.rb +484 -0
  155. data/lib/tecsgen/plugin/lib/GenHRP2Marshaler.rb +761 -0
  156. data/lib/tecsgen/plugin/lib/GenOpaqueMarshaler.rb +1107 -0
  157. data/lib/tecsgen/plugin/lib/GenParamCopy.rb +365 -0
  158. data/lib/tecsgen/plugin/lib/GenTransparentMarshaler.rb +683 -0
  159. data/lib/tecsgen/plugin/lib/MrubyBridgeCelltypePluginModule.rb +283 -0
  160. data/lib/tecsgen/plugin/lib/MrubyBridgeSignaturePluginModule.rb +277 -0
  161. data/lib/tecsgen/version.rb +6 -0
  162. data/samples/FigureSamples/active/active.cde +104 -0
  163. data/samples/FigureSamples/active/active.cdl +20 -0
  164. data/samples/FigureSamples/active/active.pdf +0 -0
  165. data/samples/FigureSamples/active/active.png +0 -0
  166. data/samples/FigureSamples/active/gen/tmp_C_src.c +36 -0
  167. data/samples/FigureSamples/active/gen/tmp_cygwin_tecs.h +1908 -0
  168. data/samples/FigureSamples/active/gen/tmp_plugin_post_code.cdl +0 -0
  169. data/samples/FigureSamples/allocator/allocator-internal.png +0 -0
  170. data/samples/FigureSamples/allocator/allocator.cde +171 -0
  171. data/samples/FigureSamples/allocator/allocator.cdl +58 -0
  172. data/samples/FigureSamples/allocator/allocator.png +0 -0
  173. data/samples/FigureSamples/basic/Makefile +87 -0
  174. data/samples/FigureSamples/basic/SimpleSample-trace.cdl +50 -0
  175. data/samples/FigureSamples/basic/SimpleSample.cde +91 -0
  176. data/samples/FigureSamples/basic/SimpleSample.cdl +47 -0
  177. data/samples/FigureSamples/basic/basic.cde +93 -0
  178. data/samples/FigureSamples/basic/basic.cdl +46 -0
  179. data/samples/FigureSamples/basic/basic.png +0 -0
  180. data/samples/FigureSamples/callback/callback.cde +130 -0
  181. data/samples/FigureSamples/callback/callback.cdl +29 -0
  182. data/samples/FigureSamples/callback/callback.png +0 -0
  183. data/samples/FigureSamples/carray/carray.cde +144 -0
  184. data/samples/FigureSamples/carray/carray.cdl +38 -0
  185. data/samples/FigureSamples/carray/carray.png +0 -0
  186. data/samples/FigureSamples/cearray/cearray.cde +314 -0
  187. data/samples/FigureSamples/cearray/cearray.cdl +60 -0
  188. data/samples/FigureSamples/cearray/cearray.png +0 -0
  189. data/samples/FigureSamples/composite/composite-internal.png +0 -0
  190. data/samples/FigureSamples/composite/composite.cde +216 -0
  191. data/samples/FigureSamples/composite/composite.cdl +95 -0
  192. data/samples/FigureSamples/composite/composite.png +0 -0
  193. data/samples/FigureSamples/earray/earray.cde +142 -0
  194. data/samples/FigureSamples/earray/earray.cdl +38 -0
  195. data/samples/FigureSamples/earray/earray.png +0 -0
  196. data/samples/FigureSamples/join/Makefile +87 -0
  197. data/samples/FigureSamples/join/join.cde +132 -0
  198. data/samples/FigureSamples/join/join.cdl +40 -0
  199. data/samples/FigureSamples/join/join.png +0 -0
  200. data/samples/FigureSamples/relay/Makefile +99 -0
  201. data/samples/FigureSamples/relay/relay-internal.png +0 -0
  202. data/samples/FigureSamples/relay/relay.cde +284 -0
  203. data/samples/FigureSamples/relay/relay.cdl +52 -0
  204. data/samples/FigureSamples/relay/relay.png +0 -0
  205. data/samples/FigureSamples/rpc/Makefile +123 -0
  206. data/samples/FigureSamples/rpc/rpc-expand.png +0 -0
  207. data/samples/FigureSamples/rpc/rpc.cde +245 -0
  208. data/samples/FigureSamples/rpc/rpc.png +0 -0
  209. data/samples/FigureSamples/rpc/rpc_sample.cdl +53 -0
  210. data/samples/SimpleSample/Makefile +25 -0
  211. data/samples/SimpleSample/SimpleSample/Makefile +86 -0
  212. data/samples/SimpleSample/SimpleSample/Makefile-trace +91 -0
  213. data/samples/SimpleSample/SimpleSample/README.txt +106 -0
  214. data/samples/SimpleSample/SimpleSample/SimpleSample-trace.cdl +50 -0
  215. data/samples/SimpleSample/SimpleSample/SimpleSample.cdl +45 -0
  216. data/samples/SimpleSample/SimpleSample/src/tSample.c +77 -0
  217. data/samples/SimpleSample/SimpleSample/src/tSimple.c +48 -0
  218. data/samples/SimpleSample/SimpleSample/src/tecs-types.h +27 -0
  219. data/samples/SimpleSample/SimpleSampleOpaqueRPC/Makefile +51 -0
  220. data/samples/SimpleSample/SimpleSampleOpaqueRPC/Makefile-trace +91 -0
  221. data/samples/SimpleSample/SimpleSampleOpaqueRPC/README.txt +106 -0
  222. data/samples/SimpleSample/SimpleSampleOpaqueRPC/SimpleSample-trace.cdl +80 -0
  223. data/samples/SimpleSample/SimpleSampleOpaqueRPC/SimpleSample.cdl +77 -0
  224. data/samples/SimpleSample/SimpleSampleOpaqueRPC/rSample/Makefile +112 -0
  225. data/samples/SimpleSample/SimpleSampleOpaqueRPC/rSimple/Makefile +109 -0
  226. data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tSample.c +80 -0
  227. data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tSimple.c +47 -0
  228. data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tTaskMain.c +66 -0
  229. data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tecs-types.h +27 -0
  230. data/samples/SimpleSample/SimpleSampleTransparentRPC/Makefile +125 -0
  231. data/samples/SimpleSample/SimpleSampleTransparentRPC/Makefile-trace +130 -0
  232. data/samples/SimpleSample/SimpleSampleTransparentRPC/SimpleSample-trace.cdl +54 -0
  233. data/samples/SimpleSample/SimpleSampleTransparentRPC/SimpleSample.cdl +53 -0
  234. data/samples/SimpleSample/SimpleSampleTransparentRPC/src/tSample.c +80 -0
  235. data/samples/SimpleSample/SimpleSampleTransparentRPC/src/tSimple.c +54 -0
  236. data/tecscde.gemspec +41 -0
  237. metadata +353 -0
@@ -0,0 +1,48 @@
1
+ 
2
+ /* #[<PREAMBLE>]#
3
+ * #[<...>]# ���� #[</...>]# �ǰϤޤ줿�����Ȥ��Խ����ʤ��Ǥ�������
4
+ * tecsmerge �ˤ��ޡ����˻��Ѥ���ޤ�
5
+ *
6
+ * �ƤӸ��ؿ� #_TCPF_#
7
+ * call port: cCall signature: sSample context:task
8
+ * ER cCall_sayHello( int32_t times );
9
+ * ER cCall_howAreYou( char_t* buf, int32_t len );
10
+ *
11
+ * #[</PREAMBLE>]# */
12
+
13
+ #include <stdio.h>
14
+ #include "tSimple_tecsgen.h"
15
+
16
+ #ifndef E_OK
17
+ #define E_OK 0 /* 正常終了 */
18
+ #define E_ID (-18) /* 不正ID番号 */
19
+ #endif
20
+
21
+ /* #[<ENTRY_PORT>]# eBody
22
+ * entry port: eBody
23
+ * signature: sTaskBody
24
+ * context: task
25
+ * #[</ENTRY_PORT>]# */
26
+
27
+ /* #[<ENTRY_FUNC>]# eBody_main
28
+ * name: eBody_main
29
+ * global_name: tSimple_eBody_main
30
+ * oneway: false
31
+ * #[</ENTRY_FUNC>]# */
32
+ void
33
+ eBody_main()
34
+ {
35
+ char buf[256];
36
+
37
+ #define N_HELLO 3
38
+ printf( "Simple: Say hello %d times.\n", N_HELLO );
39
+ cCall_sayHello( N_HELLO ); /* 呼び口 cCall の sayHello を呼び出す */
40
+
41
+ printf( "Simple: How are you?\n" );
42
+ cCall_howAreYou( buf, sizeof buf ); /* 呼び口 cCall の howAreYou を呼び出す */
43
+ puts( buf );
44
+ }
45
+
46
+ /* #[<POSTAMBLE>]#
47
+ * �����겼����������ؿ���񤭤ޤ�
48
+ * #[</POSTAMBLE>]#*/
@@ -0,0 +1,27 @@
1
+ #include <stdint.h>
2
+ typedef long ER;
3
+ typedef long ER_INT;
4
+
5
+ /* typedef long intptr_t; */
6
+ typedef int int_t;
7
+ typedef unsigned char char_t;
8
+
9
+ typedef unsigned char bool_t;
10
+
11
+ typedef double double64_t;
12
+ typedef float float32_t;
13
+
14
+ /*
15
+ typedef signed long int32_t;
16
+ typedef signed short int16_t;
17
+ typedef signed char int8_t;
18
+
19
+ typedef unsigned long uint32_t;
20
+ typedef unsigned short uint16_t;
21
+ typedef unsigned char uint8_t;
22
+
23
+
24
+ int64_t, uint64_t, int128_t, uint128_t ga
25
+ */
26
+
27
+
@@ -0,0 +1,51 @@
1
+ TARGET = SimpleSample.exe
2
+ TIMESTAMP = tecsgen.timestamp
3
+ TECSGEN_EXE = tecsgen
4
+ CYGPATH = ../../cygwin
5
+ BASE_DIR = .
6
+ CC = gcc
7
+ INCLUDE = -I $(BASE_DIR)/. -I $(TECSPATH) -I $(CYGPATH) -I $(TECSPATH)/rpc -I $(GEN_DIR)
8
+ CFLAGS = $(INCLUDE) -I $(BASE_DIR)/src -I $(GEN_DIR) -D "Inline=static inline"
9
+ LD = gcc
10
+ LDFLAGS =
11
+ GEN_DIR = $(BASE_DIR)/gen
12
+ SRC_DIR = $(BASE_DIR)/src
13
+ _TECS_OBJ_DIR = $(GEN_DIR)/
14
+ # _TECS_OBJ_DIR # should be end with '/'
15
+
16
+ vpath %.c $(SRC_DIR) $(GEN_DIR) $(TECSPATH) $(TECSPATH)/rpc $(CYGPATH)
17
+ vpath %.h $(SRC_DIR) $(GEN_DIR) $(TECSPATH) $(TECSPATH)/rpc $(CYGPATH)
18
+
19
+ # OTHER_OBJS = # Add objects out of tecs care.
20
+ OTHER_OBJS = $(_TECS_OBJ_DIR)vasyslog.o
21
+
22
+ # ルール #_MRUL_#
23
+ allall: tecs
24
+ make all # in order to include generated Makefile.tecsgen & Makefile.depend
25
+
26
+ all : sub_regions
27
+
28
+
29
+ # depend を include #_MDEP_#
30
+ -include $(GEN_DIR)/Makefile.tecsgen
31
+
32
+ sub_regions:$(TIMESTAMP)
33
+ cd rSample; make all
34
+ cd rSimple; make all
35
+
36
+ clean :
37
+ cd rSample; make clean
38
+ cd rSimple; make clean
39
+ rm -f $(CELLTYPE_COBJS) $(TECSGEN_COBJS) $(PLUGIN_COBJS) $(OTHER_OBJS) $(TARGET) $(TIMESTAMP)
40
+ rm -rf $(GEN_DIR)
41
+
42
+ tecs : $(TIMESTAMP)
43
+
44
+ $(TIMESTAMP) : $(TECS_IMPORTS)
45
+ $(TECSGEN_EXE) $(INCLUDE) -k euc -I src SimpleSample.cdl
46
+ touch $(TIMESTAMP)
47
+
48
+ # generic target for objs
49
+ $(_TECS_OBJ_DIR)%.o : %.c
50
+ $(CC) -c $(CFLAGS) -o $@ $<
51
+
@@ -0,0 +1,91 @@
1
+ # このファイルは tecsgen により自動生成されました
2
+ # Makefile.temp は gen の一つ上のディレクトリに移して使用します
3
+ # % mv Makefile.temp Makefile
4
+ #
5
+ # clean のデフォルト動作は $(GEN_DIR)/Makefile.* を削除します
6
+ #
7
+ # このファイルは GNU make で gcc を用い POSIX 環境で動作するモジュールをビルドするのに適切なように生成されています
8
+ # vpath, CFLAGS, OTHER_OBJS などを調整する必要があるかもしれません
9
+ # 他の環境やターゲットの場合、このファイルを元に変更する必要があります
10
+
11
+ # 変数 #_MVAR_#
12
+ # fixed variable (unchangeable by config or plugin)
13
+ TARGET_BASE = SimpleSample-trace
14
+ BASE_DIR = .
15
+ GEN_DIR = $(BASE_DIR)/gen
16
+ INCLUDES = -I $(TECSPATH) -I $(TECSPATH)/../test/cygwin -I $(TECSPATH)/rpc -I $(BASE_DIR)/./gen -I $(BASE_DIR)/src -I $(TECSPATH)/mruby -I $(TECSPATH)/posix -I $(GEN_DIR)
17
+ DEFINES =
18
+
19
+ # end of fixed variable (unchangeable by config or plugin)
20
+ #default C Compiler
21
+ CC = gcc
22
+
23
+ #default C Compiler options
24
+ CFLAGS = $(INCLUDES) $(DEFINES) -D "Inline=static inline"
25
+
26
+ #default Liknker
27
+ LD = gcc
28
+
29
+ #default Liknker Options
30
+ LDFLAGS =
31
+
32
+ #default srource directory
33
+ SRC_DIR = $(BASE_DIR)/src
34
+
35
+ #default target name
36
+ TARGET = $(TARGET_BASE).exe
37
+
38
+ #default TECS generator
39
+ TECSGEN_EXE = tecsgen
40
+
41
+ #Time Stamp
42
+ TIMESTAMP = tecsgen.timestamp
43
+
44
+ #default relocatable object (.o) directory
45
+ _TECS_OBJ_DIR = $(GEN_DIR)/
46
+
47
+
48
+
49
+ # Pre-tecsgen target
50
+ PRE_TECSGEN_TARGET =
51
+
52
+ # Post-tecsgen target
53
+ POST_TECSGEN_TARGET =
54
+
55
+ # vpath for C sources and headers
56
+ vpath %.c $(SRC_DIR) $(GEN_DIR) $(TECSPATH) $(TECSPATH)/../test/cygwin $(TECSPATH)/rpc ./gen src $(TECSPATH)/mruby $(TECSPATH)/posix
57
+ vpath %.h $(SRC_DIR) $(GEN_DIR) $(TECSPATH) $(TECSPATH)/../test/cygwin $(TECSPATH)/rpc ./gen src $(TECSPATH)/mruby $(TECSPATH)/posix
58
+
59
+ # Other objects (out of tecsgen)
60
+ # OTHER_OBJS = # Add objects out of tecs care.
61
+ OTHER_OBJS = $(_TECS_OBJ_DIR)vasyslog.o
62
+ # ルール #_MRUL_#
63
+ allall: tecs
64
+ make -f Makefile-trace all # in order to include generated Makefile.tecsgen & Makefile.depend
65
+
66
+ all : sub_regions
67
+
68
+
69
+ # depend を include #_MDEP_#
70
+ -include $(GEN_DIR)/Makefile.tecsgen
71
+
72
+ sub_regions:$(TIMESTAMP)
73
+ cd rSample; make all
74
+ cd rSimple; make all
75
+
76
+ clean :
77
+ cd rSample; make clean
78
+ cd rSimple; make clean
79
+ rm -f $(CELLTYPE_COBJS) $(TECSGEN_COBJS) $(PLUGIN_COBJS) $(OTHER_OBJS) $(TARGET) $(TIMESTAMP)
80
+ rm -rf $(GEN_DIR)
81
+
82
+ tecs : $(PRE_TECSGEN_TARGET) $(TIMESTAMP) $(POST_TECSGEN_TARGET)
83
+
84
+ $(TIMESTAMP) : $(TECS_IMPORTS)
85
+ $(TECSGEN_EXE) -I $(TECSPATH) -I $(TECSPATH)/../test/cygwin -I $(TECSPATH)/rpc -I ./gen -k euc -I src SimpleSample-trace.cdl
86
+ touch $(TIMESTAMP)
87
+
88
+ # generic target for objs
89
+ $(_TECS_OBJ_DIR)%.o : %.c
90
+ $(CC) -c $(CFLAGS) -o $@ $<
91
+
@@ -0,0 +1,106 @@
1
+ SimpleSample
2
+ 2009.6.7 初版
3
+ 2009.6.9 再アップ
4
+
5
+ 《超簡易パッケージの概要》
6
+
7
+ 「3 分でわかる TECS」ということで、cygwin だけで動作する SimpleSample
8
+ を作ってみました。TECS コンポーネントの要素を理解することができます。
9
+
10
+ 公式リリースのパッケージに入っているものは TOPPERS/ASP カーネル上で
11
+ 動かすサンプルで、skyeye のシミュレーション環境により PC 上で動作さ
12
+ せることができる本格的なものです。ちょっと動かしてみるには、ややハー
13
+ ドルが高いかもしれません。
14
+
15
+ この超簡易パッケージは cygwin のネイティブな gcc でビルドするようにし
16
+ ていますので、cygwin がインストールされていれば、他には特に必要ありま
17
+ せん。ruby, racc もインストールの必要ありません。
18
+
19
+ ビルドの仕方:
20
+
21
+ % make tecs
22
+ % make all
23
+
24
+ 場合によっては、make tecs の前に、以下のようにパスを入れる必要がある
25
+ かもしれません。
26
+
27
+ % PATH=.:$PATH
28
+
29
+ 実行の仕方:
30
+
31
+ % ./SimpleSample.exe
32
+
33
+ 《SimpleSample の概要》
34
+
35
+ hello の表示など、ごく簡単な例です。
36
+ TECS の本来機能を理解しやすいように、cygwin だけで動作します。
37
+ この例では、簡単のために printf を呼び出しますが、実際の RTOS 環境であ
38
+ れば、出力用コンポーネントを用いた方がよいです。
39
+
40
+ コンポーネント図:
41
+
42
+ SimpleSample.png
43
+
44
+ コンポーネント記述:
45
+
46
+ SimpleSmaple.cdl に TECS CDL で記述。文字コードには EUC を使用していま
47
+ す。
48
+
49
+ ・シグニチャ記述
50
+
51
+ sSample … 関数インタフェースの定義
52
+ 慣習として接頭文字 s を付加する
53
+
54
+ シグニチャ sSampleには 2 つの関数 sayHello と howAreYou がある。
55
+ セルタイプ tSample の提供する機能となるので、sSample という名前にした。
56
+
57
+ ・セルタイプ記述
58
+
59
+ tSimple … 呼び元のセルタイプ
60
+ tSample … 呼び先のセルタイプ
61
+ 慣習として接頭文字 t を付加する
62
+
63
+ ・組上げ記述
64
+
65
+ Simple … 呼び元のセル
66
+ Sample … 呼び先のセル
67
+
68
+ セルタイプコード:
69
+
70
+ src/tSimple.c … 呼び元のセルタイプコード
71
+ src/tSample.c … 呼び先のセルタイプコード
72
+
73
+ 【作成環境】
74
+
75
+ OS: Windows XP SP3
76
+ Ruby: V1.8.7p72 (mswin32)
77
+ Racc: 1.4.5
78
+ exerb: 4.8.0
79
+
80
+ 《ライセンス》
81
+
82
+ 【TECSジェネレータ】
83
+
84
+ TECS ジェネレータ tecsgen.exe の内部に含まれるコードについては TOPPERS
85
+ ライセンスに従います。TOPPERS ライセンスについては以下のホームページで
86
+ 確認できます。
87
+
88
+ http://www.toppers.jp/license.html
89
+
90
+ 【Ruby関係】
91
+
92
+ tecsgen.exe は Ruby, Racc, Exerb を使用して構築されています。
93
+ それらについては、それらのライセンスに従います。
94
+
95
+ Ruby のインタプリタのソースは、以下の URL のホームページからダウンロー
96
+ ドできます。
97
+
98
+ http://www.ruby-lang.org/
99
+
100
+ Racc のソースは、以下の URL のホームページからダウンロードできます。
101
+
102
+ http://i.loveruby.net/ja/projects/racc/
103
+
104
+ Exerb のソースは以下の URL のホームページからダウンロードできます。
105
+
106
+ http://exerb.sourceforge.jp/
@@ -0,0 +1,80 @@
1
+ /*
2
+ * Simple な Sample (OpaqueRPC 版)
3
+ * sSocketClientOpener
4
+ * +---------------------------------------+
5
+ * |cOpener |eOpener
6
+ * +-------------+ +-------------+ +-------------+ | +-------------+
7
+ * | | | | | | V | |
8
+ * | tTask | sTaskBody | tTaskMain | sTaskBody | tSimple | sSample | tSample |
9
+ * | Task |-----------| TaskMain |-----------|> Simple |==========|> Sample |
10
+ * | |cTask eBody| |cBody eBody| |cCall eEnt| |
11
+ * | |Body | | | | | |
12
+ * +-------------+ +-------------+ +-------------+ +-------------+
13
+ */
14
+
15
+
16
+ // cygwin 用の簡易な型定義
17
+ import( <cygwin_kernel.cdl> );
18
+ // TECS 対応 TOPPERS/ASP ならば import( <kernel.cdl> ); でよい
19
+
20
+ import( <tSysLog.cdl> );
21
+ import( <rpc.cdl> );
22
+ import( <tSocketChannel.cdl> );
23
+
24
+ signature sSample {
25
+ ER sayHello( [in]int32_t times );
26
+ ER howAreYou( [out,string(len)]char_t *buf, [in]int32_t len );
27
+ };
28
+
29
+ celltype tSample {
30
+ entry sSample eEnt;
31
+ };
32
+
33
+ [singleton,active]
34
+ celltype tSimple {
35
+ call sSample cCall;
36
+ entry sTaskBody eBody;
37
+ };
38
+
39
+ celltype tTaskMain {
40
+ entry sTaskBody eBody;
41
+ call sTaskBody cBody;
42
+ call sSocketClientOpener cOpener;
43
+ };
44
+
45
+ [linkunit]
46
+ region rSample {
47
+ cell tSysLog SysLog {
48
+ };
49
+ cell tKernel Kernel {
50
+ };
51
+ cell tSample Sample {
52
+ };
53
+ };
54
+
55
+ [linkunit,
56
+ to_through( rSample, OpaqueRPCPlugin,
57
+ "PPAllocatorSize=1024,"
58
+ "clientChannelCell= 'ClientChannel', " // クライアント側チャンネルセル名
59
+ )]
60
+ region rSimple {
61
+ cell tSysLog SysLog {
62
+ };
63
+ cell tKernel Kernel {
64
+ };
65
+ cell tSimple Simple {
66
+ [through(TracePlugin,"")]
67
+ cCall = rSample::Sample.eEnt;
68
+ };
69
+ cell tTaskMain TaskMain {
70
+ cBody = Simple.eBody;
71
+ cOpener = ClientChannel.eOpener;
72
+ };
73
+
74
+ cell tTask Task {
75
+ cBody = TaskMain.eBody;
76
+ priority = 11;
77
+ stackSize = 1024;
78
+ taskAttribute = C_EXP( "TA_ACT" );
79
+ };
80
+ };
@@ -0,0 +1,77 @@
1
+ /*
2
+ * Simple な Sample (OpaqueRPC 版)
3
+ * sSocketClientOpener
4
+ * +---------------------------------------+
5
+ * |cOpener |eOpener
6
+ * +-------------+ +-------------+ +-------------+ | +-------------+
7
+ * | | | | | | V | |
8
+ * | tTask | sTaskBody | tTaskMain | sTaskBody | tSimple | sSample | tSample |
9
+ * | Task |-----------| TaskMain |-----------|> Simple |==========|> Sample |
10
+ * | |cTask eBody| |cBody eBody| |cCall eEnt| |
11
+ * | |Body | | | | | |
12
+ * +-------------+ +-------------+ +-------------+ +-------------+
13
+ */
14
+
15
+
16
+ // cygwin 用の簡易な型定義
17
+ import( <cygwin_kernel.cdl> );
18
+ // TECS 対応 TOPPERS/ASP ならば import( <kernel.cdl> ); でよい
19
+
20
+ import( <tSysLog.cdl> );
21
+ import( <rpc.cdl> );
22
+ import( <tSocketChannel.cdl> );
23
+
24
+ signature sSample {
25
+ ER sayHello( [in]int32_t times );
26
+ ER howAreYou( [out,string(len)]char_t *buf, [in]int32_t len );
27
+ };
28
+
29
+ celltype tSample {
30
+ entry sSample eEnt;
31
+ };
32
+
33
+ [singleton]
34
+ celltype tSimple {
35
+ call sSample cCall;
36
+ entry sTaskBody eBody;
37
+ };
38
+
39
+ celltype tTaskMain {
40
+ entry sTaskBody eBody;
41
+ call sTaskBody cBody;
42
+ call sSocketClientOpener cOpener;
43
+ };
44
+
45
+ [linkunit]
46
+ region rSample {
47
+ cell tSysLog SysLog {
48
+ };
49
+ cell tKernel Kernel {
50
+ };
51
+ cell tSample Sample {
52
+ };
53
+ };
54
+
55
+ [linkunit,
56
+ to_through( rSample, OpaqueRPCPlugin,
57
+ "PPAllocatorSize=1024,"
58
+ "clientChannelCell= 'ClientChannel', " // クライアント側チャンネルセル名
59
+ )]
60
+ region rSimple {
61
+ cell tSysLog SysLog {
62
+ };
63
+ cell tSimple Simple {
64
+ cCall = rSample::Sample.eEnt;
65
+ };
66
+ cell tTaskMain TaskMain {
67
+ cBody = Simple.eBody;
68
+ cOpener = ClientChannel.eOpener;
69
+ };
70
+
71
+ cell tTask Task {
72
+ cBody = TaskMain.eBody;
73
+ priority = 11;
74
+ stackSize = 1024;
75
+ taskAttribute = C_EXP( "TA_ACT" );
76
+ };
77
+ };