source: EcnlProtoTool/trunk/webapp/webmrbc/Arduino/MemFileBlock.cs@ 273

Last change on this file since 273 was 273, checked in by coas-nagasima, 7 years ago

ソフトウェア情報を追加

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-csharp
File size: 7.6 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4
5namespace WebMrbc
6{
7 public class MemFileOpenBlock : Block
8 {
9 public const string type_name = "memfile_open";
10
11 public MemFileOpenBlock()
12 : base(type_name)
13 {
14 }
15
16 public void init()
17 {
18 this.appendDummyInput()
19 .appendField("ファイルをオープンします")
20 .appendField(App.TargetBoard.MemFileHandles(), "MEM_FILE_NO");
21 this.appendValueInput("FILENAME")
22 .setCheck("String")
23 .appendField("ファイル名(8.3形式)");
24 this.appendDummyInput()
25 .appendField("モード")
26 .appendField(new FieldDropdown(new[] {
27 new[] { "Read", "EEP_READ" },
28 new[] { "Append", "EEP_APPEND" },
29 new[] { "New Create", "EEP_WRITE" }
30 }), "EEP_OPEN_MODE");
31 this.setInputsInline(true);
32 this.setPreviousStatement(true, null);
33 this.setNextStatement(true, null);
34 this.setColour(160);
35 this.setTooltip("");
36 this.setHelpUrl("http://www.example.com/");
37 }
38 }
39
40 public class MemFileCloseBlock : Block
41 {
42 public const string type_name = "memfile_close";
43
44 public MemFileCloseBlock()
45 : base(type_name)
46 {
47 }
48
49 public void init()
50 {
51 this.appendDummyInput()
52 .appendField("ファイルをクローズします")
53 .appendField(App.TargetBoard.MemFileHandles(), "MEM_FILE_NO");
54 this.setInputsInline(true);
55 this.setPreviousStatement(true, null);
56 this.setNextStatement(true, null);
57 this.setColour(160);
58 this.setTooltip("");
59 this.setHelpUrl("http://www.example.com/");
60 }
61 }
62
63 public class MemFileReadBlock : Block
64 {
65 public const string type_name = "memfile_read";
66
67 public MemFileReadBlock()
68 : base(type_name)
69 {
70 }
71 public void init()
72 {
73 this.appendDummyInput()
74 .appendField("ファイルから1バイト読み込みます")
75 .appendField(App.TargetBoard.MemFileHandles(), "MEM_FILE_NO");
76 this.setInputsInline(true);
77 this.setOutput(true, "Number");
78 this.setColour(160);
79 this.setTooltip("");
80 this.setHelpUrl("http://www.example.com/");
81 }
82 }
83
84 public class MemFileWriteBlock : Block
85 {
86 public const string type_name = "memfile_write";
87
88 public MemFileWriteBlock()
89 : base(type_name)
90 {
91 }
92 public void init()
93 {
94 this.appendDummyInput()
95 .appendField("ファイルにバイナリデータを書き込みます")
96 .appendField(App.TargetBoard.MemFileHandles(), "MEM_FILE_NO");
97 this.appendValueInput("DATA")
98 .setCheck("String")
99 .appendField("データ");
100 this.appendValueInput("LENGTH")
101 .setCheck("Number")
102 .appendField("データサイズ");
103 this.setInputsInline(true);
104 this.setOutput(true, "Number");
105 this.setColour(160);
106 this.setTooltip("");
107 this.setHelpUrl("http://www.example.com/");
108 }
109 }
110
111 public class MemFileSeekBlock : Block
112 {
113 public const string type_name = "memfile_seek";
114
115 public MemFileSeekBlock()
116 : base(type_name)
117 {
118 }
119 public void init()
120 {
121 this.appendDummyInput()
122 .appendField("ファイルの読み出し位置を移動する")
123 .appendField(App.TargetBoard.MemFileHandles(), "MEM_FILE_NO");
124 this.appendValueInput("POSITION")
125 .setCheck("Number")
126 .appendField("seekするバイト数");
127 this.setInputsInline(true);
128 this.setOutput(true, "Number");
129 this.setColour(160);
130 this.setTooltip("");
131 this.setHelpUrl("http://www.example.com/");
132 }
133 }
134
135 public class MemFileCpBlock : Block
136 {
137 public const string type_name = "memfile_cp";
138
139 public MemFileCpBlock()
140 : base(type_name)
141 {
142 }
143 public void init()
144 {
145 this.appendDummyInput()
146 .appendField("ファイルをコピーします");
147 this.appendValueInput("SRC_FILENAME")
148 .setCheck("String")
149 .appendField("コピー元ファイル名");
150 this.appendValueInput("DST_FILENAME")
151 .setCheck("String")
152 .appendField("コピー先ファイル名");
153 this.appendDummyInput()
154 .appendField("モード")
155 .appendField(new FieldDropdown(new[] {
156 new[] { "上書きしない", "NO_OVERWRITE" },
157 new[] { "上書きする", "OVERWRITE" }
158 }), "EEP_CP_MODE");
159 this.setInputsInline(true);
160 this.setOutput(true, "Number");
161 this.setColour(160);
162 this.setTooltip("");
163 this.setHelpUrl("http://www.example.com/");
164 }
165 }
166
167 public class MemFileRmBlock : Block
168 {
169 public const string type_name = "memfile_rm";
170
171 public MemFileRmBlock()
172 : base(type_name)
173 {
174 }
175
176 public void init()
177 {
178 this.appendDummyInput()
179 .appendField("ファイルを削除します");
180 this.appendValueInput("FILENAME")
181 .setCheck("String")
182 .appendField("削除するファイル名");
183 this.setInputsInline(true);
184 this.setOutput(true, "Number");
185 this.setColour(160);
186 this.setTooltip("");
187 this.setHelpUrl("http://www.example.com/");
188 }
189 }
190
191 partial class Ruby
192 {
193 public node memfile_open(MemFileOpenBlock block)
194 {
195 var dropdown_mem_file_no = block.getFieldValue("MEM_FILE_NO");
196 var value_filename = valueToCode(block, "FILENAME");
197 var dropdown_eep_open_mode = block.getFieldValue("EEP_OPEN_MODE");
198 var c = new const_node(this, intern("MemFile"));
199 var p = new node[] {
200 new int_node(this, App.TargetBoard.MemFileHandlerNameToNum(dropdown_mem_file_no)),
201 value_filename,
202 new int_node(this, App.TargetBoard.MemOpenModeNameToNum(dropdown_eep_open_mode))
203 };
204 return new call_node(this, c, intern("open"), p, null);
205 }
206
207 public node memfile_close(MemFileCloseBlock block)
208 {
209 var dropdown_mem_file_no = block.getFieldValue("MEM_FILE_NO");
210 var c = new const_node(this, intern("MemFile"));
211 var p = new node[] {
212 new int_node(this, App.TargetBoard.MemFileHandlerNameToNum(dropdown_mem_file_no)),
213 };
214 return new call_node(this, c, intern("close"), p, null);
215 }
216
217 public node memfile_read(MemFileReadBlock block)
218 {
219 var dropdown_mem_file_no = block.getFieldValue("MEM_FILE_NO");
220 var c = new const_node(this, intern("MemFile"));
221 var p = new node[] {
222 new int_node(this, App.TargetBoard.MemFileHandlerNameToNum(dropdown_mem_file_no)),
223 };
224 return new call_node(this, c, intern("read"), p, null);
225 }
226
227 public node memfile_write(MemFileWriteBlock block)
228 {
229 var dropdown_mem_file_no = block.getFieldValue("MEM_FILE_NO");
230 var value_data = valueToCode(block, "DATA");
231 var value_length = valueToCode(block, "LENGTH");
232 var c = new const_node(this, intern("MemFile"));
233 var p = new node[] {
234 new int_node(this, App.TargetBoard.MemFileHandlerNameToNum(dropdown_mem_file_no)),
235 value_data,
236 value_length,
237 };
238 return new call_node(this, c, intern("write"), p, null);
239 }
240
241 public node memfile_seek(MemFileSeekBlock block)
242 {
243 var dropdown_mem_file_no = block.getFieldValue("MEM_FILE_NO");
244 var value_position = valueToCode(block, "POSITION");
245 var c = new const_node(this, intern("MemFile"));
246 var p = new node[] {
247 new int_node(this, App.TargetBoard.MemFileHandlerNameToNum(dropdown_mem_file_no)),
248 value_position,
249 };
250 return new call_node(this, c, intern("seek"), p, null);
251 }
252
253 public node memfile_cp(MemFileCpBlock block)
254 {
255 var value_src_filename = valueToCode(block, "SRC_FILENAME");
256 var value_dst_filename = valueToCode(block, "DST_FILENAME");
257 var dropdown_eep_cp_mode = block.getFieldValue("EEP_CP_MODE");
258 var c = new const_node(this, intern("MemFile"));
259 var p = new node[] {
260 value_dst_filename,
261 value_dst_filename,
262 new int_node(this, App.TargetBoard.MemCpModeNameToNum(dropdown_eep_cp_mode))
263 };
264 return new call_node(this, c, intern("cp"), p, null);
265 }
266
267 public node memfile_rm(MemFileRmBlock block)
268 {
269 var value_filename = valueToCode(block, "FILENAME");
270 var c = new const_node(this, intern("MemFile"));
271 var p = new node[] {
272 value_filename,
273 };
274 return new call_node(this, c, intern("rm"), p, null);
275 }
276 }
277}
Note: See TracBrowser for help on using the repository browser.