From 9a764b7e7497aeb72ed9008ed76deeb622f04f4d Mon Sep 17 00:00:00 2001 From: Mario Date: Mon, 14 Sep 2020 15:41:57 +0200 Subject: [PATCH 1/2] add led block --- src/components/Blockly/blocks/sensebox-led.js | 18 +++++++++++++++++- .../Blockly/generator/sensebox-led.js | 9 ++++++++- src/components/Blockly/toolbox/Toolbox.js | 1 + 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/components/Blockly/blocks/sensebox-led.js b/src/components/Blockly/blocks/sensebox-led.js index ef9089a..d30bb68 100644 --- a/src/components/Blockly/blocks/sensebox-led.js +++ b/src/components/Blockly/blocks/sensebox-led.js @@ -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"); diff --git a/src/components/Blockly/generator/sensebox-led.js b/src/components/Blockly/generator/sensebox-led.js index 7b76c56..158c9d3 100644 --- a/src/components/Blockly/generator/sensebox-led.js +++ b/src/components/Blockly/generator/sensebox-led.js @@ -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'); diff --git a/src/components/Blockly/toolbox/Toolbox.js b/src/components/Blockly/toolbox/Toolbox.js index 0a1f3af..db1fc3b 100644 --- a/src/components/Blockly/toolbox/Toolbox.js +++ b/src/components/Blockly/toolbox/Toolbox.js @@ -26,6 +26,7 @@ class Toolbox extends React.Component { + From 97ef7ab1bb80fd955a5d5ba1d4574cf4807918b2 Mon Sep 17 00:00:00 2001 From: Mario Date: Mon, 14 Sep 2020 15:58:22 +0200 Subject: [PATCH 2/2] update led pins --- src/components/Blockly/blocks/sensebox-led.js | 2 +- src/components/Blockly/generator/sensebox-led.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Blockly/blocks/sensebox-led.js b/src/components/Blockly/blocks/sensebox-led.js index d30bb68..6038d34 100644 --- a/src/components/Blockly/blocks/sensebox-led.js +++ b/src/components/Blockly/blocks/sensebox-led.js @@ -11,7 +11,7 @@ Blockly.Blocks['sensebox_led'] = { this.appendDummyInput() .appendField(Blockly.Msg.senseBox_led) .appendField("Pin:") - .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "PIN") + .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPinsLED), "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); diff --git a/src/components/Blockly/generator/sensebox-led.js b/src/components/Blockly/generator/sensebox-led.js index 158c9d3..eea4c9f 100644 --- a/src/components/Blockly/generator/sensebox-led.js +++ b/src/components/Blockly/generator/sensebox-led.js @@ -3,7 +3,7 @@ import * as Blockly from 'blockly/core'; 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);'; + Blockly.Arduino.setupCode_['setup_led_' + dropdown_pin] = 'pinMode(' + dropdown_pin + ', OUTPUT);'; var code = 'digitalWrite(' + dropdown_pin + ',' + dropdown_stat + ');\n' return code; };