Skip to content

Commit c65019a

Browse files
committed
Add some functions for trigger pin's event in microbit_more
1 parent aaea6ec commit c65019a

File tree

1 file changed

+36
-6
lines changed

1 file changed

+36
-6
lines changed

src/lib/ruby-generator/microbit_more.js

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,26 @@ export default function (Generator) {
129129
return `microbit_more.set_servo(${pin}, ${angle}, ${range}, ${center})\n`;
130130
};
131131

132+
Generator.microbitMore_setPinEventType = function (block) {
133+
const pin = Generator.valueToCode(block, 'PIN', Generator.ORDER_NONE) || null;
134+
const eventType = Generator.getFieldValue(block, 'EVENT_TYPE') || null;
135+
return `microbit_more.set_pin_event_type(${pin}, ${eventType})\n`;
136+
};
137+
138+
Generator.microbitMore_whenPinEvent = function (block) {
139+
block.isStatement = true;
140+
const pin = Generator.valueToCode(block, 'PIN', Generator.ORDER_NONE) || null;
141+
const event = Generator.getFieldValue(block, 'EVENT') || null;
142+
return `${Generator.spriteName()}.when(:microbit_more_pin_event, ${pin}, ${event}) do\n`;
143+
};
144+
145+
Generator.microbitMore_getPinEventTimestamp = function (block) {
146+
block.isStatement = true;
147+
const pin = Generator.valueToCode(block, 'PIN', Generator.ORDER_NONE) || null;
148+
const event = Generator.getFieldValue(block, 'EVENT') || null;
149+
return `microbit_more.get_pin_event_timestamp(${pin}, ${event})\n`;
150+
};
151+
132152
Generator.microbitMore_menu_buttons = function (block) {
133153
const buttons = Generator.quote_(Generator.getFieldValue(block, 'buttons') || 'A');
134154
return [buttons, Generator.ORDER_ATOMIC];
@@ -165,18 +185,28 @@ export default function (Generator) {
165185
};
166186

167187
Generator.microbitMore_menu_analogIn = function (block) {
168-
const axis = Generator.getFieldValue(block, 'analogIn') || '0';
169-
return [axis, Generator.ORDER_ATOMIC];
188+
const analogIn = Generator.getFieldValue(block, 'analogIn') || '0';
189+
return [analogIn, Generator.ORDER_ATOMIC];
170190
};
171191

172192
Generator.microbitMore_menu_pinMode = function (block) {
173-
const axis = Generator.getFieldValue(block, 'pinMode') || 'pullUp';
174-
return [axis, Generator.ORDER_ATOMIC];
193+
const pinMode = Generator.getFieldValue(block, 'pinMode') || 'pullUp';
194+
return [pinMode, Generator.ORDER_ATOMIC];
175195
};
176196

177197
Generator.microbitMore_menu_digitalValue = function (block) {
178-
const axis = Generator.getFieldValue(block, 'digitalValue') || '0';
179-
return [axis, Generator.ORDER_ATOMIC];
198+
const digitalValue = Generator.getFieldValue(block, 'digitalValue') || '0';
199+
return [digitalValue, Generator.ORDER_ATOMIC];
200+
};
201+
202+
Generator.microbitMore_menu_pinEventTypeMenu = function (block) {
203+
const pinEventTypeMenu = Generator.getFieldValue(block, 'pinEventTypeMenu') || 0;
204+
return [pinEventTypeMenu, Generator.ORDER_ATOMIC];
205+
};
206+
207+
Generator.microbitMore_menu_pinEventTimestampMenu = function (block) {
208+
const pinEventTimestampMenu = Generator.getFieldValue(block, 'pinEventTimestampMenu') || 5;
209+
return [pinEventTimestampMenu, Generator.ORDER_ATOMIC];
180210
};
181211

182212
Generator.matrix = function (block) {

0 commit comments

Comments
 (0)