smalruby-editor 0.1.24-x86-mingw32 → 0.2.0-x86-mingw32
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.
Potentially problematic release.
This version of smalruby-editor might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Guardfile +9 -0
- data/app/assets/javascripts/blocks/hardware.js.coffee.erb +147 -62
- data/app/assets/javascripts/blocks/sensing.js.coffee.erb +4 -0
- data/app/assets/javascripts/msg/en_us.js +34 -12
- data/app/assets/javascripts/msg/ja.js +35 -15
- data/app/helpers/editor_helper.rb +2 -1
- data/app/models/concerns/ruby_to_block/block/{hardware_button_down_or_up.rb → hardware_button_pressed_or_released.rb} +3 -3
- data/app/models/concerns/ruby_to_block/block/{hardware_led_on.rb → hardware_led_turn_off.rb} +2 -2
- data/app/models/concerns/ruby_to_block/block/{hardware_led_off.rb → hardware_led_turn_on.rb} +2 -2
- data/app/models/concerns/ruby_to_block/block/hardware_operation.rb +2 -0
- data/app/models/concerns/ruby_to_block/block/{hardware_rgb_led_on.rb → hardware_rgb_led_set_color.rb} +2 -2
- data/app/models/concerns/ruby_to_block/block/{hardware_rgb_led_off.rb → hardware_rgb_led_turn_off.rb} +2 -2
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_action.rb +22 -0
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_action_with_sec.rb +24 -0
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_led_turn_on_or_off.rb +22 -0
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_light_sensor_value.rb +28 -0
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_touch_sensor_pressed_or_released.rb +29 -0
- data/app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_commands.rb +3 -1
- data/app/views/editor/_toolbox.html.haml +30 -17
- data/app/views/layouts/application.html.erb +3 -1
- data/config/locales/en.yml +1 -0
- data/config/locales/ja.yml +1 -0
- data/lib/smalruby_editor/blockly_message_helper.rb +2 -1
- data/lib/smalruby_editor/version.rb +1 -1
- data/lib/tasks/release.rake +0 -0
- data/public/assets/{application-fda71a642d958ffbaf90185c471d6e51.js → application-b305a6ea9e7c045a8e170bbf6fb09dd1.js} +3 -3
- data/public/assets/{application-fda71a642d958ffbaf90185c471d6e51.js.gz → application-b305a6ea9e7c045a8e170bbf6fb09dd1.js.gz} +0 -0
- data/public/assets/{manifest-1a9856df207640ec658271db34b30dbb.json → manifest-ebd584fa603a378faf780f013e6a447d.json} +1 -1
- data/public/assets/msg/en_us-c6f8f0084f38560bf933b742ede64a52.js +1 -0
- data/public/assets/msg/en_us-c6f8f0084f38560bf933b742ede64a52.js.gz +0 -0
- data/public/assets/msg/ja-3703e6ceebd04ae1f08b0e871800539d.js +1 -0
- data/public/assets/msg/ja-3703e6ceebd04ae1f08b0e871800539d.js.gz +0 -0
- data/smalruby-editor.gemspec +1 -1
- data/spec/acceptance/block_mode/blocks/hardware/{button_down_or_up.feature → button_pressed_or_released.feature} +15 -15
- data/spec/acceptance/block_mode/blocks/hardware/led_turn_off.feature +67 -0
- data/spec/acceptance/block_mode/blocks/hardware/led_turn_on.feature +67 -0
- data/spec/acceptance/block_mode/blocks/hardware/rgb_led_set_color.feature +79 -0
- data/spec/acceptance/block_mode/blocks/hardware/{button_not_use_pullup.feature → rgb_led_turn_off.feature} +30 -18
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action.feature +107 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action_with_sec.feature +151 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_led_turn_on_or_off.feature +73 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_light_sensor_value.feature +92 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_motor_speed.feature +116 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_touch_sensor_pressed_or_released.feature +108 -0
- data/spec/models/concerns/ruby_to_block/block/hardware_spec.rb +359 -36
- data/spec/models/concerns/ruby_to_block_spec.rb +8 -8
- data/spec/steps/block_mode_steps.rb +8 -0
- metadata +43 -35
- data/app/models/concerns/ruby_to_block/block/hardware_button_not_use_pullup.rb +0 -18
- data/app/models/concerns/ruby_to_block/block/hardware_on_button_down_or_up.rb +0 -19
- data/app/models/concerns/ruby_to_block/block/hardware_on_sensor_change.rb +0 -17
- data/public/assets/msg/en_us-893d970ff8061fbe7459f009582c4df5.js +0 -1
- data/public/assets/msg/en_us-893d970ff8061fbe7459f009582c4df5.js.gz +0 -0
- data/public/assets/msg/ja-4d22bd0341f464f9d1b9f373121bce6d.js +0 -1
- data/public/assets/msg/ja-4d22bd0341f464f9d1b9f373121bce6d.js.gz +0 -0
- data/spec/acceptance/block_mode/blocks/hardware/led_off.feature +0 -75
- data/spec/acceptance/block_mode/blocks/hardware/led_on.feature +0 -75
- data/spec/acceptance/block_mode/blocks/hardware/on_button_down_or_up.feature +0 -87
- data/spec/acceptance/block_mode/blocks/hardware/on_sensor_change.feature +0 -81
- data/spec/acceptance/block_mode/blocks/hardware/rgb_led_off.feature +0 -81
- data/spec/acceptance/block_mode/blocks/hardware/rgb_led_on.feature +0 -87
@@ -8,6 +8,21 @@ goog.require('Blockly.Msg');
|
|
8
8
|
* to message files.
|
9
9
|
*/
|
10
10
|
|
11
|
+
// common
|
12
|
+
Blockly.Msg.COMMON_TURN_ON = 'オンにする';
|
13
|
+
Blockly.Msg.COMMON_TURN_OFF = 'オフにする';
|
14
|
+
Blockly.Msg.COMMON_FORWARD = '進める';
|
15
|
+
Blockly.Msg.COMMON_BACKWARD = 'バックさせる';
|
16
|
+
Blockly.Msg.COMMON_TURN_LEFT = '左に曲げる';
|
17
|
+
Blockly.Msg.COMMON_TURN_RIGHT = '右に曲げる';
|
18
|
+
Blockly.Msg.COMMON_STOP = '止める';
|
19
|
+
|
20
|
+
|
21
|
+
// colour name
|
22
|
+
Blockly.Msg.COLOUR_RED = '赤色';
|
23
|
+
Blockly.Msg.COLOUR_GREEN = '緑色';
|
24
|
+
|
25
|
+
|
11
26
|
// views/main_menu_view.js.coffee
|
12
27
|
Blockly.Msg.VIEWS_MAIN_MENU_VIEW_COMMON_LINES = '行';
|
13
28
|
Blockly.Msg.VIEWS_MAIN_MENU_VIEW_COMMON_LETTERS = '文字';
|
@@ -74,13 +89,16 @@ Blockly.Msg.BLOCKS_SENSING_K_DOWN = '↓';
|
|
74
89
|
Blockly.Msg.BLOCKS_SENSING_K_LEFT = '←';
|
75
90
|
Blockly.Msg.BLOCKS_SENSING_K_RIGHT = '→';
|
76
91
|
Blockly.Msg.BLOCKS_SENSING_K_SPACE = 'スペース';
|
77
|
-
Blockly.Msg.
|
78
|
-
Blockly.Msg.
|
79
|
-
Blockly.Msg.
|
92
|
+
Blockly.Msg.BLOCKS_SENSING_PRESSED = '押された';
|
93
|
+
Blockly.Msg.BLOCKS_SENSING_PUSH = Blockly.Msg.BLOCKS_SENSING_PRESSED;
|
94
|
+
Blockly.Msg.BLOCKS_SENSING_UP = Blockly.Msg.BLOCKS_SENSING_PRESSED;
|
95
|
+
Blockly.Msg.BLOCKS_SENSING_HOLD_PRESSED = '押され続けている';
|
96
|
+
Blockly.Msg.BLOCKS_SENSING_HOLD_DOWN = Blockly.Msg.BLOCKS_SENSING_HOLD_PRESSED;
|
80
97
|
Blockly.Msg.BLOCKS_SENSING_M_LBUTTON = '左ボタン';
|
81
98
|
Blockly.Msg.BLOCKS_SENSING_M_MBUTTON = '中ボタン';
|
82
99
|
Blockly.Msg.BLOCKS_SENSING_M_RBUTTON = '右ボタン';
|
83
|
-
Blockly.Msg.
|
100
|
+
Blockly.Msg.BLOCKS_SENSING_RELEASED = '離された';
|
101
|
+
Blockly.Msg.BLOCKS_SENSING_UP = Blockly.Msg.BLOCKS_SENSING_RELEASED;
|
84
102
|
Blockly.Msg.BLOCKS_SENSING_REACH_WALL = '端に触れた';
|
85
103
|
Blockly.Msg.BLOCKS_SENSING_INPUT_KEY_PUSH_OR_DOWN_PREFIX = 'キーボードの';
|
86
104
|
Blockly.Msg.BLOCKS_SENSING_INPUT_KEY_PUSH_OR_DOWN_MIDDLE = 'が';
|
@@ -153,17 +171,15 @@ Blockly.Msg.BLOCKS_LOOKS_HIDE = '隠す';
|
|
153
171
|
Blockly.Msg.BLOCKS_LOOKS_VANISH = '消滅する';
|
154
172
|
|
155
173
|
// blocks/hardware.js.coffee.erb
|
156
|
-
Blockly.Msg.
|
157
|
-
Blockly.Msg.
|
174
|
+
Blockly.Msg.BLOCKS_HARDWARE_LED_TURN_ON = 'LED%1をオンにする';
|
175
|
+
Blockly.Msg.BLOCKS_HARDWARE_LED_TURN_OFF = 'LED%1をオフにする';
|
158
176
|
Blockly.Msg.BLOCKS_HARDWARE_ANODE = 'アノード';
|
159
177
|
Blockly.Msg.BLOCKS_HARDWARE_CATHODE = 'カソード';
|
160
178
|
Blockly.Msg.BLOCKS_HARDWARE_LEFT = ' 左';
|
161
179
|
Blockly.Msg.BLOCKS_HARDWARE_RIGHT = '右';
|
162
180
|
Blockly.Msg.BLOCKS_HARDWARE_INIT_HARDWARE = 'ハードウェアを準備する';
|
163
|
-
Blockly.Msg.
|
164
|
-
|
165
|
-
Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_ON = 'RGB LED%1コモン%2を%3にする';
|
166
|
-
Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_OFF = 'RGB LED%1コモン%2をオフにする';
|
181
|
+
Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_SET_COLOR = 'RGB LED%1コモン%2を%3にする';
|
182
|
+
Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_TURN_OFF = 'RGB LED%1コモン%2をオフにする';
|
167
183
|
Blockly.Msg.BLOCKS_HARDWARE_SEVEN_SEGMENT_DISPLAY_SHOW = '7セグディスプレイに%1を表示する';
|
168
184
|
Blockly.Msg.BLOCKS_HARDWARE_SEVEN_SEGMENT_DISPLAY_OFF = '7セグディスプレイをオフにする';
|
169
185
|
Blockly.Msg.BLOCKS_HARDWARE_LCD_PUTS = 'LCDに%1を表示する';
|
@@ -188,11 +204,15 @@ Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_STOP = '止める';
|
|
188
204
|
Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER = '(モータードライバ%1で)モーターを%2';
|
189
205
|
Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_SET_SPEED = '(モータードライバ%1の)モーターの速度を%2にする';
|
190
206
|
Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_SPEED = '(モータードライバ%1の)モーターの速度(%)';
|
191
|
-
Blockly.Msg.
|
192
|
-
Blockly.Msg.
|
193
|
-
Blockly.Msg.
|
194
|
-
Blockly.Msg.
|
195
|
-
Blockly.Msg.
|
207
|
+
Blockly.Msg.BLOCKS_HARDWARE_BUTTON_PRESSED_OR_RELEASED = 'ボタン %1 が %2 ?';
|
208
|
+
Blockly.Msg.BLOCKS_HARDWARE_SENSOR_VALUE = 'センサー %1';
|
209
|
+
Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_LED_TURN_ON_OR_OFF = 'スモウルボットV3の %1 LEDを %2';
|
210
|
+
Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_MOTOR_SPEED = 'スモウルボットV3の %1 モーターの速度(%)';
|
211
|
+
Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_MOTOR_SET_SPEED = 'スモウルボットV3の %1 モーターの速度を %2 (%) にする';
|
212
|
+
Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_ACTION = 'スモウルボットV3を %1';
|
213
|
+
Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_ACTION_WITH_SEC = 'スモウルボットV3を %2 秒 %1';
|
214
|
+
Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_TOUCH_SENSOR_PRESSED_OR_RELEASED = 'スモウルボットV3の %1 のタッチセンサーが %2 ?';
|
215
|
+
Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_LIGHT_SENSOR_VALUE = 'スモウルボットV3の光センサー';
|
196
216
|
|
197
217
|
|
198
218
|
// blocks/operators.js.coffee.erb
|
@@ -32,10 +32,11 @@ module EditorHelper
|
|
32
32
|
# @param [Numeric] value 数値
|
33
33
|
# @return [String] XML
|
34
34
|
def toolbox_number_value(name, value = 0)
|
35
|
+
value = value.to_i unless value.is_a?(Numeric)
|
35
36
|
<<-XML.strip_heredoc.html_safe
|
36
37
|
<value name="#{h name}">
|
37
38
|
<block type="math_number">
|
38
|
-
<field name="NUM">#{h value
|
39
|
+
<field name="NUM">#{h value}</field>
|
39
40
|
</block>
|
40
41
|
</value>
|
41
42
|
XML
|
@@ -1,11 +1,11 @@
|
|
1
1
|
module RubyToBlock
|
2
2
|
module Block
|
3
|
-
class
|
3
|
+
class HardwareButtonPressedOrReleased < Value
|
4
4
|
include CharacterOperation
|
5
5
|
include HardwareOperation
|
6
6
|
|
7
7
|
blocknize '^\s*' + CHAR_RE +
|
8
|
-
'button\(' + DIO_PIN_RE + '\)\.(
|
8
|
+
'button\(' + DIO_PIN_RE + '\)\.(pressed|released)\?\s*$',
|
9
9
|
value: true
|
10
10
|
|
11
11
|
def self.process_match_data(md, context)
|
@@ -14,7 +14,7 @@ module RubyToBlock
|
|
14
14
|
character = get_character(context, md2[1])
|
15
15
|
return false if context.receiver && context.receiver != character
|
16
16
|
|
17
|
-
block = new(fields: { PIN: md2[2],
|
17
|
+
block = new(fields: { PIN: md2[2], POR: md2[3] })
|
18
18
|
context.add_value(block)
|
19
19
|
block.character = character
|
20
20
|
|
data/app/models/concerns/ruby_to_block/block/{hardware_led_on.rb → hardware_led_turn_off.rb}
RENAMED
@@ -1,8 +1,8 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
module RubyToBlock
|
3
3
|
module Block
|
4
|
-
class
|
5
|
-
blocknize '^\s*' + CHAR_RE + 'led\("(D(?:[2-9]|1[0-3]))"\).
|
4
|
+
class HardwareLedTurnOff < CharacterMethodCall
|
5
|
+
blocknize '^\s*' + CHAR_RE + 'led\("(D(?:[2-9]|1[0-3]))"\).turn_off\s*$',
|
6
6
|
statement: true
|
7
7
|
|
8
8
|
def self.process_match_data(md, context)
|
data/app/models/concerns/ruby_to_block/block/{hardware_led_off.rb → hardware_led_turn_on.rb}
RENAMED
@@ -1,8 +1,8 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
module RubyToBlock
|
3
3
|
module Block
|
4
|
-
class
|
5
|
-
blocknize '^\s*' + CHAR_RE + 'led\("(D(?:[2-9]|1[0-3]))"\).
|
4
|
+
class HardwareLedTurnOn < CharacterMethodCall
|
5
|
+
blocknize '^\s*' + CHAR_RE + 'led\("(D(?:[2-9]|1[0-3]))"\).turn_on\s*$',
|
6
6
|
statement: true
|
7
7
|
|
8
8
|
def self.process_match_data(md, context)
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
module RubyToBlock
|
3
3
|
module Block
|
4
|
-
class
|
4
|
+
class HardwareRgbLedSetColor < CharacterMethodCall
|
5
5
|
# rubocop:disable LineLength
|
6
|
-
blocknize '^\s*' + CHAR_RE + 'rgb_led_(anode|cathode)\("(D[39])"\).
|
6
|
+
blocknize '^\s*' + CHAR_RE + 'rgb_led_(anode|cathode)\("(D[39])"\).color\s*=\s*\[(\d+),\s*(\d+),\s*(\d+)\]\s*$',
|
7
7
|
statement: true
|
8
8
|
# rubocop:enable LineLength
|
9
9
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
module RubyToBlock
|
3
3
|
module Block
|
4
|
-
class
|
4
|
+
class HardwareRgbLedTurnOff < CharacterMethodCall
|
5
5
|
# rubocop:disable LineLength
|
6
|
-
blocknize '^\s*' + CHAR_RE + 'rgb_led_(anode|cathode)\("(D[39])"\)\.
|
6
|
+
blocknize '^\s*' + CHAR_RE + 'rgb_led_(anode|cathode)\("(D[39])"\)\.turn_off\s*$',
|
7
7
|
statement: true
|
8
8
|
# rubocop:enable LineLength
|
9
9
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
module RubyToBlock
|
3
|
+
module Block
|
4
|
+
class HardwareSmalrubotV3Action < CharacterMethodCall
|
5
|
+
include HardwareOperation
|
6
|
+
|
7
|
+
# rubocop:disable LineLength
|
8
|
+
blocknize '^\s*' + CHAR_RE +
|
9
|
+
'smalrubot_v3\.' + ACTION_RE +
|
10
|
+
'\s*$',
|
11
|
+
statement: true, inline: true
|
12
|
+
# rubocop:enable LineLength
|
13
|
+
|
14
|
+
def self.process_match_data(md, context)
|
15
|
+
md2 = regexp.match(md[type])
|
16
|
+
add_character_method_call_block(context, md2[1],
|
17
|
+
new(fields: { ACTION: md2[2] }))
|
18
|
+
true
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
module RubyToBlock
|
3
|
+
module Block
|
4
|
+
class HardwareSmalrubotV3ActionWithSec < CharacterMethodCall
|
5
|
+
include HardwareOperation
|
6
|
+
|
7
|
+
# rubocop:disable LineLength
|
8
|
+
blocknize '^\s*' + CHAR_RE +
|
9
|
+
'smalrubot_v3\.' + ACTION_RE +
|
10
|
+
'\(\s*sec:\s*(\d+(?:\.\d+)?)\)' +
|
11
|
+
'\s*$',
|
12
|
+
statement: true, inline: true
|
13
|
+
# rubocop:enable LineLength
|
14
|
+
|
15
|
+
def self.process_match_data(md, context)
|
16
|
+
md2 = regexp.match(md[type])
|
17
|
+
add_character_method_call_block(context, md2[1],
|
18
|
+
new(fields: { ACTION: md2[2] }),
|
19
|
+
SEC: md2[3])
|
20
|
+
true
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
module RubyToBlock
|
3
|
+
module Block
|
4
|
+
class HardwareSmalrubotV3LedTurnOnOrOff < CharacterMethodCall
|
5
|
+
include HardwareOperation
|
6
|
+
|
7
|
+
# rubocop:disable LineLength
|
8
|
+
blocknize '^\s*' + CHAR_RE +
|
9
|
+
'smalrubot_v3\.(red|green)_led.(turn_on|turn_off)' +
|
10
|
+
'\s*$',
|
11
|
+
statement: true, inline: true
|
12
|
+
# rubocop:enable LineLength
|
13
|
+
|
14
|
+
def self.process_match_data(md, context)
|
15
|
+
md2 = regexp.match(md[type])
|
16
|
+
block = new(fields: { COLOUR: md2[2], OOO: md2[3] })
|
17
|
+
add_character_method_call_block(context, md2[1], block)
|
18
|
+
true
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module RubyToBlock
|
2
|
+
module Block
|
3
|
+
class HardwareSmalrubotV3LightSensorValue < Value
|
4
|
+
include CharacterOperation
|
5
|
+
|
6
|
+
# rubocop:disable LineLength
|
7
|
+
blocknize '^\s*' + CHAR_RE +
|
8
|
+
'smalrubot_v3\.' +
|
9
|
+
'light_sensor\.value' +
|
10
|
+
'\s*$',
|
11
|
+
value: true
|
12
|
+
# rubocop:enable LineLength
|
13
|
+
|
14
|
+
def self.process_match_data(md, context)
|
15
|
+
md2 = regexp.match(md[type])
|
16
|
+
|
17
|
+
character = get_character(context, md2[1])
|
18
|
+
return false if context.receiver && context.receiver != character
|
19
|
+
|
20
|
+
block = new
|
21
|
+
context.add_value(block)
|
22
|
+
block.character = character
|
23
|
+
|
24
|
+
true
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module RubyToBlock
|
2
|
+
module Block
|
3
|
+
class HardwareSmalrubotV3TouchSensorPressedOrReleased < Value
|
4
|
+
include CharacterOperation
|
5
|
+
include HardwareOperation
|
6
|
+
|
7
|
+
# rubocop:disable LineLength
|
8
|
+
blocknize '^\s*' + CHAR_RE +
|
9
|
+
'smalrubot_v3\.' +
|
10
|
+
LOR_RE + '_touch_sensor\.' + POR_RE + '\?' +
|
11
|
+
'\s*$',
|
12
|
+
value: true
|
13
|
+
# rubocop:enable LineLength
|
14
|
+
|
15
|
+
def self.process_match_data(md, context)
|
16
|
+
md2 = regexp.match(md[type])
|
17
|
+
|
18
|
+
character = get_character(context, md2[1])
|
19
|
+
return false if context.receiver && context.receiver != character
|
20
|
+
|
21
|
+
block = new(fields: { LOR: md2[2], POR: md2[3] })
|
22
|
+
context.add_value(block)
|
23
|
+
block.character = character
|
24
|
+
|
25
|
+
true
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -2,7 +2,9 @@
|
|
2
2
|
module RubyToBlock
|
3
3
|
module Block
|
4
4
|
class HardwareTwoWheelDriveCarCommands < Value
|
5
|
-
|
5
|
+
include HardwareOperation
|
6
|
+
|
7
|
+
blocknize '^\s*"' + ACTION_RE + '"\s*$',
|
6
8
|
value: true, priority: 1
|
7
9
|
|
8
10
|
def self.process_match_data(md, context)
|
@@ -140,6 +140,19 @@
|
|
140
140
|
= toolbox_pin_field('D6')
|
141
141
|
= toolbox_number_value('SPEED', 100)
|
142
142
|
|
143
|
+
- subcategory = 'smalrubot_v3'
|
144
|
+
%block{type: "#{category}_#{subcategory}_action"}
|
145
|
+
%field{name: 'ACTION'}<
|
146
|
+
forward
|
147
|
+
|
148
|
+
%block{type: "#{category}_#{subcategory}_action_with_sec"}
|
149
|
+
%field{name: 'ACTION'}<
|
150
|
+
forward
|
151
|
+
= toolbox_number_value('SEC', 0.5)
|
152
|
+
|
153
|
+
%block{type: "#{category}_#{subcategory}_motor_set_speed"}
|
154
|
+
= toolbox_number_value('SPEED', 100)
|
155
|
+
|
143
156
|
- category = 'looks'
|
144
157
|
%category{:name => t('.looks')}
|
145
158
|
-# [ ]と( )秒言う
|
@@ -187,17 +200,17 @@
|
|
187
200
|
- category = 'hardware'
|
188
201
|
- subcategory = 'led'
|
189
202
|
-# LED[▼PIN]をオンにする
|
190
|
-
%block{:type => "#{category}_#{subcategory}
|
203
|
+
%block{:type => "#{category}_#{subcategory}_turn_on"}
|
191
204
|
|
192
205
|
-# LED[▼PIN]をオフにする
|
193
|
-
%block{:type => "#{category}_#{subcategory}
|
206
|
+
%block{:type => "#{category}_#{subcategory}_turn_off"}
|
194
207
|
|
195
208
|
- subcategory = 'rgb_led'
|
196
209
|
-# RGB LED[▼アノード]コモン[▼PIN]を[カラー]にする
|
197
|
-
%block{:type => "#{category}_#{subcategory}
|
210
|
+
%block{:type => "#{category}_#{subcategory}_set_color"}
|
198
211
|
|
199
212
|
-# RGB LED[▼アノード]コモン[▼PIN]をオフにする
|
200
|
-
%block{:type => "#{category}_#{subcategory}
|
213
|
+
%block{:type => "#{category}_#{subcategory}_turn_off"}
|
201
214
|
|
202
215
|
- subcategory = 'seven_segment_display'
|
203
216
|
-# 7セグディスプレイに[▼0-9]を表示する
|
@@ -214,6 +227,13 @@
|
|
214
227
|
-# LCDをクリアする
|
215
228
|
%block{:type => "#{category}_#{subcategory}_clear"}
|
216
229
|
|
230
|
+
- subcategory = 'smalrubot_v3'
|
231
|
+
%block{type: "#{category}_#{subcategory}_led_turn_on_or_off"}
|
232
|
+
%field{name: 'COLOUR'}<
|
233
|
+
red
|
234
|
+
%field{name: 'OOO'}<
|
235
|
+
turn_on
|
236
|
+
|
217
237
|
- category = 'sound'
|
218
238
|
%category{:name => t('.sound')}
|
219
239
|
-# [▼プリセット音声]の音を鳴らす
|
@@ -257,14 +277,6 @@
|
|
257
277
|
-# [▼キャラクター]にぶつかったとき
|
258
278
|
%block{:type => "#{category}_on_hit"}
|
259
279
|
|
260
|
-
- if !raspberrypi?
|
261
|
-
- category = 'hardware'
|
262
|
-
-# センサー[▼PIN]が変化したとき
|
263
|
-
%block{:type => "#{category}_on_sensor_change"}
|
264
|
-
|
265
|
-
-# ボタン[▼PIN]が[▼押された]とき
|
266
|
-
%block{:type => "#{category}_on_button_down_or_up"}
|
267
|
-
|
268
280
|
- category = 'control'
|
269
281
|
%category{:name => t('.control')}
|
270
282
|
%category{:name => t('.control_loop')}
|
@@ -359,7 +371,7 @@
|
|
359
371
|
= toolbox_pin_field('A0')
|
360
372
|
|
361
373
|
-# 条件:ボタン[▼PIN]が[▼押された]
|
362
|
-
%block{:type => "#{category}
|
374
|
+
%block{:type => "#{category}_button_pressed_or_released"}
|
363
375
|
= toolbox_pin_field('D3')
|
364
376
|
|
365
377
|
-# 2WD車[▼PIN]の[▼LOR]の速度%
|
@@ -370,6 +382,11 @@
|
|
370
382
|
%block{:type => "#{category}_motor_driver_speed"}
|
371
383
|
= toolbox_pin_field('D6')
|
372
384
|
|
385
|
+
- subcategory = 'smalrubot_v3'
|
386
|
+
%block{type: "#{category}_#{subcategory}_touch_sensor_pressed_or_released"}
|
387
|
+
%block{type: "#{category}_#{subcategory}_light_sensor_value"}
|
388
|
+
%block{type: "#{category}_#{subcategory}_motor_speed"}
|
389
|
+
|
373
390
|
- category = 'operators'
|
374
391
|
%category{:name => t('.operators')}
|
375
392
|
%category{:name => t('.operators_calculate')}
|
@@ -477,7 +494,3 @@
|
|
477
494
|
%category{:name => t('.etc_hardware')}
|
478
495
|
-# ハードウェアを準備する
|
479
496
|
%block{:type => "#{category}_init_hardware"}
|
480
|
-
|
481
|
-
-# ボタン[▼PIN]のプルアップ抵抗を使わない
|
482
|
-
%block{:type => "#{category}_button_not_use_pullup"}
|
483
|
-
= toolbox_pin_field('D3')
|
@@ -1,7 +1,9 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html>
|
3
3
|
<head>
|
4
|
-
<title>
|
4
|
+
<title>
|
5
|
+
<%= t('common.smalruby_editor', version: SmalrubyEditor::VERSION) %>
|
6
|
+
</title>
|
5
7
|
<%= favicon_link_tag %>
|
6
8
|
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
|
7
9
|
<meta name="application-name" content="Smalruby" />
|