add led block

This commit is contained in:
Mario 2020-09-14 15:41:57 +02:00
parent 78f8bad4b3
commit 9a764b7e74
3 changed files with 26 additions and 2 deletions

View File

@ -4,13 +4,29 @@ import { getColour } from '../helpers/colour'
import { selectedBoard } from '../helpers/board'
Blockly.Blocks['sensebox_led'] = {
init: function () {
this.setColour(getColour().sensebox);
this.appendDummyInput()
.appendField(Blockly.Msg.senseBox_led)
.appendField("Pin:")
.appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "PIN")
.appendField(Blockly.Msg.senseBox_basic_state)
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.senseBox_on, "HIGH"], [Blockly.Msg.senseBox_off, "LOW"]]), "STAT");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.senseBox_led_tip);
}
};
Blockly.Blocks['sensebox_rgb_led'] = {
init: function () {
this.setColour(getColour().sensebox);
this.appendDummyInput()
.appendField(Blockly.Msg.senseBox_rgb_led)
.appendField("Pin:")
.appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "PIN")
.appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "PIN");
this.appendDummyInput()
.appendField(Blockly.Msg.COLOUR_RGB_RED)//Blockly.Msg.senseBox_basic_red
.appendField(new FieldSlider(255, 0, 255), "RED");

View File

@ -1,5 +1,12 @@
import * as Blockly from 'blockly/core';
import { Block } from 'blockly';
Blockly.Arduino.sensebox_led = function () {
var dropdown_pin = this.getFieldValue('PIN');
var dropdown_stat = this.getFieldValue('STAT');
Blockly.Arduino.setups_['setup_green_led_' + dropdown_pin] = 'pinMode(' + dropdown_pin + ', OUTPUT);';
var code = 'digitalWrite(' + dropdown_pin + ',' + dropdown_stat + ');\n'
return code;
};
Blockly.Arduino.sensebox_rgb_led = function () {
var dropdown_pin = this.getFieldValue('PIN');

View File

@ -26,6 +26,7 @@ class Toolbox extends React.Component {
</Category>
<Category name="LED" colour={getColour().sensebox}>
<Block type="sensebox_rgb_led" />
<Block type="sensebox_led" />
</Category>
<Category name="Display" colour={getColour().sensebox}>
<Block type="sensebox_display_beginDisplay" />