diff --git a/public/media/hardware/senseboxmcumini.png b/public/media/hardware/senseboxmcumini.png new file mode 100644 index 0000000..220caa6 Binary files /dev/null and b/public/media/hardware/senseboxmcumini.png differ diff --git a/src/components/Blockly/BlocklyWindow.js b/src/components/Blockly/BlocklyWindow.js index 4ff8341..bbab82d 100644 --- a/src/components/Blockly/BlocklyWindow.js +++ b/src/components/Blockly/BlocklyWindow.js @@ -43,8 +43,16 @@ class BlocklyWindow extends Component { componentDidUpdate(props) { const workspace = Blockly.getMainWorkspace(); - var xml = this.props.initialXml; + if (props.selectedBoard !== this.props.selectedBoard) { + // change board + if(!xml) xml = initialXml; + var xmlDom = Blockly.Xml.textToDom(xml); + Blockly.Xml.clearWorkspaceAndLoadFromXml(xmlDom, workspace); + // var toolbox = workspace.getToolbox(); + // workspace.updateToolbox(toolbox.toolboxDef_); + } + // if svg is true, then the update process is done in the BlocklySvg component if (props.initialXml !== xml && !this.props.svg) { // guarantees that the current xml-code (this.props.initialXml) is rendered @@ -55,7 +63,7 @@ class BlocklyWindow extends Component { if (props.language !== this.props.language) { // change language if (!xml) xml = initialXml; - var xmlDom = Blockly.Xml.textToDom(xml); + xmlDom = Blockly.Xml.textToDom(xml); Blockly.Xml.clearWorkspaceAndLoadFromXml(xmlDom, workspace); // var toolbox = workspace.getToolbox(); // workspace.updateToolbox(toolbox.toolboxDef_); @@ -130,12 +138,14 @@ BlocklyWindow.propTypes = { renderer: PropTypes.string.isRequired, sounds: PropTypes.bool.isRequired, language: PropTypes.string.isRequired, + selectedBoard: PropTypes.string.isRequired, }; const mapStateToProps = (state) => ({ renderer: state.general.renderer, sounds: state.general.sounds, language: state.general.language, + selectedBoard: state.board.board, }); export default connect(mapStateToProps, { onChangeWorkspace, clearStats })( diff --git a/src/components/Blockly/blocks/sensebox-led.js b/src/components/Blockly/blocks/sensebox-led.js index 981133e..6810fcb 100644 --- a/src/components/Blockly/blocks/sensebox-led.js +++ b/src/components/Blockly/blocks/sensebox-led.js @@ -45,15 +45,11 @@ Blockly.Blocks['sensebox_rgb_led'] = { Blockly.Blocks['sensebox_ws2818_led_init'] = { init: function () { - - var dropdownOptions = [[Blockly.Msg.senseBox_ultrasonic_port_A, '1'], - [Blockly.Msg.senseBox_ultrasonic_port_B, '3'], [Blockly.Msg.senseBox_ultrasonic_port_C, '5']]; - this.setColour(getColour().sensebox); this.appendDummyInput() .appendField(Blockly.Msg.senseBox_ws2818_rgb_led_init) .appendField("Port:") - .appendField(new Blockly.FieldDropdown(dropdownOptions), "Port") + .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPinsRGB), "Port") this.appendValueInput("BRIGHTNESS", "brightness") .appendField((Blockly.Msg.senseBox_ws2818_rgb_led_brightness)); this.appendValueInput("NUMBER", "number") @@ -66,15 +62,11 @@ Blockly.Blocks['sensebox_ws2818_led_init'] = { Blockly.Blocks['sensebox_ws2818_led'] = { init: function () { - - var dropdownOptions = [[Blockly.Msg.senseBox_ultrasonic_port_A, '1'], - [Blockly.Msg.senseBox_ultrasonic_port_B, '3'], [Blockly.Msg.senseBox_ultrasonic_port_C, '5']]; - this.setColour(getColour().sensebox); this.appendDummyInput() .appendField(Blockly.Msg.senseBox_ws2818_rgb_led) .appendField("Port:") - .appendField(new Blockly.FieldDropdown(dropdownOptions), "Port") + .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPinsRGB), "Port") this.appendValueInput("POSITION", "position") .appendField((Blockly.Msg.senseBox_ws2818_rgb_led_position)); this.appendValueInput("COLOR", 'Number') diff --git a/src/components/Blockly/generator/sensebox-ble.js b/src/components/Blockly/generator/sensebox-ble.js index bd6ddd7..34a3a21 100644 --- a/src/components/Blockly/generator/sensebox-ble.js +++ b/src/components/Blockly/generator/sensebox-ble.js @@ -101,7 +101,6 @@ Blockly.Arduino.sensebox_phyphox_graph = function () { Blockly.Arduino.sensebox_phyphox_experiment_send = function () { var branch = Blockly.Arduino.statementToCode(this, "sendValues"); var blocks = this.getDescendants(); - console.log(blocks); var count = 0; if (blocks !== undefined) { for (var i = 0; i < blocks.length; i++) { @@ -115,7 +114,6 @@ Blockly.Arduino.sensebox_phyphox_experiment_send = function () { var string = ""; for (var j = 1; j <= count; j++) { - console.log("append"); if (string === "") { string += `channel${j}`; } else if (string !== "") { diff --git a/src/components/Blockly/generator/sensebox-sd.js b/src/components/Blockly/generator/sensebox-sd.js index ab54e47..419b76a 100644 --- a/src/components/Blockly/generator/sensebox-sd.js +++ b/src/components/Blockly/generator/sensebox-sd.js @@ -203,6 +203,5 @@ Blockly.Arduino.sensebox_sd_save_for_osem = function (block) { Blockly.Arduino.definitions_["SENSOR_ID" + id + ""] = "const char SENSOR_ID" + id + '[] PROGMEM = "' + sensor_id + '";'; code += "addMeasurement(SENSOR_ID" + id + "," + sensor_value + ");\n"; - console.log(code); return code; }; diff --git a/src/components/Blockly/generator/sensebox-web.js b/src/components/Blockly/generator/sensebox-web.js index a2cae3b..3d94af1 100644 --- a/src/components/Blockly/generator/sensebox-web.js +++ b/src/components/Blockly/generator/sensebox-web.js @@ -1,4 +1,12 @@ import Blockly from "blockly"; +//import store from "../../../store"; + +// preperations for the esp board +// var selectedBoard = store.getState().board.board; +// store.subscribe(() => { +// selectedBoard = store.getState().board.board; +// }); + /* Wifi connection and openSenseMap Blocks*/ Blockly.Arduino.sensebox_wifi = function (block) { @@ -110,3 +118,5 @@ Blockly.Arduino.sensebox_ethernetIp = function () { var code = "Ethernet.localIP()"; return [code, Blockly.Arduino.ORDER_ATOMIC]; }; + + diff --git a/src/components/Blockly/generator/variables.js b/src/components/Blockly/generator/variables.js index 2572b46..e8e4dd4 100644 --- a/src/components/Blockly/generator/variables.js +++ b/src/components/Blockly/generator/variables.js @@ -23,7 +23,6 @@ const setVariableFunction = function (defaultValue) { .getVariableMap() .getAllVariables(); const myVar = allVars.filter((v) => v.name === variableName)[0]; - console.log(myVar); var code = ""; if (myVar !== undefined) { Blockly.Arduino.variables_[variableName + myVar.type] = diff --git a/src/components/Blockly/helpers/board.js b/src/components/Blockly/helpers/board.js index 71e9dd7..f803a20 100644 --- a/src/components/Blockly/helpers/board.js +++ b/src/components/Blockly/helpers/board.js @@ -23,6 +23,11 @@ const sensebox_mcu = { ["C5", "5"], ["C6", "6"], ], + digitalPinsRGB: [ + ["A", "1"], + ["B", "3"], + ["C", "5"], + ], digitalPinsButton: [ ["on Board", "0"], ["A1", "1"], @@ -131,7 +136,7 @@ const sensebox_mini = { description: "senseBox Mini", compilerFlag: "arduino:samd", digitalPins: [ - ["A1", "1"], + ["Test", "1"], ["A2", "2"], ["B3", "3"], ["B4", "4"], @@ -148,6 +153,11 @@ const sensebox_mini = { ["C5", "5"], ["C6", "6"], ], + digitalPinsRGB: [ + ["on Board", "7"], + ["B", "8"], + ["C", "1"], + ], digitalPinsButton: [ ["on Board", "0"], ["A1", "1"], @@ -247,7 +257,6 @@ const sensebox_mini = { var board = sensebox_mcu export const setBoard = (selectedBoard) => { - console.log(board) if (selectedBoard === "mini"){ board = sensebox_mini } @@ -258,6 +267,5 @@ export const setBoard = (selectedBoard) => { export const selectedBoard = () => { - console.log(board) return board; }; diff --git a/src/components/Blockly/msg/de/ui.js b/src/components/Blockly/msg/de/ui.js index 7092148..1f8e086 100644 --- a/src/components/Blockly/msg/de/ui.js +++ b/src/components/Blockly/msg/de/ui.js @@ -182,7 +182,8 @@ export const UI = { settings_sounds: "Töne", settings_sounds_text: "Aktiviere oder Deaktiviere Töne beim hinzufügen und löschen von Blöcken. Standardmäßig deaktiviert", - + settings_board: "Board", + settings_board_text: "Wähle dein verwendetes Board aus", /** * 404 */ diff --git a/src/components/Blockly/msg/en/ui.js b/src/components/Blockly/msg/en/ui.js index fc49196..f6afae7 100644 --- a/src/components/Blockly/msg/en/ui.js +++ b/src/components/Blockly/msg/en/ui.js @@ -176,6 +176,8 @@ export const UI = { settings_sounds: "Sound", settings_sounds_text: "Enable or disable sounds when adding and deleting blocks. Disabled by default", + settings_board: "Board", + settings_board_text: "Choose your board", /** * 404 @@ -296,4 +298,11 @@ export const UI = { codeeditor_blockly_code: "Load blockly code", codeeditor_compile_progress: "Your code will now be compiled and then downloaded to your computer", + + /** + * Device Selction + * */ + deviceselection_head: "Which board are you using?", + deviceselection_keep_selection: "Save my choice", + }; diff --git a/src/components/CodeEditor/CodeEditor.js b/src/components/CodeEditor/CodeEditor.js index dba6bdb..08e40f5 100644 --- a/src/components/CodeEditor/CodeEditor.js +++ b/src/components/CodeEditor/CodeEditor.js @@ -38,7 +38,6 @@ const CodeEditor = (props) => { }) .then((response) => response.json()) .then((data) => { - console.log(data); if (data.code === "Internal Server Error") { setProgress(false); setOpen(true); diff --git a/src/components/CodeEditor/Compile.js b/src/components/CodeEditor/Compile.js index b3d477e..26a9d4b 100644 --- a/src/components/CodeEditor/Compile.js +++ b/src/components/CodeEditor/Compile.js @@ -89,7 +89,6 @@ class Compile extends Component { }) .then((response) => response.json()) .then((data) => { - console.log(data); if (data.code === "Internal Server Error") { this.setState({ progress: false, diff --git a/src/components/CodeEditor/SerialMonitor.js b/src/components/CodeEditor/SerialMonitor.js index b40f10b..0636301 100644 --- a/src/components/CodeEditor/SerialMonitor.js +++ b/src/components/CodeEditor/SerialMonitor.js @@ -27,7 +27,6 @@ const SerialMonitor = () => { if (value) { // byte array to string: https://stackoverflow.com/a/37542820 const text = String.fromCharCode.apply(null, value); - console.log(text); setSerialPortContent((prevContent) => [ ...prevContent, [new Date(), text], diff --git a/src/components/DeviceSelction.js b/src/components/DeviceSelection.js similarity index 83% rename from src/components/DeviceSelction.js rename to src/components/DeviceSelection.js index 384daf5..f02b424 100644 --- a/src/components/DeviceSelction.js +++ b/src/components/DeviceSelection.js @@ -7,8 +7,7 @@ import { withStyles } from "@material-ui/core/styles"; import Checkbox from "@material-ui/core/Checkbox"; import FormControlLabel from "@material-ui/core/FormControlLabel"; import * as Blockly from "blockly"; -import ReactMarkdown from "react-markdown"; -import { IconButton, Grid, Avatar } from "@material-ui/core"; +import { IconButton, Grid, Avatar, Typography } from "@material-ui/core"; import { setBoard } from "../actions/boardAction"; const styles = (theme) => ({ @@ -65,7 +64,6 @@ class DeviceSeclection extends Component { this.setState({selectedBoard: value}) }; - render() { return (
- + this.onclick(e, "mcu")}> -

Sensebox MCU

+

senseBox MCU

- + {/* this.onclick(e, "esp")}>

Sensebox ESP

-
- + */} + this.onclick(e, "mini")}> -

Sensebox Mini

+

senseBox MCU:mini

@@ -141,6 +139,9 @@ class DeviceSeclection extends Component { } label={Blockly.Msg.deviceselection_keep_selection} /> + + Hier kommst du zur alten Blockly Version für den Arduino UNO oder die senseBox MCU +
); } diff --git a/src/components/Home.js b/src/components/Home.js index 9c09377..6904184 100644 --- a/src/components/Home.js +++ b/src/components/Home.js @@ -12,7 +12,7 @@ import BlocklyWindow from "./Blockly/BlocklyWindow"; import CodeViewer from "./CodeViewer"; import TrashcanButtons from "./Workspace/TrashcanButtons"; import HintTutorialExists from "./Tutorial/HintTutorialExists"; -import DeviceSelction from "./DeviceSelction"; +import DeviceSelection from "./DeviceSelection"; import Grid from "@material-ui/core/Grid"; import IconButton from "@material-ui/core/IconButton"; @@ -187,7 +187,7 @@ class Home extends Component { ) : null} - + {this.props.platform ? ( + {Blockly.Msg.settings_board} + {Blockly.Msg.settings_board_text} + + {Blockly.Msg.settings_board} + + + + ); + } +} + +DeviceSelector.propTypes = { + setBoard: PropTypes.func.isRequired, + selectedBoard: PropTypes.string.isRequired +}; + +const mapStateToProps = state => ({ + selectedBoard: state.board.board +}); + +export default connect(mapStateToProps, { setBoard })(DeviceSelector); diff --git a/src/components/Settings/Settings.js b/src/components/Settings/Settings.js index ad1dde6..a0f9361 100644 --- a/src/components/Settings/Settings.js +++ b/src/components/Settings/Settings.js @@ -12,6 +12,7 @@ import RenderSelector from "./RenderSelector"; import StatsSelector from "./StatsSelector"; import OtaSelector from "./OtaSelector"; import SoundsSelector from "./SoundsSelector"; +import DeviceSelector from "./DeviceSelector"; import Button from "@material-ui/core/Button"; import Paper from "@material-ui/core/Paper"; @@ -52,6 +53,9 @@ class Settings extends Component { + + +