From 2f4538dc89146ded1c1f630c6ac9ac44084789b1 Mon Sep 17 00:00:00 2001 From: Mario Pesch Date: Thu, 30 Mar 2023 10:31:05 +0200 Subject: [PATCH 1/2] update ports for senseBox MCU mini --- .../Blockly/blocks/sensebox-sensors.js | 31 ++++--------------- src/components/Blockly/helpers/board.js | 11 +++++-- .../Blockly/helpers/maxInstances.js | 2 ++ 3 files changed, 17 insertions(+), 27 deletions(-) diff --git a/src/components/Blockly/blocks/sensebox-sensors.js b/src/components/Blockly/blocks/sensebox-sensors.js index 3236275..39ed488 100644 --- a/src/components/Blockly/blocks/sensebox-sensors.js +++ b/src/components/Blockly/blocks/sensebox-sensors.js @@ -218,12 +218,7 @@ Blockly.Blocks["sensebox_sensor_bme680_bsec"] = { Blockly.Blocks["sensebox_sensor_ultrasonic_ranger"] = { init: function () { - var dropdownOptions = [ - [Blockly.Msg.senseBox_ultrasonic_port_A, "A"], - [Blockly.Msg.senseBox_ultrasonic_port_B, "B"], - [Blockly.Msg.senseBox_ultrasonic_port_C, "C"], - ]; - var dropdown = new FieldGridDropdown(dropdownOptions, function (option) { + var dropdown = new FieldGridDropdown(selectedBoard().digitalPorts, function (option) { var input = option === "A" || option === "B" || option === "C"; this.sourceBlock_.updateShape_(input); }); @@ -433,17 +428,12 @@ Blockly.Blocks["sensebox_gps"] = { */ Blockly.Blocks["sensebox_sensor_truebner_smt50"] = { - init: function () { - var dropdownOptions = [ - [Blockly.Msg.senseBox_ultrasonic_port_A, "A"], - [Blockly.Msg.senseBox_ultrasonic_port_B, "B"], - [Blockly.Msg.senseBox_ultrasonic_port_C, "C"], - ]; + init: function () { this.setColour(getColour().sensebox); this.appendDummyInput().appendField(Blockly.Msg.senseBox_smt50); this.appendDummyInput() .appendField("Port:") - .appendField(new Blockly.FieldDropdown(dropdownOptions), "Port"); + .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPorts), "Port"); this.appendDummyInput() .appendField(Blockly.Msg.senseBox_value) .appendField( @@ -467,16 +457,12 @@ Blockly.Blocks["sensebox_sensor_truebner_smt50"] = { Blockly.Blocks["sensebox_sensor_watertemperature"] = { init: function () { - var dropdownOptions = [ - [Blockly.Msg.senseBox_ultrasonic_port_A, "A"], - [Blockly.Msg.senseBox_ultrasonic_port_B, "B"], - [Blockly.Msg.senseBox_ultrasonic_port_C, "C"], - ]; + this.setColour(getColour().sensebox); this.appendDummyInput() .appendField(Blockly.Msg.senseBox_watertemperature) .appendField("Port:") - .appendField(new Blockly.FieldDropdown(dropdownOptions), "Port"); + .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPorts), "Port"); this.setOutput(true, Types.NUMBER.typeName); this.setTooltip(Blockly.Msg.senseBox_watertemperature_tip); this.data = {name: "ds18b20"}; @@ -506,16 +492,11 @@ Blockly.Blocks['sensebox_windspeed'] = { Blockly.Blocks["sensebox_soundsensor_dfrobot"] = { init: function () { - var dropdownOptions = [ - [Blockly.Msg.senseBox_ultrasonic_port_A, "A"], - [Blockly.Msg.senseBox_ultrasonic_port_B, "B"], - [Blockly.Msg.senseBox_ultrasonic_port_C, "C"], - ]; this.setColour(getColour().sensebox); this.appendDummyInput() .appendField(Blockly.Msg.senseBox_soundsensor_dfrobot) .appendField("Port:") - .appendField(new Blockly.FieldDropdown(dropdownOptions), "Port"); + .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPorts), "Port"); this.setOutput(true, Types.DECIMAL.typeName); this.setTooltip(Blockly.Msg.senseBox_soundsensor_dfrobot_tooltip); this.setHelpUrl(Blockly.Msg.senseBox_soundsensor_dfrobot_helpurl); diff --git a/src/components/Blockly/helpers/board.js b/src/components/Blockly/helpers/board.js index 3150d67..924eeb4 100644 --- a/src/components/Blockly/helpers/board.js +++ b/src/components/Blockly/helpers/board.js @@ -13,6 +13,11 @@ const sensebox_mcu = { ["C5", "5"], ["C6", "6"], ], + digitalPorts: [ + ["A", "A"], + ["B", "B"], + ["C", "C"], + ], digitalPinsLED: [ ["BUILTIN_1", "7"], ["BUILTIN_2", "8"], @@ -143,6 +148,9 @@ const sensebox_mini = { ["IO1", "1"], ["IO2", "2"], ], + digitalPorts: [ + ["IO1-2", "A"], + ], digitalPinsLED: [ ["BUILTIN_1", "7"], ["BUILTIN_2", "8"], @@ -151,8 +159,7 @@ const sensebox_mini = { ], digitalPinsRGB: [ ["on Board", "6"], - ["IO1", "1"], - ["IO2", "2"], + ["IO1-2", "1"], ], digitalPinsButton: [ ["on Board", "0"], diff --git a/src/components/Blockly/helpers/maxInstances.js b/src/components/Blockly/helpers/maxInstances.js index 6498097..b865e4e 100644 --- a/src/components/Blockly/helpers/maxInstances.js +++ b/src/components/Blockly/helpers/maxInstances.js @@ -13,6 +13,8 @@ const maxInstances = { sensebox_lora_initialize_otaa: 1, sensebox_lora_initialize_abp: 1, sensebox_phyphox_init: 1, + sensebox_phyphox_experiment: 1, + sensebox_phyphox_experiment_send: 1, sensebox_ethernet: 1, }; From 7c60869124cb22d79f1d60d7a06952c0196f6f44 Mon Sep 17 00:00:00 2001 From: Mario Pesch Date: Mon, 3 Apr 2023 12:26:43 +0200 Subject: [PATCH 2/2] add Button as Switch --- src/components/Blockly/blocks/sensebox-sensors.js | 1 + src/components/Blockly/generator/sensebox-sensors.js | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/components/Blockly/blocks/sensebox-sensors.js b/src/components/Blockly/blocks/sensebox-sensors.js index 3236275..7e0db56 100644 --- a/src/components/Blockly/blocks/sensebox-sensors.js +++ b/src/components/Blockly/blocks/sensebox-sensors.js @@ -336,6 +336,7 @@ Blockly.Blocks["sensebox_button"] = { [Blockly.Msg.senseBox_button_isPressed, "isPressed"], [Blockly.Msg.senseBox_button_wasPressed, "wasPressed"], [Blockly.Msg.senseBox_button_longPress, "longPress"], + [Blockly.Msg.senseBox_button_switch,"toggleButton"] ]), "FUNCTION" ) diff --git a/src/components/Blockly/generator/sensebox-sensors.js b/src/components/Blockly/generator/sensebox-sensors.js index 21b5bb2..3929957 100644 --- a/src/components/Blockly/generator/sensebox-sensors.js +++ b/src/components/Blockly/generator/sensebox-sensors.js @@ -399,6 +399,7 @@ Blockly.Arduino.sensebox_button = function () { Blockly.Arduino.libraries_[ "library_jcButtons" ] = `#include // http://librarymanager/All#JC_Button`; + Blockly.Arduino.definitions_["define_button" + dropdown_pin + ""] = "Button button_" + dropdown_pin + "(" + dropdown_pin + ");"; Blockly.Arduino.setupCode_["setup_button" + dropdown_pin + ""] = @@ -413,6 +414,10 @@ Blockly.Arduino.sensebox_button = function () { } else if (dropown_function === "longPress") { var time = this.getFieldValue("time"); code = "button_" + dropdown_pin + ".pressedFor(" + time + ")"; + } else if (dropown_function === "toggleButton") { + code = "button_" + dropdown_pin + ".toggleState()"; + Blockly.Arduino.definitions_["define_button" + dropdown_pin + ""] = + "ToggleButton button_" + dropdown_pin + "(" + dropdown_pin + ");"; } return [code, Blockly.Arduino.ORDER_ATOMIC]; };