diff --git a/src/components/Blockly/blocks/sensebox-sensors.js b/src/components/Blockly/blocks/sensebox-sensors.js index a445910..f15fbe1 100644 --- a/src/components/Blockly/blocks/sensebox-sensors.js +++ b/src/components/Blockly/blocks/sensebox-sensors.js @@ -351,3 +351,24 @@ Blockly.Blocks['sensebox_gps'] = { this.setTooltip(Blockly.Msg.senseBox_bme_tip); } }; + +/** + * Block for Truebner STM50 + */ + +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']]; + this.setColour(getColour().sensebox); + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_soil_smt50); + this.appendDummyInput() + .appendField("Port:") + .appendField(new Blockly.FieldDropdown(dropdownOptions), "Port") + this.appendDummyInput() + .appendField(Blockly.Msg.senseBox_value) + .appendField(new Blockly.FieldDropdown([[Blockly.Msg.senseBox_temp, "temp"], [Blockly.Msg.senseBox_soil, "soil"]]), 'value') + this.setOutput(true, Types.NUMBER.typeName); + } +}; diff --git a/src/components/Blockly/generator/sensebox-sensors.js b/src/components/Blockly/generator/sensebox-sensors.js index 598e6ae..3d28d33 100644 --- a/src/components/Blockly/generator/sensebox-sensors.js +++ b/src/components/Blockly/generator/sensebox-sensors.js @@ -331,4 +331,44 @@ Blockly.Arduino.sensebox_gps = function () { } return [code, Blockly.Arduino.ORDER_ATOMIC]; -} \ No newline at end of file +} + +/** + * Block for Truebner STM50 + */ + + +Blockly.Arduino.sensebox_sensor_truebner_smt50 = function () { + var dropdown_port = this.getFieldValue('Port') + var dropdown_value = this.getFieldValue('value'); + var dropdown_pin = 1; + if (dropdown_value == 'temp') { + if (dropdown_port == 'A') { + dropdown_pin = 1; + } + if (dropdown_port == 'B') { + dropdown_pin = 3; + } + if (dropdown_port == 'C') { + dropdown_pin = 5; + } + Blockly.Arduino.codeFunctions_['sensebox_smt50_temp'] = 'float getSMT50Temperature(int analogPin){\n int sensorValue = analogRead(analogPin);\n float voltage = sensorValue * (3.3 / 1024.0);\n return (voltage - 0.5) * 100;\n}'; + var code = 'getSMT50Temperature(' + dropdown_pin + ')'; + return [code, Blockly.Arduino.ORDER_ATOMIC]; + } + else if (dropdown_value == 'soil') { + if (dropdown_port == 'A') { + dropdown_pin = 2; + } + if (dropdown_port == 'B') { + dropdown_pin = 4; + } + if (dropdown_port == 'C') { + dropdown_pin = 6; + } + Blockly.Arduino.codeFunctions_['sensebox_smt50_soil'] = 'float getSMT50Moisture(int analogPin){\n int sensorValue = analogRead(analogPin);\n float voltage = sensorValue * (3.3 / 1024.0);\n return (voltage * 50) / 3;\n}'; + var code = 'getSMT50Moisture(' + dropdown_pin + ')'; + return [code, Blockly.Arduino.ORDER_ATOMIC]; + } + +}; \ No newline at end of file diff --git a/src/components/Blockly/toolbox/Toolbox.js b/src/components/Blockly/toolbox/Toolbox.js index cce1097..7fce380 100644 --- a/src/components/Blockly/toolbox/Toolbox.js +++ b/src/components/Blockly/toolbox/Toolbox.js @@ -50,6 +50,7 @@ class Toolbox extends React.Component { +