Merge pull request #9 from sensebox/add-button-block
add block for the button
This commit is contained in:
commit
182b5ada77
@ -55,11 +55,11 @@ class BlocklyWindow extends Component {
|
|||||||
style={this.props.svg ? { height: 0 } : this.props.blocklyCSS}
|
style={this.props.svg ? { height: 0 } : this.props.blocklyCSS}
|
||||||
readOnly={this.props.readOnly !== undefined ? this.props.readOnly : false}
|
readOnly={this.props.readOnly !== undefined ? this.props.readOnly : false}
|
||||||
trashcan={this.props.trashcan !== undefined ? this.props.trashcan : true}
|
trashcan={this.props.trashcan !== undefined ? this.props.trashcan : true}
|
||||||
renderer='zelos'
|
renderer='geras'
|
||||||
zoom={{ // https://developers.google.com/blockly/guides/configure/web/zoom
|
zoom={{ // https://developers.google.com/blockly/guides/configure/web/zoom
|
||||||
controls: this.props.zoomControls !== undefined ? this.props.zoomControls : true,
|
controls: this.props.zoomControls !== undefined ? this.props.zoomControls : true,
|
||||||
wheel: false,
|
wheel: false,
|
||||||
startScale: 0.8,
|
startScale: 1,
|
||||||
maxScale: 3,
|
maxScale: 3,
|
||||||
minScale: 0.3,
|
minScale: 0.3,
|
||||||
scaleSpeed: 1.2
|
scaleSpeed: 1.2
|
||||||
|
@ -280,5 +280,24 @@ Blockly.Blocks['sensebox_sensor_sound'] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Button
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
Blockly.Blocks['sensebox_button'] = {
|
||||||
|
init: function () {
|
||||||
|
this.appendDummyInput()
|
||||||
|
.appendField(Blockly.Msg.senseBox_button)
|
||||||
|
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.senseBox_button_isPressed, "isPressed"], [Blockly.Msg.senseBox_button_wasPressed, "wasPressed"], [Blockly.Msg.senseBox_button_switch, "Switch"]]), "FUNCTION")
|
||||||
|
.appendField("Pin:")
|
||||||
|
.appendField(new Blockly.FieldDropdown(selectedBoard().digitalPinsButton), "PIN");
|
||||||
|
this.setOutput(true, Types.BOOLEAN.typeName);
|
||||||
|
this.setColour(getColour().sensebox);
|
||||||
|
this.setTooltip(Blockly.Msg.senseBox_button_tip);
|
||||||
|
this.setHelpUrl('https://sensebox.de/books');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -226,3 +226,29 @@ Blockly.Arduino.sensebox_sensor_sound = function () {
|
|||||||
var code = 'microphone.getValue()';
|
var code = 'microphone.getValue()';
|
||||||
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Button
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
Blockly.Arduino.sensebox_button = function () {
|
||||||
|
var dropdown_pin = this.getFieldValue('PIN');
|
||||||
|
var dropown_function = this.getFieldValue('FUNCTION');
|
||||||
|
Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"';
|
||||||
|
Blockly.Arduino.definitions_['define_button' + dropdown_pin + ''] = 'Button button_' + dropdown_pin + '(' + dropdown_pin + ');';
|
||||||
|
Blockly.Arduino.setupCode_['setup_button' + dropdown_pin + ''] = 'button_' + dropdown_pin + '.begin();';
|
||||||
|
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()';
|
||||||
|
}
|
||||||
|
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||||
|
};
|
@ -47,6 +47,7 @@ class Toolbox extends React.Component {
|
|||||||
<Block type="sensebox_sensor_bme680_bsec" />
|
<Block type="sensebox_sensor_bme680_bsec" />
|
||||||
<Block type="sensebox_sensor_ultrasonic_ranger" />
|
<Block type="sensebox_sensor_ultrasonic_ranger" />
|
||||||
<Block type="sensebox_sensor_sound" />
|
<Block type="sensebox_sensor_sound" />
|
||||||
|
<Block type="sensebox_button" />
|
||||||
</Category >
|
</Category >
|
||||||
<Category name="WIFI" colour={getColour().sensebox}>
|
<Category name="WIFI" colour={getColour().sensebox}>
|
||||||
<Block type="sensebox_wifi" />
|
<Block type="sensebox_wifi" />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user