diff --git a/.env b/.env index 1470ca5..044e061 100644 --- a/.env +++ b/.env @@ -1,4 +1,4 @@ -REACT_APP_COMPILER_URL=https://test.compiler.sensebox.de +REACT_APP_COMPILER_URL=https://compiler.sensebox.de REACT_APP_BOARD=sensebox-mcu REACT_APP_BLOCKLY_API=https://api.blockly.sensebox.de diff --git a/README.md b/README.md index 5b7a213..b9a1314 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,4 @@ This project was created with [Create React App](https://github.com/facebook/cre Ensure that line 14 in [store.js](https://github.com/sensebox/React-Ardublockly/blob/master/src/store.js#L14) is commented out or otherwise you have installed [Redux DevTools Extension](http://extension.remotedev.io/). ## Demo -A demo of the current status of the master branch can be accessed via [sensebox-ardublockly.netlify.app](https://sensebox-ardublockly.netlify.app/) :rocket:. -* [Home](https://sensebox-ardublockly.netlify.app/) -* [Tutorial Overview](https://sensebox-ardublockly.netlify.app/tutorial) -* [Tutorial-Builder](https://sensebox-ardublockly.netlify.app/tutorial/builder) +A demo of the current status of the master branch can be accessed via [https://blockly-react.netlify.app/](https://blockly-react.netlify.app/) :rocket:. diff --git a/package.json b/package.json index 2799fb2..5eea40d 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "markdown-it": "^12.3.2", "mnemonic-id": "^3.2.7", "moment": "^2.28.0", - "prismjs": "^1.25.0", + "prismjs": "^1.27.0", "react": "^17.0.2", "react-cookie-consent": "^7.2.1", "react-dom": "^17.0.2", diff --git a/src/components/Blockly/blocks/io.js b/src/components/Blockly/blocks/io.js index aab7dd2..f0fa872 100644 --- a/src/components/Blockly/blocks/io.js +++ b/src/components/Blockly/blocks/io.js @@ -10,248 +10,271 @@ * * TODO: maybe change this to a "PIN" BlocklyType */ -import Blockly from 'blockly/core'; -import { selectedBoard } from '../helpers/board' -import * as Types from '../helpers/types' +import Blockly from "blockly/core"; +import { selectedBoard } from "../helpers/board"; +import * as Types from "../helpers/types"; - -Blockly.Blocks['io_digitalwrite'] = { - /** - * Block for creating a 'set pin' to a state. - * @this Blockly.Block - */ - init: function () { - this.setHelpUrl('http://arduino.cc/en/Reference/DigitalWrite'); - this.setColour(250); - this.appendValueInput('STATE') - .appendField(Blockly.Msg.ARD_DIGITALWRITE) - .appendField(new Blockly.FieldDropdown( - selectedBoard().digitalPins), 'PIN') - .appendField(Blockly.Msg.ARD_WRITE_TO) - .setCheck(Types.BOOLEAN.checkList); - this.setInputsInline(false); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(Blockly.Msg.ARD_DIGITALWRITE_TIP); - }, - /** - * Updates the content of the the pin related fields. - * @this Blockly.Block - */ - updateFields: function () { - Blockly.Arduino.Boards.refreshBlockFieldDropdown( - this, 'PIN', 'digitalPins'); - } +Blockly.Blocks["io_digitalwrite"] = { + /** + * Block for creating a 'set pin' to a state. + * @this Blockly.Block + */ + init: function () { + this.setHelpUrl("http://arduino.cc/en/Reference/DigitalWrite"); + this.setColour(250); + this.appendValueInput("STATE") + .appendField(Blockly.Msg.ARD_DIGITALWRITE) + .appendField( + new Blockly.FieldDropdown(selectedBoard().digitalPins), + "PIN" + ) + .appendField(Blockly.Msg.ARD_WRITE_TO) + .setCheck(Types.BOOLEAN.checkList); + this.setInputsInline(false); + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + this.setTooltip(Blockly.Msg.ARD_DIGITALWRITE_TIP); + }, + /** + * Updates the content of the the pin related fields. + * @this Blockly.Block + */ + updateFields: function () { + Blockly.Arduino.Boards.refreshBlockFieldDropdown( + this, + "PIN", + "digitalPins" + ); + }, }; -Blockly.Blocks['io_digitalread'] = { - /** - * Block for creating a 'read pin'. - * @this Blockly.Block - */ - init: function () { - this.setHelpUrl('http://arduino.cc/en/Reference/DigitalRead'); - this.setColour(250); - this.appendDummyInput() - .appendField(Blockly.Msg.ARD_DIGITALREAD) - .appendField(new Blockly.FieldDropdown( - selectedBoard().digitalPins), 'PIN'); - this.setOutput(true, 'boolean'); - this.setTooltip(Blockly.Msg.ARD_DIGITALREAD_TIP); - }, - /** @return {!string} The type of return value for the block, an integer. */ - getBlockType: function () { - return Types.BOOLEAN; - }, - /** - * Updates the content of the the pin related fields. - * @this Blockly.Block - */ - updateFields: function () { - Blockly.Arduino.Boards.refreshBlockFieldDropdown( - this, 'PIN', 'digitalPins'); - } +Blockly.Blocks["io_digitalread"] = { + /** + * Block for creating a 'read pin'. + * @this Blockly.Block + */ + init: function () { + this.setHelpUrl("http://arduino.cc/en/Reference/DigitalRead"); + this.setColour(250); + this.appendDummyInput() + .appendField(Blockly.Msg.ARD_DIGITALREAD) + .appendField( + new Blockly.FieldDropdown(selectedBoard().digitalPins), + "PIN" + ); + this.setOutput(true, "boolean"); + this.setTooltip(Blockly.Msg.ARD_DIGITALREAD_TIP); + }, + /** @return {!string} The type of return value for the block, an integer. */ + getBlockType: function () { + return Types.BOOLEAN; + }, + /** + * Updates the content of the the pin related fields. + * @this Blockly.Block + */ + updateFields: function () { + Blockly.Arduino.Boards.refreshBlockFieldDropdown( + this, + "PIN", + "digitalPins" + ); + }, }; -Blockly.Blocks['io_builtin_led'] = { - /** - * Block for setting built-in LED to a state. - * @this Blockly.Block - */ - init: function () { - this.setHelpUrl('http://arduino.cc/en/Reference/DigitalWrite'); - this.setColour(250); - this.appendValueInput('STATE') - .appendField(Blockly.Msg.ARD_BUILTIN_LED) - .appendField(new Blockly.FieldDropdown( - selectedBoard().builtinLed), 'BUILT_IN_LED') - .appendField(Blockly.Msg.ARD_WRITE_TO) - .setCheck(Types.BOOLEAN.compatibleTypes); - this.setInputsInline(false); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(Blockly.Msg.ARD_BUILTIN_LED_TIP); - }, - /** - * Updates the content of the the pin related fields. - * @this Blockly.Block - */ - updateFields: function () { - Blockly.Arduino.Boards.refreshBlockFieldDropdown( - this, 'BUILT_IN_LED', 'builtinLed'); - }, - /** @return {!string} The type of input value for the block, an integer. */ - getBlockType: function () { - return Types.BOOLEAN; - }, +Blockly.Blocks["io_builtin_led"] = { + /** + * Block for setting built-in LED to a state. + * @this Blockly.Block + */ + init: function () { + this.setHelpUrl("http://arduino.cc/en/Reference/DigitalWrite"); + this.setColour(250); + this.appendValueInput("STATE") + .appendField(Blockly.Msg.ARD_BUILTIN_LED) + .appendField( + new Blockly.FieldDropdown(selectedBoard().builtinLed), + "BUILT_IN_LED" + ) + .appendField(Blockly.Msg.ARD_WRITE_TO) + .setCheck(Types.BOOLEAN.compatibleTypes); + this.setInputsInline(false); + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + this.setTooltip(Blockly.Msg.ARD_BUILTIN_LED_TIP); + }, + /** + * Updates the content of the the pin related fields. + * @this Blockly.Block + */ + updateFields: function () { + Blockly.Arduino.Boards.refreshBlockFieldDropdown( + this, + "BUILT_IN_LED", + "builtinLed" + ); + }, + /** @return {!string} The type of input value for the block, an integer. */ + getBlockType: function () { + return Types.BOOLEAN; + }, }; -Blockly.Blocks['io_analogwrite'] = { - /** - * Block for creating a 'set pin' to an analogue value. - * @this Blockly.Block - */ - init: function () { - this.setHelpUrl('http://arduino.cc/en/Reference/AnalogWrite'); - this.setColour(250); - this.appendValueInput('NUM') - .appendField(Blockly.Msg.ARD_ANALOGWRITE) - .appendField(new Blockly.FieldDropdown( - selectedBoard().pwmPins), 'PIN') - .appendField(Blockly.Msg.ARD_WRITE_TO) - .setCheck(Types.NUMBER.compatibleTypes); - this.setInputsInline(false); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(Blockly.Msg.ARD_ANALOGWRITE_TIP); - }, - /** - * Updates the content of the the pin related fields. - * @this Blockly.Block - */ - updateFields: function () { - Blockly.Arduino.Boards.refreshBlockFieldDropdown(this, 'PIN', 'pwmPins'); - }, - /** @return {!string} The type of input value for the block, an integer. */ - getBlockType: function () { - return Types.NUMBER; - }, +Blockly.Blocks["io_analogwrite"] = { + /** + * Block for creating a 'set pin' to an analogue value. + * @this Blockly.Block + */ + init: function () { + this.setHelpUrl("http://arduino.cc/en/Reference/AnalogWrite"); + this.setColour(250); + this.appendValueInput("NUM") + .appendField(Blockly.Msg.ARD_ANALOGWRITE) + .appendField(new Blockly.FieldDropdown(selectedBoard().pwmPins), "PIN") + .appendField(Blockly.Msg.ARD_WRITE_TO) + .setCheck(Types.NUMBER.compatibleTypes); + this.setInputsInline(false); + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + this.setTooltip(Blockly.Msg.ARD_ANALOGWRITE_TIP); + }, + /** + * Updates the content of the the pin related fields. + * @this Blockly.Block + */ + updateFields: function () { + Blockly.Arduino.Boards.refreshBlockFieldDropdown(this, "PIN", "pwmPins"); + }, + /** @return {!string} The type of input value for the block, an integer. */ + getBlockType: function () { + return Types.NUMBER; + }, }; -Blockly.Blocks['io_analogread'] = { - /** - * Block for reading an analogue input. - * @this Blockly.Block - */ - init: function () { - this.setHelpUrl('http://arduino.cc/en/Reference/AnalogRead'); - this.setColour(250); - this.appendDummyInput() - .appendField(Blockly.Msg.ARD_ANALOGREAD) - .appendField(new Blockly.FieldDropdown( - selectedBoard().analogPins), 'PIN'); - this.setOutput(true, Types.NUMBER.typeId); - this.setTooltip(Blockly.Msg.ARD_ANALOGREAD_TIP); - }, - /** @return {!string} The type of return value for the block, an integer. */ - getBlockType: function () { - return Types.NUMBER.typeId; - }, - /** - * Updates the content of the the pin related fields. - * @this Blockly.Block - */ - updateFields: function () { - Blockly.Arduino.Boards.refreshBlockFieldDropdown(this, 'PIN', 'analogPins'); - } +Blockly.Blocks["io_analogread"] = { + /** + * Block for reading an analogue input. + * @this Blockly.Block + */ + init: function () { + this.setHelpUrl("http://arduino.cc/en/Reference/AnalogRead"); + this.setColour(250); + this.appendDummyInput() + .appendField(Blockly.Msg.ARD_ANALOGREAD) + .appendField( + new Blockly.FieldDropdown(selectedBoard().analogPins), + "PIN" + ); + this.setOutput(true, Types.NUMBER.typeName); + this.setTooltip(Blockly.Msg.ARD_ANALOGREAD_TIP); + }, + /** @return {!string} The type of return value for the block, an integer. */ + getBlockType: function () { + return Types.NUMBER.typeName; + }, + /** + * Updates the content of the the pin related fields. + * @this Blockly.Block + */ + updateFields: function () { + Blockly.Arduino.Boards.refreshBlockFieldDropdown(this, "PIN", "analogPins"); + }, }; -Blockly.Blocks['io_highlow'] = { - /** - * Block for creating a pin state. - * @this Blockly.Block - */ - init: function () { - this.setHelpUrl('http://arduino.cc/en/Reference/Constants'); - this.setColour(250); - this.appendDummyInput() - .appendField( - new Blockly.FieldDropdown([[Blockly.Msg.ARD_HIGH, 'HIGH'], [Blockly.Msg.ARD_LOW, 'LOW']]), - 'STATE'); - this.setOutput(true, Types.BOOLEAN.typeId); - this.setTooltip(Blockly.Msg.ARD_HIGHLOW_TIP); - }, - /** @return {!string} The type of return value for the block, an integer. */ - getBlockType: function () { - return Types.BOOLEAN; - } +Blockly.Blocks["io_highlow"] = { + /** + * Block for creating a pin state. + * @this Blockly.Block + */ + init: function () { + this.setHelpUrl("http://arduino.cc/en/Reference/Constants"); + this.setColour(250); + this.appendDummyInput().appendField( + new Blockly.FieldDropdown([ + [Blockly.Msg.ARD_HIGH, "HIGH"], + [Blockly.Msg.ARD_LOW, "LOW"], + ]), + "STATE" + ); + this.setOutput(true, Types.BOOLEAN.typeName); + this.setTooltip(Blockly.Msg.ARD_HIGHLOW_TIP); + }, + /** @return {!string} The type of return value for the block, an integer. */ + getBlockType: function () { + return Types.BOOLEAN; + }, }; -Blockly.Blocks['io_pulsein'] = { - /** - * Block for measuring the duration of a pulse in an input pin. - * @this Blockly.Block - */ - init: function () { - this.jsonInit({ - "type": "math_foo", - "message0": Blockly.Msg.ARD_PULSE_READ, - "args0": [{ - "type": "input_value", - "name": "PULSETYPE", - "check": Types.BOOLEAN.compatibleTypes - }, { - "type": "field_dropdown", - "name": "PULSEPIN", - "options": selectedBoard().digitalPins, - } - ], - "output": Types.NUMBER.typeId, - "inputsInline": true, - "colour": 250, - "tooltip": Blockly.Msg.ARD_PULSE_TIP, - "helpUrl": 'https://www.arduino.cc/en/Reference/PulseIn' - }); - }, - /** @return {!string} The type of input value for the block, an integer. */ - getBlockType: function () { - return Types.NUMBER.typeId; - } +Blockly.Blocks["io_pulsein"] = { + /** + * Block for measuring the duration of a pulse in an input pin. + * @this Blockly.Block + */ + init: function () { + this.jsonInit({ + type: "math_foo", + message0: Blockly.Msg.ARD_PULSE_READ, + args0: [ + { + type: "input_value", + name: "PULSETYPE", + check: Types.BOOLEAN.compatibleTypes, + }, + { + type: "field_dropdown", + name: "PULSEPIN", + options: selectedBoard().digitalPins, + }, + ], + output: Types.NUMBER.typeName, + inputsInline: true, + colour: 250, + tooltip: Blockly.Msg.ARD_PULSE_TIP, + helpUrl: "https://www.arduino.cc/en/Reference/PulseIn", + }); + }, + /** @return {!string} The type of input value for the block, an integer. */ + getBlockType: function () { + return Types.NUMBER.typeName; + }, }; -Blockly.Blocks['io_pulsetimeout'] = { - /** - * Block for measuring (with a time-out) the duration of a pulse in an input - * pin. - * @this Blockly.Block - */ - init: function () { - this.jsonInit({ - "type": "math_foo", - "message0": Blockly.Msg.ARD_PULSE_READ_TIMEOUT, - "args0": [{ - "type": "input_value", - "name": "PULSETYPE", - "check": Types.BOOLEAN.compatibleTypes - }, { - "type": "field_dropdown", - "name": "PULSEPIN", - "options": selectedBoard().digitalPins, - }, { - "type": "input_value", - "name": "TIMEOUT", - "check": Types.NUMBER.compatibleTypes - } - ], - "output": Types.NUMBER.typeId, - "inputsInline": true, - "colour": 250, - "tooltip": Blockly.Msg.ARD_PULSETIMEOUT_TIP, - "helpUrl": 'https://www.arduino.cc/en/Reference/PulseIn' - }); - }, - /** @return {!string} The type of input value for the block, an integer. */ - getBlockType: function () { - return Types.NUMBER.typeId; - } +Blockly.Blocks["io_pulsetimeout"] = { + /** + * Block for measuring (with a time-out) the duration of a pulse in an input + * pin. + * @this Blockly.Block + */ + init: function () { + this.jsonInit({ + type: "math_foo", + message0: Blockly.Msg.ARD_PULSE_READ_TIMEOUT, + args0: [ + { + type: "input_value", + name: "PULSETYPE", + check: Types.BOOLEAN.compatibleTypes, + }, + { + type: "field_dropdown", + name: "PULSEPIN", + options: selectedBoard().digitalPins, + }, + { + type: "input_value", + name: "TIMEOUT", + check: Types.NUMBER.compatibleTypes, + }, + ], + output: Types.NUMBER.typeName, + inputsInline: true, + colour: 250, + tooltip: Blockly.Msg.ARD_PULSETIMEOUT_TIP, + helpUrl: "https://www.arduino.cc/en/Reference/PulseIn", + }); + }, + /** @return {!string} The type of input value for the block, an integer. */ + getBlockType: function () { + return Types.NUMBER.typeName; + }, }; diff --git a/src/components/Blockly/blocks/lists.js b/src/components/Blockly/blocks/lists.js index 12948ae..a039754 100644 --- a/src/components/Blockly/blocks/lists.js +++ b/src/components/Blockly/blocks/lists.js @@ -1,59 +1,54 @@ -import Blockly, { FieldDropdown } from 'blockly/core' -import * as Types from '../helpers/types' -import { getColour } from '../helpers/colour'; +import Blockly, { FieldDropdown } from "blockly/core"; +import * as Types from "../helpers/types"; +import { getColour } from "../helpers/colour"; -Blockly.Blocks['lists_create_empty'] = { - /** - * Elapsed time in milliseconds block definition - * @this Blockly.Block - */ - init: function () { - this.setHelpUrl('http://arduino.cc/en/Reference/Millis'); - this.setColour(getColour().arrays); - this.appendDummyInput() - .appendField("create List with") - this.appendValueInput('NUMBER'); - this.appendDummyInput() - .appendField("Items of Type") - .appendField(new FieldDropdown(Types.VARIABLE_TYPES), 'type'); - this.setOutput(true, Types.ARRAY.typeId); - this.setTooltip(Blockly.Msg.ARD_TIME_MILLIS_TIP); - }, +Blockly.Blocks["lists_create_empty"] = { + /** + * Elapsed time in milliseconds block definition + * @this Blockly.Block + */ + init: function () { + this.setHelpUrl("http://arduino.cc/en/Reference/Millis"); + this.setColour(getColour().arrays); + this.appendDummyInput().appendField("create List with"); + this.appendValueInput("NUMBER"); + this.appendDummyInput() + .appendField("Items of Type") + .appendField(new FieldDropdown(Types.VARIABLE_TYPES), "type"); + this.setOutput(true, Types.ARRAY.typeName); + this.setTooltip(Blockly.Msg.ARD_TIME_MILLIS_TIP); + }, }; - -Blockly.Blocks['array_getIndex'] = { - /** - * Elapsed time in milliseconds block definition - * @this Blockly.Block - */ - init: function () { - this.setHelpUrl('http://arduino.cc/en/Reference/Millis'); - this.setColour(getColour().arrays); - this.appendDummyInput() - .appendField(new Blockly.FieldVariable( - 'X', - null, - ['Array'], - 'Array' - ), 'FIELDNAME'); - this.setOutput(true, Types.ARRAY.typeId); - this.setTooltip(Blockly.Msg.ARD_TIME_MILLIS_TIP); - }, +Blockly.Blocks["array_getIndex"] = { + /** + * Elapsed time in milliseconds block definition + * @this Blockly.Block + */ + init: function () { + this.setHelpUrl("http://arduino.cc/en/Reference/Millis"); + this.setColour(getColour().arrays); + this.appendDummyInput().appendField( + new Blockly.FieldVariable("X", null, ["Array"], "Array"), + "FIELDNAME" + ); + this.setOutput(true, Types.ARRAY.typeName); + this.setTooltip(Blockly.Msg.ARD_TIME_MILLIS_TIP); + }, }; -Blockly.Blocks['lists_length'] = { - /** - * Elapsed time in milliseconds block definition - * @this Blockly.Block - */ - init: function () { - this.setHelpUrl('http://arduino.cc/en/Reference/Millis'); - this.setColour(getColour().arrays); - this.appendValueInput('ARRAY') - .appendField('length of') - .setCheck(Types.ARRAY.compatibleTypes); - this.setOutput(true, Types.NUMBER.typeName); - this.setTooltip(Blockly.Msg.ARD_TIME_MILLIS_TIP); - }, -}; \ No newline at end of file +Blockly.Blocks["lists_length"] = { + /** + * Elapsed time in milliseconds block definition + * @this Blockly.Block + */ + init: function () { + this.setHelpUrl("http://arduino.cc/en/Reference/Millis"); + this.setColour(getColour().arrays); + this.appendValueInput("ARRAY") + .appendField("length of") + .setCheck(Types.ARRAY.compatibleTypes); + this.setOutput(true, Types.NUMBER.typeName); + this.setTooltip(Blockly.Msg.ARD_TIME_MILLIS_TIP); + }, +}; diff --git a/src/components/Blockly/blocks/map.js b/src/components/Blockly/blocks/map.js index 38b16df..157577f 100644 --- a/src/components/Blockly/blocks/map.js +++ b/src/components/Blockly/blocks/map.js @@ -11,40 +11,39 @@ * TODO: This block can be improved to set the new range properly. */ +import * as Blockly from "blockly/core"; +import { getColour } from "../helpers/colour"; +import * as Types from "../helpers/types"; -import * as Blockly from 'blockly/core'; -import { getColour } from '../helpers/colour'; -import * as Types from '../helpers/types' - -Blockly.Blocks['base_map'] = { - /** - * Block for creating a the map function. - * @this Blockly.Block - */ - init: function () { - this.setHelpUrl('http://arduino.cc/en/Reference/map'); - this.setColour(getColour().math); - this.appendValueInput('NUM') - .appendField(Blockly.Msg.ARD_MAP) - .setCheck(Types.NUMBER.compatibleTypes); - this.appendValueInput('FMIN') - .appendField(Blockly.Msg.ARD_MAP_FROMMIN) - .setCheck(Types.NUMBER.compatibleTypes); - this.appendValueInput('FMAX') - .appendField(Blockly.Msg.ARD_MAP_FROMMAX) - .setCheck(Types.NUMBER.compatibleTypes); - this.appendValueInput('DMIN') - .appendField(Blockly.Msg.ARD_MAP_TOMIN) - .setCheck(Types.NUMBER.compatibleTypes); - this.appendValueInput('DMAX') - .appendField(Blockly.Msg.ARD_MAP_TOMAX) - .setCheck(Types.NUMBER.compatibleTypes); - this.setOutput(true); - this.setInputsInline(false); - this.setTooltip(Blockly.Msg.ARD_MAP_TIP); - }, - /** @return {string} The type of return value for the block, an integer. */ - getBlockType: function () { - return Types.NUMBER.typeId; - } +Blockly.Blocks["base_map"] = { + /** + * Block for creating a the map function. + * @this Blockly.Block + */ + init: function () { + this.setHelpUrl("http://arduino.cc/en/Reference/map"); + this.setColour(getColour().math); + this.appendValueInput("NUM") + .appendField(Blockly.Msg.ARD_MAP) + .setCheck(Types.NUMBER.compatibleTypes); + this.appendValueInput("FMIN") + .appendField(Blockly.Msg.ARD_MAP_FROMMIN) + .setCheck(Types.NUMBER.compatibleTypes); + this.appendValueInput("FMAX") + .appendField(Blockly.Msg.ARD_MAP_FROMMAX) + .setCheck(Types.NUMBER.compatibleTypes); + this.appendValueInput("DMIN") + .appendField(Blockly.Msg.ARD_MAP_TOMIN) + .setCheck(Types.NUMBER.compatibleTypes); + this.appendValueInput("DMAX") + .appendField(Blockly.Msg.ARD_MAP_TOMAX) + .setCheck(Types.NUMBER.compatibleTypes); + this.setOutput(true); + this.setInputsInline(false); + this.setTooltip(Blockly.Msg.ARD_MAP_TIP); + }, + /** @return {string} The type of return value for the block, an integer. */ + getBlockType: function () { + return Types.NUMBER.typeName; + }, }; diff --git a/src/components/Blockly/blocks/sensebox-ble.js b/src/components/Blockly/blocks/sensebox-ble.js index 67d4bf3..e04d0c3 100644 --- a/src/components/Blockly/blocks/sensebox-ble.js +++ b/src/components/Blockly/blocks/sensebox-ble.js @@ -65,8 +65,8 @@ Blockly.Blocks["sensebox_phyphox_graph"] = { .appendField(Blockly.Msg.sensebox_phyphox_graphStyle) .appendField( new Blockly.FieldDropdown([ - [Blockly.Msg.sensebox_phyphox_style_dots, "dots"], [Blockly.Msg.sensebox_phyphox_style_line, "line"], + [Blockly.Msg.sensebox_phyphox_style_dots, "dots"], ]), "style" ); diff --git a/src/components/Blockly/blocks/sensebox-rtc.js b/src/components/Blockly/blocks/sensebox-rtc.js index 96ea2c6..0c19872 100644 --- a/src/components/Blockly/blocks/sensebox-rtc.js +++ b/src/components/Blockly/blocks/sensebox-rtc.js @@ -62,7 +62,7 @@ Blockly.Blocks["sensebox_rtc_get"] = { ]), "dropdown" ); - this.setOutput(true, Types.LARGE_NUMBER.typeId); + this.setOutput(true, Types.LARGE_NUMBER.typeName); this.setTooltip(Blockly.Msg.sensebox_rtc_get_tooltip); }, }; diff --git a/src/components/Blockly/blocks/sensebox-sensors.js b/src/components/Blockly/blocks/sensebox-sensors.js index c5bd756..145a5e1 100644 --- a/src/components/Blockly/blocks/sensebox-sensors.js +++ b/src/components/Blockly/blocks/sensebox-sensors.js @@ -330,7 +330,6 @@ Blockly.Blocks["sensebox_button"] = { new Blockly.FieldDropdown([ [Blockly.Msg.senseBox_button_isPressed, "isPressed"], [Blockly.Msg.senseBox_button_wasPressed, "wasPressed"], - [Blockly.Msg.senseBox_button_switch, "Switch"], [Blockly.Msg.senseBox_button_longPress, "longPress"], ]), "FUNCTION" diff --git a/src/components/Blockly/blocks/time.js b/src/components/Blockly/blocks/time.js index df43ea5..497c353 100644 --- a/src/components/Blockly/blocks/time.js +++ b/src/components/Blockly/blocks/time.js @@ -59,7 +59,7 @@ Blockly.Blocks["time_millis"] = { this.setHelpUrl("http://arduino.cc/en/Reference/Millis"); this.setColour(getColour().time); this.appendDummyInput().appendField(Blockly.Msg.ARD_TIME_MILLIS); - this.setOutput(true, Types.LARGE_NUMBER.typeId); + this.setOutput(true, Types.LARGE_NUMBER.typeName); this.setTooltip(Blockly.Msg.ARD_TIME_MILLIS_TIP); }, /** @return {string} The type of return value for the block, an integer. */ @@ -77,7 +77,7 @@ Blockly.Blocks["time_micros"] = { this.setHelpUrl("http://arduino.cc/en/Reference/Micros"); this.setColour(getColour().time); this.appendDummyInput().appendField(Blockly.Msg.ARD_TIME_MICROS); - this.setOutput(true, Types.LARGE_NUMBER.typeId); + this.setOutput(true, Types.LARGE_NUMBER.typeName); this.setTooltip(Blockly.Msg.ARD_TIME_MICROS_TIP); }, /** diff --git a/src/components/Blockly/generator/mqtt.js b/src/components/Blockly/generator/mqtt.js index a83531d..c095681 100644 --- a/src/components/Blockly/generator/mqtt.js +++ b/src/components/Blockly/generator/mqtt.js @@ -13,9 +13,9 @@ Blockly.Arduino.sensebox_mqtt_setup = function () { service = this.getFieldValue("service"); Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include "; Blockly.Arduino.libraries_["library_adafruitmqtt"] = - '#include "Adafruit_MQTT.h //http://librarymanager/All#Adafruit_MQTT_Library"'; + '#include //http://librarymanager/All#Adafruit_MQTT_Library"'; Blockly.Arduino.libraries_["library_adafruitmqttclient"] = - '#include "Adafruit_MQTT_Client.h"'; + '#include '; Blockly.Arduino.definitions_["mqtt_server"] = '#define SERVER "' + server + '"'; Blockly.Arduino.definitions_["mqtt_port"] = diff --git a/src/components/Blockly/generator/sensebox-ble.js b/src/components/Blockly/generator/sensebox-ble.js index 9f74697..bd6ddd7 100644 --- a/src/components/Blockly/generator/sensebox-ble.js +++ b/src/components/Blockly/generator/sensebox-ble.js @@ -90,7 +90,9 @@ Blockly.Arduino.sensebox_phyphox_graph = function () { code += `${label}.setUnitY("${unity}");\n`; code += `${label}.setLabelX("${labelx}");\n`; code += `${label}.setLabelY("${labely}");\n`; - code += `${label}.setStyle("${style}");\n`; + if (style === "dots"){ + code += `${label}.setStyle("${style}");\n`; + } code += `${label}.setChannel(${channelX}, ${channelY});\n`; code += `firstView.addElement(${label});\n`; return code; diff --git a/src/components/Blockly/generator/sensebox-display.js b/src/components/Blockly/generator/sensebox-display.js index 6b29c0e..d624af0 100644 --- a/src/components/Blockly/generator/sensebox-display.js +++ b/src/components/Blockly/generator/sensebox-display.js @@ -13,7 +13,7 @@ Blockly.Arduino.sensebox_display_beginDisplay = function () { "define_display_size" ] = `#define SCREEN_WIDTH 128\n#define SCREEN_HEIGHT 64`; Blockly.Arduino.definitions_["define_display"] = - "#define OLED_RESET 4\nAdafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);"; + "#define OLED_RESET -1\nAdafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);"; Blockly.Arduino.setupCode_["sensebox_display_begin"] = "senseBoxIO.powerI2C(true);\ndelay(2000);\ndisplay.begin(SSD1306_SWITCHCAPVCC, 0x3D);\ndisplay.display();\ndelay(100);\ndisplay.clearDisplay();"; diff --git a/src/components/Blockly/generator/sensebox-led.js b/src/components/Blockly/generator/sensebox-led.js index e5ee99c..d4cdfde 100644 --- a/src/components/Blockly/generator/sensebox-led.js +++ b/src/components/Blockly/generator/sensebox-led.js @@ -3,6 +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.libraries_["library_senseBoxIO"] = "#include "; Blockly.Arduino.setupCode_['setup_led_' + dropdown_pin] = 'pinMode(' + dropdown_pin + ', OUTPUT);'; var code = 'digitalWrite(' + dropdown_pin + ',' + dropdown_stat + ');\n' return code; @@ -11,6 +12,7 @@ Blockly.Arduino.sensebox_led = function () { Blockly.Arduino.sensebox_rgb_led = function () { var dropdown_pin = this.getFieldValue('PIN'); var color = Blockly.Arduino.valueToCode(this, 'COLOR', Blockly.Arduino.ORDER_ATOMIC) || '0' + Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include "; Blockly.Arduino.libraries_['define_rgb_led' + dropdown_pin] = '#include \n Adafruit_NeoPixel rgb_led_' + dropdown_pin + ' = Adafruit_NeoPixel(1,' + dropdown_pin + ',NEO_RGB + NEO_KHZ800);\n'; Blockly.Arduino.setupCode_['setup_rgb_led' + dropdown_pin] = 'rgb_led_' + dropdown_pin + '.begin();'; var code = 'rgb_led_' + dropdown_pin + '.setPixelColor(0,rgb_led_' + dropdown_pin + '.Color(' + color + '));\n'; @@ -23,6 +25,7 @@ Blockly.Arduino.sensebox_ws2818_led_init = function () { var dropdown_pin = this.getFieldValue('Port'); var numPixel = Blockly.Arduino.valueToCode(this, 'NUMBER', Blockly.Arduino.ORDER_ATOMIC) || '1'; var brightness = Blockly.Arduino.valueToCode(this, 'BRIGHTNESS', Blockly.Arduino.ORDER_ATOMIC) || '50' + Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include "; Blockly.Arduino.definitions_['define_rgb_led' + dropdown_pin] = `#include \n Adafruit_NeoPixel rgb_led_${dropdown_pin}= Adafruit_NeoPixel(${numPixel}, ${dropdown_pin},NEO_GRB + NEO_KHZ800);\n`; Blockly.Arduino.setupCode_['setup_rgb_led' + dropdown_pin] = 'rgb_led_' + dropdown_pin + '.begin();\n'; Blockly.Arduino.setupCode_['setup_rgb_led_brightness' + dropdown_pin] = `rgb_led_${dropdown_pin}.setBrightness(${brightness});\n`; @@ -30,6 +33,7 @@ Blockly.Arduino.sensebox_ws2818_led_init = function () { }; Blockly.Arduino.sensebox_ws2818_led = function () { + Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include "; var dropdown_pin = this.getFieldValue('Port'); var position = Blockly.Arduino.valueToCode(this, 'POSITION', Blockly.Arduino.ORDER_ATOMIC) || '0'; var color = Blockly.Arduino.valueToCode(this, 'COLOR', Blockly.Arduino.ORDER_ATOMIC) || '0' @@ -48,6 +52,7 @@ function hexToRgb(hex) { } Blockly.Arduino['colour_picker'] = function (block) { + Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include "; const rgb = hexToRgb(block.getFieldValue('COLOUR')); return [rgb.r + ', ' + rgb.g + ', ' + rgb.b, Blockly.Arduino.ORDER_ATOMIC]; @@ -58,6 +63,7 @@ Blockly.Arduino['colour_random'] = function (block) { }; Blockly.Arduino['colour_rgb'] = function (block) { + Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include "; const red = Blockly.Arduino.valueToCode(block, 'RED', Blockly.Arduino.ORDER_ATOMIC); const green = Blockly.Arduino.valueToCode(block, 'GREEN', Blockly.Arduino.ORDER_ATOMIC); const blue = Blockly.Arduino.valueToCode(block, 'BLUE', Blockly.Arduino.ORDER_ATOMIC); diff --git a/src/components/Blockly/generator/sensebox-sensors.js b/src/components/Blockly/generator/sensebox-sensors.js index 788376d..c20d55a 100644 --- a/src/components/Blockly/generator/sensebox-sensors.js +++ b/src/components/Blockly/generator/sensebox-sensors.js @@ -160,11 +160,11 @@ Blockly.Arduino.sensebox_sensor_sds011 = function () { Blockly.Arduino.definitions_["define_sds011"] = "SdsDustSensor sds(" + serial_name + ");"; Blockly.Arduino.setupCode_["sds011_begin"] = "sds.begin();"; - Blockly.Arduino.setupCode_["sds011_setActiveReporting"] = - "sds.setActiveReportingMode();"; + Blockly.Arduino.setupCode_["sds011_setQueryReportingMode"] = + "sds.setQueryReportingMode();"; Blockly.Arduino.loopCodeOnce_[ "sds011_getData" - ] = `PmResult pm = sds.readPm();`; + ] = `PmResult pm = sds.queryPm();`; var code = `pm.${dropdown_name}`; return [code, Blockly.Arduino.ORDER_ATOMIC]; }; @@ -183,7 +183,7 @@ Blockly.Arduino.sensebox_sensor_pressure = function () { "adafruit_bmp280" ] = `#include // http://librarymanager/All#Adafruit_BMP280_Library`; Blockly.Arduino.definitions_["define_pressure"] = "Adafruit_BMP280 bmp;"; - Blockly.Arduino.setupCode_["sensebox_bmp_sensor"] = "bmp.begin();"; + Blockly.Arduino.setupCode_["sensebox_bmp_sensor"] = "bmp.begin(0x76);"; Blockly.Arduino.setupCode_["bmp_setSampling"] = ` bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, Adafruit_BMP280::SAMPLING_X2, @@ -408,8 +408,6 @@ Blockly.Arduino.sensebox_button = function () { var code = ""; if (dropown_function === "isPressed") { code = "button_" + dropdown_pin + ".isPressed()"; - } else if (dropown_function === "Switch") { - code = "button_" + dropdown_pin + ".getSwitch()"; } else if (dropown_function === "wasPressed") { code = "button_" + dropdown_pin + ".wasPressed()"; } else if (dropown_function === "longPress") { diff --git a/src/components/Blockly/generator/sensebox-web.js b/src/components/Blockly/generator/sensebox-web.js index 209f284..a2cae3b 100644 --- a/src/components/Blockly/generator/sensebox-web.js +++ b/src/components/Blockly/generator/sensebox-web.js @@ -46,7 +46,7 @@ Blockly.Arduino.sensebox_wifi_rssi = function () { Blockly.Arduino.sensebox_get_ip = function () { Blockly.Arduino.definitions_["define_ipadress"] = "IPAddress ip;"; Blockly.Arduino.setupCode_["sensebox_get_ip"] = " ip = WiFi.localIP();"; - var code = ""; + var code = "ip"; return [code, Blockly.Arduino.ORDER_ATOMIC]; }; diff --git a/src/components/Blockly/msg/de/io.js b/src/components/Blockly/msg/de/io.js index 342a039..e64ad5a 100644 --- a/src/components/Blockly/msg/de/io.js +++ b/src/components/Blockly/msg/de/io.js @@ -1,108 +1,118 @@ - export const IO = { - - ARD_ANALOGREAD: "lese analogen Pin#", - ARD_ANALOGREAD_TIP: "Gibt einen Wert zwischen 0 und 1024 zurüch", - ARD_ANALOGWRITE: "setzte analogen Pin#", - ARD_ANALOGWRITE_TIP: "Schreibe analogen Wert zwischen 0 und 255 an einen spezifischen PWM Port", - ARD_BUILTIN_LED: "eingebaute LED", - ARD_BUILTIN_LED_TIP: "Schaltet die interne LED An oder Aus", - ARD_COMPONENT_WARN1: "A %1 configuration block with the same %2 name must be added to use this block!", - ARD_DEFINE: "Definiere", - ARD_DIGITALREAD: "lesen digitalen Pin#", - ARD_DIGITALREAD_TIP: "Lese Wert an digitalen Pin: HIGH(1) oder LOW(0)", - ARD_DIGITALWRITE: "setzte digitalen Pin#", - ARD_DIGITALWRITE_TIP: "Schreibe digitalen Wert HIGH (1) oder LOW(0) an spezifischen Port", - ARD_FUN_RUN_LOOP: "Endlosschleife()", - ARD_FUN_RUN_SETUP: "Setup()", - ARD_FUN_RUN_TIP: "Definiert die setup() und loop() Funktionen. Die setup()-Funktion wird beim starten **einmal** ausgeführt. Anschließend wir die loop()-Funktion in einer **Endlosschleife** ausgeführt. Füge in die Setup()-Funktion Blöcke ein, um z.B. das Display zu initalisieren, eine Verbindung zum WiFi-Netzwerk herzustellen oder um die LoRa Verbindung zu initialsieren.", - ARD_HIGH: "HIGH", - ARD_HIGHLOW_TIP: "Setzt einen Status auf HIGH oder LOWSet a pin state logic High or Low.", - ARD_LOW: "LOW", - ARD_MAP: "Verteile Wert", - ARD_MAP_FROMMIN: "von Minimum", - ARD_MAP_FROMMAX: "bis maximum", - ARD_MAP_TOMIN: "auf Minimum", - ARD_MAP_TOMAX: "bis Maximum", - ARD_MAP_TIP: "Verteilt Werte zwischen [0-1024] zu andere.", - ARD_MAP_VAL: "Wert zu [0-", - ARD_NOTONE: "Schalte Ton aus an Pin", - ARD_NOTONE_PIN: "keinen Ton an Pin", - ARD_NOTONE_PIN_TIP: "Stoppe die Tonerzeugung an Pin", - ARD_NOTONE_TIP: "Schaltet den Ton am ausgewählten Pin aus", - ARD_PIN_WARN1: "Pin %1 wird benötigt für %2 als Pin %3. Bereitsgenutzt als %4.", - ARD_PULSETIMEOUT_TIP: "Misst die Laufzeit eines Impulses am ausgewählten Pin, wenn die Zeit ist in Microsekunden.", - ARD_PULSE_READ: "Misst %1 Impuls an Pin #%2", - ARD_PULSE_READ_TIMEOUT: "Misst %1 Impuls an Pin #%2 (Unterbrechung nach %3 μs)", - ARD_PULSE_TIP: "Misst die Zeit eines Impulses an dem ausgewählten Pin.", - ARD_SERIAL_BPS: "bps", - ARD_SERIAL_PRINT: "schreibe", - ARD_SERIAL_PRINT_NEWLINE: "neue Zeile hinzufügen", - ARD_SERIAL_PRINT_TIP: "Prints data to the console/serial port as human-readable ASCII text.", // untranslated - ARD_SERIAL_PRINT_WARN: "A setup block for %1 must be added to the workspace to use this block!", // untranslated - ARD_SERIAL_SETUP: "Setup", - ARD_SERIAL_SETUP_TIP: "Selects the speed for a specific Serial peripheral", // untranslated - ARD_SERIAL_SPEED: ": Übertragungsgeschwindigkeit zu", - ARD_SERVO_READ: "liest SERVO an PIN#", - ARD_SERVO_READ_TIP: "Liest den Winkel des Servomotors aus", - ARD_SERVO_WRITE: "setzt SERVO an Pin", - ARD_SERVO_WRITE_DEG_180: "Winkel (0~180)", - ARD_SERVO_WRITE_TIP: "Set a Servo to an specified angle", // untranslated - ARD_SERVO_WRITE_TO: "", // untranslated - ARD_SETTONE: "Spiele Ton an Pin", // untranslated - ARD_SPI_SETUP: "Setup", - ARD_SPI_SETUP_CONF: "Konfiguration:", - ARD_SPI_SETUP_DIVIDE: "clock divide", // untranslated - ARD_SPI_SETUP_LSBFIRST: "LSBFIRST", // untranslated - ARD_SPI_SETUP_MODE: "SPI mode (idle - edge)", // untranslated - ARD_SPI_SETUP_MODE0: "0 (LOW - Fallend)", - ARD_SPI_SETUP_MODE1: "1 (LOW - Steigend)", - ARD_SPI_SETUP_MODE2: "2 (HIGH - Fallend)", - ARD_SPI_SETUP_MODE3: "3 (HIGH - Steigend)", - ARD_SPI_SETUP_MSBFIRST: "MSBFIRST", // untranslated - ARD_SPI_SETUP_SHIFT: "data shift", // untranslated - ARD_SPI_SETUP_TIP: "Configures the SPI peripheral.", // untranslated - ARD_SPI_TRANSRETURN_TIP: "Send a SPI message to an specified slave device and get data back.", // untranslated - ARD_SPI_TRANS_NONE: "none", // untranslated - ARD_SPI_TRANS_SLAVE: "to slave pin", // untranslated - ARD_SPI_TRANS_TIP: "Send a SPI message to an specified slave device.", // untranslated - ARD_SPI_TRANS_VAL: "transfer", // untranslated - ARD_SPI_TRANS_WARN1: "A setup block for %1 must be added to the workspace to use this block!", // untranslated - ARD_SPI_TRANS_WARN2: "Old pin value %1 is no longer available.", // untranslated - ARD_STEPPER_COMPONENT: "stepper", // untranslated - ARD_STEPPER_DEFAULT_NAME: "MyStepper", // untranslated - ARD_STEPPER_FOUR_PINS: "4", // untranslated - ARD_STEPPER_MOTOR: "stepper motor:", // untranslated - ARD_STEPPER_NUMBER_OF_PINS: "Number of pins", // untranslated - ARD_STEPPER_PIN1: "pin1#", // untranslated - ARD_STEPPER_PIN2: "pin2#", // untranslated - ARD_STEPPER_PIN3: "pin3#", // untranslated - ARD_STEPPER_PIN4: "pin4#", // untranslated - ARD_STEPPER_REVOLVS: "how many steps per revolution", // untranslated - ARD_STEPPER_SETUP: "Setup stepper motor", // untranslated - ARD_STEPPER_SETUP_TIP: "Configures a stepper motor pinout and other settings.", // untranslated - ARD_STEPPER_SPEED: "set speed (rpm) to", // untranslated - ARD_STEPPER_STEP: "move stepper", // untranslated - ARD_STEPPER_STEPS: "steps", // untranslated - ARD_STEPPER_STEP_TIP: "Turns the stepper motor a specific number of steps.", // untranslated - ARD_STEPPER_TWO_PINS: "2", // untranslated - ARD_TYPE_ARRAY: "Array", - ARD_TYPE_BOOL: "Boolean", - ARD_TYPE_CHAR: "Zeichen", - ARD_TYPE_CHILDBLOCKMISSING: "ChildBlockMissing", // untranslated - ARD_TYPE_DECIMAL: "Dezimalzahl", - ARD_TYPE_LONG: "große Zahl", - ARD_TYPE_NULL: "Null", - ARD_TYPE_NUMBER: "Zahl", - ARD_TYPE_SHORT: "kurze Zahl", - ARD_TYPE_TEXT: "Text", - ARD_TYPE_UNDEF: "Undefiniert", - ARD_VAR_AS: "als", - ARD_VAR_AS_TIP: "Wert einem spezififischen Datentyp zuordnen", - ARD_WRITE_TO: "zu", - NEW_INSTANCE: "Neue Instanz...", - NEW_INSTANCE_TITLE: "Neue Instanz mit Name:", - RENAME_INSTANCE: "Instanz umbenennen...", - RENAME_INSTANCE_TITLE: "Benenne alle '%1' Instanzen zu:", - -} \ No newline at end of file + ARD_ANALOGREAD: "lese analogen Pin#", + ARD_ANALOGREAD_TIP: "Gibt einen Wert zwischen 0 und 1023 zurück", + ARD_ANALOGWRITE: "setzte analogen Pin#", + ARD_ANALOGWRITE_TIP: + "Schreibe analogen Wert zwischen 0 und 255 an einen spezifischen PWM Port", + ARD_BUILTIN_LED: "eingebaute LED", + ARD_BUILTIN_LED_TIP: "Schaltet die interne LED An oder Aus", + ARD_COMPONENT_WARN1: + "A %1 configuration block with the same %2 name must be added to use this block!", + ARD_DEFINE: "Definiere", + ARD_DIGITALREAD: "lesen digitalen Pin#", + ARD_DIGITALREAD_TIP: "Lese Wert an digitalen Pin: HIGH(1) oder LOW(0)", + ARD_DIGITALWRITE: "setzte digitalen Pin#", + ARD_DIGITALWRITE_TIP: + "Schreibe digitalen Wert HIGH (1) oder LOW(0) an spezifischen Port", + ARD_FUN_RUN_LOOP: "Endlosschleife()", + ARD_FUN_RUN_SETUP: "Setup()", + ARD_FUN_RUN_TIP: + "Definiert die setup() und loop() Funktionen. Die setup()-Funktion wird beim starten **einmal** ausgeführt. Anschließend wir die loop()-Funktion in einer **Endlosschleife** ausgeführt. Füge in die Setup()-Funktion Blöcke ein, um z.B. das Display zu initalisieren, eine Verbindung zum WiFi-Netzwerk herzustellen oder um die LoRa Verbindung zu initialsieren.", + ARD_HIGH: "HIGH", + ARD_HIGHLOW_TIP: + "Setzt einen Status auf HIGH oder LOWSet a pin state logic High or Low.", + ARD_LOW: "LOW", + ARD_MAP: "Verteile Wert", + ARD_MAP_FROMMIN: "von Minimum", + ARD_MAP_FROMMAX: "bis maximum", + ARD_MAP_TOMIN: "auf Minimum", + ARD_MAP_TOMAX: "bis Maximum", + ARD_MAP_TIP: "Verteilt Werte zwischen [0-1024] zu andere.", + ARD_MAP_VAL: "Wert zu [0-", + ARD_NOTONE: "Schalte Ton aus an Pin", + ARD_NOTONE_PIN: "keinen Ton an Pin", + ARD_NOTONE_PIN_TIP: "Stoppe die Tonerzeugung an Pin", + ARD_NOTONE_TIP: "Schaltet den Ton am ausgewählten Pin aus", + ARD_PIN_WARN1: + "Pin %1 wird benötigt für %2 als Pin %3. Bereitsgenutzt als %4.", + ARD_PULSETIMEOUT_TIP: + "Misst die Laufzeit eines Impulses am ausgewählten Pin, wenn die Zeit ist in Microsekunden.", + ARD_PULSE_READ: "Misst %1 Impuls an Pin #%2", + ARD_PULSE_READ_TIMEOUT: + "Misst %1 Impuls an Pin #%2 (Unterbrechung nach %3 μs)", + ARD_PULSE_TIP: "Misst die Zeit eines Impulses an dem ausgewählten Pin.", + ARD_SERIAL_BPS: "bps", + ARD_SERIAL_PRINT: "schreibe", + ARD_SERIAL_PRINT_NEWLINE: "neue Zeile hinzufügen", + ARD_SERIAL_PRINT_TIP: + "Prints data to the console/serial port as human-readable ASCII text.", // untranslated + ARD_SERIAL_PRINT_WARN: + "A setup block for %1 must be added to the workspace to use this block!", // untranslated + ARD_SERIAL_SETUP: "Setup", + ARD_SERIAL_SETUP_TIP: "Selects the speed for a specific Serial peripheral", // untranslated + ARD_SERIAL_SPEED: ": Übertragungsgeschwindigkeit zu", + ARD_SERVO_READ: "liest SERVO an PIN#", + ARD_SERVO_READ_TIP: "Liest den Winkel des Servomotors aus", + ARD_SERVO_WRITE: "setzt SERVO an Pin", + ARD_SERVO_WRITE_DEG_180: "Winkel (0~180)", + ARD_SERVO_WRITE_TIP: "Set a Servo to an specified angle", // untranslated + ARD_SERVO_WRITE_TO: "", // untranslated + ARD_SETTONE: "Spiele Ton an Pin", // untranslated + ARD_SPI_SETUP: "Setup", + ARD_SPI_SETUP_CONF: "Konfiguration:", + ARD_SPI_SETUP_DIVIDE: "clock divide", // untranslated + ARD_SPI_SETUP_LSBFIRST: "LSBFIRST", // untranslated + ARD_SPI_SETUP_MODE: "SPI mode (idle - edge)", // untranslated + ARD_SPI_SETUP_MODE0: "0 (LOW - Fallend)", + ARD_SPI_SETUP_MODE1: "1 (LOW - Steigend)", + ARD_SPI_SETUP_MODE2: "2 (HIGH - Fallend)", + ARD_SPI_SETUP_MODE3: "3 (HIGH - Steigend)", + ARD_SPI_SETUP_MSBFIRST: "MSBFIRST", // untranslated + ARD_SPI_SETUP_SHIFT: "data shift", // untranslated + ARD_SPI_SETUP_TIP: "Configures the SPI peripheral.", // untranslated + ARD_SPI_TRANSRETURN_TIP: + "Send a SPI message to an specified slave device and get data back.", // untranslated + ARD_SPI_TRANS_NONE: "none", // untranslated + ARD_SPI_TRANS_SLAVE: "to slave pin", // untranslated + ARD_SPI_TRANS_TIP: "Send a SPI message to an specified slave device.", // untranslated + ARD_SPI_TRANS_VAL: "transfer", // untranslated + ARD_SPI_TRANS_WARN1: + "A setup block for %1 must be added to the workspace to use this block!", // untranslated + ARD_SPI_TRANS_WARN2: "Old pin value %1 is no longer available.", // untranslated + ARD_STEPPER_COMPONENT: "stepper", // untranslated + ARD_STEPPER_DEFAULT_NAME: "MyStepper", // untranslated + ARD_STEPPER_FOUR_PINS: "4", // untranslated + ARD_STEPPER_MOTOR: "stepper motor:", // untranslated + ARD_STEPPER_NUMBER_OF_PINS: "Number of pins", // untranslated + ARD_STEPPER_PIN1: "pin1#", // untranslated + ARD_STEPPER_PIN2: "pin2#", // untranslated + ARD_STEPPER_PIN3: "pin3#", // untranslated + ARD_STEPPER_PIN4: "pin4#", // untranslated + ARD_STEPPER_REVOLVS: "how many steps per revolution", // untranslated + ARD_STEPPER_SETUP: "Setup stepper motor", // untranslated + ARD_STEPPER_SETUP_TIP: + "Configures a stepper motor pinout and other settings.", // untranslated + ARD_STEPPER_SPEED: "set speed (rpm) to", // untranslated + ARD_STEPPER_STEP: "move stepper", // untranslated + ARD_STEPPER_STEPS: "steps", // untranslated + ARD_STEPPER_STEP_TIP: "Turns the stepper motor a specific number of steps.", // untranslated + ARD_STEPPER_TWO_PINS: "2", // untranslated + ARD_TYPE_ARRAY: "Array", + ARD_TYPE_BOOL: "Boolean", + ARD_TYPE_CHAR: "Zeichen", + ARD_TYPE_CHILDBLOCKMISSING: "ChildBlockMissing", // untranslated + ARD_TYPE_DECIMAL: "Dezimalzahl", + ARD_TYPE_LONG: "große Zahl", + ARD_TYPE_NULL: "Null", + ARD_TYPE_NUMBER: "Zahl", + ARD_TYPE_SHORT: "kurze Zahl", + ARD_TYPE_TEXT: "Text", + ARD_TYPE_UNDEF: "Undefiniert", + ARD_VAR_AS: "als", + ARD_VAR_AS_TIP: "Wert einem spezififischen Datentyp zuordnen", + ARD_WRITE_TO: "zu", + NEW_INSTANCE: "Neue Instanz...", + NEW_INSTANCE_TITLE: "Neue Instanz mit Name:", + RENAME_INSTANCE: "Instanz umbenennen...", + RENAME_INSTANCE_TITLE: "Benenne alle '%1' Instanzen zu:", +}; diff --git a/src/components/Blockly/msg/de/ui.js b/src/components/Blockly/msg/de/ui.js index bd2e96b..904adad 100644 --- a/src/components/Blockly/msg/de/ui.js +++ b/src/components/Blockly/msg/de/ui.js @@ -85,9 +85,9 @@ export const UI = { messages_rename_success_01: "Das Projekt wurde erfolgreich in ", messages_rename_success_02: "umbenannt.", messages_newblockly_head: - "Willkommen zur neuen Version Blockly für die senseBox", + "Willkommen zur neuen senseBox Lern- und Programmierumgebung", messages_newblockly_text: - "Die neue Blockly-Version befindet sich derzeit in der Testphase. Wenn Sie einen Fehler finden, melden Sie diesen bitte in unserem [Forum](https://forum.sensebox.de/t/neue-blockly-version-beta-test-und-feedback/1176). Eine Übersicht über alle neuen Funktionen finden Sie [hier](/news)", + "Nach einer Testphase kann die neue senseBox Lern- und Programmierumgebung verwendet werden. Wenn Sie weiterhin Fehler finden, melden Sie diesen bitte in unserem [Forum](https://forum.sensebox.de/t/neue-blockly-version-beta-test-und-feedback/1176). Eine Übersicht über alle neuen Funktionen finden Sie [hier](/news)", messages_GET_TUTORIAL_FAIL: "Zurück zur Tutorials-Übersicht", messages_LOGIN_FAIL: "Der Benutzername oder das Passwort ist nicht korrekt.", messages_copy_code: "Code wurde in die Zwischenablage kopiert", diff --git a/src/components/Blockly/msg/en/io.js b/src/components/Blockly/msg/en/io.js index 842c554..b261d66 100644 --- a/src/components/Blockly/msg/en/io.js +++ b/src/components/Blockly/msg/en/io.js @@ -1,107 +1,113 @@ export const IO = { - - - ARD_ANALOGREAD: "read analog pin#", - ARD_ANALOGREAD_TIP: "Return value between 0 and 1024", - ARD_ANALOGWRITE: "set analog pin#", - ARD_ANALOGWRITE_TIP: "Write analog value between 0 and 255 to a specific PWM Port", - ARD_BUILTIN_LED: "set built-in LED", - ARD_BUILTIN_LED_TIP: "Light on or off for the built-in LED of the Arduino", - ARD_COMPONENT_WARN1: "A %1 configuration block with the same %2 name must be added to use this block!", - ARD_DEFINE: "Define", - ARD_DIGITALREAD: "read digital pin#", - ARD_DIGITALREAD_TIP: "Read digital value on a pin: HIGH or LOW", - ARD_DIGITALWRITE: "set digitial pin#", - ARD_DIGITALWRITE_TIP: "Write digital value HIGH or LOW to a specific Port", - ARD_FUN_RUN_LOOP: "Arduino loop forever:", - ARD_FUN_RUN_SETUP: "Arduino run first:", - ARD_FUN_RUN_TIP: "Defines the Arduino setup() and loop() functions.", - ARD_HIGH: "HIGH", - ARD_HIGHLOW_TIP: "Set a pin state logic High or Low.", - ARD_LOW: "LOW", - ARD_MAP: "Map Value", - ARD_MAP_FROMMAX: "from Max", - ARD_MAP_FROMMIN: "from Min", - ARD_MAP_TIP: "Re-maps a number from [0-1024] to another.", - ARD_MAP_TOMAX: "to Max", - ARD_MAP_TOMIN: "to Min", - ARD_MAP_VAL: "value to [0-", - ARD_NOTONE: "Turn off tone on pin #", - ARD_NOTONE_PIN: "No tone PIN#", - ARD_NOTONE_PIN_TIP: "Stop generating a tone on a pin", - ARD_NOTONE_TIP: "Turns the tone off on the selected pin", - ARD_PIN_WARN1: "Pin %1 is needed for %2 as pin %3. Already used as %4.", - ARD_PULSETIMEOUT_TIP: "Measures the duration of a pulse on the selected pin, if it is within the time-out in microseconds.", - ARD_PULSE_READ: "measure %1 pulse on pin #%2", - ARD_PULSE_READ_TIMEOUT: "measure %1 pulse on pin #%2 (timeout after %3 μs)", - ARD_PULSE_TIP: "Measures the duration of a pulse on the selected pin.", - ARD_SERIAL_BPS: "bps", - ARD_SERIAL_PRINT: "print", - ARD_SERIAL_PRINT_NEWLINE: "add new line", - ARD_SERIAL_PRINT_TIP: "Prints data to the console/serial port as human-readable ASCII text.", - ARD_SERIAL_PRINT_WARN: "A setup block for %1 must be added to the workspace to use this block!", - ARD_SERIAL_SETUP: "Setup", - ARD_SERIAL_SETUP_TIP: "Selects the speed for a specific Serial peripheral", - ARD_SERIAL_SPEED: ": speed to", - ARD_SERVO_READ: "read SERVO from PIN#", - ARD_SERVO_READ_TIP: "Read a Servo angle", - ARD_SERVO_WRITE: "set SERVO from Pin", - ARD_SERVO_WRITE_DEG_180: "Degrees (0~180)", - ARD_SERVO_WRITE_TIP: "Set a Servo to an specified angle", - ARD_SERVO_WRITE_TO: "to", - ARD_SETTONE: "Set tone on pin #", - ARD_SPI_SETUP: "Setup", - ARD_SPI_SETUP_CONF: "configuration:", - ARD_SPI_SETUP_DIVIDE: "clock divide", - ARD_SPI_SETUP_LSBFIRST: "LSBFIRST", - ARD_SPI_SETUP_MODE: "SPI mode (idle - edge)", - ARD_SPI_SETUP_MODE0: "0 (Low - Falling)", - ARD_SPI_SETUP_MODE1: "1 (Low - Rising)", - ARD_SPI_SETUP_MODE2: "2 (High - Falling)", - ARD_SPI_SETUP_MODE3: "3 (High - Rising)", - ARD_SPI_SETUP_MSBFIRST: "MSBFIRST", - ARD_SPI_SETUP_SHIFT: "data shift", - ARD_SPI_SETUP_TIP: "Configures the SPI peripheral.", - ARD_SPI_TRANSRETURN_TIP: "Send a SPI message to an specified slave device and get data back.", - ARD_SPI_TRANS_NONE: "none", - ARD_SPI_TRANS_SLAVE: "to slave pin", - ARD_SPI_TRANS_TIP: "Send a SPI message to an specified slave device.", - ARD_SPI_TRANS_VAL: "transfer", - ARD_SPI_TRANS_WARN1: "A setup block for %1 must be added to the workspace to use this block!", - ARD_SPI_TRANS_WARN2: "Old pin value %1 is no longer available.", - ARD_STEPPER_COMPONENT: "stepper", - ARD_STEPPER_DEFAULT_NAME: "MyStepper", - ARD_STEPPER_FOUR_PINS: "4", - ARD_STEPPER_MOTOR: "stepper motor:", - ARD_STEPPER_NUMBER_OF_PINS: "Number of pins", - ARD_STEPPER_PIN1: "pin1#", - ARD_STEPPER_PIN2: "pin2#", - ARD_STEPPER_PIN3: "pin3#", - ARD_STEPPER_PIN4: "pin4#", - ARD_STEPPER_REVOLVS: "how many steps per revolution", - ARD_STEPPER_SETUP: "Setup stepper motor", - ARD_STEPPER_SETUP_TIP: "Configures a stepper motor pinout and other settings.", - ARD_STEPPER_SPEED: "set speed (rpm) to", - ARD_STEPPER_STEP: "move stepper", - ARD_STEPPER_STEPS: "steps", - ARD_STEPPER_STEP_TIP: "Turns the stepper motor a specific number of steps.", - ARD_STEPPER_TWO_PINS: "2", - ARD_TYPE_ARRAY: "Array", - ARD_TYPE_BOOL: "Boolean", - ARD_TYPE_CHAR: "Character", - ARD_TYPE_CHILDBLOCKMISSING: "ChildBlockMissing", - ARD_TYPE_DECIMAL: "Decimal", - ARD_TYPE_LONG: "Large Number", - ARD_TYPE_NULL: "Null", - ARD_TYPE_NUMBER: "Number", - ARD_TYPE_SHORT: "Short Number", - ARD_TYPE_TEXT: "Text", - ARD_TYPE_UNDEF: "Undefined", - ARD_VAR_AS: "as", - ARD_VAR_AS_TIP: "Sets a value to a specific type", - ARD_WRITE_TO: "to", - NEW_INSTANCE: "New instance...", - NEW_INSTANCE_TITLE: "New instance name:", - RENAME_INSTANCE: "Rename instance...", - RENAME_INSTANCE_TITLE: "Rename all '%1' instances to:", -} + ARD_ANALOGREAD: "read analog pin#", + ARD_ANALOGREAD_TIP: "Return value between 0 and 1023", + ARD_ANALOGWRITE: "set analog pin#", + ARD_ANALOGWRITE_TIP: + "Write analog value between 0 and 255 to a specific PWM Port", + ARD_BUILTIN_LED: "set built-in LED", + ARD_BUILTIN_LED_TIP: "Light on or off for the built-in LED of the Arduino", + ARD_COMPONENT_WARN1: + "A %1 configuration block with the same %2 name must be added to use this block!", + ARD_DEFINE: "Define", + ARD_DIGITALREAD: "read digital pin#", + ARD_DIGITALREAD_TIP: "Read digital value on a pin: HIGH or LOW", + ARD_DIGITALWRITE: "set digitial pin#", + ARD_DIGITALWRITE_TIP: "Write digital value HIGH or LOW to a specific Port", + ARD_FUN_RUN_LOOP: "Arduino loop forever:", + ARD_FUN_RUN_SETUP: "Arduino run first:", + ARD_FUN_RUN_TIP: "Defines the Arduino setup() and loop() functions.", + ARD_HIGH: "HIGH", + ARD_HIGHLOW_TIP: "Set a pin state logic High or Low.", + ARD_LOW: "LOW", + ARD_MAP: "Map Value", + ARD_MAP_FROMMAX: "from Max", + ARD_MAP_FROMMIN: "from Min", + ARD_MAP_TIP: "Re-maps a number from [0-1024] to another.", + ARD_MAP_TOMAX: "to Max", + ARD_MAP_TOMIN: "to Min", + ARD_MAP_VAL: "value to [0-", + ARD_NOTONE: "Turn off tone on pin #", + ARD_NOTONE_PIN: "No tone PIN#", + ARD_NOTONE_PIN_TIP: "Stop generating a tone on a pin", + ARD_NOTONE_TIP: "Turns the tone off on the selected pin", + ARD_PIN_WARN1: "Pin %1 is needed for %2 as pin %3. Already used as %4.", + ARD_PULSETIMEOUT_TIP: + "Measures the duration of a pulse on the selected pin, if it is within the time-out in microseconds.", + ARD_PULSE_READ: "measure %1 pulse on pin #%2", + ARD_PULSE_READ_TIMEOUT: "measure %1 pulse on pin #%2 (timeout after %3 μs)", + ARD_PULSE_TIP: "Measures the duration of a pulse on the selected pin.", + ARD_SERIAL_BPS: "bps", + ARD_SERIAL_PRINT: "print", + ARD_SERIAL_PRINT_NEWLINE: "add new line", + ARD_SERIAL_PRINT_TIP: + "Prints data to the console/serial port as human-readable ASCII text.", + ARD_SERIAL_PRINT_WARN: + "A setup block for %1 must be added to the workspace to use this block!", + ARD_SERIAL_SETUP: "Setup", + ARD_SERIAL_SETUP_TIP: "Selects the speed for a specific Serial peripheral", + ARD_SERIAL_SPEED: ": speed to", + ARD_SERVO_READ: "read SERVO from PIN#", + ARD_SERVO_READ_TIP: "Read a Servo angle", + ARD_SERVO_WRITE: "set SERVO from Pin", + ARD_SERVO_WRITE_DEG_180: "Degrees (0~180)", + ARD_SERVO_WRITE_TIP: "Set a Servo to an specified angle", + ARD_SERVO_WRITE_TO: "to", + ARD_SETTONE: "Set tone on pin #", + ARD_SPI_SETUP: "Setup", + ARD_SPI_SETUP_CONF: "configuration:", + ARD_SPI_SETUP_DIVIDE: "clock divide", + ARD_SPI_SETUP_LSBFIRST: "LSBFIRST", + ARD_SPI_SETUP_MODE: "SPI mode (idle - edge)", + ARD_SPI_SETUP_MODE0: "0 (Low - Falling)", + ARD_SPI_SETUP_MODE1: "1 (Low - Rising)", + ARD_SPI_SETUP_MODE2: "2 (High - Falling)", + ARD_SPI_SETUP_MODE3: "3 (High - Rising)", + ARD_SPI_SETUP_MSBFIRST: "MSBFIRST", + ARD_SPI_SETUP_SHIFT: "data shift", + ARD_SPI_SETUP_TIP: "Configures the SPI peripheral.", + ARD_SPI_TRANSRETURN_TIP: + "Send a SPI message to an specified slave device and get data back.", + ARD_SPI_TRANS_NONE: "none", + ARD_SPI_TRANS_SLAVE: "to slave pin", + ARD_SPI_TRANS_TIP: "Send a SPI message to an specified slave device.", + ARD_SPI_TRANS_VAL: "transfer", + ARD_SPI_TRANS_WARN1: + "A setup block for %1 must be added to the workspace to use this block!", + ARD_SPI_TRANS_WARN2: "Old pin value %1 is no longer available.", + ARD_STEPPER_COMPONENT: "stepper", + ARD_STEPPER_DEFAULT_NAME: "MyStepper", + ARD_STEPPER_FOUR_PINS: "4", + ARD_STEPPER_MOTOR: "stepper motor:", + ARD_STEPPER_NUMBER_OF_PINS: "Number of pins", + ARD_STEPPER_PIN1: "pin1#", + ARD_STEPPER_PIN2: "pin2#", + ARD_STEPPER_PIN3: "pin3#", + ARD_STEPPER_PIN4: "pin4#", + ARD_STEPPER_REVOLVS: "how many steps per revolution", + ARD_STEPPER_SETUP: "Setup stepper motor", + ARD_STEPPER_SETUP_TIP: + "Configures a stepper motor pinout and other settings.", + ARD_STEPPER_SPEED: "set speed (rpm) to", + ARD_STEPPER_STEP: "move stepper", + ARD_STEPPER_STEPS: "steps", + ARD_STEPPER_STEP_TIP: "Turns the stepper motor a specific number of steps.", + ARD_STEPPER_TWO_PINS: "2", + ARD_TYPE_ARRAY: "Array", + ARD_TYPE_BOOL: "Boolean", + ARD_TYPE_CHAR: "Character", + ARD_TYPE_CHILDBLOCKMISSING: "ChildBlockMissing", + ARD_TYPE_DECIMAL: "Decimal", + ARD_TYPE_LONG: "Large Number", + ARD_TYPE_NULL: "Null", + ARD_TYPE_NUMBER: "Number", + ARD_TYPE_SHORT: "Short Number", + ARD_TYPE_TEXT: "Text", + ARD_TYPE_UNDEF: "Undefined", + ARD_VAR_AS: "as", + ARD_VAR_AS_TIP: "Sets a value to a specific type", + ARD_WRITE_TO: "to", + NEW_INSTANCE: "New instance...", + NEW_INSTANCE_TITLE: "New instance name:", + RENAME_INSTANCE: "Rename instance...", + RENAME_INSTANCE_TITLE: "Rename all '%1' instances to:", +}; diff --git a/src/components/Blockly/msg/en_old.js b/src/components/Blockly/msg/en_old.js index ebc8744..7d0fda7 100644 --- a/src/components/Blockly/msg/en_old.js +++ b/src/components/Blockly/msg/en_old.js @@ -544,7 +544,7 @@ Blockly.Msg.PROCEDURES_DEFRETURN_COMMENT = // Ardublockly strings Blockly.Msg.ARD_ANALOGREAD = "read analog pin#"; -Blockly.Msg.ARD_ANALOGREAD_TIP = "Return value between 0 and 1024"; +Blockly.Msg.ARD_ANALOGREAD_TIP = "Return value between 0 and 1023"; Blockly.Msg.ARD_ANALOGWRITE = "set analog pin#"; Blockly.Msg.ARD_ANALOGWRITE_TIP = "Write analog value between 0 and 255 to a specific PWM Port";