73 lines
3.2 KiB
JavaScript
73 lines
3.2 KiB
JavaScript
import * as Blockly from 'blockly';
|
|
import { FieldSlider } from '@blockly/field-slider';
|
|
import { getColour } from '../helpers/colour'
|
|
import { selectedBoard } from '../helpers/board'
|
|
|
|
|
|
|
|
Blockly.Blocks['sensebox_led'] = {
|
|
init: function () {
|
|
this.setColour(getColour().sensebox);
|
|
this.appendDummyInput()
|
|
.appendField(Blockly.Msg.senseBox_led)
|
|
.appendField("Pin:")
|
|
.appendField(new Blockly.FieldDropdown(selectedBoard().digitalPinsLED), "PIN")
|
|
.appendField(Blockly.Msg.senseBox_basic_state)
|
|
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.senseBox_on, "HIGH"], [Blockly.Msg.senseBox_off, "LOW"]]), "STAT");
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setTooltip(Blockly.Msg.senseBox_led_tip);
|
|
}
|
|
};
|
|
|
|
Blockly.Blocks['sensebox_rgb_led'] = {
|
|
init: function () {
|
|
this.setColour(getColour().sensebox);
|
|
this.appendDummyInput()
|
|
.appendField(Blockly.Msg.senseBox_rgb_led)
|
|
.appendField("Pin:")
|
|
.appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "PIN");
|
|
this.appendDummyInput()
|
|
.appendField(Blockly.Msg.COLOUR_RGB_RED)//Blockly.Msg.senseBox_basic_red
|
|
.appendField(new FieldSlider(255, 0, 255), "RED");
|
|
this.appendDummyInput()
|
|
.appendField(Blockly.Msg.COLOUR_RGB_GREEN)//Blockly.Msg.senseBox_basic_green
|
|
.appendField(new FieldSlider(255, 0, 255), "GREEN");
|
|
this.appendDummyInput()
|
|
.appendField(Blockly.Msg.COLOUR_RGB_BLUE)//Blockly.Msg.senseBox_basic_green
|
|
.appendField(new FieldSlider(255, 0, 255), "BLUE");
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setTooltip(Blockly.Msg.senseBox_rgb_led_tip);
|
|
this.setHelpUrl('https://sensebox.de/books');
|
|
}
|
|
};
|
|
|
|
|
|
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("Pin:")
|
|
.appendField(new Blockly.FieldDropdown(dropdownOptions), "Port")
|
|
this.appendValueInput("BRIGHTNESS", "brightness")
|
|
.appendField((Blockly.Msg.senseBox_ws2818_rgb_led_brightness));
|
|
this.appendValueInput("POSITION", "position")
|
|
.appendField((Blockly.Msg.senseBox_ws2818_rgb_led_position));
|
|
this.appendValueInput("RED", 'Number')
|
|
.appendField(Blockly.Msg.COLOUR_RGB_RED);//Blockly.Msg.senseBox_basic_red
|
|
this.appendValueInput("GREEN", 'Number')
|
|
.appendField(Blockly.Msg.COLOUR_RGB_GREEN);//Blockly.Msg.senseBox_basic_green
|
|
this.appendValueInput("BLUE", 'Number')
|
|
.appendField(Blockly.Msg.COLOUR_RGB_BLUE);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setTooltip(Blockly.Msg.senseBox_rgb_led_tip);
|
|
this.setHelpUrl('https://sensebox.de/books');
|
|
}
|
|
}; |